diff --git a/.gitattributes b/.gitattributes index cee35b6b19ad35b9cba549b0d7b75e435a8b2597..25e6abe38978d18e46df13ef04d81be1af01fd58 100644 --- a/.gitattributes +++ b/.gitattributes @@ -209,3 +209,4 @@ tuning-competition-baseline/.venv/lib/python3.11/site-packages/torch/_inductor/_ .venv/lib/python3.11/site-packages/__pycache__/pynvml.cpython-311.pyc filter=lfs diff=lfs merge=lfs -text .venv/lib/python3.11/site-packages/rpds/rpds.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text .venv/lib/python3.11/site-packages/watchfiles/_rust_notify.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text +.venv/lib/python3.11/site-packages/frozenlist/_frozenlist.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text diff --git a/.venv/lib/python3.11/site-packages/frozenlist/_frozenlist.cpython-311-x86_64-linux-gnu.so b/.venv/lib/python3.11/site-packages/frozenlist/_frozenlist.cpython-311-x86_64-linux-gnu.so new file mode 100644 index 0000000000000000000000000000000000000000..fd5316252c4e34dfcc2769dc366276b38af620ba --- /dev/null +++ b/.venv/lib/python3.11/site-packages/frozenlist/_frozenlist.cpython-311-x86_64-linux-gnu.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8bcc1471eaa3fcdcabd216fb0fc9323cf51bb40b4b97827b32d3d0613ce146e8 +size 923584 diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/adexchangebuyer.v1.4.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/adexchangebuyer.v1.4.json new file mode 100644 index 0000000000000000000000000000000000000000..90eddb8aa61d708dfd2d74e494c257157a56f1dc --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/adexchangebuyer.v1.4.json @@ -0,0 +1,3752 @@ +{ + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/adexchange.buyer": { + "description": "Manage your Ad Exchange buyer account configuration" + } + } + } + }, + "basePath": "/adexchangebuyer/v1.4/", + "baseUrl": "https://www.googleapis.com/adexchangebuyer/v1.4/", + "batchPath": "batch/adexchangebuyer/v1.4", + "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/28H_ClrLhezfMe9hzMrqdyiMlfE\"", + "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.4", + "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": { + "confirmUnsafeAccountChange": { + "description": "Confirmation for erasing bidder and cookie matching urls.", + "location": "query", + "type": "boolean" + }, + "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": { + "confirmUnsafeAccountChange": { + "description": "Confirmation for erasing bidder and cookie matching urls.", + "location": "query", + "type": "boolean" + }, + "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": { + "addDeal": { + "description": "Add a deal id association for the creative.", + "httpMethod": "POST", + "id": "adexchangebuyer.creatives.addDeal", + "parameterOrder": [ + "accountId", + "buyerCreativeId", + "dealId" + ], + "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" + }, + "dealId": { + "description": "The id of the deal id to associate with this creative.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "creatives/{accountId}/{buyerCreativeId}/addDeal/{dealId}", + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + }, + "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" + }, + "dealsStatusFilter": { + "description": "When specified, only creatives having the given deals status are returned.", + "enum": [ + "approved", + "conditionally_approved", + "disapproved", + "not_checked" + ], + "enumDescriptions": [ + "Creatives which have been approved for serving on deals.", + "Creatives which have been conditionally approved for serving on deals.", + "Creatives which have been disapproved for serving on deals.", + "Creatives whose deals status is not yet checked." + ], + "location": "query", + "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" + }, + "openAuctionStatusFilter": { + "description": "When specified, only creatives having the given open auction status are returned.", + "enum": [ + "approved", + "conditionally_approved", + "disapproved", + "not_checked" + ], + "enumDescriptions": [ + "Creatives which have been approved for serving on the open auction.", + "Creatives which have been conditionally approved for serving on the open auction.", + "Creatives which have been disapproved for serving on the open auction.", + "Creatives whose open auction status is not yet checked." + ], + "location": "query", + "type": "string" + }, + "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" + } + }, + "path": "creatives", + "response": { + "$ref": "CreativesList" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + }, + "listDeals": { + "description": "Lists the external deal ids associated with the creative.", + "httpMethod": "GET", + "id": "adexchangebuyer.creatives.listDeals", + "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}/listDeals", + "response": { + "$ref": "CreativeDealIds" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + }, + "removeDeal": { + "description": "Remove a deal id associated with the creative.", + "httpMethod": "POST", + "id": "adexchangebuyer.creatives.removeDeal", + "parameterOrder": [ + "accountId", + "buyerCreativeId", + "dealId" + ], + "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" + }, + "dealId": { + "description": "The id of the deal id to disassociate with this creative.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "creatives/{accountId}/{buyerCreativeId}/removeDeal/{dealId}", + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + } + } + }, + "marketplacedeals": { + "methods": { + "delete": { + "description": "Delete the specified deals from the proposal", + "httpMethod": "POST", + "id": "adexchangebuyer.marketplacedeals.delete", + "parameterOrder": [ + "proposalId" + ], + "parameters": { + "proposalId": { + "description": "The proposalId to delete deals from.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "proposals/{proposalId}/deals/delete", + "request": { + "$ref": "DeleteOrderDealsRequest" + }, + "response": { + "$ref": "DeleteOrderDealsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + }, + "insert": { + "description": "Add new deals for the specified proposal", + "httpMethod": "POST", + "id": "adexchangebuyer.marketplacedeals.insert", + "parameterOrder": [ + "proposalId" + ], + "parameters": { + "proposalId": { + "description": "proposalId for which deals need to be added.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "proposals/{proposalId}/deals/insert", + "request": { + "$ref": "AddOrderDealsRequest" + }, + "response": { + "$ref": "AddOrderDealsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + }, + "list": { + "description": "List all the deals for a given proposal", + "httpMethod": "GET", + "id": "adexchangebuyer.marketplacedeals.list", + "parameterOrder": [ + "proposalId" + ], + "parameters": { + "pqlQuery": { + "description": "Query string to retrieve specific deals.", + "location": "query", + "type": "string" + }, + "proposalId": { + "description": "The proposalId to get deals for. To search across all proposals specify order_id = '-' as part of the URL.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "proposals/{proposalId}/deals", + "response": { + "$ref": "GetOrderDealsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + }, + "update": { + "description": "Replaces all the deals in the proposal with the passed in deals", + "httpMethod": "POST", + "id": "adexchangebuyer.marketplacedeals.update", + "parameterOrder": [ + "proposalId" + ], + "parameters": { + "proposalId": { + "description": "The proposalId to edit deals on.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "proposals/{proposalId}/deals/update", + "request": { + "$ref": "EditAllOrderDealsRequest" + }, + "response": { + "$ref": "EditAllOrderDealsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + } + } + }, + "marketplacenotes": { + "methods": { + "insert": { + "description": "Add notes to the proposal", + "httpMethod": "POST", + "id": "adexchangebuyer.marketplacenotes.insert", + "parameterOrder": [ + "proposalId" + ], + "parameters": { + "proposalId": { + "description": "The proposalId to add notes for.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "proposals/{proposalId}/notes/insert", + "request": { + "$ref": "AddOrderNotesRequest" + }, + "response": { + "$ref": "AddOrderNotesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + }, + "list": { + "description": "Get all the notes associated with a proposal", + "httpMethod": "GET", + "id": "adexchangebuyer.marketplacenotes.list", + "parameterOrder": [ + "proposalId" + ], + "parameters": { + "pqlQuery": { + "description": "Query string to retrieve specific notes. To search the text contents of notes, please use syntax like \"WHERE note.note = \"foo\" or \"WHERE note.note LIKE \"%bar%\"", + "location": "query", + "type": "string" + }, + "proposalId": { + "description": "The proposalId to get notes for. To search across all proposals specify order_id = '-' as part of the URL.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "proposals/{proposalId}/notes", + "response": { + "$ref": "GetOrderNotesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + } + } + }, + "marketplaceprivateauction": { + "methods": { + "updateproposal": { + "description": "Update a given private auction proposal", + "httpMethod": "POST", + "id": "adexchangebuyer.marketplaceprivateauction.updateproposal", + "parameterOrder": [ + "privateAuctionId" + ], + "parameters": { + "privateAuctionId": { + "description": "The private auction id to be updated.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "privateauction/{privateAuctionId}/updateproposal", + "request": { + "$ref": "UpdatePrivateAuctionProposalRequest" + }, + "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" + ] + } + } + }, + "products": { + "methods": { + "get": { + "description": "Gets the requested product by id.", + "httpMethod": "GET", + "id": "adexchangebuyer.products.get", + "parameterOrder": [ + "productId" + ], + "parameters": { + "productId": { + "description": "The id for the product to get the head revision for.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "products/{productId}", + "response": { + "$ref": "Product" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + }, + "search": { + "description": "Gets the requested product.", + "httpMethod": "GET", + "id": "adexchangebuyer.products.search", + "parameters": { + "pqlQuery": { + "description": "The pql query used to query for products.", + "location": "query", + "type": "string" + } + }, + "path": "products/search", + "response": { + "$ref": "GetOffersResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + } + } + }, + "proposals": { + "methods": { + "get": { + "description": "Get a proposal given its id", + "httpMethod": "GET", + "id": "adexchangebuyer.proposals.get", + "parameterOrder": [ + "proposalId" + ], + "parameters": { + "proposalId": { + "description": "Id of the proposal to retrieve.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "proposals/{proposalId}", + "response": { + "$ref": "Proposal" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + }, + "insert": { + "description": "Create the given list of proposals", + "httpMethod": "POST", + "id": "adexchangebuyer.proposals.insert", + "path": "proposals/insert", + "request": { + "$ref": "CreateOrdersRequest" + }, + "response": { + "$ref": "CreateOrdersResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + }, + "patch": { + "description": "Update the given proposal. This method supports patch semantics.", + "httpMethod": "PATCH", + "id": "adexchangebuyer.proposals.patch", + "parameterOrder": [ + "proposalId", + "revisionNumber", + "updateAction" + ], + "parameters": { + "proposalId": { + "description": "The proposal id to update.", + "location": "path", + "required": true, + "type": "string" + }, + "revisionNumber": { + "description": "The last known revision number to update. If the head revision in the marketplace database has since changed, an error will be thrown. The caller should then fetch the latest proposal at head revision and retry the update at that revision.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "updateAction": { + "description": "The proposed action to take on the proposal. This field is required and it must be set when updating a proposal.", + "enum": [ + "accept", + "cancel", + "propose", + "proposeAndAccept", + "unknownAction", + "updateNonTerms" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "" + ], + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "proposals/{proposalId}/{revisionNumber}/{updateAction}", + "request": { + "$ref": "Proposal" + }, + "response": { + "$ref": "Proposal" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + }, + "search": { + "description": "Search for proposals using pql query", + "httpMethod": "GET", + "id": "adexchangebuyer.proposals.search", + "parameters": { + "pqlQuery": { + "description": "Query string to retrieve specific proposals.", + "location": "query", + "type": "string" + } + }, + "path": "proposals/search", + "response": { + "$ref": "GetOrdersResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + }, + "setupcomplete": { + "description": "Update the given proposal to indicate that setup has been completed.", + "httpMethod": "POST", + "id": "adexchangebuyer.proposals.setupcomplete", + "parameterOrder": [ + "proposalId" + ], + "parameters": { + "proposalId": { + "description": "The proposal id for which the setup is complete", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "proposals/{proposalId}/setupcomplete", + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + }, + "update": { + "description": "Update the given proposal", + "httpMethod": "PUT", + "id": "adexchangebuyer.proposals.update", + "parameterOrder": [ + "proposalId", + "revisionNumber", + "updateAction" + ], + "parameters": { + "proposalId": { + "description": "The proposal id to update.", + "location": "path", + "required": true, + "type": "string" + }, + "revisionNumber": { + "description": "The last known revision number to update. If the head revision in the marketplace database has since changed, an error will be thrown. The caller should then fetch the latest proposal at head revision and retry the update at that revision.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "updateAction": { + "description": "The proposed action to take on the proposal. This field is required and it must be set when updating a proposal.", + "enum": [ + "accept", + "cancel", + "propose", + "proposeAndAccept", + "unknownAction", + "updateNonTerms" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "" + ], + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "proposals/{proposalId}/{revisionNumber}/{updateAction}", + "request": { + "$ref": "Proposal" + }, + "response": { + "$ref": "Proposal" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + } + } + }, + "pubprofiles": { + "methods": { + "list": { + "description": "Gets the requested publisher profile(s) by publisher accountId.", + "httpMethod": "GET", + "id": "adexchangebuyer.pubprofiles.list", + "parameterOrder": [ + "accountId" + ], + "parameters": { + "accountId": { + "description": "The accountId of the publisher to get profiles for.", + "format": "int32", + "location": "path", + "required": true, + "type": "integer" + } + }, + "path": "publisher/{accountId}/profiles", + "response": { + "$ref": "GetPublisherProfilesByAccountIdResponse" + }, + "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": { + "applyPretargetingToNonGuaranteedDeals": { + "description": "When this is false, bid requests that include a deal ID for a private auction or preferred deal are always sent to your bidder. When true, all active pretargeting configs will be applied to private auctions and preferred deals. Programmatic Guaranteed deals (when enabled) are always sent to your bidder.", + "type": "boolean" + }, + "bidderLocation": { + "description": "Your bidder locations that have distinct URLs.", + "items": { + "properties": { + "bidProtocol": { + "description": "The protocol that the bidder endpoint is using. OpenRTB protocols with prefix PROTOCOL_OPENRTB_PROTOBUF use proto buffer, otherwise use JSON. Allowed values: \n- PROTOCOL_ADX \n- PROTOCOL_OPENRTB_2_2 \n- PROTOCOL_OPENRTB_2_3 \n- PROTOCOL_OPENRTB_2_4 \n- PROTOCOL_OPENRTB_2_5 \n- PROTOCOL_OPENRTB_PROTOBUF_2_3 \n- PROTOCOL_OPENRTB_PROTOBUF_2_4 \n- PROTOCOL_OPENRTB_PROTOBUF_2_5", + "type": "string" + }, + "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" + }, + "AddOrderDealsRequest": { + "id": "AddOrderDealsRequest", + "properties": { + "deals": { + "description": "The list of deals to add", + "items": { + "$ref": "MarketplaceDeal" + }, + "type": "array" + }, + "proposalRevisionNumber": { + "description": "The last known proposal revision number.", + "format": "int64", + "type": "string" + }, + "updateAction": { + "description": "Indicates an optional action to take on the proposal", + "type": "string" + } + }, + "type": "object" + }, + "AddOrderDealsResponse": { + "id": "AddOrderDealsResponse", + "properties": { + "deals": { + "description": "List of deals added (in the same proposal as passed in the request)", + "items": { + "$ref": "MarketplaceDeal" + }, + "type": "array" + }, + "proposalRevisionNumber": { + "description": "The updated revision number for the proposal.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "AddOrderNotesRequest": { + "id": "AddOrderNotesRequest", + "properties": { + "notes": { + "description": "The list of notes to add.", + "items": { + "$ref": "MarketplaceNote" + }, + "type": "array" + } + }, + "type": "object" + }, + "AddOrderNotesResponse": { + "id": "AddOrderNotesResponse", + "properties": { + "notes": { + "items": { + "$ref": "MarketplaceNote" + }, + "type": "array" + } + }, + "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" + }, + "Buyer": { + "id": "Buyer", + "properties": { + "accountId": { + "description": "Adx account id of the buyer.", + "type": "string" + } + }, + "type": "object" + }, + "ContactInformation": { + "id": "ContactInformation", + "properties": { + "email": { + "description": "Email address of the contact.", + "type": "string" + }, + "name": { + "description": "The name of the contact.", + "type": "string" + } + }, + "type": "object" + }, + "CreateOrdersRequest": { + "id": "CreateOrdersRequest", + "properties": { + "proposals": { + "description": "The list of proposals to create.", + "items": { + "$ref": "Proposal" + }, + "type": "array" + }, + "webPropertyCode": { + "description": "Web property id of the seller creating these orders", + "type": "string" + } + }, + "type": "object" + }, + "CreateOrdersResponse": { + "id": "CreateOrdersResponse", + "properties": { + "proposals": { + "description": "The list of proposals successfully created.", + "items": { + "$ref": "Proposal" + }, + "type": "array" + } + }, + "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, videoVastXML, and nativeAd should not be set.", + "type": "string" + }, + "accountId": { + "annotations": { + "required": [ + "adexchangebuyer.creatives.insert" + ] + }, + "description": "Account id.", + "format": "int32", + "type": "integer" + }, + "adChoicesDestinationUrl": { + "description": "The link to the Ad Preferences page. This is only supported for native ads.", + "type": "string" + }, + "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. A list of advertisers is provided in the advertisers.txt file.", + "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": "List of buyer selectable attributes for the ads that may be shown from this snippet. Each attribute is represented by an integer as defined in buyer-declarable-creative-attributes.txt.", + "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": { + "contexts": { + "description": "All known serving contexts containing serving status information.", + "items": { + "properties": { + "auctionType": { + "description": "Only set when contextType=AUCTION_TYPE. Represents the auction types this correction applies to.", + "items": { + "type": "string" + }, + "type": "array" + }, + "contextType": { + "description": "The type of context (e.g., location, platform, auction type, SSL-ness).", + "type": "string" + }, + "geoCriteriaId": { + "description": "Only set when contextType=LOCATION. Represents the geo criterias this correction applies to.", + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + }, + "platform": { + "description": "Only set when contextType=PLATFORM. Represents the platforms this correction applies to.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "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" + }, + "creativeStatusIdentityType": { + "description": "Creative status identity type that the creative item applies to. Ad Exchange real-time bidding is migrating to the sizeless creative verification. Originally, Ad Exchange assigned creative verification status to a unique combination of a buyer creative ID and creative dimensions. Post-migration, a single verification status will be assigned at the buyer creative ID level. This field allows to distinguish whether a given creative status applies to a unique combination of a buyer creative ID and creative dimensions, or to a buyer creative ID as a whole.", + "type": "string" + }, + "dealsStatus": { + "description": "Top-level deals status. Read-only. This field should not be set in requests. If disapproved, an entry for auctionType=DIRECT_DEALS (or ALL) in servingRestrictions will also exist. Note that this may be nuanced with other contextual restrictions, in which case it may be preferable to read from servingRestrictions directly.", + "type": "string" + }, + "detectedDomains": { + "description": "Detected domains for this creative. Read-only. This field should not be set in requests.", + "items": { + "type": "string" + }, + "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 as defined in creative-status-codes.txt.", + "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" + }, + "languages": { + "description": "Detected languages for this creative. Read-only. This field should not be set in requests.", + "items": { + "type": "string" + }, + "type": "array" + }, + "nativeAd": { + "description": "If nativeAd is set, HTMLSnippet, videoVastXML, and the videoURL outside of nativeAd should not be set. (The videoURL inside nativeAd can 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" + }, + "clickLinkUrl": { + "description": "The URL that the browser/SDK will load when the user clicks the ad.", + "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" + }, + "videoURL": { + "description": "The URL of the XML VAST for a native ad. Note this is a separate field from resource.video_url.", + "type": "string" + } + }, + "type": "object" + }, + "openAuctionStatus": { + "description": "Top-level open auction status. Read-only. This field should not be set in requests. If disapproved, an entry for auctionType=OPEN_AUCTION (or ALL) in servingRestrictions will also exist. Note that this may be nuanced with other contextual restrictions, in which case it may be preferable to read from ServingRestrictions directly.", + "type": "string" + }, + "productCategories": { + "description": "Detected product categories, if any. Each category is represented by an integer as defined in ad-product-categories.txt. 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. Each category is represented by an integer as defined in the ad-restricted-categories.txt.", + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + }, + "sensitiveCategories": { + "description": "Detected sensitive categories, if any. Each category is represented by an integer as defined in ad-sensitive-categories.txt. Read-only. This field should not be set in requests.", + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + }, + "servingRestrictions": { + "description": "The granular status of this ad in specific contexts. A context here relates to where something ultimately serves (for example, a physical location, a platform, an HTTPS vs HTTP request, or the type of auction). Read-only. This field should not be set in requests. See the examples in the Creatives guide for more details.", + "items": { + "properties": { + "contexts": { + "description": "All known contexts/restrictions.", + "items": { + "properties": { + "auctionType": { + "description": "Only set when contextType=AUCTION_TYPE. Represents the auction types this restriction applies to.", + "items": { + "type": "string" + }, + "type": "array" + }, + "contextType": { + "description": "The type of context (e.g., location, platform, auction type, SSL-ness).", + "type": "string" + }, + "geoCriteriaId": { + "description": "Only set when contextType=LOCATION. Represents the geo criterias this restriction applies to. Impressions are considered to match a context if either the user location or publisher location matches a given geoCriteriaId.", + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + }, + "platform": { + "description": "Only set when contextType=PLATFORM. Represents the platforms this restriction applies to.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "type": "array" + }, + "disapprovalReasons": { + "description": "The reasons for disapproval within this restriction, if any. Note that not all disapproval reasons may be categorized, so it is possible for the creative to have a status of DISAPPROVED or CONDITIONALLY_APPROVED with an empty list for disapproval_reasons. In this case, please reach out to your TAM to help debug the issue.", + "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" + }, + "reason": { + "description": "Why the creative is ineligible to serve in this context (e.g., it has been explicitly disapproved or is pending review).", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "vendorType": { + "description": "List of vendor types for the ads that may be shown from this snippet. Each vendor type is represented by an integer as defined in vendors.txt.", + "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, videoVastXML, and nativeAd should not be set. Note, this is different from resource.native_ad.video_url above.", + "type": "string" + }, + "videoVastXML": { + "description": "The contents of a VAST document for a video ad. This document should conform to the VAST 2.0 or 3.0 standard. If set, HTMLSnippet, videoURL, and nativeAd and should not be set.", + "type": "string" + }, + "width": { + "annotations": { + "required": [ + "adexchangebuyer.creatives.insert" + ] + }, + "description": "Ad width.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "CreativeDealIds": { + "description": "The external deal ids associated with a creative.", + "id": "CreativeDealIds", + "properties": { + "dealStatuses": { + "description": "A list of external deal ids and ARC approval status.", + "items": { + "properties": { + "arcStatus": { + "description": "ARC approval status.", + "type": "string" + }, + "dealId": { + "description": "External deal ID.", + "format": "int64", + "type": "string" + }, + "webPropertyId": { + "description": "Publisher ID.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "type": "array" + }, + "kind": { + "default": "adexchangebuyer#creativeDealIds", + "description": "Resource type.", + "type": "string" + } + }, + "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" + }, + "DealServingMetadata": { + "id": "DealServingMetadata", + "properties": { + "alcoholAdsAllowed": { + "description": "True if alcohol ads are allowed for this deal (read-only). This field is only populated when querying for finalized orders using the method GetFinalizedOrderDeals", + "type": "boolean" + }, + "dealPauseStatus": { + "$ref": "DealServingMetadataDealPauseStatus", + "description": "Tracks which parties (if any) have paused a deal. (readonly, except via PauseResumeOrderDeals action)" + } + }, + "type": "object" + }, + "DealServingMetadataDealPauseStatus": { + "description": "Tracks which parties (if any) have paused a deal. The deal is considered paused if has_buyer_paused || has_seller_paused. Each of the has_buyer_paused or the has_seller_paused bits can be set independently.", + "id": "DealServingMetadataDealPauseStatus", + "properties": { + "buyerPauseReason": { + "type": "string" + }, + "firstPausedBy": { + "description": "If the deal is paused, records which party paused the deal first.", + "type": "string" + }, + "hasBuyerPaused": { + "type": "boolean" + }, + "hasSellerPaused": { + "type": "boolean" + }, + "sellerPauseReason": { + "type": "string" + } + }, + "type": "object" + }, + "DealTerms": { + "id": "DealTerms", + "properties": { + "brandingType": { + "description": "Visibility of the URL in bid requests.", + "type": "string" + }, + "crossListedExternalDealIdType": { + "description": "Indicates that this ExternalDealId exists under at least two different AdxInventoryDeals. Currently, the only case that the same ExternalDealId will exist is programmatic cross sell case.", + "type": "string" + }, + "description": { + "description": "Description for the proposed terms of the deal.", + "type": "string" + }, + "estimatedGrossSpend": { + "$ref": "Price", + "description": "Non-binding estimate of the estimated gross spend for this deal Can be set by buyer or seller." + }, + "estimatedImpressionsPerDay": { + "description": "Non-binding estimate of the impressions served per day Can be set by buyer or seller.", + "format": "int64", + "type": "string" + }, + "guaranteedFixedPriceTerms": { + "$ref": "DealTermsGuaranteedFixedPriceTerms", + "description": "The terms for guaranteed fixed price deals." + }, + "nonGuaranteedAuctionTerms": { + "$ref": "DealTermsNonGuaranteedAuctionTerms", + "description": "The terms for non-guaranteed auction deals." + }, + "nonGuaranteedFixedPriceTerms": { + "$ref": "DealTermsNonGuaranteedFixedPriceTerms", + "description": "The terms for non-guaranteed fixed price deals." + }, + "rubiconNonGuaranteedTerms": { + "$ref": "DealTermsRubiconNonGuaranteedTerms", + "description": "The terms for rubicon non-guaranteed deals." + }, + "sellerTimeZone": { + "description": "For deals with Cost Per Day billing, defines the timezone used to mark the boundaries of a day (buyer-readonly)", + "type": "string" + } + }, + "type": "object" + }, + "DealTermsGuaranteedFixedPriceTerms": { + "id": "DealTermsGuaranteedFixedPriceTerms", + "properties": { + "billingInfo": { + "$ref": "DealTermsGuaranteedFixedPriceTermsBillingInfo", + "description": "External billing info for this Deal. This field is relevant when external billing info such as price has a different currency code than DFP/AdX." + }, + "fixedPrices": { + "description": "Fixed price for the specified buyer.", + "items": { + "$ref": "PricePerBuyer" + }, + "type": "array" + }, + "guaranteedImpressions": { + "description": "Guaranteed impressions as a percentage. This is the percentage of guaranteed looks that the buyer is guaranteeing to buy.", + "format": "int64", + "type": "string" + }, + "guaranteedLooks": { + "description": "Count of guaranteed looks. Required for deal, optional for product. For CPD deals, buyer changes to guaranteed_looks will be ignored.", + "format": "int64", + "type": "string" + }, + "minimumDailyLooks": { + "description": "Count of minimum daily looks for a CPD deal. For CPD deals, buyer should negotiate on this field instead of guaranteed_looks.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "DealTermsGuaranteedFixedPriceTermsBillingInfo": { + "id": "DealTermsGuaranteedFixedPriceTermsBillingInfo", + "properties": { + "currencyConversionTimeMs": { + "description": "The timestamp (in ms since epoch) when the original reservation price for the deal was first converted to DFP currency. This is used to convert the contracted price into buyer's currency without discrepancy.", + "format": "int64", + "type": "string" + }, + "dfpLineItemId": { + "description": "The DFP line item id associated with this deal. For features like CPD, buyers can retrieve the DFP line item for billing reconciliation.", + "format": "int64", + "type": "string" + }, + "originalContractedQuantity": { + "description": "The original contracted quantity (# impressions) for this deal. To ensure delivery, sometimes the publisher will book the deal with a impression buffer, such that guaranteed_looks is greater than the contracted quantity. However clients are billed using the original contracted quantity.", + "format": "int64", + "type": "string" + }, + "price": { + "$ref": "Price", + "description": "The original reservation price for the deal, if the currency code is different from the one used in negotiation." + } + }, + "type": "object" + }, + "DealTermsNonGuaranteedAuctionTerms": { + "id": "DealTermsNonGuaranteedAuctionTerms", + "properties": { + "autoOptimizePrivateAuction": { + "description": "True if open auction buyers are allowed to compete with invited buyers in this private auction (buyer-readonly).", + "type": "boolean" + }, + "reservePricePerBuyers": { + "description": "Reserve price for the specified buyer.", + "items": { + "$ref": "PricePerBuyer" + }, + "type": "array" + } + }, + "type": "object" + }, + "DealTermsNonGuaranteedFixedPriceTerms": { + "id": "DealTermsNonGuaranteedFixedPriceTerms", + "properties": { + "fixedPrices": { + "description": "Fixed price for the specified buyer.", + "items": { + "$ref": "PricePerBuyer" + }, + "type": "array" + } + }, + "type": "object" + }, + "DealTermsRubiconNonGuaranteedTerms": { + "id": "DealTermsRubiconNonGuaranteedTerms", + "properties": { + "priorityPrice": { + "$ref": "Price", + "description": "Optional price for Rubicon priority access in the auction." + }, + "standardPrice": { + "$ref": "Price", + "description": "Optional price for Rubicon standard access in the auction." + } + }, + "type": "object" + }, + "DeleteOrderDealsRequest": { + "id": "DeleteOrderDealsRequest", + "properties": { + "dealIds": { + "description": "List of deals to delete for a given proposal", + "items": { + "type": "string" + }, + "type": "array" + }, + "proposalRevisionNumber": { + "description": "The last known proposal revision number.", + "format": "int64", + "type": "string" + }, + "updateAction": { + "description": "Indicates an optional action to take on the proposal", + "type": "string" + } + }, + "type": "object" + }, + "DeleteOrderDealsResponse": { + "id": "DeleteOrderDealsResponse", + "properties": { + "deals": { + "description": "List of deals deleted (in the same proposal as passed in the request)", + "items": { + "$ref": "MarketplaceDeal" + }, + "type": "array" + }, + "proposalRevisionNumber": { + "description": "The updated revision number for the proposal.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "DeliveryControl": { + "id": "DeliveryControl", + "properties": { + "creativeBlockingLevel": { + "type": "string" + }, + "deliveryRateType": { + "type": "string" + }, + "frequencyCaps": { + "items": { + "$ref": "DeliveryControlFrequencyCap" + }, + "type": "array" + } + }, + "type": "object" + }, + "DeliveryControlFrequencyCap": { + "id": "DeliveryControlFrequencyCap", + "properties": { + "maxImpressions": { + "format": "int32", + "type": "integer" + }, + "numTimeUnits": { + "format": "int32", + "type": "integer" + }, + "timeUnitType": { + "type": "string" + } + }, + "type": "object" + }, + "Dimension": { + "description": "This message carries publisher provided breakdown. E.g. {dimension_type: 'COUNTRY', [{dimension_value: {id: 1, name: 'US'}}, {dimension_value: {id: 2, name: 'UK'}}]}", + "id": "Dimension", + "properties": { + "dimensionType": { + "type": "string" + }, + "dimensionValues": { + "items": { + "$ref": "DimensionDimensionValue" + }, + "type": "array" + } + }, + "type": "object" + }, + "DimensionDimensionValue": { + "description": "Value of the dimension.", + "id": "DimensionDimensionValue", + "properties": { + "id": { + "description": "Id of the dimension.", + "format": "int32", + "type": "integer" + }, + "name": { + "description": "Name of the dimension mainly for debugging purposes, except for the case of CREATIVE_SIZE. For CREATIVE_SIZE, strings are used instead of ids.", + "type": "string" + }, + "percentage": { + "description": "Percent of total impressions for a dimension type. e.g. {dimension_type: 'GENDER', [{dimension_value: {id: 1, name: 'MALE', percentage: 60}}]} Gender MALE is 60% of all impressions which have gender.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "EditAllOrderDealsRequest": { + "id": "EditAllOrderDealsRequest", + "properties": { + "deals": { + "description": "List of deals to edit. Service may perform 3 different operations based on comparison of deals in this list vs deals already persisted in database: 1. Add new deal to proposal If a deal in this list does not exist in the proposal, the service will create a new deal and add it to the proposal. Validation will follow AddOrderDealsRequest. 2. Update existing deal in the proposal If a deal in this list already exist in the proposal, the service will update that existing deal to this new deal in the request. Validation will follow UpdateOrderDealsRequest. 3. Delete deals from the proposal (just need the id) If a existing deal in the proposal is not present in this list, the service will delete that deal from the proposal. Validation will follow DeleteOrderDealsRequest.", + "items": { + "$ref": "MarketplaceDeal" + }, + "type": "array" + }, + "proposal": { + "$ref": "Proposal", + "description": "If specified, also updates the proposal in the batch transaction. This is useful when the proposal and the deals need to be updated in one transaction." + }, + "proposalRevisionNumber": { + "description": "The last known revision number for the proposal.", + "format": "int64", + "type": "string" + }, + "updateAction": { + "description": "Indicates an optional action to take on the proposal", + "type": "string" + } + }, + "type": "object" + }, + "EditAllOrderDealsResponse": { + "id": "EditAllOrderDealsResponse", + "properties": { + "deals": { + "description": "List of all deals in the proposal after edit.", + "items": { + "$ref": "MarketplaceDeal" + }, + "type": "array" + }, + "orderRevisionNumber": { + "description": "The latest revision number after the update has been applied.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "GetOffersResponse": { + "id": "GetOffersResponse", + "properties": { + "products": { + "description": "The returned list of products.", + "items": { + "$ref": "Product" + }, + "type": "array" + } + }, + "type": "object" + }, + "GetOrderDealsResponse": { + "id": "GetOrderDealsResponse", + "properties": { + "deals": { + "description": "List of deals for the proposal", + "items": { + "$ref": "MarketplaceDeal" + }, + "type": "array" + } + }, + "type": "object" + }, + "GetOrderNotesResponse": { + "id": "GetOrderNotesResponse", + "properties": { + "notes": { + "description": "The list of matching notes. The notes for a proposal are ordered from oldest to newest. If the notes span multiple proposals, they will be grouped by proposal, with the notes for the most recently modified proposal appearing first.", + "items": { + "$ref": "MarketplaceNote" + }, + "type": "array" + } + }, + "type": "object" + }, + "GetOrdersResponse": { + "id": "GetOrdersResponse", + "properties": { + "proposals": { + "description": "The list of matching proposals.", + "items": { + "$ref": "Proposal" + }, + "type": "array" + } + }, + "type": "object" + }, + "GetPublisherProfilesByAccountIdResponse": { + "id": "GetPublisherProfilesByAccountIdResponse", + "properties": { + "profiles": { + "description": "Profiles for the requested publisher", + "items": { + "$ref": "PublisherProfileApiProto" + }, + "type": "array" + } + }, + "type": "object" + }, + "MarketplaceDeal": { + "description": "A proposal can contain multiple deals. A deal contains the terms and targeting information that is used for serving.", + "id": "MarketplaceDeal", + "properties": { + "buyerPrivateData": { + "$ref": "PrivateData", + "description": "Buyer private data (hidden from seller)." + }, + "creationTimeMs": { + "description": "The time (ms since epoch) of the deal creation. (readonly)", + "format": "int64", + "type": "string" + }, + "creativePreApprovalPolicy": { + "description": "Specifies the creative pre-approval policy (buyer-readonly)", + "type": "string" + }, + "creativeSafeFrameCompatibility": { + "description": "Specifies whether the creative is safeFrame compatible (buyer-readonly)", + "type": "string" + }, + "dealId": { + "description": "A unique deal-id for the deal (readonly).", + "type": "string" + }, + "dealServingMetadata": { + "$ref": "DealServingMetadata", + "description": "Metadata about the serving status of this deal (readonly, writes via custom actions)" + }, + "deliveryControl": { + "$ref": "DeliveryControl", + "description": "The set of fields around delivery control that are interesting for a buyer to see but are non-negotiable. These are set by the publisher. This message is assigned an id of 100 since some day we would want to model this as a protobuf extension." + }, + "externalDealId": { + "description": "The external deal id assigned to this deal once the deal is finalized. This is the deal-id that shows up in serving/reporting etc. (readonly)", + "type": "string" + }, + "flightEndTimeMs": { + "description": "Proposed flight end time of the deal (ms since epoch) This will generally be stored in a granularity of a second. (updatable)", + "format": "int64", + "type": "string" + }, + "flightStartTimeMs": { + "description": "Proposed flight start time of the deal (ms since epoch) This will generally be stored in a granularity of a second. (updatable)", + "format": "int64", + "type": "string" + }, + "inventoryDescription": { + "description": "Description for the deal terms. (buyer-readonly)", + "type": "string" + }, + "isRfpTemplate": { + "description": "Indicates whether the current deal is a RFP template. RFP template is created by buyer and not based on seller created products.", + "type": "boolean" + }, + "isSetupComplete": { + "description": "True, if the buyside inventory setup is complete for this deal. (readonly, except via OrderSetupCompleted action)", + "type": "boolean" + }, + "kind": { + "default": "adexchangebuyer#marketplaceDeal", + "description": "Identifies what kind of resource this is. Value: the fixed string \"adexchangebuyer#marketplaceDeal\".", + "type": "string" + }, + "lastUpdateTimeMs": { + "description": "The time (ms since epoch) when the deal was last updated. (readonly)", + "format": "int64", + "type": "string" + }, + "makegoodRequestedReason": { + "type": "string" + }, + "name": { + "description": "The name of the deal. (updatable)", + "type": "string" + }, + "productId": { + "description": "The product-id from which this deal was created. (readonly, except on create)", + "type": "string" + }, + "productRevisionNumber": { + "description": "The revision number of the product that the deal was created from (readonly, except on create)", + "format": "int64", + "type": "string" + }, + "programmaticCreativeSource": { + "description": "Specifies the creative source for programmatic deals, PUBLISHER means creative is provided by seller and ADVERTISR means creative is provided by buyer. (buyer-readonly)", + "type": "string" + }, + "proposalId": { + "type": "string" + }, + "sellerContacts": { + "description": "Optional Seller contact information for the deal (buyer-readonly)", + "items": { + "$ref": "ContactInformation" + }, + "type": "array" + }, + "sharedTargetings": { + "description": "The shared targeting visible to buyers and sellers. Each shared targeting entity is AND'd together. (updatable)", + "items": { + "$ref": "SharedTargeting" + }, + "type": "array" + }, + "syndicationProduct": { + "description": "The syndication product associated with the deal. (readonly, except on create)", + "type": "string" + }, + "terms": { + "$ref": "DealTerms", + "description": "The negotiable terms of the deal. (updatable)" + }, + "webPropertyCode": { + "type": "string" + } + }, + "type": "object" + }, + "MarketplaceDealParty": { + "id": "MarketplaceDealParty", + "properties": { + "buyer": { + "$ref": "Buyer", + "description": "The buyer/seller associated with the deal. One of buyer/seller is specified for a deal-party." + }, + "seller": { + "$ref": "Seller", + "description": "The buyer/seller associated with the deal. One of buyer/seller is specified for a deal party." + } + }, + "type": "object" + }, + "MarketplaceLabel": { + "id": "MarketplaceLabel", + "properties": { + "accountId": { + "description": "The accountId of the party that created the label.", + "type": "string" + }, + "createTimeMs": { + "description": "The creation time (in ms since epoch) for the label.", + "format": "int64", + "type": "string" + }, + "deprecatedMarketplaceDealParty": { + "$ref": "MarketplaceDealParty", + "description": "Information about the party that created the label." + }, + "label": { + "description": "The label to use.", + "type": "string" + } + }, + "type": "object" + }, + "MarketplaceNote": { + "description": "A proposal is associated with a bunch of notes which may optionally be associated with a deal and/or revision number.", + "id": "MarketplaceNote", + "properties": { + "creatorRole": { + "description": "The role of the person (buyer/seller) creating the note. (readonly)", + "type": "string" + }, + "dealId": { + "description": "Notes can optionally be associated with a deal. (readonly, except on create)", + "type": "string" + }, + "kind": { + "default": "adexchangebuyer#marketplaceNote", + "description": "Identifies what kind of resource this is. Value: the fixed string \"adexchangebuyer#marketplaceNote\".", + "type": "string" + }, + "note": { + "description": "The actual note to attach. (readonly, except on create)", + "type": "string" + }, + "noteId": { + "description": "The unique id for the note. (readonly)", + "type": "string" + }, + "proposalId": { + "description": "The proposalId that a note is attached to. (readonly)", + "type": "string" + }, + "proposalRevisionNumber": { + "description": "If the note is associated with a proposal revision number, then store that here. (readonly, except on create)", + "format": "int64", + "type": "string" + }, + "timestampMs": { + "description": "The timestamp (ms since epoch) that this note was created. (readonly)", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "MobileApplication": { + "id": "MobileApplication", + "properties": { + "appStore": { + "type": "string" + }, + "externalAppId": { + "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" + }, + "minimumViewabilityDecile": { + "description": "Requests where the predicted viewability is below the specified decile will not match. E.g. if the buyer sets this value to 5, requests from slots where the predicted viewability is below 50% will not match. If the predicted viewability is unknown this field will be ignored.", + "format": "int32", + "type": "integer" + }, + "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" + }, + "userIdentifierDataRequired": { + "description": "Requests containing the specified type of user data will match. Possible values are HOSTED_MATCH_DATA, which means the request is cookie-targetable and has a match in the buyer's hosted match table, and COOKIE_OR_IDFA, which means the request has either a targetable cookie or an iOS IDFA.", + "items": { + "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" + }, + "videoPlayerSizes": { + "description": "Video requests satisfying any of these player size constraints will match.", + "items": { + "properties": { + "aspectRatio": { + "description": "The type of aspect ratio. Leave this field blank to match all aspect ratios.", + "type": "string" + }, + "minHeight": { + "description": "The minimum player height in pixels. Leave this field blank to match any player height.", + "format": "int64", + "type": "string" + }, + "minWidth": { + "description": "The minimum player width in pixels. Leave this field blank to match any player width.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "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" + }, + "Price": { + "id": "Price", + "properties": { + "amountMicros": { + "description": "The price value in micros.", + "format": "double", + "type": "number" + }, + "currencyCode": { + "description": "The currency code for the price.", + "type": "string" + }, + "expectedCpmMicros": { + "description": "In case of CPD deals, the expected CPM in micros.", + "format": "double", + "type": "number" + }, + "pricingType": { + "description": "The pricing type for the deal/product.", + "type": "string" + } + }, + "type": "object" + }, + "PricePerBuyer": { + "description": "Used to specify pricing rules for buyers. Each PricePerBuyer in a product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer we look for the most specific matching rule - we first look for a rule matching the buyer and otherwise look for a matching rule where no buyer is set.", + "id": "PricePerBuyer", + "properties": { + "auctionTier": { + "description": "Optional access type for this buyer.", + "type": "string" + }, + "billedBuyer": { + "$ref": "Buyer", + "description": "Reference to the buyer that will get billed." + }, + "buyer": { + "$ref": "Buyer", + "description": "The buyer who will pay this price. If unset, all buyers can pay this price (if the advertisers match, and there's no more specific rule matching the buyer)." + }, + "price": { + "$ref": "Price", + "description": "The specified price" + } + }, + "type": "object" + }, + "PrivateData": { + "id": "PrivateData", + "properties": { + "referenceId": { + "type": "string" + }, + "referencePayload": { + "format": "byte", + "type": "string" + } + }, + "type": "object" + }, + "Product": { + "description": "A product is segment of inventory that a seller wishes to sell. It is associated with certain terms and targeting information which helps buyer know more about the inventory. Each field in a product can have one of the following setting:\n\n(readonly) - It is an error to try and set this field. (buyer-readonly) - Only the seller can set this field. (seller-readonly) - Only the buyer can set this field. (updatable) - The field is updatable at all times by either buyer or the seller.", + "id": "Product", + "properties": { + "billedBuyer": { + "$ref": "Buyer", + "description": "The billed buyer corresponding to the buyer that created the offer. (readonly, except on create)" + }, + "buyer": { + "$ref": "Buyer", + "description": "The buyer that created the offer if this is a buyer initiated offer (readonly, except on create)" + }, + "creationTimeMs": { + "description": "Creation time in ms. since epoch (readonly)", + "format": "int64", + "type": "string" + }, + "creatorContacts": { + "description": "Optional contact information for the creator of this product. (buyer-readonly)", + "items": { + "$ref": "ContactInformation" + }, + "type": "array" + }, + "creatorRole": { + "description": "The role that created the offer. Set to BUYER for buyer initiated offers.", + "type": "string" + }, + "deliveryControl": { + "$ref": "DeliveryControl", + "description": "The set of fields around delivery control that are interesting for a buyer to see but are non-negotiable. These are set by the publisher. This message is assigned an id of 100 since some day we would want to model this as a protobuf extension." + }, + "flightEndTimeMs": { + "description": "The proposed end time for the deal (ms since epoch) (buyer-readonly)", + "format": "int64", + "type": "string" + }, + "flightStartTimeMs": { + "description": "Inventory availability dates. (times are in ms since epoch) The granularity is generally in the order of seconds. (buyer-readonly)", + "format": "int64", + "type": "string" + }, + "hasCreatorSignedOff": { + "description": "If the creator has already signed off on the product, then the buyer can finalize the deal by accepting the product as is. When copying to a proposal, if any of the terms are changed, then auto_finalize is automatically set to false.", + "type": "boolean" + }, + "inventorySource": { + "description": "What exchange will provide this inventory (readonly, except on create).", + "type": "string" + }, + "kind": { + "default": "adexchangebuyer#product", + "description": "Identifies what kind of resource this is. Value: the fixed string \"adexchangebuyer#product\".", + "type": "string" + }, + "labels": { + "description": "Optional List of labels for the product (optional, buyer-readonly).", + "items": { + "$ref": "MarketplaceLabel" + }, + "type": "array" + }, + "lastUpdateTimeMs": { + "description": "Time of last update in ms. since epoch (readonly)", + "format": "int64", + "type": "string" + }, + "legacyOfferId": { + "description": "Optional legacy offer id if this offer is a preferred deal offer.", + "type": "string" + }, + "marketplacePublisherProfileId": { + "description": "Marketplace publisher profile Id. This Id differs from the regular publisher_profile_id in that 1. This is a new id, the old Id will be deprecated in 2017. 2. This id uniquely identifies a publisher profile by itself.", + "type": "string" + }, + "name": { + "description": "The name for this product as set by the seller. (buyer-readonly)", + "type": "string" + }, + "privateAuctionId": { + "description": "Optional private auction id if this offer is a private auction offer.", + "type": "string" + }, + "productId": { + "description": "The unique id for the product (readonly)", + "type": "string" + }, + "publisherProfileId": { + "description": "Id of the publisher profile for a given seller. A (seller.account_id, publisher_profile_id) pair uniquely identifies a publisher profile. Buyers can call the PublisherProfiles::List endpoint to get a list of publisher profiles for a given seller.", + "type": "string" + }, + "publisherProvidedForecast": { + "$ref": "PublisherProvidedForecast", + "description": "Publisher self-provided forecast information." + }, + "revisionNumber": { + "description": "The revision number of the product. (readonly)", + "format": "int64", + "type": "string" + }, + "seller": { + "$ref": "Seller", + "description": "Information about the seller that created this product (readonly, except on create)" + }, + "sharedTargetings": { + "description": "Targeting that is shared between the buyer and the seller. Each targeting criteria has a specified key and for each key there is a list of inclusion value or exclusion values. (buyer-readonly)", + "items": { + "$ref": "SharedTargeting" + }, + "type": "array" + }, + "state": { + "description": "The state of the product. (buyer-readonly)", + "type": "string" + }, + "syndicationProduct": { + "description": "The syndication product associated with the deal. (readonly, except on create)", + "type": "string" + }, + "terms": { + "$ref": "DealTerms", + "description": "The negotiable terms of the deal (buyer-readonly)" + }, + "webPropertyCode": { + "description": "The web property code for the seller. This field is meant to be copied over as is when creating deals.", + "type": "string" + } + }, + "type": "object" + }, + "Proposal": { + "description": "Represents a proposal in the marketplace. A proposal is the unit of negotiation between a seller and a buyer and contains deals which are served. Each field in a proposal can have one of the following setting:\n\n(readonly) - It is an error to try and set this field. (buyer-readonly) - Only the seller can set this field. (seller-readonly) - Only the buyer can set this field. (updatable) - The field is updatable at all times by either buyer or the seller.", + "id": "Proposal", + "properties": { + "billedBuyer": { + "$ref": "Buyer", + "description": "Reference to the buyer that will get billed for this proposal. (readonly)" + }, + "buyer": { + "$ref": "Buyer", + "description": "Reference to the buyer on the proposal. (readonly, except on create)" + }, + "buyerContacts": { + "description": "Optional contact information of the buyer. (seller-readonly)", + "items": { + "$ref": "ContactInformation" + }, + "type": "array" + }, + "buyerPrivateData": { + "$ref": "PrivateData", + "description": "Private data for buyer. (hidden from seller)." + }, + "dbmAdvertiserIds": { + "description": "IDs of DBM advertisers permission to this proposal.", + "items": { + "type": "string" + }, + "type": "array" + }, + "hasBuyerSignedOff": { + "description": "When an proposal is in an accepted state, indicates whether the buyer has signed off. Once both sides have signed off on a deal, the proposal can be finalized by the seller. (seller-readonly)", + "type": "boolean" + }, + "hasSellerSignedOff": { + "description": "When an proposal is in an accepted state, indicates whether the buyer has signed off Once both sides have signed off on a deal, the proposal can be finalized by the seller. (buyer-readonly)", + "type": "boolean" + }, + "inventorySource": { + "description": "What exchange will provide this inventory (readonly, except on create).", + "type": "string" + }, + "isRenegotiating": { + "description": "True if the proposal is being renegotiated (readonly).", + "type": "boolean" + }, + "isSetupComplete": { + "description": "True, if the buyside inventory setup is complete for this proposal. (readonly, except via OrderSetupCompleted action) Deprecated in favor of deal level setup complete flag.", + "type": "boolean" + }, + "kind": { + "default": "adexchangebuyer#proposal", + "description": "Identifies what kind of resource this is. Value: the fixed string \"adexchangebuyer#proposal\".", + "type": "string" + }, + "labels": { + "description": "List of labels associated with the proposal. (readonly)", + "items": { + "$ref": "MarketplaceLabel" + }, + "type": "array" + }, + "lastUpdaterOrCommentorRole": { + "description": "The role of the last user that either updated the proposal or left a comment. (readonly)", + "type": "string" + }, + "name": { + "description": "The name for the proposal (updatable)", + "type": "string" + }, + "negotiationId": { + "description": "Optional negotiation id if this proposal is a preferred deal proposal.", + "type": "string" + }, + "originatorRole": { + "description": "Indicates whether the buyer/seller created the proposal.(readonly)", + "type": "string" + }, + "privateAuctionId": { + "description": "Optional private auction id if this proposal is a private auction proposal.", + "type": "string" + }, + "proposalId": { + "description": "The unique id of the proposal. (readonly).", + "type": "string" + }, + "proposalState": { + "description": "The current state of the proposal. (readonly)", + "type": "string" + }, + "revisionNumber": { + "description": "The revision number for the proposal (readonly).", + "format": "int64", + "type": "string" + }, + "revisionTimeMs": { + "description": "The time (ms since epoch) when the proposal was last revised (readonly).", + "format": "int64", + "type": "string" + }, + "seller": { + "$ref": "Seller", + "description": "Reference to the seller on the proposal. (readonly, except on create)" + }, + "sellerContacts": { + "description": "Optional contact information of the seller (buyer-readonly).", + "items": { + "$ref": "ContactInformation" + }, + "type": "array" + } + }, + "type": "object" + }, + "PublisherProfileApiProto": { + "id": "PublisherProfileApiProto", + "properties": { + "audience": { + "description": "Publisher provided info on its audience.", + "type": "string" + }, + "buyerPitchStatement": { + "description": "A pitch statement for the buyer", + "type": "string" + }, + "directContact": { + "description": "Direct contact for the publisher profile.", + "type": "string" + }, + "exchange": { + "description": "Exchange where this publisher profile is from. E.g. AdX, Rubicon etc...", + "type": "string" + }, + "forecastInventory": { + "type": "string" + }, + "googlePlusLink": { + "description": "Link to publisher's Google+ page.", + "type": "string" + }, + "isParent": { + "description": "True, if this is the parent profile, which represents all domains owned by the publisher.", + "type": "boolean" + }, + "isPublished": { + "description": "True, if this profile is published. Deprecated for state.", + "type": "boolean" + }, + "kind": { + "default": "adexchangebuyer#publisherProfileApiProto", + "description": "Identifies what kind of resource this is. Value: the fixed string \"adexchangebuyer#publisherProfileApiProto\".", + "type": "string" + }, + "logoUrl": { + "description": "The url to the logo for the publisher.", + "type": "string" + }, + "mediaKitLink": { + "description": "The url for additional marketing and sales materials.", + "type": "string" + }, + "name": { + "type": "string" + }, + "overview": { + "description": "Publisher provided overview.", + "type": "string" + }, + "profileId": { + "description": "The pair of (seller.account_id, profile_id) uniquely identifies a publisher profile for a given publisher.", + "format": "int32", + "type": "integer" + }, + "programmaticContact": { + "description": "Programmatic contact for the publisher profile.", + "type": "string" + }, + "publisherAppIds": { + "description": "The list of app IDs represented in this publisher profile. Empty if this is a parent profile. Deprecated in favor of publisher_app.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + }, + "publisherApps": { + "description": "The list of apps represented in this publisher profile. Empty if this is a parent profile.", + "items": { + "$ref": "MobileApplication" + }, + "type": "array" + }, + "publisherDomains": { + "description": "The list of domains represented in this publisher profile. Empty if this is a parent profile.", + "items": { + "type": "string" + }, + "type": "array" + }, + "publisherProfileId": { + "description": "Unique Id for publisher profile.", + "type": "string" + }, + "publisherProvidedForecast": { + "$ref": "PublisherProvidedForecast", + "description": "Publisher provided forecasting information." + }, + "rateCardInfoLink": { + "description": "Link to publisher rate card", + "type": "string" + }, + "samplePageLink": { + "description": "Link for a sample content page.", + "type": "string" + }, + "seller": { + "$ref": "Seller", + "description": "Seller of the publisher profile." + }, + "state": { + "description": "State of the publisher profile.", + "type": "string" + }, + "topHeadlines": { + "description": "Publisher provided key metrics and rankings.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "PublisherProvidedForecast": { + "description": "This message carries publisher provided forecasting information.", + "id": "PublisherProvidedForecast", + "properties": { + "dimensions": { + "description": "Publisher provided dimensions. E.g. geo, sizes etc...", + "items": { + "$ref": "Dimension" + }, + "type": "array" + }, + "weeklyImpressions": { + "description": "Publisher provided weekly impressions.", + "format": "int64", + "type": "string" + }, + "weeklyUniques": { + "description": "Publisher provided weekly uniques.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "Seller": { + "id": "Seller", + "properties": { + "accountId": { + "description": "The unique id for the seller. The seller fills in this field. The seller account id is then available to buyer in the product.", + "type": "string" + }, + "subAccountId": { + "description": "Optional sub-account id for the seller.", + "type": "string" + } + }, + "type": "object" + }, + "SharedTargeting": { + "id": "SharedTargeting", + "properties": { + "exclusions": { + "description": "The list of values to exclude from targeting. Each value is AND'd together.", + "items": { + "$ref": "TargetingValue" + }, + "type": "array" + }, + "inclusions": { + "description": "The list of value to include as part of the targeting. Each value is OR'd together.", + "items": { + "$ref": "TargetingValue" + }, + "type": "array" + }, + "key": { + "description": "The key representing the shared targeting criterion.", + "type": "string" + } + }, + "type": "object" + }, + "TargetingValue": { + "id": "TargetingValue", + "properties": { + "creativeSizeValue": { + "$ref": "TargetingValueCreativeSize", + "description": "The creative size value to exclude/include." + }, + "dayPartTargetingValue": { + "$ref": "TargetingValueDayPartTargeting", + "description": "The daypart targeting to include / exclude. Filled in when the key is GOOG_DAYPART_TARGETING." + }, + "demogAgeCriteriaValue": { + "$ref": "TargetingValueDemogAgeCriteria" + }, + "demogGenderCriteriaValue": { + "$ref": "TargetingValueDemogGenderCriteria" + }, + "longValue": { + "description": "The long value to exclude/include.", + "format": "int64", + "type": "string" + }, + "requestPlatformTargetingValue": { + "$ref": "TargetingValueRequestPlatformTargeting" + }, + "stringValue": { + "description": "The string value to exclude/include.", + "type": "string" + } + }, + "type": "object" + }, + "TargetingValueCreativeSize": { + "description": "Next Id: 7", + "id": "TargetingValueCreativeSize", + "properties": { + "allowedFormats": { + "description": "The formats allowed by the publisher.", + "items": { + "type": "string" + }, + "type": "array" + }, + "companionSizes": { + "description": "For video size type, the list of companion sizes.", + "items": { + "$ref": "TargetingValueSize" + }, + "type": "array" + }, + "creativeSizeType": { + "description": "The Creative size type.", + "type": "string" + }, + "nativeTemplate": { + "description": "The native template for native ad.", + "type": "string" + }, + "size": { + "$ref": "TargetingValueSize", + "description": "For regular or video creative size type, specifies the size of the creative." + }, + "skippableAdType": { + "description": "The skippable ad type for video size.", + "type": "string" + } + }, + "type": "object" + }, + "TargetingValueDayPartTargeting": { + "id": "TargetingValueDayPartTargeting", + "properties": { + "dayParts": { + "items": { + "$ref": "TargetingValueDayPartTargetingDayPart" + }, + "type": "array" + }, + "timeZoneType": { + "type": "string" + } + }, + "type": "object" + }, + "TargetingValueDayPartTargetingDayPart": { + "id": "TargetingValueDayPartTargetingDayPart", + "properties": { + "dayOfWeek": { + "type": "string" + }, + "endHour": { + "format": "int32", + "type": "integer" + }, + "endMinute": { + "format": "int32", + "type": "integer" + }, + "startHour": { + "format": "int32", + "type": "integer" + }, + "startMinute": { + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "TargetingValueDemogAgeCriteria": { + "id": "TargetingValueDemogAgeCriteria", + "properties": { + "demogAgeCriteriaIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "TargetingValueDemogGenderCriteria": { + "id": "TargetingValueDemogGenderCriteria", + "properties": { + "demogGenderCriteriaIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "TargetingValueRequestPlatformTargeting": { + "id": "TargetingValueRequestPlatformTargeting", + "properties": { + "requestPlatforms": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "TargetingValueSize": { + "id": "TargetingValueSize", + "properties": { + "height": { + "description": "The height of the creative.", + "format": "int32", + "type": "integer" + }, + "width": { + "description": "The width of the creative.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "UpdatePrivateAuctionProposalRequest": { + "id": "UpdatePrivateAuctionProposalRequest", + "properties": { + "externalDealId": { + "description": "The externalDealId of the deal to be updated.", + "type": "string" + }, + "note": { + "$ref": "MarketplaceNote", + "description": "Optional note to be added." + }, + "proposalRevisionNumber": { + "description": "The current revision number of the proposal to be updated.", + "format": "int64", + "type": "string" + }, + "updateAction": { + "description": "The proposed action on the private auction proposal.", + "type": "string" + } + }, + "type": "object" + } + }, + "servicePath": "adexchangebuyer/v1.4/", + "title": "Ad Exchange Buyer API", + "version": "v1.4" +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/advisorynotifications.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/advisorynotifications.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..190e52994f665c4de65d8ae9c6b303182d8501f4 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/advisorynotifications.v1.json @@ -0,0 +1,656 @@ +{ +"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://advisorynotifications.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Advisorynotifications", +"description": "An API for accessing Advisory Notifications in Google Cloud", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/advisory-notifications", +"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": "advisorynotifications:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://advisorynotifications.mtls.googleapis.com/", +"name": "advisorynotifications", +"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": { +"methods": { +"getSettings": { +"description": "Get notification settings.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/settings", +"httpMethod": "GET", +"id": "advisorynotifications.organizations.locations.getSettings", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the settings to retrieve. Format: organizations/{organization}/locations/{location}/settings or projects/{projects}/locations/{location}/settings.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/settings$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudAdvisorynotificationsV1Settings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateSettings": { +"description": "Update notification settings.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/settings", +"httpMethod": "PATCH", +"id": "advisorynotifications.organizations.locations.updateSettings", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. The resource name of the settings to retrieve. Format: organizations/{organization}/locations/{location}/settings or projects/{projects}/locations/{location}/settings.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/settings$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudAdvisorynotificationsV1Settings" +}, +"response": { +"$ref": "GoogleCloudAdvisorynotificationsV1Settings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"notifications": { +"methods": { +"get": { +"description": "Gets a notification.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/notifications/{notificationsId}", +"httpMethod": "GET", +"id": "advisorynotifications.organizations.locations.notifications.get", +"parameterOrder": [ +"name" +], +"parameters": { +"languageCode": { +"description": "ISO code for requested localization language. If unset, will be interpereted as \"en\". If the requested language is valid, but not supported for this notification, English will be returned with an \"Not applicable\" LocalizationState. If the ISO code is invalid (i.e. not a real language), this RPC will throw an error.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. A name of the notification to retrieve. Format: organizations/{organization}/locations/{location}/notifications/{notification} or projects/{projects}/locations/{location}/notifications/{notification}.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/notifications/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudAdvisorynotificationsV1Notification" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists notifications under a given parent.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/notifications", +"httpMethod": "GET", +"id": "advisorynotifications.organizations.locations.notifications.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"languageCode": { +"description": "ISO code for requested localization language. If unset, will be interpereted as \"en\". If the requested language is valid, but not supported for this notification, English will be returned with an \"Not applicable\" LocalizationState. If the ISO code is invalid (i.e. not a real language), this RPC will throw an error.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of notifications to return. The service may return fewer than this value. If unspecified or equal to 0, at most 50 notifications will be returned. The maximum value is 50; values above 50 will be coerced to 50.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token returned from a previous request. When paginating, all other parameters provided in the request must match the call that returned the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent, which owns this collection of notifications. Must be of the form \"organizations/{organization}/locations/{location}\" or \"projects/{project}/locations/{location}\".", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"view": { +"description": "Specifies which parts of the notification resource should be returned in the response.", +"enum": [ +"NOTIFICATION_VIEW_UNSPECIFIED", +"BASIC", +"FULL" +], +"enumDescriptions": [ +"Not specified, equivalent to BASIC.", +"Server responses only include title, creation time and Notification ID. Note: for internal use responses also include the last update time, the latest message text and whether notification has attachments.", +"Include everything." +], +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/notifications", +"response": { +"$ref": "GoogleCloudAdvisorynotificationsV1ListNotificationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +}, +"projects": { +"resources": { +"locations": { +"methods": { +"getSettings": { +"description": "Get notification settings.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/settings", +"httpMethod": "GET", +"id": "advisorynotifications.projects.locations.getSettings", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the settings to retrieve. Format: organizations/{organization}/locations/{location}/settings or projects/{projects}/locations/{location}/settings.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/settings$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudAdvisorynotificationsV1Settings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateSettings": { +"description": "Update notification settings.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/settings", +"httpMethod": "PATCH", +"id": "advisorynotifications.projects.locations.updateSettings", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. The resource name of the settings to retrieve. Format: organizations/{organization}/locations/{location}/settings or projects/{projects}/locations/{location}/settings.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/settings$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "GoogleCloudAdvisorynotificationsV1Settings" +}, +"response": { +"$ref": "GoogleCloudAdvisorynotificationsV1Settings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"notifications": { +"methods": { +"get": { +"description": "Gets a notification.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/notifications/{notificationsId}", +"httpMethod": "GET", +"id": "advisorynotifications.projects.locations.notifications.get", +"parameterOrder": [ +"name" +], +"parameters": { +"languageCode": { +"description": "ISO code for requested localization language. If unset, will be interpereted as \"en\". If the requested language is valid, but not supported for this notification, English will be returned with an \"Not applicable\" LocalizationState. If the ISO code is invalid (i.e. not a real language), this RPC will throw an error.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. A name of the notification to retrieve. Format: organizations/{organization}/locations/{location}/notifications/{notification} or projects/{projects}/locations/{location}/notifications/{notification}.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/notifications/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudAdvisorynotificationsV1Notification" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists notifications under a given parent.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/notifications", +"httpMethod": "GET", +"id": "advisorynotifications.projects.locations.notifications.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"languageCode": { +"description": "ISO code for requested localization language. If unset, will be interpereted as \"en\". If the requested language is valid, but not supported for this notification, English will be returned with an \"Not applicable\" LocalizationState. If the ISO code is invalid (i.e. not a real language), this RPC will throw an error.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of notifications to return. The service may return fewer than this value. If unspecified or equal to 0, at most 50 notifications will be returned. The maximum value is 50; values above 50 will be coerced to 50.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token returned from a previous request. When paginating, all other parameters provided in the request must match the call that returned the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent, which owns this collection of notifications. Must be of the form \"organizations/{organization}/locations/{location}\" or \"projects/{project}/locations/{location}\".", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"view": { +"description": "Specifies which parts of the notification resource should be returned in the response.", +"enum": [ +"NOTIFICATION_VIEW_UNSPECIFIED", +"BASIC", +"FULL" +], +"enumDescriptions": [ +"Not specified, equivalent to BASIC.", +"Server responses only include title, creation time and Notification ID. Note: for internal use responses also include the last update time, the latest message text and whether notification has attachments.", +"Include everything." +], +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/notifications", +"response": { +"$ref": "GoogleCloudAdvisorynotificationsV1ListNotificationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +}, +"revision": "20240707", +"rootUrl": "https://advisorynotifications.googleapis.com/", +"schemas": { +"GoogleCloudAdvisorynotificationsV1Attachment": { +"description": "Attachment with specific information about the issue.", +"id": "GoogleCloudAdvisorynotificationsV1Attachment", +"properties": { +"csv": { +"$ref": "GoogleCloudAdvisorynotificationsV1Csv", +"description": "A CSV file attachment. Max size is 10 MB." +}, +"displayName": { +"description": "The title of the attachment.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudAdvisorynotificationsV1Csv": { +"description": "A representation of a CSV file attachment, as a list of column headers and a list of data rows.", +"id": "GoogleCloudAdvisorynotificationsV1Csv", +"properties": { +"dataRows": { +"description": "The list of data rows in a CSV file, as string arrays rather than as a single comma-separated string.", +"items": { +"$ref": "GoogleCloudAdvisorynotificationsV1CsvCsvRow" +}, +"type": "array" +}, +"headers": { +"description": "The list of headers for data columns in a CSV file.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudAdvisorynotificationsV1CsvCsvRow": { +"description": "A representation of a single data row in a CSV file.", +"id": "GoogleCloudAdvisorynotificationsV1CsvCsvRow", +"properties": { +"entries": { +"description": "The data entries in a CSV file row, as a string array rather than a single comma-separated string.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudAdvisorynotificationsV1ListNotificationsResponse": { +"description": "Response of ListNotifications endpoint.", +"id": "GoogleCloudAdvisorynotificationsV1ListNotificationsResponse", +"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" +}, +"notifications": { +"description": "List of notifications under a given parent.", +"items": { +"$ref": "GoogleCloudAdvisorynotificationsV1Notification" +}, +"type": "array" +}, +"totalSize": { +"description": "Estimation of a total number of notifications.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudAdvisorynotificationsV1Message": { +"description": "A message which contains notification details.", +"id": "GoogleCloudAdvisorynotificationsV1Message", +"properties": { +"attachments": { +"description": "The attachments to download.", +"items": { +"$ref": "GoogleCloudAdvisorynotificationsV1Attachment" +}, +"type": "array" +}, +"body": { +"$ref": "GoogleCloudAdvisorynotificationsV1MessageBody", +"description": "The message content." +}, +"createTime": { +"description": "The Message creation timestamp.", +"format": "google-datetime", +"type": "string" +}, +"localizationTime": { +"description": "Time when Message was localized", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudAdvisorynotificationsV1MessageBody": { +"description": "A message body containing text.", +"id": "GoogleCloudAdvisorynotificationsV1MessageBody", +"properties": { +"text": { +"$ref": "GoogleCloudAdvisorynotificationsV1Text", +"description": "The text content of the message body." +} +}, +"type": "object" +}, +"GoogleCloudAdvisorynotificationsV1Notification": { +"description": "A notification object for notifying customers about security and privacy issues.", +"id": "GoogleCloudAdvisorynotificationsV1Notification", +"properties": { +"createTime": { +"description": "Output only. Time the notification was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"messages": { +"description": "A list of messages in the notification.", +"items": { +"$ref": "GoogleCloudAdvisorynotificationsV1Message" +}, +"type": "array" +}, +"name": { +"description": "The resource name of the notification. Format: organizations/{organization}/locations/{location}/notifications/{notification} or projects/{project}/locations/{location}/notifications/{notification}.", +"type": "string" +}, +"notificationType": { +"description": "Type of notification", +"enum": [ +"NOTIFICATION_TYPE_UNSPECIFIED", +"NOTIFICATION_TYPE_SECURITY_PRIVACY_ADVISORY", +"NOTIFICATION_TYPE_SENSITIVE_ACTIONS", +"NOTIFICATION_TYPE_SECURITY_MSA", +"NOTIFICATION_TYPE_THREAT_HORIZONS" +], +"enumDescriptions": [ +"Default type", +"Security and privacy advisory notifications", +"Sensitive action notifications", +"General security MSA", +"Threat horizons MSA" +], +"type": "string" +}, +"subject": { +"$ref": "GoogleCloudAdvisorynotificationsV1Subject", +"description": "The subject line of the notification." +} +}, +"type": "object" +}, +"GoogleCloudAdvisorynotificationsV1NotificationSettings": { +"description": "Settings for each NotificationType.", +"id": "GoogleCloudAdvisorynotificationsV1NotificationSettings", +"properties": { +"enabled": { +"description": "Whether the associated NotificationType is enabled.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudAdvisorynotificationsV1Settings": { +"description": "Settings for Advisory Notifications.", +"id": "GoogleCloudAdvisorynotificationsV1Settings", +"properties": { +"etag": { +"description": "Required. Fingerprint for optimistic concurrency returned in Get requests. Must be provided for Update requests. If the value provided does not match the value known to the server, ABORTED will be thrown, and the client should retry the read-modify-write cycle.", +"type": "string" +}, +"name": { +"description": "Identifier. The resource name of the settings to retrieve. Format: organizations/{organization}/locations/{location}/settings or projects/{projects}/locations/{location}/settings.", +"type": "string" +}, +"notificationSettings": { +"additionalProperties": { +"$ref": "GoogleCloudAdvisorynotificationsV1NotificationSettings" +}, +"description": "Required. Map of each notification type and its settings to get/set all settings at once. The server will validate the value for each notification type.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudAdvisorynotificationsV1Subject": { +"description": "A subject line of a notification.", +"id": "GoogleCloudAdvisorynotificationsV1Subject", +"properties": { +"text": { +"$ref": "GoogleCloudAdvisorynotificationsV1Text", +"description": "The text content." +} +}, +"type": "object" +}, +"GoogleCloudAdvisorynotificationsV1Text": { +"description": "A text object containing the English text and its localized copies.", +"id": "GoogleCloudAdvisorynotificationsV1Text", +"properties": { +"enText": { +"description": "The English copy.", +"type": "string" +}, +"localizationState": { +"description": "Status of the localization.", +"enum": [ +"LOCALIZATION_STATE_UNSPECIFIED", +"LOCALIZATION_STATE_NOT_APPLICABLE", +"LOCALIZATION_STATE_PENDING", +"LOCALIZATION_STATE_COMPLETED" +], +"enumDescriptions": [ +"Not used.", +"Localization is not applicable for requested language. This can happen when: - The requested language was not supported by Advisory Notifications at the time of localization (including notifications created before the localization feature was launched). - The requested language is English, so only the English text is returned.", +"Localization for requested language is in progress, and not ready yet.", +"Localization for requested language is completed." +], +"type": "string" +}, +"localizedText": { +"description": "The requested localized copy (if applicable).", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Advisory Notifications 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/analyticsadmin.v1beta.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/analyticsadmin.v1beta.json new file mode 100644 index 0000000000000000000000000000000000000000..b04a3d27d5873baecda306bef9650fd98ec356ab --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/analyticsadmin.v1beta.json @@ -0,0 +1,3558 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/analytics.edit": { +"description": "Edit Google Analytics management entities" +}, +"https://www.googleapis.com/auth/analytics.readonly": { +"description": "See and download your Google Analytics data" +} +} +} +}, +"basePath": "", +"baseUrl": "https://analyticsadmin.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Google Analytics Admin", +"description": "Manage properties in Google Analytics. Warning: Creating multiple Customer Applications, Accounts, or Projects to simulate or act as a single Customer Application, Account, or Project (respectively) or to circumvent Service-specific usage limits or quotas is a direct violation of Google Cloud Platform Terms of Service as well as Google APIs Terms of Service. These actions can result in immediate termination of your GCP project(s) without any warning.", +"discoveryVersion": "v1", +"documentationLink": "http://code.google.com/apis/analytics/docs/mgmt/home.html", +"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": "analyticsadmin:v1beta", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://analyticsadmin.mtls.googleapis.com/", +"name": "analyticsadmin", +"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": { +"accountSummaries": { +"methods": { +"list": { +"description": "Returns summaries of all accounts accessible by the caller.", +"flatPath": "v1beta/accountSummaries", +"httpMethod": "GET", +"id": "analyticsadmin.accountSummaries.list", +"parameterOrder": [], +"parameters": { +"pageSize": { +"description": "The maximum number of AccountSummary resources to return. The service may return fewer than this value, even if there are additional pages. If unspecified, at most 50 resources will be returned. The maximum value is 200; (higher values will be coerced to the maximum)", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListAccountSummaries` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListAccountSummaries` must match the call that provided the page token.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta/accountSummaries", +"response": { +"$ref": "GoogleAnalyticsAdminV1betaListAccountSummariesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/analytics.edit", +"https://www.googleapis.com/auth/analytics.readonly" +] +} +} +}, +"accounts": { +"methods": { +"delete": { +"description": "Marks target Account as soft-deleted (ie: \"trashed\") and returns it. This API does not have a method to restore soft-deleted accounts. However, they can be restored using the Trash Can UI. If the accounts are not restored before the expiration time, the account and all child resources (eg: Properties, GoogleAdsLinks, Streams, AccessBindings) will be permanently purged. https://support.google.com/analytics/answer/6154772 Returns an error if the target is not found.", +"flatPath": "v1beta/accounts/{accountsId}", +"httpMethod": "DELETE", +"id": "analyticsadmin.accounts.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the Account to soft-delete. Format: accounts/{account} Example: \"accounts/100\"", +"location": "path", +"pattern": "^accounts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/analytics.edit" +] +}, +"get": { +"description": "Lookup for a single Account.", +"flatPath": "v1beta/accounts/{accountsId}", +"httpMethod": "GET", +"id": "analyticsadmin.accounts.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the account to lookup. Format: accounts/{account} Example: \"accounts/100\"", +"location": "path", +"pattern": "^accounts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+name}", +"response": { +"$ref": "GoogleAnalyticsAdminV1betaAccount" +}, +"scopes": [ +"https://www.googleapis.com/auth/analytics.edit", +"https://www.googleapis.com/auth/analytics.readonly" +] +}, +"getDataSharingSettings": { +"description": "Get data sharing settings on an account. Data sharing settings are singletons.", +"flatPath": "v1beta/accounts/{accountsId}/dataSharingSettings", +"httpMethod": "GET", +"id": "analyticsadmin.accounts.getDataSharingSettings", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the settings to lookup. Format: accounts/{account}/dataSharingSettings Example: `accounts/1000/dataSharingSettings`", +"location": "path", +"pattern": "^accounts/[^/]+/dataSharingSettings$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+name}", +"response": { +"$ref": "GoogleAnalyticsAdminV1betaDataSharingSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/analytics.edit", +"https://www.googleapis.com/auth/analytics.readonly" +] +}, +"list": { +"description": "Returns all accounts accessible by the caller. Note that these accounts might not currently have GA properties. Soft-deleted (ie: \"trashed\") accounts are excluded by default. Returns an empty list if no relevant accounts are found.", +"flatPath": "v1beta/accounts", +"httpMethod": "GET", +"id": "analyticsadmin.accounts.list", +"parameterOrder": [], +"parameters": { +"pageSize": { +"description": "The maximum number of resources to return. The service may return fewer than this value, even if there are additional pages. If unspecified, at most 50 resources will be returned. The maximum value is 200; (higher values will be coerced to the maximum)", +"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" +}, +"showDeleted": { +"description": "Whether to include soft-deleted (ie: \"trashed\") Accounts in the results. Accounts can be inspected to determine whether they are deleted or not.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1beta/accounts", +"response": { +"$ref": "GoogleAnalyticsAdminV1betaListAccountsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/analytics.edit", +"https://www.googleapis.com/auth/analytics.readonly" +] +}, +"patch": { +"description": "Updates an account.", +"flatPath": "v1beta/accounts/{accountsId}", +"httpMethod": "PATCH", +"id": "analyticsadmin.accounts.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. Resource name of this account. Format: accounts/{account} Example: \"accounts/100\"", +"location": "path", +"pattern": "^accounts/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The list of fields to be updated. Field names must be in snake case (for example, \"field_to_update\"). Omitted fields will not be updated. To replace the entire entity, use one path with the string \"*\" to match all fields.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta/{+name}", +"request": { +"$ref": "GoogleAnalyticsAdminV1betaAccount" +}, +"response": { +"$ref": "GoogleAnalyticsAdminV1betaAccount" +}, +"scopes": [ +"https://www.googleapis.com/auth/analytics.edit" +] +}, +"provisionAccountTicket": { +"description": "Requests a ticket for creating an account.", +"flatPath": "v1beta/accounts:provisionAccountTicket", +"httpMethod": "POST", +"id": "analyticsadmin.accounts.provisionAccountTicket", +"parameterOrder": [], +"parameters": {}, +"path": "v1beta/accounts:provisionAccountTicket", +"request": { +"$ref": "GoogleAnalyticsAdminV1betaProvisionAccountTicketRequest" +}, +"response": { +"$ref": "GoogleAnalyticsAdminV1betaProvisionAccountTicketResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/analytics.edit" +] +}, +"runAccessReport": { +"description": "Returns a customized report of data access records. The report provides records of each time a user reads Google Analytics reporting data. Access records are retained for up to 2 years. Data Access Reports can be requested for a property. Reports may be requested for any property, but dimensions that aren't related to quota can only be requested on Google Analytics 360 properties. This method is only available to Administrators. These data access records include GA UI Reporting, GA UI Explorations, GA Data API, and other products like Firebase & Admob that can retrieve data from Google Analytics through a linkage. These records don't include property configuration changes like adding a stream or changing a property's time zone. For configuration change history, see [searchChangeHistoryEvents](https://developers.google.com/analytics/devguides/config/admin/v1/rest/v1alpha/accounts/searchChangeHistoryEvents). To give your feedback on this API, complete the [Google Analytics Access Reports feedback](https://docs.google.com/forms/d/e/1FAIpQLSdmEBUrMzAEdiEKk5TV5dEHvDUZDRlgWYdQdAeSdtR4hVjEhw/viewform) form.", +"flatPath": "v1beta/accounts/{accountsId}:runAccessReport", +"httpMethod": "POST", +"id": "analyticsadmin.accounts.runAccessReport", +"parameterOrder": [ +"entity" +], +"parameters": { +"entity": { +"description": "The Data Access Report supports requesting at the property level or account level. If requested at the account level, Data Access Reports include all access for all properties under that account. To request at the property level, entity should be for example 'properties/123' if \"123\" is your Google Analytics property ID. To request at the account level, entity should be for example 'accounts/1234' if \"1234\" is your Google Analytics Account ID.", +"location": "path", +"pattern": "^accounts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+entity}:runAccessReport", +"request": { +"$ref": "GoogleAnalyticsAdminV1betaRunAccessReportRequest" +}, +"response": { +"$ref": "GoogleAnalyticsAdminV1betaRunAccessReportResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/analytics.edit", +"https://www.googleapis.com/auth/analytics.readonly" +] +}, +"searchChangeHistoryEvents": { +"description": "Searches through all changes to an account or its children given the specified set of filters. Only returns the subset of changes supported by the API. The UI may return additional changes.", +"flatPath": "v1beta/accounts/{accountsId}:searchChangeHistoryEvents", +"httpMethod": "POST", +"id": "analyticsadmin.accounts.searchChangeHistoryEvents", +"parameterOrder": [ +"account" +], +"parameters": { +"account": { +"description": "Required. The account resource for which to return change history resources. Format: accounts/{account} Example: `accounts/100`", +"location": "path", +"pattern": "^accounts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+account}:searchChangeHistoryEvents", +"request": { +"$ref": "GoogleAnalyticsAdminV1betaSearchChangeHistoryEventsRequest" +}, +"response": { +"$ref": "GoogleAnalyticsAdminV1betaSearchChangeHistoryEventsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/analytics.edit" +] +} +} +}, +"properties": { +"methods": { +"acknowledgeUserDataCollection": { +"description": "Acknowledges the terms of user data collection for the specified property. This acknowledgement must be completed (either in the Google Analytics UI or through this API) before MeasurementProtocolSecret resources may be created.", +"flatPath": "v1beta/properties/{propertiesId}:acknowledgeUserDataCollection", +"httpMethod": "POST", +"id": "analyticsadmin.properties.acknowledgeUserDataCollection", +"parameterOrder": [ +"property" +], +"parameters": { +"property": { +"description": "Required. The property for which to acknowledge user data collection.", +"location": "path", +"pattern": "^properties/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+property}:acknowledgeUserDataCollection", +"request": { +"$ref": "GoogleAnalyticsAdminV1betaAcknowledgeUserDataCollectionRequest" +}, +"response": { +"$ref": "GoogleAnalyticsAdminV1betaAcknowledgeUserDataCollectionResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/analytics.edit" +] +}, +"create": { +"description": "Creates a Google Analytics property with the specified location and attributes.", +"flatPath": "v1beta/properties", +"httpMethod": "POST", +"id": "analyticsadmin.properties.create", +"parameterOrder": [], +"parameters": {}, +"path": "v1beta/properties", +"request": { +"$ref": "GoogleAnalyticsAdminV1betaProperty" +}, +"response": { +"$ref": "GoogleAnalyticsAdminV1betaProperty" +}, +"scopes": [ +"https://www.googleapis.com/auth/analytics.edit" +] +}, +"delete": { +"description": "Marks target Property as soft-deleted (ie: \"trashed\") and returns it. This API does not have a method to restore soft-deleted properties. However, they can be restored using the Trash Can UI. If the properties are not restored before the expiration time, the Property and all child resources (eg: GoogleAdsLinks, Streams, AccessBindings) will be permanently purged. https://support.google.com/analytics/answer/6154772 Returns an error if the target is not found.", +"flatPath": "v1beta/properties/{propertiesId}", +"httpMethod": "DELETE", +"id": "analyticsadmin.properties.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the Property to soft-delete. Format: properties/{property_id} Example: \"properties/1000\"", +"location": "path", +"pattern": "^properties/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+name}", +"response": { +"$ref": "GoogleAnalyticsAdminV1betaProperty" +}, +"scopes": [ +"https://www.googleapis.com/auth/analytics.edit" +] +}, +"get": { +"description": "Lookup for a single GA Property.", +"flatPath": "v1beta/properties/{propertiesId}", +"httpMethod": "GET", +"id": "analyticsadmin.properties.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the property to lookup. Format: properties/{property_id} Example: \"properties/1000\"", +"location": "path", +"pattern": "^properties/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+name}", +"response": { +"$ref": "GoogleAnalyticsAdminV1betaProperty" +}, +"scopes": [ +"https://www.googleapis.com/auth/analytics.edit", +"https://www.googleapis.com/auth/analytics.readonly" +] +}, +"getDataRetentionSettings": { +"description": "Returns the singleton data retention settings for this property.", +"flatPath": "v1beta/properties/{propertiesId}/dataRetentionSettings", +"httpMethod": "GET", +"id": "analyticsadmin.properties.getDataRetentionSettings", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the settings to lookup. Format: properties/{property}/dataRetentionSettings Example: \"properties/1000/dataRetentionSettings\"", +"location": "path", +"pattern": "^properties/[^/]+/dataRetentionSettings$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+name}", +"response": { +"$ref": "GoogleAnalyticsAdminV1betaDataRetentionSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/analytics.edit", +"https://www.googleapis.com/auth/analytics.readonly" +] +}, +"list": { +"description": "Returns child Properties under the specified parent Account. Properties will be excluded if the caller does not have access. Soft-deleted (ie: \"trashed\") properties are excluded by default. Returns an empty list if no relevant properties are found.", +"flatPath": "v1beta/properties", +"httpMethod": "GET", +"id": "analyticsadmin.properties.list", +"parameterOrder": [], +"parameters": { +"filter": { +"description": "Required. An expression for filtering the results of the request. Fields eligible for filtering are: `parent:`(The resource name of the parent account/property) or `ancestor:`(The resource name of the parent account) or `firebase_project:`(The id or number of the linked firebase project). Some examples of filters: ``` | Filter | Description | |-----------------------------|-------------------------------------------| | parent:accounts/123 | The account with account id: 123. | | parent:properties/123 | The property with property id: 123. | | ancestor:accounts/123 | The account with account id: 123. | | firebase_project:project-id | The firebase project with id: project-id. | | firebase_project:123 | The firebase project with number: 123. | ```", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of resources to return. The service may return fewer than this value, even if there are additional pages. If unspecified, at most 50 resources will be returned. The maximum value is 200; (higher values will be coerced to the maximum)", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListProperties` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListProperties` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"showDeleted": { +"description": "Whether to include soft-deleted (ie: \"trashed\") Properties in the results. Properties can be inspected to determine whether they are deleted or not.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1beta/properties", +"response": { +"$ref": "GoogleAnalyticsAdminV1betaListPropertiesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/analytics.edit", +"https://www.googleapis.com/auth/analytics.readonly" +] +}, +"patch": { +"description": "Updates a property.", +"flatPath": "v1beta/properties/{propertiesId}", +"httpMethod": "PATCH", +"id": "analyticsadmin.properties.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. Resource name of this property. Format: properties/{property_id} Example: \"properties/1000\"", +"location": "path", +"pattern": "^properties/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The list of fields to be updated. Field names must be in snake case (e.g., \"field_to_update\"). Omitted fields will not be updated. To replace the entire entity, use one path with the string \"*\" to match all fields.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta/{+name}", +"request": { +"$ref": "GoogleAnalyticsAdminV1betaProperty" +}, +"response": { +"$ref": "GoogleAnalyticsAdminV1betaProperty" +}, +"scopes": [ +"https://www.googleapis.com/auth/analytics.edit" +] +}, +"runAccessReport": { +"description": "Returns a customized report of data access records. The report provides records of each time a user reads Google Analytics reporting data. Access records are retained for up to 2 years. Data Access Reports can be requested for a property. Reports may be requested for any property, but dimensions that aren't related to quota can only be requested on Google Analytics 360 properties. This method is only available to Administrators. These data access records include GA UI Reporting, GA UI Explorations, GA Data API, and other products like Firebase & Admob that can retrieve data from Google Analytics through a linkage. These records don't include property configuration changes like adding a stream or changing a property's time zone. For configuration change history, see [searchChangeHistoryEvents](https://developers.google.com/analytics/devguides/config/admin/v1/rest/v1alpha/accounts/searchChangeHistoryEvents). To give your feedback on this API, complete the [Google Analytics Access Reports feedback](https://docs.google.com/forms/d/e/1FAIpQLSdmEBUrMzAEdiEKk5TV5dEHvDUZDRlgWYdQdAeSdtR4hVjEhw/viewform) form.", +"flatPath": "v1beta/properties/{propertiesId}:runAccessReport", +"httpMethod": "POST", +"id": "analyticsadmin.properties.runAccessReport", +"parameterOrder": [ +"entity" +], +"parameters": { +"entity": { +"description": "The Data Access Report supports requesting at the property level or account level. If requested at the account level, Data Access Reports include all access for all properties under that account. To request at the property level, entity should be for example 'properties/123' if \"123\" is your Google Analytics property ID. To request at the account level, entity should be for example 'accounts/1234' if \"1234\" is your Google Analytics Account ID.", +"location": "path", +"pattern": "^properties/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+entity}:runAccessReport", +"request": { +"$ref": "GoogleAnalyticsAdminV1betaRunAccessReportRequest" +}, +"response": { +"$ref": "GoogleAnalyticsAdminV1betaRunAccessReportResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/analytics.edit", +"https://www.googleapis.com/auth/analytics.readonly" +] +}, +"updateDataRetentionSettings": { +"description": "Updates the singleton data retention settings for this property.", +"flatPath": "v1beta/properties/{propertiesId}/dataRetentionSettings", +"httpMethod": "PATCH", +"id": "analyticsadmin.properties.updateDataRetentionSettings", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. Resource name for this DataRetentionSetting resource. Format: properties/{property}/dataRetentionSettings", +"location": "path", +"pattern": "^properties/[^/]+/dataRetentionSettings$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The list of fields to be updated. Field names must be in snake case (e.g., \"field_to_update\"). Omitted fields will not be updated. To replace the entire entity, use one path with the string \"*\" to match all fields.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta/{+name}", +"request": { +"$ref": "GoogleAnalyticsAdminV1betaDataRetentionSettings" +}, +"response": { +"$ref": "GoogleAnalyticsAdminV1betaDataRetentionSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/analytics.edit" +] +} +}, +"resources": { +"conversionEvents": { +"deprecated": true, +"methods": { +"create": { +"deprecated": true, +"description": "Deprecated: Use `CreateKeyEvent` instead. Creates a conversion event with the specified attributes.", +"flatPath": "v1beta/properties/{propertiesId}/conversionEvents", +"httpMethod": "POST", +"id": "analyticsadmin.properties.conversionEvents.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The resource name of the parent property where this conversion event will be created. Format: properties/123", +"location": "path", +"pattern": "^properties/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+parent}/conversionEvents", +"request": { +"$ref": "GoogleAnalyticsAdminV1betaConversionEvent" +}, +"response": { +"$ref": "GoogleAnalyticsAdminV1betaConversionEvent" +}, +"scopes": [ +"https://www.googleapis.com/auth/analytics.edit" +] +}, +"delete": { +"deprecated": true, +"description": "Deprecated: Use `DeleteKeyEvent` instead. Deletes a conversion event in a property.", +"flatPath": "v1beta/properties/{propertiesId}/conversionEvents/{conversionEventsId}", +"httpMethod": "DELETE", +"id": "analyticsadmin.properties.conversionEvents.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the conversion event to delete. Format: properties/{property}/conversionEvents/{conversion_event} Example: \"properties/123/conversionEvents/456\"", +"location": "path", +"pattern": "^properties/[^/]+/conversionEvents/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/analytics.edit" +] +}, +"get": { +"deprecated": true, +"description": "Deprecated: Use `GetKeyEvent` instead. Retrieve a single conversion event.", +"flatPath": "v1beta/properties/{propertiesId}/conversionEvents/{conversionEventsId}", +"httpMethod": "GET", +"id": "analyticsadmin.properties.conversionEvents.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the conversion event to retrieve. Format: properties/{property}/conversionEvents/{conversion_event} Example: \"properties/123/conversionEvents/456\"", +"location": "path", +"pattern": "^properties/[^/]+/conversionEvents/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+name}", +"response": { +"$ref": "GoogleAnalyticsAdminV1betaConversionEvent" +}, +"scopes": [ +"https://www.googleapis.com/auth/analytics.edit", +"https://www.googleapis.com/auth/analytics.readonly" +] +}, +"list": { +"deprecated": true, +"description": "Deprecated: Use `ListKeyEvents` instead. Returns a list of conversion events in the specified parent property. Returns an empty list if no conversion events are found.", +"flatPath": "v1beta/properties/{propertiesId}/conversionEvents", +"httpMethod": "GET", +"id": "analyticsadmin.properties.conversionEvents.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of resources to return. If unspecified, at most 50 resources will be returned. The maximum value is 200; (higher values will be coerced to the maximum)", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListConversionEvents` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListConversionEvents` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the parent property. Example: 'properties/123'", +"location": "path", +"pattern": "^properties/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+parent}/conversionEvents", +"response": { +"$ref": "GoogleAnalyticsAdminV1betaListConversionEventsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/analytics.edit", +"https://www.googleapis.com/auth/analytics.readonly" +] +}, +"patch": { +"deprecated": true, +"description": "Deprecated: Use `UpdateKeyEvent` instead. Updates a conversion event with the specified attributes.", +"flatPath": "v1beta/properties/{propertiesId}/conversionEvents/{conversionEventsId}", +"httpMethod": "PATCH", +"id": "analyticsadmin.properties.conversionEvents.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. Resource name of this conversion event. Format: properties/{property}/conversionEvents/{conversion_event}", +"location": "path", +"pattern": "^properties/[^/]+/conversionEvents/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The list of fields to be updated. Field names must be in snake case (e.g., \"field_to_update\"). Omitted fields will not be updated. To replace the entire entity, use one path with the string \"*\" to match all fields.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta/{+name}", +"request": { +"$ref": "GoogleAnalyticsAdminV1betaConversionEvent" +}, +"response": { +"$ref": "GoogleAnalyticsAdminV1betaConversionEvent" +}, +"scopes": [ +"https://www.googleapis.com/auth/analytics.edit" +] +} +} +}, +"customDimensions": { +"methods": { +"archive": { +"description": "Archives a CustomDimension on a property.", +"flatPath": "v1beta/properties/{propertiesId}/customDimensions/{customDimensionsId}:archive", +"httpMethod": "POST", +"id": "analyticsadmin.properties.customDimensions.archive", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the CustomDimension to archive. Example format: properties/1234/customDimensions/5678", +"location": "path", +"pattern": "^properties/[^/]+/customDimensions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+name}:archive", +"request": { +"$ref": "GoogleAnalyticsAdminV1betaArchiveCustomDimensionRequest" +}, +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/analytics.edit" +] +}, +"create": { +"description": "Creates a CustomDimension.", +"flatPath": "v1beta/properties/{propertiesId}/customDimensions", +"httpMethod": "POST", +"id": "analyticsadmin.properties.customDimensions.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Example format: properties/1234", +"location": "path", +"pattern": "^properties/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+parent}/customDimensions", +"request": { +"$ref": "GoogleAnalyticsAdminV1betaCustomDimension" +}, +"response": { +"$ref": "GoogleAnalyticsAdminV1betaCustomDimension" +}, +"scopes": [ +"https://www.googleapis.com/auth/analytics.edit" +] +}, +"get": { +"description": "Lookup for a single CustomDimension.", +"flatPath": "v1beta/properties/{propertiesId}/customDimensions/{customDimensionsId}", +"httpMethod": "GET", +"id": "analyticsadmin.properties.customDimensions.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the CustomDimension to get. Example format: properties/1234/customDimensions/5678", +"location": "path", +"pattern": "^properties/[^/]+/customDimensions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+name}", +"response": { +"$ref": "GoogleAnalyticsAdminV1betaCustomDimension" +}, +"scopes": [ +"https://www.googleapis.com/auth/analytics.edit", +"https://www.googleapis.com/auth/analytics.readonly" +] +}, +"list": { +"description": "Lists CustomDimensions on a property.", +"flatPath": "v1beta/properties/{propertiesId}/customDimensions", +"httpMethod": "GET", +"id": "analyticsadmin.properties.customDimensions.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of resources to return. If unspecified, at most 50 resources will be returned. The maximum value is 200 (higher values will be coerced to the maximum).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListCustomDimensions` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListCustomDimensions` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Example format: properties/1234", +"location": "path", +"pattern": "^properties/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+parent}/customDimensions", +"response": { +"$ref": "GoogleAnalyticsAdminV1betaListCustomDimensionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/analytics.edit", +"https://www.googleapis.com/auth/analytics.readonly" +] +}, +"patch": { +"description": "Updates a CustomDimension on a property.", +"flatPath": "v1beta/properties/{propertiesId}/customDimensions/{customDimensionsId}", +"httpMethod": "PATCH", +"id": "analyticsadmin.properties.customDimensions.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. Resource name for this CustomDimension resource. Format: properties/{property}/customDimensions/{customDimension}", +"location": "path", +"pattern": "^properties/[^/]+/customDimensions/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The list of fields to be updated. Omitted fields will not be updated. To replace the entire entity, use one path with the string \"*\" to match all fields.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta/{+name}", +"request": { +"$ref": "GoogleAnalyticsAdminV1betaCustomDimension" +}, +"response": { +"$ref": "GoogleAnalyticsAdminV1betaCustomDimension" +}, +"scopes": [ +"https://www.googleapis.com/auth/analytics.edit" +] +} +} +}, +"customMetrics": { +"methods": { +"archive": { +"description": "Archives a CustomMetric on a property.", +"flatPath": "v1beta/properties/{propertiesId}/customMetrics/{customMetricsId}:archive", +"httpMethod": "POST", +"id": "analyticsadmin.properties.customMetrics.archive", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the CustomMetric to archive. Example format: properties/1234/customMetrics/5678", +"location": "path", +"pattern": "^properties/[^/]+/customMetrics/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+name}:archive", +"request": { +"$ref": "GoogleAnalyticsAdminV1betaArchiveCustomMetricRequest" +}, +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/analytics.edit" +] +}, +"create": { +"description": "Creates a CustomMetric.", +"flatPath": "v1beta/properties/{propertiesId}/customMetrics", +"httpMethod": "POST", +"id": "analyticsadmin.properties.customMetrics.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Example format: properties/1234", +"location": "path", +"pattern": "^properties/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+parent}/customMetrics", +"request": { +"$ref": "GoogleAnalyticsAdminV1betaCustomMetric" +}, +"response": { +"$ref": "GoogleAnalyticsAdminV1betaCustomMetric" +}, +"scopes": [ +"https://www.googleapis.com/auth/analytics.edit" +] +}, +"get": { +"description": "Lookup for a single CustomMetric.", +"flatPath": "v1beta/properties/{propertiesId}/customMetrics/{customMetricsId}", +"httpMethod": "GET", +"id": "analyticsadmin.properties.customMetrics.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the CustomMetric to get. Example format: properties/1234/customMetrics/5678", +"location": "path", +"pattern": "^properties/[^/]+/customMetrics/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+name}", +"response": { +"$ref": "GoogleAnalyticsAdminV1betaCustomMetric" +}, +"scopes": [ +"https://www.googleapis.com/auth/analytics.edit", +"https://www.googleapis.com/auth/analytics.readonly" +] +}, +"list": { +"description": "Lists CustomMetrics on a property.", +"flatPath": "v1beta/properties/{propertiesId}/customMetrics", +"httpMethod": "GET", +"id": "analyticsadmin.properties.customMetrics.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of resources to return. If unspecified, at most 50 resources will be returned. The maximum value is 200 (higher values will be coerced to the maximum).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListCustomMetrics` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListCustomMetrics` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Example format: properties/1234", +"location": "path", +"pattern": "^properties/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+parent}/customMetrics", +"response": { +"$ref": "GoogleAnalyticsAdminV1betaListCustomMetricsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/analytics.edit", +"https://www.googleapis.com/auth/analytics.readonly" +] +}, +"patch": { +"description": "Updates a CustomMetric on a property.", +"flatPath": "v1beta/properties/{propertiesId}/customMetrics/{customMetricsId}", +"httpMethod": "PATCH", +"id": "analyticsadmin.properties.customMetrics.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. Resource name for this CustomMetric resource. Format: properties/{property}/customMetrics/{customMetric}", +"location": "path", +"pattern": "^properties/[^/]+/customMetrics/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The list of fields to be updated. Omitted fields will not be updated. To replace the entire entity, use one path with the string \"*\" to match all fields.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta/{+name}", +"request": { +"$ref": "GoogleAnalyticsAdminV1betaCustomMetric" +}, +"response": { +"$ref": "GoogleAnalyticsAdminV1betaCustomMetric" +}, +"scopes": [ +"https://www.googleapis.com/auth/analytics.edit" +] +} +} +}, +"dataStreams": { +"methods": { +"create": { +"description": "Creates a DataStream.", +"flatPath": "v1beta/properties/{propertiesId}/dataStreams", +"httpMethod": "POST", +"id": "analyticsadmin.properties.dataStreams.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Example format: properties/1234", +"location": "path", +"pattern": "^properties/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+parent}/dataStreams", +"request": { +"$ref": "GoogleAnalyticsAdminV1betaDataStream" +}, +"response": { +"$ref": "GoogleAnalyticsAdminV1betaDataStream" +}, +"scopes": [ +"https://www.googleapis.com/auth/analytics.edit" +] +}, +"delete": { +"description": "Deletes a DataStream on a property.", +"flatPath": "v1beta/properties/{propertiesId}/dataStreams/{dataStreamsId}", +"httpMethod": "DELETE", +"id": "analyticsadmin.properties.dataStreams.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the DataStream to delete. Example format: properties/1234/dataStreams/5678", +"location": "path", +"pattern": "^properties/[^/]+/dataStreams/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/analytics.edit" +] +}, +"get": { +"description": "Lookup for a single DataStream.", +"flatPath": "v1beta/properties/{propertiesId}/dataStreams/{dataStreamsId}", +"httpMethod": "GET", +"id": "analyticsadmin.properties.dataStreams.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the DataStream to get. Example format: properties/1234/dataStreams/5678", +"location": "path", +"pattern": "^properties/[^/]+/dataStreams/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+name}", +"response": { +"$ref": "GoogleAnalyticsAdminV1betaDataStream" +}, +"scopes": [ +"https://www.googleapis.com/auth/analytics.edit", +"https://www.googleapis.com/auth/analytics.readonly" +] +}, +"list": { +"description": "Lists DataStreams on a property.", +"flatPath": "v1beta/properties/{propertiesId}/dataStreams", +"httpMethod": "GET", +"id": "analyticsadmin.properties.dataStreams.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of resources to return. If unspecified, at most 50 resources will be returned. The maximum value is 200 (higher values will be coerced to the maximum).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListDataStreams` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListDataStreams` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Example format: properties/1234", +"location": "path", +"pattern": "^properties/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+parent}/dataStreams", +"response": { +"$ref": "GoogleAnalyticsAdminV1betaListDataStreamsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/analytics.edit", +"https://www.googleapis.com/auth/analytics.readonly" +] +}, +"patch": { +"description": "Updates a DataStream on a property.", +"flatPath": "v1beta/properties/{propertiesId}/dataStreams/{dataStreamsId}", +"httpMethod": "PATCH", +"id": "analyticsadmin.properties.dataStreams.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. Resource name of this Data Stream. Format: properties/{property_id}/dataStreams/{stream_id} Example: \"properties/1000/dataStreams/2000\"", +"location": "path", +"pattern": "^properties/[^/]+/dataStreams/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The list of fields to be updated. Omitted fields will not be updated. To replace the entire entity, use one path with the string \"*\" to match all fields.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta/{+name}", +"request": { +"$ref": "GoogleAnalyticsAdminV1betaDataStream" +}, +"response": { +"$ref": "GoogleAnalyticsAdminV1betaDataStream" +}, +"scopes": [ +"https://www.googleapis.com/auth/analytics.edit" +] +} +}, +"resources": { +"measurementProtocolSecrets": { +"methods": { +"create": { +"description": "Creates a measurement protocol secret.", +"flatPath": "v1beta/properties/{propertiesId}/dataStreams/{dataStreamsId}/measurementProtocolSecrets", +"httpMethod": "POST", +"id": "analyticsadmin.properties.dataStreams.measurementProtocolSecrets.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource where this secret will be created. Format: properties/{property}/dataStreams/{dataStream}", +"location": "path", +"pattern": "^properties/[^/]+/dataStreams/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+parent}/measurementProtocolSecrets", +"request": { +"$ref": "GoogleAnalyticsAdminV1betaMeasurementProtocolSecret" +}, +"response": { +"$ref": "GoogleAnalyticsAdminV1betaMeasurementProtocolSecret" +}, +"scopes": [ +"https://www.googleapis.com/auth/analytics.edit" +] +}, +"delete": { +"description": "Deletes target MeasurementProtocolSecret.", +"flatPath": "v1beta/properties/{propertiesId}/dataStreams/{dataStreamsId}/measurementProtocolSecrets/{measurementProtocolSecretsId}", +"httpMethod": "DELETE", +"id": "analyticsadmin.properties.dataStreams.measurementProtocolSecrets.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the MeasurementProtocolSecret to delete. Format: properties/{property}/dataStreams/{dataStream}/measurementProtocolSecrets/{measurementProtocolSecret}", +"location": "path", +"pattern": "^properties/[^/]+/dataStreams/[^/]+/measurementProtocolSecrets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/analytics.edit" +] +}, +"get": { +"description": "Lookup for a single MeasurementProtocolSecret.", +"flatPath": "v1beta/properties/{propertiesId}/dataStreams/{dataStreamsId}/measurementProtocolSecrets/{measurementProtocolSecretsId}", +"httpMethod": "GET", +"id": "analyticsadmin.properties.dataStreams.measurementProtocolSecrets.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the measurement protocol secret to lookup. Format: properties/{property}/dataStreams/{dataStream}/measurementProtocolSecrets/{measurementProtocolSecret}", +"location": "path", +"pattern": "^properties/[^/]+/dataStreams/[^/]+/measurementProtocolSecrets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+name}", +"response": { +"$ref": "GoogleAnalyticsAdminV1betaMeasurementProtocolSecret" +}, +"scopes": [ +"https://www.googleapis.com/auth/analytics.edit", +"https://www.googleapis.com/auth/analytics.readonly" +] +}, +"list": { +"description": "Returns child MeasurementProtocolSecrets under the specified parent Property.", +"flatPath": "v1beta/properties/{propertiesId}/dataStreams/{dataStreamsId}/measurementProtocolSecrets", +"httpMethod": "GET", +"id": "analyticsadmin.properties.dataStreams.measurementProtocolSecrets.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of resources to return. If unspecified, at most 10 resources will be returned. The maximum value is 10. Higher values will be coerced to the maximum.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListMeasurementProtocolSecrets` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListMeasurementProtocolSecrets` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the parent stream. Format: properties/{property}/dataStreams/{dataStream}/measurementProtocolSecrets", +"location": "path", +"pattern": "^properties/[^/]+/dataStreams/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+parent}/measurementProtocolSecrets", +"response": { +"$ref": "GoogleAnalyticsAdminV1betaListMeasurementProtocolSecretsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/analytics.edit", +"https://www.googleapis.com/auth/analytics.readonly" +] +}, +"patch": { +"description": "Updates a measurement protocol secret.", +"flatPath": "v1beta/properties/{propertiesId}/dataStreams/{dataStreamsId}/measurementProtocolSecrets/{measurementProtocolSecretsId}", +"httpMethod": "PATCH", +"id": "analyticsadmin.properties.dataStreams.measurementProtocolSecrets.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. Resource name of this secret. This secret may be a child of any type of stream. Format: properties/{property}/dataStreams/{dataStream}/measurementProtocolSecrets/{measurementProtocolSecret}", +"location": "path", +"pattern": "^properties/[^/]+/dataStreams/[^/]+/measurementProtocolSecrets/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The list of fields to be updated. Omitted fields will not be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta/{+name}", +"request": { +"$ref": "GoogleAnalyticsAdminV1betaMeasurementProtocolSecret" +}, +"response": { +"$ref": "GoogleAnalyticsAdminV1betaMeasurementProtocolSecret" +}, +"scopes": [ +"https://www.googleapis.com/auth/analytics.edit" +] +} +} +} +} +}, +"firebaseLinks": { +"methods": { +"create": { +"description": "Creates a FirebaseLink. Properties can have at most one FirebaseLink.", +"flatPath": "v1beta/properties/{propertiesId}/firebaseLinks", +"httpMethod": "POST", +"id": "analyticsadmin.properties.firebaseLinks.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Format: properties/{property_id} Example: `properties/1234`", +"location": "path", +"pattern": "^properties/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+parent}/firebaseLinks", +"request": { +"$ref": "GoogleAnalyticsAdminV1betaFirebaseLink" +}, +"response": { +"$ref": "GoogleAnalyticsAdminV1betaFirebaseLink" +}, +"scopes": [ +"https://www.googleapis.com/auth/analytics.edit" +] +}, +"delete": { +"description": "Deletes a FirebaseLink on a property", +"flatPath": "v1beta/properties/{propertiesId}/firebaseLinks/{firebaseLinksId}", +"httpMethod": "DELETE", +"id": "analyticsadmin.properties.firebaseLinks.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Format: properties/{property_id}/firebaseLinks/{firebase_link_id} Example: `properties/1234/firebaseLinks/5678`", +"location": "path", +"pattern": "^properties/[^/]+/firebaseLinks/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/analytics.edit" +] +}, +"list": { +"description": "Lists FirebaseLinks on a property. Properties can have at most one FirebaseLink.", +"flatPath": "v1beta/properties/{propertiesId}/firebaseLinks", +"httpMethod": "GET", +"id": "analyticsadmin.properties.firebaseLinks.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of resources to return. The service may return fewer than this value, even if there are additional pages. If unspecified, at most 50 resources will be returned. The maximum value is 200; (higher values will be coerced to the maximum)", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListFirebaseLinks` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListFirebaseLinks` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Format: properties/{property_id} Example: `properties/1234`", +"location": "path", +"pattern": "^properties/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+parent}/firebaseLinks", +"response": { +"$ref": "GoogleAnalyticsAdminV1betaListFirebaseLinksResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/analytics.edit", +"https://www.googleapis.com/auth/analytics.readonly" +] +} +} +}, +"googleAdsLinks": { +"methods": { +"create": { +"description": "Creates a GoogleAdsLink.", +"flatPath": "v1beta/properties/{propertiesId}/googleAdsLinks", +"httpMethod": "POST", +"id": "analyticsadmin.properties.googleAdsLinks.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Example format: properties/1234", +"location": "path", +"pattern": "^properties/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+parent}/googleAdsLinks", +"request": { +"$ref": "GoogleAnalyticsAdminV1betaGoogleAdsLink" +}, +"response": { +"$ref": "GoogleAnalyticsAdminV1betaGoogleAdsLink" +}, +"scopes": [ +"https://www.googleapis.com/auth/analytics.edit" +] +}, +"delete": { +"description": "Deletes a GoogleAdsLink on a property", +"flatPath": "v1beta/properties/{propertiesId}/googleAdsLinks/{googleAdsLinksId}", +"httpMethod": "DELETE", +"id": "analyticsadmin.properties.googleAdsLinks.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Example format: properties/1234/googleAdsLinks/5678", +"location": "path", +"pattern": "^properties/[^/]+/googleAdsLinks/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/analytics.edit" +] +}, +"list": { +"description": "Lists GoogleAdsLinks on a property.", +"flatPath": "v1beta/properties/{propertiesId}/googleAdsLinks", +"httpMethod": "GET", +"id": "analyticsadmin.properties.googleAdsLinks.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of resources to return. If unspecified, at most 50 resources will be returned. The maximum value is 200 (higher values will be coerced to the maximum).", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListGoogleAdsLinks` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListGoogleAdsLinks` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Example format: properties/1234", +"location": "path", +"pattern": "^properties/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+parent}/googleAdsLinks", +"response": { +"$ref": "GoogleAnalyticsAdminV1betaListGoogleAdsLinksResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/analytics.edit", +"https://www.googleapis.com/auth/analytics.readonly" +] +}, +"patch": { +"description": "Updates a GoogleAdsLink on a property", +"flatPath": "v1beta/properties/{propertiesId}/googleAdsLinks/{googleAdsLinksId}", +"httpMethod": "PATCH", +"id": "analyticsadmin.properties.googleAdsLinks.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. Format: properties/{propertyId}/googleAdsLinks/{googleAdsLinkId} Note: googleAdsLinkId is not the Google Ads customer ID.", +"location": "path", +"pattern": "^properties/[^/]+/googleAdsLinks/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The list of fields to be updated. Field names must be in snake case (e.g., \"field_to_update\"). Omitted fields will not be updated. To replace the entire entity, use one path with the string \"*\" to match all fields.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta/{+name}", +"request": { +"$ref": "GoogleAnalyticsAdminV1betaGoogleAdsLink" +}, +"response": { +"$ref": "GoogleAnalyticsAdminV1betaGoogleAdsLink" +}, +"scopes": [ +"https://www.googleapis.com/auth/analytics.edit" +] +} +} +}, +"keyEvents": { +"methods": { +"create": { +"description": "Creates a Key Event.", +"flatPath": "v1beta/properties/{propertiesId}/keyEvents", +"httpMethod": "POST", +"id": "analyticsadmin.properties.keyEvents.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The resource name of the parent property where this Key Event will be created. Format: properties/123", +"location": "path", +"pattern": "^properties/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+parent}/keyEvents", +"request": { +"$ref": "GoogleAnalyticsAdminV1betaKeyEvent" +}, +"response": { +"$ref": "GoogleAnalyticsAdminV1betaKeyEvent" +}, +"scopes": [ +"https://www.googleapis.com/auth/analytics.edit" +] +}, +"delete": { +"description": "Deletes a Key Event.", +"flatPath": "v1beta/properties/{propertiesId}/keyEvents/{keyEventsId}", +"httpMethod": "DELETE", +"id": "analyticsadmin.properties.keyEvents.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the Key Event to delete. Format: properties/{property}/keyEvents/{key_event} Example: \"properties/123/keyEvents/456\"", +"location": "path", +"pattern": "^properties/[^/]+/keyEvents/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/analytics.edit" +] +}, +"get": { +"description": "Retrieve a single Key Event.", +"flatPath": "v1beta/properties/{propertiesId}/keyEvents/{keyEventsId}", +"httpMethod": "GET", +"id": "analyticsadmin.properties.keyEvents.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the Key Event to retrieve. Format: properties/{property}/keyEvents/{key_event} Example: \"properties/123/keyEvents/456\"", +"location": "path", +"pattern": "^properties/[^/]+/keyEvents/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+name}", +"response": { +"$ref": "GoogleAnalyticsAdminV1betaKeyEvent" +}, +"scopes": [ +"https://www.googleapis.com/auth/analytics.edit", +"https://www.googleapis.com/auth/analytics.readonly" +] +}, +"list": { +"description": "Returns a list of Key Events in the specified parent property. Returns an empty list if no Key Events are found.", +"flatPath": "v1beta/properties/{propertiesId}/keyEvents", +"httpMethod": "GET", +"id": "analyticsadmin.properties.keyEvents.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of resources to return. If unspecified, at most 50 resources will be returned. The maximum value is 200; (higher values will be coerced to the maximum)", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListKeyEvents` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListKeyEvents` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the parent property. Example: 'properties/123'", +"location": "path", +"pattern": "^properties/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+parent}/keyEvents", +"response": { +"$ref": "GoogleAnalyticsAdminV1betaListKeyEventsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/analytics.edit", +"https://www.googleapis.com/auth/analytics.readonly" +] +}, +"patch": { +"description": "Updates a Key Event.", +"flatPath": "v1beta/properties/{propertiesId}/keyEvents/{keyEventsId}", +"httpMethod": "PATCH", +"id": "analyticsadmin.properties.keyEvents.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. Resource name of this key event. Format: properties/{property}/keyEvents/{key_event}", +"location": "path", +"pattern": "^properties/[^/]+/keyEvents/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The list of fields to be updated. Field names must be in snake case (e.g., \"field_to_update\"). Omitted fields will not be updated. To replace the entire entity, use one path with the string \"*\" to match all fields.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta/{+name}", +"request": { +"$ref": "GoogleAnalyticsAdminV1betaKeyEvent" +}, +"response": { +"$ref": "GoogleAnalyticsAdminV1betaKeyEvent" +}, +"scopes": [ +"https://www.googleapis.com/auth/analytics.edit" +] +} +} +} +} +} +}, +"revision": "20250103", +"rootUrl": "https://analyticsadmin.googleapis.com/", +"schemas": { +"GoogleAnalyticsAdminV1betaAccessBetweenFilter": { +"description": "To express that the result needs to be between two numbers (inclusive).", +"id": "GoogleAnalyticsAdminV1betaAccessBetweenFilter", +"properties": { +"fromValue": { +"$ref": "GoogleAnalyticsAdminV1betaNumericValue", +"description": "Begins with this number." +}, +"toValue": { +"$ref": "GoogleAnalyticsAdminV1betaNumericValue", +"description": "Ends with this number." +} +}, +"type": "object" +}, +"GoogleAnalyticsAdminV1betaAccessDateRange": { +"description": "A contiguous range of days: startDate, startDate + 1, ..., endDate.", +"id": "GoogleAnalyticsAdminV1betaAccessDateRange", +"properties": { +"endDate": { +"description": "The inclusive end date for the query in the format `YYYY-MM-DD`. Cannot be before `startDate`. The format `NdaysAgo`, `yesterday`, or `today` is also accepted, and in that case, the date is inferred based on the current time in the request's time zone.", +"type": "string" +}, +"startDate": { +"description": "The inclusive start date for the query in the format `YYYY-MM-DD`. Cannot be after `endDate`. The format `NdaysAgo`, `yesterday`, or `today` is also accepted, and in that case, the date is inferred based on the current time in the request's time zone.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAnalyticsAdminV1betaAccessDimension": { +"description": "Dimensions are attributes of your data. For example, the dimension `userEmail` indicates the email of the user that accessed reporting data. Dimension values in report responses are strings.", +"id": "GoogleAnalyticsAdminV1betaAccessDimension", +"properties": { +"dimensionName": { +"description": "The API name of the dimension. See [Data Access Schema](https://developers.google.com/analytics/devguides/config/admin/v1/access-api-schema) for the list of dimensions supported in this API. Dimensions are referenced by name in `dimensionFilter` and `orderBys`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAnalyticsAdminV1betaAccessDimensionHeader": { +"description": "Describes a dimension column in the report. Dimensions requested in a report produce column entries within rows and DimensionHeaders. However, dimensions used exclusively within filters or expressions do not produce columns in a report; correspondingly, those dimensions do not produce headers.", +"id": "GoogleAnalyticsAdminV1betaAccessDimensionHeader", +"properties": { +"dimensionName": { +"description": "The dimension's name; for example 'userEmail'.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAnalyticsAdminV1betaAccessDimensionValue": { +"description": "The value of a dimension.", +"id": "GoogleAnalyticsAdminV1betaAccessDimensionValue", +"properties": { +"value": { +"description": "The dimension value. For example, this value may be 'France' for the 'country' dimension.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAnalyticsAdminV1betaAccessFilter": { +"description": "An expression to filter dimension or metric values.", +"id": "GoogleAnalyticsAdminV1betaAccessFilter", +"properties": { +"betweenFilter": { +"$ref": "GoogleAnalyticsAdminV1betaAccessBetweenFilter", +"description": "A filter for two values." +}, +"fieldName": { +"description": "The dimension name or metric name.", +"type": "string" +}, +"inListFilter": { +"$ref": "GoogleAnalyticsAdminV1betaAccessInListFilter", +"description": "A filter for in list values." +}, +"numericFilter": { +"$ref": "GoogleAnalyticsAdminV1betaAccessNumericFilter", +"description": "A filter for numeric or date values." +}, +"stringFilter": { +"$ref": "GoogleAnalyticsAdminV1betaAccessStringFilter", +"description": "Strings related filter." +} +}, +"type": "object" +}, +"GoogleAnalyticsAdminV1betaAccessFilterExpression": { +"description": "Expresses dimension or metric filters. The fields in the same expression need to be either all dimensions or all metrics.", +"id": "GoogleAnalyticsAdminV1betaAccessFilterExpression", +"properties": { +"accessFilter": { +"$ref": "GoogleAnalyticsAdminV1betaAccessFilter", +"description": "A primitive filter. In the same FilterExpression, all of the filter's field names need to be either all dimensions or all metrics." +}, +"andGroup": { +"$ref": "GoogleAnalyticsAdminV1betaAccessFilterExpressionList", +"description": "Each of the FilterExpressions in the and_group has an AND relationship." +}, +"notExpression": { +"$ref": "GoogleAnalyticsAdminV1betaAccessFilterExpression", +"description": "The FilterExpression is NOT of not_expression." +}, +"orGroup": { +"$ref": "GoogleAnalyticsAdminV1betaAccessFilterExpressionList", +"description": "Each of the FilterExpressions in the or_group has an OR relationship." +} +}, +"type": "object" +}, +"GoogleAnalyticsAdminV1betaAccessFilterExpressionList": { +"description": "A list of filter expressions.", +"id": "GoogleAnalyticsAdminV1betaAccessFilterExpressionList", +"properties": { +"expressions": { +"description": "A list of filter expressions.", +"items": { +"$ref": "GoogleAnalyticsAdminV1betaAccessFilterExpression" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleAnalyticsAdminV1betaAccessInListFilter": { +"description": "The result needs to be in a list of string values.", +"id": "GoogleAnalyticsAdminV1betaAccessInListFilter", +"properties": { +"caseSensitive": { +"description": "If true, the string value is case sensitive.", +"type": "boolean" +}, +"values": { +"description": "The list of string values. Must be non-empty.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleAnalyticsAdminV1betaAccessMetric": { +"description": "The quantitative measurements of a report. For example, the metric `accessCount` is the total number of data access records.", +"id": "GoogleAnalyticsAdminV1betaAccessMetric", +"properties": { +"metricName": { +"description": "The API name of the metric. See [Data Access Schema](https://developers.google.com/analytics/devguides/config/admin/v1/access-api-schema) for the list of metrics supported in this API. Metrics are referenced by name in `metricFilter` & `orderBys`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAnalyticsAdminV1betaAccessMetricHeader": { +"description": "Describes a metric column in the report. Visible metrics requested in a report produce column entries within rows and MetricHeaders. However, metrics used exclusively within filters or expressions do not produce columns in a report; correspondingly, those metrics do not produce headers.", +"id": "GoogleAnalyticsAdminV1betaAccessMetricHeader", +"properties": { +"metricName": { +"description": "The metric's name; for example 'accessCount'.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAnalyticsAdminV1betaAccessMetricValue": { +"description": "The value of a metric.", +"id": "GoogleAnalyticsAdminV1betaAccessMetricValue", +"properties": { +"value": { +"description": "The measurement value. For example, this value may be '13'.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAnalyticsAdminV1betaAccessNumericFilter": { +"description": "Filters for numeric or date values.", +"id": "GoogleAnalyticsAdminV1betaAccessNumericFilter", +"properties": { +"operation": { +"description": "The operation type for this filter.", +"enum": [ +"OPERATION_UNSPECIFIED", +"EQUAL", +"LESS_THAN", +"LESS_THAN_OR_EQUAL", +"GREATER_THAN", +"GREATER_THAN_OR_EQUAL" +], +"enumDescriptions": [ +"Unspecified.", +"Equal", +"Less than", +"Less than or equal", +"Greater than", +"Greater than or equal" +], +"type": "string" +}, +"value": { +"$ref": "GoogleAnalyticsAdminV1betaNumericValue", +"description": "A numeric value or a date value." +} +}, +"type": "object" +}, +"GoogleAnalyticsAdminV1betaAccessOrderBy": { +"description": "Order bys define how rows will be sorted in the response. For example, ordering rows by descending access count is one ordering, and ordering rows by the country string is a different ordering.", +"id": "GoogleAnalyticsAdminV1betaAccessOrderBy", +"properties": { +"desc": { +"description": "If true, sorts by descending order. If false or unspecified, sorts in ascending order.", +"type": "boolean" +}, +"dimension": { +"$ref": "GoogleAnalyticsAdminV1betaAccessOrderByDimensionOrderBy", +"description": "Sorts results by a dimension's values." +}, +"metric": { +"$ref": "GoogleAnalyticsAdminV1betaAccessOrderByMetricOrderBy", +"description": "Sorts results by a metric's values." +} +}, +"type": "object" +}, +"GoogleAnalyticsAdminV1betaAccessOrderByDimensionOrderBy": { +"description": "Sorts by dimension values.", +"id": "GoogleAnalyticsAdminV1betaAccessOrderByDimensionOrderBy", +"properties": { +"dimensionName": { +"description": "A dimension name in the request to order by.", +"type": "string" +}, +"orderType": { +"description": "Controls the rule for dimension value ordering.", +"enum": [ +"ORDER_TYPE_UNSPECIFIED", +"ALPHANUMERIC", +"CASE_INSENSITIVE_ALPHANUMERIC", +"NUMERIC" +], +"enumDescriptions": [ +"Unspecified.", +"Alphanumeric sort by Unicode code point. For example, \"2\" < \"A\" < \"X\" < \"b\" < \"z\".", +"Case insensitive alphanumeric sort by lower case Unicode code point. For example, \"2\" < \"A\" < \"b\" < \"X\" < \"z\".", +"Dimension values are converted to numbers before sorting. For example in NUMERIC sort, \"25\" < \"100\", and in `ALPHANUMERIC` sort, \"100\" < \"25\". Non-numeric dimension values all have equal ordering value below all numeric values." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleAnalyticsAdminV1betaAccessOrderByMetricOrderBy": { +"description": "Sorts by metric values.", +"id": "GoogleAnalyticsAdminV1betaAccessOrderByMetricOrderBy", +"properties": { +"metricName": { +"description": "A metric name in the request to order by.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAnalyticsAdminV1betaAccessQuota": { +"description": "Current state of all quotas for this Analytics property. If any quota for a property is exhausted, all requests to that property will return Resource Exhausted errors.", +"id": "GoogleAnalyticsAdminV1betaAccessQuota", +"properties": { +"concurrentRequests": { +"$ref": "GoogleAnalyticsAdminV1betaAccessQuotaStatus", +"description": "Properties can use up to 50 concurrent requests." +}, +"serverErrorsPerProjectPerHour": { +"$ref": "GoogleAnalyticsAdminV1betaAccessQuotaStatus", +"description": "Properties and cloud project pairs can have up to 50 server errors per hour." +}, +"tokensPerDay": { +"$ref": "GoogleAnalyticsAdminV1betaAccessQuotaStatus", +"description": "Properties can use 250,000 tokens per day. Most requests consume fewer than 10 tokens." +}, +"tokensPerHour": { +"$ref": "GoogleAnalyticsAdminV1betaAccessQuotaStatus", +"description": "Properties can use 50,000 tokens per hour. An API request consumes a single number of tokens, and that number is deducted from all of the hourly, daily, and per project hourly quotas." +}, +"tokensPerProjectPerHour": { +"$ref": "GoogleAnalyticsAdminV1betaAccessQuotaStatus", +"description": "Properties can use up to 25% of their tokens per project per hour. This amounts to Analytics 360 Properties can use 12,500 tokens per project per hour. An API request consumes a single number of tokens, and that number is deducted from all of the hourly, daily, and per project hourly quotas." +} +}, +"type": "object" +}, +"GoogleAnalyticsAdminV1betaAccessQuotaStatus": { +"description": "Current state for a particular quota group.", +"id": "GoogleAnalyticsAdminV1betaAccessQuotaStatus", +"properties": { +"consumed": { +"description": "Quota consumed by this request.", +"format": "int32", +"type": "integer" +}, +"remaining": { +"description": "Quota remaining after this request.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleAnalyticsAdminV1betaAccessRow": { +"description": "Access report data for each row.", +"id": "GoogleAnalyticsAdminV1betaAccessRow", +"properties": { +"dimensionValues": { +"description": "List of dimension values. These values are in the same order as specified in the request.", +"items": { +"$ref": "GoogleAnalyticsAdminV1betaAccessDimensionValue" +}, +"type": "array" +}, +"metricValues": { +"description": "List of metric values. These values are in the same order as specified in the request.", +"items": { +"$ref": "GoogleAnalyticsAdminV1betaAccessMetricValue" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleAnalyticsAdminV1betaAccessStringFilter": { +"description": "The filter for strings.", +"id": "GoogleAnalyticsAdminV1betaAccessStringFilter", +"properties": { +"caseSensitive": { +"description": "If true, the string value is case sensitive.", +"type": "boolean" +}, +"matchType": { +"description": "The match type for this filter.", +"enum": [ +"MATCH_TYPE_UNSPECIFIED", +"EXACT", +"BEGINS_WITH", +"ENDS_WITH", +"CONTAINS", +"FULL_REGEXP", +"PARTIAL_REGEXP" +], +"enumDescriptions": [ +"Unspecified", +"Exact match of the string value.", +"Begins with the string value.", +"Ends with the string value.", +"Contains the string value.", +"Full match for the regular expression with the string value.", +"Partial match for the regular expression with the string value." +], +"type": "string" +}, +"value": { +"description": "The string value used for the matching.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAnalyticsAdminV1betaAccount": { +"description": "A resource message representing a Google Analytics account.", +"id": "GoogleAnalyticsAdminV1betaAccount", +"properties": { +"createTime": { +"description": "Output only. Time when this account was originally created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"deleted": { +"description": "Output only. Indicates whether this Account is soft-deleted or not. Deleted accounts are excluded from List results unless specifically requested.", +"readOnly": true, +"type": "boolean" +}, +"displayName": { +"description": "Required. Human-readable display name for this account.", +"type": "string" +}, +"gmpOrganization": { +"description": "Output only. The URI for a Google Marketing Platform organization resource. Only set when this account is connected to a GMP organization. Format: marketingplatformadmin.googleapis.com/organizations/{org_id}", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. Resource name of this account. Format: accounts/{account} Example: \"accounts/100\"", +"readOnly": true, +"type": "string" +}, +"regionCode": { +"description": "Country of business. Must be a Unicode CLDR region code.", +"type": "string" +}, +"updateTime": { +"description": "Output only. Time when account payload fields were last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleAnalyticsAdminV1betaAccountSummary": { +"description": "A virtual resource representing an overview of an account and all its child Google Analytics properties.", +"id": "GoogleAnalyticsAdminV1betaAccountSummary", +"properties": { +"account": { +"description": "Resource name of account referred to by this account summary Format: accounts/{account_id} Example: \"accounts/1000\"", +"type": "string" +}, +"displayName": { +"description": "Display name for the account referred to in this account summary.", +"type": "string" +}, +"name": { +"description": "Resource name for this account summary. Format: accountSummaries/{account_id} Example: \"accountSummaries/1000\"", +"type": "string" +}, +"propertySummaries": { +"description": "List of summaries for child accounts of this account.", +"items": { +"$ref": "GoogleAnalyticsAdminV1betaPropertySummary" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleAnalyticsAdminV1betaAcknowledgeUserDataCollectionRequest": { +"description": "Request message for AcknowledgeUserDataCollection RPC.", +"id": "GoogleAnalyticsAdminV1betaAcknowledgeUserDataCollectionRequest", +"properties": { +"acknowledgement": { +"description": "Required. An acknowledgement that the caller of this method understands the terms of user data collection. This field must contain the exact value: \"I acknowledge that I have the necessary privacy disclosures and rights from my end users for the collection and processing of their data, including the association of such data with the visitation information Google Analytics collects from my site and/or app property.\"", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAnalyticsAdminV1betaAcknowledgeUserDataCollectionResponse": { +"description": "Response message for AcknowledgeUserDataCollection RPC.", +"id": "GoogleAnalyticsAdminV1betaAcknowledgeUserDataCollectionResponse", +"properties": {}, +"type": "object" +}, +"GoogleAnalyticsAdminV1betaArchiveCustomDimensionRequest": { +"description": "Request message for ArchiveCustomDimension RPC.", +"id": "GoogleAnalyticsAdminV1betaArchiveCustomDimensionRequest", +"properties": {}, +"type": "object" +}, +"GoogleAnalyticsAdminV1betaArchiveCustomMetricRequest": { +"description": "Request message for ArchiveCustomMetric RPC.", +"id": "GoogleAnalyticsAdminV1betaArchiveCustomMetricRequest", +"properties": {}, +"type": "object" +}, +"GoogleAnalyticsAdminV1betaChangeHistoryChange": { +"description": "A description of a change to a single Google Analytics resource.", +"id": "GoogleAnalyticsAdminV1betaChangeHistoryChange", +"properties": { +"action": { +"description": "The type of action that changed this resource.", +"enum": [ +"ACTION_TYPE_UNSPECIFIED", +"CREATED", +"UPDATED", +"DELETED" +], +"enumDescriptions": [ +"Action type unknown or not specified.", +"Resource was created in this change.", +"Resource was updated in this change.", +"Resource was deleted in this change." +], +"type": "string" +}, +"resource": { +"description": "Resource name of the resource whose changes are described by this entry.", +"type": "string" +}, +"resourceAfterChange": { +"$ref": "GoogleAnalyticsAdminV1betaChangeHistoryChangeChangeHistoryResource", +"description": "Resource contents from after the change was made. If this resource was deleted in this change, this field will be missing." +}, +"resourceBeforeChange": { +"$ref": "GoogleAnalyticsAdminV1betaChangeHistoryChangeChangeHistoryResource", +"description": "Resource contents from before the change was made. If this resource was created in this change, this field will be missing." +} +}, +"type": "object" +}, +"GoogleAnalyticsAdminV1betaChangeHistoryChangeChangeHistoryResource": { +"description": "A snapshot of a resource as before or after the result of a change in change history.", +"id": "GoogleAnalyticsAdminV1betaChangeHistoryChangeChangeHistoryResource", +"properties": { +"account": { +"$ref": "GoogleAnalyticsAdminV1betaAccount", +"description": "A snapshot of an Account resource in change history." +}, +"conversionEvent": { +"$ref": "GoogleAnalyticsAdminV1betaConversionEvent", +"description": "A snapshot of a ConversionEvent resource in change history." +}, +"dataRetentionSettings": { +"$ref": "GoogleAnalyticsAdminV1betaDataRetentionSettings", +"description": "A snapshot of a data retention settings resource in change history." +}, +"dataStream": { +"$ref": "GoogleAnalyticsAdminV1betaDataStream", +"description": "A snapshot of a DataStream resource in change history." +}, +"firebaseLink": { +"$ref": "GoogleAnalyticsAdminV1betaFirebaseLink", +"description": "A snapshot of a FirebaseLink resource in change history." +}, +"googleAdsLink": { +"$ref": "GoogleAnalyticsAdminV1betaGoogleAdsLink", +"description": "A snapshot of a GoogleAdsLink resource in change history." +}, +"measurementProtocolSecret": { +"$ref": "GoogleAnalyticsAdminV1betaMeasurementProtocolSecret", +"description": "A snapshot of a MeasurementProtocolSecret resource in change history." +}, +"property": { +"$ref": "GoogleAnalyticsAdminV1betaProperty", +"description": "A snapshot of a Property resource in change history." +} +}, +"type": "object" +}, +"GoogleAnalyticsAdminV1betaChangeHistoryEvent": { +"description": "A set of changes within a Google Analytics account or its child properties that resulted from the same cause. Common causes would be updates made in the Google Analytics UI, changes from customer support, or automatic Google Analytics system changes.", +"id": "GoogleAnalyticsAdminV1betaChangeHistoryEvent", +"properties": { +"actorType": { +"description": "The type of actor that made this change.", +"enum": [ +"ACTOR_TYPE_UNSPECIFIED", +"USER", +"SYSTEM", +"SUPPORT" +], +"enumDescriptions": [ +"Unknown or unspecified actor type.", +"Changes made by the user specified in actor_email.", +"Changes made by the Google Analytics system.", +"Changes made by Google Analytics support team staff." +], +"type": "string" +}, +"changeTime": { +"description": "Time when change was made.", +"format": "google-datetime", +"type": "string" +}, +"changes": { +"description": "A list of changes made in this change history event that fit the filters specified in SearchChangeHistoryEventsRequest.", +"items": { +"$ref": "GoogleAnalyticsAdminV1betaChangeHistoryChange" +}, +"type": "array" +}, +"changesFiltered": { +"description": "If true, then the list of changes returned was filtered, and does not represent all changes that occurred in this event.", +"type": "boolean" +}, +"id": { +"description": "ID of this change history event. This ID is unique across Google Analytics.", +"type": "string" +}, +"userActorEmail": { +"description": "Email address of the Google account that made the change. This will be a valid email address if the actor field is set to USER, and empty otherwise. Google accounts that have been deleted will cause an error.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAnalyticsAdminV1betaConversionEvent": { +"description": "A conversion event in a Google Analytics property.", +"id": "GoogleAnalyticsAdminV1betaConversionEvent", +"properties": { +"countingMethod": { +"description": "Optional. The method by which conversions will be counted across multiple events within a session. If this value is not provided, it will be set to `ONCE_PER_EVENT`.", +"enum": [ +"CONVERSION_COUNTING_METHOD_UNSPECIFIED", +"ONCE_PER_EVENT", +"ONCE_PER_SESSION" +], +"enumDescriptions": [ +"Counting method not specified.", +"Each Event instance is considered a Conversion.", +"An Event instance is considered a Conversion at most once per session per user." +], +"type": "string" +}, +"createTime": { +"description": "Output only. Time when this conversion event was created in the property.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"custom": { +"description": "Output only. If set to true, this conversion event refers to a custom event. If set to false, this conversion event refers to a default event in GA. Default events typically have special meaning in GA. Default events are usually created for you by the GA system, but in some cases can be created by property admins. Custom events count towards the maximum number of custom conversion events that may be created per property.", +"readOnly": true, +"type": "boolean" +}, +"defaultConversionValue": { +"$ref": "GoogleAnalyticsAdminV1betaConversionEventDefaultConversionValue", +"description": "Optional. Defines a default value/currency for a conversion event." +}, +"deletable": { +"description": "Output only. If set, this event can currently be deleted with DeleteConversionEvent.", +"readOnly": true, +"type": "boolean" +}, +"eventName": { +"description": "Immutable. The event name for this conversion event. Examples: 'click', 'purchase'", +"type": "string" +}, +"name": { +"description": "Output only. Resource name of this conversion event. Format: properties/{property}/conversionEvents/{conversion_event}", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleAnalyticsAdminV1betaConversionEventDefaultConversionValue": { +"description": "Defines a default value/currency for a conversion event. Both value and currency must be provided.", +"id": "GoogleAnalyticsAdminV1betaConversionEventDefaultConversionValue", +"properties": { +"currencyCode": { +"description": "When a conversion event for this event_name has no set currency, this currency will be applied as the default. Must be in ISO 4217 currency code format. See https://en.wikipedia.org/wiki/ISO_4217 for more information.", +"type": "string" +}, +"value": { +"description": "This value will be used to populate the value for all conversions of the specified event_name where the event \"value\" parameter is unset.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"GoogleAnalyticsAdminV1betaCustomDimension": { +"description": "A definition for a CustomDimension.", +"id": "GoogleAnalyticsAdminV1betaCustomDimension", +"properties": { +"description": { +"description": "Optional. Description for this custom dimension. Max length of 150 characters.", +"type": "string" +}, +"disallowAdsPersonalization": { +"description": "Optional. If set to true, sets this dimension as NPA and excludes it from ads personalization. This is currently only supported by user-scoped custom dimensions.", +"type": "boolean" +}, +"displayName": { +"description": "Required. Display name for this custom dimension as shown in the Analytics UI. Max length of 82 characters, alphanumeric plus space and underscore starting with a letter. Legacy system-generated display names may contain square brackets, but updates to this field will never permit square brackets.", +"type": "string" +}, +"name": { +"description": "Output only. Resource name for this CustomDimension resource. Format: properties/{property}/customDimensions/{customDimension}", +"readOnly": true, +"type": "string" +}, +"parameterName": { +"description": "Required. Immutable. Tagging parameter name for this custom dimension. If this is a user-scoped dimension, then this is the user property name. If this is an event-scoped dimension, then this is the event parameter name. If this is an item-scoped dimension, then this is the parameter name found in the eCommerce items array. May only contain alphanumeric and underscore characters, starting with a letter. Max length of 24 characters for user-scoped dimensions, 40 characters for event-scoped dimensions.", +"type": "string" +}, +"scope": { +"description": "Required. Immutable. The scope of this dimension.", +"enum": [ +"DIMENSION_SCOPE_UNSPECIFIED", +"EVENT", +"USER", +"ITEM" +], +"enumDescriptions": [ +"Scope unknown or not specified.", +"Dimension scoped to an event.", +"Dimension scoped to a user.", +"Dimension scoped to eCommerce items" +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleAnalyticsAdminV1betaCustomMetric": { +"description": "A definition for a custom metric.", +"id": "GoogleAnalyticsAdminV1betaCustomMetric", +"properties": { +"description": { +"description": "Optional. Description for this custom dimension. Max length of 150 characters.", +"type": "string" +}, +"displayName": { +"description": "Required. Display name for this custom metric as shown in the Analytics UI. Max length of 82 characters, alphanumeric plus space and underscore starting with a letter. Legacy system-generated display names may contain square brackets, but updates to this field will never permit square brackets.", +"type": "string" +}, +"measurementUnit": { +"description": "Required. The type for the custom metric's value.", +"enum": [ +"MEASUREMENT_UNIT_UNSPECIFIED", +"STANDARD", +"CURRENCY", +"FEET", +"METERS", +"KILOMETERS", +"MILES", +"MILLISECONDS", +"SECONDS", +"MINUTES", +"HOURS" +], +"enumDescriptions": [ +"MeasurementUnit unspecified or missing.", +"This metric uses default units.", +"This metric measures a currency.", +"This metric measures feet.", +"This metric measures meters.", +"This metric measures kilometers.", +"This metric measures miles.", +"This metric measures milliseconds.", +"This metric measures seconds.", +"This metric measures minutes.", +"This metric measures hours." +], +"type": "string" +}, +"name": { +"description": "Output only. Resource name for this CustomMetric resource. Format: properties/{property}/customMetrics/{customMetric}", +"readOnly": true, +"type": "string" +}, +"parameterName": { +"description": "Required. Immutable. Tagging name for this custom metric. If this is an event-scoped metric, then this is the event parameter name. May only contain alphanumeric and underscore charactes, starting with a letter. Max length of 40 characters for event-scoped metrics.", +"type": "string" +}, +"restrictedMetricType": { +"description": "Optional. Types of restricted data that this metric may contain. Required for metrics with CURRENCY measurement unit. Must be empty for metrics with a non-CURRENCY measurement unit.", +"items": { +"enum": [ +"RESTRICTED_METRIC_TYPE_UNSPECIFIED", +"COST_DATA", +"REVENUE_DATA" +], +"enumDescriptions": [ +"Type unknown or unspecified.", +"Metric reports cost data.", +"Metric reports revenue data." +], +"type": "string" +}, +"type": "array" +}, +"scope": { +"description": "Required. Immutable. The scope of this custom metric.", +"enum": [ +"METRIC_SCOPE_UNSPECIFIED", +"EVENT" +], +"enumDescriptions": [ +"Scope unknown or not specified.", +"Metric scoped to an event." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleAnalyticsAdminV1betaDataRetentionSettings": { +"description": "Settings values for data retention. This is a singleton resource.", +"id": "GoogleAnalyticsAdminV1betaDataRetentionSettings", +"properties": { +"eventDataRetention": { +"description": "Required. The length of time that event-level data is retained.", +"enum": [ +"RETENTION_DURATION_UNSPECIFIED", +"TWO_MONTHS", +"FOURTEEN_MONTHS", +"TWENTY_SIX_MONTHS", +"THIRTY_EIGHT_MONTHS", +"FIFTY_MONTHS" +], +"enumDescriptions": [ +"Data retention time duration is not specified.", +"The data retention time duration is 2 months.", +"The data retention time duration is 14 months.", +"The data retention time duration is 26 months. Available to 360 properties only. Available for event data only.", +"The data retention time duration is 38 months. Available to 360 properties only. Available for event data only.", +"The data retention time duration is 50 months. Available to 360 properties only. Available for event data only." +], +"type": "string" +}, +"name": { +"description": "Output only. Resource name for this DataRetentionSetting resource. Format: properties/{property}/dataRetentionSettings", +"readOnly": true, +"type": "string" +}, +"resetUserDataOnNewActivity": { +"description": "If true, reset the retention period for the user identifier with every event from that user.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleAnalyticsAdminV1betaDataSharingSettings": { +"description": "A resource message representing data sharing settings of a Google Analytics account.", +"id": "GoogleAnalyticsAdminV1betaDataSharingSettings", +"properties": { +"name": { +"description": "Output only. Resource name. Format: accounts/{account}/dataSharingSettings Example: \"accounts/1000/dataSharingSettings\"", +"readOnly": true, +"type": "string" +}, +"sharingWithGoogleAnySalesEnabled": { +"description": "Allows any of Google sales to access the data in order to suggest configuration changes to improve results.", +"type": "boolean" +}, +"sharingWithGoogleAssignedSalesEnabled": { +"description": "Allows Google sales teams that are assigned to the customer to access the data in order to suggest configuration changes to improve results. Sales team restrictions still apply when enabled.", +"type": "boolean" +}, +"sharingWithGoogleProductsEnabled": { +"description": "Allows Google to use the data to improve other Google products or services.", +"type": "boolean" +}, +"sharingWithGoogleSupportEnabled": { +"description": "Allows Google support to access the data in order to help troubleshoot issues.", +"type": "boolean" +}, +"sharingWithOthersEnabled": { +"description": "Allows Google to share the data anonymously in aggregate form with others.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleAnalyticsAdminV1betaDataStream": { +"description": "A resource message representing a data stream.", +"id": "GoogleAnalyticsAdminV1betaDataStream", +"properties": { +"androidAppStreamData": { +"$ref": "GoogleAnalyticsAdminV1betaDataStreamAndroidAppStreamData", +"description": "Data specific to Android app streams. Must be populated if type is ANDROID_APP_DATA_STREAM." +}, +"createTime": { +"description": "Output only. Time when this stream was originally created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Human-readable display name for the Data Stream. Required for web data streams. The max allowed display name length is 255 UTF-16 code units.", +"type": "string" +}, +"iosAppStreamData": { +"$ref": "GoogleAnalyticsAdminV1betaDataStreamIosAppStreamData", +"description": "Data specific to iOS app streams. Must be populated if type is IOS_APP_DATA_STREAM." +}, +"name": { +"description": "Output only. Resource name of this Data Stream. Format: properties/{property_id}/dataStreams/{stream_id} Example: \"properties/1000/dataStreams/2000\"", +"readOnly": true, +"type": "string" +}, +"type": { +"description": "Required. Immutable. The type of this DataStream resource.", +"enum": [ +"DATA_STREAM_TYPE_UNSPECIFIED", +"WEB_DATA_STREAM", +"ANDROID_APP_DATA_STREAM", +"IOS_APP_DATA_STREAM" +], +"enumDescriptions": [ +"Type unknown or not specified.", +"Web data stream.", +"Android app data stream.", +"iOS app data stream." +], +"type": "string" +}, +"updateTime": { +"description": "Output only. Time when stream payload fields were last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"webStreamData": { +"$ref": "GoogleAnalyticsAdminV1betaDataStreamWebStreamData", +"description": "Data specific to web streams. Must be populated if type is WEB_DATA_STREAM." +} +}, +"type": "object" +}, +"GoogleAnalyticsAdminV1betaDataStreamAndroidAppStreamData": { +"description": "Data specific to Android app streams.", +"id": "GoogleAnalyticsAdminV1betaDataStreamAndroidAppStreamData", +"properties": { +"firebaseAppId": { +"description": "Output only. ID of the corresponding Android app in Firebase, if any. This ID can change if the Android app is deleted and recreated.", +"readOnly": true, +"type": "string" +}, +"packageName": { +"description": "Immutable. The package name for the app being measured. Example: \"com.example.myandroidapp\"", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAnalyticsAdminV1betaDataStreamIosAppStreamData": { +"description": "Data specific to iOS app streams.", +"id": "GoogleAnalyticsAdminV1betaDataStreamIosAppStreamData", +"properties": { +"bundleId": { +"description": "Required. Immutable. The Apple App Store Bundle ID for the app Example: \"com.example.myiosapp\"", +"type": "string" +}, +"firebaseAppId": { +"description": "Output only. ID of the corresponding iOS app in Firebase, if any. This ID can change if the iOS app is deleted and recreated.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleAnalyticsAdminV1betaDataStreamWebStreamData": { +"description": "Data specific to web streams.", +"id": "GoogleAnalyticsAdminV1betaDataStreamWebStreamData", +"properties": { +"defaultUri": { +"description": "Domain name of the web app being measured, or empty. Example: \"http://www.google.com\", \"https://www.google.com\"", +"type": "string" +}, +"firebaseAppId": { +"description": "Output only. ID of the corresponding web app in Firebase, if any. This ID can change if the web app is deleted and recreated.", +"readOnly": true, +"type": "string" +}, +"measurementId": { +"description": "Output only. Analytics Measurement ID. Example: \"G-1A2BCD345E\"", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleAnalyticsAdminV1betaFirebaseLink": { +"description": "A link between a Google Analytics property and a Firebase project.", +"id": "GoogleAnalyticsAdminV1betaFirebaseLink", +"properties": { +"createTime": { +"description": "Output only. Time when this FirebaseLink was originally created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. Example format: properties/1234/firebaseLinks/5678", +"readOnly": true, +"type": "string" +}, +"project": { +"description": "Immutable. Firebase project resource name. When creating a FirebaseLink, you may provide this resource name using either a project number or project ID. Once this resource has been created, returned FirebaseLinks will always have a project_name that contains a project number. Format: 'projects/{project number}' Example: 'projects/1234'", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAnalyticsAdminV1betaGoogleAdsLink": { +"description": "A link between a Google Analytics property and a Google Ads account.", +"id": "GoogleAnalyticsAdminV1betaGoogleAdsLink", +"properties": { +"adsPersonalizationEnabled": { +"description": "Enable personalized advertising features with this integration. Automatically publish my Google Analytics audience lists and Google Analytics remarketing events/parameters to the linked Google Ads account. If this field is not set on create/update, it will be defaulted to true.", +"type": "boolean" +}, +"canManageClients": { +"description": "Output only. If true, this link is for a Google Ads manager account.", +"readOnly": true, +"type": "boolean" +}, +"createTime": { +"description": "Output only. Time when this link was originally created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"creatorEmailAddress": { +"description": "Output only. Email address of the user that created the link. An empty string will be returned if the email address can't be retrieved.", +"readOnly": true, +"type": "string" +}, +"customerId": { +"description": "Immutable. Google Ads customer ID.", +"type": "string" +}, +"name": { +"description": "Output only. Format: properties/{propertyId}/googleAdsLinks/{googleAdsLinkId} Note: googleAdsLinkId is not the Google Ads customer ID.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. Time when this link was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleAnalyticsAdminV1betaKeyEvent": { +"description": "A key event in a Google Analytics property.", +"id": "GoogleAnalyticsAdminV1betaKeyEvent", +"properties": { +"countingMethod": { +"description": "Required. The method by which Key Events will be counted across multiple events within a session.", +"enum": [ +"COUNTING_METHOD_UNSPECIFIED", +"ONCE_PER_EVENT", +"ONCE_PER_SESSION" +], +"enumDescriptions": [ +"Counting method not specified.", +"Each Event instance is considered a Key Event.", +"An Event instance is considered a Key Event at most once per session per user." +], +"type": "string" +}, +"createTime": { +"description": "Output only. Time when this key event was created in the property.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"custom": { +"description": "Output only. If set to true, this key event refers to a custom event. If set to false, this key event refers to a default event in GA. Default events typically have special meaning in GA. Default events are usually created for you by the GA system, but in some cases can be created by property admins. Custom events count towards the maximum number of custom key events that may be created per property.", +"readOnly": true, +"type": "boolean" +}, +"defaultValue": { +"$ref": "GoogleAnalyticsAdminV1betaKeyEventDefaultValue", +"description": "Optional. Defines a default value/currency for a key event." +}, +"deletable": { +"description": "Output only. If set to true, this event can be deleted.", +"readOnly": true, +"type": "boolean" +}, +"eventName": { +"description": "Immutable. The event name for this key event. Examples: 'click', 'purchase'", +"type": "string" +}, +"name": { +"description": "Output only. Resource name of this key event. Format: properties/{property}/keyEvents/{key_event}", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleAnalyticsAdminV1betaKeyEventDefaultValue": { +"description": "Defines a default value/currency for a key event.", +"id": "GoogleAnalyticsAdminV1betaKeyEventDefaultValue", +"properties": { +"currencyCode": { +"description": "Required. When an occurrence of this Key Event (specified by event_name) has no set currency this currency will be applied as the default. Must be in ISO 4217 currency code format. See https://en.wikipedia.org/wiki/ISO_4217 for more information.", +"type": "string" +}, +"numericValue": { +"description": "Required. This will be used to populate the \"value\" parameter for all occurrences of this Key Event (specified by event_name) where that parameter is unset.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"GoogleAnalyticsAdminV1betaListAccountSummariesResponse": { +"description": "Response message for ListAccountSummaries RPC.", +"id": "GoogleAnalyticsAdminV1betaListAccountSummariesResponse", +"properties": { +"accountSummaries": { +"description": "Account summaries of all accounts the caller has access to.", +"items": { +"$ref": "GoogleAnalyticsAdminV1betaAccountSummary" +}, +"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" +}, +"GoogleAnalyticsAdminV1betaListAccountsResponse": { +"description": "Request message for ListAccounts RPC.", +"id": "GoogleAnalyticsAdminV1betaListAccountsResponse", +"properties": { +"accounts": { +"description": "Results that were accessible to the caller.", +"items": { +"$ref": "GoogleAnalyticsAdminV1betaAccount" +}, +"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" +}, +"GoogleAnalyticsAdminV1betaListConversionEventsResponse": { +"description": "Response message for ListConversionEvents RPC.", +"id": "GoogleAnalyticsAdminV1betaListConversionEventsResponse", +"properties": { +"conversionEvents": { +"description": "The requested conversion events", +"items": { +"$ref": "GoogleAnalyticsAdminV1betaConversionEvent" +}, +"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" +}, +"GoogleAnalyticsAdminV1betaListCustomDimensionsResponse": { +"description": "Response message for ListCustomDimensions RPC.", +"id": "GoogleAnalyticsAdminV1betaListCustomDimensionsResponse", +"properties": { +"customDimensions": { +"description": "List of CustomDimensions.", +"items": { +"$ref": "GoogleAnalyticsAdminV1betaCustomDimension" +}, +"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" +}, +"GoogleAnalyticsAdminV1betaListCustomMetricsResponse": { +"description": "Response message for ListCustomMetrics RPC.", +"id": "GoogleAnalyticsAdminV1betaListCustomMetricsResponse", +"properties": { +"customMetrics": { +"description": "List of CustomMetrics.", +"items": { +"$ref": "GoogleAnalyticsAdminV1betaCustomMetric" +}, +"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" +}, +"GoogleAnalyticsAdminV1betaListDataStreamsResponse": { +"description": "Response message for ListDataStreams RPC.", +"id": "GoogleAnalyticsAdminV1betaListDataStreamsResponse", +"properties": { +"dataStreams": { +"description": "List of DataStreams.", +"items": { +"$ref": "GoogleAnalyticsAdminV1betaDataStream" +}, +"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" +}, +"GoogleAnalyticsAdminV1betaListFirebaseLinksResponse": { +"description": "Response message for ListFirebaseLinks RPC", +"id": "GoogleAnalyticsAdminV1betaListFirebaseLinksResponse", +"properties": { +"firebaseLinks": { +"description": "List of FirebaseLinks. This will have at most one value.", +"items": { +"$ref": "GoogleAnalyticsAdminV1betaFirebaseLink" +}, +"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. Currently, Google Analytics supports only one FirebaseLink per property, so this will never be populated.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAnalyticsAdminV1betaListGoogleAdsLinksResponse": { +"description": "Response message for ListGoogleAdsLinks RPC.", +"id": "GoogleAnalyticsAdminV1betaListGoogleAdsLinksResponse", +"properties": { +"googleAdsLinks": { +"description": "List of GoogleAdsLinks.", +"items": { +"$ref": "GoogleAnalyticsAdminV1betaGoogleAdsLink" +}, +"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" +}, +"GoogleAnalyticsAdminV1betaListKeyEventsResponse": { +"description": "Response message for ListKeyEvents RPC.", +"id": "GoogleAnalyticsAdminV1betaListKeyEventsResponse", +"properties": { +"keyEvents": { +"description": "The requested Key Events", +"items": { +"$ref": "GoogleAnalyticsAdminV1betaKeyEvent" +}, +"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" +}, +"GoogleAnalyticsAdminV1betaListMeasurementProtocolSecretsResponse": { +"description": "Response message for ListMeasurementProtocolSecret RPC", +"id": "GoogleAnalyticsAdminV1betaListMeasurementProtocolSecretsResponse", +"properties": { +"measurementProtocolSecrets": { +"description": "A list of secrets for the parent stream specified in the request.", +"items": { +"$ref": "GoogleAnalyticsAdminV1betaMeasurementProtocolSecret" +}, +"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" +}, +"GoogleAnalyticsAdminV1betaListPropertiesResponse": { +"description": "Response message for ListProperties RPC.", +"id": "GoogleAnalyticsAdminV1betaListPropertiesResponse", +"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" +}, +"properties": { +"description": "Results that matched the filter criteria and were accessible to the caller.", +"items": { +"$ref": "GoogleAnalyticsAdminV1betaProperty" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleAnalyticsAdminV1betaMeasurementProtocolSecret": { +"description": "A secret value used for sending hits to Measurement Protocol.", +"id": "GoogleAnalyticsAdminV1betaMeasurementProtocolSecret", +"properties": { +"displayName": { +"description": "Required. Human-readable display name for this secret.", +"type": "string" +}, +"name": { +"description": "Output only. Resource name of this secret. This secret may be a child of any type of stream. Format: properties/{property}/dataStreams/{dataStream}/measurementProtocolSecrets/{measurementProtocolSecret}", +"readOnly": true, +"type": "string" +}, +"secretValue": { +"description": "Output only. The measurement protocol secret value. Pass this value to the api_secret field of the Measurement Protocol API when sending hits to this secret's parent property.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleAnalyticsAdminV1betaNumericValue": { +"description": "To represent a number.", +"id": "GoogleAnalyticsAdminV1betaNumericValue", +"properties": { +"doubleValue": { +"description": "Double value", +"format": "double", +"type": "number" +}, +"int64Value": { +"description": "Integer value", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAnalyticsAdminV1betaProperty": { +"description": "A resource message representing a Google Analytics property.", +"id": "GoogleAnalyticsAdminV1betaProperty", +"properties": { +"account": { +"description": "Immutable. The resource name of the parent account Format: accounts/{account_id} Example: \"accounts/123\"", +"type": "string" +}, +"createTime": { +"description": "Output only. Time when the entity was originally created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"currencyCode": { +"description": "The currency type used in reports involving monetary values. Format: https://en.wikipedia.org/wiki/ISO_4217 Examples: \"USD\", \"EUR\", \"JPY\"", +"type": "string" +}, +"deleteTime": { +"description": "Output only. If set, the time at which this property was trashed. If not set, then this property is not currently in the trash can.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Required. Human-readable display name for this property. The max allowed display name length is 100 UTF-16 code units.", +"type": "string" +}, +"expireTime": { +"description": "Output only. If set, the time at which this trashed property will be permanently deleted. If not set, then this property is not currently in the trash can and is not slated to be deleted.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"industryCategory": { +"description": "Industry associated with this property Example: AUTOMOTIVE, FOOD_AND_DRINK", +"enum": [ +"INDUSTRY_CATEGORY_UNSPECIFIED", +"AUTOMOTIVE", +"BUSINESS_AND_INDUSTRIAL_MARKETS", +"FINANCE", +"HEALTHCARE", +"TECHNOLOGY", +"TRAVEL", +"OTHER", +"ARTS_AND_ENTERTAINMENT", +"BEAUTY_AND_FITNESS", +"BOOKS_AND_LITERATURE", +"FOOD_AND_DRINK", +"GAMES", +"HOBBIES_AND_LEISURE", +"HOME_AND_GARDEN", +"INTERNET_AND_TELECOM", +"LAW_AND_GOVERNMENT", +"NEWS", +"ONLINE_COMMUNITIES", +"PEOPLE_AND_SOCIETY", +"PETS_AND_ANIMALS", +"REAL_ESTATE", +"REFERENCE", +"SCIENCE", +"SPORTS", +"JOBS_AND_EDUCATION", +"SHOPPING" +], +"enumDescriptions": [ +"Industry category unspecified", +"Automotive", +"Business and industrial markets", +"Finance", +"Healthcare", +"Technology", +"Travel", +"Other", +"Arts and entertainment", +"Beauty and fitness", +"Books and literature", +"Food and drink", +"Games", +"Hobbies and leisure", +"Home and garden", +"Internet and telecom", +"Law and government", +"News", +"Online communities", +"People and society", +"Pets and animals", +"Real estate", +"Reference", +"Science", +"Sports", +"Jobs and education", +"Shopping" +], +"type": "string" +}, +"name": { +"description": "Output only. Resource name of this property. Format: properties/{property_id} Example: \"properties/1000\"", +"readOnly": true, +"type": "string" +}, +"parent": { +"description": "Immutable. Resource name of this property's logical parent. Note: The Property-Moving UI can be used to change the parent. Format: accounts/{account}, properties/{property} Example: \"accounts/100\", \"properties/101\"", +"type": "string" +}, +"propertyType": { +"description": "Immutable. The property type for this Property resource. When creating a property, if the type is \"PROPERTY_TYPE_UNSPECIFIED\", then \"ORDINARY_PROPERTY\" will be implied.", +"enum": [ +"PROPERTY_TYPE_UNSPECIFIED", +"PROPERTY_TYPE_ORDINARY", +"PROPERTY_TYPE_SUBPROPERTY", +"PROPERTY_TYPE_ROLLUP" +], +"enumDescriptions": [ +"Unknown or unspecified property type", +"Ordinary Google Analytics property", +"Google Analytics subproperty", +"Google Analytics rollup property" +], +"type": "string" +}, +"serviceLevel": { +"description": "Output only. The Google Analytics service level that applies to this property.", +"enum": [ +"SERVICE_LEVEL_UNSPECIFIED", +"GOOGLE_ANALYTICS_STANDARD", +"GOOGLE_ANALYTICS_360" +], +"enumDescriptions": [ +"Service level not specified or invalid.", +"The standard version of Google Analytics.", +"The paid, premium version of Google Analytics." +], +"readOnly": true, +"type": "string" +}, +"timeZone": { +"description": "Required. Reporting Time Zone, used as the day boundary for reports, regardless of where the data originates. If the time zone honors DST, Analytics will automatically adjust for the changes. NOTE: Changing the time zone only affects data going forward, and is not applied retroactively. Format: https://www.iana.org/time-zones Example: \"America/Los_Angeles\"", +"type": "string" +}, +"updateTime": { +"description": "Output only. Time when entity payload fields were last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleAnalyticsAdminV1betaPropertySummary": { +"description": "A virtual resource representing metadata for a Google Analytics property.", +"id": "GoogleAnalyticsAdminV1betaPropertySummary", +"properties": { +"displayName": { +"description": "Display name for the property referred to in this property summary.", +"type": "string" +}, +"parent": { +"description": "Resource name of this property's logical parent. Note: The Property-Moving UI can be used to change the parent. Format: accounts/{account}, properties/{property} Example: \"accounts/100\", \"properties/200\"", +"type": "string" +}, +"property": { +"description": "Resource name of property referred to by this property summary Format: properties/{property_id} Example: \"properties/1000\"", +"type": "string" +}, +"propertyType": { +"description": "The property's property type.", +"enum": [ +"PROPERTY_TYPE_UNSPECIFIED", +"PROPERTY_TYPE_ORDINARY", +"PROPERTY_TYPE_SUBPROPERTY", +"PROPERTY_TYPE_ROLLUP" +], +"enumDescriptions": [ +"Unknown or unspecified property type", +"Ordinary Google Analytics property", +"Google Analytics subproperty", +"Google Analytics rollup property" +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleAnalyticsAdminV1betaProvisionAccountTicketRequest": { +"description": "Request message for ProvisionAccountTicket RPC.", +"id": "GoogleAnalyticsAdminV1betaProvisionAccountTicketRequest", +"properties": { +"account": { +"$ref": "GoogleAnalyticsAdminV1betaAccount", +"description": "The account to create." +}, +"redirectUri": { +"description": "Redirect URI where the user will be sent after accepting Terms of Service. Must be configured in Cloud Console as a Redirect URI.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAnalyticsAdminV1betaProvisionAccountTicketResponse": { +"description": "Response message for ProvisionAccountTicket RPC.", +"id": "GoogleAnalyticsAdminV1betaProvisionAccountTicketResponse", +"properties": { +"accountTicketId": { +"description": "The param to be passed in the ToS link.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAnalyticsAdminV1betaRunAccessReportRequest": { +"description": "The request for a Data Access Record Report.", +"id": "GoogleAnalyticsAdminV1betaRunAccessReportRequest", +"properties": { +"dateRanges": { +"description": "Date ranges of access records to read. If multiple date ranges are requested, each response row will contain a zero based date range index. If two date ranges overlap, the access records for the overlapping days is included in the response rows for both date ranges. Requests are allowed up to 2 date ranges.", +"items": { +"$ref": "GoogleAnalyticsAdminV1betaAccessDateRange" +}, +"type": "array" +}, +"dimensionFilter": { +"$ref": "GoogleAnalyticsAdminV1betaAccessFilterExpression", +"description": "Dimension filters let you restrict report response to specific dimension values which match the filter. For example, filtering on access records of a single user. To learn more, see [Fundamentals of Dimension Filters](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#dimension_filters) for examples. Metrics cannot be used in this filter." +}, +"dimensions": { +"description": "The dimensions requested and displayed in the response. Requests are allowed up to 9 dimensions.", +"items": { +"$ref": "GoogleAnalyticsAdminV1betaAccessDimension" +}, +"type": "array" +}, +"expandGroups": { +"description": "Optional. Decides whether to return the users within user groups. This field works only when include_all_users is set to true. If true, it will return all users with access to the specified property or account. If false, only the users with direct access will be returned.", +"type": "boolean" +}, +"includeAllUsers": { +"description": "Optional. Determines whether to include users who have never made an API call in the response. If true, all users with access to the specified property or account are included in the response, regardless of whether they have made an API call or not. If false, only the users who have made an API call will be included.", +"type": "boolean" +}, +"limit": { +"description": "The number of rows to return. If unspecified, 10,000 rows are returned. The API returns a maximum of 100,000 rows per request, no matter how many you ask for. `limit` must be positive. The API may return fewer rows than the requested `limit`, if there aren't as many remaining rows as the `limit`. For instance, there are fewer than 300 possible values for the dimension `country`, so when reporting on only `country`, you can't get more than 300 rows, even if you set `limit` to a higher value. To learn more about this pagination parameter, see [Pagination](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#pagination).", +"format": "int64", +"type": "string" +}, +"metricFilter": { +"$ref": "GoogleAnalyticsAdminV1betaAccessFilterExpression", +"description": "Metric filters allow you to restrict report response to specific metric values which match the filter. Metric filters are applied after aggregating the report's rows, similar to SQL having-clause. Dimensions cannot be used in this filter." +}, +"metrics": { +"description": "The metrics requested and displayed in the response. Requests are allowed up to 10 metrics.", +"items": { +"$ref": "GoogleAnalyticsAdminV1betaAccessMetric" +}, +"type": "array" +}, +"offset": { +"description": "The row count of the start row. The first row is counted as row 0. If offset is unspecified, it is treated as 0. If offset is zero, then this method will return the first page of results with `limit` entries. To learn more about this pagination parameter, see [Pagination](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#pagination).", +"format": "int64", +"type": "string" +}, +"orderBys": { +"description": "Specifies how rows are ordered in the response.", +"items": { +"$ref": "GoogleAnalyticsAdminV1betaAccessOrderBy" +}, +"type": "array" +}, +"returnEntityQuota": { +"description": "Toggles whether to return the current state of this Analytics Property's quota. Quota is returned in [AccessQuota](#AccessQuota). For account-level requests, this field must be false.", +"type": "boolean" +}, +"timeZone": { +"description": "This request's time zone if specified. If unspecified, the property's time zone is used. The request's time zone is used to interpret the start & end dates of the report. Formatted as strings from the IANA Time Zone database (https://www.iana.org/time-zones); for example \"America/New_York\" or \"Asia/Tokyo\".", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAnalyticsAdminV1betaRunAccessReportResponse": { +"description": "The customized Data Access Record Report response.", +"id": "GoogleAnalyticsAdminV1betaRunAccessReportResponse", +"properties": { +"dimensionHeaders": { +"description": "The header for a column in the report that corresponds to a specific dimension. The number of DimensionHeaders and ordering of DimensionHeaders matches the dimensions present in rows.", +"items": { +"$ref": "GoogleAnalyticsAdminV1betaAccessDimensionHeader" +}, +"type": "array" +}, +"metricHeaders": { +"description": "The header for a column in the report that corresponds to a specific metric. The number of MetricHeaders and ordering of MetricHeaders matches the metrics present in rows.", +"items": { +"$ref": "GoogleAnalyticsAdminV1betaAccessMetricHeader" +}, +"type": "array" +}, +"quota": { +"$ref": "GoogleAnalyticsAdminV1betaAccessQuota", +"description": "The quota state for this Analytics property including this request. This field doesn't work with account-level requests." +}, +"rowCount": { +"description": "The total number of rows in the query result. `rowCount` is independent of the number of rows returned in the response, the `limit` request parameter, and the `offset` request parameter. For example if a query returns 175 rows and includes `limit` of 50 in the API request, the response will contain `rowCount` of 175 but only 50 rows. To learn more about this pagination parameter, see [Pagination](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#pagination).", +"format": "int32", +"type": "integer" +}, +"rows": { +"description": "Rows of dimension value combinations and metric values in the report.", +"items": { +"$ref": "GoogleAnalyticsAdminV1betaAccessRow" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleAnalyticsAdminV1betaSearchChangeHistoryEventsRequest": { +"description": "Request message for SearchChangeHistoryEvents RPC.", +"id": "GoogleAnalyticsAdminV1betaSearchChangeHistoryEventsRequest", +"properties": { +"action": { +"description": "Optional. If set, only return changes that match one or more of these types of actions.", +"items": { +"enum": [ +"ACTION_TYPE_UNSPECIFIED", +"CREATED", +"UPDATED", +"DELETED" +], +"enumDescriptions": [ +"Action type unknown or not specified.", +"Resource was created in this change.", +"Resource was updated in this change.", +"Resource was deleted in this change." +], +"type": "string" +}, +"type": "array" +}, +"actorEmail": { +"description": "Optional. If set, only return changes if they are made by a user in this list.", +"items": { +"type": "string" +}, +"type": "array" +}, +"earliestChangeTime": { +"description": "Optional. If set, only return changes made after this time (inclusive).", +"format": "google-datetime", +"type": "string" +}, +"latestChangeTime": { +"description": "Optional. If set, only return changes made before this time (inclusive).", +"format": "google-datetime", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of ChangeHistoryEvent items to return. If unspecified, at most 50 items will be returned. The maximum value is 200 (higher values will be coerced to the maximum). Note that the service may return a page with fewer items than this value specifies (potentially even zero), and that there still may be additional pages. If you want a particular number of items, you'll need to continue requesting additional pages using `page_token` until you get the needed number.", +"format": "int32", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A page token, received from a previous `SearchChangeHistoryEvents` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `SearchChangeHistoryEvents` must match the call that provided the page token.", +"type": "string" +}, +"property": { +"description": "Optional. Resource name for a child property. If set, only return changes made to this property or its child resources. Format: properties/{propertyId} Example: `properties/100`", +"type": "string" +}, +"resourceType": { +"description": "Optional. If set, only return changes if they are for a resource that matches at least one of these types.", +"items": { +"enum": [ +"CHANGE_HISTORY_RESOURCE_TYPE_UNSPECIFIED", +"ACCOUNT", +"PROPERTY", +"FIREBASE_LINK", +"GOOGLE_ADS_LINK", +"GOOGLE_SIGNALS_SETTINGS", +"CONVERSION_EVENT", +"MEASUREMENT_PROTOCOL_SECRET", +"CUSTOM_DIMENSION", +"CUSTOM_METRIC", +"DATA_RETENTION_SETTINGS", +"DISPLAY_VIDEO_360_ADVERTISER_LINK", +"DISPLAY_VIDEO_360_ADVERTISER_LINK_PROPOSAL", +"DATA_STREAM", +"ATTRIBUTION_SETTINGS" +], +"enumDescriptions": [ +"Resource type unknown or not specified.", +"Account resource", +"Property resource", +"FirebaseLink resource", +"GoogleAdsLink resource", +"GoogleSignalsSettings resource", +"ConversionEvent resource", +"MeasurementProtocolSecret resource", +"CustomDimension resource", +"CustomMetric resource", +"DataRetentionSettings resource", +"DisplayVideo360AdvertiserLink resource", +"DisplayVideo360AdvertiserLinkProposal resource", +"DataStream resource", +"AttributionSettings resource" +], +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleAnalyticsAdminV1betaSearchChangeHistoryEventsResponse": { +"description": "Response message for SearchAccounts RPC.", +"id": "GoogleAnalyticsAdminV1betaSearchChangeHistoryEventsResponse", +"properties": { +"changeHistoryEvents": { +"description": "Results that were accessible to the caller.", +"items": { +"$ref": "GoogleAnalyticsAdminV1betaChangeHistoryEvent" +}, +"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" +}, +"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": "Google Analytics Admin API", +"version": "v1beta", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/analyticsreporting.v4.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/analyticsreporting.v4.json new file mode 100644 index 0000000000000000000000000000000000000000..72dab320b8f9d86efed44b21fb456ac100b0233d --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/analyticsreporting.v4.json @@ -0,0 +1,1683 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/analytics": { +"description": "View and manage your Google Analytics data" +}, +"https://www.googleapis.com/auth/analytics.readonly": { +"description": "See and download your Google Analytics data" +} +} +} +}, +"basePath": "", +"baseUrl": "https://analyticsreporting.googleapis.com/", +"batchPath": "batch", +"canonicalName": "AnalyticsReporting", +"description": "Accesses Analytics report data.", +"discoveryVersion": "v1", +"documentationLink": "https://developers.google.com/analytics/devguides/reporting/core/v4/", +"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": "analyticsreporting:v4", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://analyticsreporting.mtls.googleapis.com/", +"name": "analyticsreporting", +"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": { +"reports": { +"methods": { +"batchGet": { +"description": "Returns the Analytics data.", +"flatPath": "v4/reports:batchGet", +"httpMethod": "POST", +"id": "analyticsreporting.reports.batchGet", +"parameterOrder": [], +"parameters": {}, +"path": "v4/reports:batchGet", +"request": { +"$ref": "GetReportsRequest" +}, +"response": { +"$ref": "GetReportsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/analytics", +"https://www.googleapis.com/auth/analytics.readonly" +] +} +} +}, +"userActivity": { +"methods": { +"search": { +"description": "Returns User Activity data.", +"flatPath": "v4/userActivity:search", +"httpMethod": "POST", +"id": "analyticsreporting.userActivity.search", +"parameterOrder": [], +"parameters": {}, +"path": "v4/userActivity:search", +"request": { +"$ref": "SearchUserActivityRequest" +}, +"response": { +"$ref": "SearchUserActivityResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/analytics", +"https://www.googleapis.com/auth/analytics.readonly" +] +} +} +} +}, +"revision": "20240123", +"rootUrl": "https://analyticsreporting.googleapis.com/", +"schemas": { +"Activity": { +"description": "An Activity represents data for an activity of a user. Note that an Activity is different from a hit. A hit might result in multiple Activity's. For example, if a hit includes a transaction and a goal completion, there will be two Activity protos for this hit, one for ECOMMERCE and one for GOAL. Conversely, multiple hits can also construct one Activity. In classic e-commerce, data for one transaction might be sent through multiple hits. These hits will be merged into one ECOMMERCE Activity.", +"id": "Activity", +"properties": { +"activityTime": { +"description": "Timestamp of the activity. If activities for a visit cross midnight and occur in two separate dates, then two sessions (one per date) share the session identifier. For example, say session ID 113472 has activity within 2019-08-20, and session ID 243742 has activity within 2019-08-25 and 2019-08-26. Session ID 113472 is one session, and session ID 243742 is two sessions.", +"format": "google-datetime", +"type": "string" +}, +"activityType": { +"description": "Type of this activity.", +"enum": [ +"ACTIVITY_TYPE_UNSPECIFIED", +"PAGEVIEW", +"SCREENVIEW", +"GOAL", +"ECOMMERCE", +"EVENT" +], +"enumDescriptions": [ +"ActivityType will never have this value in the response. Using this type in the request will result in an error.", +"Used when the activity resulted out of a visitor viewing a page.", +"Used when the activity resulted out of a visitor using an application on a mobile device.", +"Used to denote that a goal type activity.", +"An e-commerce transaction was performed by the visitor on the page.", +"Used when the activity is an event." +], +"type": "string" +}, +"appview": { +"$ref": "ScreenviewData", +"description": "This will be set if `activity_type` equals `SCREEN_VIEW`." +}, +"campaign": { +"description": "For manual campaign tracking, it is the value of the utm_campaign campaign tracking parameter. For AdWords autotagging, it is the name(s) of the online ad campaign(s) you use for the property. If you use neither, its value is (not set).", +"type": "string" +}, +"channelGrouping": { +"description": "The Channel Group associated with an end user's session for this View (defined by the View's Channel Groupings).", +"type": "string" +}, +"customDimension": { +"description": "A list of all custom dimensions associated with this activity.", +"items": { +"$ref": "CustomDimension" +}, +"type": "array" +}, +"ecommerce": { +"$ref": "EcommerceData", +"description": "This will be set if `activity_type` equals `ECOMMERCE`." +}, +"event": { +"$ref": "EventData", +"description": "This field contains all the details pertaining to an event and will be set if `activity_type` equals `EVENT`." +}, +"goals": { +"$ref": "GoalSetData", +"description": "This field contains a list of all the goals that were reached in this activity when `activity_type` equals `GOAL`." +}, +"hostname": { +"description": "The hostname from which the tracking request was made.", +"type": "string" +}, +"keyword": { +"description": "For manual campaign tracking, it is the value of the utm_term campaign tracking parameter. For AdWords traffic, it contains the best matching targeting criteria. For the display network, where multiple targeting criteria could have caused the ad to show up, it returns the best matching targeting criteria as selected by Ads. This could be display_keyword, site placement, boomuserlist, user_interest, age, or gender. Otherwise its value is (not set).", +"type": "string" +}, +"landingPagePath": { +"description": "The first page in users' sessions, or the landing page.", +"type": "string" +}, +"medium": { +"description": "The type of referrals. For manual campaign tracking, it is the value of the utm_medium campaign tracking parameter. For AdWords autotagging, it is cpc. If users came from a search engine detected by Google Analytics, it is organic. If the referrer is not a search engine, it is referral. If users came directly to the property and document.referrer is empty, its value is (none).", +"type": "string" +}, +"pageview": { +"$ref": "PageviewData", +"description": "This will be set if `activity_type` equals `PAGEVIEW`. This field contains all the details about the visitor and the page that was visited." +}, +"source": { +"description": "The source of referrals. For manual campaign tracking, it is the value of the utm_source campaign tracking parameter. For AdWords autotagging, it is google. If you use neither, it is the domain of the source (e.g., document.referrer) referring the users. It may also contain a port address. If users arrived without a referrer, its value is (direct).", +"type": "string" +} +}, +"type": "object" +}, +"Cohort": { +"description": "Defines a cohort. A cohort is a group of users who share a common characteristic. For example, all users with the same acquisition date belong to the same cohort.", +"id": "Cohort", +"properties": { +"dateRange": { +"$ref": "DateRange", +"description": "This is used for `FIRST_VISIT_DATE` cohort, the cohort selects users whose first visit date is between start date and end date defined in the DateRange. The date ranges should be aligned for cohort requests. If the request contains `ga:cohortNthDay` it should be exactly one day long, if `ga:cohortNthWeek` it should be aligned to the week boundary (starting at Sunday and ending Saturday), and for `ga:cohortNthMonth` the date range should be aligned to the month (starting at the first and ending on the last day of the month). For LTV requests there are no such restrictions. You do not need to supply a date range for the `reportsRequest.dateRanges` field." +}, +"name": { +"description": "A unique name for the cohort. If not defined name will be auto-generated with values cohort_[1234...].", +"type": "string" +}, +"type": { +"description": "Type of the cohort. The only supported type as of now is `FIRST_VISIT_DATE`. If this field is unspecified the cohort is treated as `FIRST_VISIT_DATE` type cohort.", +"enum": [ +"UNSPECIFIED_COHORT_TYPE", +"FIRST_VISIT_DATE" +], +"enumDescriptions": [ +"If unspecified it's treated as `FIRST_VISIT_DATE`.", +"Cohorts that are selected based on first visit date." +], +"type": "string" +} +}, +"type": "object" +}, +"CohortGroup": { +"description": "Defines a cohort group. For example: \"cohortGroup\": { \"cohorts\": [{ \"name\": \"cohort 1\", \"type\": \"FIRST_VISIT_DATE\", \"dateRange\": { \"startDate\": \"2015-08-01\", \"endDate\": \"2015-08-01\" } },{ \"name\": \"cohort 2\" \"type\": \"FIRST_VISIT_DATE\" \"dateRange\": { \"startDate\": \"2015-07-01\", \"endDate\": \"2015-07-01\" } }] }", +"id": "CohortGroup", +"properties": { +"cohorts": { +"description": "The definition for the cohort.", +"items": { +"$ref": "Cohort" +}, +"type": "array" +}, +"lifetimeValue": { +"description": "Enable Life Time Value (LTV). LTV measures lifetime value for users acquired through different channels. Please see: [Cohort Analysis](https://support.google.com/analytics/answer/6074676) and [Lifetime Value](https://support.google.com/analytics/answer/6182550) If the value of lifetimeValue is false: - The metric values are similar to the values in the web interface cohort report. - The cohort definition date ranges must be aligned to the calendar week and month. i.e. while requesting `ga:cohortNthWeek` the `startDate` in the cohort definition should be a Sunday and the `endDate` should be the following Saturday, and for `ga:cohortNthMonth`, the `startDate` should be the 1st of the month and `endDate` should be the last day of the month. When the lifetimeValue is true: - The metric values will correspond to the values in the web interface LifeTime value report. - The Lifetime Value report shows you how user value (Revenue) and engagement (Appviews, Goal Completions, Sessions, and Session Duration) grow during the 90 days after a user is acquired. - The metrics are calculated as a cumulative average per user per the time increment. - The cohort definition date ranges need not be aligned to the calendar week and month boundaries. - The `viewId` must be an [app view ID](https://support.google.com/analytics/answer/2649553#WebVersusAppViews)", +"type": "boolean" +} +}, +"type": "object" +}, +"ColumnHeader": { +"description": "Column headers.", +"id": "ColumnHeader", +"properties": { +"dimensions": { +"description": "The dimension names in the response.", +"items": { +"type": "string" +}, +"type": "array" +}, +"metricHeader": { +"$ref": "MetricHeader", +"description": "Metric headers for the metrics in the response." +} +}, +"type": "object" +}, +"CustomDimension": { +"description": "Custom dimension.", +"id": "CustomDimension", +"properties": { +"index": { +"description": "Slot number of custom dimension.", +"format": "int32", +"type": "integer" +}, +"value": { +"description": "Value of the custom dimension. Default value (i.e. empty string) indicates clearing sesion/visitor scope custom dimension value.", +"type": "string" +} +}, +"type": "object" +}, +"DateRange": { +"description": "A contiguous set of days: startDate, startDate + 1 day, ..., endDate. The start and end dates are specified in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) date format `YYYY-MM-DD`.", +"id": "DateRange", +"properties": { +"endDate": { +"description": "The end date for the query in the format `YYYY-MM-DD`.", +"type": "string" +}, +"startDate": { +"description": "The start date for the query in the format `YYYY-MM-DD`.", +"type": "string" +} +}, +"type": "object" +}, +"DateRangeValues": { +"description": "Used to return a list of metrics for a single DateRange / dimension combination", +"id": "DateRangeValues", +"properties": { +"pivotValueRegions": { +"description": "The values of each pivot region.", +"items": { +"$ref": "PivotValueRegion" +}, +"type": "array" +}, +"values": { +"description": "Each value corresponds to each Metric in the request.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Dimension": { +"description": "[Dimensions](https://support.google.com/analytics/answer/1033861) are attributes of your data. For example, the dimension `ga:city` indicates the city, for example, \"Paris\" or \"New York\", from which a session originates.", +"id": "Dimension", +"properties": { +"histogramBuckets": { +"description": "If non-empty, we place dimension values into buckets after string to int64. Dimension values that are not the string representation of an integral value will be converted to zero. The bucket values have to be in increasing order. Each bucket is closed on the lower end, and open on the upper end. The \"first\" bucket includes all values less than the first boundary, the \"last\" bucket includes all values up to infinity. Dimension values that fall in a bucket get transformed to a new dimension value. For example, if one gives a list of \"0, 1, 3, 4, 7\", then we return the following buckets: - bucket #1: values < 0, dimension value \"<0\" - bucket #2: values in [0,1), dimension value \"0\" - bucket #3: values in [1,3), dimension value \"1-2\" - bucket #4: values in [3,4), dimension value \"3\" - bucket #5: values in [4,7), dimension value \"4-6\" - bucket #6: values >= 7, dimension value \"7+\" NOTE: If you are applying histogram mutation on any dimension, and using that dimension in sort, you will want to use the sort type `HISTOGRAM_BUCKET` for that purpose. Without that the dimension values will be sorted according to dictionary (lexicographic) order. For example the ascending dictionary order is: \"<50\", \"1001+\", \"121-1000\", \"50-120\" And the ascending `HISTOGRAM_BUCKET` order is: \"<50\", \"50-120\", \"121-1000\", \"1001+\" The client has to explicitly request `\"orderType\": \"HISTOGRAM_BUCKET\"` for a histogram-mutated dimension.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +}, +"name": { +"description": "Name of the dimension to fetch, for example `ga:browser`.", +"type": "string" +} +}, +"type": "object" +}, +"DimensionFilter": { +"description": "Dimension filter specifies the filtering options on a dimension.", +"id": "DimensionFilter", +"properties": { +"caseSensitive": { +"description": "Should the match be case sensitive? Default is false.", +"type": "boolean" +}, +"dimensionName": { +"description": "The dimension to filter on. A DimensionFilter must contain a dimension.", +"type": "string" +}, +"expressions": { +"description": "Strings or regular expression to match against. Only the first value of the list is used for comparison unless the operator is `IN_LIST`. If `IN_LIST` operator, then the entire list is used to filter the dimensions as explained in the description of the `IN_LIST` operator.", +"items": { +"type": "string" +}, +"type": "array" +}, +"not": { +"description": "Logical `NOT` operator. If this boolean is set to true, then the matching dimension values will be excluded in the report. The default is false.", +"type": "boolean" +}, +"operator": { +"description": "How to match the dimension to the expression. The default is REGEXP.", +"enum": [ +"OPERATOR_UNSPECIFIED", +"REGEXP", +"BEGINS_WITH", +"ENDS_WITH", +"PARTIAL", +"EXACT", +"NUMERIC_EQUAL", +"NUMERIC_GREATER_THAN", +"NUMERIC_LESS_THAN", +"IN_LIST" +], +"enumDescriptions": [ +"If the match type is unspecified, it is treated as a `REGEXP`.", +"The match expression is treated as a regular expression. All match types are not treated as regular expressions.", +"Matches the value which begin with the match expression provided.", +"Matches the values which end with the match expression provided.", +"Substring match.", +"The value should match the match expression entirely.", +"Integer comparison filters. case sensitivity is ignored for these and the expression is assumed to be a string representing an integer. Failure conditions: - If expression is not a valid int64, the client should expect an error. - Input dimensions that are not valid int64 values will never match the filter.", +"Checks if the dimension is numerically greater than the match expression. Read the description for `NUMERIC_EQUALS` for restrictions.", +"Checks if the dimension is numerically less than the match expression. Read the description for `NUMERIC_EQUALS` for restrictions.", +"This option is used to specify a dimension filter whose expression can take any value from a selected list of values. This helps avoiding evaluating multiple exact match dimension filters which are OR'ed for every single response row. For example: expressions: [\"A\", \"B\", \"C\"] Any response row whose dimension has it is value as A, B or C, matches this DimensionFilter." +], +"type": "string" +} +}, +"type": "object" +}, +"DimensionFilterClause": { +"description": "A group of dimension filters. Set the operator value to specify how the filters are logically combined.", +"id": "DimensionFilterClause", +"properties": { +"filters": { +"description": "The repeated set of filters. They are logically combined based on the operator specified.", +"items": { +"$ref": "DimensionFilter" +}, +"type": "array" +}, +"operator": { +"description": "The operator for combining multiple dimension filters. If unspecified, it is treated as an `OR`.", +"enum": [ +"OPERATOR_UNSPECIFIED", +"OR", +"AND" +], +"enumDescriptions": [ +"Unspecified operator. It is treated as an `OR`.", +"The logical `OR` operator.", +"The logical `AND` operator." +], +"type": "string" +} +}, +"type": "object" +}, +"DynamicSegment": { +"description": "Dynamic segment definition for defining the segment within the request. A segment can select users, sessions or both.", +"id": "DynamicSegment", +"properties": { +"name": { +"description": "The name of the dynamic segment.", +"type": "string" +}, +"sessionSegment": { +"$ref": "SegmentDefinition", +"description": "Session Segment to select sessions to include in the segment." +}, +"userSegment": { +"$ref": "SegmentDefinition", +"description": "User Segment to select users to include in the segment." +} +}, +"type": "object" +}, +"EcommerceData": { +"description": "E-commerce details associated with the user activity.", +"id": "EcommerceData", +"properties": { +"actionType": { +"description": "Action associated with this e-commerce action.", +"enum": [ +"UNKNOWN", +"CLICK", +"DETAILS_VIEW", +"ADD_TO_CART", +"REMOVE_FROM_CART", +"CHECKOUT", +"PAYMENT", +"REFUND", +"CHECKOUT_OPTION" +], +"enumDescriptions": [ +"Action type is not known.", +"Click through of product lists.", +"Product detail views.", +"Add product(s) to cart.", +"Remove product(s) from cart.", +"Check out.", +"Completed purchase.", +"Refund of purchase.", +"Checkout options." +], +"type": "string" +}, +"ecommerceType": { +"description": "The type of this e-commerce activity.", +"enum": [ +"ECOMMERCE_TYPE_UNSPECIFIED", +"CLASSIC", +"ENHANCED" +], +"enumDescriptions": [ +"Used when the e-commerce activity type is unspecified.", +"Used when activity has classic (non-enhanced) e-commerce information.", +"Used when activity has enhanced e-commerce information." +], +"type": "string" +}, +"products": { +"description": "Details of the products in this transaction.", +"items": { +"$ref": "ProductData" +}, +"type": "array" +}, +"transaction": { +"$ref": "TransactionData", +"description": "Transaction details of this e-commerce action." +} +}, +"type": "object" +}, +"EventData": { +"description": "Represents all the details pertaining to an event.", +"id": "EventData", +"properties": { +"eventAction": { +"description": "Type of interaction with the object. Eg: 'play'.", +"type": "string" +}, +"eventCategory": { +"description": "The object on the page that was interacted with. Eg: 'Video'.", +"type": "string" +}, +"eventCount": { +"description": "Number of such events in this activity.", +"format": "int64", +"type": "string" +}, +"eventLabel": { +"description": "Label attached with the event.", +"type": "string" +}, +"eventValue": { +"description": "Numeric value associated with the event.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GetReportsRequest": { +"description": "The batch request containing multiple report request.", +"id": "GetReportsRequest", +"properties": { +"reportRequests": { +"description": "Requests, each request will have a separate response. There can be a maximum of 5 requests. All requests should have the same `dateRanges`, `viewId`, `segments`, `samplingLevel`, and `cohortGroup`.", +"items": { +"$ref": "ReportRequest" +}, +"type": "array" +}, +"useResourceQuotas": { +"description": "Enables [resource based quotas](/analytics/devguides/reporting/core/v4/limits-quotas#analytics_reporting_api_v4), (defaults to `False`). If this field is set to `True` the per view (profile) quotas are governed by the computational cost of the request. Note that using cost based quotas will higher enable sampling rates. (10 Million for `SMALL`, 100M for `LARGE`. See the [limits and quotas documentation](/analytics/devguides/reporting/core/v4/limits-quotas#analytics_reporting_api_v4) for details.", +"type": "boolean" +} +}, +"type": "object" +}, +"GetReportsResponse": { +"description": "The main response class which holds the reports from the Reporting API `batchGet` call.", +"id": "GetReportsResponse", +"properties": { +"queryCost": { +"description": "The amount of resource quota tokens deducted to execute the query. Includes all responses.", +"format": "int32", +"type": "integer" +}, +"reports": { +"description": "Responses corresponding to each of the request.", +"items": { +"$ref": "Report" +}, +"type": "array" +}, +"resourceQuotasRemaining": { +"$ref": "ResourceQuotasRemaining", +"description": "The amount of resource quota remaining for the property." +} +}, +"type": "object" +}, +"GoalData": { +"description": "Represents all the details pertaining to a goal.", +"id": "GoalData", +"properties": { +"goalCompletionLocation": { +"description": "URL of the page where this goal was completed.", +"type": "string" +}, +"goalCompletions": { +"description": "Total number of goal completions in this activity.", +"format": "int64", +"type": "string" +}, +"goalIndex": { +"description": "This identifies the goal as configured for the profile.", +"format": "int32", +"type": "integer" +}, +"goalName": { +"description": "Name of the goal.", +"type": "string" +}, +"goalPreviousStep1": { +"description": "URL of the page one step prior to the goal completion.", +"type": "string" +}, +"goalPreviousStep2": { +"description": "URL of the page two steps prior to the goal completion.", +"type": "string" +}, +"goalPreviousStep3": { +"description": "URL of the page three steps prior to the goal completion.", +"type": "string" +}, +"goalValue": { +"description": "Value in this goal.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"GoalSetData": { +"description": "Represents a set of goals that were reached in an activity.", +"id": "GoalSetData", +"properties": { +"goals": { +"description": "All the goals that were reached in the current activity.", +"items": { +"$ref": "GoalData" +}, +"type": "array" +} +}, +"type": "object" +}, +"Metric": { +"description": "[Metrics](https://support.google.com/analytics/answer/1033861) are the quantitative measurements. For example, the metric `ga:users` indicates the total number of users for the requested time period.", +"id": "Metric", +"properties": { +"alias": { +"description": "An alias for the metric expression is an alternate name for the expression. The alias can be used for filtering and sorting. This field is optional and is useful if the expression is not a single metric but a complex expression which cannot be used in filtering and sorting. The alias is also used in the response column header.", +"type": "string" +}, +"expression": { +"description": "A metric expression in the request. An expression is constructed from one or more metrics and numbers. Accepted operators include: Plus (+), Minus (-), Negation (Unary -), Divided by (/), Multiplied by (*), Parenthesis, Positive cardinal numbers (0-9), can include decimals and is limited to 1024 characters. Example `ga:totalRefunds/ga:users`, in most cases the metric expression is just a single metric name like `ga:users`. Adding mixed `MetricType` (E.g., `CURRENCY` + `PERCENTAGE`) metrics will result in unexpected results.", +"type": "string" +}, +"formattingType": { +"description": "Specifies how the metric expression should be formatted, for example `INTEGER`.", +"enum": [ +"METRIC_TYPE_UNSPECIFIED", +"INTEGER", +"FLOAT", +"CURRENCY", +"PERCENT", +"TIME" +], +"enumDescriptions": [ +"Metric type is unspecified.", +"Integer metric.", +"Float metric.", +"Currency metric.", +"Percentage metric.", +"Time metric in `HH:MM:SS` format." +], +"type": "string" +} +}, +"type": "object" +}, +"MetricFilter": { +"description": "MetricFilter specifies the filter on a metric.", +"id": "MetricFilter", +"properties": { +"comparisonValue": { +"description": "The value to compare against.", +"type": "string" +}, +"metricName": { +"description": "The metric that will be filtered on. A metricFilter must contain a metric name. A metric name can be an alias earlier defined as a metric or it can also be a metric expression.", +"type": "string" +}, +"not": { +"description": "Logical `NOT` operator. If this boolean is set to true, then the matching metric values will be excluded in the report. The default is false.", +"type": "boolean" +}, +"operator": { +"description": "Is the metric `EQUAL`, `LESS_THAN` or `GREATER_THAN` the comparisonValue, the default is `EQUAL`. If the operator is `IS_MISSING`, checks if the metric is missing and would ignore the comparisonValue.", +"enum": [ +"OPERATOR_UNSPECIFIED", +"EQUAL", +"LESS_THAN", +"GREATER_THAN", +"IS_MISSING" +], +"enumDescriptions": [ +"If the operator is not specified, it is treated as `EQUAL`.", +"Should the value of the metric be exactly equal to the comparison value.", +"Should the value of the metric be less than to the comparison value.", +"Should the value of the metric be greater than to the comparison value.", +"Validates if the metric is missing. Doesn't take comparisonValue into account." +], +"type": "string" +} +}, +"type": "object" +}, +"MetricFilterClause": { +"description": "Represents a group of metric filters. Set the operator value to specify how the filters are logically combined.", +"id": "MetricFilterClause", +"properties": { +"filters": { +"description": "The repeated set of filters. They are logically combined based on the operator specified.", +"items": { +"$ref": "MetricFilter" +}, +"type": "array" +}, +"operator": { +"description": "The operator for combining multiple metric filters. If unspecified, it is treated as an `OR`.", +"enum": [ +"OPERATOR_UNSPECIFIED", +"OR", +"AND" +], +"enumDescriptions": [ +"Unspecified operator. It is treated as an `OR`.", +"The logical `OR` operator.", +"The logical `AND` operator." +], +"type": "string" +} +}, +"type": "object" +}, +"MetricHeader": { +"description": "The headers for the metrics.", +"id": "MetricHeader", +"properties": { +"metricHeaderEntries": { +"description": "Headers for the metrics in the response.", +"items": { +"$ref": "MetricHeaderEntry" +}, +"type": "array" +}, +"pivotHeaders": { +"description": "Headers for the pivots in the response.", +"items": { +"$ref": "PivotHeader" +}, +"type": "array" +} +}, +"type": "object" +}, +"MetricHeaderEntry": { +"description": "Header for the metrics.", +"id": "MetricHeaderEntry", +"properties": { +"name": { +"description": "The name of the header.", +"type": "string" +}, +"type": { +"description": "The type of the metric, for example `INTEGER`.", +"enum": [ +"METRIC_TYPE_UNSPECIFIED", +"INTEGER", +"FLOAT", +"CURRENCY", +"PERCENT", +"TIME" +], +"enumDescriptions": [ +"Metric type is unspecified.", +"Integer metric.", +"Float metric.", +"Currency metric.", +"Percentage metric.", +"Time metric in `HH:MM:SS` format." +], +"type": "string" +} +}, +"type": "object" +}, +"OrFiltersForSegment": { +"description": "A list of segment filters in the `OR` group are combined with the logical OR operator.", +"id": "OrFiltersForSegment", +"properties": { +"segmentFilterClauses": { +"description": "List of segment filters to be combined with a `OR` operator.", +"items": { +"$ref": "SegmentFilterClause" +}, +"type": "array" +} +}, +"type": "object" +}, +"OrderBy": { +"description": "Specifies the sorting options.", +"id": "OrderBy", +"properties": { +"fieldName": { +"description": "The field which to sort by. The default sort order is ascending. Example: `ga:browser`. Note, that you can only specify one field for sort here. For example, `ga:browser, ga:city` is not valid.", +"type": "string" +}, +"orderType": { +"description": "The order type. The default orderType is `VALUE`.", +"enum": [ +"ORDER_TYPE_UNSPECIFIED", +"VALUE", +"DELTA", +"SMART", +"HISTOGRAM_BUCKET", +"DIMENSION_AS_INTEGER" +], +"enumDescriptions": [ +"Unspecified order type will be treated as sort based on value.", +"The sort order is based on the value of the chosen column; looks only at the first date range.", +"The sort order is based on the difference of the values of the chosen column between the first two date ranges. Usable only if there are exactly two date ranges.", +"The sort order is based on weighted value of the chosen column. If column has n/d format, then weighted value of this ratio will be `(n + totals.n)/(d + totals.d)` Usable only for metrics that represent ratios.", +"Histogram order type is applicable only to dimension columns with non-empty histogram-buckets.", +"If the dimensions are fixed length numbers, ordinary sort would just work fine. `DIMENSION_AS_INTEGER` can be used if the dimensions are variable length numbers." +], +"type": "string" +}, +"sortOrder": { +"description": "The sorting order for the field.", +"enum": [ +"SORT_ORDER_UNSPECIFIED", +"ASCENDING", +"DESCENDING" +], +"enumDescriptions": [ +"If the sort order is unspecified, the default is ascending.", +"Ascending sort. The field will be sorted in an ascending manner.", +"Descending sort. The field will be sorted in a descending manner." +], +"type": "string" +} +}, +"type": "object" +}, +"PageviewData": { +"description": "Represents details collected when the visitor views a page.", +"id": "PageviewData", +"properties": { +"pagePath": { +"description": "The URL of the page that the visitor viewed.", +"type": "string" +}, +"pageTitle": { +"description": "The title of the page that the visitor viewed.", +"type": "string" +} +}, +"type": "object" +}, +"Pivot": { +"description": "The Pivot describes the pivot section in the request. The Pivot helps rearrange the information in the table for certain reports by pivoting your data on a second dimension.", +"id": "Pivot", +"properties": { +"dimensionFilterClauses": { +"description": "DimensionFilterClauses are logically combined with an `AND` operator: only data that is included by all these DimensionFilterClauses contributes to the values in this pivot region. Dimension filters can be used to restrict the columns shown in the pivot region. For example if you have `ga:browser` as the requested dimension in the pivot region, and you specify key filters to restrict `ga:browser` to only \"IE\" or \"Firefox\", then only those two browsers would show up as columns.", +"items": { +"$ref": "DimensionFilterClause" +}, +"type": "array" +}, +"dimensions": { +"description": "A list of dimensions to show as pivot columns. A Pivot can have a maximum of 4 dimensions. Pivot dimensions are part of the restriction on the total number of dimensions allowed in the request.", +"items": { +"$ref": "Dimension" +}, +"type": "array" +}, +"maxGroupCount": { +"description": "Specifies the maximum number of groups to return. The default value is 10, also the maximum value is 1,000.", +"format": "int32", +"type": "integer" +}, +"metrics": { +"description": "The pivot metrics. Pivot metrics are part of the restriction on total number of metrics allowed in the request.", +"items": { +"$ref": "Metric" +}, +"type": "array" +}, +"startGroup": { +"description": "If k metrics were requested, then the response will contain some data-dependent multiple of k columns in the report. E.g., if you pivoted on the dimension `ga:browser` then you'd get k columns for \"Firefox\", k columns for \"IE\", k columns for \"Chrome\", etc. The ordering of the groups of columns is determined by descending order of \"total\" for the first of the k values. Ties are broken by lexicographic ordering of the first pivot dimension, then lexicographic ordering of the second pivot dimension, and so on. E.g., if the totals for the first value for Firefox, IE, and Chrome were 8, 2, 8, respectively, the order of columns would be Chrome, Firefox, IE. The following let you choose which of the groups of k columns are included in the response.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"PivotHeader": { +"description": "The headers for each of the pivot sections defined in the request.", +"id": "PivotHeader", +"properties": { +"pivotHeaderEntries": { +"description": "A single pivot section header.", +"items": { +"$ref": "PivotHeaderEntry" +}, +"type": "array" +}, +"totalPivotGroupsCount": { +"description": "The total number of groups for this pivot.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"PivotHeaderEntry": { +"description": "The headers for the each of the metric column corresponding to the metrics requested in the pivots section of the response.", +"id": "PivotHeaderEntry", +"properties": { +"dimensionNames": { +"description": "The name of the dimensions in the pivot response.", +"items": { +"type": "string" +}, +"type": "array" +}, +"dimensionValues": { +"description": "The values for the dimensions in the pivot.", +"items": { +"type": "string" +}, +"type": "array" +}, +"metric": { +"$ref": "MetricHeaderEntry", +"description": "The metric header for the metric in the pivot." +} +}, +"type": "object" +}, +"PivotValueRegion": { +"description": "The metric values in the pivot region.", +"id": "PivotValueRegion", +"properties": { +"values": { +"description": "The values of the metrics in each of the pivot regions.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ProductData": { +"description": "Details of the products in an e-commerce transaction.", +"id": "ProductData", +"properties": { +"itemRevenue": { +"description": "The total revenue from purchased product items.", +"format": "double", +"type": "number" +}, +"productName": { +"description": "The product name, supplied by the e-commerce tracking application, for the purchased items.", +"type": "string" +}, +"productQuantity": { +"description": "Total number of this product units in the transaction.", +"format": "int64", +"type": "string" +}, +"productSku": { +"description": "Unique code that represents the product.", +"type": "string" +} +}, +"type": "object" +}, +"Report": { +"description": "The data response corresponding to the request.", +"id": "Report", +"properties": { +"columnHeader": { +"$ref": "ColumnHeader", +"description": "The column headers." +}, +"data": { +"$ref": "ReportData", +"description": "Response data." +}, +"nextPageToken": { +"description": "Page token to retrieve the next page of results in the list.", +"type": "string" +} +}, +"type": "object" +}, +"ReportData": { +"description": "The data part of the report.", +"id": "ReportData", +"properties": { +"dataLastRefreshed": { +"description": "The last time the data in the report was refreshed. All the hits received before this timestamp are included in the calculation of the report.", +"format": "google-datetime", +"type": "string" +}, +"emptyReason": { +"description": "If empty reason is specified, the report is empty for this reason.", +"type": "string" +}, +"isDataGolden": { +"description": "Indicates if response to this request is golden or not. Data is golden when the exact same request will not produce any new results if asked at a later point in time.", +"type": "boolean" +}, +"maximums": { +"description": "Minimum and maximum values seen over all matching rows. These are both empty when `hideValueRanges` in the request is false, or when rowCount is zero.", +"items": { +"$ref": "DateRangeValues" +}, +"type": "array" +}, +"minimums": { +"description": "Minimum and maximum values seen over all matching rows. These are both empty when `hideValueRanges` in the request is false, or when rowCount is zero.", +"items": { +"$ref": "DateRangeValues" +}, +"type": "array" +}, +"rowCount": { +"description": "Total number of matching rows for this query.", +"format": "int32", +"type": "integer" +}, +"rows": { +"description": "There's one ReportRow for every unique combination of dimensions.", +"items": { +"$ref": "ReportRow" +}, +"type": "array" +}, +"samplesReadCounts": { +"description": "If the results are [sampled](https://support.google.com/analytics/answer/2637192), this returns the total number of samples read, one entry per date range. If the results are not sampled this field will not be defined. See [developer guide](/analytics/devguides/reporting/core/v4/basics#sampling) for details.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +}, +"samplingSpaceSizes": { +"description": "If the results are [sampled](https://support.google.com/analytics/answer/2637192), this returns the total number of samples present, one entry per date range. If the results are not sampled this field will not be defined. See [developer guide](/analytics/devguides/reporting/core/v4/basics#sampling) for details.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +}, +"totals": { +"description": "For each requested date range, for the set of all rows that match the query, every requested value format gets a total. The total for a value format is computed by first totaling the metrics mentioned in the value format and then evaluating the value format as a scalar expression. E.g., The \"totals\" for `3 / (ga:sessions + 2)` we compute `3 / ((sum of all relevant ga:sessions) + 2)`. Totals are computed before pagination.", +"items": { +"$ref": "DateRangeValues" +}, +"type": "array" +} +}, +"type": "object" +}, +"ReportRequest": { +"description": "The main request class which specifies the Reporting API request.", +"id": "ReportRequest", +"properties": { +"cohortGroup": { +"$ref": "CohortGroup", +"description": "Cohort group associated with this request. If there is a cohort group in the request the `ga:cohort` dimension must be present. Every [ReportRequest](#ReportRequest) within a `batchGet` method must contain the same `cohortGroup` definition." +}, +"dateRanges": { +"description": "Date ranges in the request. The request can have a maximum of 2 date ranges. The response will contain a set of metric values for each combination of the dimensions for each date range in the request. So, if there are two date ranges, there will be two set of metric values, one for the original date range and one for the second date range. The `reportRequest.dateRanges` field should not be specified for cohorts or Lifetime value requests. If a date range is not provided, the default date range is (startDate: current date - 7 days, endDate: current date - 1 day). Every [ReportRequest](#ReportRequest) within a `batchGet` method must contain the same `dateRanges` definition.", +"items": { +"$ref": "DateRange" +}, +"type": "array" +}, +"dimensionFilterClauses": { +"description": "The dimension filter clauses for filtering Dimension Values. They are logically combined with the `AND` operator. Note that filtering occurs before any dimensions are aggregated, so that the returned metrics represent the total for only the relevant dimensions.", +"items": { +"$ref": "DimensionFilterClause" +}, +"type": "array" +}, +"dimensions": { +"description": "The dimensions requested. Requests can have a total of 9 dimensions.", +"items": { +"$ref": "Dimension" +}, +"type": "array" +}, +"filtersExpression": { +"description": "Dimension or metric filters that restrict the data returned for your request. To use the `filtersExpression`, supply a dimension or metric on which to filter, followed by the filter expression. For example, the following expression selects `ga:browser` dimension which starts with Firefox; `ga:browser=~^Firefox`. For more information on dimensions and metric filters, see [Filters reference](https://developers.google.com/analytics/devguides/reporting/core/v3/reference#filters).", +"type": "string" +}, +"hideTotals": { +"description": "If set to true, hides the total of all metrics for all the matching rows, for every date range. The default false and will return the totals.", +"type": "boolean" +}, +"hideValueRanges": { +"description": "If set to true, hides the minimum and maximum across all matching rows. The default is false and the value ranges are returned.", +"type": "boolean" +}, +"includeEmptyRows": { +"description": "If set to false, the response does not include rows if all the retrieved metrics are equal to zero. The default is false which will exclude these rows.", +"type": "boolean" +}, +"metricFilterClauses": { +"description": "The metric filter clauses. They are logically combined with the `AND` operator. Metric filters look at only the first date range and not the comparing date range. Note that filtering on metrics occurs after the metrics are aggregated.", +"items": { +"$ref": "MetricFilterClause" +}, +"type": "array" +}, +"metrics": { +"description": "The metrics requested. Requests must specify at least one metric. Requests can have a total of 10 metrics.", +"items": { +"$ref": "Metric" +}, +"type": "array" +}, +"orderBys": { +"description": "Sort order on output rows. To compare two rows, the elements of the following are applied in order until a difference is found. All date ranges in the output get the same row order.", +"items": { +"$ref": "OrderBy" +}, +"type": "array" +}, +"pageSize": { +"description": "Page size is for paging and specifies the maximum number of returned rows. Page size should be >= 0. A query returns the default of 1,000 rows. The Analytics Core Reporting API returns a maximum of 100,000 rows per request, no matter how many you ask for. It can also return fewer rows than requested, if there aren't as many dimension segments as you expect. For instance, there are fewer than 300 possible values for `ga:country`, so when segmenting only by country, you can't get more than 300 rows, even if you set `pageSize` to a higher value.", +"format": "int32", +"type": "integer" +}, +"pageToken": { +"description": "A continuation token to get the next page of the results. Adding this to the request will return the rows after the pageToken. The pageToken should be the value returned in the nextPageToken parameter in the response to the GetReports request.", +"type": "string" +}, +"pivots": { +"description": "The pivot definitions. Requests can have a maximum of 2 pivots.", +"items": { +"$ref": "Pivot" +}, +"type": "array" +}, +"samplingLevel": { +"description": "The desired report [sample](https://support.google.com/analytics/answer/2637192) size. If the the `samplingLevel` field is unspecified the `DEFAULT` sampling level is used. Every [ReportRequest](#ReportRequest) within a `batchGet` method must contain the same `samplingLevel` definition. See [developer guide](/analytics/devguides/reporting/core/v4/basics#sampling) for details.", +"enum": [ +"SAMPLING_UNSPECIFIED", +"DEFAULT", +"SMALL", +"LARGE" +], +"enumDescriptions": [ +"If the `samplingLevel` field is unspecified the `DEFAULT` sampling level is used.", +"Returns response with a sample size that balances speed and accuracy.", +"It returns a fast response with a smaller sampling size.", +"Returns a more accurate response using a large sampling size. But this may result in response being slower." +], +"type": "string" +}, +"segments": { +"description": "Segment the data returned for the request. A segment definition helps look at a subset of the segment request. A request can contain up to four segments. Every [ReportRequest](#ReportRequest) within a `batchGet` method must contain the same `segments` definition. Requests with segments must have the `ga:segment` dimension.", +"items": { +"$ref": "Segment" +}, +"type": "array" +}, +"viewId": { +"description": "The Analytics [view ID](https://support.google.com/analytics/answer/1009618) from which to retrieve data. Every [ReportRequest](#ReportRequest) within a `batchGet` method must contain the same `viewId`.", +"type": "string" +} +}, +"type": "object" +}, +"ReportRow": { +"description": "A row in the report.", +"id": "ReportRow", +"properties": { +"dimensions": { +"description": "List of requested dimensions.", +"items": { +"type": "string" +}, +"type": "array" +}, +"metrics": { +"description": "List of metrics for each requested DateRange.", +"items": { +"$ref": "DateRangeValues" +}, +"type": "array" +} +}, +"type": "object" +}, +"ResourceQuotasRemaining": { +"description": "The resource quota tokens remaining for the property after the request is completed.", +"id": "ResourceQuotasRemaining", +"properties": { +"dailyQuotaTokensRemaining": { +"description": "Daily resource quota remaining remaining.", +"format": "int32", +"type": "integer" +}, +"hourlyQuotaTokensRemaining": { +"description": "Hourly resource quota tokens remaining.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"ScreenviewData": { +"id": "ScreenviewData", +"properties": { +"appName": { +"description": "The application name.", +"type": "string" +}, +"mobileDeviceBranding": { +"description": "Mobile manufacturer or branded name. Eg: \"Google\", \"Apple\" etc.", +"type": "string" +}, +"mobileDeviceModel": { +"description": "Mobile device model. Eg: \"Pixel\", \"iPhone\" etc.", +"type": "string" +}, +"screenName": { +"description": "The name of the screen.", +"type": "string" +} +}, +"type": "object" +}, +"SearchUserActivityRequest": { +"description": "The request to fetch User Report from Reporting API `userActivity:get` call.", +"id": "SearchUserActivityRequest", +"properties": { +"activityTypes": { +"description": "Set of all activity types being requested. Only acvities matching these types will be returned in the response. If empty, all activies will be returned.", +"items": { +"enum": [ +"ACTIVITY_TYPE_UNSPECIFIED", +"PAGEVIEW", +"SCREENVIEW", +"GOAL", +"ECOMMERCE", +"EVENT" +], +"enumDescriptions": [ +"ActivityType will never have this value in the response. Using this type in the request will result in an error.", +"Used when the activity resulted out of a visitor viewing a page.", +"Used when the activity resulted out of a visitor using an application on a mobile device.", +"Used to denote that a goal type activity.", +"An e-commerce transaction was performed by the visitor on the page.", +"Used when the activity is an event." +], +"type": "string" +}, +"type": "array" +}, +"dateRange": { +"$ref": "DateRange", +"description": "Date range for which to retrieve the user activity. If a date range is not provided, the default date range is (startDate: current date - 7 days, endDate: current date - 1 day)." +}, +"pageSize": { +"description": "Page size is for paging and specifies the maximum number of returned rows. Page size should be > 0. If the value is 0 or if the field isn't specified, the request returns the default of 1000 rows per page.", +"format": "int32", +"type": "integer" +}, +"pageToken": { +"description": "A continuation token to get the next page of the results. Adding this to the request will return the rows after the pageToken. The pageToken should be the value returned in the nextPageToken parameter in the response to the [SearchUserActivityRequest](#SearchUserActivityRequest) request.", +"type": "string" +}, +"user": { +"$ref": "User", +"description": "Required. Unique user Id to query for. Every [SearchUserActivityRequest](#SearchUserActivityRequest) must contain this field." +}, +"viewId": { +"description": "Required. The Analytics [view ID](https://support.google.com/analytics/answer/1009618) from which to retrieve data. Every [SearchUserActivityRequest](#SearchUserActivityRequest) must contain the `viewId`.", +"type": "string" +} +}, +"type": "object" +}, +"SearchUserActivityResponse": { +"description": "The response from `userActivity:get` call.", +"id": "SearchUserActivityResponse", +"properties": { +"nextPageToken": { +"description": "This token should be passed to [SearchUserActivityRequest](#SearchUserActivityRequest) to retrieve the next page.", +"type": "string" +}, +"sampleRate": { +"description": "This field represents the [sampling rate](https://support.google.com/analytics/answer/2637192) for the given request and is a number between 0.0 to 1.0. See [developer guide](/analytics/devguides/reporting/core/v4/basics#sampling) for details.", +"format": "double", +"type": "number" +}, +"sessions": { +"description": "Each record represents a session (device details, duration, etc).", +"items": { +"$ref": "UserActivitySession" +}, +"type": "array" +}, +"totalRows": { +"description": "Total rows returned by this query (across different pages).", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"Segment": { +"description": "The segment definition, if the report needs to be segmented. A Segment is a subset of the Analytics data. For example, of the entire set of users, one Segment might be users from a particular country or city.", +"id": "Segment", +"properties": { +"dynamicSegment": { +"$ref": "DynamicSegment", +"description": "A dynamic segment definition in the request." +}, +"segmentId": { +"description": "The segment ID of a built-in or custom segment, for example `gaid::-3`.", +"type": "string" +} +}, +"type": "object" +}, +"SegmentDefinition": { +"description": "SegmentDefinition defines the segment to be a set of SegmentFilters which are combined together with a logical `AND` operation.", +"id": "SegmentDefinition", +"properties": { +"segmentFilters": { +"description": "A segment is defined by a set of segment filters which are combined together with a logical `AND` operation.", +"items": { +"$ref": "SegmentFilter" +}, +"type": "array" +} +}, +"type": "object" +}, +"SegmentDimensionFilter": { +"description": "Dimension filter specifies the filtering options on a dimension.", +"id": "SegmentDimensionFilter", +"properties": { +"caseSensitive": { +"description": "Should the match be case sensitive, ignored for `IN_LIST` operator.", +"type": "boolean" +}, +"dimensionName": { +"description": "Name of the dimension for which the filter is being applied.", +"type": "string" +}, +"expressions": { +"description": "The list of expressions, only the first element is used for all operators", +"items": { +"type": "string" +}, +"type": "array" +}, +"maxComparisonValue": { +"description": "Maximum comparison values for `BETWEEN` match type.", +"type": "string" +}, +"minComparisonValue": { +"description": "Minimum comparison values for `BETWEEN` match type.", +"type": "string" +}, +"operator": { +"description": "The operator to use to match the dimension with the expressions.", +"enum": [ +"OPERATOR_UNSPECIFIED", +"REGEXP", +"BEGINS_WITH", +"ENDS_WITH", +"PARTIAL", +"EXACT", +"IN_LIST", +"NUMERIC_LESS_THAN", +"NUMERIC_GREATER_THAN", +"NUMERIC_BETWEEN" +], +"enumDescriptions": [ +"If the match type is unspecified, it is treated as a REGEXP.", +"The match expression is treated as a regular expression. All other match types are not treated as regular expressions.", +"Matches the values which begin with the match expression provided.", +"Matches the values which end with the match expression provided.", +"Substring match.", +"The value should match the match expression entirely.", +"This option is used to specify a dimension filter whose expression can take any value from a selected list of values. This helps avoiding evaluating multiple exact match dimension filters which are OR'ed for every single response row. For example: expressions: [\"A\", \"B\", \"C\"] Any response row whose dimension has it is value as A, B or C, matches this DimensionFilter.", +"Integer comparison filters. case sensitivity is ignored for these and the expression is assumed to be a string representing an integer. Failure conditions: - if expression is not a valid int64, the client should expect an error. - input dimensions that are not valid int64 values will never match the filter. Checks if the dimension is numerically less than the match expression.", +"Checks if the dimension is numerically greater than the match expression.", +"Checks if the dimension is numerically between the minimum and maximum of the match expression, boundaries excluded." +], +"type": "string" +} +}, +"type": "object" +}, +"SegmentFilter": { +"description": "SegmentFilter defines the segment to be either a simple or a sequence segment. A simple segment condition contains dimension and metric conditions to select the sessions or users. A sequence segment condition can be used to select users or sessions based on sequential conditions.", +"id": "SegmentFilter", +"properties": { +"not": { +"description": "If true, match the complement of simple or sequence segment. For example, to match all visits not from \"New York\", we can define the segment as follows: \"sessionSegment\": { \"segmentFilters\": [{ \"simpleSegment\" :{ \"orFiltersForSegment\": [{ \"segmentFilterClauses\":[{ \"dimensionFilter\": { \"dimensionName\": \"ga:city\", \"expressions\": [\"New York\"] } }] }] }, \"not\": \"True\" }] },", +"type": "boolean" +}, +"sequenceSegment": { +"$ref": "SequenceSegment", +"description": "Sequence conditions consist of one or more steps, where each step is defined by one or more dimension/metric conditions. Multiple steps can be combined with special sequence operators." +}, +"simpleSegment": { +"$ref": "SimpleSegment", +"description": "A Simple segment conditions consist of one or more dimension/metric conditions that can be combined" +} +}, +"type": "object" +}, +"SegmentFilterClause": { +"description": "Filter Clause to be used in a segment definition, can be wither a metric or a dimension filter.", +"id": "SegmentFilterClause", +"properties": { +"dimensionFilter": { +"$ref": "SegmentDimensionFilter", +"description": "Dimension Filter for the segment definition." +}, +"metricFilter": { +"$ref": "SegmentMetricFilter", +"description": "Metric Filter for the segment definition." +}, +"not": { +"description": "Matches the complement (`!`) of the filter.", +"type": "boolean" +} +}, +"type": "object" +}, +"SegmentMetricFilter": { +"description": "Metric filter to be used in a segment filter clause.", +"id": "SegmentMetricFilter", +"properties": { +"comparisonValue": { +"description": "The value to compare against. If the operator is `BETWEEN`, this value is treated as minimum comparison value.", +"type": "string" +}, +"maxComparisonValue": { +"description": "Max comparison value is only used for `BETWEEN` operator.", +"type": "string" +}, +"metricName": { +"description": "The metric that will be filtered on. A `metricFilter` must contain a metric name.", +"type": "string" +}, +"operator": { +"description": "Specifies is the operation to perform to compare the metric. The default is `EQUAL`.", +"enum": [ +"UNSPECIFIED_OPERATOR", +"LESS_THAN", +"GREATER_THAN", +"EQUAL", +"BETWEEN" +], +"enumDescriptions": [ +"Unspecified operator is treated as `LESS_THAN` operator.", +"Checks if the metric value is less than comparison value.", +"Checks if the metric value is greater than comparison value.", +"Equals operator.", +"For between operator, both the minimum and maximum are exclusive. We will use `LT` and `GT` for comparison." +], +"type": "string" +}, +"scope": { +"description": "Scope for a metric defines the level at which that metric is defined. The specified metric scope must be equal to or greater than its primary scope as defined in the data model. The primary scope is defined by if the segment is selecting users or sessions.", +"enum": [ +"UNSPECIFIED_SCOPE", +"PRODUCT", +"HIT", +"SESSION", +"USER" +], +"enumDescriptions": [ +"If the scope is unspecified, it defaults to the condition scope, `USER` or `SESSION` depending on if the segment is trying to choose users or sessions.", +"Product scope.", +"Hit scope.", +"Session scope.", +"User scope." +], +"type": "string" +} +}, +"type": "object" +}, +"SegmentSequenceStep": { +"description": "A segment sequence definition.", +"id": "SegmentSequenceStep", +"properties": { +"matchType": { +"description": "Specifies if the step immediately precedes or can be any time before the next step.", +"enum": [ +"UNSPECIFIED_MATCH_TYPE", +"PRECEDES", +"IMMEDIATELY_PRECEDES" +], +"enumDescriptions": [ +"Unspecified match type is treated as precedes.", +"Operator indicates that the previous step precedes the next step.", +"Operator indicates that the previous step immediately precedes the next step." +], +"type": "string" +}, +"orFiltersForSegment": { +"description": "A sequence is specified with a list of Or grouped filters which are combined with `AND` operator.", +"items": { +"$ref": "OrFiltersForSegment" +}, +"type": "array" +} +}, +"type": "object" +}, +"SequenceSegment": { +"description": "Sequence conditions consist of one or more steps, where each step is defined by one or more dimension/metric conditions. Multiple steps can be combined with special sequence operators.", +"id": "SequenceSegment", +"properties": { +"firstStepShouldMatchFirstHit": { +"description": "If set, first step condition must match the first hit of the visitor (in the date range).", +"type": "boolean" +}, +"segmentSequenceSteps": { +"description": "The list of steps in the sequence.", +"items": { +"$ref": "SegmentSequenceStep" +}, +"type": "array" +} +}, +"type": "object" +}, +"SimpleSegment": { +"description": "A Simple segment conditions consist of one or more dimension/metric conditions that can be combined.", +"id": "SimpleSegment", +"properties": { +"orFiltersForSegment": { +"description": "A list of segment filters groups which are combined with logical `AND` operator.", +"items": { +"$ref": "OrFiltersForSegment" +}, +"type": "array" +} +}, +"type": "object" +}, +"TransactionData": { +"description": "Represents details collected when the visitor performs a transaction on the page.", +"id": "TransactionData", +"properties": { +"transactionId": { +"description": "The transaction ID, supplied by the e-commerce tracking method, for the purchase in the shopping cart.", +"type": "string" +}, +"transactionRevenue": { +"description": "The total sale revenue (excluding shipping and tax) of the transaction.", +"format": "double", +"type": "number" +}, +"transactionShipping": { +"description": "Total cost of shipping.", +"format": "double", +"type": "number" +}, +"transactionTax": { +"description": "Total tax for the transaction.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"User": { +"description": "Contains information to identify a particular user uniquely.", +"id": "User", +"properties": { +"type": { +"description": "Type of the user in the request. The field `userId` is associated with this type.", +"enum": [ +"USER_ID_TYPE_UNSPECIFIED", +"USER_ID", +"CLIENT_ID" +], +"enumDescriptions": [ +"When the User Id Type is not specified, the default type used will be CLIENT_ID.", +"A single user, like a signed-in user account, that may interact with content across one or more devices and / or browser instances.", +"Analytics assigned client_id." +], +"type": "string" +}, +"userId": { +"description": "Unique Id of the user for which the data is being requested.", +"type": "string" +} +}, +"type": "object" +}, +"UserActivitySession": { +"description": "This represents a user session performed on a specific device at a certain time over a period of time.", +"id": "UserActivitySession", +"properties": { +"activities": { +"description": "Represents a detailed view into each of the activity in this session.", +"items": { +"$ref": "Activity" +}, +"type": "array" +}, +"dataSource": { +"description": "The data source of a hit. By default, hits sent from analytics.js are reported as \"web\" and hits sent from the mobile SDKs are reported as \"app\". These values can be overridden in the Measurement Protocol.", +"type": "string" +}, +"deviceCategory": { +"description": "The type of device used: \"mobile\", \"tablet\" etc.", +"type": "string" +}, +"platform": { +"description": "Platform on which the activity happened: \"android\", \"ios\" etc.", +"type": "string" +}, +"sessionDate": { +"description": "Date of this session in ISO-8601 format.", +"type": "string" +}, +"sessionId": { +"description": "Unique ID of the session.", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Analytics Reporting 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/apphub.v1alpha.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/apphub.v1alpha.json new file mode 100644 index 0000000000000000000000000000000000000000..ad87ea325b531f9d32ee34f61e6137bf9503fb61 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/apphub.v1alpha.json @@ -0,0 +1,2955 @@ +{ +"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://apphub.googleapis.com/", +"batchPath": "batch", +"canonicalName": "App Hub", +"description": "", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/app-hub/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": "apphub:v1alpha", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://apphub.mtls.googleapis.com/", +"name": "apphub", +"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": { +"detachServiceProjectAttachment": { +"description": "Detaches a service project from a host project. You can call this API from any service project without needing access to the host project that it is attached to.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}:detachServiceProjectAttachment", +"httpMethod": "POST", +"id": "apphub.projects.locations.detachServiceProjectAttachment", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Service project id and location to detach from a host project. Only global location is supported. Expected format: `projects/{project}/locations/{location}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}:detachServiceProjectAttachment", +"request": { +"$ref": "DetachServiceProjectAttachmentRequest" +}, +"response": { +"$ref": "DetachServiceProjectAttachmentResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets information about a location.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}", +"httpMethod": "GET", +"id": "apphub.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": "apphub.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" +] +}, +"lookupServiceProjectAttachment": { +"description": "Lists a service project attachment for a given service project. You can call this API from any project to find if it is attached to a host project.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}:lookupServiceProjectAttachment", +"httpMethod": "GET", +"id": "apphub.projects.locations.lookupServiceProjectAttachment", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Service project ID and location to lookup service project attachment for. Only global location is supported. Expected format: `projects/{project}/locations/{location}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}:lookupServiceProjectAttachment", +"response": { +"$ref": "LookupServiceProjectAttachmentResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"applications": { +"methods": { +"create": { +"description": "Creates an Application in a host project and location.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/applications", +"httpMethod": "POST", +"id": "apphub.projects.locations.applications.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"applicationId": { +"description": "Required. The Application identifier. Must contain only lowercase letters, numbers or hyphens, 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. Project and location to create Application in. Expected 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}/applications", +"request": { +"$ref": "Application" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes an Application in a host project and location.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}", +"httpMethod": "DELETE", +"id": "apphub.projects.locations.applications.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Fully qualified name of the Application to delete. Expected format: `projects/{project}/locations/{location}/applications/{application}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/applications/[^/]+$", +"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": "v1alpha/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets an Application in a host project and location.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}", +"httpMethod": "GET", +"id": "apphub.projects.locations.applications.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Fully qualified name of the Application to fetch. Expected format: `projects/{project}/locations/{location}/applications/{application}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/applications/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "Application" +}, +"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": "v1alpha/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}:getIamPolicy", +"httpMethod": "GET", +"id": "apphub.projects.locations.applications.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/[^/]+/applications/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists Applications in a host project and location.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/applications", +"httpMethod": "GET", +"id": "apphub.projects.locations.applications.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. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A token identifying a page of results the server should return.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Project and location to list Applications on. Expected format: `projects/{project}/locations/{location}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+parent}/applications", +"response": { +"$ref": "ListApplicationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates an Application in a host project and location.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}", +"httpMethod": "PATCH", +"id": "apphub.projects.locations.applications.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. The resource name of an Application. Format: `\"projects/{host-project-id}/locations/{location}/applications/{application-id}\"`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/applications/[^/]+$", +"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 Application resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. The API changes the values of the fields as specified in the update_mask. The API ignores the values of all fields not covered by the update_mask. You can also unset a field by not specifying it in the updated message, but adding the field to the mask. This clears whatever value the field previously had.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"request": { +"$ref": "Application" +}, +"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": "v1alpha/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}:setIamPolicy", +"httpMethod": "POST", +"id": "apphub.projects.locations.applications.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/[^/]+/applications/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+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": "v1alpha/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}:testIamPermissions", +"httpMethod": "POST", +"id": "apphub.projects.locations.applications.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/[^/]+/applications/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"services": { +"methods": { +"create": { +"description": "Creates a Service in an Application.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}/services", +"httpMethod": "POST", +"id": "apphub.projects.locations.applications.services.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Fully qualified name of the parent Application to create the Service in. Expected format: `projects/{project}/locations/{location}/applications/{application}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/applications/[^/]+$", +"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" +}, +"serviceId": { +"description": "Required. The Service identifier. Must contain only lowercase letters, numbers or hyphens, with the first character a letter, the last a letter or a number, and a 63 character maximum.", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha/{+parent}/services", +"request": { +"$ref": "Service" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a Service from an Application.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}/services/{servicesId}", +"httpMethod": "DELETE", +"id": "apphub.projects.locations.applications.services.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Fully qualified name of the Service to delete from an Application. Expected format: `projects/{project}/locations/{location}/applications/{application}/services/{service}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/applications/[^/]+/services/[^/]+$", +"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": "v1alpha/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a Service in an Application.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}/services/{servicesId}", +"httpMethod": "GET", +"id": "apphub.projects.locations.applications.services.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Fully qualified name of the Service to fetch. Expected format: `projects/{project}/locations/{location}/applications/{application}/services/{service}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/applications/[^/]+/services/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "Service" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists Services in an Application.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}/services", +"httpMethod": "GET", +"id": "apphub.projects.locations.applications.services.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. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A token identifying a page of results the server should return.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Fully qualified name of the parent Application to list Services for. Expected format: `projects/{project}/locations/{location}/applications/{application}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/applications/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+parent}/services", +"response": { +"$ref": "ListServicesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a Service in an Application.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}/services/{servicesId}", +"httpMethod": "PATCH", +"id": "apphub.projects.locations.applications.services.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. The resource name of a Service. Format: `\"projects/{host-project-id}/locations/{location}/applications/{application-id}/services/{service-id}\"`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/applications/[^/]+/services/[^/]+$", +"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 Service resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. The API changes the values of the fields as specified in the update_mask. The API ignores the values of all fields not covered by the update_mask. You can also unset a field by not specifying it in the updated message, but adding the field to the mask. This clears whatever value the field previously had.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"request": { +"$ref": "Service" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"workloads": { +"methods": { +"create": { +"description": "Creates a Workload in an Application.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}/workloads", +"httpMethod": "POST", +"id": "apphub.projects.locations.applications.workloads.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Fully qualified name of the Application to create Workload in. Expected format: `projects/{project}/locations/{location}/applications/{application}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/applications/[^/]+$", +"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" +}, +"workloadId": { +"description": "Required. The Workload identifier. Must contain only lowercase letters, numbers or hyphens, with the first character a letter, the last a letter or a number, and a 63 character maximum.", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha/{+parent}/workloads", +"request": { +"$ref": "Workload" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a Workload from an Application.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}/workloads/{workloadsId}", +"httpMethod": "DELETE", +"id": "apphub.projects.locations.applications.workloads.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Fully qualified name of the Workload to delete from an Application. Expected format: `projects/{project}/locations/{location}/applications/{application}/workloads/{workload}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/applications/[^/]+/workloads/[^/]+$", +"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": "v1alpha/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a Workload in an Application.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}/workloads/{workloadsId}", +"httpMethod": "GET", +"id": "apphub.projects.locations.applications.workloads.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Fully qualified name of the Workload to fetch. Expected format: `projects/{project}/locations/{location}/applications/{application}/workloads/{workload}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/applications/[^/]+/workloads/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "Workload" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists Workloads in an Application.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}/workloads", +"httpMethod": "GET", +"id": "apphub.projects.locations.applications.workloads.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. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A token identifying a page of results the server should return.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Fully qualified name of the parent Application to list Workloads for. Expected format: `projects/{project}/locations/{location}/applications/{application}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/applications/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+parent}/workloads", +"response": { +"$ref": "ListWorkloadsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a Workload in an Application.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}/workloads/{workloadsId}", +"httpMethod": "PATCH", +"id": "apphub.projects.locations.applications.workloads.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. The resource name of the Workload. Format: `\"projects/{host-project-id}/locations/{location}/applications/{application-id}/workloads/{workload-id}\"`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/applications/[^/]+/workloads/[^/]+$", +"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 Workload resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. The API changes the values of the fields as specified in the update_mask. The API ignores the values of all fields not covered by the update_mask. You can also unset a field by not specifying it in the updated message, but adding the field to the mask. This clears whatever value the field previously had.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"request": { +"$ref": "Workload" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"discoveredServices": { +"methods": { +"findUnregistered": { +"description": "Finds unregistered services in a host project and location.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/discoveredServices:findUnregistered", +"httpMethod": "GET", +"id": "apphub.projects.locations.discoveredServices.findUnregistered", +"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. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A token identifying a page of results the server should return.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Project and location to find unregistered Discovered Services on. Expected format: `projects/{project}/locations/{location}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+parent}/discoveredServices:findUnregistered", +"response": { +"$ref": "FindUnregisteredServicesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a Discovered Service in a host project and location.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/discoveredServices/{discoveredServicesId}", +"httpMethod": "GET", +"id": "apphub.projects.locations.discoveredServices.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Fully qualified name of the Discovered Service to fetch. Expected format: `projects/{project}/locations/{location}/discoveredServices/{discoveredService}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/discoveredServices/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "DiscoveredService" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists Discovered Services that can be added to an Application in a host project and location.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/discoveredServices", +"httpMethod": "GET", +"id": "apphub.projects.locations.discoveredServices.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. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A token identifying a page of results the server should return.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Project and location to list Discovered Services on. Expected format: `projects/{project}/locations/{location}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+parent}/discoveredServices", +"response": { +"$ref": "ListDiscoveredServicesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"lookup": { +"description": "Lists a Discovered Service in a host project and location, with a given resource URI.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/discoveredServices:lookup", +"httpMethod": "GET", +"id": "apphub.projects.locations.discoveredServices.lookup", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Host project ID and location to lookup Discovered Service in. Expected format: `projects/{project}/locations/{location}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"uri": { +"description": "Required. Resource URI to find DiscoveredService for. Accepts both project number and project ID and does translation when needed.", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha/{+parent}/discoveredServices:lookup", +"response": { +"$ref": "LookupDiscoveredServiceResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"discoveredWorkloads": { +"methods": { +"findUnregistered": { +"description": "Finds unregistered workloads in a host project and location.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/discoveredWorkloads:findUnregistered", +"httpMethod": "GET", +"id": "apphub.projects.locations.discoveredWorkloads.findUnregistered", +"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. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A token identifying a page of results the server should return.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Project and location to find unregistered Discovered Workloads on. Expected format: `projects/{project}/locations/{location}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+parent}/discoveredWorkloads:findUnregistered", +"response": { +"$ref": "FindUnregisteredWorkloadsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a Discovered Workload in a host project and location.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/discoveredWorkloads/{discoveredWorkloadsId}", +"httpMethod": "GET", +"id": "apphub.projects.locations.discoveredWorkloads.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Fully qualified name of the Discovered Workload to fetch. Expected format: `projects/{project}/locations/{location}/discoveredWorkloads/{discoveredWorkload}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/discoveredWorkloads/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "DiscoveredWorkload" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists Discovered Workloads that can be added to an Application in a host project and location.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/discoveredWorkloads", +"httpMethod": "GET", +"id": "apphub.projects.locations.discoveredWorkloads.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. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A token identifying a page of results the server should return.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Project and location to list Discovered Workloads on. Expected format: `projects/{project}/locations/{location}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+parent}/discoveredWorkloads", +"response": { +"$ref": "ListDiscoveredWorkloadsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"lookup": { +"description": "Lists a Discovered Workload in a host project and location, with a given resource URI.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/discoveredWorkloads:lookup", +"httpMethod": "GET", +"id": "apphub.projects.locations.discoveredWorkloads.lookup", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Host project ID and location to lookup Discovered Workload in. Expected format: `projects/{project}/locations/{location}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"uri": { +"description": "Required. Resource URI to find Discovered Workload for. Accepts both project number and project ID and does translation when needed.", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha/{+parent}/discoveredWorkloads:lookup", +"response": { +"$ref": "LookupDiscoveredWorkloadResponse" +}, +"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": "apphub.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": "apphub.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": "apphub.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": "apphub.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" +] +} +} +}, +"serviceProjectAttachments": { +"methods": { +"create": { +"description": "Attaches a service project to the host project.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/serviceProjectAttachments", +"httpMethod": "POST", +"id": "apphub.projects.locations.serviceProjectAttachments.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Host project ID and location to which service project is being attached. Only global location is supported. Expected 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" +}, +"serviceProjectAttachmentId": { +"description": "Required. The service project attachment identifier must contain the project id of the service project specified in the service_project_attachment.service_project field.", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha/{+parent}/serviceProjectAttachments", +"request": { +"$ref": "ServiceProjectAttachment" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a service project attachment.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/serviceProjectAttachments/{serviceProjectAttachmentsId}", +"httpMethod": "DELETE", +"id": "apphub.projects.locations.serviceProjectAttachments.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Fully qualified name of the service project attachment to delete. Expected format: `projects/{project}/locations/{location}/serviceProjectAttachments/{serviceProjectAttachment}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/serviceProjectAttachments/[^/]+$", +"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": "v1alpha/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a service project attachment.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/serviceProjectAttachments/{serviceProjectAttachmentsId}", +"httpMethod": "GET", +"id": "apphub.projects.locations.serviceProjectAttachments.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Fully qualified name of the service project attachment to retrieve. Expected format: `projects/{project}/locations/{location}/serviceProjectAttachments/{serviceProjectAttachment}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/serviceProjectAttachments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "ServiceProjectAttachment" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists service projects attached to the host project.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/serviceProjectAttachments", +"httpMethod": "GET", +"id": "apphub.projects.locations.serviceProjectAttachments.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. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A token identifying a page of results the server should return.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Host project ID and location to list service project attachments. Only global location is supported. Expected format: `projects/{project}/locations/{location}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+parent}/serviceProjectAttachments", +"response": { +"$ref": "ListServiceProjectAttachmentsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +}, +"revision": "20241008", +"rootUrl": "https://apphub.googleapis.com/", +"schemas": { +"Application": { +"description": "Application defines the governance boundary for App Hub entities that perform a logical end-to-end business function. App Hub supports application level IAM permission to align with governance requirements.", +"id": "Application", +"properties": { +"attributes": { +"$ref": "Attributes", +"description": "Optional. Consumer provided attributes." +}, +"createTime": { +"description": "Output only. Create time.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. User-defined description of an Application. Can have a maximum length of 2048 characters.", +"type": "string" +}, +"displayName": { +"description": "Optional. User-defined name for the Application. Can have a maximum length of 63 characters.", +"type": "string" +}, +"name": { +"description": "Identifier. The resource name of an Application. Format: `\"projects/{host-project-id}/locations/{location}/applications/{application-id}\"`", +"type": "string" +}, +"scope": { +"$ref": "Scope", +"description": "Required. Immutable. Defines what data can be included into this Application. Limits which Services and Workloads can be registered." +}, +"state": { +"description": "Output only. Application state.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"ACTIVE", +"DELETING" +], +"enumDescriptions": [ +"Unspecified state.", +"The Application is being created.", +"The Application is ready to register Services and Workloads.", +"The Application is being deleted." +], +"readOnly": true, +"type": "string" +}, +"uid": { +"description": "Output only. A universally unique identifier (in UUID4 format) for the `Application`.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. Update time.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"AssetLocation": { +"description": "Provides the mapping of a cloud asset to a direct physical location or to a proxy that defines the location on its behalf.", +"id": "AssetLocation", +"properties": { +"ccfeRmsPath": { +"description": "Spanner path of the CCFE RMS database. It is only applicable for CCFE tenants that use CCFE RMS for storing resource metadata.", +"type": "string" +}, +"expected": { +"$ref": "IsolationExpectations", +"description": "Defines the customer expectation around ZI/ZS for this asset and ZI/ZS state of the region at the time of asset creation." +}, +"extraParameters": { +"description": "Defines extra parameters required for specific asset types.", +"items": { +"$ref": "ExtraParameter" +}, +"type": "array" +}, +"locationData": { +"description": "Contains all kinds of physical location definitions for this asset.", +"items": { +"$ref": "LocationData" +}, +"type": "array" +}, +"parentAsset": { +"description": "Defines parents assets if any in order to allow later generation of child_asset_location data via child assets.", +"items": { +"$ref": "CloudAsset" +}, +"type": "array" +} +}, +"type": "object" +}, +"Attributes": { +"description": "Consumer provided attributes.", +"id": "Attributes", +"properties": { +"businessOwners": { +"description": "Optional. Business team that ensures user needs are met and value is delivered", +"items": { +"$ref": "ContactInfo" +}, +"type": "array" +}, +"criticality": { +"$ref": "Criticality", +"description": "Optional. User-defined criticality information." +}, +"developerOwners": { +"description": "Optional. Developer team that owns development and coding.", +"items": { +"$ref": "ContactInfo" +}, +"type": "array" +}, +"environment": { +"$ref": "Environment", +"description": "Optional. User-defined environment information." +}, +"operatorOwners": { +"description": "Optional. Operator team that ensures runtime and operations.", +"items": { +"$ref": "ContactInfo" +}, +"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" +}, +"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" +}, +"BlobstoreLocation": { +"description": "Policy ID that identified data placement in Blobstore as per go/blobstore-user-guide#data-metadata-placement-and-failure-domains", +"id": "BlobstoreLocation", +"properties": { +"policyId": { +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"CancelOperationRequest": { +"description": "The request message for Operations.CancelOperation.", +"id": "CancelOperationRequest", +"properties": {}, +"type": "object" +}, +"Channel": { +"description": "Separate message to accommodate custom formats across IRC and Slack.", +"id": "Channel", +"properties": { +"uri": { +"description": "Required. URI of the channel.", +"type": "string" +} +}, +"type": "object" +}, +"CloudAsset": { +"id": "CloudAsset", +"properties": { +"assetName": { +"type": "string" +}, +"assetType": { +"type": "string" +} +}, +"type": "object" +}, +"CloudAssetComposition": { +"id": "CloudAssetComposition", +"properties": { +"childAsset": { +"items": { +"$ref": "CloudAsset" +}, +"type": "array" +} +}, +"type": "object" +}, +"ContactInfo": { +"description": "Contact information of stakeholders.", +"id": "ContactInfo", +"properties": { +"channel": { +"$ref": "Channel", +"description": "Optional. Communication channel of the contacts." +}, +"displayName": { +"description": "Optional. Contact's name. Can have a maximum length of 63 characters.", +"type": "string" +}, +"email": { +"description": "Required. Email address of the contacts.", +"type": "string" +} +}, +"type": "object" +}, +"Criticality": { +"description": "Criticality of the Application, Service, or Workload", +"id": "Criticality", +"properties": { +"level": { +"deprecated": true, +"description": "Optional. Criticality level. Can contain only lowercase letters, numeric characters, underscores, and dashes. Can have a maximum length of 63 characters. Deprecated: Please refer to type instead.", +"type": "string" +}, +"missionCritical": { +"deprecated": true, +"description": "Optional. Indicates mission-critical Application, Service, or Workload. Deprecated: Please refer to type instead.", +"type": "boolean" +}, +"type": { +"description": "Required. Criticality Type.", +"enum": [ +"TYPE_UNSPECIFIED", +"MISSION_CRITICAL", +"HIGH", +"MEDIUM", +"LOW" +], +"enumDescriptions": [ +"Unspecified type.", +"Mission critical service, application or workload.", +"High impact.", +"Medium impact.", +"Low impact." +], +"type": "string" +} +}, +"type": "object" +}, +"DetachServiceProjectAttachmentRequest": { +"description": "Request for DetachServiceProjectAttachment.", +"id": "DetachServiceProjectAttachmentRequest", +"properties": {}, +"type": "object" +}, +"DetachServiceProjectAttachmentResponse": { +"description": "Response for DetachServiceProjectAttachment.", +"id": "DetachServiceProjectAttachmentResponse", +"properties": {}, +"type": "object" +}, +"DirectLocationAssignment": { +"id": "DirectLocationAssignment", +"properties": { +"location": { +"items": { +"$ref": "LocationAssignment" +}, +"type": "array" +} +}, +"type": "object" +}, +"DiscoveredService": { +"description": "DiscoveredService is a network or API interface that exposes some functionality to clients for consumption over the network. A discovered service can be registered to a App Hub service.", +"id": "DiscoveredService", +"properties": { +"name": { +"description": "Identifier. The resource name of the discovered service. Format: `\"projects/{host-project-id}/locations/{location}/discoveredServices/{uuid}\"`", +"type": "string" +}, +"serviceProperties": { +"$ref": "ServiceProperties", +"description": "Output only. Properties of an underlying compute resource that can comprise a Service. These are immutable.", +"readOnly": true +}, +"serviceReference": { +"$ref": "ServiceReference", +"description": "Output only. Reference to an underlying networking resource that can comprise a Service. These are immutable.", +"readOnly": true +} +}, +"type": "object" +}, +"DiscoveredWorkload": { +"description": "DiscoveredWorkload is a binary deployment (such as managed instance groups (MIGs) and GKE deployments) that performs the smallest logical subset of business functionality. A discovered workload can be registered to an App Hub Workload.", +"id": "DiscoveredWorkload", +"properties": { +"name": { +"description": "Identifier. The resource name of the discovered workload. Format: `\"projects/{host-project-id}/locations/{location}/discoveredWorkloads/{uuid}\"`", +"type": "string" +}, +"workloadProperties": { +"$ref": "WorkloadProperties", +"description": "Output only. Properties of an underlying compute resource represented by the Workload. These are immutable.", +"readOnly": true +}, +"workloadReference": { +"$ref": "WorkloadReference", +"description": "Output only. Reference of an underlying compute resource represented by the Workload. These are immutable.", +"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" +}, +"Environment": { +"description": "Environment of the Application, Service, or Workload", +"id": "Environment", +"properties": { +"environment": { +"deprecated": true, +"description": "Optional. Environment name. Can contain only lowercase letters, numeric characters, underscores, and dashes. Can have a maximum length of 63 characters. Deprecated: Please refer to type instead.", +"type": "string" +}, +"type": { +"description": "Required. Environment Type.", +"enum": [ +"TYPE_UNSPECIFIED", +"PRODUCTION", +"STAGING", +"TEST", +"DEVELOPMENT" +], +"enumDescriptions": [ +"Unspecified type.", +"Production environment.", +"Staging environment.", +"Test environment.", +"Development environment." +], +"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" +}, +"ExtraParameter": { +"description": "Defines parameters that should only be used for specific asset types.", +"id": "ExtraParameter", +"properties": { +"regionalMigDistributionPolicy": { +"$ref": "RegionalMigDistributionPolicy", +"description": "Details about zones used by regional compute.googleapis.com/InstanceGroupManager to create instances." +} +}, +"type": "object" +}, +"FindUnregisteredServicesResponse": { +"description": "Response for FindUnregisteredServices.", +"id": "FindUnregisteredServicesResponse", +"properties": { +"discoveredServices": { +"description": "List of Discovered Services.", +"items": { +"$ref": "DiscoveredService" +}, +"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" +}, +"FindUnregisteredWorkloadsResponse": { +"description": "Response for FindUnregisteredWorkloads.", +"id": "FindUnregisteredWorkloadsResponse", +"properties": { +"discoveredWorkloads": { +"description": "List of Discovered Workloads.", +"items": { +"$ref": "DiscoveredWorkload" +}, +"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" +}, +"IsolationExpectations": { +"id": "IsolationExpectations", +"properties": { +"requirementOverride": { +"$ref": "RequirementOverride", +"description": "Explicit overrides for ZI and ZS requirements to be used for resources that should be excluded from ZI/ZS verification logic." +}, +"ziOrgPolicy": { +"enum": [ +"ZI_UNSPECIFIED", +"ZI_UNKNOWN", +"ZI_NOT_REQUIRED", +"ZI_PREFERRED", +"ZI_REQUIRED" +], +"enumDescriptions": [ +"", +"To be used if tracking is not available", +"", +"", +"" +], +"type": "string" +}, +"ziRegionPolicy": { +"enum": [ +"ZI_REGION_POLICY_UNSPECIFIED", +"ZI_REGION_POLICY_UNKNOWN", +"ZI_REGION_POLICY_NOT_SET", +"ZI_REGION_POLICY_FAIL_OPEN", +"ZI_REGION_POLICY_FAIL_CLOSED" +], +"enumDescriptions": [ +"", +"To be used if tracking is not available", +"", +"", +"" +], +"type": "string" +}, +"ziRegionState": { +"enum": [ +"ZI_REGION_UNSPECIFIED", +"ZI_REGION_UNKNOWN", +"ZI_REGION_NOT_ENABLED", +"ZI_REGION_ENABLED" +], +"enumDescriptions": [ +"", +"To be used if tracking is not available", +"", +"" +], +"type": "string" +}, +"zoneIsolation": { +"deprecated": true, +"description": "Deprecated: use zi_org_policy, zi_region_policy and zi_region_state instead for setting ZI expectations as per go/zicy-publish-physical-location.", +"enum": [ +"ZI_UNSPECIFIED", +"ZI_UNKNOWN", +"ZI_NOT_REQUIRED", +"ZI_PREFERRED", +"ZI_REQUIRED" +], +"enumDescriptions": [ +"", +"To be used if tracking is not available", +"", +"", +"" +], +"type": "string" +}, +"zoneSeparation": { +"deprecated": true, +"description": "Deprecated: use zs_org_policy, and zs_region_stateinstead for setting Zs expectations as per go/zicy-publish-physical-location.", +"enum": [ +"ZS_UNSPECIFIED", +"ZS_UNKNOWN", +"ZS_NOT_REQUIRED", +"ZS_REQUIRED" +], +"enumDescriptions": [ +"", +"To be used if tracking is not available", +"", +"" +], +"type": "string" +}, +"zsOrgPolicy": { +"enum": [ +"ZS_UNSPECIFIED", +"ZS_UNKNOWN", +"ZS_NOT_REQUIRED", +"ZS_REQUIRED" +], +"enumDescriptions": [ +"", +"To be used if tracking is not available", +"", +"" +], +"type": "string" +}, +"zsRegionState": { +"enum": [ +"ZS_REGION_UNSPECIFIED", +"ZS_REGION_UNKNOWN", +"ZS_REGION_NOT_ENABLED", +"ZS_REGION_ENABLED" +], +"enumDescriptions": [ +"", +"To be used if tracking of the asset ZS-bit is not available", +"", +"" +], +"type": "string" +} +}, +"type": "object" +}, +"ListApplicationsResponse": { +"description": "Response for ListApplications.", +"id": "ListApplicationsResponse", +"properties": { +"applications": { +"description": "List of Applications.", +"items": { +"$ref": "Application" +}, +"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" +}, +"ListDiscoveredServicesResponse": { +"description": "Response for ListDiscoveredServices.", +"id": "ListDiscoveredServicesResponse", +"properties": { +"discoveredServices": { +"description": "List of Discovered Services.", +"items": { +"$ref": "DiscoveredService" +}, +"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" +}, +"ListDiscoveredWorkloadsResponse": { +"description": "Response for ListDiscoveredWorkloads.", +"id": "ListDiscoveredWorkloadsResponse", +"properties": { +"discoveredWorkloads": { +"description": "List of Discovered Workloads.", +"items": { +"$ref": "DiscoveredWorkload" +}, +"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" +}, +"ListServiceProjectAttachmentsResponse": { +"description": "Response for ListServiceProjectAttachments.", +"id": "ListServiceProjectAttachmentsResponse", +"properties": { +"nextPageToken": { +"description": "A token identifying a page of results the server should return.", +"type": "string" +}, +"serviceProjectAttachments": { +"description": "List of service project attachments.", +"items": { +"$ref": "ServiceProjectAttachment" +}, +"type": "array" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListServicesResponse": { +"description": "Response for ListServices.", +"id": "ListServicesResponse", +"properties": { +"nextPageToken": { +"description": "A token identifying a page of results the server should return.", +"type": "string" +}, +"services": { +"description": "List of Services.", +"items": { +"$ref": "Service" +}, +"type": "array" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListWorkloadsResponse": { +"description": "Response for ListWorkloads.", +"id": "ListWorkloadsResponse", +"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" +}, +"workloads": { +"description": "List of Workloads.", +"items": { +"$ref": "Workload" +}, +"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" +}, +"LocationAssignment": { +"id": "LocationAssignment", +"properties": { +"location": { +"type": "string" +}, +"locationType": { +"enum": [ +"UNSPECIFIED", +"CLUSTER", +"POP", +"CLOUD_ZONE", +"CLOUD_REGION", +"MULTI_REGION_GEO", +"MULTI_REGION_JURISDICTION", +"GLOBAL", +"OTHER" +], +"enumDescriptions": [ +"", +"1-10: Physical failure domains.", +"", +"11-20: Logical failure domains.", +"", +"", +"", +"", +"" +], +"type": "string" +} +}, +"type": "object" +}, +"LocationData": { +"id": "LocationData", +"properties": { +"blobstoreLocation": { +"$ref": "BlobstoreLocation" +}, +"childAssetLocation": { +"$ref": "CloudAssetComposition" +}, +"directLocation": { +"$ref": "DirectLocationAssignment" +}, +"gcpProjectProxy": { +"$ref": "TenantProjectProxy" +}, +"placerLocation": { +"$ref": "PlacerLocation" +}, +"spannerLocation": { +"$ref": "SpannerLocation" +} +}, +"type": "object" +}, +"LookupDiscoveredServiceResponse": { +"description": "Response for LookupDiscoveredService.", +"id": "LookupDiscoveredServiceResponse", +"properties": { +"discoveredService": { +"$ref": "DiscoveredService", +"description": "Discovered Service if exists, empty otherwise." +} +}, +"type": "object" +}, +"LookupDiscoveredWorkloadResponse": { +"description": "Response for LookupDiscoveredWorkload.", +"id": "LookupDiscoveredWorkloadResponse", +"properties": { +"discoveredWorkload": { +"$ref": "DiscoveredWorkload", +"description": "Discovered Workload if exists, empty otherwise." +} +}, +"type": "object" +}, +"LookupServiceProjectAttachmentResponse": { +"description": "Response for LookupServiceProjectAttachment.", +"id": "LookupServiceProjectAttachmentResponse", +"properties": { +"serviceProjectAttachment": { +"$ref": "ServiceProjectAttachment", +"description": "Service project attachment for a project if exists, empty otherwise." +} +}, +"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" +}, +"PlacerLocation": { +"description": "Message describing that the location of the customer resource is tied to placer allocations", +"id": "PlacerLocation", +"properties": { +"placerConfig": { +"description": "Directory with a config related to it in placer (e.g. \"/placer/prod/home/my-root/my-dir\")", +"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" +}, +"RegionalMigDistributionPolicy": { +"description": "To be used for specifying the intended distribution of regional compute.googleapis.com/InstanceGroupManager instances", +"id": "RegionalMigDistributionPolicy", +"properties": { +"targetShape": { +"description": "The shape in which the group converges around distribution of resources. Instance of proto2 enum", +"format": "int32", +"type": "integer" +}, +"zones": { +"description": "Cloud zones used by regional MIG to create instances.", +"items": { +"$ref": "ZoneConfiguration" +}, +"type": "array" +} +}, +"type": "object" +}, +"RequirementOverride": { +"id": "RequirementOverride", +"properties": { +"ziOverride": { +"enum": [ +"ZI_UNSPECIFIED", +"ZI_UNKNOWN", +"ZI_NOT_REQUIRED", +"ZI_PREFERRED", +"ZI_REQUIRED" +], +"enumDescriptions": [ +"", +"To be used if tracking is not available", +"", +"", +"" +], +"type": "string" +}, +"zsOverride": { +"enum": [ +"ZS_UNSPECIFIED", +"ZS_UNKNOWN", +"ZS_NOT_REQUIRED", +"ZS_REQUIRED" +], +"enumDescriptions": [ +"", +"To be used if tracking is not available", +"", +"" +], +"type": "string" +} +}, +"type": "object" +}, +"Scope": { +"description": "Scope of an application.", +"id": "Scope", +"properties": { +"type": { +"description": "Required. Scope Type.", +"enum": [ +"TYPE_UNSPECIFIED", +"REGIONAL", +"GLOBAL" +], +"enumDescriptions": [ +"Unspecified type.", +"Regional type.", +"Global type." +], +"type": "string" +} +}, +"type": "object" +}, +"Service": { +"description": "Service is an App Hub data model that contains a discovered service, which represents a network or API interface that exposes some functionality to clients for consumption over the network.", +"id": "Service", +"properties": { +"attributes": { +"$ref": "Attributes", +"description": "Optional. Consumer provided attributes." +}, +"createTime": { +"description": "Output only. Create time.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. User-defined description of a Service. Can have a maximum length of 2048 characters.", +"type": "string" +}, +"discoveredService": { +"description": "Required. Immutable. The resource name of the original discovered service.", +"type": "string" +}, +"displayName": { +"description": "Optional. User-defined name for the Service. Can have a maximum length of 63 characters.", +"type": "string" +}, +"name": { +"description": "Identifier. The resource name of a Service. Format: `\"projects/{host-project-id}/locations/{location}/applications/{application-id}/services/{service-id}\"`", +"type": "string" +}, +"serviceProperties": { +"$ref": "ServiceProperties", +"description": "Output only. Properties of an underlying compute resource that can comprise a Service. These are immutable.", +"readOnly": true +}, +"serviceReference": { +"$ref": "ServiceReference", +"description": "Output only. Reference to an underlying networking resource that can comprise a Service. These are immutable.", +"readOnly": true +}, +"state": { +"description": "Output only. Service state.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"ACTIVE", +"DELETING", +"DETACHED" +], +"enumDescriptions": [ +"Unspecified state.", +"The service is being created.", +"The service is ready.", +"The service is being deleted.", +"The underlying networking resources have been deleted." +], +"readOnly": true, +"type": "string" +}, +"uid": { +"description": "Output only. A universally unique identifier (UUID) for the `Service` in the UUID4 format.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. Update time.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ServiceProjectAttachment": { +"description": "ServiceProjectAttachment represents an attachment from a service project to a host project. Service projects contain the underlying cloud infrastructure resources, and expose these resources to the host project through a ServiceProjectAttachment. With the attachments, the host project can provide an aggregated view of resources across all service projects.", +"id": "ServiceProjectAttachment", +"properties": { +"createTime": { +"description": "Output only. Create time.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Identifier. The resource name of a ServiceProjectAttachment. Format: `\"projects/{host-project-id}/locations/global/serviceProjectAttachments/{service-project-id}.\"`", +"type": "string" +}, +"serviceProject": { +"description": "Required. Immutable. Service project name in the format: `\"projects/abc\"` or `\"projects/123\"`. As input, project name with either project id or number are accepted. As output, this field will contain project number.", +"type": "string" +}, +"state": { +"description": "Output only. ServiceProjectAttachment state.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"ACTIVE", +"DELETING" +], +"enumDescriptions": [ +"Unspecified state.", +"The ServiceProjectAttachment is being created.", +"The ServiceProjectAttachment is ready. This means Services and Workloads under the corresponding ServiceProjectAttachment is ready for registration.", +"The ServiceProjectAttachment is being deleted." +], +"readOnly": true, +"type": "string" +}, +"uid": { +"description": "Output only. A globally unique identifier (in UUID4 format) for the `ServiceProjectAttachment`.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ServiceProperties": { +"description": "Properties of an underlying cloud resource that can comprise a Service.", +"id": "ServiceProperties", +"properties": { +"gcpProject": { +"description": "Output only. The service project identifier that the underlying cloud resource resides in.", +"readOnly": true, +"type": "string" +}, +"location": { +"description": "Output only. The location that the underlying resource resides in, for example, us-west1.", +"readOnly": true, +"type": "string" +}, +"zone": { +"description": "Output only. The location that the underlying resource resides in if it is zonal, for example, us-west1-a).", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ServiceReference": { +"description": "Reference to an underlying networking resource that can comprise a Service.", +"id": "ServiceReference", +"properties": { +"path": { +"description": "Output only. Additional path under the resource URI (demultiplexing one resource URI into multiple entries). Smallest unit a policy can be attached to. Examples: URL Map path entry.", +"readOnly": true, +"type": "string" +}, +"uri": { +"description": "Output only. The underlying resource URI. For example, URI of Forwarding Rule, URL Map, and Backend Service.", +"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" +}, +"SpannerLocation": { +"id": "SpannerLocation", +"properties": { +"backupName": { +"description": "Set of backups used by the resource with name in the same format as what is available at http://table/spanner_automon.backup_metadata", +"items": { +"type": "string" +}, +"type": "array" +}, +"dbName": { +"description": "Set of databases used by the resource in format /span//", +"items": { +"type": "string" +}, +"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" +}, +"TenantProjectProxy": { +"id": "TenantProjectProxy", +"properties": { +"projectNumbers": { +"items": { +"type": "string" +}, +"type": "array" +} +}, +"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" +}, +"Workload": { +"description": "Workload is an App Hub data model that contains a discovered workload, which represents a binary deployment (such as managed instance groups (MIGs) and GKE deployments) that performs the smallest logical subset of business functionality.", +"id": "Workload", +"properties": { +"attributes": { +"$ref": "Attributes", +"description": "Optional. Consumer provided attributes." +}, +"createTime": { +"description": "Output only. Create time.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. User-defined description of a Workload. Can have a maximum length of 2048 characters.", +"type": "string" +}, +"discoveredWorkload": { +"description": "Required. Immutable. The resource name of the original discovered workload.", +"type": "string" +}, +"displayName": { +"description": "Optional. User-defined name for the Workload. Can have a maximum length of 63 characters.", +"type": "string" +}, +"name": { +"description": "Identifier. The resource name of the Workload. Format: `\"projects/{host-project-id}/locations/{location}/applications/{application-id}/workloads/{workload-id}\"`", +"type": "string" +}, +"state": { +"description": "Output only. Workload state.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"ACTIVE", +"DELETING", +"DETACHED" +], +"enumDescriptions": [ +"Unspecified state.", +"The Workload is being created.", +"The Workload is ready.", +"The Workload is being deleted.", +"The underlying compute resources have been deleted." +], +"readOnly": true, +"type": "string" +}, +"uid": { +"description": "Output only. A universally unique identifier (UUID) for the `Workload` in the UUID4 format.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. Update time.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"workloadProperties": { +"$ref": "WorkloadProperties", +"description": "Output only. Properties of an underlying compute resource represented by the Workload. These are immutable.", +"readOnly": true +}, +"workloadReference": { +"$ref": "WorkloadReference", +"description": "Output only. Reference of an underlying compute resource represented by the Workload. These are immutable.", +"readOnly": true +} +}, +"type": "object" +}, +"WorkloadProperties": { +"description": "Properties of an underlying compute resource represented by the Workload.", +"id": "WorkloadProperties", +"properties": { +"gcpProject": { +"description": "Output only. The service project identifier that the underlying cloud resource resides in. Empty for non-cloud resources.", +"readOnly": true, +"type": "string" +}, +"location": { +"description": "Output only. The location that the underlying compute resource resides in (for example, us-west1).", +"readOnly": true, +"type": "string" +}, +"zone": { +"description": "Output only. The location that the underlying compute resource resides in if it is zonal (for example, us-west1-a).", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"WorkloadReference": { +"description": "Reference of an underlying compute resource represented by the Workload.", +"id": "WorkloadReference", +"properties": { +"uri": { +"description": "Output only. The underlying compute resource uri.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ZoneConfiguration": { +"id": "ZoneConfiguration", +"properties": { +"zone": { +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "App Hub 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/artifactregistry.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/artifactregistry.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..11113589af159932f1ef8c11194cef5f19333df4 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/artifactregistry.v1.json @@ -0,0 +1,4737 @@ +{ +"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:v1", +"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": "v1/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": "v1/{+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": "v1/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": "v1/{+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": "v1/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": "v1/{+name}", +"response": { +"$ref": "Location" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"getVpcscConfig": { +"description": "Retrieves the VPCSC Config for the Project.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/vpcscConfig", +"httpMethod": "GET", +"id": "artifactregistry.projects.locations.getVpcscConfig", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the VPCSCConfig resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/vpcscConfig$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "VPCSCConfig" +}, +"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": "v1/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": "v1/{+name}/locations", +"response": { +"$ref": "ListLocationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"updateVpcscConfig": { +"description": "Updates the VPCSC Config for the Project.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/vpcscConfig", +"httpMethod": "PATCH", +"id": "artifactregistry.projects.locations.updateVpcscConfig", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the project's VPC SC Config. Always of the form: projects/{projectID}/locations/{location}/vpcscConfig In update request: never set In response: always set", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/vpcscConfig$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Field mask to support partial updates.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "VPCSCConfig" +}, +"response": { +"$ref": "VPCSCConfig" +}, +"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}/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": "v1/{+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": "v1/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": "v1/{+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": "v1/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": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a repository.", +"flatPath": "v1/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": "v1/{+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": "v1/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": "v1/{+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": "v1/projects/{projectsId}/locations/{locationsId}/repositories", +"httpMethod": "GET", +"id": "artifactregistry.projects.locations.repositories.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. An expression for filtering the results of the request. Filter rules are case insensitive. The fields eligible for filtering are: * `name` Examples of using a filter: To filter the results of your request to repositories with the name `my-repo` in project `my-project` in the `us-central` region, append the following filter expression to your request: * `name=\"projects/my-project/locations/us-central1/repositories/my-repo\"` 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-*\"` * `name=\"projects/my-project/locations/us-central1/repositories/*repo\"` * `name=\"projects/my-project/locations/us-central1/repositories/*repo*\"`", +"location": "query", +"type": "string" +}, +"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": "v1/{+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": "v1/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": "v1/{+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": "v1/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": "v1/{+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": "v1/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": "v1/{+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": "v1/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": "v1/{+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": "v1/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/v1/{+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": "v1/{+parent}/aptArtifacts:create", +"request": { +"$ref": "UploadAptArtifactRequest" +}, +"response": { +"$ref": "UploadAptArtifactMediaResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +], +"supportsMediaUpload": true +} +} +}, +"attachments": { +"methods": { +"create": { +"description": "Creates an attachment. The returned Operation will finish once the attachment has been created. Its response will be the created attachment.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/attachments", +"httpMethod": "POST", +"id": "artifactregistry.projects.locations.repositories.attachments.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"attachmentId": { +"description": "Required. The attachment id to use for this attachment.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the parent resource where the attachment will be created.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/attachments", +"request": { +"$ref": "Attachment" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes an attachment. The returned Operation will finish once the attachments has been deleted. It will not have any Operation metadata and will return a `google.protobuf.Empty` response.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/attachments/{attachmentsId}", +"httpMethod": "DELETE", +"id": "artifactregistry.projects.locations.repositories.attachments.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the attachment to delete.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/attachments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets an attachment.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/attachments/{attachmentsId}", +"httpMethod": "GET", +"id": "artifactregistry.projects.locations.repositories.attachments.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the attachment to retrieve.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/attachments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Attachment" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"list": { +"description": "Lists attachments.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/attachments", +"httpMethod": "GET", +"id": "artifactregistry.projects.locations.repositories.attachments.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. An expression for filtering the results of the request. Filter rules are case insensitive. The fields eligible for filtering are: * `target` * `type` * `attachment_namespace`", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of attachments 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 attachments will be listed.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/attachments", +"response": { +"$ref": "ListAttachmentsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +} +} +}, +"dockerImages": { +"methods": { +"get": { +"description": "Gets a docker image.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/dockerImages/{dockerImagesId}", +"httpMethod": "GET", +"id": "artifactregistry.projects.locations.repositories.dockerImages.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the docker images.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/dockerImages/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "DockerImage" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"list": { +"description": "Lists docker images.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/dockerImages", +"httpMethod": "GET", +"id": "artifactregistry.projects.locations.repositories.dockerImages.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"orderBy": { +"description": "The field to order the results by.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of artifacts 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 docker images will be listed.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/dockerImages", +"response": { +"$ref": "ListDockerImagesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +} +} +}, +"files": { +"methods": { +"delete": { +"description": "Deletes a file and all of its content. It is only allowed on generic repositories. The returned operation will complete once the file has been deleted.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/files/{filesId}", +"httpMethod": "DELETE", +"id": "artifactregistry.projects.locations.repositories.files.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the file to delete.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/files/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"download": { +"description": "Download a file.", +"flatPath": "v1/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": "v1/{+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": "v1/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": "v1/{+name}", +"response": { +"$ref": "GoogleDevtoolsArtifactregistryV1File" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"list": { +"description": "Lists files.", +"flatPath": "v1/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" +}, +"orderBy": { +"description": "The field to order the results by.", +"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": "v1/{+parent}/files", +"response": { +"$ref": "ListFilesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"patch": { +"description": "Updates a file.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/files/{filesId}", +"httpMethod": "PATCH", +"id": "artifactregistry.projects.locations.repositories.files.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"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.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/files/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. 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": "v1/{+name}", +"request": { +"$ref": "GoogleDevtoolsArtifactregistryV1File" +}, +"response": { +"$ref": "GoogleDevtoolsArtifactregistryV1File" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"upload": { +"description": "Directly uploads a file to a repository. The returned Operation will complete once the resources are uploaded.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/files:upload", +"httpMethod": "POST", +"id": "artifactregistry.projects.locations.repositories.files.upload", +"mediaUpload": { +"accept": [ +"*/*" +], +"protocols": { +"resumable": { +"multipart": true, +"path": "/resumable/upload/v1/{+parent}/files:upload" +}, +"simple": { +"multipart": true, +"path": "/upload/v1/{+parent}/files:upload" +} +} +}, +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The resource name of the repository where the file will be uploaded.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/files:upload", +"request": { +"$ref": "UploadFileRequest" +}, +"response": { +"$ref": "UploadFileMediaResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +], +"supportsMediaUpload": true +} +} +}, +"genericArtifacts": { +"methods": { +"upload": { +"description": "Directly uploads a Generic artifact. The returned operation will complete once the resources are uploaded. Package, version, and file resources are created based on the uploaded artifact. Uploaded artifacts that conflict with existing resources will raise an `ALREADY_EXISTS` error.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/genericArtifacts:create", +"httpMethod": "POST", +"id": "artifactregistry.projects.locations.repositories.genericArtifacts.upload", +"mediaUpload": { +"accept": [ +"*/*" +], +"protocols": { +"resumable": { +"multipart": true, +"path": "/resumable/upload/v1/{+parent}/genericArtifacts:create" +}, +"simple": { +"multipart": true, +"path": "/upload/v1/{+parent}/genericArtifacts:create" +} +} +}, +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "The resource name of the repository where the generic artifact will be uploaded.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/genericArtifacts:create", +"request": { +"$ref": "UploadGenericArtifactRequest" +}, +"response": { +"$ref": "UploadGenericArtifactMediaResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +], +"supportsMediaUpload": true +} +} +}, +"goModules": { +"methods": { +"upload": { +"description": "Directly uploads a Go module. The returned Operation will complete once the Go module is uploaded. Package, Version, and File resources are created based on the uploaded Go module.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/goModules:create", +"httpMethod": "POST", +"id": "artifactregistry.projects.locations.repositories.goModules.upload", +"mediaUpload": { +"accept": [ +"*/*" +], +"protocols": { +"simple": { +"multipart": true, +"path": "/upload/v1/{+parent}/goModules:create" +} +} +}, +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "The resource name of the repository where the Go module will be uploaded.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/goModules:create", +"request": { +"$ref": "UploadGoModuleRequest" +}, +"response": { +"$ref": "UploadGoModuleMediaResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +], +"supportsMediaUpload": true +} +} +}, +"googetArtifacts": { +"methods": { +"import": { +"description": "Imports GooGet 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": "v1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/googetArtifacts:import", +"httpMethod": "POST", +"id": "artifactregistry.projects.locations.repositories.googetArtifacts.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": "v1/{+parent}/googetArtifacts:import", +"request": { +"$ref": "ImportGoogetArtifactsRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"upload": { +"description": "Directly uploads a GooGet 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": "v1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/googetArtifacts:create", +"httpMethod": "POST", +"id": "artifactregistry.projects.locations.repositories.googetArtifacts.upload", +"mediaUpload": { +"accept": [ +"*/*" +], +"protocols": { +"simple": { +"multipart": true, +"path": "/upload/v1/{+parent}/googetArtifacts: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": "v1/{+parent}/googetArtifacts:create", +"request": { +"$ref": "UploadGoogetArtifactRequest" +}, +"response": { +"$ref": "UploadGoogetArtifactMediaResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +], +"supportsMediaUpload": true +} +} +}, +"kfpArtifacts": { +"methods": { +"upload": { +"description": "Directly uploads a KFP artifact. The returned Operation will complete once the resource is uploaded. Package, Version, and File resources will be created based on the uploaded artifact. Uploaded artifacts that conflict with existing resources will be overwritten.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/kfpArtifacts:create", +"httpMethod": "POST", +"id": "artifactregistry.projects.locations.repositories.kfpArtifacts.upload", +"mediaUpload": { +"accept": [ +"*/*" +], +"protocols": { +"simple": { +"multipart": true, +"path": "/upload/v1/{+parent}/kfpArtifacts:create" +} +} +}, +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "The resource name of the repository where the KFP artifact will be uploaded.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/kfpArtifacts:create", +"request": { +"$ref": "UploadKfpArtifactRequest" +}, +"response": { +"$ref": "UploadKfpArtifactMediaResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +], +"supportsMediaUpload": true +} +} +}, +"mavenArtifacts": { +"methods": { +"get": { +"description": "Gets a maven artifact.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/mavenArtifacts/{mavenArtifactsId}", +"httpMethod": "GET", +"id": "artifactregistry.projects.locations.repositories.mavenArtifacts.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the maven artifact.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/mavenArtifacts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "MavenArtifact" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"list": { +"description": "Lists maven artifacts.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/mavenArtifacts", +"httpMethod": "GET", +"id": "artifactregistry.projects.locations.repositories.mavenArtifacts.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of artifacts 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 maven artifacts will be listed.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/mavenArtifacts", +"response": { +"$ref": "ListMavenArtifactsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +} +} +}, +"npmPackages": { +"methods": { +"get": { +"description": "Gets a npm package.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/npmPackages/{npmPackagesId}", +"httpMethod": "GET", +"id": "artifactregistry.projects.locations.repositories.npmPackages.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the npm package.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/npmPackages/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "NpmPackage" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"list": { +"description": "Lists npm packages.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/npmPackages", +"httpMethod": "GET", +"id": "artifactregistry.projects.locations.repositories.npmPackages.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of artifacts 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 npm packages will be listed.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/npmPackages", +"response": { +"$ref": "ListNpmPackagesResponse" +}, +"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": "v1/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": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a package.", +"flatPath": "v1/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": "v1/{+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": "v1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/packages", +"httpMethod": "GET", +"id": "artifactregistry.projects.locations.repositories.packages.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. An expression for filtering the results of the request. Filter rules are case insensitive. The fields eligible for filtering are: * `name` * `annotations` Examples of using a filter: To filter the results of your request to packages with the name `my-package` 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/packages/my-package\"` 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-*\"` * `name=\"projects/my-project/locations/us-central1/repositories/my-repo/packages/*package\"` * `name=\"projects/my-project/locations/us-central1/repositories/my-repo/packages/*pack*\"` To filter the results of your request to packages 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 the results 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 packages with the annotation key-value pair [`external.link`:`https://example.com/my-package`], append the following filter expression to your request: * `` \"annotations.`external.link`:`https://example.com/my-package`\" `` 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" +}, +"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": "v1/{+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": "v1/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": "v1/{+name}", +"request": { +"$ref": "Package" +}, +"response": { +"$ref": "Package" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"tags": { +"methods": { +"create": { +"description": "Creates a tag.", +"flatPath": "v1/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": "v1/{+parent}/tags", +"request": { +"$ref": "Tag" +}, +"response": { +"$ref": "Tag" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a tag.", +"flatPath": "v1/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": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a tag.", +"flatPath": "v1/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": "v1/{+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": "v1/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": "v1/{+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": "v1/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": "v1/{+name}", +"request": { +"$ref": "Tag" +}, +"response": { +"$ref": "Tag" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"versions": { +"methods": { +"batchDelete": { +"description": "Deletes multiple versions across a repository. The returned operation will complete once the versions have been deleted.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/packages/{packagesId}/versions:batchDelete", +"httpMethod": "POST", +"id": "artifactregistry.projects.locations.repositories.packages.versions.batchDelete", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "The name of the repository holding all requested versions.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/packages/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/versions:batchDelete", +"request": { +"$ref": "BatchDeleteVersionsRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a version and all of its content. The returned operation will complete once the version has been deleted.", +"flatPath": "v1/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": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a version", +"flatPath": "v1/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": "v1/{+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": "v1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/packages/{packagesId}/versions", +"httpMethod": "GET", +"id": "artifactregistry.projects.locations.repositories.packages.versions.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. An expression for filtering the results of the request. Filter rules are case insensitive. The fields eligible for filtering are: * `name` * `annotations` Examples of using a filter: To filter the results of your request to versions with the name `my-version` 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/packages/my-package/versions/my-version\"` 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/versions/*version\"` * `name=\"projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/versions/my*\"` * `name=\"projects/my-project/locations/us-central1/repositories/my-repo/packages/my-package/versions/*version*\"` To filter the results of your request to versions 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 versions with the annotation key-value pair [`external.link`:`https://example.com/my-version`], append the following filter expression to your request: * `` \"annotations.`external.link`:`https://example.com/my-version`\" `` 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" +}, +"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": "v1/{+parent}/versions", +"response": { +"$ref": "ListVersionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"patch": { +"description": "Updates a version.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/packages/{packagesId}/versions/{versionsId}", +"httpMethod": "PATCH", +"id": "artifactregistry.projects.locations.repositories.packages.versions.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"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.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/packages/[^/]+/versions/[^/]+$", +"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": "v1/{+name}", +"request": { +"$ref": "Version" +}, +"response": { +"$ref": "Version" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"pythonPackages": { +"methods": { +"get": { +"description": "Gets a python package.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/pythonPackages/{pythonPackagesId}", +"httpMethod": "GET", +"id": "artifactregistry.projects.locations.repositories.pythonPackages.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the python package.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/pythonPackages/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "PythonPackage" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"list": { +"description": "Lists python packages.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/pythonPackages", +"httpMethod": "GET", +"id": "artifactregistry.projects.locations.repositories.pythonPackages.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of artifacts 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 python packages will be listed.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/pythonPackages", +"response": { +"$ref": "ListPythonPackagesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +} +} +}, +"rules": { +"methods": { +"create": { +"description": "Creates a rule.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/rules", +"httpMethod": "POST", +"id": "artifactregistry.projects.locations.repositories.rules.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the parent resource where the rule will be created.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", +"required": true, +"type": "string" +}, +"ruleId": { +"description": "The rule id to use for this repository.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/rules", +"request": { +"$ref": "GoogleDevtoolsArtifactregistryV1Rule" +}, +"response": { +"$ref": "GoogleDevtoolsArtifactregistryV1Rule" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a rule.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/rules/{rulesId}", +"httpMethod": "DELETE", +"id": "artifactregistry.projects.locations.repositories.rules.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the rule to delete.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/rules/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a rule.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/rules/{rulesId}", +"httpMethod": "GET", +"id": "artifactregistry.projects.locations.repositories.rules.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the rule to retrieve.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/rules/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleDevtoolsArtifactregistryV1Rule" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"list": { +"description": "Lists rules.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/rules", +"httpMethod": "GET", +"id": "artifactregistry.projects.locations.repositories.rules.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of rules 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 repository whose rules will be listed. For example: `projects/p1/locations/us-central1/repositories/repo1`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/rules", +"response": { +"$ref": "ListRulesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"patch": { +"description": "Updates a rule.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/rules/{rulesId}", +"httpMethod": "PATCH", +"id": "artifactregistry.projects.locations.repositories.rules.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the rule, for example: `projects/p1/locations/us-central1/repositories/repo1/rules/rule1`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/rules/[^/]+$", +"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": "v1/{+name}", +"request": { +"$ref": "GoogleDevtoolsArtifactregistryV1Rule" +}, +"response": { +"$ref": "GoogleDevtoolsArtifactregistryV1Rule" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"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": "v1/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": "v1/{+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": "v1/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/v1/{+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": "v1/{+parent}/yumArtifacts:create", +"request": { +"$ref": "UploadYumArtifactRequest" +}, +"response": { +"$ref": "UploadYumArtifactMediaResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +], +"supportsMediaUpload": true +} +} +} +} +} +} +} +} +} +}, +"revision": "20241205", +"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" +}, +"AptRepository": { +"description": "Configuration for an Apt remote repository.", +"id": "AptRepository", +"properties": { +"customRepository": { +"$ref": "GoogleDevtoolsArtifactregistryV1RemoteRepositoryConfigAptRepositoryCustomRepository", +"description": "Customer-specified remote repository." +}, +"publicRepository": { +"$ref": "GoogleDevtoolsArtifactregistryV1RemoteRepositoryConfigAptRepositoryPublicRepository", +"description": "One of the publicly available Apt repositories supported by Artifact Registry." +} +}, +"type": "object" +}, +"Attachment": { +"description": "An Attachment refers to additional metadata that can be attached to artifacts in Artifact Registry. An attachment consists of one or more files.", +"id": "Attachment", +"properties": { +"annotations": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. User annotations. These attributes can only be set and used by the user, and not by Artifact Registry. See https://google.aip.dev/128#annotations for more details such as format and size limitations.", +"type": "object" +}, +"attachmentNamespace": { +"description": "The namespace this attachment belongs to. E.g. If an attachment is created by artifact analysis, namespace is set to `artifactanalysis.googleapis.com`.", +"type": "string" +}, +"createTime": { +"description": "Output only. The time when the attachment was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"files": { +"description": "Required. The files that belong to this attachment. If the file ID part contains slashes, they are escaped. E.g. `projects/p1/locations/us-central1/repositories/repo1/files/sha:`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"name": { +"description": "The name of the attachment. E.g. `projects/p1/locations/us/repositories/repo/attachments/sbom`.", +"type": "string" +}, +"ociVersionName": { +"description": "Output only. The name of the OCI version that this attachment created. Only populated for Docker attachments. E.g. `projects/p1/locations/us-central1/repositories/repo1/packages/p1/versions/v1`.", +"readOnly": true, +"type": "string" +}, +"target": { +"description": "Required. The target the attachment is for, can be a Version, Package or Repository. E.g. `projects/p1/locations/us-central1/repositories/repo1/packages/p1/versions/v1`.", +"type": "string" +}, +"type": { +"description": "Type of attachment. E.g. `application/vnd.spdx+json`", +"type": "string" +}, +"updateTime": { +"description": "Output only. The time when the attachment was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"BatchDeleteVersionsMetadata": { +"description": "The metadata of an LRO from deleting multiple versions.", +"id": "BatchDeleteVersionsMetadata", +"properties": { +"failedVersions": { +"description": "The versions the operation failed to delete.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"BatchDeleteVersionsRequest": { +"description": "The request to delete multiple versions across a repository.", +"id": "BatchDeleteVersionsRequest", +"properties": { +"names": { +"description": "Required. The names of the versions to delete. A maximum of 10000 versions can be deleted in a batch.", +"items": { +"type": "string" +}, +"type": "array" +}, +"validateOnly": { +"description": "If true, the request is performed without deleting data, following AIP-163.", +"type": "boolean" +} +}, +"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" +}, +"CleanupPolicy": { +"description": "Artifact policy configuration for repository cleanup policies.", +"id": "CleanupPolicy", +"properties": { +"action": { +"description": "Policy action.", +"enum": [ +"ACTION_UNSPECIFIED", +"DELETE", +"KEEP" +], +"enumDescriptions": [ +"Action not specified.", +"Delete action.", +"Keep action." +], +"type": "string" +}, +"condition": { +"$ref": "CleanupPolicyCondition", +"description": "Policy condition for matching versions." +}, +"id": { +"description": "The user-provided ID of the cleanup policy.", +"type": "string" +}, +"mostRecentVersions": { +"$ref": "CleanupPolicyMostRecentVersions", +"description": "Policy condition for retaining a minimum number of versions. May only be specified with a Keep action." +} +}, +"type": "object" +}, +"CleanupPolicyCondition": { +"description": "CleanupPolicyCondition is a set of conditions attached to a CleanupPolicy. If multiple entries are set, all must be satisfied for the condition to be satisfied.", +"id": "CleanupPolicyCondition", +"properties": { +"newerThan": { +"description": "Match versions newer than a duration.", +"format": "google-duration", +"type": "string" +}, +"olderThan": { +"description": "Match versions older than a duration.", +"format": "google-duration", +"type": "string" +}, +"packageNamePrefixes": { +"description": "Match versions by package prefix. Applied on any prefix match.", +"items": { +"type": "string" +}, +"type": "array" +}, +"tagPrefixes": { +"description": "Match versions by tag prefix. Applied on any prefix match.", +"items": { +"type": "string" +}, +"type": "array" +}, +"tagState": { +"description": "Match versions by tag status.", +"enum": [ +"TAG_STATE_UNSPECIFIED", +"TAGGED", +"UNTAGGED", +"ANY" +], +"enumDescriptions": [ +"Tag status not specified.", +"Applies to tagged versions only.", +"Applies to untagged versions only.", +"Applies to all versions." +], +"type": "string" +}, +"versionNamePrefixes": { +"description": "Match versions by version name prefix. Applied on any prefix match.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"CleanupPolicyMostRecentVersions": { +"description": "CleanupPolicyMostRecentVersions is an alternate condition of a CleanupPolicy for retaining a minimum number of versions.", +"id": "CleanupPolicyMostRecentVersions", +"properties": { +"keepCount": { +"description": "Minimum number of versions to keep.", +"format": "int32", +"type": "integer" +}, +"packageNamePrefixes": { +"description": "List of package name prefixes that will apply this rule.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"CommonRemoteRepository": { +"description": "Common remote repository settings type.", +"id": "CommonRemoteRepository", +"properties": { +"uri": { +"description": "Required. A common public repository base for remote repository.", +"type": "string" +} +}, +"type": "object" +}, +"DockerImage": { +"description": "DockerImage represents a docker artifact. The following fields are returned as untyped metadata in the Version resource, using camelcase keys (i.e. metadata.imageSizeBytes): * imageSizeBytes * mediaType * buildTime", +"id": "DockerImage", +"properties": { +"buildTime": { +"description": "The time this image was built. This field is returned as the 'metadata.buildTime' field in the Version resource. The build time is returned to the client as an RFC 3339 string, which can be easily used with the JavaScript Date constructor.", +"format": "google-datetime", +"type": "string" +}, +"imageSizeBytes": { +"description": "Calculated size of the image. This field is returned as the 'metadata.imageSizeBytes' field in the Version resource.", +"format": "int64", +"type": "string" +}, +"mediaType": { +"description": "Media type of this image, e.g. \"application/vnd.docker.distribution.manifest.v2+json\". This field is returned as the 'metadata.mediaType' field in the Version resource.", +"type": "string" +}, +"name": { +"description": "Required. registry_location, project_id, repository_name and image id forms a unique image name:`projects//locations//repository//dockerImages/`. For example, \"projects/test-project/locations/us-west4/repositories/test-repo/dockerImages/ nginx@sha256:e9954c1fc875017be1c3e36eca16be2d9e9bccc4bf072163515467d6a823c7cf\", where \"us-west4\" is the registry_location, \"test-project\" is the project_id, \"test-repo\" is the repository_name and \"nginx@sha256:e9954c1fc875017be1c3e36eca16be2d9e9bccc4bf072163515467d6a823c7cf\" is the image's digest.", +"type": "string" +}, +"tags": { +"description": "Tags attached to this image.", +"items": { +"type": "string" +}, +"type": "array" +}, +"updateTime": { +"description": "Output only. The time when the docker image was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"uploadTime": { +"description": "Time the image was uploaded.", +"format": "google-datetime", +"type": "string" +}, +"uri": { +"description": "Required. URL to access the image. Example: us-west4-docker.pkg.dev/test-project/test-repo/nginx@sha256:e9954c1fc875017be1c3e36eca16be2d9e9bccc4bf072163515467d6a823c7cf", +"type": "string" +} +}, +"type": "object" +}, +"DockerRepository": { +"description": "Configuration for a Docker remote repository.", +"id": "DockerRepository", +"properties": { +"customRepository": { +"$ref": "GoogleDevtoolsArtifactregistryV1RemoteRepositoryConfigDockerRepositoryCustomRepository", +"description": "Customer-specified remote repository." +}, +"publicRepository": { +"description": "One of the publicly available Docker repositories supported by Artifact Registry.", +"enum": [ +"PUBLIC_REPOSITORY_UNSPECIFIED", +"DOCKER_HUB" +], +"enumDescriptions": [ +"Unspecified repository.", +"Docker Hub." +], +"type": "string" +} +}, +"type": "object" +}, +"DockerRepositoryConfig": { +"description": "DockerRepositoryConfig is docker related repository details. Provides additional configuration details for repositories of the docker format type.", +"id": "DockerRepositoryConfig", +"properties": { +"immutableTags": { +"description": "The repository which enabled this flag prevents all tags from being modified, moved or deleted. This does not prevent tags from being created.", +"type": "boolean" +} +}, +"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" +}, +"GenericArtifact": { +"description": "GenericArtifact represents a generic artifact", +"id": "GenericArtifact", +"properties": { +"createTime": { +"description": "Output only. The time when the Generic module is created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Resource name of the generic artifact. project, location, repository, package_id and version_id create a unique generic artifact. i.e. \"projects/test-project/locations/us-west4/repositories/test-repo/ genericArtifacts/package_id:version_id\"", +"type": "string" +}, +"updateTime": { +"description": "Output only. The time when the Generic module is updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"version": { +"description": "The version of the generic artifact.", +"type": "string" +} +}, +"type": "object" +}, +"GoModule": { +"description": "GoModule represents a Go module.", +"id": "GoModule", +"properties": { +"createTime": { +"description": "Output only. The time when the Go module is created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "The resource name of a Go module.", +"type": "string" +}, +"updateTime": { +"description": "Output only. The time when the Go module is updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"version": { +"description": "The version of the Go module. Must be a valid canonical version as defined in https://go.dev/ref/mod#glos-canonical-version.", +"type": "string" +} +}, +"type": "object" +}, +"GoogetArtifact": { +"description": "A detailed representation of a GooGet artifact.", +"id": "GoogetArtifact", +"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 GooGet package name of the artifact.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleDevtoolsArtifactregistryV1File": { +"description": "Files store content that is potentially associated with Packages or Versions.", +"id": "GoogleDevtoolsArtifactregistryV1File", +"properties": { +"annotations": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Client specified annotations.", +"type": "object" +}, +"createTime": { +"description": "Output only. The time when the File was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"fetchTime": { +"description": "Output only. The time when the last attempt to refresh the file's data was made. Only set when the repository is remote.", +"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" +}, +"GoogleDevtoolsArtifactregistryV1RemoteRepositoryConfigAptRepositoryCustomRepository": { +"description": "Customer-specified publicly available remote repository.", +"id": "GoogleDevtoolsArtifactregistryV1RemoteRepositoryConfigAptRepositoryCustomRepository", +"properties": { +"uri": { +"description": "An http/https uri reference to the upstream remote repository, for ex: \"https://my.apt.registry/\".", +"type": "string" +} +}, +"type": "object" +}, +"GoogleDevtoolsArtifactregistryV1RemoteRepositoryConfigAptRepositoryPublicRepository": { +"description": "Publicly available Apt repositories constructed from a common repository base and a custom repository path.", +"id": "GoogleDevtoolsArtifactregistryV1RemoteRepositoryConfigAptRepositoryPublicRepository", +"properties": { +"repositoryBase": { +"description": "A common public repository base for Apt.", +"enum": [ +"REPOSITORY_BASE_UNSPECIFIED", +"DEBIAN", +"UBUNTU", +"DEBIAN_SNAPSHOT" +], +"enumDescriptions": [ +"Unspecified repository base.", +"Debian.", +"Ubuntu LTS/Pro.", +"Archived Debian." +], +"type": "string" +}, +"repositoryPath": { +"description": "A custom field to define a path to a specific repository from the base.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleDevtoolsArtifactregistryV1RemoteRepositoryConfigDockerRepositoryCustomRepository": { +"description": "Customer-specified publicly available remote repository.", +"id": "GoogleDevtoolsArtifactregistryV1RemoteRepositoryConfigDockerRepositoryCustomRepository", +"properties": { +"uri": { +"description": "An http/https uri reference to the custom remote repository, for ex: \"https://registry-1.docker.io\".", +"type": "string" +} +}, +"type": "object" +}, +"GoogleDevtoolsArtifactregistryV1RemoteRepositoryConfigMavenRepositoryCustomRepository": { +"description": "Customer-specified publicly available remote repository.", +"id": "GoogleDevtoolsArtifactregistryV1RemoteRepositoryConfigMavenRepositoryCustomRepository", +"properties": { +"uri": { +"description": "An http/https uri reference to the upstream remote repository, for ex: \"https://my.maven.registry/\".", +"type": "string" +} +}, +"type": "object" +}, +"GoogleDevtoolsArtifactregistryV1RemoteRepositoryConfigNpmRepositoryCustomRepository": { +"description": "Customer-specified publicly available remote repository.", +"id": "GoogleDevtoolsArtifactregistryV1RemoteRepositoryConfigNpmRepositoryCustomRepository", +"properties": { +"uri": { +"description": "An http/https uri reference to the upstream remote repository, for ex: \"https://my.npm.registry/\".", +"type": "string" +} +}, +"type": "object" +}, +"GoogleDevtoolsArtifactregistryV1RemoteRepositoryConfigPythonRepositoryCustomRepository": { +"description": "Customer-specified publicly available remote repository.", +"id": "GoogleDevtoolsArtifactregistryV1RemoteRepositoryConfigPythonRepositoryCustomRepository", +"properties": { +"uri": { +"description": "An http/https uri reference to the upstream remote repository, for ex: \"https://my.python.registry/\".", +"type": "string" +} +}, +"type": "object" +}, +"GoogleDevtoolsArtifactregistryV1RemoteRepositoryConfigYumRepositoryCustomRepository": { +"description": "Customer-specified publicly available remote repository.", +"id": "GoogleDevtoolsArtifactregistryV1RemoteRepositoryConfigYumRepositoryCustomRepository", +"properties": { +"uri": { +"description": "An http/https uri reference to the upstream remote repository, for ex: \"https://my.yum.registry/\".", +"type": "string" +} +}, +"type": "object" +}, +"GoogleDevtoolsArtifactregistryV1RemoteRepositoryConfigYumRepositoryPublicRepository": { +"description": "Publicly available Yum repositories constructed from a common repository base and a custom repository path.", +"id": "GoogleDevtoolsArtifactregistryV1RemoteRepositoryConfigYumRepositoryPublicRepository", +"properties": { +"repositoryBase": { +"description": "A common public repository base for Yum.", +"enum": [ +"REPOSITORY_BASE_UNSPECIFIED", +"CENTOS", +"CENTOS_DEBUG", +"CENTOS_VAULT", +"CENTOS_STREAM", +"ROCKY", +"EPEL" +], +"enumDescriptions": [ +"Unspecified repository base.", +"CentOS.", +"CentOS Debug.", +"CentOS Vault.", +"CentOS Stream.", +"Rocky.", +"Fedora Extra Packages for Enterprise Linux (EPEL)." +], +"type": "string" +}, +"repositoryPath": { +"description": "A custom field to define a path to a specific repository from the base.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleDevtoolsArtifactregistryV1Rule": { +"description": "A rule defines the deny or allow action of the operation it applies to and the conditions required for the rule to apply. You can set one rule for an entire repository and one rule for each package within.", +"id": "GoogleDevtoolsArtifactregistryV1Rule", +"properties": { +"action": { +"description": "The action this rule takes.", +"enum": [ +"ACTION_UNSPECIFIED", +"ALLOW", +"DENY" +], +"enumDescriptions": [ +"Action not specified.", +"Allow the operation.", +"Deny the operation." +], +"type": "string" +}, +"condition": { +"$ref": "Expr", +"description": "Optional. A CEL expression for conditions that must be met in order for the rule to apply. If not provided, the rule matches all objects." +}, +"name": { +"description": "The name of the rule, for example: `projects/p1/locations/us-central1/repositories/repo1/rules/rule1`.", +"type": "string" +}, +"operation": { +"enum": [ +"OPERATION_UNSPECIFIED", +"DOWNLOAD" +], +"enumDescriptions": [ +"Operation not specified.", +"Download operation." +], +"type": "string" +}, +"packageId": { +"description": "The package ID the rule applies to. If empty, this rule applies to all packages inside the repository.", +"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" +}, +"ImportGoogetArtifactsErrorInfo": { +"description": "Error information explaining why a package was not imported.", +"id": "ImportGoogetArtifactsErrorInfo", +"properties": { +"error": { +"$ref": "Status", +"description": "The detailed error status." +}, +"gcsSource": { +"$ref": "ImportGoogetArtifactsGcsSource", +"description": "Google Cloud Storage location requested." +} +}, +"type": "object" +}, +"ImportGoogetArtifactsGcsSource": { +"description": "Google Cloud Storage location where the artifacts currently reside.", +"id": "ImportGoogetArtifactsGcsSource", +"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" +}, +"ImportGoogetArtifactsMetadata": { +"description": "The operation metadata for importing artifacts.", +"id": "ImportGoogetArtifactsMetadata", +"properties": {}, +"type": "object" +}, +"ImportGoogetArtifactsRequest": { +"description": "The request to import new googet artifacts.", +"id": "ImportGoogetArtifactsRequest", +"properties": { +"gcsSource": { +"$ref": "ImportGoogetArtifactsGcsSource", +"description": "Google Cloud Storage location where input content is located." +} +}, +"type": "object" +}, +"ImportGoogetArtifactsResponse": { +"description": "The response message from importing artifacts.", +"id": "ImportGoogetArtifactsResponse", +"properties": { +"errors": { +"description": "Detailed error info for packages that were not imported.", +"items": { +"$ref": "ImportGoogetArtifactsErrorInfo" +}, +"type": "array" +}, +"googetArtifacts": { +"description": "The GooGet artifacts updated.", +"items": { +"$ref": "GoogetArtifact" +}, +"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" +}, +"KfpArtifact": { +"description": "A detailed representation of a KFP artifact.", +"id": "KfpArtifact", +"properties": { +"name": { +"description": "Output only. Resource name of the KFP artifact. Since users don't directly interact with this resource, the name will be derived from the associated version. For example, when version = \".../versions/sha256:abcdef...\", the name will be \".../kfpArtifacts/sha256:abcdef...\".", +"readOnly": true, +"type": "string" +}, +"version": { +"description": "The version associated with the KFP artifact. Must follow the Semantic Versioning standard.", +"type": "string" +} +}, +"type": "object" +}, +"ListAttachmentsResponse": { +"description": "The response from listing attachments.", +"id": "ListAttachmentsResponse", +"properties": { +"attachments": { +"description": "The attachments returned.", +"items": { +"$ref": "Attachment" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The token to retrieve the next page of attachments, or empty if there are no more attachments to return.", +"type": "string" +} +}, +"type": "object" +}, +"ListDockerImagesResponse": { +"description": "The response from listing docker images.", +"id": "ListDockerImagesResponse", +"properties": { +"dockerImages": { +"description": "The docker images returned.", +"items": { +"$ref": "DockerImage" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The token to retrieve the next page of artifacts, or empty if there are no more artifacts to return.", +"type": "string" +} +}, +"type": "object" +}, +"ListFilesResponse": { +"description": "The response from listing files.", +"id": "ListFilesResponse", +"properties": { +"files": { +"description": "The files returned.", +"items": { +"$ref": "GoogleDevtoolsArtifactregistryV1File" +}, +"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" +}, +"ListMavenArtifactsResponse": { +"description": "The response from listing maven artifacts.", +"id": "ListMavenArtifactsResponse", +"properties": { +"mavenArtifacts": { +"description": "The maven artifacts returned.", +"items": { +"$ref": "MavenArtifact" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The token to retrieve the next page of artifacts, or empty if there are no more artifacts to return.", +"type": "string" +} +}, +"type": "object" +}, +"ListNpmPackagesResponse": { +"description": "The response from listing npm packages.", +"id": "ListNpmPackagesResponse", +"properties": { +"nextPageToken": { +"description": "The token to retrieve the next page of artifacts, or empty if there are no more artifacts to return.", +"type": "string" +}, +"npmPackages": { +"description": "The npm packages returned.", +"items": { +"$ref": "NpmPackage" +}, +"type": "array" +} +}, +"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" +}, +"ListPythonPackagesResponse": { +"description": "The response from listing python packages.", +"id": "ListPythonPackagesResponse", +"properties": { +"nextPageToken": { +"description": "The token to retrieve the next page of artifacts, or empty if there are no more artifacts to return.", +"type": "string" +}, +"pythonPackages": { +"description": "The python packages returned.", +"items": { +"$ref": "PythonPackage" +}, +"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" +}, +"ListRulesResponse": { +"description": "The response from listing rules.", +"id": "ListRulesResponse", +"properties": { +"nextPageToken": { +"description": "The token to retrieve the next page of rules, or empty if there are no more rules to return.", +"type": "string" +}, +"rules": { +"description": "The rules returned.", +"items": { +"$ref": "GoogleDevtoolsArtifactregistryV1Rule" +}, +"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" +}, +"MavenArtifact": { +"description": "MavenArtifact represents a maven artifact.", +"id": "MavenArtifact", +"properties": { +"artifactId": { +"description": "Artifact ID for the artifact.", +"type": "string" +}, +"createTime": { +"description": "Output only. Time the artifact was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"groupId": { +"description": "Group ID for the artifact. Example: com.google.guava", +"type": "string" +}, +"name": { +"description": "Required. registry_location, project_id, repository_name and maven_artifact forms a unique artifact For example, \"projects/test-project/locations/us-west4/repositories/test-repo/mavenArtifacts/ com.google.guava:guava:31.0-jre\", where \"us-west4\" is the registry_location, \"test-project\" is the project_id, \"test-repo\" is the repository_name and \"com.google.guava:guava:31.0-jre\" is the maven artifact.", +"type": "string" +}, +"pomUri": { +"description": "Required. URL to access the pom file of the artifact. Example: us-west4-maven.pkg.dev/test-project/test-repo/com/google/guava/guava/31.0/guava-31.0.pom", +"type": "string" +}, +"updateTime": { +"description": "Output only. Time the artifact was updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"version": { +"description": "Version of this artifact.", +"type": "string" +} +}, +"type": "object" +}, +"MavenRepository": { +"description": "Configuration for a Maven remote repository.", +"id": "MavenRepository", +"properties": { +"customRepository": { +"$ref": "GoogleDevtoolsArtifactregistryV1RemoteRepositoryConfigMavenRepositoryCustomRepository", +"description": "Customer-specified remote repository." +}, +"publicRepository": { +"description": "One of the publicly available Maven repositories supported by Artifact Registry.", +"enum": [ +"PUBLIC_REPOSITORY_UNSPECIFIED", +"MAVEN_CENTRAL" +], +"enumDescriptions": [ +"Unspecified repository.", +"Maven Central." +], +"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" +}, +"NpmPackage": { +"description": "NpmPackage represents an npm artifact.", +"id": "NpmPackage", +"properties": { +"createTime": { +"description": "Output only. Time the package was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Required. registry_location, project_id, repository_name and npm_package forms a unique package For example, \"projects/test-project/locations/us-west4/repositories/test-repo/npmPackages/ npm_test:1.0.0\", where \"us-west4\" is the registry_location, \"test-project\" is the project_id, \"test-repo\" is the repository_name and npm_test:1.0.0\" is the npm package.", +"type": "string" +}, +"packageName": { +"description": "Package for the artifact.", +"type": "string" +}, +"tags": { +"description": "Tags attached to this package.", +"items": { +"type": "string" +}, +"type": "array" +}, +"updateTime": { +"description": "Output only. Time the package was updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"version": { +"description": "Version of this package.", +"type": "string" +} +}, +"type": "object" +}, +"NpmRepository": { +"description": "Configuration for a Npm remote repository.", +"id": "NpmRepository", +"properties": { +"customRepository": { +"$ref": "GoogleDevtoolsArtifactregistryV1RemoteRepositoryConfigNpmRepositoryCustomRepository", +"description": "Customer-specified remote repository." +}, +"publicRepository": { +"description": "One of the publicly available Npm repositories supported by Artifact Registry.", +"enum": [ +"PUBLIC_REPOSITORY_UNSPECIFIED", +"NPMJS" +], +"enumDescriptions": [ +"Unspecified repository.", +"npmjs." +], +"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" +}, +"PythonPackage": { +"description": "PythonPackage represents a python artifact.", +"id": "PythonPackage", +"properties": { +"createTime": { +"description": "Output only. Time the package was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Required. registry_location, project_id, repository_name and python_package forms a unique package name:`projects//locations//repository//pythonPackages/`. For example, \"projects/test-project/locations/us-west4/repositories/test-repo/pythonPackages/ python_package:1.0.0\", where \"us-west4\" is the registry_location, \"test-project\" is the project_id, \"test-repo\" is the repository_name and python_package:1.0.0\" is the python package.", +"type": "string" +}, +"packageName": { +"description": "Package for the artifact.", +"type": "string" +}, +"updateTime": { +"description": "Output only. Time the package was updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"uri": { +"description": "Required. URL to access the package. Example: us-west4-python.pkg.dev/test-project/test-repo/python_package/file-name-1.0.0.tar.gz", +"type": "string" +}, +"version": { +"description": "Version of this package.", +"type": "string" +} +}, +"type": "object" +}, +"PythonRepository": { +"description": "Configuration for a Python remote repository.", +"id": "PythonRepository", +"properties": { +"customRepository": { +"$ref": "GoogleDevtoolsArtifactregistryV1RemoteRepositoryConfigPythonRepositoryCustomRepository", +"description": "Customer-specified remote repository." +}, +"publicRepository": { +"description": "One of the publicly available Python repositories supported by Artifact Registry.", +"enum": [ +"PUBLIC_REPOSITORY_UNSPECIFIED", +"PYPI" +], +"enumDescriptions": [ +"Unspecified repository.", +"PyPI." +], +"type": "string" +} +}, +"type": "object" +}, +"RemoteRepositoryConfig": { +"description": "Remote repository configuration.", +"id": "RemoteRepositoryConfig", +"properties": { +"aptRepository": { +"$ref": "AptRepository", +"description": "Specific settings for an Apt remote repository." +}, +"commonRepository": { +"$ref": "CommonRemoteRepository", +"description": "Common remote repository settings. Used as the remote repository upstream URL." +}, +"description": { +"description": "The description of the remote source.", +"type": "string" +}, +"disableUpstreamValidation": { +"description": "Input only. A create/update remote repo option to avoid making a HEAD/GET request to validate a remote repo and any supplied upstream credentials.", +"type": "boolean" +}, +"dockerRepository": { +"$ref": "DockerRepository", +"description": "Specific settings for a Docker remote repository." +}, +"mavenRepository": { +"$ref": "MavenRepository", +"description": "Specific settings for a Maven remote repository." +}, +"npmRepository": { +"$ref": "NpmRepository", +"description": "Specific settings for an Npm remote repository." +}, +"pythonRepository": { +"$ref": "PythonRepository", +"description": "Specific settings for a Python remote repository." +}, +"upstreamCredentials": { +"$ref": "UpstreamCredentials", +"description": "Optional. The credentials used to access the remote repository." +}, +"yumRepository": { +"$ref": "YumRepository", +"description": "Specific settings for a Yum remote repository." +} +}, +"type": "object" +}, +"Repository": { +"description": "A Repository for storing artifacts with a specific format.", +"id": "Repository", +"properties": { +"cleanupPolicies": { +"additionalProperties": { +"$ref": "CleanupPolicy" +}, +"description": "Optional. Cleanup policies for this repository. Cleanup policies indicate when certain package versions can be automatically deleted. Map keys are policy IDs supplied by users during policy creation. They must unique within a repository and be under 128 characters in length.", +"type": "object" +}, +"cleanupPolicyDryRun": { +"description": "Optional. If true, the cleanup pipeline is prevented from deleting versions in this repository.", +"type": "boolean" +}, +"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" +}, +"disallowUnspecifiedMode": { +"description": "Optional. If this is true, an unspecified repo type will be treated as error rather than defaulting to standard.", +"type": "boolean" +}, +"dockerConfig": { +"$ref": "DockerRepositoryConfig", +"description": "Docker repository config contains repository level configuration for the repositories of docker type." +}, +"format": { +"description": "Optional. The format of packages that are stored in the repository.", +"enum": [ +"FORMAT_UNSPECIFIED", +"DOCKER", +"MAVEN", +"NPM", +"APT", +"YUM", +"GOOGET", +"PYTHON", +"KFP", +"GO", +"GENERIC" +], +"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.", +"Kubeflow Pipelines package format.", +"Go package format.", +"Generic 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." +}, +"mode": { +"description": "Optional. The mode of the repository.", +"enum": [ +"MODE_UNSPECIFIED", +"STANDARD_REPOSITORY", +"VIRTUAL_REPOSITORY", +"REMOTE_REPOSITORY", +"AOSS_REPOSITORY", +"ASSURED_OSS_REPOSITORY" +], +"enumDescriptions": [ +"Unspecified mode.", +"A standard repository storing artifacts.", +"A virtual repository to serve artifacts from one or more sources.", +"A remote repository to serve artifacts from a remote source.", +"An AOSS repository provides artifacts from AOSS upstreams.", +"Replacement of AOSS_REPOSITORY." +], +"type": "string" +}, +"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" +}, +"registryUri": { +"description": "Output only. The repository endpoint, for example: `us-docker.pkg.dev/my-proj/my-repo`.", +"readOnly": true, +"type": "string" +}, +"remoteRepositoryConfig": { +"$ref": "RemoteRepositoryConfig", +"description": "Configuration specific for a Remote Repository." +}, +"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" +}, +"virtualRepositoryConfig": { +"$ref": "VirtualRepositoryConfig", +"description": "Configuration specific for a Virtual Repository." +}, +"vulnerabilityScanningConfig": { +"$ref": "VulnerabilityScanningConfig", +"description": "Optional. Config and state for vulnerability scanning of resources within this Repository." +} +}, +"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" +}, +"UploadFileMediaResponse": { +"description": "The response to upload a generic artifact.", +"id": "UploadFileMediaResponse", +"properties": { +"operation": { +"$ref": "Operation", +"description": "Operation that will be returned to the user." +} +}, +"type": "object" +}, +"UploadFileRequest": { +"description": "The request to upload a file.", +"id": "UploadFileRequest", +"properties": { +"fileId": { +"description": "Optional. The ID of the file. If left empty will default to sha256 digest of the content uploaded.", +"type": "string" +} +}, +"type": "object" +}, +"UploadGenericArtifactMediaResponse": { +"description": "The response to upload a generic artifact.", +"id": "UploadGenericArtifactMediaResponse", +"properties": { +"operation": { +"$ref": "Operation", +"description": "Operation that will be returned to the user." +} +}, +"type": "object" +}, +"UploadGenericArtifactMetadata": { +"description": "The operation metadata for uploading generic artifacts.", +"id": "UploadGenericArtifactMetadata", +"properties": {}, +"type": "object" +}, +"UploadGenericArtifactRequest": { +"description": "The request to upload a generic artifact. The created GenericArtifact will have the resource name {parent}/genericArtifacts/package_id:version_id. The created file will have the resource name {parent}/files/package_id:version_id:filename.", +"id": "UploadGenericArtifactRequest", +"properties": { +"filename": { +"description": "The name of the file of the generic artifact to be uploaded. E.g. `example-file.zip` The filename is limited to letters, numbers, and url safe characters, i.e. [a-zA-Z0-9-_.~@].", +"type": "string" +}, +"packageId": { +"description": "The ID of the package of the generic artifact. If the package does not exist, a new package will be created. The `package_id` should start and end with a letter or number, only contain letters, numbers, hyphens, underscores, and periods, and not exceed 256 characters.", +"type": "string" +}, +"versionId": { +"description": "The ID of the version of the generic artifact. If the version does not exist, a new version will be created. The version_id must start and end with a letter or number, can only contain lowercase letters, numbers, hyphens and periods, i.e. [a-z0-9-.] and cannot exceed a total of 128 characters. Creating a version called `latest` is not allowed.", +"type": "string" +} +}, +"type": "object" +}, +"UploadGoModuleMediaResponse": { +"description": "The response to upload a Go module.", +"id": "UploadGoModuleMediaResponse", +"properties": { +"operation": { +"$ref": "Operation", +"description": "Operation to be returned to the user." +} +}, +"type": "object" +}, +"UploadGoModuleMetadata": { +"description": "The operation metadata for uploading go modules.", +"id": "UploadGoModuleMetadata", +"properties": {}, +"type": "object" +}, +"UploadGoModuleRequest": { +"description": "The request to upload a Go module.", +"id": "UploadGoModuleRequest", +"properties": {}, +"type": "object" +}, +"UploadGoogetArtifactMediaResponse": { +"description": "The response to upload an artifact.", +"id": "UploadGoogetArtifactMediaResponse", +"properties": { +"operation": { +"$ref": "Operation", +"description": "Operation to be returned to the user." +} +}, +"type": "object" +}, +"UploadGoogetArtifactMetadata": { +"description": "The operation metadata for uploading artifacts.", +"id": "UploadGoogetArtifactMetadata", +"properties": {}, +"type": "object" +}, +"UploadGoogetArtifactRequest": { +"description": "The request to upload an artifact.", +"id": "UploadGoogetArtifactRequest", +"properties": {}, +"type": "object" +}, +"UploadGoogetArtifactResponse": { +"description": "The response of the completed artifact upload operation. This response is contained in the Operation and available to users.", +"id": "UploadGoogetArtifactResponse", +"properties": { +"googetArtifacts": { +"description": "The GooGet artifacts updated.", +"items": { +"$ref": "GoogetArtifact" +}, +"type": "array" +} +}, +"type": "object" +}, +"UploadKfpArtifactMediaResponse": { +"description": "The response to upload an artifact.", +"id": "UploadKfpArtifactMediaResponse", +"properties": { +"operation": { +"$ref": "Operation", +"description": "Operation that will be returned to the user." +} +}, +"type": "object" +}, +"UploadKfpArtifactMetadata": { +"description": "The operation metadata for uploading KFP artifacts.", +"id": "UploadKfpArtifactMetadata", +"properties": {}, +"type": "object" +}, +"UploadKfpArtifactRequest": { +"description": "The request to upload an artifact.", +"id": "UploadKfpArtifactRequest", +"properties": { +"description": { +"description": "Description of the package version.", +"type": "string" +}, +"tags": { +"description": "Tags to be created with the version.", +"items": { +"type": "string" +}, +"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" +}, +"UpstreamCredentials": { +"description": "The credentials to access the remote repository.", +"id": "UpstreamCredentials", +"properties": { +"usernamePasswordCredentials": { +"$ref": "UsernamePasswordCredentials", +"description": "Use username and password to access the remote repository." +} +}, +"type": "object" +}, +"UpstreamPolicy": { +"description": "Artifact policy configuration for the repository contents.", +"id": "UpstreamPolicy", +"properties": { +"id": { +"description": "The user-provided ID of the upstream policy.", +"type": "string" +}, +"priority": { +"description": "Entries with a greater priority value take precedence in the pull order.", +"format": "int32", +"type": "integer" +}, +"repository": { +"description": "A reference to the repository resource, for example: `projects/p1/locations/us-central1/repositories/repo1`.", +"type": "string" +} +}, +"type": "object" +}, +"UsernamePasswordCredentials": { +"description": "Username and password credentials.", +"id": "UsernamePasswordCredentials", +"properties": { +"passwordSecretVersion": { +"description": "The Secret Manager key version that holds the password to access the remote repository. Must be in the format of `projects/{project}/secrets/{secret}/versions/{version}`.", +"type": "string" +}, +"username": { +"description": "The username to access the remote repository.", +"type": "string" +} +}, +"type": "object" +}, +"VPCSCConfig": { +"description": "The Artifact Registry VPC SC config that apply to a Project.", +"id": "VPCSCConfig", +"properties": { +"name": { +"description": "The name of the project's VPC SC Config. Always of the form: projects/{projectID}/locations/{location}/vpcscConfig In update request: never set In response: always set", +"type": "string" +}, +"vpcscPolicy": { +"description": "The project per location VPC SC policy that defines the VPC SC behavior for the Remote Repository (Allow/Deny).", +"enum": [ +"VPCSC_POLICY_UNSPECIFIED", +"DENY", +"ALLOW" +], +"enumDescriptions": [ +"VPCSC_POLICY_UNSPECIFIED - the VPS SC policy is not defined. When VPS SC policy is not defined - the Service will use the default behavior (VPCSC_DENY).", +"VPCSC_DENY - repository will block the requests to the Upstreams for the Remote Repositories if the resource is in the perimeter.", +"VPCSC_ALLOW - repository will allow the requests to the Upstreams for the Remote Repositories if the resource is in the perimeter." +], +"type": "string" +} +}, +"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": { +"annotations": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Client specified annotations.", +"type": "object" +}, +"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" +}, +"VirtualRepositoryConfig": { +"description": "Virtual repository configuration.", +"id": "VirtualRepositoryConfig", +"properties": { +"upstreamPolicies": { +"description": "Policies that configure the upstream artifacts distributed by the Virtual Repository. Upstream policies cannot be set on a standard repository.", +"items": { +"$ref": "UpstreamPolicy" +}, +"type": "array" +} +}, +"type": "object" +}, +"VulnerabilityScanningConfig": { +"description": "Config on whether to perform vulnerability scanning for resources in this repository, as well as output fields describing current state.", +"id": "VulnerabilityScanningConfig", +"properties": { +"enablementConfig": { +"description": "Optional. Config for whether this repository has vulnerability scanning disabled.", +"enum": [ +"ENABLEMENT_CONFIG_UNSPECIFIED", +"INHERITED", +"DISABLED" +], +"enumDescriptions": [ +"Not set. This will be treated as INHERITED.", +"Scanning is Enabled, but dependent on API enablement.", +"No automatic vulnerability scanning will be performed for this repository." +], +"type": "string" +}, +"enablementState": { +"description": "Output only. State of feature enablement, combining repository enablement config and API enablement state.", +"enum": [ +"ENABLEMENT_STATE_UNSPECIFIED", +"SCANNING_UNSUPPORTED", +"SCANNING_DISABLED", +"SCANNING_ACTIVE" +], +"enumDescriptions": [ +"Enablement state is unclear.", +"Repository does not support vulnerability scanning.", +"Vulnerability scanning is disabled for this repository.", +"Vulnerability scanning is active for this repository." +], +"readOnly": true, +"type": "string" +}, +"enablementStateReason": { +"description": "Output only. Reason for the repository state.", +"readOnly": true, +"type": "string" +}, +"lastEnableTime": { +"description": "Output only. The last time this repository config was enabled.", +"format": "google-datetime", +"readOnly": true, +"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" +}, +"YumRepository": { +"description": "Configuration for a Yum remote repository.", +"id": "YumRepository", +"properties": { +"customRepository": { +"$ref": "GoogleDevtoolsArtifactregistryV1RemoteRepositoryConfigYumRepositoryCustomRepository", +"description": "Customer-specified remote repository." +}, +"publicRepository": { +"$ref": "GoogleDevtoolsArtifactregistryV1RemoteRepositoryConfigYumRepositoryPublicRepository", +"description": "One of the publicly available Yum repositories supported by Artifact Registry." +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Artifact Registry 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/baremetalsolution.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/baremetalsolution.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..16db8792aec786f660d11c472e9cb0d47cc84f4d --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/baremetalsolution.v1.json @@ -0,0 +1,331 @@ +{ + "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://baremetalsolution.googleapis.com/", + "batchPath": "batch", + "description": "Provides ways to manage Bare Metal Solution hardware installed in a regional extension located near a Google Cloud data center.", + "discoveryVersion": "v1", + "documentationLink": "https://cloud.google.com/bare-metal", + "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": "baremetalsolution:v1", + "kind": "discovery#restDescription", + "mtlsRootUrl": "https://baremetalsolution.mtls.googleapis.com/", + "name": "baremetalsolution", + "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": "baremetalsolution.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": "baremetalsolution.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": "baremetalsolution.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`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "flatPath": "v1/operations", + "httpMethod": "GET", + "id": "baremetalsolution.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" + ] + } + } + } + }, + "revision": "20221201", + "rootUrl": "https://baremetalsolution.googleapis.com/", + "schemas": { + "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" + }, + "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 response of the operation in case of success. 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": "Bare Metal Solution 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/binaryauthorization.v1beta1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/binaryauthorization.v1beta1.json new file mode 100644 index 0000000000000000000000000000000000000000..6b84d35acb0553ee2b5641c82079b4f428629215 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/binaryauthorization.v1beta1.json @@ -0,0 +1,1055 @@ +{ +"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://binaryauthorization.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Binary Authorization", +"description": "The management interface for Binary Authorization, a service that provides policy-based deployment validation and control for images deployed to Google Kubernetes Engine (GKE), Anthos Service Mesh, Anthos Clusters, and Cloud Run. ", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/binary-authorization/", +"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": "binaryauthorization:v1beta1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://binaryauthorization.mtls.googleapis.com/", +"name": "binaryauthorization", +"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": { +"getPolicy": { +"description": "A policy specifies the attestors that must attest to a container image, before the project is allowed to deploy that image. There is at most one policy per project. All image admission requests are permitted if a project has no policy. Gets the policy for this project. Returns a default policy if the project does not have one.", +"flatPath": "v1beta1/projects/{projectsId}/policy", +"httpMethod": "GET", +"id": "binaryauthorization.projects.getPolicy", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the policy to retrieve, in the format `projects/*/policy`.", +"location": "path", +"pattern": "^projects/[^/]+/policy$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updatePolicy": { +"description": "Creates or updates a project's policy, and returns a copy of the new policy. A policy is always updated as a whole, to avoid race conditions with concurrent policy enforcement (or management!) requests. Returns NOT_FOUND if the project does not exist, INVALID_ARGUMENT if the request is malformed.", +"flatPath": "v1beta1/projects/{projectsId}/policy", +"httpMethod": "PUT", +"id": "binaryauthorization.projects.updatePolicy", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. The resource name, in the format `projects/*/policy`. There is at most one policy per project.", +"location": "path", +"pattern": "^projects/[^/]+/policy$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "Policy" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"attestors": { +"methods": { +"create": { +"description": "Creates an attestor, and returns a copy of the new attestor. Returns NOT_FOUND if the project does not exist, INVALID_ARGUMENT if the request is malformed, ALREADY_EXISTS if the attestor already exists.", +"flatPath": "v1beta1/projects/{projectsId}/attestors", +"httpMethod": "POST", +"id": "binaryauthorization.projects.attestors.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"attestorId": { +"description": "Required. The attestors ID.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent of this attestor.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/attestors", +"request": { +"$ref": "Attestor" +}, +"response": { +"$ref": "Attestor" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes an attestor. Returns NOT_FOUND if the attestor does not exist.", +"flatPath": "v1beta1/projects/{projectsId}/attestors/{attestorsId}", +"httpMethod": "DELETE", +"id": "binaryauthorization.projects.attestors.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the attestors to delete, in the format `projects/*/attestors/*`.", +"location": "path", +"pattern": "^projects/[^/]+/attestors/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets an attestor. Returns NOT_FOUND if the attestor does not exist.", +"flatPath": "v1beta1/projects/{projectsId}/attestors/{attestorsId}", +"httpMethod": "GET", +"id": "binaryauthorization.projects.attestors.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the attestor to retrieve, in the format `projects/*/attestors/*`.", +"location": "path", +"pattern": "^projects/[^/]+/attestors/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Attestor" +}, +"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}/attestors/{attestorsId}:getIamPolicy", +"httpMethod": "GET", +"id": "binaryauthorization.projects.attestors.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/[^/]+/attestors/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:getIamPolicy", +"response": { +"$ref": "IamPolicy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists attestors. Returns INVALID_ARGUMENT if the project does not exist.", +"flatPath": "v1beta1/projects/{projectsId}/attestors", +"httpMethod": "GET", +"id": "binaryauthorization.projects.attestors.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Requested page size. The server may return fewer results 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. Typically, this is the value of ListAttestorsResponse.next_page_token returned from the previous call to the `ListAttestors` method.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the project associated with the attestors, in the format `projects/*`.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/attestors", +"response": { +"$ref": "ListAttestorsResponse" +}, +"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}/attestors/{attestorsId}:setIamPolicy", +"httpMethod": "POST", +"id": "binaryauthorization.projects.attestors.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/[^/]+/attestors/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "IamPolicy" +}, +"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}/attestors/{attestorsId}:testIamPermissions", +"httpMethod": "POST", +"id": "binaryauthorization.projects.attestors.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/[^/]+/attestors/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"update": { +"description": "Updates an attestor. Returns NOT_FOUND if the attestor does not exist.", +"flatPath": "v1beta1/projects/{projectsId}/attestors/{attestorsId}", +"httpMethod": "PUT", +"id": "binaryauthorization.projects.attestors.update", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name, in the format: `projects/*/attestors/*`. This field may not be updated.", +"location": "path", +"pattern": "^projects/[^/]+/attestors/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "Attestor" +}, +"response": { +"$ref": "Attestor" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"validateAttestationOccurrence": { +"description": "Returns whether the given `Attestation` for the given image URI was signed by the given `Attestor`", +"flatPath": "v1beta1/projects/{projectsId}/attestors/{attestorsId}:validateAttestationOccurrence", +"httpMethod": "POST", +"id": "binaryauthorization.projects.attestors.validateAttestationOccurrence", +"parameterOrder": [ +"attestor" +], +"parameters": { +"attestor": { +"description": "Required. The resource name of the Attestor of the occurrence, in the format `projects/*/attestors/*`.", +"location": "path", +"pattern": "^projects/[^/]+/attestors/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+attestor}:validateAttestationOccurrence", +"request": { +"$ref": "ValidateAttestationOccurrenceRequest" +}, +"response": { +"$ref": "ValidateAttestationOccurrenceResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"policy": { +"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}/policy:getIamPolicy", +"httpMethod": "GET", +"id": "binaryauthorization.projects.policy.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/[^/]+/policy$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:getIamPolicy", +"response": { +"$ref": "IamPolicy" +}, +"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}/policy:setIamPolicy", +"httpMethod": "POST", +"id": "binaryauthorization.projects.policy.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/[^/]+/policy$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "IamPolicy" +}, +"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}/policy:testIamPermissions", +"httpMethod": "POST", +"id": "binaryauthorization.projects.policy.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/[^/]+/policy$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"systempolicy": { +"methods": { +"getPolicy": { +"description": "Gets the current system policy in the specified location.", +"flatPath": "v1beta1/locations/{locationsId}/policy", +"httpMethod": "GET", +"id": "binaryauthorization.systempolicy.getPolicy", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name, in the format `locations/*/policy`. Note that the system policy is not associated with a project.", +"location": "path", +"pattern": "^locations/[^/]+/policy$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +}, +"revision": "20241018", +"rootUrl": "https://binaryauthorization.googleapis.com/", +"schemas": { +"AdmissionRule": { +"description": "An admission rule specifies either that all container images used in a pod creation request must be attested to by one or more attestors, that all pod creations will be allowed, or that all pod creations will be denied. Images matching an admission allowlist pattern are exempted from admission rules and will never block a pod creation.", +"id": "AdmissionRule", +"properties": { +"enforcementMode": { +"description": "Required. The action when a pod creation is denied by the admission rule.", +"enum": [ +"ENFORCEMENT_MODE_UNSPECIFIED", +"ENFORCED_BLOCK_AND_AUDIT_LOG", +"DRYRUN_AUDIT_LOG_ONLY" +], +"enumDescriptions": [ +"Do not use.", +"Enforce the admission rule by blocking the pod creation.", +"Dryrun mode: Audit logging only. This will allow the pod creation as if the admission request had specified break-glass." +], +"type": "string" +}, +"evaluationMode": { +"description": "Required. How this admission rule will be evaluated.", +"enum": [ +"EVALUATION_MODE_UNSPECIFIED", +"ALWAYS_ALLOW", +"REQUIRE_ATTESTATION", +"ALWAYS_DENY" +], +"enumDescriptions": [ +"Do not use.", +"This rule allows all all pod creations.", +"This rule allows a pod creation if all the attestors listed in `require_attestations_by` have valid attestations for all of the images in the pod spec.", +"This rule denies all pod creations." +], +"type": "string" +}, +"requireAttestationsBy": { +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"AdmissionWhitelistPattern": { +"description": "An admission allowlist pattern exempts images from checks by admission rules.", +"id": "AdmissionWhitelistPattern", +"properties": { +"namePattern": { +"description": "An image name pattern to allowlist, in the form `registry/path/to/image`. This supports a trailing `*` as a wildcard, but this is allowed only in text after the `registry/` part. `*` wildcard does not match `/`, i.e., `gcr.io/nginx*` matches `gcr.io/nginx@latest`, but it does not match `gcr.io/nginx/image`. This also supports a trailing `**` wildcard which matches subdirectories, i.e., `gcr.io/nginx**` matches `gcr.io/nginx/image`.", +"type": "string" +} +}, +"type": "object" +}, +"AttestationOccurrence": { +"description": "Occurrence that represents a single \"attestation\". The authenticity of an attestation can be verified using the attached signature. If the verifier trusts the public key of the signer, then verifying the signature is sufficient to establish trust. In this circumstance, the authority to which this attestation is attached is primarily useful for lookup (how to find this attestation if you already know the authority and artifact to be verified) and intent (for which authority this attestation was intended to sign.", +"id": "AttestationOccurrence", +"properties": { +"jwts": { +"description": "One or more JWTs encoding a self-contained attestation. Each JWT encodes the payload that it verifies within the JWT itself. Verifier implementation SHOULD ignore the `serialized_payload` field when verifying these JWTs. If only JWTs are present on this AttestationOccurrence, then the `serialized_payload` SHOULD be left empty. Each JWT SHOULD encode a claim specific to the `resource_uri` of this Occurrence, but this is not validated by Grafeas metadata API implementations. The JWT itself is opaque to Grafeas.", +"items": { +"$ref": "Jwt" +}, +"type": "array" +}, +"serializedPayload": { +"description": "Required. The serialized payload that is verified by one or more `signatures`.", +"format": "byte", +"type": "string" +}, +"signatures": { +"description": "One or more signatures over `serialized_payload`. Verifier implementations should consider this attestation message verified if at least one `signature` verifies `serialized_payload`. See `Signature` in common.proto for more details on signature structure and verification.", +"items": { +"$ref": "Signature" +}, +"type": "array" +} +}, +"type": "object" +}, +"Attestor": { +"description": "An attestor that attests to container image artifacts. An existing attestor cannot be modified except where indicated.", +"id": "Attestor", +"properties": { +"description": { +"description": "Optional. A descriptive comment. This field may be updated. The field may be displayed in chooser dialogs.", +"type": "string" +}, +"etag": { +"description": "Optional. A checksum, returned by the server, that can be sent on update requests to ensure the attestor has an up-to-date value before attempting to update it. See https://google.aip.dev/154.", +"type": "string" +}, +"name": { +"description": "Required. The resource name, in the format: `projects/*/attestors/*`. This field may not be updated.", +"type": "string" +}, +"updateTime": { +"description": "Output only. Time when the attestor was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"userOwnedDrydockNote": { +"$ref": "UserOwnedDrydockNote", +"description": "A Drydock ATTESTATION_AUTHORITY Note, created by the user." +} +}, +"type": "object" +}, +"AttestorPublicKey": { +"description": "An attestor public key that will be used to verify attestations signed by this attestor.", +"id": "AttestorPublicKey", +"properties": { +"asciiArmoredPgpPublicKey": { +"description": "ASCII-armored representation of a PGP public key, as the entire output by the command `gpg --export --armor foo@example.com` (either LF or CRLF line endings). When using this field, `id` should be left blank. The BinAuthz API handlers will calculate the ID and fill it in automatically. BinAuthz computes this ID as the OpenPGP RFC4880 V4 fingerprint, represented as upper-case hex. If `id` is provided by the caller, it will be overwritten by the API-calculated ID.", +"type": "string" +}, +"comment": { +"description": "Optional. A descriptive comment. This field may be updated.", +"type": "string" +}, +"id": { +"description": "The ID of this public key. Signatures verified by BinAuthz must include the ID of the public key that can be used to verify them, and that ID must match the contents of this field exactly. Additional restrictions on this field can be imposed based on which public key type is encapsulated. See the documentation on `public_key` cases below for details.", +"type": "string" +}, +"pkixPublicKey": { +"$ref": "PkixPublicKey", +"description": "A raw PKIX SubjectPublicKeyInfo format public key. NOTE: `id` may be explicitly provided by the caller when using this type of public key, but it MUST be a valid RFC3986 URI. If `id` is left blank, a default one will be computed based on the digest of the DER encoding of the public key." +} +}, +"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" +}, +"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" +}, +"IamPolicy": { +"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": "IamPolicy", +"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" +}, +"Jwt": { +"id": "Jwt", +"properties": { +"compactJwt": { +"description": "The compact encoding of a JWS, which is always three base64 encoded strings joined by periods. For details, see: https://tools.ietf.org/html/rfc7515.html#section-3.1", +"type": "string" +} +}, +"type": "object" +}, +"ListAttestorsResponse": { +"description": "Response message for BinauthzManagementService.ListAttestors.", +"id": "ListAttestorsResponse", +"properties": { +"attestors": { +"description": "The list of attestors.", +"items": { +"$ref": "Attestor" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results. Pass this value in the ListAttestorsRequest.page_token field in the subsequent call to the `ListAttestors` method to retrieve the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"PkixPublicKey": { +"description": "A public key in the PkixPublicKey format (see https://tools.ietf.org/html/rfc5280#section-4.1.2.7 for details). Public keys of this type are typically textually encoded using the PEM format.", +"id": "PkixPublicKey", +"properties": { +"publicKeyPem": { +"description": "A PEM-encoded public key, as described in https://tools.ietf.org/html/rfc7468#section-13", +"type": "string" +}, +"signatureAlgorithm": { +"description": "The signature algorithm used to verify a message against a signature using this key. These signature algorithm must match the structure and any object identifiers encoded in `public_key_pem` (i.e. this algorithm must match that of the public key).", +"enum": [ +"SIGNATURE_ALGORITHM_UNSPECIFIED", +"RSA_PSS_2048_SHA256", +"RSA_SIGN_PSS_2048_SHA256", +"RSA_PSS_3072_SHA256", +"RSA_SIGN_PSS_3072_SHA256", +"RSA_PSS_4096_SHA256", +"RSA_SIGN_PSS_4096_SHA256", +"RSA_PSS_4096_SHA512", +"RSA_SIGN_PSS_4096_SHA512", +"RSA_SIGN_PKCS1_2048_SHA256", +"RSA_SIGN_PKCS1_3072_SHA256", +"RSA_SIGN_PKCS1_4096_SHA256", +"RSA_SIGN_PKCS1_4096_SHA512", +"ECDSA_P256_SHA256", +"EC_SIGN_P256_SHA256", +"ECDSA_P384_SHA384", +"EC_SIGN_P384_SHA384", +"ECDSA_P521_SHA512", +"EC_SIGN_P521_SHA512" +], +"enumDescriptions": [ +"Not specified.", +"RSASSA-PSS 2048 bit key with a SHA256 digest.", +"RSASSA-PSS 2048 bit key with a SHA256 digest.", +"RSASSA-PSS 3072 bit key with a SHA256 digest.", +"RSASSA-PSS 3072 bit key with a SHA256 digest.", +"RSASSA-PSS 4096 bit key with a SHA256 digest.", +"RSASSA-PSS 4096 bit key with a SHA256 digest.", +"RSASSA-PSS 4096 bit key with a SHA512 digest.", +"RSASSA-PSS 4096 bit key with a SHA512 digest.", +"RSASSA-PKCS1-v1_5 with a 2048 bit key and a SHA256 digest.", +"RSASSA-PKCS1-v1_5 with a 3072 bit key and a SHA256 digest.", +"RSASSA-PKCS1-v1_5 with a 4096 bit key and a SHA256 digest.", +"RSASSA-PKCS1-v1_5 with a 4096 bit key and a SHA512 digest.", +"ECDSA on the NIST P-256 curve with a SHA256 digest.", +"ECDSA on the NIST P-256 curve with a SHA256 digest.", +"ECDSA on the NIST P-384 curve with a SHA384 digest.", +"ECDSA on the NIST P-384 curve with a SHA384 digest.", +"ECDSA on the NIST P-521 curve with a SHA512 digest.", +"ECDSA on the NIST P-521 curve with a SHA512 digest." +], +"type": "string" +} +}, +"type": "object" +}, +"Policy": { +"description": "A policy for Binary Authorization.", +"id": "Policy", +"properties": { +"admissionWhitelistPatterns": { +"description": "Optional. Admission policy allowlisting. A matching admission request will always be permitted. This feature is typically used to exclude Google or third-party infrastructure images from Binary Authorization policies.", +"items": { +"$ref": "AdmissionWhitelistPattern" +}, +"type": "array" +}, +"clusterAdmissionRules": { +"additionalProperties": { +"$ref": "AdmissionRule" +}, +"description": "Optional. Per-cluster admission rules. Cluster spec format: `location.clusterId`. There can be at most one admission rule per cluster spec. A `location` is either a compute zone (e.g. us-central1-a) or a region (e.g. us-central1). For `clusterId` syntax restrictions see https://cloud.google.com/container-engine/reference/rest/v1/projects.zones.clusters.", +"type": "object" +}, +"defaultAdmissionRule": { +"$ref": "AdmissionRule", +"description": "Required. Default admission rule for a cluster without a per-cluster, per- kubernetes-service-account, or per-istio-service-identity admission rule." +}, +"description": { +"description": "Optional. A descriptive comment.", +"type": "string" +}, +"etag": { +"description": "Optional. A checksum, returned by the server, that can be sent on update requests to ensure the policy has an up-to-date value before attempting to update it. See https://google.aip.dev/154.", +"type": "string" +}, +"globalPolicyEvaluationMode": { +"description": "Optional. Controls the evaluation of a Google-maintained global admission policy for common system-level images. Images not covered by the global policy will be subject to the project admission policy. This setting has no effect when specified inside a global admission policy.", +"enum": [ +"GLOBAL_POLICY_EVALUATION_MODE_UNSPECIFIED", +"ENABLE", +"DISABLE" +], +"enumDescriptions": [ +"Not specified: DISABLE is assumed.", +"Enables system policy evaluation.", +"Disables system policy evaluation." +], +"type": "string" +}, +"istioServiceIdentityAdmissionRules": { +"additionalProperties": { +"$ref": "AdmissionRule" +}, +"description": "Optional. Per-istio-service-identity admission rules. Istio service identity spec format: `spiffe:///ns//sa/` or `/ns//sa/` e.g. `spiffe://example.com/ns/test-ns/sa/default`", +"type": "object" +}, +"kubernetesNamespaceAdmissionRules": { +"additionalProperties": { +"$ref": "AdmissionRule" +}, +"description": "Optional. Per-kubernetes-namespace admission rules. K8s namespace spec format: `[a-z.-]+`, e.g. `some-namespace`", +"type": "object" +}, +"kubernetesServiceAccountAdmissionRules": { +"additionalProperties": { +"$ref": "AdmissionRule" +}, +"description": "Optional. Per-kubernetes-service-account admission rules. Service account spec format: `namespace:serviceaccount`. e.g. `test-ns:default`", +"type": "object" +}, +"name": { +"description": "Output only. The resource name, in the format `projects/*/policy`. There is at most one policy per project.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. Time when the policy was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"SetIamPolicyRequest": { +"description": "Request message for `SetIamPolicy` method.", +"id": "SetIamPolicyRequest", +"properties": { +"policy": { +"$ref": "IamPolicy", +"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" +}, +"Signature": { +"description": "Verifiers (e.g. Kritis implementations) MUST verify signatures with respect to the trust anchors defined in policy (e.g. a Kritis policy). Typically this means that the verifier has been configured with a map from `public_key_id` to public key material (and any required parameters, e.g. signing algorithm). In particular, verification implementations MUST NOT treat the signature `public_key_id` as anything more than a key lookup hint. The `public_key_id` DOES NOT validate or authenticate a public key; it only provides a mechanism for quickly selecting a public key ALREADY CONFIGURED on the verifier through a trusted channel. Verification implementations MUST reject signatures in any of the following circumstances: * The `public_key_id` is not recognized by the verifier. * The public key that `public_key_id` refers to does not verify the signature with respect to the payload. The `signature` contents SHOULD NOT be \"attached\" (where the payload is included with the serialized `signature` bytes). Verifiers MUST ignore any \"attached\" payload and only verify signatures with respect to explicitly provided payload (e.g. a `payload` field on the proto message that holds this Signature, or the canonical serialization of the proto message that holds this signature).", +"id": "Signature", +"properties": { +"publicKeyId": { +"description": "The identifier for the public key that verifies this signature. * The `public_key_id` is required. * The `public_key_id` SHOULD be an RFC3986 conformant URI. * When possible, the `public_key_id` SHOULD be an immutable reference, such as a cryptographic digest. Examples of valid `public_key_id`s: OpenPGP V4 public key fingerprint: * \"openpgp4fpr:74FAF3B861BDA0870C7B6DEF607E48D2A663AEEA\" See https://www.iana.org/assignments/uri-schemes/prov/openpgp4fpr for more details on this scheme. RFC6920 digest-named SubjectPublicKeyInfo (digest of the DER serialization): * \"ni:///sha-256;cD9o9Cq6LG3jD0iKXqEi_vdjJGecm_iXkbqVoScViaU\" * \"nih:///sha-256;703f68f42aba2c6de30f488a5ea122fef76324679c9bf89791ba95a1271589a5\"", +"type": "string" +}, +"signature": { +"description": "The content of the signature, an opaque bytestring. The payload that this signature verifies MUST be unambiguously provided with the Signature during verification. A wrapper message might provide the payload explicitly. Alternatively, a message might have a canonical serialization that can always be unambiguously computed to derive the payload.", +"format": "byte", +"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" +}, +"UserOwnedDrydockNote": { +"description": "An user owned drydock note references a Drydock ATTESTATION_AUTHORITY Note created by the user.", +"id": "UserOwnedDrydockNote", +"properties": { +"delegationServiceAccountEmail": { +"description": "Output only. This field will contain the service account email address that this Attestor will use as the principal when querying Container Analysis. Attestor administrators must grant this service account the IAM role needed to read attestations from the note_reference in Container Analysis (`containeranalysis.notes.occurrences.viewer`). This email address is fixed for the lifetime of the Attestor, but callers should not make any other assumptions about the service account email; future versions may use an email based on a different naming pattern.", +"readOnly": true, +"type": "string" +}, +"noteReference": { +"description": "Required. The Drydock resource name of a ATTESTATION_AUTHORITY Note, created by the user, in the format: `projects/*/notes/*` (or the legacy `providers/*/notes/*`). This field may not be updated. An attestation by this attestor is stored as a Drydock ATTESTATION_AUTHORITY Occurrence that names a container image and that links to this Note. Drydock is an external dependency.", +"type": "string" +}, +"publicKeys": { +"description": "Optional. Public keys that verify attestations signed by this attestor. This field may be updated. If this field is non-empty, one of the specified public keys must verify that an attestation was signed by this attestor for the image specified in the admission request. If this field is empty, this attestor always returns that no valid attestations exist.", +"items": { +"$ref": "AttestorPublicKey" +}, +"type": "array" +} +}, +"type": "object" +}, +"ValidateAttestationOccurrenceRequest": { +"description": "Request message for ValidationHelperV1.ValidateAttestationOccurrence.", +"id": "ValidateAttestationOccurrenceRequest", +"properties": { +"attestation": { +"$ref": "AttestationOccurrence", +"description": "Required. An AttestationOccurrence to be checked that it can be verified by the `Attestor`. It does not have to be an existing entity in Container Analysis. It must otherwise be a valid `AttestationOccurrence`." +}, +"occurrenceNote": { +"description": "Required. The resource name of the Note to which the containing Occurrence is associated.", +"type": "string" +}, +"occurrenceResourceUri": { +"description": "Required. The URI of the artifact (e.g. container image) that is the subject of the containing Occurrence.", +"type": "string" +} +}, +"type": "object" +}, +"ValidateAttestationOccurrenceResponse": { +"description": "Response message for ValidationHelperV1.ValidateAttestationOccurrence.", +"id": "ValidateAttestationOccurrenceResponse", +"properties": { +"denialReason": { +"description": "The reason for denial if the Attestation couldn't be validated.", +"type": "string" +}, +"result": { +"description": "The result of the Attestation validation.", +"enum": [ +"RESULT_UNSPECIFIED", +"VERIFIED", +"ATTESTATION_NOT_VERIFIABLE" +], +"enumDescriptions": [ +"Unspecified.", +"The Attestation was able to verified by the Attestor.", +"The Attestation was not able to verified by the Attestor." +], +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Binary Authorization 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/certificatemanager.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/certificatemanager.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..f703c93d13b4d162a4c2c433bb4bcb1c46455339 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/certificatemanager.v1.json @@ -0,0 +1,2308 @@ +{ +"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://certificatemanager.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Certificate Manager", +"description": "", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/certificate-manager", +"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": "certificatemanager:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://certificatemanager.mtls.googleapis.com/", +"name": "certificatemanager", +"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": "certificatemanager.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": "certificatemanager.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": { +"certificateIssuanceConfigs": { +"methods": { +"create": { +"description": "Creates a new CertificateIssuanceConfig in a given project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/certificateIssuanceConfigs", +"httpMethod": "POST", +"id": "certificatemanager.projects.locations.certificateIssuanceConfigs.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"certificateIssuanceConfigId": { +"description": "Required. A user-provided name of the certificate config.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource of the certificate issuance config. Must be in the format `projects/*/locations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/certificateIssuanceConfigs", +"request": { +"$ref": "CertificateIssuanceConfig" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single CertificateIssuanceConfig.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/certificateIssuanceConfigs/{certificateIssuanceConfigsId}", +"httpMethod": "DELETE", +"id": "certificatemanager.projects.locations.certificateIssuanceConfigs.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A name of the certificate issuance config to delete. Must be in the format `projects/*/locations/*/certificateIssuanceConfigs/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/certificateIssuanceConfigs/[^/]+$", +"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 CertificateIssuanceConfig.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/certificateIssuanceConfigs/{certificateIssuanceConfigsId}", +"httpMethod": "GET", +"id": "certificatemanager.projects.locations.certificateIssuanceConfigs.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A name of the certificate issuance config to describe. Must be in the format `projects/*/locations/*/certificateIssuanceConfigs/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/certificateIssuanceConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "CertificateIssuanceConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists CertificateIssuanceConfigs in a given project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/certificateIssuanceConfigs", +"httpMethod": "GET", +"id": "certificatemanager.projects.locations.certificateIssuanceConfigs.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filter expression to restrict the Certificates Configs returned.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. A list of Certificate Config field names used to specify the order of the returned results. The default sorting order is ascending. To specify descending order for a field, add a suffix `\" desc\"`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Maximum number of certificate configs to return per call.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The value returned by the last `ListCertificateIssuanceConfigsResponse`. Indicates that this is a continuation of a prior `ListCertificateIssuanceConfigs` 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 certificate should be listed, specified in the format `projects/*/locations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/certificateIssuanceConfigs", +"response": { +"$ref": "ListCertificateIssuanceConfigsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a CertificateIssuanceConfig.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/certificateIssuanceConfigs/{certificateIssuanceConfigsId}", +"httpMethod": "PATCH", +"id": "certificatemanager.projects.locations.certificateIssuanceConfigs.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. A user-defined name of the certificate issuance config. CertificateIssuanceConfig names must be unique globally and match pattern `projects/*/locations/*/certificateIssuanceConfigs/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/certificateIssuanceConfigs/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. 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": "v1/{+name}", +"request": { +"$ref": "CertificateIssuanceConfig" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"certificateMaps": { +"methods": { +"create": { +"description": "Creates a new CertificateMap in a given project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/certificateMaps", +"httpMethod": "POST", +"id": "certificatemanager.projects.locations.certificateMaps.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"certificateMapId": { +"description": "Required. A user-provided name of the certificate map.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource of the certificate map. Must be in the format `projects/*/locations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/certificateMaps", +"request": { +"$ref": "CertificateMap" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single CertificateMap. A Certificate Map can't be deleted if it contains Certificate Map Entries. Remove all the entries from the map before calling this method.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/certificateMaps/{certificateMapsId}", +"httpMethod": "DELETE", +"id": "certificatemanager.projects.locations.certificateMaps.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A name of the certificate map to delete. Must be in the format `projects/*/locations/*/certificateMaps/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/certificateMaps/[^/]+$", +"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 CertificateMap.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/certificateMaps/{certificateMapsId}", +"httpMethod": "GET", +"id": "certificatemanager.projects.locations.certificateMaps.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A name of the certificate map to describe. Must be in the format `projects/*/locations/*/certificateMaps/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/certificateMaps/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "CertificateMap" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists CertificateMaps in a given project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/certificateMaps", +"httpMethod": "GET", +"id": "certificatemanager.projects.locations.certificateMaps.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filter expression to restrict the Certificates Maps returned.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. A list of Certificate Map field names used to specify the order of the returned results. The default sorting order is ascending. To specify descending order for a field, add a suffix `\" desc\"`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Maximum number of certificate maps to return per call.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The value returned by the last `ListCertificateMapsResponse`. Indicates that this is a continuation of a prior `ListCertificateMaps` 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 certificate maps should be listed, specified in the format `projects/*/locations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/certificateMaps", +"response": { +"$ref": "ListCertificateMapsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a CertificateMap.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/certificateMaps/{certificateMapsId}", +"httpMethod": "PATCH", +"id": "certificatemanager.projects.locations.certificateMaps.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. A user-defined name of the Certificate Map. Certificate Map names must be unique globally and match pattern `projects/*/locations/*/certificateMaps/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/certificateMaps/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. 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": "v1/{+name}", +"request": { +"$ref": "CertificateMap" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"certificateMapEntries": { +"methods": { +"create": { +"description": "Creates a new CertificateMapEntry in a given project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/certificateMaps/{certificateMapsId}/certificateMapEntries", +"httpMethod": "POST", +"id": "certificatemanager.projects.locations.certificateMaps.certificateMapEntries.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"certificateMapEntryId": { +"description": "Required. A user-provided name of the certificate map entry.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource of the certificate map entry. Must be in the format `projects/*/locations/*/certificateMaps/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/certificateMaps/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/certificateMapEntries", +"request": { +"$ref": "CertificateMapEntry" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single CertificateMapEntry.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/certificateMaps/{certificateMapsId}/certificateMapEntries/{certificateMapEntriesId}", +"httpMethod": "DELETE", +"id": "certificatemanager.projects.locations.certificateMaps.certificateMapEntries.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A name of the certificate map entry to delete. Must be in the format `projects/*/locations/*/certificateMaps/*/certificateMapEntries/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/certificateMaps/[^/]+/certificateMapEntries/[^/]+$", +"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 CertificateMapEntry.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/certificateMaps/{certificateMapsId}/certificateMapEntries/{certificateMapEntriesId}", +"httpMethod": "GET", +"id": "certificatemanager.projects.locations.certificateMaps.certificateMapEntries.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A name of the certificate map entry to describe. Must be in the format `projects/*/locations/*/certificateMaps/*/certificateMapEntries/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/certificateMaps/[^/]+/certificateMapEntries/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "CertificateMapEntry" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists CertificateMapEntries in a given project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/certificateMaps/{certificateMapsId}/certificateMapEntries", +"httpMethod": "GET", +"id": "certificatemanager.projects.locations.certificateMaps.certificateMapEntries.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filter expression to restrict the returned Certificate Map Entries.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. A list of Certificate Map Entry field names used to specify the order of the returned results. The default sorting order is ascending. To specify descending order for a field, add a suffix `\" desc\"`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Maximum number of certificate map entries to return. The service may return fewer than this value. If unspecified, at most 50 certificate map entries 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. The value returned by the last `ListCertificateMapEntriesResponse`. Indicates that this is a continuation of a prior `ListCertificateMapEntries` call, and that the system should return the next page of data.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project, location and certificate map from which the certificate map entries should be listed, specified in the format `projects/*/locations/*/certificateMaps/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/certificateMaps/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/certificateMapEntries", +"response": { +"$ref": "ListCertificateMapEntriesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a CertificateMapEntry.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/certificateMaps/{certificateMapsId}/certificateMapEntries/{certificateMapEntriesId}", +"httpMethod": "PATCH", +"id": "certificatemanager.projects.locations.certificateMaps.certificateMapEntries.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. A user-defined name of the Certificate Map Entry. Certificate Map Entry names must be unique globally and match pattern `projects/*/locations/*/certificateMaps/*/certificateMapEntries/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/certificateMaps/[^/]+/certificateMapEntries/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. 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": "v1/{+name}", +"request": { +"$ref": "CertificateMapEntry" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"certificates": { +"methods": { +"create": { +"description": "Creates a new Certificate in a given project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/certificates", +"httpMethod": "POST", +"id": "certificatemanager.projects.locations.certificates.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"certificateId": { +"description": "Required. A user-provided name of the certificate.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource of the certificate. Must be in the format `projects/*/locations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/certificates", +"request": { +"$ref": "Certificate" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single Certificate.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/certificates/{certificatesId}", +"httpMethod": "DELETE", +"id": "certificatemanager.projects.locations.certificates.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A name of the certificate to delete. Must be in the format `projects/*/locations/*/certificates/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/certificates/[^/]+$", +"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 Certificate.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/certificates/{certificatesId}", +"httpMethod": "GET", +"id": "certificatemanager.projects.locations.certificates.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A name of the certificate to describe. Must be in the format `projects/*/locations/*/certificates/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/certificates/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Certificate" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists Certificates in a given project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/certificates", +"httpMethod": "GET", +"id": "certificatemanager.projects.locations.certificates.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filter expression to restrict the Certificates returned.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. A list of Certificate field names used to specify the order of the returned results. The default sorting order is ascending. To specify descending order for a field, add a suffix `\" desc\"`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Maximum number of certificates to return per call.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The value returned by the last `ListCertificatesResponse`. Indicates that this is a continuation of a prior `ListCertificates` 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 certificate should be listed, specified in the format `projects/*/locations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/certificates", +"response": { +"$ref": "ListCertificatesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a Certificate.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/certificates/{certificatesId}", +"httpMethod": "PATCH", +"id": "certificatemanager.projects.locations.certificates.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. A user-defined name of the certificate. Certificate names must be unique globally and match pattern `projects/*/locations/*/certificates/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/certificates/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. 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": "v1/{+name}", +"request": { +"$ref": "Certificate" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"dnsAuthorizations": { +"methods": { +"create": { +"description": "Creates a new DnsAuthorization in a given project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dnsAuthorizations", +"httpMethod": "POST", +"id": "certificatemanager.projects.locations.dnsAuthorizations.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"dnsAuthorizationId": { +"description": "Required. A user-provided name of the dns authorization.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource of the dns authorization. Must be in the format `projects/*/locations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/dnsAuthorizations", +"request": { +"$ref": "DnsAuthorization" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single DnsAuthorization.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dnsAuthorizations/{dnsAuthorizationsId}", +"httpMethod": "DELETE", +"id": "certificatemanager.projects.locations.dnsAuthorizations.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A name of the dns authorization to delete. Must be in the format `projects/*/locations/*/dnsAuthorizations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/dnsAuthorizations/[^/]+$", +"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 DnsAuthorization.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dnsAuthorizations/{dnsAuthorizationsId}", +"httpMethod": "GET", +"id": "certificatemanager.projects.locations.dnsAuthorizations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A name of the dns authorization to describe. Must be in the format `projects/*/locations/*/dnsAuthorizations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/dnsAuthorizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "DnsAuthorization" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists DnsAuthorizations in a given project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dnsAuthorizations", +"httpMethod": "GET", +"id": "certificatemanager.projects.locations.dnsAuthorizations.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filter expression to restrict the Dns Authorizations returned.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. A list of Dns Authorization field names used to specify the order of the returned results. The default sorting order is ascending. To specify descending order for a field, add a suffix `\" desc\"`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Maximum number of dns authorizations to return per call.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The value returned by the last `ListDnsAuthorizationsResponse`. Indicates that this is a continuation of a prior `ListDnsAuthorizations` 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 dns authorizations should be listed, specified in the format `projects/*/locations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/dnsAuthorizations", +"response": { +"$ref": "ListDnsAuthorizationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a DnsAuthorization.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dnsAuthorizations/{dnsAuthorizationsId}", +"httpMethod": "PATCH", +"id": "certificatemanager.projects.locations.dnsAuthorizations.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. A user-defined name of the dns authorization. DnsAuthorization names must be unique globally and match pattern `projects/*/locations/*/dnsAuthorizations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/dnsAuthorizations/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. 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": "v1/{+name}", +"request": { +"$ref": "DnsAuthorization" +}, +"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": "certificatemanager.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": "certificatemanager.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": "certificatemanager.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": "certificatemanager.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" +] +} +} +}, +"trustConfigs": { +"methods": { +"create": { +"description": "Creates a new TrustConfig in a given project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/trustConfigs", +"httpMethod": "POST", +"id": "certificatemanager.projects.locations.trustConfigs.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource of the TrustConfig. Must be in the format `projects/*/locations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"trustConfigId": { +"description": "Required. A user-provided name of the TrustConfig. Must match the regexp `[a-z0-9-]{1,63}`.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/trustConfigs", +"request": { +"$ref": "TrustConfig" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single TrustConfig.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/trustConfigs/{trustConfigsId}", +"httpMethod": "DELETE", +"id": "certificatemanager.projects.locations.trustConfigs.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"etag": { +"description": "Optional. The current etag of the TrustConfig. If an etag is provided and does not match the current etag of the resource, deletion will be blocked and an ABORTED error will be returned.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. A name of the TrustConfig to delete. Must be in the format `projects/*/locations/*/trustConfigs/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/trustConfigs/[^/]+$", +"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 TrustConfig.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/trustConfigs/{trustConfigsId}", +"httpMethod": "GET", +"id": "certificatemanager.projects.locations.trustConfigs.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. A name of the TrustConfig to describe. Must be in the format `projects/*/locations/*/trustConfigs/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/trustConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "TrustConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists TrustConfigs in a given project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/trustConfigs", +"httpMethod": "GET", +"id": "certificatemanager.projects.locations.trustConfigs.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filter expression to restrict the TrustConfigs returned.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. A list of TrustConfig field names used to specify the order of the returned results. The default sorting order is ascending. To specify descending order for a field, add a suffix `\" desc\"`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Maximum number of TrustConfigs to return per call.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The value returned by the last `ListTrustConfigsResponse`. Indicates that this is a continuation of a prior `ListTrustConfigs` 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 TrustConfigs should be listed, specified in the format `projects/*/locations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/trustConfigs", +"response": { +"$ref": "ListTrustConfigsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a TrustConfig.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/trustConfigs/{trustConfigsId}", +"httpMethod": "PATCH", +"id": "certificatemanager.projects.locations.trustConfigs.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. A user-defined name of the trust config. TrustConfig names must be unique globally and match pattern `projects/*/locations/*/trustConfigs/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/trustConfigs/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. 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": "v1/{+name}", +"request": { +"$ref": "TrustConfig" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +}, +"revision": "20241204", +"rootUrl": "https://certificatemanager.googleapis.com/", +"schemas": { +"AllowlistedCertificate": { +"description": "Defines an allowlisted certificate.", +"id": "AllowlistedCertificate", +"properties": { +"pemCertificate": { +"description": "Required. PEM certificate that is allowlisted. The certificate can be up to 5k bytes, and must be a parseable X.509 certificate.", +"type": "string" +} +}, +"type": "object" +}, +"AuthorizationAttemptInfo": { +"description": "State of the latest attempt to authorize a domain for certificate issuance.", +"id": "AuthorizationAttemptInfo", +"properties": { +"details": { +"description": "Output only. Human readable explanation for reaching the state. Provided to help address the configuration issues. Not guaranteed to be stable. For programmatic access use FailureReason enum.", +"readOnly": true, +"type": "string" +}, +"domain": { +"description": "Output only. Domain name of the authorization attempt.", +"readOnly": true, +"type": "string" +}, +"failureReason": { +"description": "Output only. Reason for failure of the authorization attempt for the domain.", +"enum": [ +"FAILURE_REASON_UNSPECIFIED", +"CONFIG", +"CAA", +"RATE_LIMITED" +], +"enumDescriptions": [ +"FailureReason is unspecified.", +"There was a problem with the user's DNS or load balancer configuration for this domain.", +"Certificate issuance forbidden by an explicit CAA record for the domain or a failure to check CAA records for the domain.", +"Reached a CA or internal rate-limit for the domain, e.g. for certificates per top-level private domain." +], +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. State of the domain for managed certificate issuance.", +"enum": [ +"STATE_UNSPECIFIED", +"AUTHORIZING", +"AUTHORIZED", +"FAILED" +], +"enumDescriptions": [ +"State is unspecified.", +"Certificate provisioning for this domain is under way. Google Cloud will attempt to authorize the domain.", +"A managed certificate can be provisioned, no issues for this domain.", +"Attempt to authorize the domain failed. This prevents the Managed Certificate from being issued. See `failure_reason` and `details` fields for more information." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"CancelOperationRequest": { +"description": "The request message for Operations.CancelOperation.", +"id": "CancelOperationRequest", +"properties": {}, +"type": "object" +}, +"Certificate": { +"description": "Defines TLS certificate.", +"id": "Certificate", +"properties": { +"createTime": { +"description": "Output only. The creation timestamp of a Certificate.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. One or more paragraphs of text description of a certificate.", +"type": "string" +}, +"expireTime": { +"description": "Output only. The expiry timestamp of a Certificate.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Set of labels associated with a Certificate.", +"type": "object" +}, +"managed": { +"$ref": "ManagedCertificate", +"description": "If set, contains configuration and state of a managed certificate." +}, +"name": { +"description": "Identifier. A user-defined name of the certificate. Certificate names must be unique globally and match pattern `projects/*/locations/*/certificates/*`.", +"type": "string" +}, +"pemCertificate": { +"description": "Output only. The PEM-encoded certificate chain.", +"readOnly": true, +"type": "string" +}, +"sanDnsnames": { +"description": "Output only. The list of Subject Alternative Names of dnsName type defined in the certificate (see RFC 5280 4.2.1.6). Managed certificates that haven't been provisioned yet have this field populated with a value of the managed.domains field.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"scope": { +"description": "Optional. Immutable. The scope of the certificate.", +"enum": [ +"DEFAULT", +"EDGE_CACHE", +"ALL_REGIONS" +], +"enumDescriptions": [ +"Use the DEFAULT scope if you plan to use the certificate with global external Application Load Balancer, global external proxy Network Load Balancer, or any of the regional Google Cloud services.", +"Use the EDGE_CACHE scope if you plan to use the certificate with Media CDN. The certificates are served from Edge Points of Presence. See https://cloud.google.com/vpc/docs/edge-locations.", +"Use the ALL_REGIONS scope if you plan to use the certificate with cross-region internal Application Load Balancer. The certificates are served from all Google Cloud regions. See https://cloud.google.com/compute/docs/regions-zones." +], +"type": "string" +}, +"selfManaged": { +"$ref": "SelfManagedCertificate", +"description": "If set, defines data of a self-managed certificate." +}, +"updateTime": { +"description": "Output only. The last update timestamp of a Certificate.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"CertificateAuthorityConfig": { +"description": "The CA that issues the workload certificate. It includes CA address, type, authentication to CA service, etc.", +"id": "CertificateAuthorityConfig", +"properties": { +"certificateAuthorityServiceConfig": { +"$ref": "CertificateAuthorityServiceConfig", +"description": "Defines a CertificateAuthorityServiceConfig." +} +}, +"type": "object" +}, +"CertificateAuthorityServiceConfig": { +"description": "Contains information required to contact CA service.", +"id": "CertificateAuthorityServiceConfig", +"properties": { +"caPool": { +"description": "Required. A CA pool resource used to issue a certificate. The CA pool string has a relative resource path following the form \"projects/{project}/locations/{location}/caPools/{ca_pool}\".", +"type": "string" +} +}, +"type": "object" +}, +"CertificateIssuanceConfig": { +"description": "CertificateIssuanceConfig specifies how to issue and manage a certificate.", +"id": "CertificateIssuanceConfig", +"properties": { +"certificateAuthorityConfig": { +"$ref": "CertificateAuthorityConfig", +"description": "Required. The CA that issues the workload certificate. It includes the CA address, type, authentication to CA service, etc." +}, +"createTime": { +"description": "Output only. The creation timestamp of a CertificateIssuanceConfig.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. One or more paragraphs of text description of a CertificateIssuanceConfig.", +"type": "string" +}, +"keyAlgorithm": { +"description": "Required. The key algorithm to use when generating the private key.", +"enum": [ +"KEY_ALGORITHM_UNSPECIFIED", +"RSA_2048", +"ECDSA_P256" +], +"enumDescriptions": [ +"Unspecified key algorithm.", +"Specifies RSA with a 2048-bit modulus.", +"Specifies ECDSA with curve P256." +], +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Set of labels associated with a CertificateIssuanceConfig.", +"type": "object" +}, +"lifetime": { +"description": "Required. Workload certificate lifetime requested.", +"format": "google-duration", +"type": "string" +}, +"name": { +"description": "Identifier. A user-defined name of the certificate issuance config. CertificateIssuanceConfig names must be unique globally and match pattern `projects/*/locations/*/certificateIssuanceConfigs/*`.", +"type": "string" +}, +"rotationWindowPercentage": { +"description": "Required. Specifies the percentage of elapsed time of the certificate lifetime to wait before renewing the certificate. Must be a number between 1-99, inclusive.", +"format": "int32", +"type": "integer" +}, +"updateTime": { +"description": "Output only. The last update timestamp of a CertificateIssuanceConfig.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"CertificateMap": { +"description": "Defines a collection of certificate configurations.", +"id": "CertificateMap", +"properties": { +"createTime": { +"description": "Output only. The creation timestamp of a Certificate Map.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. One or more paragraphs of text description of a certificate map.", +"type": "string" +}, +"gclbTargets": { +"description": "Output only. A list of GCLB targets that use this Certificate Map. A Target Proxy is only present on this list if it's attached to a Forwarding Rule.", +"items": { +"$ref": "GclbTarget" +}, +"readOnly": true, +"type": "array" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Set of labels associated with a Certificate Map.", +"type": "object" +}, +"name": { +"description": "Identifier. A user-defined name of the Certificate Map. Certificate Map names must be unique globally and match pattern `projects/*/locations/*/certificateMaps/*`.", +"type": "string" +}, +"updateTime": { +"description": "Output only. The update timestamp of a Certificate Map.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"CertificateMapEntry": { +"description": "Defines a certificate map entry.", +"id": "CertificateMapEntry", +"properties": { +"certificates": { +"description": "Optional. A set of Certificates defines for the given `hostname`. There can be defined up to four certificates in each Certificate Map Entry. Each certificate must match pattern `projects/*/locations/*/certificates/*`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"createTime": { +"description": "Output only. The creation timestamp of a Certificate Map Entry.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. One or more paragraphs of text description of a certificate map entry.", +"type": "string" +}, +"hostname": { +"description": "A Hostname (FQDN, e.g. `example.com`) or a wildcard hostname expression (`*.example.com`) for a set of hostnames with common suffix. Used as Server Name Indication (SNI) for selecting a proper certificate.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Set of labels associated with a Certificate Map Entry.", +"type": "object" +}, +"matcher": { +"description": "A predefined matcher for particular cases, other than SNI selection.", +"enum": [ +"MATCHER_UNSPECIFIED", +"PRIMARY" +], +"enumDescriptions": [ +"A matcher has't been recognized.", +"A primary certificate that is served when SNI wasn't specified in the request or SNI couldn't be found in the map." +], +"type": "string" +}, +"name": { +"description": "Identifier. A user-defined name of the Certificate Map Entry. Certificate Map Entry names must be unique globally and match pattern `projects/*/locations/*/certificateMaps/*/certificateMapEntries/*`.", +"type": "string" +}, +"state": { +"description": "Output only. A serving state of this Certificate Map Entry.", +"enum": [ +"SERVING_STATE_UNSPECIFIED", +"ACTIVE", +"PENDING" +], +"enumDescriptions": [ +"The status is undefined.", +"The configuration is serving.", +"Update is in progress. Some frontends may serve this configuration." +], +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The update timestamp of a Certificate Map Entry.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"DnsAuthorization": { +"description": "A DnsAuthorization resource describes a way to perform domain authorization for certificate issuance.", +"id": "DnsAuthorization", +"properties": { +"createTime": { +"description": "Output only. The creation timestamp of a DnsAuthorization.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. One or more paragraphs of text description of a DnsAuthorization.", +"type": "string" +}, +"dnsResourceRecord": { +"$ref": "DnsResourceRecord", +"description": "Output only. DNS Resource Record that needs to be added to DNS configuration.", +"readOnly": true +}, +"domain": { +"description": "Required. Immutable. A domain that is being authorized. A DnsAuthorization resource covers a single domain and its wildcard, e.g. authorization for `example.com` can be used to issue certificates for `example.com` and `*.example.com`.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Set of labels associated with a DnsAuthorization.", +"type": "object" +}, +"name": { +"description": "Identifier. A user-defined name of the dns authorization. DnsAuthorization names must be unique globally and match pattern `projects/*/locations/*/dnsAuthorizations/*`.", +"type": "string" +}, +"type": { +"description": "Optional. Immutable. Type of DnsAuthorization. If unset during resource creation the following default will be used: - in location `global`: FIXED_RECORD, - in other locations: PER_PROJECT_RECORD.", +"enum": [ +"TYPE_UNSPECIFIED", +"FIXED_RECORD", +"PER_PROJECT_RECORD" +], +"enumDescriptions": [ +"Type is unspecified.", +"FIXED_RECORD DNS authorization uses DNS-01 validation method.", +"PER_PROJECT_RECORD DNS authorization allows for independent management of Google-managed certificates with DNS authorization across multiple projects." +], +"type": "string" +}, +"updateTime": { +"description": "Output only. The last update timestamp of a DnsAuthorization.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"DnsResourceRecord": { +"description": "The structure describing the DNS Resource Record that needs to be added to DNS configuration for the authorization to be usable by certificate.", +"id": "DnsResourceRecord", +"properties": { +"data": { +"description": "Output only. Data of the DNS Resource Record.", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. Fully qualified name of the DNS Resource Record. e.g. `_acme-challenge.example.com`", +"readOnly": true, +"type": "string" +}, +"type": { +"description": "Output only. Type of the DNS Resource Record. Currently always set to \"CNAME\".", +"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" +}, +"GclbTarget": { +"description": "Describes a Target Proxy that uses this Certificate Map.", +"id": "GclbTarget", +"properties": { +"ipConfigs": { +"description": "Output only. IP configurations for this Target Proxy where the Certificate Map is serving.", +"items": { +"$ref": "IpConfig" +}, +"readOnly": true, +"type": "array" +}, +"targetHttpsProxy": { +"description": "Output only. This field returns the resource name in the following format: `//compute.googleapis.com/projects/*/global/targetHttpsProxies/*`.", +"readOnly": true, +"type": "string" +}, +"targetSslProxy": { +"description": "Output only. This field returns the resource name in the following format: `//compute.googleapis.com/projects/*/global/targetSslProxies/*`.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"IntermediateCA": { +"description": "Defines an intermediate CA.", +"id": "IntermediateCA", +"properties": { +"pemCertificate": { +"description": "PEM intermediate certificate used for building up paths for validation. Each certificate provided in PEM format may occupy up to 5kB.", +"type": "string" +} +}, +"type": "object" +}, +"IpConfig": { +"description": "Defines IP configuration where this Certificate Map is serving.", +"id": "IpConfig", +"properties": { +"ipAddress": { +"description": "Output only. An external IP address.", +"readOnly": true, +"type": "string" +}, +"ports": { +"description": "Output only. Ports.", +"items": { +"format": "uint32", +"type": "integer" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"ListCertificateIssuanceConfigsResponse": { +"description": "Response for the `ListCertificateIssuanceConfigs` method.", +"id": "ListCertificateIssuanceConfigsResponse", +"properties": { +"certificateIssuanceConfigs": { +"description": "A list of certificate configs for the parent resource.", +"items": { +"$ref": "CertificateIssuanceConfig" +}, +"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" +}, +"ListCertificateMapEntriesResponse": { +"description": "Response for the `ListCertificateMapEntries` method.", +"id": "ListCertificateMapEntriesResponse", +"properties": { +"certificateMapEntries": { +"description": "A list of certificate map entries for the parent resource.", +"items": { +"$ref": "CertificateMapEntry" +}, +"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" +}, +"ListCertificateMapsResponse": { +"description": "Response for the `ListCertificateMaps` method.", +"id": "ListCertificateMapsResponse", +"properties": { +"certificateMaps": { +"description": "A list of certificate maps for the parent resource.", +"items": { +"$ref": "CertificateMap" +}, +"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" +}, +"ListCertificatesResponse": { +"description": "Response for the `ListCertificates` method.", +"id": "ListCertificatesResponse", +"properties": { +"certificates": { +"description": "A list of certificates for the parent resource.", +"items": { +"$ref": "Certificate" +}, +"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": "A list of locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListDnsAuthorizationsResponse": { +"description": "Response for the `ListDnsAuthorizations` method.", +"id": "ListDnsAuthorizationsResponse", +"properties": { +"dnsAuthorizations": { +"description": "A list of dns authorizations for the parent resource.", +"items": { +"$ref": "DnsAuthorization" +}, +"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" +}, +"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" +}, +"ListTrustConfigsResponse": { +"description": "Response for the `ListTrustConfigs` method.", +"id": "ListTrustConfigsResponse", +"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" +}, +"trustConfigs": { +"description": "A list of TrustConfigs for the parent resource.", +"items": { +"$ref": "TrustConfig" +}, +"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" +}, +"ManagedCertificate": { +"description": "Configuration and state of a Managed Certificate. Certificate Manager provisions and renews Managed Certificates automatically, for as long as it's authorized to do so.", +"id": "ManagedCertificate", +"properties": { +"authorizationAttemptInfo": { +"description": "Output only. Detailed state of the latest authorization attempt for each domain specified for managed certificate resource.", +"items": { +"$ref": "AuthorizationAttemptInfo" +}, +"readOnly": true, +"type": "array" +}, +"dnsAuthorizations": { +"description": "Optional. Immutable. Authorizations that will be used for performing domain authorization.", +"items": { +"type": "string" +}, +"type": "array" +}, +"domains": { +"description": "Optional. Immutable. The domains for which a managed SSL certificate will be generated. Wildcard domains are only supported with DNS challenge resolution.", +"items": { +"type": "string" +}, +"type": "array" +}, +"issuanceConfig": { +"description": "Optional. Immutable. The resource name for a CertificateIssuanceConfig used to configure private PKI certificates in the format `projects/*/locations/*/certificateIssuanceConfigs/*`. If this field is not set, the certificates will instead be publicly signed as documented at https://cloud.google.com/load-balancing/docs/ssl-certificates/google-managed-certs#caa.", +"type": "string" +}, +"provisioningIssue": { +"$ref": "ProvisioningIssue", +"description": "Output only. Information about issues with provisioning a Managed Certificate.", +"readOnly": true +}, +"state": { +"description": "Output only. State of the managed certificate resource.", +"enum": [ +"STATE_UNSPECIFIED", +"PROVISIONING", +"FAILED", +"ACTIVE" +], +"enumDescriptions": [ +"State is unspecified.", +"Certificate Manager attempts to provision or renew the certificate. If the process takes longer than expected, consult the `provisioning_issue` field.", +"Multiple certificate provisioning attempts failed and Certificate Manager gave up. To try again, delete and create a new managed Certificate resource. For details see the `provisioning_issue` field.", +"The certificate management is working, and a certificate has been provisioned." +], +"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. Output only.", +"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" +}, +"requestedCancellation": { +"description": "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`.", +"type": "boolean" +}, +"statusMessage": { +"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" +}, +"ProvisioningIssue": { +"description": "Information about issues with provisioning a Managed Certificate.", +"id": "ProvisioningIssue", +"properties": { +"details": { +"description": "Output only. Human readable explanation about the issue. Provided to help address the configuration issues. Not guaranteed to be stable. For programmatic access use Reason enum.", +"readOnly": true, +"type": "string" +}, +"reason": { +"description": "Output only. Reason for provisioning failures.", +"enum": [ +"REASON_UNSPECIFIED", +"AUTHORIZATION_ISSUE", +"RATE_LIMITED" +], +"enumDescriptions": [ +"Reason is unspecified.", +"Certificate provisioning failed due to an issue with one or more of the domains on the certificate. For details of which domains failed, consult the `authorization_attempt_info` field.", +"Exceeded Certificate Authority quotas or internal rate limits of the system. Provisioning may take longer to complete." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"SelfManagedCertificate": { +"description": "Certificate data for a SelfManaged Certificate. SelfManaged Certificates are uploaded by the user. Updating such certificates before they expire remains the user's responsibility.", +"id": "SelfManagedCertificate", +"properties": { +"pemCertificate": { +"description": "Optional. Input only. The PEM-encoded certificate chain. Leaf certificate comes first, followed by intermediate ones if any.", +"type": "string" +}, +"pemPrivateKey": { +"description": "Optional. Input only. The PEM-encoded private key of the leaf certificate.", +"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" +}, +"TrustAnchor": { +"description": "Defines a trust anchor.", +"id": "TrustAnchor", +"properties": { +"pemCertificate": { +"description": "PEM root certificate of the PKI used for validation. Each certificate provided in PEM format may occupy up to 5kB.", +"type": "string" +} +}, +"type": "object" +}, +"TrustConfig": { +"description": "Defines a trust config.", +"id": "TrustConfig", +"properties": { +"allowlistedCertificates": { +"description": "Optional. A certificate matching an allowlisted certificate is always considered valid as long as the certificate is parseable, proof of private key possession is established, and constraints on the certificate's SAN field are met.", +"items": { +"$ref": "AllowlistedCertificate" +}, +"type": "array" +}, +"createTime": { +"description": "Output only. The creation timestamp of a TrustConfig.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. One or more paragraphs of text description of a TrustConfig.", +"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. Set of labels associated with a TrustConfig.", +"type": "object" +}, +"name": { +"description": "Identifier. A user-defined name of the trust config. TrustConfig names must be unique globally and match pattern `projects/*/locations/*/trustConfigs/*`.", +"type": "string" +}, +"trustStores": { +"description": "Optional. Set of trust stores to perform validation against. This field is supported when TrustConfig is configured with Load Balancers, currently not supported for SPIFFE certificate validation. Only one TrustStore specified is currently allowed.", +"items": { +"$ref": "TrustStore" +}, +"type": "array" +}, +"updateTime": { +"description": "Output only. The last update timestamp of a TrustConfig.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"TrustStore": { +"description": "Defines a trust store.", +"id": "TrustStore", +"properties": { +"intermediateCas": { +"description": "Optional. Set of intermediate CA certificates used for the path building phase of chain validation. The field is currently not supported if TrustConfig is used for the workload certificate feature.", +"items": { +"$ref": "IntermediateCA" +}, +"type": "array" +}, +"trustAnchors": { +"description": "Optional. List of Trust Anchors to be used while performing validation against a given TrustStore.", +"items": { +"$ref": "TrustAnchor" +}, +"type": "array" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Certificate Manager 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/cloudcommerceprocurement.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/cloudcommerceprocurement.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..11c978f50d224fb41a62091f800dd6118107faac --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/cloudcommerceprocurement.v1.json @@ -0,0 +1,882 @@ +{ + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/cloud-platform": { + "description": "See, edit, configure, and delete your Google Cloud Platform data" + } + } + } + }, + "basePath": "", + "baseUrl": "https://cloudcommerceprocurement.googleapis.com/", + "batchPath": "batch", + "canonicalName": "Cloud Commerce Partner Procurement Service", + "description": "Partner API for the Cloud Commerce Procurement Service.", + "discoveryVersion": "v1", + "documentationLink": "https://cloud.google.com/marketplace/docs/partners/", + "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": "cloudcommerceprocurement:v1", + "kind": "discovery#restDescription", + "mtlsRootUrl": "https://cloudcommerceprocurement.mtls.googleapis.com/", + "name": "cloudcommerceprocurement", + "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": { + "providers": { + "resources": { + "accounts": { + "methods": { + "approve": { + "description": "Grants an approval on an Account.", + "flatPath": "v1/providers/{providersId}/accounts/{accountsId}:approve", + "httpMethod": "POST", + "id": "cloudcommerceprocurement.providers.accounts.approve", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The resource name of the account. Required.", + "location": "path", + "pattern": "^providers/[^/]+/accounts/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:approve", + "request": { + "$ref": "ApproveAccountRequest" + }, + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets a requested Account resource.", + "flatPath": "v1/providers/{providersId}/accounts/{accountsId}", + "httpMethod": "GET", + "id": "cloudcommerceprocurement.providers.accounts.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the account to retrieve.", + "location": "path", + "pattern": "^providers/[^/]+/accounts/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Account" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists Accounts that the provider has access to.", + "flatPath": "v1/providers/{providersId}/accounts", + "httpMethod": "GET", + "id": "cloudcommerceprocurement.providers.accounts.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "The maximum number of entries that are requested. Default size is 200.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The token for fetching the next page.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "The parent resource name.", + "location": "path", + "pattern": "^providers/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/accounts", + "response": { + "$ref": "ListAccountsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "reject": { + "description": "Rejects an approval on an Account.", + "flatPath": "v1/providers/{providersId}/accounts/{accountsId}:reject", + "httpMethod": "POST", + "id": "cloudcommerceprocurement.providers.accounts.reject", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The resource name of the account. Required.", + "location": "path", + "pattern": "^providers/[^/]+/accounts/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:reject", + "request": { + "$ref": "RejectAccountRequest" + }, + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "reset": { + "description": "Resets an Account and cancel all associated Entitlements. Partner can only reset accounts they own rather than customer accounts.", + "flatPath": "v1/providers/{providersId}/accounts/{accountsId}:reset", + "httpMethod": "POST", + "id": "cloudcommerceprocurement.providers.accounts.reset", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The resource name of the account. Required.", + "location": "path", + "pattern": "^providers/[^/]+/accounts/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:reset", + "request": { + "$ref": "ResetAccountRequest" + }, + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "entitlements": { + "methods": { + "approve": { + "description": "Approves an entitlement that is in the EntitlementState.ENTITLEMENT_ACTIVATION_REQUESTED state. This method is invoked by the provider to approve the creation of the entitlement resource.", + "flatPath": "v1/providers/{providersId}/entitlements/{entitlementsId}:approve", + "httpMethod": "POST", + "id": "cloudcommerceprocurement.providers.entitlements.approve", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The resource name of the entitlement. Required.", + "location": "path", + "pattern": "^providers/[^/]+/entitlements/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:approve", + "request": { + "$ref": "ApproveEntitlementRequest" + }, + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "approvePlanChange": { + "description": "Approves an entitlement plan change that is in the EntitlementState.ENTITLEMENT_PENDING_PLAN_CHANGE_APPROVAL state. This method is invoked by the provider to approve the plan change on the entitlement resource.", + "flatPath": "v1/providers/{providersId}/entitlements/{entitlementsId}:approvePlanChange", + "httpMethod": "POST", + "id": "cloudcommerceprocurement.providers.entitlements.approvePlanChange", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The resource name of the entitlement. Required.", + "location": "path", + "pattern": "^providers/[^/]+/entitlements/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:approvePlanChange", + "request": { + "$ref": "ApproveEntitlementPlanChangeRequest" + }, + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets a requested Entitlement resource.", + "flatPath": "v1/providers/{providersId}/entitlements/{entitlementsId}", + "httpMethod": "GET", + "id": "cloudcommerceprocurement.providers.entitlements.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the entitlement to retrieve.", + "location": "path", + "pattern": "^providers/[^/]+/entitlements/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Entitlement" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists Entitlements for which the provider has read access.", + "flatPath": "v1/providers/{providersId}/entitlements", + "httpMethod": "GET", + "id": "cloudcommerceprocurement.providers.entitlements.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "The filter that can be used to limit the list request. The filter is a query string that can match a selected set of attributes with string values. For example `account=E-1234-5678-ABCD-EFGH`, `state=pending_cancellation`, and `plan!=foo-plan`. Supported query attributes are * `account` * `customer_billing_account` with value in the format of: `billingAccounts/{id}` * `product_external_name` * `quote_external_name` * `offer` * `new_pending_offer` * `plan` * `newPendingPlan` or `new_pending_plan` * `state` * `consumers.project` Note that the consumers match works on repeated structures, so equality (`consumers.project=projects/123456789`) is not supported. Set membership can be expressed with the `:` operator. For example, `consumers.project:projects/123456789` finds entitlements with at least one consumer with project field equal to `projects/123456789`. Also note that the state name match is case-insensitive and query can omit the prefix \"ENTITLEMENT_\". For example, `state=active` is equivalent to `state=ENTITLEMENT_ACTIVE`. If the query contains some special characters other than letters, underscore, or digits, the phrase must be quoted with double quotes. For example, `product=\"providerId:productId\"`, where the product name needs to be quoted because it contains special character colon. Queries can be combined with `AND`, `OR`, and `NOT` to form more complex queries. They can also be grouped to force a desired evaluation order. For example, `state=active AND (account=E-1234 OR account=5678) AND NOT (product=foo-product)`. Connective `AND` can be omitted between two predicates. For example `account=E-1234 state=active` is equivalent to `account=E-1234 AND state=active`.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "The maximum number of entries that are requested.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The token for fetching the next page.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "The parent resource name.", + "location": "path", + "pattern": "^providers/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/entitlements", + "response": { + "$ref": "ListEntitlementsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates an existing Entitlement.", + "flatPath": "v1/providers/{providersId}/entitlements/{entitlementsId}", + "httpMethod": "PATCH", + "id": "cloudcommerceprocurement.providers.entitlements.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the entitlement to update.", + "location": "path", + "pattern": "^providers/[^/]+/entitlements/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "The update mask that applies to the resource. See the [FieldMask definition] (https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask) for more details.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "Entitlement" + }, + "response": { + "$ref": "Entitlement" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "reject": { + "description": "Rejects an entitlement that is in the EntitlementState.ENTITLEMENT_ACTIVATION_REQUESTED state. This method is invoked by the provider to reject the creation of the entitlement resource.", + "flatPath": "v1/providers/{providersId}/entitlements/{entitlementsId}:reject", + "httpMethod": "POST", + "id": "cloudcommerceprocurement.providers.entitlements.reject", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The resource name of the entitlement. Required.", + "location": "path", + "pattern": "^providers/[^/]+/entitlements/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:reject", + "request": { + "$ref": "RejectEntitlementRequest" + }, + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "rejectPlanChange": { + "description": "Rejects an entitlement plan change that is in the EntitlementState.ENTITLEMENT_PENDING_PLAN_CHANGE_APPROVAL state. This method is invoked by the provider to reject the plan change on the entitlement resource.", + "flatPath": "v1/providers/{providersId}/entitlements/{entitlementsId}:rejectPlanChange", + "httpMethod": "POST", + "id": "cloudcommerceprocurement.providers.entitlements.rejectPlanChange", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The resource name of the entitlement. Required.", + "location": "path", + "pattern": "^providers/[^/]+/entitlements/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:rejectPlanChange", + "request": { + "$ref": "RejectEntitlementPlanChangeRequest" + }, + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "suspend": { + "description": "Requests suspension of an active Entitlement. This is not yet supported.", + "flatPath": "v1/providers/{providersId}/entitlements/{entitlementsId}:suspend", + "httpMethod": "POST", + "id": "cloudcommerceprocurement.providers.entitlements.suspend", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the entitlement to suspend.", + "location": "path", + "pattern": "^providers/[^/]+/entitlements/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:suspend", + "request": { + "$ref": "SuspendEntitlementRequest" + }, + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + } + }, + "revision": "20210410", + "rootUrl": "https://cloudcommerceprocurement.googleapis.com/", + "schemas": { + "Account": { + "description": "Represents an account that was established by the customer on the service provider's system.", + "id": "Account", + "properties": { + "approvals": { + "description": "Output only. The approvals for this account. These approvals are used to track actions that are permitted or have been completed by a customer within the context of the provider. This might include a sign up flow or a provisioning step, for example, that the provider can admit to having happened.", + "items": { + "$ref": "Approval" + }, + "type": "array" + }, + "createTime": { + "description": "Output only. The creation timestamp.", + "format": "google-datetime", + "type": "string" + }, + "inputProperties": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Output only. The custom properties that were collected from the user to create this account.", + "type": "object" + }, + "name": { + "description": "Output only. The resource name of the account. Account names have the form `accounts/{account_id}`.", + "type": "string" + }, + "provider": { + "description": "Output only. The identifier of the service provider that this account was created against. Each service provider is assigned a unique provider value when they onboard with Cloud Commerce platform.", + "type": "string" + }, + "state": { + "description": "Output only. The state of the account. This is used to decide whether the customer is in good standing with the provider and is able to make purchases. An account might not be able to make a purchase if the billing account is suspended, for example.", + "enum": [ + "ACCOUNT_STATE_UNSPECIFIED", + "ACCOUNT_ACTIVATION_REQUESTED", + "ACCOUNT_ACTIVE" + ], + "enumDescriptions": [ + "Default state of the account. It's only set to this value when the account is first created and has not been initialized.", + "The customer has requested the creation of the account resource, and the provider notification message is dispatched. This state has been deprecated, as accounts now immediately transition to AccountState.ACCOUNT_ACTIVE.", + "The account is active and ready for use. The next possible states are: - Account getting deleted: After the user invokes delete from another API." + ], + "type": "string" + }, + "updateTime": { + "description": "Output only. The last update timestamp.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "Approval": { + "description": "An approval for some action on an account.", + "id": "Approval", + "properties": { + "name": { + "description": "Output only. The name of the approval.", + "type": "string" + }, + "reason": { + "description": "Output only. An explanation for the state of the approval.", + "type": "string" + }, + "state": { + "description": "Output only. The state of the approval.", + "enum": [ + "STATE_UNSPECIFIED", + "PENDING", + "APPROVED", + "REJECTED" + ], + "enumDescriptions": [ + "Sentinel value; do not use.", + "The approval is pending response from the provider. The approval state can transition to Account.Approval.State.APPROVED or Account.Approval.State.REJECTED.", + "The approval has been granted by the provider.", + "The approval has been rejected by the provider. A provider may choose to approve a previously rejected approval, so is it possible to transition to Account.Approval.State.APPROVED." + ], + "type": "string" + }, + "updateTime": { + "description": "Optional. The last update timestamp of the approval.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "ApproveAccountRequest": { + "description": "Request message for PartnerProcurementService.ApproveAccount.", + "id": "ApproveAccountRequest", + "properties": { + "approvalName": { + "description": "The name of the approval being approved. If absent and there is only one approval possible, that approval will be granted. If absent and there are many approvals possible, the request will fail with a 400 Bad Request. Optional.", + "type": "string" + }, + "properties": { + "additionalProperties": { + "type": "string" + }, + "description": "Set of properties that should be associated with the account. Optional.", + "type": "object" + }, + "reason": { + "description": "Free form text string explaining the approval reason. Optional. Max allowed length: 256 bytes. Longer strings will be truncated.", + "type": "string" + } + }, + "type": "object" + }, + "ApproveEntitlementPlanChangeRequest": { + "description": "Request message for [PartnerProcurementService.ApproveEntitlementPlanChange[].", + "id": "ApproveEntitlementPlanChangeRequest", + "properties": { + "pendingPlanName": { + "description": "Name of the pending plan that is being approved. Required.", + "type": "string" + } + }, + "type": "object" + }, + "ApproveEntitlementRequest": { + "description": "Request message for [PartnerProcurementService.ApproveEntitlement[].", + "id": "ApproveEntitlementRequest", + "properties": { + "properties": { + "additionalProperties": { + "type": "string" + }, + "description": "Set of properties that should be associated with the entitlement. Optional.", + "type": "object" + } + }, + "type": "object" + }, + "Consumer": { + "description": "A resource using (consuming) this entitlement.", + "id": "Consumer", + "properties": { + "project": { + "description": "A project name with format `projects/`.", + "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); } The JSON representation for `Empty` is empty JSON object `{}`.", + "id": "Empty", + "properties": {}, + "type": "object" + }, + "Entitlement": { + "description": "Represents a procured product of a customer. Next Id: 23", + "id": "Entitlement", + "properties": { + "account": { + "description": "Output only. The resource name of the account that this entitlement is based on, if any.", + "type": "string" + }, + "consumers": { + "description": "Output only. The resources using this entitlement, if applicable.", + "items": { + "$ref": "Consumer" + }, + "type": "array" + }, + "createTime": { + "description": "Output only. The creation timestamp.", + "format": "google-datetime", + "type": "string" + }, + "inputProperties": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Output only. The custom properties that were collected from the user to create this entitlement.", + "type": "object" + }, + "messageToUser": { + "description": "Provider-supplied message that is displayed to the end user. Currently this is used to communicate progress and ETA for provisioning. This field can be updated only when a user is waiting for an action from the provider, i.e. entitlement state is EntitlementState.ENTITLEMENT_ACTIVATION_REQUESTED or EntitlementState.ENTITLEMENT_PENDING_PLAN_CHANGE_APPROVAL. This field is cleared automatically when the entitlement state changes.", + "type": "string" + }, + "name": { + "description": "Output only. The resource name of the entitlement. Entitlement names have the form `providers/{provider_id}/entitlements/{entitlement_id}`.", + "type": "string" + }, + "newPendingOffer": { + "description": "Output only. The name of the offer the entitlement is switching to upon a pending plan change. Only exists if the pending plan change is moving to an offer. Format: 'projects/{project}/services/{service}/privateOffers/{offer-id}' OR 'projects/{project}/services/{service}/standardOffers/{offer-id}', depending on whether the offer is private or public.", + "readOnly": true, + "type": "string" + }, + "newPendingPlan": { + "description": "Output only. The identifier of the pending new plan. Required if the product has plans and the entitlement has a pending plan change.", + "type": "string" + }, + "offer": { + "description": "Output only. The name of the offer that was procured. Field is empty if order was not made using an offer. Format: 'projects/{project}/services/{service}/privateOffers/{offer-id}' OR 'projects/{project}/services/{service}/standardOffers/{offer-id}', depending on whether the offer is private or public.", + "readOnly": true, + "type": "string" + }, + "offerEndTime": { + "description": "Output only. End time for the Offer association corresponding to this entitlement. The field is only populated if the entitlement is currently associated with an Offer.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "plan": { + "description": "Output only. The identifier of the plan that was procured. Required if the product has plans.", + "type": "string" + }, + "product": { + "description": "Output only. The identifier of the entity that was purchased. This may actually represent a product, quote, or offer.", + "type": "string" + }, + "productExternalName": { + "description": "Output only. The identifier of the product that was procured.", + "readOnly": true, + "type": "string" + }, + "provider": { + "description": "Output only. The identifier of the service provider that this entitlement was created against. Each service provider is assigned a unique provider value when they onboard with Cloud Commerce platform.", + "type": "string" + }, + "quoteExternalName": { + "description": "Output only. The identifier of the quote that was used to procure. Empty if the order is not purchased using a quote.", + "readOnly": true, + "type": "string" + }, + "state": { + "description": "Output only. The state of the entitlement.", + "enum": [ + "ENTITLEMENT_STATE_UNSPECIFIED", + "ENTITLEMENT_ACTIVATION_REQUESTED", + "ENTITLEMENT_ACTIVE", + "ENTITLEMENT_PENDING_CANCELLATION", + "ENTITLEMENT_CANCELLED", + "ENTITLEMENT_PENDING_PLAN_CHANGE", + "ENTITLEMENT_PENDING_PLAN_CHANGE_APPROVAL", + "ENTITLEMENT_SUSPENDED" + ], + "enumDescriptions": [ + "Default state of the entitlement. It's only set to this value when the entitlement is first created and has not been initialized.", + "Indicates that the entitlement is being created and the backend has sent a notification to the provider for the activation approval. If the provider approves, then the entitlement will transition to the EntitlementState.ENTITLEMENT_ACTIVE state. Otherwise, the entitlement will be removed. Plan changes are not allowed in this state. Instead the entitlement is cancelled and re-created with a new plan name.", + "Indicates that the entitlement is active. The procured item is now usable and any associated billing events will start occurring. In this state, the customer can decide to cancel the entitlement, which would change the state to EntitlementState.ENTITLEMENT_PENDING_CANCELLATION, and then EntitlementState.ENTITLEMENT_CANCELLED. The user can also request a change of plan, which will transition the state to EntitlementState.ENTITLEMENT_PENDING_PLAN_CHANGE, and then back to EntitlementState.ENTITLEMENT_ACTIVE.", + "Indicates that the entitlement was cancelled by the customer. The entitlement typically stays in this state if the entitlement/plan allows use of the underlying resource until the end of the current billing cycle. Once the billing cycle completes, the resource will transition to EntitlementState.ENTITLEMENT_CANCELLED state. The resource cannot be modified during this state.", + "Indicates that the entitlement was cancelled. The entitlement can now be deleted.", + "Indicates that the entitlement is currently active, but there is a pending plan change that is requested by the customer. The entitlement typically stays in this state, if the entitlement/plan requires the completion of the current billing cycle before the plan can be changed. Once the billing cycle completes, the resource will transition to EntitlementState.ENTITLEMENT_ACTIVE, with its plan changed.", + "Indicates that the entitlement is currently active, but there is a plan change request pending provider approval. If the provider approves the plan change, then the entitlement will transition either to EntitlementState.ENTITLEMENT_ACTIVE or EntitlementState.ENTITLEMENT_PENDING_PLAN_CHANGE depending on whether current plan requires that the billing cycle completes. If the provider rejects the plan change, then the pending plan change request is removed and the entitlement stays in EntitlementState.ENTITLEMENT_ACTIVE state with the old plan.", + "Indicates that the entitlement is suspended either by Google or provider request. This can be triggered for various external reasons (e.g. expiration of credit card on the billing account, violation of terms-of-service of the provider etc.). As such, any remediating action needs to be taken externally, before the entitlement can be activated. This is not yet supported." + ], + "type": "string" + }, + "subscriptionEndTime": { + "description": "Output only. End time for the subscription corresponding to this entitlement.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. The last update timestamp.", + "format": "google-datetime", + "type": "string" + }, + "usageReportingId": { + "description": "Output only. The consumerId to use when reporting usage through the Service Control API. See the consumerId field at [Reporting Metrics](https://cloud.google.com/service-control/reporting-metrics) for more details. This field is present only if the product has usage-based billing configured.", + "type": "string" + } + }, + "type": "object" + }, + "ListAccountsResponse": { + "description": "Response message for [PartnerProcurementService.ListAccounts[].", + "id": "ListAccountsResponse", + "properties": { + "accounts": { + "description": "The list of accounts in this response.", + "items": { + "$ref": "Account" + }, + "type": "array" + }, + "nextPageToken": { + "description": "The token for fetching the next page.", + "type": "string" + } + }, + "type": "object" + }, + "ListEntitlementsResponse": { + "description": "Response message for PartnerProcurementService.ListEntitlements.", + "id": "ListEntitlementsResponse", + "properties": { + "entitlements": { + "description": "The list of entitlements in this response.", + "items": { + "$ref": "Entitlement" + }, + "type": "array" + }, + "nextPageToken": { + "description": "The token for fetching the next page.", + "type": "string" + } + }, + "type": "object" + }, + "RejectAccountRequest": { + "description": "Request message for PartnerProcurementService.RejectAccount.", + "id": "RejectAccountRequest", + "properties": { + "approvalName": { + "description": "The name of the approval being rejected. If absent and there is only one approval possible, that approval will be rejected. If absent and there are many approvals possible, the request will fail with a 400 Bad Request. Optional.", + "type": "string" + }, + "reason": { + "description": "Free form text string explaining the rejection reason. Max allowed length: 256 bytes. Longer strings will be truncated.", + "type": "string" + } + }, + "type": "object" + }, + "RejectEntitlementPlanChangeRequest": { + "description": "Request message for PartnerProcurementService.RejectEntitlementPlanChange.", + "id": "RejectEntitlementPlanChangeRequest", + "properties": { + "pendingPlanName": { + "description": "Name of the pending plan that is being rejected. Required.", + "type": "string" + }, + "reason": { + "description": "Free form text string explaining the rejection reason. Max allowed length: 256 bytes. Longer strings will be truncated.", + "type": "string" + } + }, + "type": "object" + }, + "RejectEntitlementRequest": { + "description": "Request message for PartnerProcurementService.RejectEntitlement.", + "id": "RejectEntitlementRequest", + "properties": { + "reason": { + "description": "Free form text string explaining the rejection reason. Max allowed length: 256 bytes. Longer strings will be truncated.", + "type": "string" + } + }, + "type": "object" + }, + "ResetAccountRequest": { + "description": "Request message for for PartnerProcurementService.ResetAccount.", + "id": "ResetAccountRequest", + "properties": {}, + "type": "object" + }, + "SuspendEntitlementRequest": { + "description": "Request message for ParterProcurementService.SuspendEntitlement. This is not yet supported.", + "id": "SuspendEntitlementRequest", + "properties": { + "reason": { + "description": "A free-form reason string, explaining the reason for suspension request.", + "type": "string" + } + }, + "type": "object" + } + }, + "servicePath": "", + "title": "Cloud Commerce Partner Procurement 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/cloudfunctions.v2beta.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/cloudfunctions.v2beta.json new file mode 100644 index 0000000000000000000000000000000000000000..d0561474e1b000f4253a55dafa5940cd70d507e4 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/cloudfunctions.v2beta.json @@ -0,0 +1,2116 @@ +{ +"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://cloudfunctions.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Cloud Functions", +"description": "Manages lightweight user-provided functions executed in response to events.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/functions", +"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": "cloudfunctions:v2beta", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://cloudfunctions.mtls.googleapis.com/", +"name": "cloudfunctions", +"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": { +"list": { +"description": "Lists information about the supported locations for this service.", +"flatPath": "v2beta/projects/{projectsId}/locations", +"httpMethod": "GET", +"id": "cloudfunctions.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": "v2beta/{+name}/locations", +"response": { +"$ref": "ListLocationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"functions": { +"methods": { +"abortFunctionUpgrade": { +"description": "Aborts generation upgrade process for a function with the given name from the specified project. Deletes all 2nd Gen copy related configuration and resources which were created during the upgrade process.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/functions/{functionsId}:abortFunctionUpgrade", +"httpMethod": "POST", +"id": "cloudfunctions.projects.locations.functions.abortFunctionUpgrade", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the function for which upgrade should be aborted.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/functions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+name}:abortFunctionUpgrade", +"request": { +"$ref": "AbortFunctionUpgradeRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"commitFunctionUpgrade": { +"description": "Finalizes the upgrade after which function upgrade can not be rolled back. This is the last step of the multi step process to upgrade 1st Gen functions to 2nd Gen. Deletes all original 1st Gen related configuration and resources.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/functions/{functionsId}:commitFunctionUpgrade", +"httpMethod": "POST", +"id": "cloudfunctions.projects.locations.functions.commitFunctionUpgrade", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the function for which upgrade should be finalized.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/functions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+name}:commitFunctionUpgrade", +"request": { +"$ref": "CommitFunctionUpgradeRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"create": { +"description": "Creates a new function. If a function with the given name already exists in the specified project, the long running operation will return `ALREADY_EXISTS` error.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/functions", +"httpMethod": "POST", +"id": "cloudfunctions.projects.locations.functions.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"functionId": { +"description": "The ID to use for the function, which will become the final component of the function's resource name. This value should be 4-63 characters, and valid characters are /a-z-/.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project and location in which the function should be created, specified in the format `projects/*/locations/*`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+parent}/functions", +"request": { +"$ref": "Function" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a function with the given name from the specified project. If the given function is used by some trigger, the trigger will be updated to remove this function.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/functions/{functionsId}", +"httpMethod": "DELETE", +"id": "cloudfunctions.projects.locations.functions.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the function which should be deleted.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/functions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"generateDownloadUrl": { +"description": "Returns a signed URL for downloading deployed function source code. The URL is only valid for a limited period and should be used within 30 minutes of generation. For more information about the signed URL usage see: https://cloud.google.com/storage/docs/access-control/signed-urls", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/functions/{functionsId}:generateDownloadUrl", +"httpMethod": "POST", +"id": "cloudfunctions.projects.locations.functions.generateDownloadUrl", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of function for which source code Google Cloud Storage signed URL should be generated.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/functions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+name}:generateDownloadUrl", +"request": { +"$ref": "GenerateDownloadUrlRequest" +}, +"response": { +"$ref": "GenerateDownloadUrlResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"generateUploadUrl": { +"description": "Returns a signed URL for uploading a function source code. For more information about the signed URL usage see: https://cloud.google.com/storage/docs/access-control/signed-urls. Once the function source code upload is complete, the used signed URL should be provided in CreateFunction or UpdateFunction request as a reference to the function source code. When uploading source code to the generated signed URL, please follow these restrictions: * Source file type should be a zip file. * 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, specify this header: * `content-type: application/zip` Do not specify this header: * `Authorization: Bearer YOUR_TOKEN`", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/functions:generateUploadUrl", +"httpMethod": "POST", +"id": "cloudfunctions.projects.locations.functions.generateUploadUrl", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The project and location in which the Google Cloud Storage signed URL should be generated, specified in the format `projects/*/locations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+parent}/functions:generateUploadUrl", +"request": { +"$ref": "GenerateUploadUrlRequest" +}, +"response": { +"$ref": "GenerateUploadUrlResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Returns a function with the given name from the requested project.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/functions/{functionsId}", +"httpMethod": "GET", +"id": "cloudfunctions.projects.locations.functions.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the function which details should be obtained.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/functions/[^/]+$", +"required": true, +"type": "string" +}, +"revision": { +"description": "Optional. The optional version of the 1st gen function whose details should be obtained. The version of a 1st gen function is an integer that starts from 1 and gets incremented on redeployments. GCF may keep historical configs for old versions of 1st gen function. This field can be specified to fetch the historical configs. This field is valid only for GCF 1st gen function.", +"location": "query", +"type": "string" +} +}, +"path": "v2beta/{+name}", +"response": { +"$ref": "Function" +}, +"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": "v2beta/projects/{projectsId}/locations/{locationsId}/functions/{functionsId}:getIamPolicy", +"httpMethod": "GET", +"id": "cloudfunctions.projects.locations.functions.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/[^/]+/functions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Returns a list of functions that belong to the requested project.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/functions", +"httpMethod": "GET", +"id": "cloudfunctions.projects.locations.functions.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "The filter for Functions that match the filter expression, following the syntax outlined in https://google.aip.dev/160.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "The sorting order of the resources returned. Value should be a comma separated list of fields. The default sorting oder is ascending. See https://google.aip.dev/132#ordering.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Maximum number of functions to return per call. The largest allowed page_size is 1,000, if the page_size is omitted or specified as greater than 1,000 then it will be replaced as 1,000. The size of the list response can be less than specified when used with filters.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last `ListFunctionsResponse`; indicates that this is a continuation of a prior `ListFunctions` 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 function should be listed, specified in the format `projects/*/locations/*` If you want to list functions in all locations, use \"-\" in place of a location. When listing functions in all locations, if one or more location(s) are unreachable, the response will contain functions from all reachable locations along with the names of any unreachable locations.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+parent}/functions", +"response": { +"$ref": "ListFunctionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates existing function.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/functions/{functionsId}", +"httpMethod": "PATCH", +"id": "cloudfunctions.projects.locations.functions.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "A user-defined name of the function. Function names must be unique globally and match pattern `projects/*/locations/*/functions/*`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/functions/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The list of fields to be updated. If no field mask is provided, all fields will be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v2beta/{+name}", +"request": { +"$ref": "Function" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"redirectFunctionUpgradeTraffic": { +"description": "Changes the traffic target of a function from the original 1st Gen function to the 2nd Gen copy. This is the second step of the multi step process to upgrade 1st Gen functions to 2nd Gen. After this operation, all new traffic will be served by 2nd Gen copy.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/functions/{functionsId}:redirectFunctionUpgradeTraffic", +"httpMethod": "POST", +"id": "cloudfunctions.projects.locations.functions.redirectFunctionUpgradeTraffic", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the function for which traffic target should be changed to 2nd Gen from 1st Gen.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/functions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+name}:redirectFunctionUpgradeTraffic", +"request": { +"$ref": "RedirectFunctionUpgradeTrafficRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"rollbackFunctionUpgradeTraffic": { +"description": "Reverts the traffic target of a function from the 2nd Gen copy to the original 1st Gen function. After this operation, all new traffic would be served by the 1st Gen.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/functions/{functionsId}:rollbackFunctionUpgradeTraffic", +"httpMethod": "POST", +"id": "cloudfunctions.projects.locations.functions.rollbackFunctionUpgradeTraffic", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the function for which traffic target should be changed back to 1st Gen from 2nd Gen.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/functions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+name}:rollbackFunctionUpgradeTraffic", +"request": { +"$ref": "RollbackFunctionUpgradeTrafficRequest" +}, +"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": "v2beta/projects/{projectsId}/locations/{locationsId}/functions/{functionsId}:setIamPolicy", +"httpMethod": "POST", +"id": "cloudfunctions.projects.locations.functions.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/[^/]+/functions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setupFunctionUpgradeConfig": { +"description": "Creates a 2nd Gen copy of the function configuration based on the 1st Gen function with the given name. This is the first step of the multi step process to upgrade 1st Gen functions to 2nd Gen. Only 2nd Gen configuration is setup as part of this request and traffic continues to be served by 1st Gen.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/functions/{functionsId}:setupFunctionUpgradeConfig", +"httpMethod": "POST", +"id": "cloudfunctions.projects.locations.functions.setupFunctionUpgradeConfig", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the function which should have configuration copied for upgrade.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/functions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+name}:setupFunctionUpgradeConfig", +"request": { +"$ref": "SetupFunctionUpgradeConfigRequest" +}, +"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": "v2beta/projects/{projectsId}/locations/{locationsId}/functions/{functionsId}:testIamPermissions", +"httpMethod": "POST", +"id": "cloudfunctions.projects.locations.functions.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/[^/]+/functions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"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": "v2beta/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "cloudfunctions.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": "v2beta/{+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": "v2beta/projects/{projectsId}/locations/{locationsId}/operations", +"httpMethod": "GET", +"id": "cloudfunctions.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": "v2beta/{+name}/operations", +"response": { +"$ref": "ListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"runtimes": { +"methods": { +"list": { +"description": "Returns a list of runtimes that are supported for the requested project.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/runtimes", +"httpMethod": "GET", +"id": "cloudfunctions.projects.locations.runtimes.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "The filter for Runtimes that match the filter expression, following the syntax outlined in https://google.aip.dev/160.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project and location from which the runtimes should be listed, specified in the format `projects/*/locations/*`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+parent}/runtimes", +"response": { +"$ref": "ListRuntimesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +}, +"revision": "20241205", +"rootUrl": "https://cloudfunctions.googleapis.com/", +"schemas": { +"AbortFunctionUpgradeRequest": { +"description": "Request for the `AbortFunctionUpgrade` method.", +"id": "AbortFunctionUpgradeRequest", +"properties": {}, +"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" +}, +"AutomaticUpdatePolicy": { +"description": "Security patches are applied automatically to the runtime without requiring the function to be redeployed.", +"id": "AutomaticUpdatePolicy", +"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" +}, +"BuildConfig": { +"description": "Describes the Build step of the function that builds a container from the given source.", +"id": "BuildConfig", +"properties": { +"automaticUpdatePolicy": { +"$ref": "AutomaticUpdatePolicy" +}, +"build": { +"description": "Output only. The Cloud Build name of the latest successful deployment of the function.", +"readOnly": true, +"type": "string" +}, +"dockerRegistry": { +"description": "Docker Registry to use for this deployment. This configuration is only applicable to 1st Gen functions, 2nd Gen functions can only use Artifact Registry. If unspecified, it defaults to `ARTIFACT_REGISTRY`. If `docker_repository` field is specified, this field should either be left unspecified or set to `ARTIFACT_REGISTRY`.", +"enum": [ +"DOCKER_REGISTRY_UNSPECIFIED", +"CONTAINER_REGISTRY", +"ARTIFACT_REGISTRY" +], +"enumDescriptions": [ +"Unspecified.", +"Docker images will be stored in multi-regional Container Registry repositories named `gcf`.", +"Docker images will be stored in regional Artifact Registry repositories. By default, GCF will create and use repositories named `gcf-artifacts` in every region in which a function is deployed. But the repository to use can also be specified by the user using the `docker_repository` field." +], +"type": "string" +}, +"dockerRepository": { +"description": "Repository in Artifact Registry to which the function docker image will be pushed after it is built by Cloud Build. If specified by user, it is created and managed by user with a customer managed encryption key. Otherwise, GCF will create and use a repository named 'gcf-artifacts' for every deployed region. It must match the pattern `projects/{project}/locations/{location}/repositories/{repository}`. Repository format must be 'DOCKER'.", +"type": "string" +}, +"entryPoint": { +"description": "The name of the function (as defined in source code) that will be executed. Defaults to the resource name suffix, if not specified. For backward compatibility, if function with given name is not found, then the system will try to use function named \"function\". For Node.js this is name of a function exported by the module specified in `source_location`.", +"type": "string" +}, +"environmentVariables": { +"additionalProperties": { +"type": "string" +}, +"description": "User-provided build-time environment variables for the function", +"type": "object" +}, +"onDeployUpdatePolicy": { +"$ref": "OnDeployUpdatePolicy" +}, +"runtime": { +"description": "The runtime in which to run the function. Required when deploying a new function, optional when updating an existing function. For a complete list of possible choices, see the [`gcloud` command reference](https://cloud.google.com/sdk/gcloud/reference/functions/deploy#--runtime).", +"type": "string" +}, +"serviceAccount": { +"description": "Service account to be used for building the container. The format of this field is `projects/{projectId}/serviceAccounts/{serviceAccountEmail}`.", +"type": "string" +}, +"source": { +"$ref": "Source", +"description": "The location of the function source code." +}, +"sourceProvenance": { +"$ref": "SourceProvenance", +"description": "Output only. A permanent fixed identifier for source.", +"readOnly": true +}, +"sourceToken": { +"description": "An identifier for Firebase function sources. Disclaimer: This field is only supported for Firebase function deployments.", +"type": "string" +}, +"workerPool": { +"description": "Name of the Cloud Build Custom Worker Pool that should be used to build the function. The format of this field is `projects/{project}/locations/{region}/workerPools/{workerPool}` where {project} and {region} are the project id and region respectively where the worker pool is defined and {workerPool} is the short name of the worker pool. If the project id is not the same as the function, then the Cloud Functions Service Agent (service-@gcf-admin-robot.iam.gserviceaccount.com) must be granted the role Cloud Build Custom Workers Builder (roles/cloudbuild.customworkers.builder) in the project.", +"type": "string" +} +}, +"type": "object" +}, +"CommitFunctionUpgradeRequest": { +"description": "Request for the `CommitFunctionUpgrade` method.", +"id": "CommitFunctionUpgradeRequest", +"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" +}, +"EventFilter": { +"description": "Filters events based on exact matches on the CloudEvents attributes.", +"id": "EventFilter", +"properties": { +"attribute": { +"description": "Required. The name of a CloudEvents attribute.", +"type": "string" +}, +"operator": { +"description": "Optional. The operator used for matching the events with the value of the filter. If not specified, only events that have an exact key-value pair specified in the filter are matched. The only allowed value is `match-path-pattern`.", +"type": "string" +}, +"value": { +"description": "Required. The value for the attribute.", +"type": "string" +} +}, +"type": "object" +}, +"EventTrigger": { +"description": "Describes EventTrigger, used to request events to be sent from another service.", +"id": "EventTrigger", +"properties": { +"channel": { +"description": "Optional. The name of the channel associated with the trigger in `projects/{project}/locations/{location}/channels/{channel}` format. You must provide a channel to receive events from Eventarc SaaS partners.", +"type": "string" +}, +"eventFilters": { +"description": "Criteria used to filter events.", +"items": { +"$ref": "EventFilter" +}, +"type": "array" +}, +"eventType": { +"description": "Required. The type of event to observe. For example: `google.cloud.audit.log.v1.written` or `google.cloud.pubsub.topic.v1.messagePublished`.", +"type": "string" +}, +"pubsubTopic": { +"description": "Optional. The name of a Pub/Sub topic in the same project that will be used as the transport topic for the event delivery. Format: `projects/{project}/topics/{topic}`. This is only valid for events of type `google.cloud.pubsub.topic.v1.messagePublished`. The topic provided here will not be deleted at function deletion.", +"type": "string" +}, +"retryPolicy": { +"description": "Optional. If unset, then defaults to ignoring failures (i.e. not retrying them).", +"enum": [ +"RETRY_POLICY_UNSPECIFIED", +"RETRY_POLICY_DO_NOT_RETRY", +"RETRY_POLICY_RETRY" +], +"enumDescriptions": [ +"Not specified.", +"Do not retry.", +"Retry on any failure, retry up to 7 days with an exponential backoff (capped at 10 seconds)." +], +"type": "string" +}, +"service": { +"description": "Optional. The hostname of the service that 1st Gen function should be observed. If no string is provided, the default service implementing the API will be used. For example, `storage.googleapis.com` is the default for all event types in the `google.storage` namespace. The field is only applicable to 1st Gen functions.", +"type": "string" +}, +"serviceAccountEmail": { +"description": "Optional. The email of the trigger's service account. The service account must have permission to invoke Cloud Run services, the permission is `run.routes.invoke`. If empty, defaults to the Compute Engine default service account: `{project_number}-compute@developer.gserviceaccount.com`.", +"type": "string" +}, +"trigger": { +"description": "Output only. The resource name of the Eventarc trigger. The format of this field is `projects/{project}/locations/{region}/triggers/{trigger}`.", +"readOnly": true, +"type": "string" +}, +"triggerRegion": { +"description": "The region that the trigger will be in. The trigger will only receive events originating in this region. It can be the same region as the function, a different region or multi-region, or the global region. If not provided, defaults to the same region as the function.", +"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" +}, +"Function": { +"description": "Describes a Cloud Function that contains user computation executed in response to an event. It encapsulates function and trigger configurations.", +"id": "Function", +"properties": { +"buildConfig": { +"$ref": "BuildConfig", +"description": "Describes the Build step of the function that builds a container from the given source." +}, +"createTime": { +"description": "Output only. The create timestamp of a Cloud Function. This is only applicable to 2nd Gen functions.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "User-provided description of a function.", +"type": "string" +}, +"environment": { +"description": "Describe whether the function is 1st Gen or 2nd Gen.", +"enum": [ +"ENVIRONMENT_UNSPECIFIED", +"GEN_1", +"GEN_2" +], +"enumDescriptions": [ +"Unspecified", +"Gen 1", +"Gen 2" +], +"type": "string" +}, +"eventTrigger": { +"$ref": "EventTrigger", +"description": "An Eventarc trigger managed by Google Cloud Functions that fires events in response to a condition in another service." +}, +"kmsKeyName": { +"description": "Resource name of a KMS crypto key (managed by the user) used to encrypt/decrypt function resources. It must match the pattern `projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Labels associated with this Cloud Function.", +"type": "object" +}, +"name": { +"description": "A user-defined name of the function. Function names must be unique globally and match pattern `projects/*/locations/*/functions/*`", +"type": "string" +}, +"satisfiesPzs": { +"description": "Output only. Reserved for future use.", +"readOnly": true, +"type": "boolean" +}, +"serviceConfig": { +"$ref": "ServiceConfig", +"description": "Describes the Service being deployed. Currently deploys services to Cloud Run (fully managed)." +}, +"state": { +"description": "Output only. State of the function.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"FAILED", +"DEPLOYING", +"DELETING", +"UNKNOWN" +], +"enumDescriptions": [ +"Not specified. Invalid state.", +"Function has been successfully deployed and is serving.", +"Function deployment failed and the function is not serving.", +"Function is being created or updated.", +"Function is being deleted.", +"Function deployment failed and the function serving state is undefined. The function should be updated or deleted to move it out of this state." +], +"readOnly": true, +"type": "string" +}, +"stateMessages": { +"description": "Output only. State Messages for this Cloud Function.", +"items": { +"$ref": "GoogleCloudFunctionsV2betaStateMessage" +}, +"readOnly": true, +"type": "array" +}, +"updateTime": { +"description": "Output only. The last update timestamp of a Cloud Function.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"upgradeInfo": { +"$ref": "UpgradeInfo", +"description": "Output only. UpgradeInfo for this Cloud Function", +"readOnly": true +}, +"url": { +"description": "Output only. The deployed url for the function.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GenerateDownloadUrlRequest": { +"description": "Request of `GenerateDownloadUrl` method.", +"id": "GenerateDownloadUrlRequest", +"properties": {}, +"type": "object" +}, +"GenerateDownloadUrlResponse": { +"description": "Response of `GenerateDownloadUrl` method.", +"id": "GenerateDownloadUrlResponse", +"properties": { +"downloadUrl": { +"description": "The generated Google Cloud Storage signed URL that should be used for function source code download.", +"type": "string" +} +}, +"type": "object" +}, +"GenerateUploadUrlRequest": { +"description": "Request of `GenerateSourceUploadUrl` method.", +"id": "GenerateUploadUrlRequest", +"properties": { +"environment": { +"description": "The function environment the generated upload url will be used for. The upload url for 2nd Gen functions can also be used for 1st gen functions, but not vice versa. If not specified, 2nd generation-style upload URLs are generated.", +"enum": [ +"ENVIRONMENT_UNSPECIFIED", +"GEN_1", +"GEN_2" +], +"enumDescriptions": [ +"Unspecified", +"Gen 1", +"Gen 2" +], +"type": "string" +}, +"kmsKeyName": { +"description": "Resource name of a KMS crypto key (managed by the user) used to encrypt/decrypt function source code objects in intermediate Cloud Storage buckets. When you generate an upload url and upload your source code, it gets copied to an intermediate Cloud Storage bucket. The source code is then copied to a versioned directory in the sources bucket in the consumer project during the function deployment. It must match the pattern `projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`. The Google Cloud Functions service account (service-{project_number}@gcf-admin-robot.iam.gserviceaccount.com) must be granted the role 'Cloud KMS CryptoKey Encrypter/Decrypter (roles/cloudkms.cryptoKeyEncrypterDecrypter)' on the Key/KeyRing/Project/Organization (least access preferred).", +"type": "string" +} +}, +"type": "object" +}, +"GenerateUploadUrlResponse": { +"description": "Response of `GenerateSourceUploadUrl` method.", +"id": "GenerateUploadUrlResponse", +"properties": { +"storageSource": { +"$ref": "StorageSource", +"description": "The location of the source code in the upload bucket. Once the archive is uploaded using the `upload_url` use this field to set the `function.build_config.source.storage_source` during CreateFunction and UpdateFunction. Generation defaults to 0, as Cloud Storage provides a new generation only upon uploading a new object or version of an object." +}, +"uploadUrl": { +"description": "The generated Google Cloud Storage signed URL that should be used for a function source code upload. The uploaded file should be a zip archive which contains a function.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudFunctionsV2betaLocationMetadata": { +"description": "Extra GCF specific location information.", +"id": "GoogleCloudFunctionsV2betaLocationMetadata", +"properties": { +"environments": { +"description": "The Cloud Function environments this location supports.", +"items": { +"enum": [ +"ENVIRONMENT_UNSPECIFIED", +"GEN_1", +"GEN_2" +], +"enumDescriptions": [ +"Unspecified", +"Gen 1", +"Gen 2" +], +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudFunctionsV2betaOperationMetadata": { +"description": "Represents the metadata of the long-running operation.", +"id": "GoogleCloudFunctionsV2betaOperationMetadata", +"properties": { +"apiVersion": { +"description": "API version used to start the operation.", +"type": "string" +}, +"buildName": { +"description": "The build name of the function for create and update operations.", +"type": "string" +}, +"cancelRequested": { +"description": "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`.", +"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" +}, +"operationType": { +"description": "The operation type.", +"enum": [ +"OPERATIONTYPE_UNSPECIFIED", +"CREATE_FUNCTION", +"UPDATE_FUNCTION", +"DELETE_FUNCTION", +"REDIRECT_FUNCTION_UPGRADE_TRAFFIC", +"ROLLBACK_FUNCTION_UPGRADE_TRAFFIC", +"SETUP_FUNCTION_UPGRADE_CONFIG", +"ABORT_FUNCTION_UPGRADE", +"COMMIT_FUNCTION_UPGRADE", +"DETACH_FUNCTION" +], +"enumDescriptions": [ +"Unspecified", +"CreateFunction", +"UpdateFunction", +"DeleteFunction", +"RedirectFunctionUpgradeTraffic", +"RollbackFunctionUpgradeTraffic", +"SetupFunctionUpgradeConfig", +"AbortFunctionUpgrade", +"CommitFunctionUpgrade", +"DetachFunction" +], +"type": "string" +}, +"requestResource": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The original request that started the operation.", +"type": "object" +}, +"sourceToken": { +"description": "An identifier for Firebase function sources. Disclaimer: This field is only supported for Firebase function deployments.", +"type": "string" +}, +"stages": { +"description": "Mechanism for reporting in-progress stages", +"items": { +"$ref": "GoogleCloudFunctionsV2betaStage" +}, +"type": "array" +}, +"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" +}, +"GoogleCloudFunctionsV2betaStage": { +"description": "Each Stage of the deployment process", +"id": "GoogleCloudFunctionsV2betaStage", +"properties": { +"message": { +"description": "Message describing the Stage", +"type": "string" +}, +"name": { +"description": "Name of the Stage. This will be unique for each Stage.", +"enum": [ +"NAME_UNSPECIFIED", +"ARTIFACT_REGISTRY", +"BUILD", +"SERVICE", +"TRIGGER", +"SERVICE_ROLLBACK", +"TRIGGER_ROLLBACK" +], +"enumDescriptions": [ +"Not specified. Invalid name.", +"Artifact Regsitry Stage", +"Build Stage", +"Service Stage", +"Trigger Stage", +"Service Rollback Stage", +"Trigger Rollback Stage" +], +"type": "string" +}, +"resource": { +"description": "Resource of the Stage", +"type": "string" +}, +"resourceUri": { +"description": "Link to the current Stage resource", +"type": "string" +}, +"state": { +"description": "Current state of the Stage", +"enum": [ +"STATE_UNSPECIFIED", +"NOT_STARTED", +"IN_PROGRESS", +"COMPLETE" +], +"enumDescriptions": [ +"Not specified. Invalid state.", +"Stage has not started.", +"Stage is in progress.", +"Stage has completed." +], +"type": "string" +}, +"stateMessages": { +"description": "State messages from the current Stage.", +"items": { +"$ref": "GoogleCloudFunctionsV2betaStateMessage" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudFunctionsV2betaStateMessage": { +"description": "Informational messages about the state of the Cloud Function or Operation.", +"id": "GoogleCloudFunctionsV2betaStateMessage", +"properties": { +"message": { +"description": "The message.", +"type": "string" +}, +"severity": { +"description": "Severity of the state message.", +"enum": [ +"SEVERITY_UNSPECIFIED", +"ERROR", +"WARNING", +"INFO" +], +"enumDescriptions": [ +"Not specified. Invalid severity.", +"ERROR-level severity.", +"WARNING-level severity.", +"INFO-level severity." +], +"type": "string" +}, +"type": { +"description": "One-word CamelCase type of the state message.", +"type": "string" +} +}, +"type": "object" +}, +"ListFunctionsResponse": { +"description": "Response for the `ListFunctions` method.", +"id": "ListFunctionsResponse", +"properties": { +"functions": { +"description": "The functions that match the request.", +"items": { +"$ref": "Function" +}, +"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. The response does not include any functions from these locations.", +"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" +}, +"ListRuntimesResponse": { +"description": "Response for the `ListRuntimes` method.", +"id": "ListRuntimesResponse", +"properties": { +"runtimes": { +"description": "The runtimes that match the request.", +"items": { +"$ref": "Runtime" +}, +"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" +}, +"OnDeployUpdatePolicy": { +"description": "Security patches are only applied when a function is redeployed.", +"id": "OnDeployUpdatePolicy", +"properties": { +"runtimeVersion": { +"description": "Output only. contains the runtime version which was used during latest function deployment.", +"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" +}, +"OperationMetadataV1": { +"description": "Metadata describing an Operation", +"id": "OperationMetadataV1", +"properties": { +"buildId": { +"description": "The Cloud Build ID of the function created or updated by an API call. This field is only populated for Create and Update operations.", +"type": "string" +}, +"buildName": { +"description": "The Cloud Build Name of the function deployment. This field is only populated for Create and Update operations. `projects//locations//builds/`.", +"type": "string" +}, +"request": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "The original request that started the operation.", +"type": "object" +}, +"sourceToken": { +"description": "An identifier for Firebase function sources. Disclaimer: This field is only supported for Firebase function deployments.", +"type": "string" +}, +"target": { +"description": "Target of the operation - for example `projects/project-1/locations/region-1/functions/function-1`", +"type": "string" +}, +"type": { +"description": "Type of operation.", +"enum": [ +"OPERATION_UNSPECIFIED", +"CREATE_FUNCTION", +"UPDATE_FUNCTION", +"DELETE_FUNCTION" +], +"enumDescriptions": [ +"Unknown operation type.", +"Triggered by CreateFunction call", +"Triggered by UpdateFunction call", +"Triggered by DeleteFunction call." +], +"type": "string" +}, +"updateTime": { +"description": "The last update timestamp of the operation.", +"format": "google-datetime", +"type": "string" +}, +"versionId": { +"description": "Version id of the function created or updated by an API call. This field is only populated for Create and Update operations.", +"format": "int64", +"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" +}, +"RedirectFunctionUpgradeTrafficRequest": { +"description": "Request for the `RedirectFunctionUpgradeTraffic` method.", +"id": "RedirectFunctionUpgradeTrafficRequest", +"properties": {}, +"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": "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. eg. helloworld (no leading slash allowed)", +"type": "string" +}, +"projectId": { +"description": "ID of the project that owns the Cloud Source Repository. If omitted, the project ID requesting the build is assumed.", +"type": "string" +}, +"repoName": { +"description": "Name of the Cloud Source Repository.", +"type": "string" +}, +"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" +}, +"RollbackFunctionUpgradeTrafficRequest": { +"description": "Request for the `RollbackFunctionUpgradeTraffic` method.", +"id": "RollbackFunctionUpgradeTrafficRequest", +"properties": {}, +"type": "object" +}, +"Runtime": { +"description": "Describes a runtime and any special information (e.g., deprecation status) related to it.", +"id": "Runtime", +"properties": { +"decommissionDate": { +"$ref": "Date", +"description": "Decommission date for the runtime." +}, +"deprecationDate": { +"$ref": "Date", +"description": "Deprecation date for the runtime." +}, +"displayName": { +"description": "The user facing name, eg 'Go 1.13', 'Node.js 12', etc.", +"type": "string" +}, +"environment": { +"description": "The environment for the runtime.", +"enum": [ +"ENVIRONMENT_UNSPECIFIED", +"GEN_1", +"GEN_2" +], +"enumDescriptions": [ +"Unspecified", +"Gen 1", +"Gen 2" +], +"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" +], +"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." +], +"type": "string" +}, +"warnings": { +"description": "Warning messages, e.g., a deprecation warning.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"SecretEnvVar": { +"description": "Configuration for a secret environment variable. It has the information necessary to fetch the secret value from secret manager and expose it as an environment variable.", +"id": "SecretEnvVar", +"properties": { +"key": { +"description": "Name of the environment variable.", +"type": "string" +}, +"projectId": { +"description": "Project identifier (preferably project number but can also be the project ID) of the project that contains the secret. If not set, it is assumed that the secret is in the same project as the function.", +"type": "string" +}, +"secret": { +"description": "Name of the secret in secret manager (not the full resource name).", +"type": "string" +}, +"version": { +"description": "Version of the secret (version number or the string 'latest'). It is recommended to use a numeric version for secret environment variables as any updates to the secret value is not reflected until new instances start.", +"type": "string" +} +}, +"type": "object" +}, +"SecretVersion": { +"description": "Configuration for a single version.", +"id": "SecretVersion", +"properties": { +"path": { +"description": "Relative path of the file under the mount path where the secret value for this version will be fetched and made available. For example, setting the mount_path as '/etc/secrets' and path as `secret_foo` would mount the secret value file at `/etc/secrets/secret_foo`.", +"type": "string" +}, +"version": { +"description": "Version of the secret (version number or the string 'latest'). It is preferable to use `latest` version with secret volumes as secret value changes are reflected immediately.", +"type": "string" +} +}, +"type": "object" +}, +"SecretVolume": { +"description": "Configuration for a secret volume. It has the information necessary to fetch the secret value from secret manager and make it available as files mounted at the requested paths within the application container.", +"id": "SecretVolume", +"properties": { +"mountPath": { +"description": "The path within the container to mount the secret volume. For example, setting the mount_path as `/etc/secrets` would mount the secret value files under the `/etc/secrets` directory. This directory will also be completely shadowed and unavailable to mount any other secrets. Recommended mount path: /etc/secrets", +"type": "string" +}, +"projectId": { +"description": "Project identifier (preferably project number but can also be the project ID) of the project that contains the secret. If not set, it is assumed that the secret is in the same project as the function.", +"type": "string" +}, +"secret": { +"description": "Name of the secret in secret manager (not the full resource name).", +"type": "string" +}, +"versions": { +"description": "List of secret versions to mount for this secret. If empty, the `latest` version of the secret will be made available in a file named after the secret under the mount point.", +"items": { +"$ref": "SecretVersion" +}, +"type": "array" +} +}, +"type": "object" +}, +"ServiceConfig": { +"description": "Describes the Service being deployed. Currently Supported : Cloud Run (fully managed).", +"id": "ServiceConfig", +"properties": { +"allTrafficOnLatestRevision": { +"description": "Whether 100% of traffic is routed to the latest revision. On CreateFunction and UpdateFunction, when set to true, the revision being deployed will serve 100% of traffic, ignoring any traffic split settings, if any. On GetFunction, true will be returned if the latest revision is serving 100% of traffic.", +"type": "boolean" +}, +"availableCpu": { +"description": "The number of CPUs used in a single container instance. Default value is calculated from available memory. Supports the same values as Cloud Run, see https://cloud.google.com/run/docs/reference/rest/v1/Container#resourcerequirements Example: \"1\" indicates 1 vCPU", +"type": "string" +}, +"availableMemory": { +"description": "The amount of memory available for a function. Defaults to 256M. Supported units are k, M, G, Mi, Gi. If no unit is supplied the value is interpreted as bytes. See https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/api/resource/quantity.go a full description.", +"type": "string" +}, +"binaryAuthorizationPolicy": { +"description": "Optional. The binary authorization policy to be checked when deploying the Cloud Run service.", +"type": "string" +}, +"environmentVariables": { +"additionalProperties": { +"type": "string" +}, +"description": "Environment variables that shall be available during function execution.", +"type": "object" +}, +"ingressSettings": { +"description": "The ingress settings for the function, controlling what traffic can reach it.", +"enum": [ +"INGRESS_SETTINGS_UNSPECIFIED", +"ALLOW_ALL", +"ALLOW_INTERNAL_ONLY", +"ALLOW_INTERNAL_AND_GCLB" +], +"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 GCLB." +], +"type": "string" +}, +"maxInstanceCount": { +"description": "The limit on the maximum number of function instances that may coexist at a given time. In some cases, such as rapid traffic surges, Cloud Functions may, for a short period of time, create more instances than the specified max instances limit. If your function cannot tolerate this temporary behavior, you may want to factor in a safety margin and set a lower max instances value than your function can tolerate. See the [Max Instances](https://cloud.google.com/functions/docs/max-instances) Guide for more details.", +"format": "int32", +"type": "integer" +}, +"maxInstanceRequestConcurrency": { +"description": "Sets the maximum number of concurrent requests that each instance can receive. Defaults to 1.", +"format": "int32", +"type": "integer" +}, +"minInstanceCount": { +"description": "The limit on the minimum number of function instances that may coexist at a given time. Function instances are kept in idle state for a short period after they finished executing the request to reduce cold start time for subsequent requests. Setting a minimum instance count will ensure that the given number of instances are kept running in idle state always. This can help with cold start times when jump in incoming request count occurs after the idle instance would have been stopped in the default case.", +"format": "int32", +"type": "integer" +}, +"revision": { +"description": "Output only. The name of service revision.", +"readOnly": true, +"type": "string" +}, +"secretEnvironmentVariables": { +"description": "Secret environment variables configuration.", +"items": { +"$ref": "SecretEnvVar" +}, +"type": "array" +}, +"secretVolumes": { +"description": "Secret volumes configuration.", +"items": { +"$ref": "SecretVolume" +}, +"type": "array" +}, +"securityLevel": { +"description": "Security level configure whether the function only accepts https. This configuration is only applicable to 1st Gen functions with Http trigger. By default https is optional for 1st Gen functions; 2nd Gen functions are https ONLY.", +"enum": [ +"SECURITY_LEVEL_UNSPECIFIED", +"SECURE_ALWAYS", +"SECURE_OPTIONAL" +], +"enumDescriptions": [ +"Unspecified.", +"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.", +"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." +], +"type": "string" +}, +"service": { +"description": "Output only. Name of the service associated with a Function. The format of this field is `projects/{project}/locations/{region}/services/{service}`", +"readOnly": true, +"type": "string" +}, +"serviceAccountEmail": { +"description": "The email of the service's service account. If empty, defaults to `{project_number}-compute@developer.gserviceaccount.com`.", +"type": "string" +}, +"timeoutSeconds": { +"description": "The function execution timeout. Execution is considered failed and can be terminated if the function is not completed at the end of the timeout period. Defaults to 60 seconds.", +"format": "int32", +"type": "integer" +}, +"uri": { +"description": "Output only. URI of the Service deployed.", +"readOnly": true, +"type": "string" +}, +"vpcConnector": { +"description": "The Serverless VPC Access connector that this cloud function can connect to. The format of this field is `projects/*/locations/*/connectors/*`.", +"type": "string" +}, +"vpcConnectorEgressSettings": { +"description": "The egress settings for the connector, controlling what traffic is diverted through it.", +"enum": [ +"VPC_CONNECTOR_EGRESS_SETTINGS_UNSPECIFIED", +"PRIVATE_RANGES_ONLY", +"ALL_TRAFFIC" +], +"enumDescriptions": [ +"Unspecified.", +"Use the VPC Access Connector only for private IP space from RFC1918.", +"Force the use of VPC Access Connector for all egress traffic from the function." +], +"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" +}, +"SetupFunctionUpgradeConfigRequest": { +"description": "Request for the `SetupFunctionUpgradeConfig` method.", +"id": "SetupFunctionUpgradeConfigRequest", +"properties": {}, +"type": "object" +}, +"Source": { +"description": "The location of the function source code.", +"id": "Source", +"properties": { +"gitUri": { +"description": "If provided, get the source from GitHub repository. This option is valid only for GCF 1st Gen function. Example: https://github.com///blob//", +"type": "string" +}, +"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 Google Cloud Storage." +} +}, +"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": { +"gitUri": { +"description": "A copy of the build's `source.git_uri`, if exists, with any commits resolved.", +"type": "string" +}, +"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." +} +}, +"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 Google Cloud Storage.", +"id": "StorageSource", +"properties": { +"bucket": { +"description": "Google Cloud Storage bucket containing the source (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).", +"type": "string" +}, +"generation": { +"description": "Google Cloud Storage generation for the object. If the generation is omitted, the latest generation will be used.", +"format": "int64", +"type": "string" +}, +"object": { +"description": "Google Cloud Storage object containing the source. This object must be a gzipped archive file (`.tar.gz`) containing source to build.", +"type": "string" +}, +"sourceUploadUrl": { +"description": "When the specified storage bucket is a 1st gen function uploard url bucket, this field should be set as the generated upload url for 1st gen deployment.", +"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" +}, +"UpgradeInfo": { +"description": "Information related to: * A function's eligibility for 1st Gen to 2nd Gen migration and 2nd Gen to CRf detach. * Current state of migration for function undergoing migration/detach.", +"id": "UpgradeInfo", +"properties": { +"buildConfig": { +"$ref": "BuildConfig", +"description": "Describes the Build step of the function that builds a container to prepare for 2nd gen upgrade." +}, +"eventTrigger": { +"$ref": "EventTrigger", +"description": "Describes the Event trigger which has been setup to prepare for 2nd gen upgrade." +}, +"serviceConfig": { +"$ref": "ServiceConfig", +"description": "Describes the Cloud Run service which has been setup to prepare for 2nd gen upgrade." +}, +"upgradeState": { +"description": "UpgradeState of the function", +"enum": [ +"UPGRADE_STATE_UNSPECIFIED", +"ELIGIBLE_FOR_2ND_GEN_UPGRADE", +"UPGRADE_OPERATION_IN_PROGRESS", +"SETUP_FUNCTION_UPGRADE_CONFIG_SUCCESSFUL", +"SETUP_FUNCTION_UPGRADE_CONFIG_ERROR", +"ABORT_FUNCTION_UPGRADE_ERROR", +"REDIRECT_FUNCTION_UPGRADE_TRAFFIC_SUCCESSFUL", +"REDIRECT_FUNCTION_UPGRADE_TRAFFIC_ERROR", +"ROLLBACK_FUNCTION_UPGRADE_TRAFFIC_ERROR", +"COMMIT_FUNCTION_UPGRADE_ERROR", +"DETACH_IN_PROGRESS" +], +"enumDescriptions": [ +"Unspecified state. Most functions are in this upgrade state.", +"Functions in this state are eligible for 1st Gen -> 2nd Gen upgrade.", +"An upgrade related operation is in progress.", +"SetupFunctionUpgradeConfig API was successful and a 2nd Gen function has been created based on 1st Gen function instance.", +"SetupFunctionUpgradeConfig API was un-successful.", +"AbortFunctionUpgrade API was un-successful.", +"RedirectFunctionUpgradeTraffic API was successful and traffic is served by 2nd Gen function stack.", +"RedirectFunctionUpgradeTraffic API was un-successful.", +"RollbackFunctionUpgradeTraffic API was un-successful.", +"CommitFunctionUpgrade API was un-successful.", +"Function is requested to be detached from 2nd Gen to CRf." +], +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Cloud Functions 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/cloudresourcemanager.v1beta1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/cloudresourcemanager.v1beta1.json new file mode 100644 index 0000000000000000000000000000000000000000..690fc9841d0a6c45956ed01093a2fe6b38d86d5a --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/cloudresourcemanager.v1beta1.json @@ -0,0 +1,1279 @@ +{ +"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://cloudresourcemanager.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Cloud Resource Manager", +"description": "Creates, reads, and updates metadata for Google Cloud Platform resource containers.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/resource-manager", +"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": "cloudresourcemanager:v1beta1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://cloudresourcemanager.mtls.googleapis.com/", +"name": "cloudresourcemanager", +"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": { +"methods": { +"get": { +"description": "Fetches an Organization resource identified by the specified resource name.", +"flatPath": "v1beta1/organizations/{organizationsId}", +"httpMethod": "GET", +"id": "cloudresourcemanager.organizations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The resource name of the Organization to fetch. This is the organization's relative path in the API, formatted as \"organizations/[organizationId]\". For example, \"organizations/1234\".", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +}, +"organizationId": { +"deprecated": true, +"description": "The id of the Organization resource to fetch. This field is deprecated and will be removed in v1. Use name instead.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Organization" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for an Organization resource. May be empty if no such policy or resource exists. The `resource` field should be the organization's resource name, e.g. \"organizations/123\".", +"flatPath": "v1beta1/organizations/{organizationsId}:getIamPolicy", +"httpMethod": "POST", +"id": "cloudresourcemanager.organizations.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": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:getIamPolicy", +"request": { +"$ref": "GetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"list": { +"description": "Lists Organization resources that are visible to the user and satisfy the specified filter. This method returns Organizations in an unspecified order. New Organizations do not necessarily appear at the end of the list.", +"flatPath": "v1beta1/organizations", +"httpMethod": "GET", +"id": "cloudresourcemanager.organizations.list", +"parameterOrder": [], +"parameters": { +"filter": { +"description": "An optional query string used to filter the Organizations to return in the response. Filter rules are case-insensitive. Organizations may be filtered by `owner.directoryCustomerId` or by `domain`, where the domain is a G Suite domain, for example: * Filter `owner.directorycustomerid:123456789` returns Organization resources with `owner.directory_customer_id` equal to `123456789`. * Filter `domain:google.com` returns Organization resources corresponding to the domain `google.com`. This field is optional.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of Organizations to return in the response. This field is optional.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A pagination token returned from a previous call to `ListOrganizations` that indicates from where listing should continue. This field is optional.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/organizations", +"response": { +"$ref": "ListOrganizationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on an Organization resource. Replaces any existing policy. The `resource` field should be the organization's resource name, e.g. \"organizations/123\".", +"flatPath": "v1beta1/organizations/{organizationsId}:setIamPolicy", +"httpMethod": "POST", +"id": "cloudresourcemanager.organizations.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/[^/]+$", +"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 Organization. The `resource` field should be the organization's resource name, e.g. \"organizations/123\".", +"flatPath": "v1beta1/organizations/{organizationsId}:testIamPermissions", +"httpMethod": "POST", +"id": "cloudresourcemanager.organizations.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/[^/]+$", +"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" +] +}, +"update": { +"deprecated": true, +"description": "Updates an Organization resource identified by the specified resource name.", +"flatPath": "v1beta1/organizations/{organizationsId}", +"httpMethod": "PUT", +"id": "cloudresourcemanager.organizations.update", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. The resource name of the organization. This is the organization's relative path in the API. Its format is \"organizations/[organization_id]\". For example, \"organizations/1234\".", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "Organization" +}, +"response": { +"$ref": "Organization" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"projects": { +"methods": { +"create": { +"description": "Creates a Project resource. Initially, the Project resource is owned by its creator exclusively. The creator can later grant permission to others to read or update the Project. Several APIs are activated automatically for the Project, including Google Cloud Storage. The parent is identified by a specified ResourceId, which must include both an ID and a type, such as project, folder, or organization. This method does not associate the new project with a billing account. You can set or update the billing account associated with a project using the [`projects.updateBillingInfo`] (/billing/reference/rest/v1/projects/updateBillingInfo) method.", +"flatPath": "v1beta1/projects", +"httpMethod": "POST", +"id": "cloudresourcemanager.projects.create", +"parameterOrder": [], +"parameters": { +"useLegacyStack": { +"description": "A now unused experiment opt-out option.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1beta1/projects", +"request": { +"$ref": "Project" +}, +"response": { +"$ref": "Project" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Marks the Project identified by the specified `project_id` (for example, `my-project-123`) for deletion. This method will only affect the Project if it has a lifecycle state of ACTIVE. This method changes the Project's lifecycle state from ACTIVE to DELETE_REQUESTED. The deletion starts at an unspecified time, at which point the project is no longer accessible. Until the deletion completes, you can check the lifecycle state checked by retrieving the Project with GetProject, and the Project remains visible to ListProjects. However, you cannot update the project. After the deletion completes, the Project is not retrievable by the GetProject and ListProjects methods. The caller must have delete permissions for this Project.", +"flatPath": "v1beta1/projects/{projectId}", +"httpMethod": "DELETE", +"id": "cloudresourcemanager.projects.delete", +"parameterOrder": [ +"projectId" +], +"parameters": { +"projectId": { +"description": "The Project ID (for example, `foo-bar-123`).", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/projects/{projectId}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Retrieves the Project identified by the specified `project_id` (for example, `my-project-123`). The caller must have read permissions for this Project.", +"flatPath": "v1beta1/projects/{projectId}", +"httpMethod": "GET", +"id": "cloudresourcemanager.projects.get", +"parameterOrder": [ +"projectId" +], +"parameters": { +"projectId": { +"description": "Required. The Project ID (for example, `my-project-123`).", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/projects/{projectId}", +"response": { +"$ref": "Project" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"getAncestry": { +"description": "Gets a list of ancestors in the resource hierarchy for the Project identified by the specified `project_id` (for example, `my-project-123`). The caller must have read permissions for this Project.", +"flatPath": "v1beta1/projects/{projectId}:getAncestry", +"httpMethod": "POST", +"id": "cloudresourcemanager.projects.getAncestry", +"parameterOrder": [ +"projectId" +], +"parameters": { +"projectId": { +"description": "Required. The Project ID (for example, `my-project-123`).", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/projects/{projectId}:getAncestry", +"request": { +"$ref": "GetAncestryRequest" +}, +"response": { +"$ref": "GetAncestryResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"getIamPolicy": { +"description": "Returns the IAM access control policy for the specified Project. Permission is denied if the policy or the resource does not exist. For additional information about resource structure and identification, see [Resource Names](/apis/design/resource_names).", +"flatPath": "v1beta1/projects/{resource}:getIamPolicy", +"httpMethod": "POST", +"id": "cloudresourcemanager.projects.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", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/projects/{resource}:getIamPolicy", +"request": { +"$ref": "GetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"list": { +"description": "Lists Projects that the caller has the `resourcemanager.projects.get` permission on and satisfy the specified filter. This method returns Projects in an unspecified order. This method is eventually consistent with project mutations; this means that a newly created project may not appear in the results or recent updates to an existing project may not be reflected in the results. To retrieve the latest state of a project, use the GetProject method. NOTE: If the request filter contains a `parent.type` and `parent.id` and the caller has the `resourcemanager.projects.list` permission on the parent, the results will be drawn from an alternate index which provides more consistent results. In future versions of this API, this List method will be split into List and Search to properly capture the behavioral difference.", +"flatPath": "v1beta1/projects", +"httpMethod": "GET", +"id": "cloudresourcemanager.projects.list", +"parameterOrder": [], +"parameters": { +"filter": { +"description": "An expression for filtering the results of the request. Filter rules are case insensitive. If multiple fields are included in a filter query, the query will return results that match any of the fields. Some eligible fields for filtering are: + `name` + `id` + `labels.` (where *key* is the name of a label) + `parent.type` + `parent.id` Some examples of using labels as filters: | Filter | Description | |------------------|-----------------------------------------------------| | name:how* | The project's name starts with \"how\". | | name:Howl | The project's name is `Howl` or `howl`. | | name:HOWL | Equivalent to above. | | NAME:howl | Equivalent to above. | | labels.color:* | The project has the label `color`. | | labels.color:red | The project's label `color` has the value `red`. | | labels.color:red labels.size:big | The project's label `color` has the value `red` or its label `size` has the value `big`. | If no filter is specified, the call will return projects for which the user has the `resourcemanager.projects.get` permission. NOTE: To perform a by-parent query (eg., what projects are directly in a Folder), the caller must have the `resourcemanager.projects.list` permission on the parent and the filter must contain both a `parent.type` and a `parent.id` restriction (example: \"parent.type:folder parent.id:123\"). In this case an alternate search index is used which provides more consistent results. Optional.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of Projects to return in the response. The server can return fewer Projects than requested. If unspecified, server picks an appropriate default. Optional.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A pagination token returned from a previous call to ListProjects that indicates from where listing should continue. Optional.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/projects", +"response": { +"$ref": "ListProjectsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only" +] +}, +"setIamPolicy": { +"description": "Sets the IAM access control policy for the specified Project. CAUTION: This method will replace the existing policy, and cannot be used to append additional IAM settings. NOTE: Removing service accounts from policies or changing their roles can render services completely inoperable. It is important to understand how the service account is being used before removing or updating its roles. The following constraints apply when using `setIamPolicy()`: + Project does not support `allUsers` and `allAuthenticatedUsers` as `members` in a `Binding` of a `Policy`. + The owner role can be granted to a `user`, `serviceAccount`, or a group that is part of an organization. For example, group@myownpersonaldomain.com could be added as an owner to a project in the myownpersonaldomain.com organization, but not the examplepetstore.com organization. + Service accounts can be made owners of a project directly without any restrictions. However, to be added as an owner, a user must be invited via Cloud Platform console and must accept the invitation. + A user cannot be granted the owner role using `setIamPolicy()`. The user must be granted the owner role using the Cloud Platform Console and must explicitly accept the invitation. + Invitations to grant the owner role cannot be sent using `setIamPolicy()`; they must be sent only using the Cloud Platform Console. + Membership changes that leave the project without any owners that have accepted the Terms of Service (ToS) will be rejected. + If the project is not part of an organization, there must be at least one owner who has accepted the Terms of Service (ToS) agreement in the policy. Calling `setIamPolicy()` to remove the last ToS-accepted owner from the policy will fail. This restriction also applies to legacy projects that no longer have owners who have accepted the ToS. Edits to IAM policies will be rejected until the lack of a ToS-accepting owner is rectified. Authorization requires the Google IAM permission `resourcemanager.projects.setIamPolicy` on the project", +"flatPath": "v1beta1/projects/{resource}:setIamPolicy", +"httpMethod": "POST", +"id": "cloudresourcemanager.projects.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", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/projects/{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.", +"flatPath": "v1beta1/projects/{resource}:testIamPermissions", +"httpMethod": "POST", +"id": "cloudresourcemanager.projects.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", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/projects/{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" +] +}, +"undelete": { +"description": "Restores the Project identified by the specified `project_id` (for example, `my-project-123`). You can only use this method for a Project that has a lifecycle state of DELETE_REQUESTED. After deletion starts, the Project cannot be restored. The caller must have undelete permissions for this Project.", +"flatPath": "v1beta1/projects/{projectId}:undelete", +"httpMethod": "POST", +"id": "cloudresourcemanager.projects.undelete", +"parameterOrder": [ +"projectId" +], +"parameters": { +"projectId": { +"description": "Required. The project ID (for example, `foo-bar-123`).", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/projects/{projectId}:undelete", +"request": { +"$ref": "UndeleteProjectRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"update": { +"description": "Updates the attributes of the Project identified by the specified `project_id` (for example, `my-project-123`). The caller must have modify permissions for this Project.", +"flatPath": "v1beta1/projects/{projectId}", +"httpMethod": "PUT", +"id": "cloudresourcemanager.projects.update", +"parameterOrder": [ +"projectId" +], +"parameters": { +"projectId": { +"description": "The project ID (for example, `my-project-123`).", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/projects/{projectId}", +"request": { +"$ref": "Project" +}, +"response": { +"$ref": "Project" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +}, +"revision": "20240707", +"rootUrl": "https://cloudresourcemanager.googleapis.com/", +"schemas": { +"Ancestor": { +"description": "Identifying information for a single ancestor of a project.", +"id": "Ancestor", +"properties": { +"resourceId": { +"$ref": "ResourceId", +"description": "Resource id of the ancestor." +} +}, +"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" +}, +"CloudresourcemanagerGoogleCloudResourcemanagerV2alpha1FolderOperation": { +"description": "Metadata describing a long running folder operation", +"id": "CloudresourcemanagerGoogleCloudResourcemanagerV2alpha1FolderOperation", +"properties": { +"destinationParent": { +"description": "The resource name of the folder or organization we are either creating the folder under or moving the folder to.", +"type": "string" +}, +"displayName": { +"description": "The display name of the folder.", +"type": "string" +}, +"operationType": { +"description": "The type of this operation.", +"enum": [ +"OPERATION_TYPE_UNSPECIFIED", +"CREATE", +"MOVE" +], +"enumDescriptions": [ +"Operation type not specified.", +"A create folder operation.", +"A move folder operation." +], +"type": "string" +}, +"sourceParent": { +"description": "The resource name of the folder's parent. Only applicable when the operation_type is MOVE.", +"type": "string" +} +}, +"type": "object" +}, +"CloudresourcemanagerGoogleCloudResourcemanagerV2beta1FolderOperation": { +"description": "Metadata describing a long running folder operation", +"id": "CloudresourcemanagerGoogleCloudResourcemanagerV2beta1FolderOperation", +"properties": { +"destinationParent": { +"description": "The resource name of the folder or organization we are either creating the folder under or moving the folder to.", +"type": "string" +}, +"displayName": { +"description": "The display name of the folder.", +"type": "string" +}, +"operationType": { +"description": "The type of this operation.", +"enum": [ +"OPERATION_TYPE_UNSPECIFIED", +"CREATE", +"MOVE" +], +"enumDescriptions": [ +"Operation type not specified.", +"A create folder operation.", +"A move folder operation." +], +"type": "string" +}, +"sourceParent": { +"description": "The resource name of the folder's parent. Only applicable when the operation_type is MOVE.", +"type": "string" +} +}, +"type": "object" +}, +"CreateFolderMetadata": { +"description": "Metadata pertaining to the Folder creation process.", +"id": "CreateFolderMetadata", +"properties": { +"displayName": { +"description": "The display name of the folder.", +"type": "string" +}, +"parent": { +"description": "The resource name of the folder or organization we are creating the folder under.", +"type": "string" +} +}, +"type": "object" +}, +"CreateProjectMetadata": { +"description": "A status object which is used as the `metadata` field for the Operation returned by CreateProject. It provides insight for when significant phases of Project creation have completed.", +"id": "CreateProjectMetadata", +"properties": { +"createTime": { +"description": "Creation time of the project creation workflow.", +"format": "google-datetime", +"type": "string" +}, +"gettable": { +"description": "True if the project can be retrieved using `GetProject`. No other operations on the project are guaranteed to work until the project creation is complete.", +"type": "boolean" +}, +"ready": { +"description": "True if the project creation process is complete.", +"type": "boolean" +} +}, +"type": "object" +}, +"CreateTagBindingMetadata": { +"description": "Runtime operation information for creating a TagValue.", +"id": "CreateTagBindingMetadata", +"properties": {}, +"type": "object" +}, +"CreateTagKeyMetadata": { +"description": "Runtime operation information for creating a TagKey.", +"id": "CreateTagKeyMetadata", +"properties": {}, +"type": "object" +}, +"CreateTagValueMetadata": { +"description": "Runtime operation information for creating a TagValue.", +"id": "CreateTagValueMetadata", +"properties": {}, +"type": "object" +}, +"DeleteFolderMetadata": { +"description": "A status object which is used as the `metadata` field for the `Operation` returned by `DeleteFolder`.", +"id": "DeleteFolderMetadata", +"properties": {}, +"type": "object" +}, +"DeleteOrganizationMetadata": { +"description": "A status object which is used as the `metadata` field for the operation returned by DeleteOrganization.", +"id": "DeleteOrganizationMetadata", +"properties": {}, +"type": "object" +}, +"DeleteProjectMetadata": { +"description": "A status object which is used as the `metadata` field for the Operation returned by `DeleteProject`.", +"id": "DeleteProjectMetadata", +"properties": {}, +"type": "object" +}, +"DeleteTagBindingMetadata": { +"description": "Runtime operation information for deleting a TagBinding.", +"id": "DeleteTagBindingMetadata", +"properties": {}, +"type": "object" +}, +"DeleteTagKeyMetadata": { +"description": "Runtime operation information for deleting a TagKey.", +"id": "DeleteTagKeyMetadata", +"properties": {}, +"type": "object" +}, +"DeleteTagValueMetadata": { +"description": "Runtime operation information for deleting a TagValue.", +"id": "DeleteTagValueMetadata", +"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" +}, +"FolderOperation": { +"description": "Metadata describing a long running folder operation", +"id": "FolderOperation", +"properties": { +"destinationParent": { +"description": "The resource name of the folder or organization we are either creating the folder under or moving the folder to.", +"type": "string" +}, +"displayName": { +"description": "The display name of the folder.", +"type": "string" +}, +"operationType": { +"description": "The type of this operation.", +"enum": [ +"OPERATION_TYPE_UNSPECIFIED", +"CREATE", +"MOVE" +], +"enumDescriptions": [ +"Operation type not specified.", +"A create folder operation.", +"A move folder operation." +], +"type": "string" +}, +"sourceParent": { +"description": "The resource name of the folder's parent. Only applicable when the operation_type is MOVE.", +"type": "string" +} +}, +"type": "object" +}, +"FolderOperationError": { +"description": "A classification of the Folder Operation error.", +"id": "FolderOperationError", +"properties": { +"errorMessageId": { +"description": "The type of operation error experienced.", +"enum": [ +"ERROR_TYPE_UNSPECIFIED", +"ACTIVE_FOLDER_HEIGHT_VIOLATION", +"MAX_CHILD_FOLDERS_VIOLATION", +"FOLDER_NAME_UNIQUENESS_VIOLATION", +"RESOURCE_DELETED_VIOLATION", +"PARENT_DELETED_VIOLATION", +"CYCLE_INTRODUCED_VIOLATION", +"FOLDER_BEING_MOVED_VIOLATION", +"FOLDER_TO_DELETE_NON_EMPTY_VIOLATION", +"DELETED_FOLDER_HEIGHT_VIOLATION" +], +"enumDescriptions": [ +"The error type was unrecognized or unspecified.", +"The attempted action would violate the max folder depth constraint.", +"The attempted action would violate the max child folders constraint.", +"The attempted action would violate the locally-unique folder display_name constraint.", +"The resource being moved has been deleted.", +"The resource a folder was being added to has been deleted.", +"The attempted action would introduce cycle in resource path.", +"The attempted action would move a folder that is already being moved.", +"The folder the caller is trying to delete contains active resources.", +"The attempted action would violate the max deleted folder depth constraint." +], +"type": "string" +} +}, +"type": "object" +}, +"GetAncestryRequest": { +"description": "The request sent to the [google.cloudresourcemanager.projects.v1beta1.DeveloperProjects.GetAncestry] method.", +"id": "GetAncestryRequest", +"properties": {}, +"type": "object" +}, +"GetAncestryResponse": { +"description": "Response from the projects.getAncestry method.", +"id": "GetAncestryResponse", +"properties": { +"ancestor": { +"description": "Ancestors are ordered from bottom to top of the resource hierarchy. The first ancestor is the project itself, followed by the project's parent, etc.", +"items": { +"$ref": "Ancestor" +}, +"type": "array" +} +}, +"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" +}, +"ListOrganizationsResponse": { +"description": "The response returned from the `ListOrganizations` method.", +"id": "ListOrganizationsResponse", +"properties": { +"nextPageToken": { +"description": "A pagination token to be used to retrieve the next page of results. If the result is too large to fit within the page size specified in the request, this field will be set with a token that can be used to fetch the next page of results. If this field is empty, it indicates that this response contains the last page of results.", +"type": "string" +}, +"organizations": { +"description": "The list of Organizations that matched the list query, possibly paginated.", +"items": { +"$ref": "Organization" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListProjectsResponse": { +"description": "A page of the response received from the ListProjects method. A paginated response where more pages are available has `next_page_token` set. This token can be used in a subsequent request to retrieve the next request page.", +"id": "ListProjectsResponse", +"properties": { +"nextPageToken": { +"description": "Pagination token. If the result set is too large to fit in a single response, this token is returned. It encodes the position of the current result cursor. Feeding this value into a new list request with the `page_token` parameter gives the next page of the results. When `next_page_token` is not filled in, there is no next page and the list returned is the last page in the result set. Pagination tokens have a limited lifetime.", +"type": "string" +}, +"projects": { +"description": "The list of Projects that matched the list filter. This list can be paginated.", +"items": { +"$ref": "Project" +}, +"type": "array" +} +}, +"type": "object" +}, +"MoveFolderMetadata": { +"description": "Metadata pertaining to the folder move process.", +"id": "MoveFolderMetadata", +"properties": { +"destinationParent": { +"description": "The resource name of the folder or organization to move the folder to.", +"type": "string" +}, +"displayName": { +"description": "The display name of the folder.", +"type": "string" +}, +"sourceParent": { +"description": "The resource name of the folder's parent.", +"type": "string" +} +}, +"type": "object" +}, +"MoveProjectMetadata": { +"description": "A status object which is used as the `metadata` field for the Operation returned by MoveProject.", +"id": "MoveProjectMetadata", +"properties": {}, +"type": "object" +}, +"Organization": { +"description": "The root node in the resource hierarchy to which a particular entity's (e.g., company) resources belong.", +"id": "Organization", +"properties": { +"creationTime": { +"description": "Timestamp when the Organization was created. Assigned by the server.", +"format": "google-datetime", +"type": "string" +}, +"displayName": { +"description": "A human-readable string that refers to the Organization in the Google Cloud console. This string is set by the server and cannot be changed. The string will be set to the primary domain (for example, \"google.com\") of the G Suite customer that owns the organization.", +"type": "string" +}, +"lifecycleState": { +"description": "The organization's current lifecycle state. Assigned by the server.", +"enum": [ +"LIFECYCLE_STATE_UNSPECIFIED", +"ACTIVE", +"DELETE_REQUESTED" +], +"enumDescriptions": [ +"Unspecified state. This is only useful for distinguishing unset values.", +"The normal and active state.", +"The organization has been marked for deletion by the user." +], +"type": "string" +}, +"name": { +"description": "Output only. The resource name of the organization. This is the organization's relative path in the API. Its format is \"organizations/[organization_id]\". For example, \"organizations/1234\".", +"type": "string" +}, +"organizationId": { +"deprecated": true, +"description": "An immutable id for the Organization that is assigned on creation. This should be omitted when creating a new Organization. This field is read-only.", +"type": "string" +}, +"owner": { +"$ref": "OrganizationOwner", +"description": "The owner of this Organization. The owner should be specified on creation. Once set, it cannot be changed. This field is required." +} +}, +"type": "object" +}, +"OrganizationOwner": { +"description": "The entity that owns an Organization. The lifetime of the Organization and all of its descendants are bound to the `OrganizationOwner`. If the `OrganizationOwner` is deleted, the Organization and all its descendants will be deleted.", +"id": "OrganizationOwner", +"properties": { +"directoryCustomerId": { +"description": "The G Suite customer id used in the Directory API.", +"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" +}, +"Project": { +"description": "A Project is a high-level Google Cloud Platform entity. It is a container for ACLs, APIs, App Engine Apps, VMs, and other Google Cloud Platform resources.", +"id": "Project", +"properties": { +"createTime": { +"description": "Creation time. Read-only.", +"format": "google-datetime", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "The labels associated with this Project. Label keys must be between 1 and 63 characters long and must conform to the following regular expression: a-z{0,62}. Label values must be between 0 and 63 characters long and must conform to the regular expression [a-z0-9_-]{0,63}. A label value can be empty. No more than 256 labels can be associated with a given resource. Clients should store labels in a representation such as JSON that does not depend on specific characters being disallowed. Example: `\"environment\" : \"dev\"` Read-write.", +"type": "object" +}, +"lifecycleState": { +"description": "The Project lifecycle state. Read-only.", +"enum": [ +"LIFECYCLE_STATE_UNSPECIFIED", +"ACTIVE", +"DELETE_REQUESTED", +"DELETE_IN_PROGRESS" +], +"enumDescriptions": [ +"Unspecified state. This is only used/useful for distinguishing unset values.", +"The normal and active state.", +"The project has been marked for deletion by the user (by invoking DeleteProject) or by the system (Google Cloud Platform). This can generally be reversed by invoking UndeleteProject.", +"This lifecycle state is no longer used and is not returned by the API." +], +"type": "string" +}, +"name": { +"description": "The optional user-assigned display name of the Project. When present it must be between 4 to 30 characters. Allowed characters are: lowercase and uppercase letters, numbers, hyphen, single-quote, double-quote, space, and exclamation point. Example: `My Project` Read-write.", +"type": "string" +}, +"parent": { +"$ref": "ResourceId", +"description": "An optional reference to a parent Resource. Supported parent types include \"organization\" and \"folder\". Once set, the parent cannot be cleared. The `parent` can be set on creation or using the `UpdateProject` method; the end user must have the `resourcemanager.projects.create` permission on the parent. Read-write." +}, +"projectId": { +"description": "The unique, user-assigned ID of the Project. It must be 6 to 30 lowercase letters, digits, or hyphens. It must start with a letter. Trailing hyphens are prohibited. Example: `tokyo-rain-123` Read-only after creation.", +"type": "string" +}, +"projectNumber": { +"description": "The number uniquely identifying the project. Example: `415104041262` Read-only.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"ProjectCreationStatus": { +"description": "A status object which is used as the `metadata` field for the Operation returned by CreateProject. It provides insight for when significant phases of Project creation have completed.", +"id": "ProjectCreationStatus", +"properties": { +"createTime": { +"description": "Creation time of the project creation workflow.", +"format": "google-datetime", +"type": "string" +}, +"gettable": { +"description": "True if the project can be retrieved using GetProject. No other operations on the project are guaranteed to work until the project creation is complete.", +"type": "boolean" +}, +"ready": { +"description": "True if the project creation process is complete.", +"type": "boolean" +} +}, +"type": "object" +}, +"ResourceId": { +"description": "A container to reference an id for any resource type. A `resource` in Google Cloud Platform is a generic term for something you (a developer) may want to interact with through one of our API's. Some examples are an App Engine app, a Compute Engine instance, a Cloud SQL database, and so on.", +"id": "ResourceId", +"properties": { +"id": { +"description": "Required field for the type-specific id. This should correspond to the id used in the type-specific API's.", +"type": "string" +}, +"type": { +"description": "Required field representing the resource type this id is for. At present, the valid types are \"project\", \"folder\", and \"organization\".", +"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" +}, +"UndeleteFolderMetadata": { +"description": "A status object which is used as the `metadata` field for the `Operation` returned by `UndeleteFolder`.", +"id": "UndeleteFolderMetadata", +"properties": {}, +"type": "object" +}, +"UndeleteOrganizationMetadata": { +"description": "A status object which is used as the `metadata` field for the Operation returned by UndeleteOrganization.", +"id": "UndeleteOrganizationMetadata", +"properties": {}, +"type": "object" +}, +"UndeleteProjectMetadata": { +"description": "A status object which is used as the `metadata` field for the Operation returned by `UndeleteProject`.", +"id": "UndeleteProjectMetadata", +"properties": {}, +"type": "object" +}, +"UndeleteProjectRequest": { +"description": "The request sent to the UndeleteProject method.", +"id": "UndeleteProjectRequest", +"properties": {}, +"type": "object" +}, +"UpdateFolderMetadata": { +"description": "A status object which is used as the `metadata` field for the Operation returned by UpdateFolder.", +"id": "UpdateFolderMetadata", +"properties": {}, +"type": "object" +}, +"UpdateProjectMetadata": { +"description": "A status object which is used as the `metadata` field for the Operation returned by UpdateProject.", +"id": "UpdateProjectMetadata", +"properties": {}, +"type": "object" +}, +"UpdateTagKeyMetadata": { +"description": "Runtime operation information for updating a TagKey.", +"id": "UpdateTagKeyMetadata", +"properties": {}, +"type": "object" +}, +"UpdateTagValueMetadata": { +"description": "Runtime operation information for updating a TagValue.", +"id": "UpdateTagValueMetadata", +"properties": {}, +"type": "object" +} +}, +"servicePath": "", +"title": "Cloud Resource Manager API", +"version": "v1beta1" +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/cloudscheduler.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/cloudscheduler.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..dcf1993ae3e1265009e6d45657be43712fb64d62 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/cloudscheduler.v1.json @@ -0,0 +1,1096 @@ +{ +"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://cloudscheduler.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Cloud Scheduler", +"description": "Creates and manages jobs run on a regular recurring schedule.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/scheduler/", +"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": "cloudscheduler:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://cloudscheduler.mtls.googleapis.com/", +"name": "cloudscheduler", +"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": "cloudscheduler.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" +} +}, +"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": "cloudscheduler.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" +} +}, +"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": "cloudscheduler.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" +} +}, +"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": "cloudscheduler.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" +} +} +} +}, +"projects": { +"resources": { +"locations": { +"methods": { +"get": { +"description": "Gets information about a location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}", +"httpMethod": "GET", +"id": "cloudscheduler.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": "cloudscheduler.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": { +"jobs": { +"methods": { +"create": { +"description": "Creates a job.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/jobs", +"httpMethod": "POST", +"id": "cloudscheduler.projects.locations.jobs.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The location name. For example: `projects/PROJECT_ID/locations/LOCATION_ID`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/jobs", +"request": { +"$ref": "Job" +}, +"response": { +"$ref": "Job" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a job.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/jobs/{jobsId}", +"httpMethod": "DELETE", +"id": "cloudscheduler.projects.locations.jobs.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The job name. For example: `projects/PROJECT_ID/locations/LOCATION_ID/jobs/JOB_ID`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/jobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a job.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/jobs/{jobsId}", +"httpMethod": "GET", +"id": "cloudscheduler.projects.locations.jobs.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The job name. For example: `projects/PROJECT_ID/locations/LOCATION_ID/jobs/JOB_ID`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/jobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Job" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists jobs.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/jobs", +"httpMethod": "GET", +"id": "cloudscheduler.projects.locations.jobs.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Requested page size. The maximum page size is 500. If unspecified, the page size will be the maximum. Fewer jobs than requested might be returned, even if more jobs exist; use next_page_token to determine if more jobs exist.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results the server will 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 ListJobs.", +"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" +} +}, +"path": "v1/{+parent}/jobs", +"response": { +"$ref": "ListJobsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a job. If successful, the updated Job is returned. If the job does not exist, `NOT_FOUND` is returned. If UpdateJob does not successfully return, it is possible for the job to be in an Job.State.UPDATE_FAILED state. A job in this state may not be executed. If this happens, retry the UpdateJob request until a successful response is received.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/jobs/{jobsId}", +"httpMethod": "PATCH", +"id": "cloudscheduler.projects.locations.jobs.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Optionally caller-specified in CreateJob, after which it becomes output only. The job name. For example: `projects/PROJECT_ID/locations/LOCATION_ID/jobs/JOB_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 job's location. The list of available locations can be obtained by calling ListLocations. For more information, see https://cloud.google.com/about/locations/. * `JOB_ID` can contain only letters ([A-Za-z]), numbers ([0-9]), hyphens (-), or underscores (_). The maximum length is 500 characters.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/jobs/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "A mask used to specify which fields of the job are being updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "Job" +}, +"response": { +"$ref": "Job" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"pause": { +"description": "Pauses a job. If a job is paused then the system will stop executing the job until it is re-enabled via ResumeJob. The state of the job is stored in state; if paused it will be set to Job.State.PAUSED. A job must be in Job.State.ENABLED to be paused.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/jobs/{jobsId}:pause", +"httpMethod": "POST", +"id": "cloudscheduler.projects.locations.jobs.pause", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The job name. For example: `projects/PROJECT_ID/locations/LOCATION_ID/jobs/JOB_ID`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/jobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:pause", +"request": { +"$ref": "PauseJobRequest" +}, +"response": { +"$ref": "Job" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"resume": { +"description": "Resume a job. This method reenables a job after it has been Job.State.PAUSED. The state of a job is stored in Job.state; after calling this method it will be set to Job.State.ENABLED. A job must be in Job.State.PAUSED to be resumed.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/jobs/{jobsId}:resume", +"httpMethod": "POST", +"id": "cloudscheduler.projects.locations.jobs.resume", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The job name. For example: `projects/PROJECT_ID/locations/LOCATION_ID/jobs/JOB_ID`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/jobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:resume", +"request": { +"$ref": "ResumeJobRequest" +}, +"response": { +"$ref": "Job" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"run": { +"description": "Forces a job to run now. When this method is called, Cloud Scheduler will dispatch the job, even if the job is already running.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/jobs/{jobsId}:run", +"httpMethod": "POST", +"id": "cloudscheduler.projects.locations.jobs.run", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The job name. For example: `projects/PROJECT_ID/locations/LOCATION_ID/jobs/JOB_ID`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/jobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:run", +"request": { +"$ref": "RunJobRequest" +}, +"response": { +"$ref": "Job" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +}, +"revision": "20241203", +"rootUrl": "https://cloudscheduler.googleapis.com/", +"schemas": { +"AppEngineHttpTarget": { +"description": "App Engine target. The job will be pushed to a job handler by means of an HTTP request via an http_method such as HTTP POST, HTTP GET, etc. The job is acknowledged by means of an HTTP response code in the range [200 - 299]. Error 503 is considered an App Engine system error instead of an application error. Requests returning error 503 will be retried regardless of retry configuration and not counted against retry counts. Any other response code, or a failure to receive a response before the deadline, constitutes a failed attempt.", +"id": "AppEngineHttpTarget", +"properties": { +"appEngineRouting": { +"$ref": "AppEngineRouting", +"description": "App Engine Routing setting for the job." +}, +"body": { +"description": "Body. HTTP request body. A request body is allowed only if the HTTP method is POST or PUT. It will result in invalid argument error to set a body on a job 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 the job is created. Cloud Scheduler 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 Scheduler will append `\"AppEngine-Google; (+http://code.google.com/appengine)\"` to the modified `User-Agent`. * `X-CloudScheduler`: This header will be set to true. * `X-CloudScheduler-JobName`: This header will contain the job name. * `X-CloudScheduler-ScheduleTime`: For Cloud Scheduler jobs specified in the unix-cron format, this header will contain the job schedule as an offset of UTC parsed according to RFC3339. If the job has a body and the following headers are not set by the user, Cloud Scheduler sets default values: * `Content-Type`: This will be set to `\"application/octet-stream\"`. You can override this default by explicitly setting `Content-Type` to a particular media type when creating the job. For example, you can set `Content-Type` to `\"application/json\"`. The headers below are output only. They cannot be set or overridden: * `Content-Length`: This is computed by Cloud Scheduler. * `X-Google-*`: For Google internal use only. * `X-AppEngine-*`: For Google internal use only. In addition, some App Engine headers, which contain job-specific information, are also be sent to the job handler.", +"type": "object" +}, +"httpMethod": { +"description": "The HTTP method to use for the request. PATCH and OPTIONS are not permitted.", +"enum": [ +"HTTP_METHOD_UNSPECIFIED", +"POST", +"GET", +"HEAD", +"PUT", +"DELETE", +"PATCH", +"OPTIONS" +], +"enumDescriptions": [ +"HTTP method unspecified. Defaults to POST.", +"HTTP POST", +"HTTP GET", +"HTTP HEAD", +"HTTP PUT", +"HTTP DELETE", +"HTTP PATCH", +"HTTP OPTIONS" +], +"type": "string" +}, +"relativeUri": { +"description": "The relative URI. The relative URL must begin with \"/\" and must be a valid HTTP relative URL. It can contain a path, query string arguments, and `#` fragments. 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" +}, +"AppEngineRouting": { +"description": "App Engine Routing. 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 job is sent to. For more information about how App Engine requests are routed, see [here](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 job's project ID. * `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 job will be sent to the service which is the default service when the job is attempted. If version is empty, then the job will be sent to the version which is the default version when the job is attempted. If instance is empty, then the job will be sent to an instance which is available when the job is attempted. If service, version, or instance is invalid, then the job will be sent to the default version of the default service when the job is attempted.", +"type": "string" +}, +"instance": { +"description": "App instance. By default, the job is sent to an instance which is available when the job 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?#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 job is sent to the service which is the default service when the job is attempted.", +"type": "string" +}, +"version": { +"description": "App version. By default, the job is sent to the version which is the default version when the job is attempted.", +"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" +}, +"HttpTarget": { +"description": "Http target. The job will be pushed to the job handler by means of an HTTP request via an http_method such as HTTP POST, HTTP GET, etc. The job is acknowledged by means of an HTTP response code in the range [200 - 299]. A failure to receive a response constitutes a failed execution. For a redirected request, the response returned by the redirected request is considered.", +"id": "HttpTarget", +"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 job 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. The user can specify HTTP request headers to send with the job's HTTP request. Repeated headers are not supported, but a header value can contain commas. The following headers represent a subset of the headers that accompany the job's HTTP request. Some HTTP request headers are ignored or replaced. A partial list of headers that are ignored or replaced is below: * Host: This will be computed by Cloud Scheduler and derived from uri. * `Content-Length`: This will be computed by Cloud Scheduler. * `User-Agent`: This will be set to `\"Google-Cloud-Scheduler\"`. * `X-Google-*`: Google internal use only. * `X-AppEngine-*`: Google internal use only. * `X-CloudScheduler`: This header will be set to true. * `X-CloudScheduler-JobName`: This header will contain the job name. * `X-CloudScheduler-ScheduleTime`: For Cloud Scheduler jobs specified in the unix-cron format, this header will contain the job schedule as an offset of UTC parsed according to RFC3339. If the job has a body and the following headers are not set by the user, Cloud Scheduler sets default values: * `Content-Type`: This will be set to `\"application/octet-stream\"`. You can override this default by explicitly setting `Content-Type` to a particular media type when creating the job. For example, you can set `Content-Type` to `\"application/json\"`. The total size of headers must be less than 80KB.", +"type": "object" +}, +"httpMethod": { +"description": "Which HTTP method to use for the request.", +"enum": [ +"HTTP_METHOD_UNSPECIFIED", +"POST", +"GET", +"HEAD", +"PUT", +"DELETE", +"PATCH", +"OPTIONS" +], +"enumDescriptions": [ +"HTTP method unspecified. Defaults to POST.", +"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." +}, +"uri": { +"description": "Required. The full URI path that the request will be sent to. This string must begin with either \"http://\" or \"https://\". Some examples of valid values for uri are: `http://acme.com` and `https://acme.com/sales:8080`. Cloud Scheduler will encode some characters for safety and compatibility. The maximum allowed URL length is 2083 characters after encoding.", +"type": "string" +} +}, +"type": "object" +}, +"Job": { +"description": "Configuration for a job. The maximum allowed size for a job is 1MB.", +"id": "Job", +"properties": { +"appEngineHttpTarget": { +"$ref": "AppEngineHttpTarget", +"description": "App Engine HTTP target." +}, +"attemptDeadline": { +"description": "The deadline for job attempts. If the request handler does not respond by this deadline then the request is cancelled and the attempt is marked as a `DEADLINE_EXCEEDED` failure. The failed attempt can be viewed in execution logs. Cloud Scheduler will retry the job according to the RetryConfig. The default and the allowed values depend on the type of target: * For HTTP targets, the default is 3 minutes. The deadline must be in the interval [15 seconds, 30 minutes]. * For App Engine HTTP targets, 0 indicates that the request has the default deadline. The default deadline depends on the scaling type of the service: 10 minutes for standard apps with automatic scaling, 24 hours for standard apps with manual and basic scaling, and 60 minutes for flex apps. If the request deadline is set, it must be in the interval [15 seconds, 24 hours 15 seconds]. * For Pub/Sub targets, this field is ignored.", +"format": "google-duration", +"type": "string" +}, +"description": { +"description": "Optionally caller-specified in CreateJob or UpdateJob. A human-readable description for the job. This string must not contain more than 500 characters.", +"type": "string" +}, +"httpTarget": { +"$ref": "HttpTarget", +"description": "HTTP target." +}, +"lastAttemptTime": { +"description": "Output only. The time the last job attempt started.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Optionally caller-specified in CreateJob, after which it becomes output only. The job name. For example: `projects/PROJECT_ID/locations/LOCATION_ID/jobs/JOB_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 job's location. The list of available locations can be obtained by calling ListLocations. For more information, see https://cloud.google.com/about/locations/. * `JOB_ID` can contain only letters ([A-Za-z]), numbers ([0-9]), hyphens (-), or underscores (_). The maximum length is 500 characters.", +"type": "string" +}, +"pubsubTarget": { +"$ref": "PubsubTarget", +"description": "Pub/Sub target." +}, +"retryConfig": { +"$ref": "RetryConfig", +"description": "Settings that determine the retry behavior." +}, +"schedule": { +"description": "Required, except when used with UpdateJob. Describes the schedule on which the job will be executed. The schedule can be either of the following types: * [Crontab](https://en.wikipedia.org/wiki/Cron#Overview) * English-like [schedule](https://cloud.google.com/scheduler/docs/configuring/cron-job-schedules) As a general rule, execution `n + 1` of a job will not begin until execution `n` has finished. Cloud Scheduler will never allow two simultaneously outstanding executions. For example, this implies that if the `n+1`th execution is scheduled to run at 16:00 but the `n`th execution takes until 16:15, the `n+1`th execution will not start until `16:15`. A scheduled start time will be delayed if the previous execution has not ended when its scheduled time occurs. If retry_count > 0 and a job attempt fails, the job will be tried a total of retry_count times, with exponential backoff, until the next scheduled start time. If retry_count is 0, a job attempt will not be retried if it fails. Instead the Cloud Scheduler system will wait for the next scheduled execution time. Setting retry_count to 0 does not prevent failed jobs from running according to schedule after the failure.", +"type": "string" +}, +"scheduleTime": { +"description": "Output only. The next time the job is scheduled. Note that this may be a retry of a previously failed attempt or the next execution time according to the schedule.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. State of the job.", +"enum": [ +"STATE_UNSPECIFIED", +"ENABLED", +"PAUSED", +"DISABLED", +"UPDATE_FAILED" +], +"enumDescriptions": [ +"Unspecified state.", +"The job is executing normally.", +"The job is paused by the user. It will not execute. A user can intentionally pause the job using PauseJobRequest.", +"The job is disabled by the system due to error. The user cannot directly set a job to be disabled.", +"The job state resulting from a failed CloudScheduler.UpdateJob operation. To recover a job from this state, retry CloudScheduler.UpdateJob until a successful response is received." +], +"readOnly": true, +"type": "string" +}, +"status": { +"$ref": "Status", +"description": "Output only. The response from the target for the last attempted execution.", +"readOnly": true +}, +"timeZone": { +"description": "Specifies the time zone to be used in interpreting schedule. The value of this field must be a time zone name from the [tz database](http://en.wikipedia.org/wiki/Tz_database). Note that some time zones include a provision for daylight savings time. The rules for daylight saving time are determined by the chosen tz. For UTC use the string \"utc\". If a time zone is not specified, the default will be in UTC (also known as GMT).", +"type": "string" +}, +"userUpdateTime": { +"description": "Output only. The creation time of the job.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ListJobsResponse": { +"description": "Response message for listing jobs using ListJobs.", +"id": "ListJobsResponse", +"properties": { +"jobs": { +"description": "The list of jobs.", +"items": { +"$ref": "Job" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve next page of results. Pass this value in the page_token field in the subsequent call to ListJobs to retrieve the next page of results. If this is empty it indicates that there are no more results through which to paginate. The page token is valid for only 2 hours.", +"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" +}, +"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 job. 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 job. The caller must have iam.serviceAccounts.actAs permission for the service account.", +"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" +}, +"PauseJobRequest": { +"description": "Request message for PauseJob.", +"id": "PauseJobRequest", +"properties": {}, +"type": "object" +}, +"PubsubMessage": { +"description": "A message that is published by publishers and consumed by subscribers. The message must contain either a non-empty data field or at least one attribute. Note that client libraries represent this object differently depending on the language. See the corresponding [client library documentation](https://cloud.google.com/pubsub/docs/reference/libraries) for more information. See [quotas and limits] (https://cloud.google.com/pubsub/quotas) for more information about message limits.", +"id": "PubsubMessage", +"properties": { +"attributes": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Attributes for this message. If this field is empty, the message must contain non-empty data. This can be used to filter messages on the subscription.", +"type": "object" +}, +"data": { +"description": "Optional. The message data field. If this field is empty, the message must contain at least one attribute.", +"format": "byte", +"type": "string" +}, +"messageId": { +"description": "ID of this message, assigned by the server when the message is published. Guaranteed to be unique within the topic. This value may be read by a subscriber that receives a `PubsubMessage` via a `Pull` call or a push delivery. It must not be populated by the publisher in a `Publish` call.", +"type": "string" +}, +"orderingKey": { +"description": "Optional. If non-empty, identifies related messages for which publish order should be respected. If a `Subscription` has `enable_message_ordering` set to `true`, messages published with the same non-empty `ordering_key` value will be delivered to subscribers in the order in which they are received by the Pub/Sub system. All `PubsubMessage`s published in a given `PublishRequest` must specify the same `ordering_key` value. For more information, see [ordering messages](https://cloud.google.com/pubsub/docs/ordering).", +"type": "string" +}, +"publishTime": { +"description": "The time at which the message was published, populated by the server when it receives the `Publish` call. It must not be populated by the publisher in a `Publish` call.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"PubsubTarget": { +"description": "Pub/Sub target. The job will be delivered by publishing a message to the given Pub/Sub topic.", +"id": "PubsubTarget", +"properties": { +"attributes": { +"additionalProperties": { +"type": "string" +}, +"description": "Attributes for PubsubMessage. Pubsub message must contain either non-empty data, or at least one attribute.", +"type": "object" +}, +"data": { +"description": "The message payload for PubsubMessage. Pubsub message must contain either non-empty data, or at least one attribute.", +"format": "byte", +"type": "string" +}, +"topicName": { +"description": "Required. The name of the Cloud Pub/Sub topic to which messages will be published when a job is delivered. The topic name must be in the same format as required by Pub/Sub's [PublishRequest.name](https://cloud.google.com/pubsub/docs/reference/rpc/google.pubsub.v1#publishrequest), for example `projects/PROJECT_ID/topics/TOPIC_ID`. The topic must be in the same project as the Cloud Scheduler job.", +"type": "string" +} +}, +"type": "object" +}, +"ResumeJobRequest": { +"description": "Request message for ResumeJob.", +"id": "ResumeJobRequest", +"properties": {}, +"type": "object" +}, +"RetryConfig": { +"description": "Settings that determine the retry behavior. By default, if a job does not complete successfully (meaning that an acknowledgement is not received from the handler, then it will be retried with exponential backoff according to the settings in RetryConfig.", +"id": "RetryConfig", +"properties": { +"maxBackoffDuration": { +"description": "The maximum amount of time to wait before retrying a job after it fails. The default value of this field is 1 hour.", +"format": "google-duration", +"type": "string" +}, +"maxDoublings": { +"description": "The time between retries will double `max_doublings` times. A job's retry interval starts at min_backoff_duration, then doubles `max_doublings` times, then increases linearly, and finally retries at intervals of max_backoff_duration up to retry_count times. For example, if min_backoff_duration is 10s, max_backoff_duration is 300s, and `max_doublings` is 3, then the job will first be retried in 10s. The retry interval will double three times, and then increase linearly by 2^3 * 10s. Finally, the job will retry at intervals of max_backoff_duration until the job has been attempted retry_count times. Thus, the requests will retry at 10s, 20s, 40s, 80s, 160s, 240s, 300s, 300s, .... The default value of this field is 5.", +"format": "int32", +"type": "integer" +}, +"maxRetryDuration": { +"description": "The time limit for retrying a failed job, measured from time when an execution was first attempted. If specified with retry_count, the job will be retried until both limits are reached. The default value for max_retry_duration is zero, which means retry duration is unlimited.", +"format": "google-duration", +"type": "string" +}, +"minBackoffDuration": { +"description": "The minimum amount of time to wait before retrying a job after it fails. The default value of this field is 5 seconds.", +"format": "google-duration", +"type": "string" +}, +"retryCount": { +"description": "The number of attempts that the system will make to run a job using the exponential backoff procedure described by max_doublings. The default value of retry_count is zero. If retry_count is 0, a job attempt will not be retried if it fails. Instead the Cloud Scheduler system will wait for the next scheduled execution time. Setting retry_count to 0 does not prevent failed jobs from running according to schedule after the failure. If retry_count is set to a non-zero number then Cloud Scheduler will retry failed attempts, using exponential backoff, retry_count times, or until the next scheduled execution time, whichever comes first. Values greater than 5 and negative values are not allowed.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"RunJobRequest": { +"description": "Request message for forcing a job to run now using RunJob.", +"id": "RunJobRequest", +"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" +} +}, +"servicePath": "", +"title": "Cloud Scheduler 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.v2.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/cloudtasks.v2.json new file mode 100644 index 0000000000000000000000000000000000000000..5b4ee7f00e05845da3644a9f039499fc91ad3b8f --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/cloudtasks.v2.json @@ -0,0 +1,1690 @@ +{ +"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:v2", +"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": { +"projects": { +"resources": { +"locations": { +"methods": { +"get": { +"description": "Gets information about a location.", +"flatPath": "v2/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": "v2/{+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": "v2/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": "v2/{+name}", +"response": { +"$ref": "CmekConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists information about the supported locations for this service.", +"flatPath": "v2/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": "v2/{+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": "v2/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": "v2/{+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": "v2/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": "v2/{+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": "v2/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": "v2/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a queue.", +"flatPath": "v2/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" +} +}, +"path": "v2/{+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": "v2/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": "v2/{+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": "v2/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 \"state: PAUSED\". 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" +} +}, +"path": "v2/{+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": "v2/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": "v2/{+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": "v2/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": "v2/{+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": "v2/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": "v2/{+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": "v2/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": "v2/{+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": "v2/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": "v2/{+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": "v2/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": "v2/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"tasks": { +"methods": { +"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": "v2/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, Cloud Tasks generates an ID for the task.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v2/{+queue}/tasks/{taskId}:buffer", +"request": { +"$ref": "BufferTaskRequest" +}, +"response": { +"$ref": "BufferTaskResponse" +}, +"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. * The maximum task size is 100KB.", +"flatPath": "v2/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": "v2/{+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 executed successfully or permanently failed.", +"flatPath": "v2/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": "v2/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a task.", +"flatPath": "v2/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 body in AppEngineHttpRequest. Bodies 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": "v2/{+name}", +"response": { +"$ref": "Task" +}, +"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": "v2/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 body in AppEngineHttpRequest. Bodies 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": "v2/{+parent}/tasks", +"response": { +"$ref": "ListTasksResponse" +}, +"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. 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.", +"flatPath": "v2/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": "v2/{+name}:run", +"request": { +"$ref": "RunTaskRequest" +}, +"response": { +"$ref": "Task" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +} +} +}, +"revision": "20241111", +"rootUrl": "https://cloudtasks.googleapis.com/", +"schemas": { +"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. 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 app_engine_routing_override is set on the queue, this value 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_uri 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 app_engine_routing_override is set on the queue, this value is used for all tasks in the queue, no matter what the setting is for the task-level app_engine_routing." +}, +"body": { +"description": "HTTP request body. A request body is allowed only if the HTTP method is POST or PUT. It is an error to set a 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 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 body, 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/tasks/docs/creating-appengine-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" +}, +"relativeUri": { +"description": "The relative URI. The relative URI must begin with \"/\" and must be a valid HTTP relative URI. It can contain a path and query string arguments. If the relative URI 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" +}, +"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). Using AppEngineRouting 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": "AppEngineRouting", +"properties": { +"host": { +"description": "Output only. The host that the task is sent to. The host is constructed from the domain name of the app associated with the queue's project ID (for example .appspot.com), and the service, version, and instance. Tasks which were created using the App Engine SDK might have a custom domain name. For more information, see [How Requests are Routed](https://cloud.google.com/appengine/docs/standard/python/how-requests-are-routed).", +"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" +}, +"Attempt": { +"description": "The status of a task attempt.", +"id": "Attempt", +"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 worker for this attempt. If `response_time` is unset, then the task has not been attempted or is currently running and the `response_status` field is meaningless." +}, +"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" +}, +"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 body in AppEngineHttpRequest. Bodies 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 executed 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. If the worker or the redirected worker acknowledges the task by returning a successful HTTP response code ([`200` - `299`]), the task will be removed from the queue. If any other HTTP response code is returned or no response is received, the task will be retried according to the following: * User-specified throttling: retry configuration, rate limits, and the queue's state. * System throttling: To prevent the worker from overloading, Cloud Tasks may temporarily reduce the queue's effective rate. User-specified settings will not be changed. System throttling happens because: * Cloud Tasks backs off on all errors. Normally the backoff specified in rate limits will be used. But if the worker returns `429` (Too Many Requests), `503` (Service Unavailable), or the rate of errors is high, Cloud Tasks will use a higher backoff rate. The retry specified in the `Retry-After` HTTP response header is considered. * To prevent traffic spikes and to smooth sudden increases in traffic, dispatches ramp up slowly when the queue is newly created or idle and if large numbers of tasks suddenly become available to dispatch (due to spikes in create task rates, the queue being unpaused, or many tasks that are scheduled at the same time).", +"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 the 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: * 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 CreateTask and/or BufferTask. These headers represent a subset of the headers that will be configured for 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: * Several predefined headers, prefixed with \"X-CloudTasks-\", can be used to define properties of the task. * Host: This will be computed by Cloud Tasks and derived from HttpRequest.url. * Content-Length: This will be computed by Cloud Tasks. `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\"`. The default value is set to \"application/json\"`. * User-Agent: This will be set to `\"Google-Cloud-Tasks\"`. 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 the `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" +}, +"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" +}, +"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, queue types, and others.", +"id": "Queue", +"properties": { +"appEngineRoutingOverride": { +"$ref": "AppEngineRouting", +"description": "Overrides for task-level app_engine_routing. These settings apply only to App Engine tasks in this queue. Http tasks are not affected. If set, `app_engine_routing_override` is used for all App Engine tasks in the queue, no matter what the setting is for the task-level app_engine_routing." +}, +"httpTarget": { +"$ref": "HttpTarget", +"description": "Modifies HTTP target 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" +}, +"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 task attempts 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). The queue's actual dispatch rate is the result of: * Number of tasks in the queue * User-specified throttling: rate_limits, retry_config, and the queue's state. * System throttling due to `429` (Too Many Requests) or `503` (Service Unavailable) responses from the worker, high error rates, or to smooth sudden large traffic spikes." +}, +"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)." +}, +"stackdriverLoggingConfig": { +"$ref": "StackdriverLoggingConfig", +"description": "Configuration options for writing logs to [Stackdriver Logging](https://cloud.google.com/logging/docs/). If this field is unset, then no logs are written." +}, +"state": { +"description": "Output only. The state of the queue. `state` can only be changed by calling 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.", +"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. To permanently delete this queue and all of its tasks, call DeleteQueue." +], +"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": "Output only. 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. Cloud Tasks will pick the value of `max_burst_size` based on the value of max_dispatches_per_second. For 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). Since `max_burst_size` is output only, if UpdateQueue is called on a queue created by `queue.yaml/xml`, `max_burst_size` will be reset based on the value of max_dispatches_per_second, regardless of whether max_dispatches_per_second is updated. ", +"format": "int32", +"type": "integer" +}, +"maxConcurrentDispatches": { +"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 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" +}, +"maxDispatchesPerSecond": { +"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. * The maximum allowed value is 500. 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" +}, +"ResumeQueueRequest": { +"description": "Request message for ResumeQueue.", +"id": "ResumeQueueRequest", +"properties": {}, +"type": "object" +}, +"RetryConfig": { +"description": "Retry config. These settings determine when a failed task attempt is retried.", +"id": "RetryConfig", +"properties": { +"maxAttempts": { +"description": "Number of attempts per 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 >= -1. If unspecified when the queue is created, Cloud Tasks will pick the default. -1 indicates unlimited attempts. This field has the same meaning as [task_retry_limit in queue.yaml/xml](https://cloud.google.com/appengine/docs/standard/python/config/queueref#retry_parameters).", +"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. The value must be given as a string that indicates the length of time (in seconds) followed by `s` (for \"seconds\"). For more information on the format, see the documentation for [Duration](https://protobuf.dev/reference/protobuf/google.protobuf/#duration). `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 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. The value must be given as a string that indicates the length of time (in seconds) followed by `s` (for \"seconds\"). For the maximum possible value or the format, see the documentation for [Duration](https://protobuf.dev/reference/protobuf/google.protobuf/#duration). `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. The value must be given as a string that indicates the length of time (in seconds) followed by `s` (for \"seconds\"). For more information on the format, see the documentation for [Duration](https://protobuf.dev/reference/protobuf/google.protobuf/#duration). `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" +} +}, +"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 body in AppEngineHttpRequest. Bodies 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" +}, +"StackdriverLoggingConfig": { +"description": "Configuration options for writing logs to [Stackdriver Logging](https://cloud.google.com/logging/docs/).", +"id": "StackdriverLoggingConfig", +"properties": { +"samplingRatio": { +"description": "Specifies the fraction of operations to write to [Stackdriver Logging](https://cloud.google.com/logging/docs/). This field may contain any value between 0.0 and 1.0, inclusive. 0.0 is the default and means that no operations are logged.", +"format": "double", +"type": "number" +} +}, +"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": "HTTP request that is sent to the App Engine app handler. 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" +}, +"dispatchCount": { +"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" +}, +"dispatchDeadline": { +"description": "The deadline for requests sent to the worker. If the worker does not respond by this deadline then the request is cancelled and the attempt is marked as a `DEADLINE_EXCEEDED` failure. Cloud Tasks will retry the task according to the RetryConfig. Note that when the request is cancelled, Cloud Tasks will stop listening for the response, but whether the worker stops processing depends on the worker. For example, if the worker is stuck, it may not react to cancelled requests. The default and maximum values depend on the type of request: * For HTTP tasks, the default is 10 minutes. The deadline must be in the interval [15 seconds, 30 minutes]. * For App Engine tasks, 0 indicates that the request has the default deadline. The default deadline depends on the [scaling type](https://cloud.google.com/appengine/docs/standard/go/how-instances-are-managed#instance_scaling) of the service: 10 minutes for standard apps with automatic scaling, 24 hours for standard apps with manual and basic scaling, and 60 minutes for flex apps. If the request deadline is set, it must be in the interval [15 seconds, 24 hours 15 seconds]. Regardless of the task's `dispatch_deadline`, the app handler will not run for longer than than the service's timeout. We recommend setting the `dispatch_deadline` to at most a few seconds more than the app handler's timeout. For more information see [Timeouts](https://cloud.google.com/tasks/docs/creating-appengine-handlers#timeouts). The value must be given as a string that indicates the length of time (in seconds) followed by `s` (for \"seconds\"). For more information on the format, see the documentation for [Duration](https://protobuf.dev/reference/protobuf/google.protobuf/#duration). `dispatch_deadline` will be truncated to the nearest millisecond. The deadline is an approximate deadline.", +"format": "google-duration", +"type": "string" +}, +"firstAttempt": { +"$ref": "Attempt", +"description": "Output only. The status of the task's first attempt. Only dispatch_time will be set. The other Attempt information is not retained by Cloud Tasks." +}, +"httpRequest": { +"$ref": "HttpRequest", +"description": "HTTP request that is sent to the worker. An HTTP task is a task that has HttpRequest set." +}, +"lastAttempt": { +"$ref": "Attempt", +"description": "Output only. The status of the task's last attempt." +}, +"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" +}, +"responseCount": { +"description": "Output only. The number of attempts which have received a response.", +"format": "int32", +"type": "integer" +}, +"scheduleTime": { +"description": "The time when the task is scheduled to be attempted or retried. `schedule_time` will be truncated to the nearest microsecond.", +"format": "google-datetime", +"type": "string" +}, +"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 body in AppEngineHttpRequest. Bodies 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" +}, +"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": [ +"UriOverrideEnforceMode 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": "v2", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/content.v2.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/content.v2.json new file mode 100644 index 0000000000000000000000000000000000000000..9e96b23c5acf8bb25709d887331ce7e83c7d0e13 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/content.v2.json @@ -0,0 +1,10116 @@ +{ + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/content": { + "description": "Manage your product listings and accounts for Google Shopping" + } + } + } + }, + "basePath": "/content/v2/", + "baseUrl": "https://shoppingcontent.googleapis.com/content/v2/", + "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", + "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.", + "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. When set to `True`, this flag removes any existing claim on the requested website by another account and replaces it with a claim from this account.", + "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": { + "dryRun": { + "description": "Flag to simulate a request like in a live environment. If set to true, dry-run mode checks the validity of the request and returns errors (if any).", + "location": "query", + "type": "boolean" + } + }, + "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" + }, + "dryRun": { + "description": "Flag to simulate a request like in a live environment. If set to true, dry-run mode checks the validity of the request and returns errors (if any).", + "location": "query", + "type": "boolean" + }, + "force": { + "default": "false", + "description": "Flag 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" + } + }, + "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": { + "dryRun": { + "description": "Flag to simulate a request like in a live environment. If set to true, dry-run mode checks the validity of the request and returns errors (if any).", + "location": "query", + "type": "boolean" + }, + "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": { + "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" + }, + "pageToken": { + "description": "The token returned by the previous request.", + "location": "query", + "type": "string" + } + }, + "path": "{merchantId}/accounts", + "response": { + "$ref": "AccountsListResponse" + }, + "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" + }, + "dryRun": { + "description": "Flag to simulate a request like in a live environment. If set to true, dry-run mode checks the validity of the request and returns errors (if any).", + "location": "query", + "type": "boolean" + }, + "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" + ] + } + } + }, + "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" + }, + "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": { + "dryRun": { + "description": "Flag to simulate a request like in a live environment. If set to true, dry-run mode checks the validity of the request and returns errors (if any).", + "location": "query", + "type": "boolean" + } + }, + "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" + }, + "dryRun": { + "description": "Flag to simulate a request like in a live environment. If set to true, dry-run mode checks the validity of the request and returns errors (if any).", + "location": "query", + "type": "boolean" + }, + "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" + ] + } + } + }, + "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": { + "dryRun": { + "description": "Flag to simulate a request like in a live environment. If set to true, dry-run mode checks the validity of the request and returns errors (if any).", + "location": "query", + "type": "boolean" + } + }, + "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" + }, + "dryRun": { + "description": "Flag to simulate a request like in a live environment. If set to true, dry-run mode checks the validity of the request and returns errors (if any).", + "location": "query", + "type": "boolean" + }, + "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 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" + }, + "dryRun": { + "description": "Flag to simulate a request like in a live environment. If set to true, dry-run mode checks the validity of the request and returns errors (if any).", + "location": "query", + "type": "boolean" + }, + "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": { + "dryRun": { + "description": "Flag to simulate a request like in a live environment. If set to true, dry-run mode checks the validity of the request and returns errors (if any).", + "location": "query", + "type": "boolean" + }, + "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" + }, + "dryRun": { + "description": "Flag to simulate a request like in a live environment. If set to true, dry-run mode checks the validity of the request and returns errors (if any).", + "location": "query", + "type": "boolean" + }, + "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": "The country for which to get the datafeed status. 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" + }, + "language": { + "description": "The language for which to get the datafeed status. 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" + ] + } + } + }, + "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": { + "dryRun": { + "description": "Flag to simulate a request like in a live environment. If set to true, dry-run mode checks the validity of the request and returns errors (if any).", + "location": "query", + "type": "boolean" + } + }, + "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 Google My Business accounts.", + "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 Google My Business accounts.", + "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 Google My Business account.", + "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 GMB access is requested.", + "format": "uint64", + "location": "path", + "required": true, + "type": "string" + }, + "gmbEmail": { + "description": "The email of the Google My Business account.", + "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" + ] + }, + "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 Google My Business accounts.", + "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" + }, + "dryRun": { + "description": "Flag to simulate a request like in a live environment. If set to true, dry-run mode checks the validity of the request and returns errors (if any).", + "location": "query", + "type": "boolean" + }, + "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" + ] + } + } + }, + "orderinvoices": { + "methods": { + "createchargeinvoice": { + "description": "Creates a charge invoice for a shipment group, and triggers a charge capture for orderinvoice enabled orders.", + "flatPath": "{merchantId}/orderinvoices/{orderId}/createChargeInvoice", + "httpMethod": "POST", + "id": "content.orderinvoices.createchargeinvoice", + "parameterOrder": [ + "merchantId", + "orderId" + ], + "parameters": { + "merchantId": { + "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" + }, + "orderId": { + "description": "The ID of the order.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "{merchantId}/orderinvoices/{orderId}/createChargeInvoice", + "request": { + "$ref": "OrderinvoicesCreateChargeInvoiceRequest" + }, + "response": { + "$ref": "OrderinvoicesCreateChargeInvoiceResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "createrefundinvoice": { + "description": "Creates a refund invoice for one or more shipment groups, and triggers a refund for orderinvoice enabled orders. This can only be used for line items that have previously been charged using `createChargeInvoice`. All amounts (except for the summary) are incremental with respect to the previous invoice.", + "flatPath": "{merchantId}/orderinvoices/{orderId}/createRefundInvoice", + "httpMethod": "POST", + "id": "content.orderinvoices.createrefundinvoice", + "parameterOrder": [ + "merchantId", + "orderId" + ], + "parameters": { + "merchantId": { + "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" + }, + "orderId": { + "description": "The ID of the order.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "{merchantId}/orderinvoices/{orderId}/createRefundInvoice", + "request": { + "$ref": "OrderinvoicesCreateRefundInvoiceRequest" + }, + "response": { + "$ref": "OrderinvoicesCreateRefundInvoiceResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + } + } + }, + "orderreports": { + "methods": { + "listdisbursements": { + "description": "Retrieves a report for disbursements from your Merchant Center account.", + "flatPath": "{merchantId}/orderreports/disbursements", + "httpMethod": "GET", + "id": "content.orderreports.listdisbursements", + "parameterOrder": [ + "merchantId" + ], + "parameters": { + "disbursementEndDate": { + "description": "The last date which disbursements occurred. In ISO 8601 format. Default: current date.", + "location": "query", + "type": "string" + }, + "disbursementStartDate": { + "description": "The first date which disbursements occurred. In ISO 8601 format.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of disbursements to return in the response, used for paging.", + "format": "uint32", + "location": "query", + "type": "integer" + }, + "merchantId": { + "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" + }, + "pageToken": { + "description": "The token returned by the previous request.", + "location": "query", + "type": "string" + } + }, + "path": "{merchantId}/orderreports/disbursements", + "response": { + "$ref": "OrderreportsListDisbursementsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "listtransactions": { + "description": "Retrieves a list of transactions for a disbursement from your Merchant Center account.", + "flatPath": "{merchantId}/orderreports/disbursements/{disbursementId}/transactions", + "httpMethod": "GET", + "id": "content.orderreports.listtransactions", + "parameterOrder": [ + "merchantId", + "disbursementId" + ], + "parameters": { + "disbursementId": { + "description": "The Google-provided ID of the disbursement (found in Wallet).", + "location": "path", + "required": true, + "type": "string" + }, + "maxResults": { + "description": "The maximum number of disbursements to return in the response, used for paging.", + "format": "uint32", + "location": "query", + "type": "integer" + }, + "merchantId": { + "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" + }, + "pageToken": { + "description": "The token returned by the previous request.", + "location": "query", + "type": "string" + }, + "transactionEndDate": { + "description": "The last date in which transaction occurred. In ISO 8601 format. Default: current date.", + "location": "query", + "type": "string" + }, + "transactionStartDate": { + "description": "The first date in which transaction occurred. In ISO 8601 format.", + "location": "query", + "type": "string" + } + }, + "path": "{merchantId}/orderreports/disbursements/{disbursementId}/transactions", + "response": { + "$ref": "OrderreportsListTransactionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + } + } + }, + "orderreturns": { + "methods": { + "get": { + "description": "Retrieves an order return from your Merchant Center account.", + "flatPath": "{merchantId}/orderreturns/{returnId}", + "httpMethod": "GET", + "id": "content.orderreturns.get", + "parameterOrder": [ + "merchantId", + "returnId" + ], + "parameters": { + "merchantId": { + "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" + }, + "returnId": { + "description": "Merchant order return ID generated by Google.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "{merchantId}/orderreturns/{returnId}", + "response": { + "$ref": "MerchantOrderReturn" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "list": { + "description": "Lists order returns in your Merchant Center account.", + "flatPath": "{merchantId}/orderreturns", + "httpMethod": "GET", + "id": "content.orderreturns.list", + "parameterOrder": [ + "merchantId" + ], + "parameters": { + "createdEndDate": { + "description": "Obtains order returns created before this date (inclusively), in ISO 8601 format.", + "location": "query", + "type": "string" + }, + "createdStartDate": { + "description": "Obtains order returns created after this date (inclusively), in ISO 8601 format.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "The maximum number of order returns to return in the response, used for paging. The default value is 25 returns per page, and the maximum allowed value is 250 returns per page.", + "format": "uint32", + "location": "query", + "type": "integer" + }, + "merchantId": { + "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" + }, + "orderBy": { + "description": "Return the results in the specified order.", + "enum": [ + "RETURN_CREATION_TIME_DESC", + "RETURN_CREATION_TIME_ASC" + ], + "enumDescriptions": [ + "", + "" + ], + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "The token returned by the previous request.", + "location": "query", + "type": "string" + } + }, + "path": "{merchantId}/orderreturns", + "response": { + "$ref": "OrderreturnsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + } + } + }, + "orders": { + "methods": { + "acknowledge": { + "description": "Marks an order as acknowledged.", + "flatPath": "{merchantId}/orders/{orderId}/acknowledge", + "httpMethod": "POST", + "id": "content.orders.acknowledge", + "parameterOrder": [ + "merchantId", + "orderId" + ], + "parameters": { + "merchantId": { + "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" + }, + "orderId": { + "description": "The ID of the order.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "{merchantId}/orders/{orderId}/acknowledge", + "request": { + "$ref": "OrdersAcknowledgeRequest" + }, + "response": { + "$ref": "OrdersAcknowledgeResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "advancetestorder": { + "description": "Sandbox only. Moves a test order from state \"`inProgress`\" to state \"`pendingShipment`\".", + "flatPath": "{merchantId}/testorders/{orderId}/advance", + "httpMethod": "POST", + "id": "content.orders.advancetestorder", + "parameterOrder": [ + "merchantId", + "orderId" + ], + "parameters": { + "merchantId": { + "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" + }, + "orderId": { + "description": "The ID of the test order to modify.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "{merchantId}/testorders/{orderId}/advance", + "response": { + "$ref": "OrdersAdvanceTestOrderResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "cancel": { + "description": "Cancels all line items in an order, making a full refund.", + "flatPath": "{merchantId}/orders/{orderId}/cancel", + "httpMethod": "POST", + "id": "content.orders.cancel", + "parameterOrder": [ + "merchantId", + "orderId" + ], + "parameters": { + "merchantId": { + "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" + }, + "orderId": { + "description": "The ID of the order to cancel.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "{merchantId}/orders/{orderId}/cancel", + "request": { + "$ref": "OrdersCancelRequest" + }, + "response": { + "$ref": "OrdersCancelResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "cancellineitem": { + "description": "Cancels a line item, making a full refund.", + "flatPath": "{merchantId}/orders/{orderId}/cancelLineItem", + "httpMethod": "POST", + "id": "content.orders.cancellineitem", + "parameterOrder": [ + "merchantId", + "orderId" + ], + "parameters": { + "merchantId": { + "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" + }, + "orderId": { + "description": "The ID of the order.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "{merchantId}/orders/{orderId}/cancelLineItem", + "request": { + "$ref": "OrdersCancelLineItemRequest" + }, + "response": { + "$ref": "OrdersCancelLineItemResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "canceltestorderbycustomer": { + "description": "Sandbox only. Cancels a test order for customer-initiated cancellation.", + "flatPath": "{merchantId}/testorders/{orderId}/cancelByCustomer", + "httpMethod": "POST", + "id": "content.orders.canceltestorderbycustomer", + "parameterOrder": [ + "merchantId", + "orderId" + ], + "parameters": { + "merchantId": { + "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" + }, + "orderId": { + "description": "The ID of the test order to cancel.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "{merchantId}/testorders/{orderId}/cancelByCustomer", + "request": { + "$ref": "OrdersCancelTestOrderByCustomerRequest" + }, + "response": { + "$ref": "OrdersCancelTestOrderByCustomerResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "createtestorder": { + "description": "Sandbox only. Creates a test order.", + "flatPath": "{merchantId}/testorders", + "httpMethod": "POST", + "id": "content.orders.createtestorder", + "parameterOrder": [ + "merchantId" + ], + "parameters": { + "merchantId": { + "description": "The ID of the account that should manage the order. This cannot be a multi-client account.", + "format": "uint64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "{merchantId}/testorders", + "request": { + "$ref": "OrdersCreateTestOrderRequest" + }, + "response": { + "$ref": "OrdersCreateTestOrderResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "createtestreturn": { + "description": "Sandbox only. Creates a test return.", + "flatPath": "{merchantId}/orders/{orderId}/testreturn", + "httpMethod": "POST", + "id": "content.orders.createtestreturn", + "parameterOrder": [ + "merchantId", + "orderId" + ], + "parameters": { + "merchantId": { + "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" + }, + "orderId": { + "description": "The ID of the order.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "{merchantId}/orders/{orderId}/testreturn", + "request": { + "$ref": "OrdersCreateTestReturnRequest" + }, + "response": { + "$ref": "OrdersCreateTestReturnResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "custombatch": { + "description": "Retrieves or modifies multiple orders in a single request.", + "flatPath": "orders/batch", + "httpMethod": "POST", + "id": "content.orders.custombatch", + "parameterOrder": [], + "parameters": {}, + "path": "orders/batch", + "request": { + "$ref": "OrdersCustomBatchRequest" + }, + "response": { + "$ref": "OrdersCustomBatchResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "get": { + "description": "Retrieves an order from your Merchant Center account.", + "flatPath": "{merchantId}/orders/{orderId}", + "httpMethod": "GET", + "id": "content.orders.get", + "parameterOrder": [ + "merchantId", + "orderId" + ], + "parameters": { + "merchantId": { + "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" + }, + "orderId": { + "description": "The ID of the order.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "{merchantId}/orders/{orderId}", + "response": { + "$ref": "Order" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "getbymerchantorderid": { + "description": "Retrieves an order using merchant order ID.", + "flatPath": "{merchantId}/ordersbymerchantid/{merchantOrderId}", + "httpMethod": "GET", + "id": "content.orders.getbymerchantorderid", + "parameterOrder": [ + "merchantId", + "merchantOrderId" + ], + "parameters": { + "merchantId": { + "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" + }, + "merchantOrderId": { + "description": "The merchant order ID to be looked for.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "{merchantId}/ordersbymerchantid/{merchantOrderId}", + "response": { + "$ref": "OrdersGetByMerchantOrderIdResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "gettestordertemplate": { + "description": "Sandbox only. Retrieves an order template that can be used to quickly create a new order in sandbox.", + "flatPath": "{merchantId}/testordertemplates/{templateName}", + "httpMethod": "GET", + "id": "content.orders.gettestordertemplate", + "parameterOrder": [ + "merchantId", + "templateName" + ], + "parameters": { + "country": { + "description": "The country of the template to retrieve. Defaults to `US`.", + "location": "query", + "type": "string" + }, + "merchantId": { + "description": "The ID of the account that should manage the order. This cannot be a multi-client account.", + "format": "uint64", + "location": "path", + "required": true, + "type": "string" + }, + "templateName": { + "description": "The name of the template to retrieve.", + "enum": [ + "TEMPLATE1", + "TEMPLATE2", + "TEMPLATE1A", + "TEMPLATE1B", + "TEMPLATE3" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "" + ], + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "{merchantId}/testordertemplates/{templateName}", + "response": { + "$ref": "OrdersGetTestOrderTemplateResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "instorerefundlineitem": { + "description": "Deprecated. Notifies that item return and refund was handled directly by merchant outside of Google payments processing (e.g. cash refund done in store). Note: We recommend calling the returnrefundlineitem method to refund in-store returns. We will issue the refund directly to the customer. This helps to prevent possible differences arising between merchant and Google transaction records. We also recommend having the point of sale system communicate with Google to ensure that customers do not receive a double refund by first refunding via Google then via an in-store return.", + "flatPath": "{merchantId}/orders/{orderId}/inStoreRefundLineItem", + "httpMethod": "POST", + "id": "content.orders.instorerefundlineitem", + "parameterOrder": [ + "merchantId", + "orderId" + ], + "parameters": { + "merchantId": { + "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" + }, + "orderId": { + "description": "The ID of the order.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "{merchantId}/orders/{orderId}/inStoreRefundLineItem", + "request": { + "$ref": "OrdersInStoreRefundLineItemRequest" + }, + "response": { + "$ref": "OrdersInStoreRefundLineItemResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "list": { + "description": "Lists the orders in your Merchant Center account.", + "flatPath": "{merchantId}/orders", + "httpMethod": "GET", + "id": "content.orders.list", + "parameterOrder": [ + "merchantId" + ], + "parameters": { + "acknowledged": { + "description": "Obtains orders that match the acknowledgement status. When set to true, obtains orders that have been acknowledged. When false, obtains orders that have not been acknowledged. We recommend using this filter set to `false`, in conjunction with the `acknowledge` call, such that only un-acknowledged orders are returned. ", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "description": "The maximum number of orders to return in the response, used for paging. The default value is 25 orders per page, and the maximum allowed value is 250 orders per page.", + "format": "uint32", + "location": "query", + "type": "integer" + }, + "merchantId": { + "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" + }, + "orderBy": { + "description": "Order results by placement date in descending or ascending order. Acceptable values are: - placedDateAsc - placedDateDesc ", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "The token returned by the previous request.", + "location": "query", + "type": "string" + }, + "placedDateEnd": { + "description": "Obtains orders placed before this date (exclusively), in ISO 8601 format.", + "location": "query", + "type": "string" + }, + "placedDateStart": { + "description": "Obtains orders placed after this date (inclusively), in ISO 8601 format.", + "location": "query", + "type": "string" + }, + "statuses": { + "description": "Obtains orders that match any of the specified statuses. Please note that `active` is a shortcut for `pendingShipment` and `partiallyShipped`, and `completed` is a shortcut for `shipped`, `partiallyDelivered`, `delivered`, `partiallyReturned`, `returned`, and `canceled`.", + "enum": [ + "ACTIVE", + "COMPLETED", + "CANCELED", + "IN_PROGRESS", + "PENDING_SHIPMENT", + "PARTIALLY_SHIPPED", + "SHIPPED", + "PARTIALLY_DELIVERED", + "DELIVERED", + "PARTIALLY_RETURNED", + "RETURNED" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "location": "query", + "repeated": true, + "type": "string" + } + }, + "path": "{merchantId}/orders", + "response": { + "$ref": "OrdersListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "refund": { + "description": "Deprecated, please use returnRefundLineItem instead.", + "flatPath": "{merchantId}/orders/{orderId}/refund", + "httpMethod": "POST", + "id": "content.orders.refund", + "parameterOrder": [ + "merchantId", + "orderId" + ], + "parameters": { + "merchantId": { + "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" + }, + "orderId": { + "description": "The ID of the order to refund.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "{merchantId}/orders/{orderId}/refund", + "request": { + "$ref": "OrdersRefundRequest" + }, + "response": { + "$ref": "OrdersRefundResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "rejectreturnlineitem": { + "description": "Rejects return on an line item.", + "flatPath": "{merchantId}/orders/{orderId}/rejectReturnLineItem", + "httpMethod": "POST", + "id": "content.orders.rejectreturnlineitem", + "parameterOrder": [ + "merchantId", + "orderId" + ], + "parameters": { + "merchantId": { + "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" + }, + "orderId": { + "description": "The ID of the order.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "{merchantId}/orders/{orderId}/rejectReturnLineItem", + "request": { + "$ref": "OrdersRejectReturnLineItemRequest" + }, + "response": { + "$ref": "OrdersRejectReturnLineItemResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "returnlineitem": { + "description": "Returns a line item.", + "flatPath": "{merchantId}/orders/{orderId}/returnLineItem", + "httpMethod": "POST", + "id": "content.orders.returnlineitem", + "parameterOrder": [ + "merchantId", + "orderId" + ], + "parameters": { + "merchantId": { + "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" + }, + "orderId": { + "description": "The ID of the order.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "{merchantId}/orders/{orderId}/returnLineItem", + "request": { + "$ref": "OrdersReturnLineItemRequest" + }, + "response": { + "$ref": "OrdersReturnLineItemResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "returnrefundlineitem": { + "description": "Returns and refunds a line item. Note that this method can only be called on fully shipped orders. Please also note that the Orderreturns API is the preferred way to handle returns after you receive a return from a customer. You can use Orderreturns.list or Orderreturns.get to search for the return, and then use Orderreturns.processreturn to issue the refund. If the return cannot be found, then we recommend using this API to issue a refund.", + "flatPath": "{merchantId}/orders/{orderId}/returnRefundLineItem", + "httpMethod": "POST", + "id": "content.orders.returnrefundlineitem", + "parameterOrder": [ + "merchantId", + "orderId" + ], + "parameters": { + "merchantId": { + "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" + }, + "orderId": { + "description": "The ID of the order.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "{merchantId}/orders/{orderId}/returnRefundLineItem", + "request": { + "$ref": "OrdersReturnRefundLineItemRequest" + }, + "response": { + "$ref": "OrdersReturnRefundLineItemResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "setlineitemmetadata": { + "description": "Sets (or overrides if it already exists) merchant provided annotations in the form of key-value pairs. A common use case would be to supply us with additional structured information about a line item that cannot be provided via other methods. Submitted key-value pairs can be retrieved as part of the orders resource.", + "flatPath": "{merchantId}/orders/{orderId}/setLineItemMetadata", + "httpMethod": "POST", + "id": "content.orders.setlineitemmetadata", + "parameterOrder": [ + "merchantId", + "orderId" + ], + "parameters": { + "merchantId": { + "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" + }, + "orderId": { + "description": "The ID of the order.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "{merchantId}/orders/{orderId}/setLineItemMetadata", + "request": { + "$ref": "OrdersSetLineItemMetadataRequest" + }, + "response": { + "$ref": "OrdersSetLineItemMetadataResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "shiplineitems": { + "description": "Marks line item(s) as shipped.", + "flatPath": "{merchantId}/orders/{orderId}/shipLineItems", + "httpMethod": "POST", + "id": "content.orders.shiplineitems", + "parameterOrder": [ + "merchantId", + "orderId" + ], + "parameters": { + "merchantId": { + "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" + }, + "orderId": { + "description": "The ID of the order.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "{merchantId}/orders/{orderId}/shipLineItems", + "request": { + "$ref": "OrdersShipLineItemsRequest" + }, + "response": { + "$ref": "OrdersShipLineItemsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "updatelineitemshippingdetails": { + "description": "Updates ship by and delivery by dates for a line item.", + "flatPath": "{merchantId}/orders/{orderId}/updateLineItemShippingDetails", + "httpMethod": "POST", + "id": "content.orders.updatelineitemshippingdetails", + "parameterOrder": [ + "merchantId", + "orderId" + ], + "parameters": { + "merchantId": { + "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" + }, + "orderId": { + "description": "The ID of the order.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "{merchantId}/orders/{orderId}/updateLineItemShippingDetails", + "request": { + "$ref": "OrdersUpdateLineItemShippingDetailsRequest" + }, + "response": { + "$ref": "OrdersUpdateLineItemShippingDetailsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "updatemerchantorderid": { + "description": "Updates the merchant order ID for a given order.", + "flatPath": "{merchantId}/orders/{orderId}/updateMerchantOrderId", + "httpMethod": "POST", + "id": "content.orders.updatemerchantorderid", + "parameterOrder": [ + "merchantId", + "orderId" + ], + "parameters": { + "merchantId": { + "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" + }, + "orderId": { + "description": "The ID of the order.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "{merchantId}/orders/{orderId}/updateMerchantOrderId", + "request": { + "$ref": "OrdersUpdateMerchantOrderIdRequest" + }, + "response": { + "$ref": "OrdersUpdateMerchantOrderIdResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] + }, + "updateshipment": { + "description": "Updates a shipment's status, carrier, and/or tracking ID.", + "flatPath": "{merchantId}/orders/{orderId}/updateShipment", + "httpMethod": "POST", + "id": "content.orders.updateshipment", + "parameterOrder": [ + "merchantId", + "orderId" + ], + "parameters": { + "merchantId": { + "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" + }, + "orderId": { + "description": "The ID of the order.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "{merchantId}/orders/{orderId}/updateShipment", + "request": { + "$ref": "OrdersUpdateShipmentRequest" + }, + "response": { + "$ref": "OrdersUpdateShipmentResponse" + }, + "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": { + "dryRun": { + "description": "Flag to simulate a request like in a live environment. If set to true, dry-run mode checks the validity of the request and returns errors (if any).", + "location": "query", + "type": "boolean" + } + }, + "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": { + "dryRun": { + "description": "Flag to simulate a request like in a live environment. If set to true, dry-run mode checks the validity of the request and returns errors (if any).", + "location": "query", + "type": "boolean" + }, + "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": { + "dryRun": { + "description": "Flag to simulate a request like in a live environment. If set to true, dry-run mode checks the validity of the request and returns errors (if any).", + "location": "query", + "type": "boolean" + }, + "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": { + "dryRun": { + "description": "Flag to simulate a request like in a live environment. If set to true, dry-run mode checks the validity of the request and returns errors (if any).", + "location": "query", + "type": "boolean" + }, + "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": { + "dryRun": { + "description": "Flag to simulate a request like in a live environment. If set to true, dry-run mode checks the validity of the request and returns errors (if any).", + "location": "query", + "type": "boolean" + }, + "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" + ] + } + } + }, + "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": { + "dryRun": { + "description": "Flag to simulate a request like in a live environment. If set to true, dry-run mode checks the validity of the request and returns errors (if any).", + "location": "query", + "type": "boolean" + } + }, + "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": { + "dryRun": { + "description": "Flag to simulate a request like in a live environment. If set to true, dry-run mode checks the validity of the request and returns errors (if any).", + "location": "query", + "type": "boolean" + }, + "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": { + "dryRun": { + "description": "Flag to simulate a request like in a live environment. If set to true, dry-run mode checks the validity of the request and returns errors (if any).", + "location": "query", + "type": "boolean" + }, + "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": { + "includeInvalidInsertedItems": { + "description": "Flag to include the invalid inserted items in the result of the list request. By default the invalid items are not shown (the default value is false).", + "location": "query", + "type": "boolean" + }, + "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 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" + ] + } + } + }, + "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": { + "includeAttributes": { + "description": "Flag to include full product data in the results of this request. The default value is false.", + "location": "query", + "type": "boolean" + } + }, + "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" + }, + "includeAttributes": { + "description": "Flag to include full product data in the result of this get request. The default value is false.", + "location": "query", + "type": "boolean" + }, + "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" + }, + "includeAttributes": { + "description": "Flag to include full product data in the results of the list request. The default value is false.", + "location": "query", + "type": "boolean" + }, + "includeInvalidInsertedItems": { + "description": "Flag to include the invalid inserted items in the result of the list request. By default the invalid items are not shown (the default value is false).", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "description": "The maximum number of product statuses to return in the response, used for paging.", + "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" + ] + } + } + }, + "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": { + "dryRun": { + "description": "Flag to simulate a request like in a live environment. If set to true, dry-run mode checks the validity of the request and returns errors (if any).", + "location": "query", + "type": "boolean" + } + }, + "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" + }, + "dryRun": { + "description": "Flag to simulate a request like in a live environment. If set to true, dry-run mode checks the validity of the request and returns errors (if any).", + "location": "query", + "type": "boolean" + }, + "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" + ] + } + } + } + }, + "revision": "20220428", + "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 is fully operational. The methods delete, insert, and update require the admin role.", + "id": "Account", + "properties": { + "adultContent": { + "description": "Indicates whether the merchant sells adult content.", + "type": "boolean" + }, + "adwordsLinks": { + "description": "List of linked AdWords 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 AdWords interface or through the AdWords API. To delete an active link, or to cancel a link request, remove it from the list.", + "items": { + "$ref": "AccountAdwordsLink" + }, + "type": "array" + }, + "businessInformation": { + "$ref": "AccountBusinessInformation", + "description": "The business information of the account." + }, + "googleMyBusinessLink": { + "$ref": "AccountGoogleMyBusinessLink", + "description": "The GMB account which is linked or in the process of being linked with the Merchant Center account." + }, + "id": { + "description": "Required for update. 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" + }, + "name": { + "description": "Required. Display name for the account.", + "type": "string" + }, + "reviewsUrl": { + "description": "[DEPRECATED] This field is never returned and will be ignored if provided.", + "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": "List of 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 (e.g. \"US\"). This value cannot be set for a sub-account of an MCA. All MCA sub-accounts inherit the country of their parent MCA.", + "type": "string" + }, + "locality": { + "description": "City, town or commune. May also include dependent localities or sublocalities (e.g. neighborhoods or suburbs).", + "type": "string" + }, + "postalCode": { + "description": "Postal code or ZIP (e.g. \"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.", + "type": "string" + } + }, + "type": "object" + }, + "AccountAdwordsLink": { + "id": "AccountAdwordsLink", + "properties": { + "adwordsId": { + "description": "Customer ID of the AdWords account.", + "format": "uint64", + "type": "string" + }, + "status": { + "description": "Status of the link between this Merchant Center account and the AdWords account. Upon retrieval, it represents the actual status of the link and can be either `active` if it was approved in Google AdWords 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" + }, + "AccountBusinessInformation": { + "id": "AccountBusinessInformation", + "properties": { + "address": { + "$ref": "AccountAddress", + "description": "The address of the business." + }, + "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.", + "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": { + "gmbEmail": { + "description": "The GMB email address of which a specific account within a GMB account. A sample account within a GMB account could be a business account with set of locations, managed under the GMB account.", + "type": "string" + }, + "status": { + "description": "Status of the link between this Merchant Center account and the GMB account. 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" + }, + "AccountStatus": { + "description": "The status of an account, i.e., 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" + }, + "dataQualityIssues": { + "description": "DEPRECATED - never populated.", + "items": { + "$ref": "AccountStatusDataQualityIssue" + }, + "type": "array" + }, + "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" + }, + "AccountStatusDataQualityIssue": { + "id": "AccountStatusDataQualityIssue", + "properties": { + "country": { + "type": "string" + }, + "destination": { + "type": "string" + }, + "detail": { + "type": "string" + }, + "displayedValue": { + "type": "string" + }, + "exampleItems": { + "items": { + "$ref": "AccountStatusExampleItem" + }, + "type": "array" + }, + "id": { + "type": "string" + }, + "lastChecked": { + "type": "string" + }, + "location": { + "type": "string" + }, + "numItems": { + "format": "uint32", + "type": "integer" + }, + "severity": { + "description": " Acceptable values are: - \"`critical`\" - \"`error`\" - \"`suggestion`\" ", + "type": "string" + }, + "submittedValue": { + "type": "string" + } + }, + "type": "object" + }, + "AccountStatusExampleItem": { + "id": "AccountStatusExampleItem", + "properties": { + "itemId": { + "type": "string" + }, + "link": { + "type": "string" + }, + "submittedValue": { + "type": "string" + }, + "title": { + "type": "string" + }, + "valueOnLandingPage": { + "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 (USA 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" + } + }, + "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" + } + }, + "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`\" ", + "type": "string" + }, + "linkedAccountId": { + "description": "The ID of the linked account.", + "type": "string" + } + }, + "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 defined if and only if the request failed." + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"`content#accountsCustomBatchResponseEntry`\"", + "type": "string" + }, + "linkStatus": { + "description": "Deprecated. This field is never set. Acceptable values are: - \"`active`\" - \"`inactive`\" - \"`pending`\" ", + "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" + }, + "linkType": { + "description": "Type of the link between the two accounts. Acceptable values are: - \"`channelPartner`\" - \"`eCommercePlatform`\" ", + "type": "string" + }, + "linkedAccountId": { + "description": "The ID of the linked account.", + "type": "string" + } + }, + "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" + }, + "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" + }, + "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 defined if and only if the request failed." + } + }, + "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 defined if and only if the request failed." + }, + "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" + }, + "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 (e.g. neighborhoods or suburbs).", + "type": "string" + }, + "country": { + "description": "Required. [CLDR country code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml)(e.g. \"US\").", + "type": "string" + }, + "postalCode": { + "description": "Required. Postal code or ZIP (e.g. \"94043\"). Required.", + "type": "string" + }, + "streetAddress": { + "description": "Street-level part of the address.", + "type": "string" + } + }, + "type": "object" + }, + "Amount": { + "id": "Amount", + "properties": { + "pretax": { + "$ref": "Price", + "description": "[required] Value before taxes." + }, + "tax": { + "$ref": "Price", + "description": "[required] Tax value." + } + }, + "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" + }, + "CarrierRate": { + "id": "CarrierRate", + "properties": { + "carrierName": { + "description": "Carrier service, such as `\"UPS\"` or `\"Fedex\"`. The list of supported carriers can be retrieved via 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 via 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 (e.g., \"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 (e.g., `\"UPS\"`). Always present.", + "type": "string" + }, + "services": { + "description": "A list of supported services (e.g., `\"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" + }, + "CustomAttribute": { + "id": "CustomAttribute", + "properties": { + "name": { + "description": "The name of the attribute. Underscores will be replaced by spaces upon insertion.", + "type": "string" + }, + "type": { + "description": "The type of the attribute. Acceptable values are: - \"`boolean`\" - \"`datetimerange`\" - \"`float`\" - \"`group`\" - \"`int`\" - \"`price`\" - \"`text`\" - \"`time`\" - \"`url`\" ", + "type": "string" + }, + "unit": { + "description": "Free-form unit of the attribute. Unit can only be used for values of type int, float, or price.", + "type": "string" + }, + "value": { + "description": "The value of the attribute.", + "type": "string" + } + }, + "type": "object" + }, + "CustomGroup": { + "id": "CustomGroup", + "properties": { + "attributes": { + "description": "The sub-attributes.", + "items": { + "$ref": "CustomAttribute" + }, + "type": "array" + }, + "name": { + "description": "The name of the group. Underscores will be replaced by spaces upon insertion.", + "type": "string" + } + }, + "type": "object" + }, + "CustomerReturnReason": { + "id": "CustomerReturnReason", + "properties": { + "description": { + "description": "Description of the reason.", + "type": "string" + }, + "reasonCode": { + "description": "Code of the return reason. Acceptable values are: - \"`betterPriceFound`\" - \"`changedMind`\" - \"`damagedOrDefectiveItem`\" - \"`didNotMatchDescription`\" - \"`doesNotFit`\" - \"`expiredItem`\" - \"`incorrectItemReceived`\" - \"`noLongerNeeded`\" - \"`notSpecified`\" - \"`orderedWrongItem`\" - \"`other`\" - \"`qualityNotExpected`\" - \"`receivedTooLate`\" - \"`undeliverable`\" ", + "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. A list of identifiers can be found in the AdWords API documentation. E.g. \"Europe/Zurich\". 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" + }, + "contentLanguage": { + "description": "[DEPRECATED] Please use targets[].language instead. The two-letter ISO 639-1 language of the items in the feed. Must be a valid language for `targetCountry`.", + "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" + }, + "intendedDestinations": { + "description": "[DEPRECATED] Please use targets[].includedDestinations instead. The list of intended destinations (corresponds to checked check boxes in Merchant Center).", + "items": { + "type": "string" + }, + "type": "array" + }, + "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" + }, + "targetCountry": { + "description": "[DEPRECATED] Please use targets[].country instead. The country where the items in the feed will be included in the search index, represented as a CLDR territory code.", + "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. E.g., \"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, i.e., 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" + }, + "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, e.g., \"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, e.g., \"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": "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 for this target (corresponds to unchecked check boxes in Merchant Center).", + "items": { + "type": "string" + }, + "type": "array" + }, + "includedDestinations": { + "description": "The list of destinations to include for this target (corresponds to checked check boxes in Merchant Center). Default destinations are always included unless provided in `excludedDestinations`. List of supported destinations (if available to the account): - DisplayAds - Shopping - ShoppingActions - SurfacesAcrossGoogle ", + "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" + } + }, + "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 defined if and only if the request failed." + } + }, + "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": "The country for which to get the datafeed status. 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" + }, + "language": { + "description": "The language for which to get the datafeed status. 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 defined if and only if the request failed." + } + }, + "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" + }, + "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." + }, + "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 is 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 is 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" + }, + "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" + }, + "GmbAccounts": { + "id": "GmbAccounts", + "properties": { + "accountId": { + "description": "The ID of the Merchant Center account.", + "format": "uint64", + "type": "string" + }, + "gmbAccounts": { + "description": "A list of GMB accounts which are available to the merchant.", + "items": { + "$ref": "GmbAccountsGmbAccount" + }, + "type": "array" + } + }, + "type": "object" + }, + "GmbAccountsGmbAccount": { + "id": "GmbAccountsGmbAccount", + "properties": { + "email": { + "description": "The email which identifies the GMB account.", + "type": "string" + }, + "listingCount": { + "description": "Number of listings under this account.", + "format": "uint64", + "type": "string" + }, + "name": { + "description": "The name of the GMB account.", + "type": "string" + }, + "type": { + "description": "The type of the GMB account (User or Business).", + "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. E.g. \"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. A list of identifiers can be found in the AdWords API documentation. E.g. \"Europe/Zurich\". 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. E.g. \"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. E.g. \"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. E.g. \"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. E.g. \"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" + }, + "Installment": { + "id": "Installment", + "properties": { + "amount": { + "$ref": "Price", + "description": "The amount the buyer has to pay per month." + }, + "months": { + "description": "The number of installments the buyer has to pay.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "InvoiceSummary": { + "id": "InvoiceSummary", + "properties": { + "additionalChargeSummaries": { + "description": "Summary of the total amounts of the additional charges.", + "items": { + "$ref": "InvoiceSummaryAdditionalChargeSummary" + }, + "type": "array" + }, + "customerBalance": { + "$ref": "Amount", + "description": "Deprecated." + }, + "googleBalance": { + "$ref": "Amount", + "description": "Deprecated." + }, + "merchantBalance": { + "$ref": "Amount", + "description": "Deprecated." + }, + "productTotal": { + "$ref": "Amount", + "description": "[required] Total price for the product." + }, + "promotionSummaries": { + "description": "Deprecated.", + "items": { + "$ref": "Promotion" + }, + "type": "array" + } + }, + "type": "object" + }, + "InvoiceSummaryAdditionalChargeSummary": { + "id": "InvoiceSummaryAdditionalChargeSummary", + "properties": { + "totalAmount": { + "$ref": "Amount", + "description": "[required] Total additional charge for this type." + }, + "type": { + "description": "[required] Type of the additional charge. Acceptable values are: - \"`shipping`\" ", + "type": "string" + } + }, + "type": "object" + }, + "LiaAboutPageSettings": { + "id": "LiaAboutPageSettings", + "properties": { + "status": { + "description": "The status of the verification process for the About page. Acceptable 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 (e.g. \"US\").", + "type": "string" + }, + "hostedLocalStorefrontActive": { + "description": "The status of the \"Merchant hosted local storefront\" feature.", + "type": "boolean" + }, + "inventory": { + "$ref": "LiaInventorySettings", + "description": "LIA inventory verification settings." + }, + "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" + }, + "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 GMB account. 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" + }, + "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 GMB accounts." + }, + "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." + }, + "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 GMB accounts 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" + }, + "LocationIdSet": { + "id": "LocationIdSet", + "properties": { + "locationIds": { + "description": "A non-empty list of location IDs. They must all be of the same location type (e.g., state).", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "LoyaltyPoints": { + "id": "LoyaltyPoints", + "properties": { + "name": { + "description": "Name of loyalty points program. It is recommended to limit the name to 12 full-width characters or 24 Roman characters.", + "type": "string" + }, + "pointsValue": { + "description": "The retailer's loyalty points in absolute value.", + "format": "int64", + "type": "string" + }, + "ratio": { + "description": "The ratio of a point when converted to currency. Google assumes currency based on Merchant Center settings. If ratio is left out, it defaults to 1.0.", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, + "MerchantOrderReturn": { + "description": "Order return. Production access (all methods) requires the order manager role. Sandbox access does not.", + "id": "MerchantOrderReturn", + "properties": { + "creationDate": { + "description": "The date of creation of the return, in ISO 8601 format.", + "type": "string" + }, + "merchantOrderId": { + "description": "Merchant defined order ID.", + "type": "string" + }, + "orderId": { + "description": "Google order ID.", + "type": "string" + }, + "orderReturnId": { + "description": "Order return ID generated by Google.", + "type": "string" + }, + "returnItems": { + "description": "Items of the return.", + "items": { + "$ref": "MerchantOrderReturnItem" + }, + "type": "array" + }, + "returnShipments": { + "description": "Shipments of the return.", + "items": { + "$ref": "ReturnShipment" + }, + "type": "array" + } + }, + "type": "object" + }, + "MerchantOrderReturnItem": { + "id": "MerchantOrderReturnItem", + "properties": { + "customerReturnReason": { + "$ref": "CustomerReturnReason", + "description": "The reason that the customer chooses to return an item." + }, + "itemId": { + "description": "Product level item ID. If the returned items are of the same product, they will have the same ID.", + "type": "string" + }, + "merchantReturnReason": { + "$ref": "RefundReason", + "description": "The reason that merchant chooses to accept a return item." + }, + "product": { + "$ref": "OrderLineItemProduct", + "description": "Product data from the time of the order placement." + }, + "returnShipmentIds": { + "description": "IDs of the return shipments that this return item belongs to.", + "items": { + "type": "string" + }, + "type": "array" + }, + "state": { + "description": "State of the item. Acceptable values are: - \"`canceled`\" - \"`new`\" - \"`received`\" - \"`refunded`\" - \"`rejected`\" ", + "type": "string" + } + }, + "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" + }, + "Order": { + "description": "Order. Production access (all methods) requires the order manager role. Sandbox access does not.", + "id": "Order", + "properties": { + "acknowledged": { + "description": "Whether the order was acknowledged.", + "type": "boolean" + }, + "channelType": { + "description": "Deprecated. Acceptable values are: - \"`googleExpress`\" - \"`purchasesOnGoogle`\" ", + "type": "string" + }, + "customer": { + "$ref": "OrderCustomer", + "description": "The details of the customer who placed the order." + }, + "deliveryDetails": { + "$ref": "OrderDeliveryDetails", + "description": "Delivery details for shipments of type `delivery`." + }, + "id": { + "description": "The REST ID of the order. Globally unique.", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"`content#order`\"", + "type": "string" + }, + "lineItems": { + "description": "Line items that are ordered.", + "items": { + "$ref": "OrderLineItem" + }, + "type": "array" + }, + "merchantId": { + "format": "uint64", + "type": "string" + }, + "merchantOrderId": { + "description": "Merchant-provided ID of the order.", + "type": "string" + }, + "netAmount": { + "$ref": "Price", + "description": "The net amount for the order. For example, if an order was originally for a grand total of $100 and a refund was issued for $20, the net amount will be $80." + }, + "paymentMethod": { + "$ref": "OrderPaymentMethod", + "description": "The details of the payment method." + }, + "paymentStatus": { + "description": "The status of the payment. Acceptable values are: - \"`paymentCaptured`\" - \"`paymentRejected`\" - \"`paymentSecured`\" - \"`pendingAuthorization`\" ", + "type": "string" + }, + "pickupDetails": { + "$ref": "OrderPickupDetails", + "description": "Pickup details for shipments of type `pickup`." + }, + "placedDate": { + "description": "The date when the order was placed, in ISO 8601 format.", + "type": "string" + }, + "promotions": { + "description": "The details of the merchant provided promotions applied to the order. To determine which promotions apply to which products, check the `Promotions[].Benefits[].OfferIds` field against the `LineItems[].Product.OfferId` field for each promotion. If a promotion is applied to more than 1 `offerId`, divide the discount value by the number of affected offers to determine how much discount to apply to each `offerId`. Examples: 1. To calculate the line item level discount for a single specific item: For each promotion, subtract the `Promotions[].Benefits[].Discount.value` amount from the `LineItems[].Price.value`. 2. To calculate the line item level discount for multiple quantity of a specific item: For each promotion, divide the `Promotions[].Benefits[].Discount.value` by the quantity of products and substract it from `LineItems[].Product.Price.value` for each quantity item. Only 1 promotion can be applied to an offerId in a given order. To refund an item which had a promotion applied to it, make sure to refund the amount after first subtracting the promotion discount from the item price. More details about the program are here.", + "items": { + "$ref": "OrderLegacyPromotion" + }, + "type": "array" + }, + "refunds": { + "description": "Refunds for the order.", + "items": { + "$ref": "OrderRefund" + }, + "type": "array" + }, + "shipments": { + "description": "Shipments of the order.", + "items": { + "$ref": "OrderShipment" + }, + "type": "array" + }, + "shippingCost": { + "$ref": "Price", + "description": "The total cost of shipping for all items." + }, + "shippingCostTax": { + "$ref": "Price", + "description": "The tax for the total shipping cost." + }, + "shippingOption": { + "description": "Deprecated. Shipping details are provided with line items instead. Acceptable values are: - \"`economy`\" - \"`expedited`\" - \"`oneDay`\" - \"`sameDay`\" - \"`standard`\" - \"`twoDay`\" ", + "type": "string" + }, + "status": { + "description": "The status of the order. Acceptable values are: - \"`canceled`\" - \"`delivered`\" - \"`inProgress`\" - \"`partiallyDelivered`\" - \"`partiallyReturned`\" - \"`partiallyShipped`\" - \"`pendingShipment`\" - \"`returned`\" - \"`shipped`\" ", + "type": "string" + }, + "taxCollector": { + "description": "The party responsible for collecting and remitting taxes. Acceptable values are: - \"`marketplaceFacilitator`\" - \"`merchant`\" ", + "type": "string" + } + }, + "type": "object" + }, + "OrderAddress": { + "id": "OrderAddress", + "properties": { + "country": { + "description": "CLDR country code (e.g. \"US\").", + "type": "string" + }, + "fullAddress": { + "description": "Strings representing the lines of the printed label for mailing the order, for example: John Smith 1600 Amphitheatre Parkway Mountain View, CA, 94043 United States ", + "items": { + "type": "string" + }, + "type": "array" + }, + "isPostOfficeBox": { + "description": "Whether the address is a post office box.", + "type": "boolean" + }, + "locality": { + "description": "City, town or commune. May also include dependent localities or sublocalities (e.g. neighborhoods or suburbs).", + "type": "string" + }, + "postalCode": { + "description": "Postal Code or ZIP (e.g. \"94043\").", + "type": "string" + }, + "recipientName": { + "description": "Name of the recipient.", + "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.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "OrderCancellation": { + "id": "OrderCancellation", + "properties": { + "actor": { + "description": "The actor that created the cancellation. Acceptable values are: - \"`customer`\" - \"`googleBot`\" - \"`googleCustomerService`\" - \"`googlePayments`\" - \"`googleSabre`\" - \"`merchant`\" ", + "type": "string" + }, + "creationDate": { + "description": "Date on which the cancellation has been created, in ISO 8601 format.", + "type": "string" + }, + "quantity": { + "description": "The quantity that was canceled.", + "format": "uint32", + "type": "integer" + }, + "reason": { + "description": "The reason for the cancellation. Orders that are canceled with a noInventory reason will lead to the removal of the product from Buy on Google until you make an update to that product. This will not affect your Shopping ads. Acceptable values are: - \"`autoPostInternal`\" - \"`autoPostInvalidBillingAddress`\" - \"`autoPostNoInventory`\" - \"`autoPostPriceError`\" - \"`autoPostUndeliverableShippingAddress`\" - \"`couponAbuse`\" - \"`customerCanceled`\" - \"`customerInitiatedCancel`\" - \"`customerSupportRequested`\" - \"`failToPushOrderGoogleError`\" - \"`failToPushOrderMerchantError`\" - \"`failToPushOrderMerchantFulfillmentError`\" - \"`failToPushOrderToMerchant`\" - \"`failToPushOrderToMerchantOutOfStock`\" - \"`invalidCoupon`\" - \"`malformedShippingAddress`\" - \"`merchantDidNotShipOnTime`\" - \"`noInventory`\" - \"`orderTimeout`\" - \"`other`\" - \"`paymentAbuse`\" - \"`paymentDeclined`\" - \"`priceError`\" - \"`returnRefundAbuse`\" - \"`shippingPriceError`\" - \"`taxError`\" - \"`undeliverableShippingAddress`\" - \"`unsupportedPoBoxAddress`\" ", + "type": "string" + }, + "reasonText": { + "description": "The explanation of the reason.", + "type": "string" + } + }, + "type": "object" + }, + "OrderCustomer": { + "id": "OrderCustomer", + "properties": { + "email": { + "description": "Deprecated.", + "type": "string" + }, + "explicitMarketingPreference": { + "description": "Deprecated. Please use marketingRightsInfo instead.", + "type": "boolean" + }, + "fullName": { + "description": "Full name of the customer.", + "type": "string" + }, + "invoiceReceivingEmail": { + "description": "Email address for the merchant to send value-added tax or invoice documentation of the order. Only the last document sent is made available to the customer. For more information, see About automated VAT invoicing for Buy on Google.", + "type": "string" + }, + "marketingRightsInfo": { + "$ref": "OrderCustomerMarketingRightsInfo", + "description": "Customer's marketing preferences. Contains the marketing opt-in information that is current at the time that the merchant call. User preference selections can change from one order to the next so preferences must be checked with every order." + } + }, + "type": "object" + }, + "OrderCustomerMarketingRightsInfo": { + "id": "OrderCustomerMarketingRightsInfo", + "properties": { + "explicitMarketingPreference": { + "description": "Last known customer selection regarding marketing preferences. In certain cases this selection might not be known, so this field would be empty. If a customer selected `granted` in their most recent order, they can be subscribed to marketing emails. Customers who have chosen `denied` must not be subscribed, or must be unsubscribed if already opted-in. Acceptable values are: - \"`denied`\" - \"`granted`\" ", + "type": "string" + }, + "lastUpdatedTimestamp": { + "description": "Timestamp when last time marketing preference was updated. Could be empty, if user wasn't offered a selection yet.", + "type": "string" + }, + "marketingEmailAddress": { + "description": "Email address that can be used for marketing purposes. The field may be empty even if `explicitMarketingPreference` is 'granted'. This happens when retrieving an old order from the customer who deleted their account.", + "type": "string" + } + }, + "type": "object" + }, + "OrderDeliveryDetails": { + "id": "OrderDeliveryDetails", + "properties": { + "address": { + "$ref": "OrderAddress", + "description": "The delivery address" + }, + "phoneNumber": { + "description": "The phone number of the person receiving the delivery.", + "type": "string" + } + }, + "type": "object" + }, + "OrderLegacyPromotion": { + "id": "OrderLegacyPromotion", + "properties": { + "benefits": { + "items": { + "$ref": "OrderLegacyPromotionBenefit" + }, + "type": "array" + }, + "effectiveDates": { + "description": "The date and time frame when the promotion is active and ready for validation review. Note that the promotion live time may be delayed for a few hours due to the validation review. Start date and end date are separated by a forward slash (/). The start date is specified by the format (YYYY-MM-DD), followed by the letter ?T?, the time of the day when the sale starts (in Greenwich Mean Time, GMT), followed by an expression of the time zone for the sale. The end date is in the same format.", + "type": "string" + }, + "genericRedemptionCode": { + "description": "Optional. The text code that corresponds to the promotion when applied on the retailer?s website.", + "type": "string" + }, + "id": { + "description": "The unique ID of the promotion.", + "type": "string" + }, + "longTitle": { + "description": "The full title of the promotion.", + "type": "string" + }, + "productApplicability": { + "description": "Whether the promotion is applicable to all products or only specific products. Acceptable values are: - \"`allProducts`\" - \"`specificProducts`\" ", + "type": "string" + }, + "redemptionChannel": { + "description": "Indicates that the promotion is valid online. Acceptable values are: - \"`online`\" ", + "type": "string" + } + }, + "type": "object" + }, + "OrderLegacyPromotionBenefit": { + "id": "OrderLegacyPromotionBenefit", + "properties": { + "discount": { + "$ref": "Price", + "description": "The discount in the order price when the promotion is applied." + }, + "offerIds": { + "description": "The OfferId(s) that were purchased in this order and map to this specific benefit of the promotion.", + "items": { + "type": "string" + }, + "type": "array" + }, + "subType": { + "description": "Further describes the benefit of the promotion. Note that we will expand on this enumeration as we support new promotion sub-types. Acceptable values are: - \"`buyMGetMoneyOff`\" - \"`buyMGetNMoneyOff`\" - \"`buyMGetNPercentOff`\" - \"`buyMGetPercentOff`\" - \"`freeGift`\" - \"`freeGiftWithItemId`\" - \"`freeGiftWithValue`\" - \"`freeOvernightShipping`\" - \"`freeShipping`\" - \"`freeTwoDayShipping`\" - \"`moneyOff`\" - \"`percentageOff`\" - \"`rewardPoints`\" - \"`salePrice`\" ", + "type": "string" + }, + "taxImpact": { + "$ref": "Price", + "description": "The impact on tax when the promotion is applied." + }, + "type": { + "description": "Describes whether the promotion applies to products (e.g. 20% off) or to shipping (e.g. Free Shipping). Acceptable values are: - \"`product`\" - \"`shipping`\" ", + "type": "string" + } + }, + "type": "object" + }, + "OrderLineItem": { + "id": "OrderLineItem", + "properties": { + "annotations": { + "description": "Annotations that are attached to the line item.", + "items": { + "$ref": "OrderMerchantProvidedAnnotation" + }, + "type": "array" + }, + "cancellations": { + "description": "Cancellations of the line item.", + "items": { + "$ref": "OrderCancellation" + }, + "type": "array" + }, + "id": { + "description": "The ID of the line item.", + "type": "string" + }, + "price": { + "$ref": "Price", + "description": "Total price for the line item. For example, if two items for $10 are purchased, the total price will be $20." + }, + "product": { + "$ref": "OrderLineItemProduct", + "description": "Product data as seen by customer from the time of the order placement. Note that certain attributes values (e.g. title or gtin) might be reformatted and no longer match values submitted via product feed." + }, + "quantityCanceled": { + "description": "Number of items canceled.", + "format": "uint32", + "type": "integer" + }, + "quantityDelivered": { + "description": "Number of items delivered.", + "format": "uint32", + "type": "integer" + }, + "quantityOrdered": { + "description": "Number of items ordered.", + "format": "uint32", + "type": "integer" + }, + "quantityPending": { + "description": "Number of items pending.", + "format": "uint32", + "type": "integer" + }, + "quantityReadyForPickup": { + "description": "Number of items ready for pickup.", + "format": "uint32", + "type": "integer" + }, + "quantityReturned": { + "description": "Number of items returned.", + "format": "uint32", + "type": "integer" + }, + "quantityShipped": { + "description": "Number of items shipped.", + "format": "uint32", + "type": "integer" + }, + "returnInfo": { + "$ref": "OrderLineItemReturnInfo", + "description": "Details of the return policy for the line item." + }, + "returns": { + "description": "Returns of the line item.", + "items": { + "$ref": "OrderReturn" + }, + "type": "array" + }, + "shippingDetails": { + "$ref": "OrderLineItemShippingDetails", + "description": "Details of the requested shipping for the line item." + }, + "tax": { + "$ref": "Price", + "description": "Total tax amount for the line item. For example, if two items are purchased, and each have a cost tax of $2, the total tax amount will be $4." + } + }, + "type": "object" + }, + "OrderLineItemProduct": { + "id": "OrderLineItemProduct", + "properties": { + "brand": { + "description": "Brand of the item.", + "type": "string" + }, + "channel": { + "description": "The item's channel (online or local). Acceptable values are: - \"`local`\" - \"`online`\" ", + "type": "string" + }, + "condition": { + "description": "Condition or state of the item. Acceptable values are: - \"`new`\" - \"`refurbished`\" - \"`used`\" ", + "type": "string" + }, + "contentLanguage": { + "description": "The two-letter ISO 639-1 language code for the item.", + "type": "string" + }, + "fees": { + "description": "Associated fees at order creation time.", + "items": { + "$ref": "OrderLineItemProductFee" + }, + "type": "array" + }, + "gtin": { + "description": "Global Trade Item Number (GTIN) of the item.", + "type": "string" + }, + "id": { + "description": "The REST ID of the product.", + "type": "string" + }, + "imageLink": { + "description": "URL of an image of the item.", + "type": "string" + }, + "itemGroupId": { + "description": "Shared identifier for all variants of the same product.", + "type": "string" + }, + "mpn": { + "description": "Manufacturer Part Number (MPN) of the item.", + "type": "string" + }, + "offerId": { + "description": "An identifier of the item.", + "type": "string" + }, + "price": { + "$ref": "Price", + "description": "Price of the item." + }, + "shownImage": { + "description": "URL to the cached image shown to the user when order was placed.", + "type": "string" + }, + "targetCountry": { + "description": "The CLDR territory // code of the target country of the product.", + "type": "string" + }, + "title": { + "description": "The title of the product.", + "type": "string" + }, + "variantAttributes": { + "description": "Variant attributes for the item. These are dimensions of the product, such as color, gender, material, pattern, and size. You can find a comprehensive list of variant attributes here.", + "items": { + "$ref": "OrderLineItemProductVariantAttribute" + }, + "type": "array" + } + }, + "type": "object" + }, + "OrderLineItemProductFee": { + "id": "OrderLineItemProductFee", + "properties": { + "amount": { + "$ref": "Price", + "description": "Amount of the fee." + }, + "name": { + "description": "Name of the fee.", + "type": "string" + } + }, + "type": "object" + }, + "OrderLineItemProductVariantAttribute": { + "id": "OrderLineItemProductVariantAttribute", + "properties": { + "dimension": { + "description": "The dimension of the variant.", + "type": "string" + }, + "value": { + "description": "The value for the dimension.", + "type": "string" + } + }, + "type": "object" + }, + "OrderLineItemReturnInfo": { + "id": "OrderLineItemReturnInfo", + "properties": { + "daysToReturn": { + "description": "Required. How many days later the item can be returned.", + "format": "int32", + "type": "integer" + }, + "isReturnable": { + "description": "Required. Whether the item is returnable.", + "type": "boolean" + }, + "policyUrl": { + "description": "Required. URL of the item return policy.", + "type": "string" + } + }, + "type": "object" + }, + "OrderLineItemShippingDetails": { + "id": "OrderLineItemShippingDetails", + "properties": { + "deliverByDate": { + "description": "Required. The delivery by date, in ISO 8601 format.", + "type": "string" + }, + "method": { + "$ref": "OrderLineItemShippingDetailsMethod", + "description": "Required. Details of the shipping method." + }, + "shipByDate": { + "description": "Required. The ship by date, in ISO 8601 format.", + "type": "string" + }, + "type": { + "description": "Type of shipment. Indicates whether `deliveryDetails` or `pickupDetails` is applicable for this shipment. Acceptable values are: - \"`delivery`\" - \"`pickup`\" ", + "type": "string" + } + }, + "type": "object" + }, + "OrderLineItemShippingDetailsMethod": { + "id": "OrderLineItemShippingDetailsMethod", + "properties": { + "carrier": { + "description": "The carrier for the shipping. Optional. See `shipments[].carrier` for a list of acceptable values.", + "type": "string" + }, + "maxDaysInTransit": { + "description": "Required. Maximum transit time.", + "format": "uint32", + "type": "integer" + }, + "methodName": { + "description": "Required. The name of the shipping method.", + "type": "string" + }, + "minDaysInTransit": { + "description": "Required. Minimum transit time.", + "format": "uint32", + "type": "integer" + } + }, + "type": "object" + }, + "OrderMerchantProvidedAnnotation": { + "id": "OrderMerchantProvidedAnnotation", + "properties": { + "key": { + "description": "Key for additional merchant provided (as key-value pairs) annotation about the line item.", + "type": "string" + }, + "value": { + "description": "Value for additional merchant provided (as key-value pairs) annotation about the line item.", + "type": "string" + } + }, + "type": "object" + }, + "OrderPaymentMethod": { + "id": "OrderPaymentMethod", + "properties": { + "billingAddress": { + "$ref": "OrderAddress", + "description": "The billing address." + }, + "expirationMonth": { + "description": "The card expiration month (January = 1, February = 2 etc.).", + "format": "int32", + "type": "integer" + }, + "expirationYear": { + "description": "The card expiration year (4-digit, e.g. 2015).", + "format": "int32", + "type": "integer" + }, + "lastFourDigits": { + "description": "The last four digits of the card number.", + "type": "string" + }, + "phoneNumber": { + "description": "The billing phone number.", + "type": "string" + }, + "type": { + "description": "The type of instrument. Acceptable values are: - \"`AMEX`\" - \"`DISCOVER`\" - \"`JCB`\" - \"`MASTERCARD`\" - \"`UNIONPAY`\" - \"`VISA`\" - \"``\" ", + "type": "string" + } + }, + "type": "object" + }, + "OrderPickupDetails": { + "id": "OrderPickupDetails", + "properties": { + "address": { + "$ref": "OrderAddress", + "description": "Address of the pickup location where the shipment should be sent. Note that `recipientName` in the address is the name of the business at the pickup location." + }, + "collectors": { + "description": "Collectors authorized to pick up shipment from the pickup location.", + "items": { + "$ref": "OrderPickupDetailsCollector" + }, + "type": "array" + }, + "locationId": { + "description": "ID of the pickup location.", + "type": "string" + } + }, + "type": "object" + }, + "OrderPickupDetailsCollector": { + "id": "OrderPickupDetailsCollector", + "properties": { + "name": { + "description": "Name of the person picking up the shipment.", + "type": "string" + }, + "phoneNumber": { + "description": "Phone number of the person picking up the shipment.", + "type": "string" + } + }, + "type": "object" + }, + "OrderRefund": { + "id": "OrderRefund", + "properties": { + "actor": { + "description": "The actor that created the refund. Acceptable values are: - \"`customer`\" - \"`googleBot`\" - \"`googleCustomerService`\" - \"`googlePayments`\" - \"`googleSabre`\" - \"`merchant`\" ", + "type": "string" + }, + "amount": { + "$ref": "Price", + "description": "The amount that is refunded." + }, + "creationDate": { + "description": "Date on which the item has been created, in ISO 8601 format.", + "type": "string" + }, + "reason": { + "description": "The reason for the refund. Acceptable values are: - \"`adjustment`\" - \"`autoPostInternal`\" - \"`autoPostInvalidBillingAddress`\" - \"`autoPostNoInventory`\" - \"`autoPostPriceError`\" - \"`autoPostUndeliverableShippingAddress`\" - \"`couponAbuse`\" - \"`courtesyAdjustment`\" - \"`customerCanceled`\" - \"`customerDiscretionaryReturn`\" - \"`customerInitiatedMerchantCancel`\" - \"`customerSupportRequested`\" - \"`deliveredLateByCarrier`\" - \"`deliveredTooLate`\" - \"`expiredItem`\" - \"`failToPushOrderGoogleError`\" - \"`failToPushOrderMerchantError`\" - \"`failToPushOrderMerchantFulfillmentError`\" - \"`failToPushOrderToMerchant`\" - \"`failToPushOrderToMerchantOutOfStock`\" - \"`feeAdjustment`\" - \"`invalidCoupon`\" - \"`lateShipmentCredit`\" - \"`malformedShippingAddress`\" - \"`merchantDidNotShipOnTime`\" - \"`noInventory`\" - \"`orderTimeout`\" - \"`other`\" - \"`paymentAbuse`\" - \"`paymentDeclined`\" - \"`priceAdjustment`\" - \"`priceError`\" - \"`productArrivedDamaged`\" - \"`productNotAsDescribed`\" - \"`promoReallocation`\" - \"`qualityNotAsExpected`\" - \"`returnRefundAbuse`\" - \"`shippingCostAdjustment`\" - \"`shippingPriceError`\" - \"`taxAdjustment`\" - \"`taxError`\" - \"`undeliverableShippingAddress`\" - \"`unsupportedPoBoxAddress`\" - \"`wrongProductShipped`\" ", + "type": "string" + }, + "reasonText": { + "description": "The explanation of the reason.", + "type": "string" + } + }, + "type": "object" + }, + "OrderReportDisbursement": { + "description": "Order disbursement. All methods require the payment analyst role.", + "id": "OrderReportDisbursement", + "properties": { + "disbursementAmount": { + "$ref": "Price", + "description": "The disbursement amount." + }, + "disbursementCreationDate": { + "description": "The disbursement date, in ISO 8601 format.", + "type": "string" + }, + "disbursementDate": { + "description": "The date the disbursement was initiated, in ISO 8601 format.", + "type": "string" + }, + "disbursementId": { + "description": "The ID of the disbursement.", + "type": "string" + }, + "merchantId": { + "description": "The ID of the managing account.", + "format": "uint64", + "type": "string" + } + }, + "type": "object" + }, + "OrderReportTransaction": { + "id": "OrderReportTransaction", + "properties": { + "disbursementAmount": { + "$ref": "Price", + "description": "The disbursement amount." + }, + "disbursementCreationDate": { + "description": "The date the disbursement was created, in ISO 8601 format.", + "type": "string" + }, + "disbursementDate": { + "description": "The date the disbursement was initiated, in ISO 8601 format.", + "type": "string" + }, + "disbursementId": { + "description": "The ID of the disbursement.", + "type": "string" + }, + "merchantId": { + "description": "The ID of the managing account.", + "format": "uint64", + "type": "string" + }, + "merchantOrderId": { + "description": "Merchant-provided ID of the order.", + "type": "string" + }, + "orderId": { + "description": "The ID of the order.", + "type": "string" + }, + "productAmount": { + "$ref": "Amount", + "description": "Total amount for the items." + }, + "productAmountWithRemittedTax": { + "$ref": "ProductAmount", + "description": "Total amount with remitted tax for the items." + }, + "transactionDate": { + "description": "The date of the transaction, in ISO 8601 format.", + "type": "string" + } + }, + "type": "object" + }, + "OrderReturn": { + "id": "OrderReturn", + "properties": { + "actor": { + "description": "The actor that created the refund. Acceptable values are: - \"`customer`\" - \"`googleBot`\" - \"`googleCustomerService`\" - \"`googlePayments`\" - \"`googleSabre`\" - \"`merchant`\" ", + "type": "string" + }, + "creationDate": { + "description": "Date on which the item has been created, in ISO 8601 format.", + "type": "string" + }, + "quantity": { + "description": "Quantity that is returned.", + "format": "uint32", + "type": "integer" + }, + "reason": { + "description": "The reason for the return. Acceptable values are: - \"`customerDiscretionaryReturn`\" - \"`customerInitiatedMerchantCancel`\" - \"`deliveredTooLate`\" - \"`expiredItem`\" - \"`invalidCoupon`\" - \"`malformedShippingAddress`\" - \"`other`\" - \"`productArrivedDamaged`\" - \"`productNotAsDescribed`\" - \"`qualityNotAsExpected`\" - \"`undeliverableShippingAddress`\" - \"`unsupportedPoBoxAddress`\" - \"`wrongProductShipped`\" ", + "type": "string" + }, + "reasonText": { + "description": "The explanation of the reason.", + "type": "string" + } + }, + "type": "object" + }, + "OrderShipment": { + "id": "OrderShipment", + "properties": { + "carrier": { + "description": "The carrier handling the shipment. For supported carriers, Google includes the carrier name and tracking URL in emails to customers. For select supported carriers, Google also automatically updates the shipment status based on the provided shipment ID. *Note:* You can also use unsupported carriers, but emails to customers will not include the carrier name or tracking URL, and there will be no automatic order status updates. Supported carriers for US are: - \"`ups`\" (United Parcel Service) *automatic status updates* - \"`usps`\" (United States Postal Service) *automatic status updates* - \"`fedex`\" (FedEx) *automatic status updates * - \"`dhl`\" (DHL eCommerce) *automatic status updates* (US only) - \"`ontrac`\" (OnTrac) *automatic status updates * - \"`dhl express`\" (DHL Express) - \"`deliv`\" (Deliv) - \"`dynamex`\" (TForce) - \"`lasership`\" (LaserShip) - \"`mpx`\" (Military Parcel Xpress) - \"`uds`\" (United Delivery Service) - \"`efw`\" (Estes Forwarding Worldwide) - \"`jd logistics`\" (JD Logistics) - \"`yunexpress`\" (YunExpress) - \"`china post`\" (China Post) - \"`china ems`\" (China Post Express Mail Service) - \"`singapore post`\" (Singapore Post) - \"`pos malaysia`\" (Pos Malaysia) - \"`postnl`\" (PostNL) - \"`ptt`\" (PTT Turkish Post) - \"`eub`\" (ePacket) - \"`chukou1`\" (Chukou1 Logistics) - \"`bestex`\" (Best Express) - \"`canada post`\" (Canada Post) - \"`purolator`\" (Purolator) - \"`canpar`\" (Canpar) - \"`india post`\" (India Post) - \"`blue dart`\" (Blue Dart) - \"`delhivery`\" (Delhivery) - \"`dtdc`\" (DTDC) - \"`tpc india`\" (TPC India) Supported carriers for FR are: - \"`la poste`\" (La Poste) *automatic status updates * - \"`colissimo`\" (Colissimo by La Poste) *automatic status updates* - \"`ups`\" (United Parcel Service) *automatic status updates * - \"`chronopost`\" (Chronopost by La Poste) - \"`gls`\" (General Logistics Systems France) - \"`dpd`\" (DPD Group by GeoPost) - \"`bpost`\" (Belgian Post Group) - \"`colis prive`\" (Colis Priv\u00e9) - \"`boxtal`\" (Boxtal) - \"`geodis`\" (GEODIS) - \"`tnt`\" (TNT) - \"`db schenker`\" (DB Schenker) - \"`aramex`\" (Aramex) ", + "type": "string" + }, + "creationDate": { + "description": "Date on which the shipment has been created, in ISO 8601 format.", + "type": "string" + }, + "deliveryDate": { + "description": "Date on which the shipment has been delivered, in ISO 8601 format. Present only if `status` is `delivered`", + "type": "string" + }, + "id": { + "description": "The ID of the shipment.", + "type": "string" + }, + "lineItems": { + "description": "The line items that are shipped.", + "items": { + "$ref": "OrderShipmentLineItemShipment" + }, + "type": "array" + }, + "scheduledDeliveryDetails": { + "$ref": "OrderShipmentScheduledDeliveryDetails", + "description": "Delivery details of the shipment if scheduling is needed." + }, + "status": { + "description": "The status of the shipment. Acceptable values are: - \"`delivered`\" - \"`readyForPickup`\" - \"`shipped`\" - \"`undeliverable`\" ", + "type": "string" + }, + "trackingId": { + "description": "The tracking ID for the shipment.", + "type": "string" + } + }, + "type": "object" + }, + "OrderShipmentLineItemShipment": { + "id": "OrderShipmentLineItemShipment", + "properties": { + "lineItemId": { + "description": "The ID of the line item that is shipped. This value is assigned by Google when an order is created. Either lineItemId or productId is required.", + "type": "string" + }, + "productId": { + "description": "The ID of the product to ship. This is the REST ID used in the products service. Either lineItemId or productId is required.", + "type": "string" + }, + "quantity": { + "description": "The quantity that is shipped.", + "format": "uint32", + "type": "integer" + } + }, + "type": "object" + }, + "OrderShipmentScheduledDeliveryDetails": { + "id": "OrderShipmentScheduledDeliveryDetails", + "properties": { + "carrierPhoneNumber": { + "description": "The phone number of the carrier fulfilling the delivery. The phone number is formatted as the international notation in ITU-T Recommendation E.123 (e.g., \"+41 44 668 1800\").", + "type": "string" + }, + "scheduledDate": { + "description": "The date a shipment is scheduled for delivery, in ISO 8601 format.", + "type": "string" + } + }, + "type": "object" + }, + "OrderinvoicesCreateChargeInvoiceRequest": { + "id": "OrderinvoicesCreateChargeInvoiceRequest", + "properties": { + "invoiceId": { + "description": "[required] The ID of the invoice.", + "type": "string" + }, + "invoiceSummary": { + "$ref": "InvoiceSummary", + "description": "[required] Invoice summary." + }, + "lineItemInvoices": { + "description": "[required] Invoice details per line item.", + "items": { + "$ref": "ShipmentInvoiceLineItemInvoice" + }, + "type": "array" + }, + "operationId": { + "description": "[required] The ID of the operation, unique across all operations for a given order.", + "type": "string" + }, + "shipmentGroupId": { + "description": "[required] ID of the shipment group. It is assigned by the merchant in the `shipLineItems` method and is used to group multiple line items that have the same kind of shipping charges.", + "type": "string" + } + }, + "type": "object" + }, + "OrderinvoicesCreateChargeInvoiceResponse": { + "id": "OrderinvoicesCreateChargeInvoiceResponse", + "properties": { + "executionStatus": { + "description": "The status of the execution. Acceptable values are: - \"`duplicate`\" - \"`executed`\" ", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"content#orderinvoicesCreateChargeInvoiceResponse\".", + "type": "string" + } + }, + "type": "object" + }, + "OrderinvoicesCreateRefundInvoiceRequest": { + "id": "OrderinvoicesCreateRefundInvoiceRequest", + "properties": { + "invoiceId": { + "description": "[required] The ID of the invoice.", + "type": "string" + }, + "operationId": { + "description": "[required] The ID of the operation, unique across all operations for a given order.", + "type": "string" + }, + "refundOnlyOption": { + "$ref": "OrderinvoicesCustomBatchRequestEntryCreateRefundInvoiceRefundOption", + "description": "Option to create a refund-only invoice. Exactly one of `refundOnlyOption` or `returnOption` must be provided." + }, + "returnOption": { + "$ref": "OrderinvoicesCustomBatchRequestEntryCreateRefundInvoiceReturnOption", + "description": "Option to create an invoice for a refund and mark all items within the invoice as returned. Exactly one of `refundOnlyOption` or `returnOption` must be provided." + }, + "shipmentInvoices": { + "description": "Invoice details for different shipment groups.", + "items": { + "$ref": "ShipmentInvoice" + }, + "type": "array" + } + }, + "type": "object" + }, + "OrderinvoicesCreateRefundInvoiceResponse": { + "id": "OrderinvoicesCreateRefundInvoiceResponse", + "properties": { + "executionStatus": { + "description": "The status of the execution. Acceptable values are: - \"`duplicate`\" - \"`executed`\" ", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"content#orderinvoicesCreateRefundInvoiceResponse\".", + "type": "string" + } + }, + "type": "object" + }, + "OrderinvoicesCustomBatchRequestEntryCreateRefundInvoiceRefundOption": { + "id": "OrderinvoicesCustomBatchRequestEntryCreateRefundInvoiceRefundOption", + "properties": { + "description": { + "description": "Optional description of the refund reason.", + "type": "string" + }, + "reason": { + "description": "[required] Reason for the refund. Acceptable values are: - \"`adjustment`\" - \"`autoPostInternal`\" - \"`autoPostInvalidBillingAddress`\" - \"`autoPostNoInventory`\" - \"`autoPostPriceError`\" - \"`autoPostUndeliverableShippingAddress`\" - \"`couponAbuse`\" - \"`courtesyAdjustment`\" - \"`customerCanceled`\" - \"`customerDiscretionaryReturn`\" - \"`customerInitiatedMerchantCancel`\" - \"`customerSupportRequested`\" - \"`deliveredLateByCarrier`\" - \"`deliveredTooLate`\" - \"`expiredItem`\" - \"`failToPushOrderGoogleError`\" - \"`failToPushOrderMerchantError`\" - \"`failToPushOrderMerchantFulfillmentError`\" - \"`failToPushOrderToMerchant`\" - \"`failToPushOrderToMerchantOutOfStock`\" - \"`feeAdjustment`\" - \"`invalidCoupon`\" - \"`lateShipmentCredit`\" - \"`malformedShippingAddress`\" - \"`merchantDidNotShipOnTime`\" - \"`noInventory`\" - \"`orderTimeout`\" - \"`other`\" - \"`paymentAbuse`\" - \"`paymentDeclined`\" - \"`priceAdjustment`\" - \"`priceError`\" - \"`productArrivedDamaged`\" - \"`productNotAsDescribed`\" - \"`promoReallocation`\" - \"`qualityNotAsExpected`\" - \"`returnRefundAbuse`\" - \"`shippingCostAdjustment`\" - \"`shippingPriceError`\" - \"`taxAdjustment`\" - \"`taxError`\" - \"`undeliverableShippingAddress`\" - \"`unsupportedPoBoxAddress`\" - \"`wrongProductShipped`\" ", + "type": "string" + } + }, + "type": "object" + }, + "OrderinvoicesCustomBatchRequestEntryCreateRefundInvoiceReturnOption": { + "id": "OrderinvoicesCustomBatchRequestEntryCreateRefundInvoiceReturnOption", + "properties": { + "description": { + "description": "Optional description of the return reason.", + "type": "string" + }, + "reason": { + "description": "[required] Reason for the return. Acceptable values are: - \"`customerDiscretionaryReturn`\" - \"`customerInitiatedMerchantCancel`\" - \"`deliveredTooLate`\" - \"`expiredItem`\" - \"`invalidCoupon`\" - \"`malformedShippingAddress`\" - \"`other`\" - \"`productArrivedDamaged`\" - \"`productNotAsDescribed`\" - \"`qualityNotAsExpected`\" - \"`undeliverableShippingAddress`\" - \"`unsupportedPoBoxAddress`\" - \"`wrongProductShipped`\" ", + "type": "string" + } + }, + "type": "object" + }, + "OrderreportsListDisbursementsResponse": { + "id": "OrderreportsListDisbursementsResponse", + "properties": { + "disbursements": { + "description": "The list of disbursements.", + "items": { + "$ref": "OrderReportDisbursement" + }, + "type": "array" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"content#orderreportsListDisbursementsResponse\".", + "type": "string" + }, + "nextPageToken": { + "description": "The token for the retrieval of the next page of disbursements.", + "type": "string" + } + }, + "type": "object" + }, + "OrderreportsListTransactionsResponse": { + "id": "OrderreportsListTransactionsResponse", + "properties": { + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"content#orderreportsListTransactionsResponse\".", + "type": "string" + }, + "nextPageToken": { + "description": "The token for the retrieval of the next page of transactions.", + "type": "string" + }, + "transactions": { + "description": "The list of transactions.", + "items": { + "$ref": "OrderReportTransaction" + }, + "type": "array" + } + }, + "type": "object" + }, + "OrderreturnsListResponse": { + "id": "OrderreturnsListResponse", + "properties": { + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"content#orderreturnsListResponse\".", + "type": "string" + }, + "nextPageToken": { + "description": "The token for the retrieval of the next page of returns.", + "type": "string" + }, + "resources": { + "items": { + "$ref": "MerchantOrderReturn" + }, + "type": "array" + } + }, + "type": "object" + }, + "OrdersAcknowledgeRequest": { + "id": "OrdersAcknowledgeRequest", + "properties": { + "operationId": { + "description": "The ID of the operation. Unique across all operations for a given order.", + "type": "string" + } + }, + "type": "object" + }, + "OrdersAcknowledgeResponse": { + "id": "OrdersAcknowledgeResponse", + "properties": { + "executionStatus": { + "description": "The status of the execution. Acceptable values are: - \"`duplicate`\" - \"`executed`\" ", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"content#ordersAcknowledgeResponse\".", + "type": "string" + } + }, + "type": "object" + }, + "OrdersAdvanceTestOrderResponse": { + "id": "OrdersAdvanceTestOrderResponse", + "properties": { + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"content#ordersAdvanceTestOrderResponse\".", + "type": "string" + } + }, + "type": "object" + }, + "OrdersCancelLineItemRequest": { + "id": "OrdersCancelLineItemRequest", + "properties": { + "amount": { + "$ref": "Price", + "description": "Deprecated. Please use amountPretax and amountTax instead." + }, + "amountPretax": { + "$ref": "Price", + "description": "Amount to refund for the cancelation. Optional. If not set, Google will calculate the default based on the price and tax of the items involved. The amount must not be larger than the net amount left on the order." + }, + "amountTax": { + "$ref": "Price", + "description": "Tax amount that corresponds to cancellation amount in amountPretax. Optional, but if filled, then amountPretax must be set. Calculated automatically if not provided." + }, + "lineItemId": { + "description": "The ID of the line item to cancel. Either lineItemId or productId is required.", + "type": "string" + }, + "operationId": { + "description": "The ID of the operation. Unique across all operations for a given order.", + "type": "string" + }, + "productId": { + "description": "The ID of the product to cancel. This is the REST ID used in the products service. Either lineItemId or productId is required.", + "type": "string" + }, + "quantity": { + "description": "The quantity to cancel.", + "format": "uint32", + "type": "integer" + }, + "reason": { + "description": "The reason for the cancellation. Acceptable values are: - \"`customerInitiatedCancel`\" - \"`invalidCoupon`\" - \"`malformedShippingAddress`\" - \"`noInventory`\" - \"`other`\" - \"`priceError`\" - \"`shippingPriceError`\" - \"`taxError`\" - \"`undeliverableShippingAddress`\" - \"`unsupportedPoBoxAddress`\" ", + "type": "string" + }, + "reasonText": { + "description": "The explanation of the reason.", + "type": "string" + } + }, + "type": "object" + }, + "OrdersCancelLineItemResponse": { + "id": "OrdersCancelLineItemResponse", + "properties": { + "executionStatus": { + "description": "The status of the execution. Acceptable values are: - \"`duplicate`\" - \"`executed`\" ", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"content#ordersCancelLineItemResponse\".", + "type": "string" + } + }, + "type": "object" + }, + "OrdersCancelRequest": { + "id": "OrdersCancelRequest", + "properties": { + "operationId": { + "description": "The ID of the operation. Unique across all operations for a given order.", + "type": "string" + }, + "reason": { + "description": "The reason for the cancellation. Acceptable values are: - \"`customerInitiatedCancel`\" - \"`invalidCoupon`\" - \"`malformedShippingAddress`\" - \"`noInventory`\" - \"`other`\" - \"`priceError`\" - \"`shippingPriceError`\" - \"`taxError`\" - \"`undeliverableShippingAddress`\" - \"`unsupportedPoBoxAddress`\" ", + "type": "string" + }, + "reasonText": { + "description": "The explanation of the reason.", + "type": "string" + } + }, + "type": "object" + }, + "OrdersCancelResponse": { + "id": "OrdersCancelResponse", + "properties": { + "executionStatus": { + "description": "The status of the execution. Acceptable values are: - \"`duplicate`\" - \"`executed`\" ", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"content#ordersCancelResponse\".", + "type": "string" + } + }, + "type": "object" + }, + "OrdersCancelTestOrderByCustomerRequest": { + "id": "OrdersCancelTestOrderByCustomerRequest", + "properties": { + "reason": { + "description": "The reason for the cancellation. Acceptable values are: - \"`changedMind`\" - \"`orderedWrongItem`\" - \"`other`\" ", + "type": "string" + } + }, + "type": "object" + }, + "OrdersCancelTestOrderByCustomerResponse": { + "id": "OrdersCancelTestOrderByCustomerResponse", + "properties": { + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"content#ordersCancelTestOrderByCustomerResponse\".", + "type": "string" + } + }, + "type": "object" + }, + "OrdersCreateTestOrderRequest": { + "id": "OrdersCreateTestOrderRequest", + "properties": { + "country": { + "description": "The CLDR territory code of the country of the test order to create. Affects the currency and addresses of orders created via `template_name`, or the addresses of orders created via `test_order`. Acceptable values are: - \"`US`\" - \"`FR`\" Defaults to `US`.", + "type": "string" + }, + "templateName": { + "description": "The test order template to use. Specify as an alternative to `testOrder` as a shortcut for retrieving a template and then creating an order using that template. Acceptable values are: - \"`template1`\" - \"`template1a`\" - \"`template1b`\" - \"`template2`\" - \"`template3`\" ", + "type": "string" + }, + "testOrder": { + "$ref": "TestOrder", + "description": "The test order to create." + } + }, + "type": "object" + }, + "OrdersCreateTestOrderResponse": { + "id": "OrdersCreateTestOrderResponse", + "properties": { + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"content#ordersCreateTestOrderResponse\".", + "type": "string" + }, + "orderId": { + "description": "The ID of the newly created test order.", + "type": "string" + } + }, + "type": "object" + }, + "OrdersCreateTestReturnRequest": { + "id": "OrdersCreateTestReturnRequest", + "properties": { + "items": { + "description": "Returned items.", + "items": { + "$ref": "OrdersCustomBatchRequestEntryCreateTestReturnReturnItem" + }, + "type": "array" + } + }, + "type": "object" + }, + "OrdersCreateTestReturnResponse": { + "id": "OrdersCreateTestReturnResponse", + "properties": { + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"content#ordersCreateTestReturnResponse\".", + "type": "string" + }, + "returnId": { + "description": "The ID of the newly created test order return.", + "type": "string" + } + }, + "type": "object" + }, + "OrdersCustomBatchRequest": { + "id": "OrdersCustomBatchRequest", + "properties": { + "entries": { + "description": "The request entries to be processed in the batch.", + "items": { + "$ref": "OrdersCustomBatchRequestEntry" + }, + "type": "array" + } + }, + "type": "object" + }, + "OrdersCustomBatchRequestEntry": { + "id": "OrdersCustomBatchRequestEntry", + "properties": { + "batchId": { + "description": "An entry ID, unique within the batch request.", + "format": "uint32", + "type": "integer" + }, + "cancel": { + "$ref": "OrdersCustomBatchRequestEntryCancel", + "description": "Required for `cancel` method." + }, + "cancelLineItem": { + "$ref": "OrdersCustomBatchRequestEntryCancelLineItem", + "description": "Required for `cancelLineItem` method." + }, + "inStoreRefundLineItem": { + "$ref": "OrdersCustomBatchRequestEntryInStoreRefundLineItem", + "description": "Required for `inStoreReturnLineItem` method." + }, + "merchantId": { + "description": "The ID of the managing account.", + "format": "uint64", + "type": "string" + }, + "merchantOrderId": { + "description": "The merchant order ID. Required for `updateMerchantOrderId` and `getByMerchantOrderId` methods.", + "type": "string" + }, + "method": { + "description": "The method of the batch entry. Acceptable values are: - \"`acknowledge`\" - \"`cancel`\" - \"`cancelLineItem`\" - \"`get`\" - \"`getByMerchantOrderId`\" - \"`inStoreRefundLineItem`\" - \"`refund`\" - \"`rejectReturnLineItem`\" - \"`returnLineItem`\" - \"`returnRefundLineItem`\" - \"`setLineItemMetadata`\" - \"`shipLineItems`\" - \"`updateLineItemShippingDetails`\" - \"`updateMerchantOrderId`\" - \"`updateShipment`\" ", + "type": "string" + }, + "operationId": { + "description": "The ID of the operation. Unique across all operations for a given order. Required for all methods beside `get` and `getByMerchantOrderId`.", + "type": "string" + }, + "orderId": { + "description": "The ID of the order. Required for all methods beside `getByMerchantOrderId`.", + "type": "string" + }, + "refund": { + "$ref": "OrdersCustomBatchRequestEntryRefund", + "description": "Required for `refund` method." + }, + "rejectReturnLineItem": { + "$ref": "OrdersCustomBatchRequestEntryRejectReturnLineItem", + "description": "Required for `rejectReturnLineItem` method." + }, + "returnLineItem": { + "$ref": "OrdersCustomBatchRequestEntryReturnLineItem", + "description": "Required for `returnLineItem` method." + }, + "returnRefundLineItem": { + "$ref": "OrdersCustomBatchRequestEntryReturnRefundLineItem", + "description": "Required for `returnRefundLineItem` method." + }, + "setLineItemMetadata": { + "$ref": "OrdersCustomBatchRequestEntrySetLineItemMetadata", + "description": "Required for `setLineItemMetadata` method." + }, + "shipLineItems": { + "$ref": "OrdersCustomBatchRequestEntryShipLineItems", + "description": "Required for `shipLineItems` method." + }, + "updateLineItemShippingDetails": { + "$ref": "OrdersCustomBatchRequestEntryUpdateLineItemShippingDetails", + "description": "Required for `updateLineItemShippingDate` method." + }, + "updateShipment": { + "$ref": "OrdersCustomBatchRequestEntryUpdateShipment", + "description": "Required for `updateShipment` method." + } + }, + "type": "object" + }, + "OrdersCustomBatchRequestEntryCancel": { + "id": "OrdersCustomBatchRequestEntryCancel", + "properties": { + "reason": { + "description": "The reason for the cancellation. Acceptable values are: - \"`customerInitiatedCancel`\" - \"`invalidCoupon`\" - \"`malformedShippingAddress`\" - \"`noInventory`\" - \"`other`\" - \"`priceError`\" - \"`shippingPriceError`\" - \"`taxError`\" - \"`undeliverableShippingAddress`\" - \"`unsupportedPoBoxAddress`\" ", + "type": "string" + }, + "reasonText": { + "description": "The explanation of the reason.", + "type": "string" + } + }, + "type": "object" + }, + "OrdersCustomBatchRequestEntryCancelLineItem": { + "id": "OrdersCustomBatchRequestEntryCancelLineItem", + "properties": { + "amount": { + "$ref": "Price", + "description": "Deprecated. Please use amountPretax and amountTax instead." + }, + "amountPretax": { + "$ref": "Price", + "description": "Amount to refund for the cancelation. Optional. If not set, Google will calculate the default based on the price and tax of the items involved. The amount must not be larger than the net amount left on the order." + }, + "amountTax": { + "$ref": "Price", + "description": "Tax amount that corresponds to cancellation amount in amountPretax. Optional, but if filled, then amountPretax must be set. Calculated automatically if not provided." + }, + "lineItemId": { + "description": "The ID of the line item to cancel. Either lineItemId or productId is required.", + "type": "string" + }, + "productId": { + "description": "The ID of the product to cancel. This is the REST ID used in the products service. Either lineItemId or productId is required.", + "type": "string" + }, + "quantity": { + "description": "The quantity to cancel.", + "format": "uint32", + "type": "integer" + }, + "reason": { + "description": "The reason for the cancellation. Acceptable values are: - \"`customerInitiatedCancel`\" - \"`invalidCoupon`\" - \"`malformedShippingAddress`\" - \"`noInventory`\" - \"`other`\" - \"`priceError`\" - \"`shippingPriceError`\" - \"`taxError`\" - \"`undeliverableShippingAddress`\" - \"`unsupportedPoBoxAddress`\" ", + "type": "string" + }, + "reasonText": { + "description": "The explanation of the reason.", + "type": "string" + } + }, + "type": "object" + }, + "OrdersCustomBatchRequestEntryCreateTestReturnReturnItem": { + "id": "OrdersCustomBatchRequestEntryCreateTestReturnReturnItem", + "properties": { + "lineItemId": { + "description": "The ID of the line item to return.", + "type": "string" + }, + "quantity": { + "description": "Quantity that is returned.", + "format": "uint32", + "type": "integer" + } + }, + "type": "object" + }, + "OrdersCustomBatchRequestEntryInStoreRefundLineItem": { + "id": "OrdersCustomBatchRequestEntryInStoreRefundLineItem", + "properties": { + "amountPretax": { + "$ref": "Price", + "description": "The amount that is refunded. Required." + }, + "amountTax": { + "$ref": "Price", + "description": "Tax amount that correspond to refund amount in amountPretax. Required." + }, + "lineItemId": { + "description": "The ID of the line item to return. Either lineItemId or productId is required.", + "type": "string" + }, + "productId": { + "description": "The ID of the product to return. This is the REST ID used in the products service. Either lineItemId or productId is required.", + "type": "string" + }, + "quantity": { + "description": "The quantity to return and refund.", + "format": "uint32", + "type": "integer" + }, + "reason": { + "description": "The reason for the return. Acceptable values are: - \"`customerDiscretionaryReturn`\" - \"`customerInitiatedMerchantCancel`\" - \"`deliveredTooLate`\" - \"`expiredItem`\" - \"`invalidCoupon`\" - \"`malformedShippingAddress`\" - \"`other`\" - \"`productArrivedDamaged`\" - \"`productNotAsDescribed`\" - \"`qualityNotAsExpected`\" - \"`undeliverableShippingAddress`\" - \"`unsupportedPoBoxAddress`\" - \"`wrongProductShipped`\" ", + "type": "string" + }, + "reasonText": { + "description": "The explanation of the reason.", + "type": "string" + } + }, + "type": "object" + }, + "OrdersCustomBatchRequestEntryRefund": { + "id": "OrdersCustomBatchRequestEntryRefund", + "properties": { + "amount": { + "$ref": "Price", + "description": "Deprecated. Please use amountPretax and amountTax instead." + }, + "amountPretax": { + "$ref": "Price", + "description": "The amount that is refunded. Either amount or amountPretax should be filled." + }, + "amountTax": { + "$ref": "Price", + "description": "Tax amount that corresponds to refund amount in amountPretax. Optional, but if filled, amountPretax must be set. Calculated automatically if not provided." + }, + "reason": { + "description": "The reason for the refund. Acceptable values are: - \"`adjustment`\" - \"`courtesyAdjustment`\" - \"`customerCanceled`\" - \"`customerDiscretionaryReturn`\" - \"`deliveredLateByCarrier`\" - \"`feeAdjustment`\" - \"`lateShipmentCredit`\" - \"`noInventory`\" - \"`other`\" - \"`priceError`\" - \"`productArrivedDamaged`\" - \"`productNotAsDescribed`\" - \"`shippingCostAdjustment`\" - \"`taxAdjustment`\" - \"`undeliverableShippingAddress`\" - \"`wrongProductShipped`\" ", + "type": "string" + }, + "reasonText": { + "description": "The explanation of the reason.", + "type": "string" + } + }, + "type": "object" + }, + "OrdersCustomBatchRequestEntryRejectReturnLineItem": { + "id": "OrdersCustomBatchRequestEntryRejectReturnLineItem", + "properties": { + "lineItemId": { + "description": "The ID of the line item to return. Either lineItemId or productId is required.", + "type": "string" + }, + "productId": { + "description": "The ID of the product to return. This is the REST ID used in the products service. Either lineItemId or productId is required.", + "type": "string" + }, + "quantity": { + "description": "The quantity to return and refund.", + "format": "uint32", + "type": "integer" + }, + "reason": { + "description": "The reason for the return. Acceptable values are: - \"`damagedOrUsed`\" - \"`missingComponent`\" - \"`notEligible`\" - \"`other`\" - \"`outOfReturnWindow`\" ", + "type": "string" + }, + "reasonText": { + "description": "The explanation of the reason.", + "type": "string" + } + }, + "type": "object" + }, + "OrdersCustomBatchRequestEntryReturnLineItem": { + "id": "OrdersCustomBatchRequestEntryReturnLineItem", + "properties": { + "lineItemId": { + "description": "The ID of the line item to return. Either lineItemId or productId is required.", + "type": "string" + }, + "productId": { + "description": "The ID of the product to return. This is the REST ID used in the products service. Either lineItemId or productId is required.", + "type": "string" + }, + "quantity": { + "description": "The quantity to return.", + "format": "uint32", + "type": "integer" + }, + "reason": { + "description": "The reason for the return. Acceptable values are: - \"`customerDiscretionaryReturn`\" - \"`customerInitiatedMerchantCancel`\" - \"`deliveredTooLate`\" - \"`expiredItem`\" - \"`invalidCoupon`\" - \"`malformedShippingAddress`\" - \"`other`\" - \"`productArrivedDamaged`\" - \"`productNotAsDescribed`\" - \"`qualityNotAsExpected`\" - \"`undeliverableShippingAddress`\" - \"`unsupportedPoBoxAddress`\" - \"`wrongProductShipped`\" ", + "type": "string" + }, + "reasonText": { + "description": "The explanation of the reason.", + "type": "string" + } + }, + "type": "object" + }, + "OrdersCustomBatchRequestEntryReturnRefundLineItem": { + "id": "OrdersCustomBatchRequestEntryReturnRefundLineItem", + "properties": { + "amountPretax": { + "$ref": "Price", + "description": "The amount that is refunded. If omitted, refundless return is assumed (same as calling returnLineItem method)." + }, + "amountTax": { + "$ref": "Price", + "description": "Tax amount that corresponds to refund amount in amountPretax. Optional, but if filled, then amountPretax must be set. Calculated automatically if not provided." + }, + "lineItemId": { + "description": "The ID of the line item to return. Either lineItemId or productId is required.", + "type": "string" + }, + "productId": { + "description": "The ID of the product to return. This is the REST ID used in the products service. Either lineItemId or productId is required.", + "type": "string" + }, + "quantity": { + "description": "The quantity to return and refund.", + "format": "uint32", + "type": "integer" + }, + "reason": { + "description": "The reason for the return. Acceptable values are: - \"`customerDiscretionaryReturn`\" - \"`customerInitiatedMerchantCancel`\" - \"`deliveredTooLate`\" - \"`expiredItem`\" - \"`invalidCoupon`\" - \"`malformedShippingAddress`\" - \"`other`\" - \"`productArrivedDamaged`\" - \"`productNotAsDescribed`\" - \"`qualityNotAsExpected`\" - \"`undeliverableShippingAddress`\" - \"`unsupportedPoBoxAddress`\" - \"`wrongProductShipped`\" ", + "type": "string" + }, + "reasonText": { + "description": "The explanation of the reason.", + "type": "string" + } + }, + "type": "object" + }, + "OrdersCustomBatchRequestEntrySetLineItemMetadata": { + "id": "OrdersCustomBatchRequestEntrySetLineItemMetadata", + "properties": { + "annotations": { + "items": { + "$ref": "OrderMerchantProvidedAnnotation" + }, + "type": "array" + }, + "lineItemId": { + "description": "The ID of the line item to set metadata. Either lineItemId or productId is required.", + "type": "string" + }, + "productId": { + "description": "The ID of the product to set metadata. This is the REST ID used in the products service. Either lineItemId or productId is required.", + "type": "string" + } + }, + "type": "object" + }, + "OrdersCustomBatchRequestEntryShipLineItems": { + "id": "OrdersCustomBatchRequestEntryShipLineItems", + "properties": { + "carrier": { + "description": "Deprecated. Please use shipmentInfo instead. The carrier handling the shipment. See `shipments[].carrier` in the Orders resource representation for a list of acceptable values.", + "type": "string" + }, + "lineItems": { + "description": "Line items to ship.", + "items": { + "$ref": "OrderShipmentLineItemShipment" + }, + "type": "array" + }, + "shipmentGroupId": { + "description": "ID of the shipment group. Required for orders that use the orderinvoices service.", + "type": "string" + }, + "shipmentId": { + "description": "Deprecated. Please use shipmentInfo instead. The ID of the shipment.", + "type": "string" + }, + "shipmentInfos": { + "description": "Shipment information. This field is repeated because a single line item can be shipped in several packages (and have several tracking IDs).", + "items": { + "$ref": "OrdersCustomBatchRequestEntryShipLineItemsShipmentInfo" + }, + "type": "array" + }, + "trackingId": { + "description": "Deprecated. Please use shipmentInfo instead. The tracking ID for the shipment.", + "type": "string" + } + }, + "type": "object" + }, + "OrdersCustomBatchRequestEntryShipLineItemsShipmentInfo": { + "id": "OrdersCustomBatchRequestEntryShipLineItemsShipmentInfo", + "properties": { + "carrier": { + "description": "The carrier handling the shipment. See `shipments[].carrier` in the Orders resource representation for a list of acceptable values.", + "type": "string" + }, + "shipmentId": { + "description": "Required. The ID of the shipment. This is assigned by the merchant and is unique to each shipment.", + "type": "string" + }, + "trackingId": { + "description": "The tracking ID for the shipment.", + "type": "string" + } + }, + "type": "object" + }, + "OrdersCustomBatchRequestEntryUpdateLineItemShippingDetails": { + "id": "OrdersCustomBatchRequestEntryUpdateLineItemShippingDetails", + "properties": { + "deliverByDate": { + "description": "Updated delivery by date, in ISO 8601 format. If not specified only ship by date is updated. Provided date should be within 1 year timeframe and can not be a date in the past.", + "type": "string" + }, + "lineItemId": { + "description": "The ID of the line item to set metadata. Either lineItemId or productId is required.", + "type": "string" + }, + "productId": { + "description": "The ID of the product to set metadata. This is the REST ID used in the products service. Either lineItemId or productId is required.", + "type": "string" + }, + "shipByDate": { + "description": "Updated ship by date, in ISO 8601 format. If not specified only deliver by date is updated. Provided date should be within 1 year timeframe and can not be a date in the past.", + "type": "string" + } + }, + "type": "object" + }, + "OrdersCustomBatchRequestEntryUpdateShipment": { + "id": "OrdersCustomBatchRequestEntryUpdateShipment", + "properties": { + "carrier": { + "description": "The carrier handling the shipment. Not updated if missing. See `shipments[].carrier` in the Orders resource representation for a list of acceptable values.", + "type": "string" + }, + "deliveryDate": { + "description": "Date on which the shipment has been delivered, in ISO 8601 format. Optional and can be provided only if `status` is `delivered`.", + "type": "string" + }, + "shipmentId": { + "description": "The ID of the shipment.", + "type": "string" + }, + "status": { + "description": "New status for the shipment. Not updated if missing. Acceptable values are: - \"`delivered`\" - \"`undeliverable`\" - \"`readyForPickup`\" ", + "type": "string" + }, + "trackingId": { + "description": "The tracking ID for the shipment. Not updated if missing.", + "type": "string" + } + }, + "type": "object" + }, + "OrdersCustomBatchResponse": { + "id": "OrdersCustomBatchResponse", + "properties": { + "entries": { + "description": "The result of the execution of the batch requests.", + "items": { + "$ref": "OrdersCustomBatchResponseEntry" + }, + "type": "array" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"content#ordersCustomBatchResponse\".", + "type": "string" + } + }, + "type": "object" + }, + "OrdersCustomBatchResponseEntry": { + "id": "OrdersCustomBatchResponseEntry", + "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 defined if and only if the request failed." + }, + "executionStatus": { + "description": "The status of the execution. Only defined if 1. the request was successful; and 2. the method is not `get`, `getByMerchantOrderId`, or one of the test methods. Acceptable values are: - \"`duplicate`\" - \"`executed`\" ", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"`content#ordersCustomBatchResponseEntry`\"", + "type": "string" + }, + "order": { + "$ref": "Order", + "description": "The retrieved order. Only defined if the method is `get` and if the request was successful." + } + }, + "type": "object" + }, + "OrdersGetByMerchantOrderIdResponse": { + "id": "OrdersGetByMerchantOrderIdResponse", + "properties": { + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"content#ordersGetByMerchantOrderIdResponse\".", + "type": "string" + }, + "order": { + "$ref": "Order", + "description": "The requested order." + } + }, + "type": "object" + }, + "OrdersGetTestOrderTemplateResponse": { + "id": "OrdersGetTestOrderTemplateResponse", + "properties": { + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"content#ordersGetTestOrderTemplateResponse\".", + "type": "string" + }, + "template": { + "$ref": "TestOrder", + "description": "The requested test order template." + } + }, + "type": "object" + }, + "OrdersInStoreRefundLineItemRequest": { + "id": "OrdersInStoreRefundLineItemRequest", + "properties": { + "amountPretax": { + "$ref": "Price", + "description": "The amount that is refunded. Required." + }, + "amountTax": { + "$ref": "Price", + "description": "Tax amount that correspond to refund amount in amountPretax. Required." + }, + "lineItemId": { + "description": "The ID of the line item to return. Either lineItemId or productId is required.", + "type": "string" + }, + "operationId": { + "description": "The ID of the operation. Unique across all operations for a given order.", + "type": "string" + }, + "productId": { + "description": "The ID of the product to return. This is the REST ID used in the products service. Either lineItemId or productId is required.", + "type": "string" + }, + "quantity": { + "description": "The quantity to return and refund.", + "format": "uint32", + "type": "integer" + }, + "reason": { + "description": "The reason for the return. Acceptable values are: - \"`customerDiscretionaryReturn`\" - \"`customerInitiatedMerchantCancel`\" - \"`deliveredTooLate`\" - \"`expiredItem`\" - \"`invalidCoupon`\" - \"`malformedShippingAddress`\" - \"`other`\" - \"`productArrivedDamaged`\" - \"`productNotAsDescribed`\" - \"`qualityNotAsExpected`\" - \"`undeliverableShippingAddress`\" - \"`unsupportedPoBoxAddress`\" - \"`wrongProductShipped`\" ", + "type": "string" + }, + "reasonText": { + "description": "The explanation of the reason.", + "type": "string" + } + }, + "type": "object" + }, + "OrdersInStoreRefundLineItemResponse": { + "id": "OrdersInStoreRefundLineItemResponse", + "properties": { + "executionStatus": { + "description": "The status of the execution. Acceptable values are: - \"`duplicate`\" - \"`executed`\" ", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"content#ordersInStoreRefundLineItemResponse\".", + "type": "string" + } + }, + "type": "object" + }, + "OrdersListResponse": { + "id": "OrdersListResponse", + "properties": { + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"content#ordersListResponse\".", + "type": "string" + }, + "nextPageToken": { + "description": "The token for the retrieval of the next page of orders.", + "type": "string" + }, + "resources": { + "items": { + "$ref": "Order" + }, + "type": "array" + } + }, + "type": "object" + }, + "OrdersRefundRequest": { + "id": "OrdersRefundRequest", + "properties": { + "amount": { + "$ref": "Price", + "description": "Deprecated. Please use amountPretax and amountTax instead." + }, + "amountPretax": { + "$ref": "Price", + "description": "The amount that is refunded. Either amount or amountPretax should be filled." + }, + "amountTax": { + "$ref": "Price", + "description": "Tax amount that corresponds to refund amount in amountPretax. Optional, but if filled, amountPretax must be set. Calculated automatically if not provided." + }, + "operationId": { + "description": "The ID of the operation. Unique across all operations for a given order.", + "type": "string" + }, + "reason": { + "description": "The reason for the refund. Acceptable values are: - \"`adjustment`\" - \"`courtesyAdjustment`\" - \"`customerCanceled`\" - \"`customerDiscretionaryReturn`\" - \"`deliveredLateByCarrier`\" - \"`feeAdjustment`\" - \"`lateShipmentCredit`\" - \"`noInventory`\" - \"`other`\" - \"`priceError`\" - \"`productArrivedDamaged`\" - \"`productNotAsDescribed`\" - \"`shippingCostAdjustment`\" - \"`taxAdjustment`\" - \"`undeliverableShippingAddress`\" - \"`wrongProductShipped`\" ", + "type": "string" + }, + "reasonText": { + "description": "The explanation of the reason.", + "type": "string" + } + }, + "type": "object" + }, + "OrdersRefundResponse": { + "id": "OrdersRefundResponse", + "properties": { + "executionStatus": { + "description": "The status of the execution. Acceptable values are: - \"`duplicate`\" - \"`executed`\" ", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"content#ordersRefundResponse\".", + "type": "string" + } + }, + "type": "object" + }, + "OrdersRejectReturnLineItemRequest": { + "id": "OrdersRejectReturnLineItemRequest", + "properties": { + "lineItemId": { + "description": "The ID of the line item to return. Either lineItemId or productId is required.", + "type": "string" + }, + "operationId": { + "description": "The ID of the operation. Unique across all operations for a given order.", + "type": "string" + }, + "productId": { + "description": "The ID of the product to return. This is the REST ID used in the products service. Either lineItemId or productId is required.", + "type": "string" + }, + "quantity": { + "description": "The quantity to return and refund.", + "format": "uint32", + "type": "integer" + }, + "reason": { + "description": "The reason for the return. Acceptable values are: - \"`damagedOrUsed`\" - \"`missingComponent`\" - \"`notEligible`\" - \"`other`\" - \"`outOfReturnWindow`\" ", + "type": "string" + }, + "reasonText": { + "description": "The explanation of the reason.", + "type": "string" + } + }, + "type": "object" + }, + "OrdersRejectReturnLineItemResponse": { + "id": "OrdersRejectReturnLineItemResponse", + "properties": { + "executionStatus": { + "description": "The status of the execution. Acceptable values are: - \"`duplicate`\" - \"`executed`\" ", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"content#ordersRejectReturnLineItemResponse\".", + "type": "string" + } + }, + "type": "object" + }, + "OrdersReturnLineItemRequest": { + "id": "OrdersReturnLineItemRequest", + "properties": { + "lineItemId": { + "description": "The ID of the line item to return. Either lineItemId or productId is required.", + "type": "string" + }, + "operationId": { + "description": "The ID of the operation. Unique across all operations for a given order.", + "type": "string" + }, + "productId": { + "description": "The ID of the product to return. This is the REST ID used in the products service. Either lineItemId or productId is required.", + "type": "string" + }, + "quantity": { + "description": "The quantity to return.", + "format": "uint32", + "type": "integer" + }, + "reason": { + "description": "The reason for the return. Acceptable values are: - \"`customerDiscretionaryReturn`\" - \"`customerInitiatedMerchantCancel`\" - \"`deliveredTooLate`\" - \"`expiredItem`\" - \"`invalidCoupon`\" - \"`malformedShippingAddress`\" - \"`other`\" - \"`productArrivedDamaged`\" - \"`productNotAsDescribed`\" - \"`qualityNotAsExpected`\" - \"`undeliverableShippingAddress`\" - \"`unsupportedPoBoxAddress`\" - \"`wrongProductShipped`\" ", + "type": "string" + }, + "reasonText": { + "description": "The explanation of the reason.", + "type": "string" + } + }, + "type": "object" + }, + "OrdersReturnLineItemResponse": { + "id": "OrdersReturnLineItemResponse", + "properties": { + "executionStatus": { + "description": "The status of the execution. Acceptable values are: - \"`duplicate`\" - \"`executed`\" ", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"content#ordersReturnLineItemResponse\".", + "type": "string" + } + }, + "type": "object" + }, + "OrdersReturnRefundLineItemRequest": { + "id": "OrdersReturnRefundLineItemRequest", + "properties": { + "amountPretax": { + "$ref": "Price", + "description": "The amount that is refunded. If omitted, refundless return is assumed (same as calling returnLineItem method)." + }, + "amountTax": { + "$ref": "Price", + "description": "Tax amount that corresponds to refund amount in amountPretax. Optional, but if filled, then amountPretax must be set. Calculated automatically if not provided." + }, + "lineItemId": { + "description": "The ID of the line item to return. Either lineItemId or productId is required.", + "type": "string" + }, + "operationId": { + "description": "The ID of the operation. Unique across all operations for a given order.", + "type": "string" + }, + "productId": { + "description": "The ID of the product to return. This is the REST ID used in the products service. Either lineItemId or productId is required.", + "type": "string" + }, + "quantity": { + "description": "The quantity to return and refund. Quantity is required.", + "format": "uint32", + "type": "integer" + }, + "reason": { + "description": "The reason for the return. Acceptable values are: - \"`customerDiscretionaryReturn`\" - \"`customerInitiatedMerchantCancel`\" - \"`deliveredTooLate`\" - \"`expiredItem`\" - \"`invalidCoupon`\" - \"`malformedShippingAddress`\" - \"`other`\" - \"`productArrivedDamaged`\" - \"`productNotAsDescribed`\" - \"`qualityNotAsExpected`\" - \"`undeliverableShippingAddress`\" - \"`unsupportedPoBoxAddress`\" - \"`wrongProductShipped`\" ", + "type": "string" + }, + "reasonText": { + "description": "The explanation of the reason.", + "type": "string" + } + }, + "type": "object" + }, + "OrdersReturnRefundLineItemResponse": { + "id": "OrdersReturnRefundLineItemResponse", + "properties": { + "executionStatus": { + "description": "The status of the execution. Acceptable values are: - \"`duplicate`\" - \"`executed`\" ", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"content#ordersReturnRefundLineItemResponse\".", + "type": "string" + } + }, + "type": "object" + }, + "OrdersSetLineItemMetadataRequest": { + "id": "OrdersSetLineItemMetadataRequest", + "properties": { + "annotations": { + "items": { + "$ref": "OrderMerchantProvidedAnnotation" + }, + "type": "array" + }, + "lineItemId": { + "description": "The ID of the line item to set metadata. Either lineItemId or productId is required.", + "type": "string" + }, + "operationId": { + "description": "The ID of the operation. Unique across all operations for a given order.", + "type": "string" + }, + "productId": { + "description": "The ID of the product to set metadata. This is the REST ID used in the products service. Either lineItemId or productId is required.", + "type": "string" + } + }, + "type": "object" + }, + "OrdersSetLineItemMetadataResponse": { + "id": "OrdersSetLineItemMetadataResponse", + "properties": { + "executionStatus": { + "description": "The status of the execution. Acceptable values are: - \"`duplicate`\" - \"`executed`\" ", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"content#ordersSetLineItemMetadataResponse\".", + "type": "string" + } + }, + "type": "object" + }, + "OrdersShipLineItemsRequest": { + "id": "OrdersShipLineItemsRequest", + "properties": { + "carrier": { + "description": "Deprecated. Please use shipmentInfo instead. The carrier handling the shipment. See `shipments[].carrier` in the Orders resource representation for a list of acceptable values.", + "type": "string" + }, + "lineItems": { + "description": "Line items to ship.", + "items": { + "$ref": "OrderShipmentLineItemShipment" + }, + "type": "array" + }, + "operationId": { + "description": "The ID of the operation. Unique across all operations for a given order.", + "type": "string" + }, + "shipmentGroupId": { + "description": "ID of the shipment group. Required for orders that use the orderinvoices service.", + "type": "string" + }, + "shipmentId": { + "description": "Deprecated. Please use shipmentInfo instead. The ID of the shipment.", + "type": "string" + }, + "shipmentInfos": { + "description": "Shipment information. This field is repeated because a single line item can be shipped in several packages (and have several tracking IDs).", + "items": { + "$ref": "OrdersCustomBatchRequestEntryShipLineItemsShipmentInfo" + }, + "type": "array" + }, + "trackingId": { + "description": "Deprecated. Please use shipmentInfo instead. The tracking ID for the shipment.", + "type": "string" + } + }, + "type": "object" + }, + "OrdersShipLineItemsResponse": { + "id": "OrdersShipLineItemsResponse", + "properties": { + "executionStatus": { + "description": "The status of the execution. Acceptable values are: - \"`duplicate`\" - \"`executed`\" ", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"content#ordersShipLineItemsResponse\".", + "type": "string" + } + }, + "type": "object" + }, + "OrdersUpdateLineItemShippingDetailsRequest": { + "id": "OrdersUpdateLineItemShippingDetailsRequest", + "properties": { + "deliverByDate": { + "description": "Updated delivery by date, in ISO 8601 format. If not specified only ship by date is updated. Provided date should be within 1 year timeframe and can not be a date in the past.", + "type": "string" + }, + "lineItemId": { + "description": "The ID of the line item to set metadata. Either lineItemId or productId is required.", + "type": "string" + }, + "operationId": { + "description": "The ID of the operation. Unique across all operations for a given order.", + "type": "string" + }, + "productId": { + "description": "The ID of the product to set metadata. This is the REST ID used in the products service. Either lineItemId or productId is required.", + "type": "string" + }, + "shipByDate": { + "description": "Updated ship by date, in ISO 8601 format. If not specified only deliver by date is updated. Provided date should be within 1 year timeframe and can not be a date in the past.", + "type": "string" + } + }, + "type": "object" + }, + "OrdersUpdateLineItemShippingDetailsResponse": { + "id": "OrdersUpdateLineItemShippingDetailsResponse", + "properties": { + "executionStatus": { + "description": "The status of the execution. Acceptable values are: - \"`duplicate`\" - \"`executed`\" ", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"content#ordersUpdateLineItemShippingDetailsResponse\".", + "type": "string" + } + }, + "type": "object" + }, + "OrdersUpdateMerchantOrderIdRequest": { + "id": "OrdersUpdateMerchantOrderIdRequest", + "properties": { + "merchantOrderId": { + "description": "The merchant order id to be assigned to the order. Must be unique per merchant.", + "type": "string" + }, + "operationId": { + "description": "The ID of the operation. Unique across all operations for a given order.", + "type": "string" + } + }, + "type": "object" + }, + "OrdersUpdateMerchantOrderIdResponse": { + "id": "OrdersUpdateMerchantOrderIdResponse", + "properties": { + "executionStatus": { + "description": "The status of the execution. Acceptable values are: - \"`duplicate`\" - \"`executed`\" ", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"content#ordersUpdateMerchantOrderIdResponse\".", + "type": "string" + } + }, + "type": "object" + }, + "OrdersUpdateShipmentRequest": { + "id": "OrdersUpdateShipmentRequest", + "properties": { + "carrier": { + "description": "The carrier handling the shipment. Not updated if missing. See `shipments[].carrier` in the Orders resource representation for a list of acceptable values.", + "type": "string" + }, + "deliveryDate": { + "description": "Date on which the shipment has been delivered, in ISO 8601 format. Optional and can be provided only if `status` is `delivered`.", + "type": "string" + }, + "operationId": { + "description": "The ID of the operation. Unique across all operations for a given order.", + "type": "string" + }, + "shipmentId": { + "description": "The ID of the shipment.", + "type": "string" + }, + "status": { + "description": "New status for the shipment. Not updated if missing. Acceptable values are: - \"`delivered`\" - \"`undeliverable`\" - \"`readyForPickup`\" ", + "type": "string" + }, + "trackingId": { + "description": "The tracking ID for the shipment. Not updated if missing.", + "type": "string" + } + }, + "type": "object" + }, + "OrdersUpdateShipmentResponse": { + "id": "OrdersUpdateShipmentResponse", + "properties": { + "executionStatus": { + "description": "The status of the execution. Acceptable values are: - \"`duplicate`\" - \"`executed`\" ", + "type": "string" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"content#ordersUpdateShipmentResponse\".", + "type": "string" + } + }, + "type": "object" + }, + "PickupCarrierService": { + "id": "PickupCarrierService", + "properties": { + "carrierName": { + "description": "The name of the pickup carrier (e.g., `\"UPS\"`). Required.", + "type": "string" + }, + "serviceName": { + "description": "The name of the pickup service (e.g., `\"Access point\"`). Required.", + "type": "string" + } + }, + "type": "object" + }, + "PickupServicesPickupService": { + "id": "PickupServicesPickupService", + "properties": { + "carrierName": { + "description": "The name of the carrier (e.g., `\"UPS\"`). Always present.", + "type": "string" + }, + "country": { + "description": "The CLDR country code of the carrier (e.g., \"US\"). Always present.", + "type": "string" + }, + "serviceName": { + "description": "The name of the pickup service (e.g., `\"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" + }, + "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 via the API or the code of the store in Google My Business.", + "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" + }, + "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 via the API or the code of the store in Google My Business.", + "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" + }, + "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 via the API or the code of the store in Google My Business.", + "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 via the API or the code of the store in Google My Business.", + "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 via the API or the code of the store in Google My Business.", + "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 via the API or the code of the store in Google My Business.", + "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" + }, + "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" + }, + "Product": { + "description": " Required product attributes are primarily defined by the products data specification. See the Products 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" + }, + "additionalProductTypes": { + "description": "Additional categories of the item (formatted as in products data specification).", + "items": { + "type": "string" + }, + "type": "array" + }, + "adult": { + "description": "Should be set to true if the item is targeted towards adults.", + "type": "boolean" + }, + "adwordsGrouping": { + "description": "Used to group items in an arbitrary way. Only for CPA%, discouraged otherwise.", + "type": "string" + }, + "adwordsLabels": { + "description": "Similar to adwords_grouping, but only works on CPC.", + "items": { + "type": "string" + }, + "type": "array" + }, + "adwordsRedirect": { + "description": "Allows advertisers to override the item URL when the product is shown within the context of Product Ads.", + "type": "string" + }, + "ageGroup": { + "description": "Target age group of the item. Acceptable values are: - \"`adult`\" - \"`infant`\" - \"`kids`\" - \"`newborn`\" - \"`toddler`\" - \"`youngAdult`\" ", + "type": "string" + }, + "aspects": { + "description": "Deprecated. Do not use.", + "items": { + "$ref": "ProductAspect" + }, + "type": "array" + }, + "availability": { + "description": "Availability status of the item. Acceptable values are: - \"`in stock`\" - \"`out of stock`\" - \"`preorder`\" ", + "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" + }, + "channel": { + "description": "Required. The item's channel (online or local). Acceptable values are: - \"`local`\" - \"`online`\" ", + "type": "string" + }, + "color": { + "description": "Color of the item.", + "type": "string" + }, + "condition": { + "description": "Condition or state of the item. Acceptable values are: - \"`new`\" - \"`refurbished`\" - \"`used`\" ", + "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 (e.g., `{ \"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" + }, + "customGroups": { + "description": "A list of custom (merchant-provided) custom attribute groups.", + "items": { + "$ref": "CustomGroup" + }, + "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" + }, + "destinations": { + "description": "Specifies the intended destinations for the product.", + "items": { + "$ref": "ProductDestination" + }, + "type": "array" + }, + "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. Acceptable values are: - \"`A`\" - \"`A+`\" - \"`A++`\" - \"`A+++`\" - \"`B`\" - \"`C`\" - \"`D`\" - \"`E`\" - \"`F`\" - \"`G`\" ", + "type": "string" + }, + "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" + }, + "gender": { + "description": "Target gender of the item. Acceptable values are: - \"`female`\" - \"`male`\" - \"`unisex`\" ", + "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 is of the form channel:contentLanguage: targetCountry: 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" + }, + "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" + }, + "link": { + "description": "URL directly linking to your item's page on your website.", + "type": "string" + }, + "loyaltyPoints": { + "$ref": "LoyaltyPoints", + "description": "Loyalty points that users receive after purchasing the item. Japan only." + }, + "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. Acceptable values are: - \"`A`\" - \"`A+`\" - \"`A++`\" - \"`A+++`\" - \"`B`\" - \"`C`\" - \"`D`\" - \"`E`\" - \"`F`\" - \"`G`\" ", + "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. Acceptable values are: - \"`A`\" - \"`A+`\" - \"`A++`\" - \"`A+++`\" - \"`B`\" - \"`C`\" - \"`D`\" - \"`E`\" - \"`F`\" - \"`G`\" ", + "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" + }, + "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" + }, + "onlineOnly": { + "description": "Deprecated.", + "type": "boolean" + }, + "pattern": { + "description": "The item's pattern (e.g. polka dots).", + "type": "string" + }, + "price": { + "$ref": "Price", + "description": "Price of the item." + }, + "productType": { + "description": "Your category of the item (formatted as in products data specification).", + "type": "string" + }, + "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 products 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." + }, + "sizeSystem": { + "description": "System in which the size is specified. Recommended for apparel items. Acceptable values are: - \"`AU`\" - \"`BR`\" - \"`CN`\" - \"`DE`\" - \"`EU`\" - \"`FR`\" - \"`IT`\" - \"`JP`\" - \"`MEX`\" - \"`UK`\" - \"`US`\" ", + "type": "string" + }, + "sizeType": { + "description": "The cut of the item. Recommended for apparel items. Acceptable values are: - \"`big and tall`\" - \"`maternity`\" - \"`oversize`\" - \"`petite`\" - \"`plus`\" - \"`regular`\" ", + "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": "The source of the offer, i.e., how the offer was created. Acceptable values are: - \"`api`\" - \"`crawl`\" - \"`feed`\" ", + "type": "string" + }, + "targetCountry": { + "description": "Required. The CLDR territory code for the item.", + "type": "string" + }, + "taxes": { + "description": "Tax information.", + "items": { + "$ref": "ProductTax" + }, + "type": "array" + }, + "title": { + "description": "Title of the item.", + "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." + }, + "validatedDestinations": { + "description": "Deprecated. The read-only list of intended destinations which passed validation.", + "items": { + "type": "string" + }, + "type": "array" + }, + "warnings": { + "description": "Read-only warnings.", + "items": { + "$ref": "Error" + }, + "type": "array" + } + }, + "type": "object" + }, + "ProductAmount": { + "id": "ProductAmount", + "properties": { + "priceAmount": { + "$ref": "Price", + "description": "The pre-tax or post-tax price depending on the location of the order." + }, + "remittedTaxAmount": { + "$ref": "Price", + "description": "Remitted tax value." + }, + "taxAmount": { + "$ref": "Price", + "description": "Tax value." + } + }, + "type": "object" + }, + "ProductAspect": { + "id": "ProductAspect", + "properties": { + "aspectName": { + "description": "Deprecated.", + "type": "string" + }, + "destinationName": { + "description": "Deprecated.", + "type": "string" + }, + "intention": { + "description": "Deprecated.", + "type": "string" + } + }, + "type": "object" + }, + "ProductDestination": { + "id": "ProductDestination", + "properties": { + "destinationName": { + "description": "The name of the destination.", + "type": "string" + }, + "intention": { + "description": "Whether the destination is required, excluded or should be validated. Acceptable values are: - \"`default`\" - \"`excluded`\" - \"`optional`\" - \"`required`\" ", + "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 AdWords API.", + "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, i.e., 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" + }, + "dataQualityIssues": { + "description": "DEPRECATED - never populated", + "items": { + "$ref": "ProductStatusDataQualityIssue" + }, + "type": "array" + }, + "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" + }, + "product": { + "$ref": "Product", + "description": "Product data after applying all the join inputs." + }, + "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" + }, + "ProductStatusDataQualityIssue": { + "id": "ProductStatusDataQualityIssue", + "properties": { + "destination": { + "type": "string" + }, + "detail": { + "type": "string" + }, + "fetchStatus": { + "type": "string" + }, + "id": { + "type": "string" + }, + "location": { + "type": "string" + }, + "severity": { + "type": "string" + }, + "timestamp": { + "type": "string" + }, + "valueOnLandingPage": { + "type": "string" + }, + "valueProvided": { + "type": "string" + } + }, + "type": "object" + }, + "ProductStatusDestinationStatus": { + "id": "ProductStatusDestinationStatus", + "properties": { + "approvalPending": { + "description": "Whether the approval status might change due to further processing.", + "type": "boolean" + }, + "approvalStatus": { + "description": "The destination's approval status. Acceptable values are: - \"`approved`\" - \"`disapproved`\" ", + "type": "string" + }, + "destination": { + "description": "The name of the destination", + "type": "string" + }, + "intention": { + "description": "Provided for backward compatibility only. Always set to \"required\". Acceptable values are: - \"`default`\" - \"`excluded`\" - \"`optional`\" - \"`required`\" ", + "type": "string" + } + }, + "type": "object" + }, + "ProductStatusItemLevelIssue": { + "id": "ProductStatusItemLevelIssue", + "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" + }, + "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" + }, + "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 AdWords 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" + }, + "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" + }, + "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`\" ", + "type": "string" + }, + "product": { + "$ref": "Product", + "description": "The product to insert. Only required if the method is `insert`." + }, + "productId": { + "description": "The ID of the product to get or delete. Only defined if the method is `get` or `delete`.", + "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 defined if and only if the request failed." + }, + "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": { + "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, if the request failed." + }, + "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": { + "id": "Promotion", + "properties": { + "promotionAmount": { + "$ref": "Amount", + "description": "[required] Amount of the promotion. The values here are the promotion applied to the unit price pretax and to the total of the tax amounts." + }, + "promotionId": { + "description": "[required] ID of the promotion.", + "type": "string" + } + }, + "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 (e.g. 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" + }, + "RefundReason": { + "id": "RefundReason", + "properties": { + "description": { + "description": "Description of the reason.", + "type": "string" + }, + "reasonCode": { + "description": "Code of the refund reason. Acceptable values are: - \"`adjustment`\" - \"`autoPostInternal`\" - \"`autoPostInvalidBillingAddress`\" - \"`autoPostNoInventory`\" - \"`autoPostPriceError`\" - \"`autoPostUndeliverableShippingAddress`\" - \"`couponAbuse`\" - \"`courtesyAdjustment`\" - \"`customerCanceled`\" - \"`customerDiscretionaryReturn`\" - \"`customerInitiatedMerchantCancel`\" - \"`customerSupportRequested`\" - \"`deliveredLateByCarrier`\" - \"`deliveredTooLate`\" - \"`expiredItem`\" - \"`failToPushOrderGoogleError`\" - \"`failToPushOrderMerchantError`\" - \"`failToPushOrderMerchantFulfillmentError`\" - \"`failToPushOrderToMerchant`\" - \"`failToPushOrderToMerchantOutOfStock`\" - \"`feeAdjustment`\" - \"`invalidCoupon`\" - \"`lateShipmentCredit`\" - \"`malformedShippingAddress`\" - \"`merchantDidNotShipOnTime`\" - \"`noInventory`\" - \"`orderTimeout`\" - \"`other`\" - \"`paymentAbuse`\" - \"`paymentDeclined`\" - \"`priceAdjustment`\" - \"`priceError`\" - \"`productArrivedDamaged`\" - \"`productNotAsDescribed`\" - \"`promoReallocation`\" - \"`qualityNotAsExpected`\" - \"`returnRefundAbuse`\" - \"`shippingCostAdjustment`\" - \"`shippingPriceError`\" - \"`taxAdjustment`\" - \"`taxError`\" - \"`undeliverableShippingAddress`\" - \"`unsupportedPoBoxAddress`\" - \"`wrongProductShipped`\" ", + "type": "string" + } + }, + "type": "object" + }, + "ReturnShipment": { + "id": "ReturnShipment", + "properties": { + "creationDate": { + "description": "The date of creation of the shipment, in ISO 8601 format.", + "type": "string" + }, + "deliveryDate": { + "description": "The date of delivery of the shipment, in ISO 8601 format.", + "type": "string" + }, + "returnMethodType": { + "description": "Type of the return method. Acceptable values are: - \"`byMail`\" - \"`contactCustomerSupport`\" - \"`returnless`\" ", + "type": "string" + }, + "shipmentId": { + "description": "Shipment ID generated by Google.", + "type": "string" + }, + "shipmentTrackingInfos": { + "description": "Tracking information of the shipment. One return shipment might be handled by several shipping carriers sequentially.", + "items": { + "$ref": "ShipmentTrackingInfo" + }, + "type": "array" + }, + "shippingDate": { + "description": "The date of shipping of the shipment, in ISO 8601 format.", + "type": "string" + }, + "state": { + "description": "State of the shipment. Acceptable values are: - \"`completed`\" - \"`new`\" - \"`shipped`\" - \"`undeliverable`\" - \"`pending`\" ", + "type": "string" + } + }, + "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" + }, + "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 via 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`\" ", + "type": "string" + } + }, + "type": "object" + }, + "ShipmentInvoice": { + "id": "ShipmentInvoice", + "properties": { + "invoiceSummary": { + "$ref": "InvoiceSummary", + "description": "[required] Invoice summary." + }, + "lineItemInvoices": { + "description": "[required] Invoice details per line item.", + "items": { + "$ref": "ShipmentInvoiceLineItemInvoice" + }, + "type": "array" + }, + "shipmentGroupId": { + "description": "[required] ID of the shipment group. It is assigned by the merchant in the `shipLineItems` method and is used to group multiple line items that have the same kind of shipping charges.", + "type": "string" + } + }, + "type": "object" + }, + "ShipmentInvoiceLineItemInvoice": { + "id": "ShipmentInvoiceLineItemInvoice", + "properties": { + "lineItemId": { + "description": "ID of the line item. Either lineItemId or productId must be set.", + "type": "string" + }, + "productId": { + "description": "ID of the product. This is the REST ID used in the products service. Either lineItemId or productId must be set.", + "type": "string" + }, + "shipmentUnitIds": { + "description": "[required] The shipment unit ID is assigned by the merchant and defines individual quantities within a line item. The same ID can be assigned to units that are the same while units that differ must be assigned a different ID (for example: free or promotional units).", + "items": { + "type": "string" + }, + "type": "array" + }, + "unitInvoice": { + "$ref": "UnitInvoice", + "description": "[required] Invoice details for a single unit." + } + }, + "type": "object" + }, + "ShipmentTrackingInfo": { + "id": "ShipmentTrackingInfo", + "properties": { + "carrier": { + "description": "The shipping carrier that handles the package. Acceptable values are: - \"`boxtal`\" - \"`bpost`\" - \"`chronopost`\" - \"`colisPrive`\" - \"`colissimo`\" - \"`cxt`\" - \"`deliv`\" - \"`dhl`\" - \"`dpd`\" - \"`dynamex`\" - \"`eCourier`\" - \"`easypost`\" - \"`efw`\" - \"`fedex`\" - \"`fedexSmartpost`\" - \"`geodis`\" - \"`gls`\" - \"`googleCourier`\" - \"`gsx`\" - \"`jdLogistics`\" - \"`laPoste`\" - \"`lasership`\" - \"`manual`\" - \"`mpx`\" - \"`onTrac`\" - \"`other`\" - \"`tnt`\" - \"`uds`\" - \"`ups`\" - \"`usps`\" ", + "type": "string" + }, + "trackingNumber": { + "description": "The tracking number for the package.", + "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 defined if, and only if, the request failed." + }, + "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" + }, + "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" + }, + "TestOrder": { + "id": "TestOrder", + "properties": { + "customer": { + "$ref": "TestOrderCustomer", + "description": "Required. The details of the customer who placed the order." + }, + "enableOrderinvoices": { + "description": "Whether the orderinvoices service should support this order.", + "type": "boolean" + }, + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"`content#testOrder`\"", + "type": "string" + }, + "lineItems": { + "description": "Required. Line items that are ordered. At least one line item must be provided.", + "items": { + "$ref": "TestOrderLineItem" + }, + "type": "array" + }, + "notificationMode": { + "description": "Restricted. Do not use.", + "type": "string" + }, + "paymentMethod": { + "$ref": "TestOrderPaymentMethod", + "description": "The details of the payment method." + }, + "predefinedDeliveryAddress": { + "description": "Required. Identifier of one of the predefined delivery addresses for the delivery. Acceptable values are: - \"`dwight`\" - \"`jim`\" - \"`pam`\" ", + "type": "string" + }, + "predefinedPickupDetails": { + "description": "Identifier of one of the predefined pickup details. Required for orders containing line items with shipping type `pickup`. Acceptable values are: - \"`dwight`\" - \"`jim`\" - \"`pam`\" ", + "type": "string" + }, + "promotions": { + "description": "Deprecated. Ignored if provided.", + "items": { + "$ref": "OrderLegacyPromotion" + }, + "type": "array" + }, + "shippingCost": { + "$ref": "Price", + "description": "Required. The price of shipping for all items. Shipping tax is automatically calculated for orders where marketplace facilitator tax laws are applicable. Otherwise, tax settings from Merchant Center are applied. Note that shipping is not taxed in certain states." + }, + "shippingCostTax": { + "$ref": "Price", + "description": "Deprecated. Ignored if provided." + }, + "shippingOption": { + "description": "Required. The requested shipping option. Acceptable values are: - \"`economy`\" - \"`expedited`\" - \"`oneDay`\" - \"`sameDay`\" - \"`standard`\" - \"`twoDay`\" ", + "type": "string" + } + }, + "type": "object" + }, + "TestOrderCustomer": { + "id": "TestOrderCustomer", + "properties": { + "email": { + "description": "Required. Email address of the customer. Acceptable values are: - \"`pog.dwight.schrute@gmail.com`\" - \"`pog.jim.halpert@gmail.com`\" - \"`penpog.pam.beesly@gmail.comding`\" ", + "type": "string" + }, + "explicitMarketingPreference": { + "description": "Deprecated. Please use marketingRightsInfo instead.", + "type": "boolean" + }, + "fullName": { + "description": "Full name of the customer.", + "type": "string" + }, + "marketingRightsInfo": { + "$ref": "TestOrderCustomerMarketingRightsInfo", + "description": "Customer's marketing preferences." + } + }, + "type": "object" + }, + "TestOrderCustomerMarketingRightsInfo": { + "id": "TestOrderCustomerMarketingRightsInfo", + "properties": { + "explicitMarketingPreference": { + "description": "Last know user use selection regards marketing preferences. In certain cases selection might not be known, so this field would be empty. Acceptable values are: - \"`denied`\" - \"`granted`\" ", + "type": "string" + }, + "lastUpdatedTimestamp": { + "description": "Timestamp when last time marketing preference was updated. Could be empty, if user wasn't offered a selection yet.", + "type": "string" + } + }, + "type": "object" + }, + "TestOrderLineItem": { + "id": "TestOrderLineItem", + "properties": { + "product": { + "$ref": "TestOrderLineItemProduct", + "description": "Required. Product data from the time of the order placement." + }, + "quantityOrdered": { + "description": "Required. Number of items ordered.", + "format": "uint32", + "type": "integer" + }, + "returnInfo": { + "$ref": "OrderLineItemReturnInfo", + "description": "Required. Details of the return policy for the line item." + }, + "shippingDetails": { + "$ref": "OrderLineItemShippingDetails", + "description": "Required. Details of the requested shipping for the line item." + }, + "unitTax": { + "$ref": "Price", + "description": "Deprecated. Ignored if provided." + } + }, + "type": "object" + }, + "TestOrderLineItemProduct": { + "id": "TestOrderLineItemProduct", + "properties": { + "brand": { + "description": "Required. Brand of the item.", + "type": "string" + }, + "channel": { + "description": "Deprecated. Acceptable values are: - \"`online`\" ", + "type": "string" + }, + "condition": { + "description": "Required. Condition or state of the item. Acceptable values are: - \"`new`\" ", + "type": "string" + }, + "contentLanguage": { + "description": "Required. The two-letter ISO 639-1 language code for the item. Acceptable values are: - \"`en`\" - \"`fr`\" ", + "type": "string" + }, + "fees": { + "description": "Fees for the item. Optional.", + "items": { + "$ref": "OrderLineItemProductFee" + }, + "type": "array" + }, + "gtin": { + "description": "Global Trade Item Number (GTIN) of the item. Optional.", + "type": "string" + }, + "imageLink": { + "description": "Required. URL of an image of the item.", + "type": "string" + }, + "itemGroupId": { + "description": "Shared identifier for all variants of the same product. Optional.", + "type": "string" + }, + "mpn": { + "description": "Manufacturer Part Number (MPN) of the item. Optional.", + "type": "string" + }, + "offerId": { + "description": "Required. An identifier of the item.", + "type": "string" + }, + "price": { + "$ref": "Price", + "description": "Required. The price for the product. Tax is automatically calculated for orders where marketplace facilitator tax laws are applicable. Otherwise, tax settings from Merchant Center are applied." + }, + "targetCountry": { + "description": "Required. The CLDR territory // code of the target country of the product.", + "type": "string" + }, + "title": { + "description": "Required. The title of the product.", + "type": "string" + }, + "variantAttributes": { + "description": "Variant attributes for the item. Optional.", + "items": { + "$ref": "OrderLineItemProductVariantAttribute" + }, + "type": "array" + } + }, + "type": "object" + }, + "TestOrderPaymentMethod": { + "id": "TestOrderPaymentMethod", + "properties": { + "expirationMonth": { + "description": "The card expiration month (January = 1, February = 2 etc.).", + "format": "int32", + "type": "integer" + }, + "expirationYear": { + "description": "The card expiration year (4-digit, e.g. 2015).", + "format": "int32", + "type": "integer" + }, + "lastFourDigits": { + "description": "The last four digits of the card number.", + "type": "string" + }, + "predefinedBillingAddress": { + "description": "The billing address. Acceptable values are: - \"`dwight`\" - \"`jim`\" - \"`pam`\" ", + "type": "string" + }, + "type": { + "description": "The type of instrument. Note that real orders might have different values than the four values accepted by `createTestOrder`. Acceptable values are: - \"`AMEX`\" - \"`DISCOVER`\" - \"`MASTERCARD`\" - \"`VISA`\" ", + "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" + }, + "UnitInvoice": { + "id": "UnitInvoice", + "properties": { + "additionalCharges": { + "description": "Additional charges for a unit, e.g. shipping costs.", + "items": { + "$ref": "UnitInvoiceAdditionalCharge" + }, + "type": "array" + }, + "promotions": { + "description": "Deprecated.", + "items": { + "$ref": "Promotion" + }, + "type": "array" + }, + "unitPricePretax": { + "$ref": "Price", + "description": "[required] Price of the unit, before applying taxes." + }, + "unitPriceTaxes": { + "description": "Tax amounts to apply to the unit price.", + "items": { + "$ref": "UnitInvoiceTaxLine" + }, + "type": "array" + } + }, + "type": "object" + }, + "UnitInvoiceAdditionalCharge": { + "id": "UnitInvoiceAdditionalCharge", + "properties": { + "additionalChargeAmount": { + "$ref": "Amount", + "description": "[required] Amount of the additional charge." + }, + "additionalChargePromotions": { + "description": "Deprecated.", + "items": { + "$ref": "Promotion" + }, + "type": "array" + }, + "type": { + "description": "[required] Type of the additional charge. Acceptable values are: - \"`shipping`\" ", + "type": "string" + } + }, + "type": "object" + }, + "UnitInvoiceTaxLine": { + "id": "UnitInvoiceTaxLine", + "properties": { + "taxAmount": { + "$ref": "Price", + "description": "[required] Tax amount for the tax type." + }, + "taxName": { + "description": "Optional name of the tax type. This should only be provided if `taxType` is `otherFeeTax`.", + "type": "string" + }, + "taxType": { + "description": "[required] Type of the tax. Acceptable values are: - \"`otherFee`\" - \"`otherFeeTax`\" - \"`sales`\" ", + "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 (e.g., `\"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 (i.e., not for single values), and only if all other fields are not set.", + "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 via 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 via 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](http://www.unicode.org/repos/cldr/tags/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/", + "title": "Content API for Shopping", + "version": "v2" +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/deploymentmanager.alpha.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/deploymentmanager.alpha.json new file mode 100644 index 0000000000000000000000000000000000000000..2985515a0f7d07163af841ddd0ca9da31e97a986 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/deploymentmanager.alpha.json @@ -0,0 +1,3991 @@ +{ +"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.cloudman": { +"description": "View and manage your Google Cloud Platform management resources and deployment status information" +}, +"https://www.googleapis.com/auth/ndev.cloudman.readonly": { +"description": "View your Google Cloud Platform management resources and deployment status information" +} +} +} +}, +"basePath": "", +"baseUrl": "https://deploymentmanager.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Deployment Manager", +"description": "The Google Cloud Deployment Manager v2 API provides services for configuring, deploying, and viewing Google Cloud services and APIs via templates which specify deployments of Cloud resources.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/deployment-manager", +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "deploymentmanager:alpha", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://deploymentmanager.mtls.googleapis.com/", +"name": "deploymentmanager", +"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": { +"compositeTypes": { +"methods": { +"delete": { +"description": "Deletes a composite type.", +"flatPath": "deploymentmanager/alpha/projects/{project}/global/compositeTypes/{compositeType}", +"httpMethod": "DELETE", +"id": "deploymentmanager.compositeTypes.delete", +"parameterOrder": [ +"project", +"compositeType" +], +"parameters": { +"compositeType": { +"description": "The name of the type for this request.", +"location": "path", +"pattern": "[a-z](?:[-a-z0-9_.]{0,61}[a-z0-9])?", +"required": true, +"type": "string" +}, +"header.bypassBillingFilter": { +"location": "query", +"type": "boolean" +}, +"project": { +"description": "The project ID for this request.", +"location": "path", +"pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", +"required": true, +"type": "string" +} +}, +"path": "deploymentmanager/alpha/projects/{project}/global/compositeTypes/{compositeType}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/ndev.cloudman" +] +}, +"get": { +"description": "Gets information about a specific composite type.", +"flatPath": "deploymentmanager/alpha/projects/{project}/global/compositeTypes/{compositeType}", +"httpMethod": "GET", +"id": "deploymentmanager.compositeTypes.get", +"parameterOrder": [ +"project", +"compositeType" +], +"parameters": { +"compositeType": { +"description": "The name of the composite type for this request.", +"location": "path", +"pattern": "[a-z](?:[-a-z0-9_.]{0,61}[a-z0-9])?", +"required": true, +"type": "string" +}, +"header.bypassBillingFilter": { +"location": "query", +"type": "boolean" +}, +"project": { +"description": "The project ID for this request.", +"location": "path", +"pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", +"required": true, +"type": "string" +} +}, +"path": "deploymentmanager/alpha/projects/{project}/global/compositeTypes/{compositeType}", +"response": { +"$ref": "CompositeType" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only", +"https://www.googleapis.com/auth/ndev.cloudman", +"https://www.googleapis.com/auth/ndev.cloudman.readonly" +] +}, +"insert": { +"description": "Creates a composite type.", +"flatPath": "deploymentmanager/alpha/projects/{project}/global/compositeTypes", +"httpMethod": "POST", +"id": "deploymentmanager.compositeTypes.insert", +"parameterOrder": [ +"project" +], +"parameters": { +"header.bypassBillingFilter": { +"location": "query", +"type": "boolean" +}, +"project": { +"description": "The project ID for this request.", +"location": "path", +"pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", +"required": true, +"type": "string" +} +}, +"path": "deploymentmanager/alpha/projects/{project}/global/compositeTypes", +"request": { +"$ref": "CompositeType" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/ndev.cloudman" +] +}, +"list": { +"description": "Lists all composite types for Deployment Manager.", +"flatPath": "deploymentmanager/alpha/projects/{project}/global/compositeTypes", +"httpMethod": "GET", +"id": "deploymentmanager.compositeTypes.list", +"parameterOrder": [ +"project" +], +"parameters": { +"filter": { +"description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", +"location": "query", +"type": "string" +}, +"maxResults": { +"default": "500", +"description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", +"format": "uint32", +"location": "query", +"minimum": "0", +"type": "integer" +}, +"orderBy": { +"description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", +"location": "query", +"type": "string" +}, +"pageToken": { +"description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", +"location": "query", +"type": "string" +}, +"project": { +"description": "The project ID for this request.", +"location": "path", +"pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", +"required": true, +"type": "string" +} +}, +"path": "deploymentmanager/alpha/projects/{project}/global/compositeTypes", +"response": { +"$ref": "CompositeTypesListResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only", +"https://www.googleapis.com/auth/ndev.cloudman", +"https://www.googleapis.com/auth/ndev.cloudman.readonly" +] +}, +"patch": { +"description": "Patches a composite type.", +"flatPath": "deploymentmanager/alpha/projects/{project}/global/compositeTypes/{compositeType}", +"httpMethod": "PATCH", +"id": "deploymentmanager.compositeTypes.patch", +"parameterOrder": [ +"project", +"compositeType" +], +"parameters": { +"compositeType": { +"description": "The name of the composite type for this request.", +"location": "path", +"pattern": "[a-z](?:[-a-z0-9_.]{0,61}[a-z0-9])?", +"required": true, +"type": "string" +}, +"header.bypassBillingFilter": { +"location": "query", +"type": "boolean" +}, +"project": { +"description": "The project ID for this request.", +"location": "path", +"pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", +"required": true, +"type": "string" +} +}, +"path": "deploymentmanager/alpha/projects/{project}/global/compositeTypes/{compositeType}", +"request": { +"$ref": "CompositeType" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/ndev.cloudman" +] +}, +"update": { +"description": "Updates a composite type.", +"flatPath": "deploymentmanager/alpha/projects/{project}/global/compositeTypes/{compositeType}", +"httpMethod": "PUT", +"id": "deploymentmanager.compositeTypes.update", +"parameterOrder": [ +"project", +"compositeType" +], +"parameters": { +"compositeType": { +"description": "The name of the composite type for this request.", +"location": "path", +"pattern": "[a-z](?:[-a-z0-9_.]{0,61}[a-z0-9])?", +"required": true, +"type": "string" +}, +"header.bypassBillingFilter": { +"location": "query", +"type": "boolean" +}, +"project": { +"description": "The project ID for this request.", +"location": "path", +"pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", +"required": true, +"type": "string" +} +}, +"path": "deploymentmanager/alpha/projects/{project}/global/compositeTypes/{compositeType}", +"request": { +"$ref": "CompositeType" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/ndev.cloudman" +] +} +} +}, +"deployments": { +"methods": { +"cancelPreview": { +"description": "Cancels and removes the preview currently associated with the deployment.", +"flatPath": "deploymentmanager/alpha/projects/{project}/global/deployments/{deployment}/cancelPreview", +"httpMethod": "POST", +"id": "deploymentmanager.deployments.cancelPreview", +"parameterOrder": [ +"project", +"deployment" +], +"parameters": { +"deployment": { +"description": "The name of the deployment for this request.", +"location": "path", +"pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", +"required": true, +"type": "string" +}, +"project": { +"description": "The project ID for this request.", +"location": "path", +"pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", +"required": true, +"type": "string" +} +}, +"path": "deploymentmanager/alpha/projects/{project}/global/deployments/{deployment}/cancelPreview", +"request": { +"$ref": "DeploymentsCancelPreviewRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/ndev.cloudman" +] +}, +"delete": { +"description": "Deletes a deployment and all of the resources in the deployment.", +"flatPath": "deploymentmanager/alpha/projects/{project}/global/deployments/{deployment}", +"httpMethod": "DELETE", +"id": "deploymentmanager.deployments.delete", +"parameterOrder": [ +"project", +"deployment" +], +"parameters": { +"deletePolicy": { +"default": "DELETE", +"description": "Sets the policy to use for deleting resources.", +"enum": [ +"DELETE", +"ABANDON" +], +"enumDescriptions": [ +"", +"" +], +"location": "query", +"type": "string" +}, +"deployment": { +"description": "The name of the deployment for this request.", +"location": "path", +"required": true, +"type": "string" +}, +"header.bypassBillingFilter": { +"location": "query", +"type": "boolean" +}, +"project": { +"description": "The project ID for this request.", +"location": "path", +"pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", +"required": true, +"type": "string" +} +}, +"path": "deploymentmanager/alpha/projects/{project}/global/deployments/{deployment}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/ndev.cloudman" +] +}, +"get": { +"description": "Gets information about a specific deployment.", +"flatPath": "deploymentmanager/alpha/projects/{project}/global/deployments/{deployment}", +"httpMethod": "GET", +"id": "deploymentmanager.deployments.get", +"parameterOrder": [ +"project", +"deployment" +], +"parameters": { +"deployment": { +"description": "The name of the deployment for this request.", +"location": "path", +"pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", +"required": true, +"type": "string" +}, +"header.bypassBillingFilter": { +"location": "query", +"type": "boolean" +}, +"project": { +"description": "The project ID for this request.", +"location": "path", +"pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", +"required": true, +"type": "string" +} +}, +"path": "deploymentmanager/alpha/projects/{project}/global/deployments/{deployment}", +"response": { +"$ref": "Deployment" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only", +"https://www.googleapis.com/auth/ndev.cloudman", +"https://www.googleapis.com/auth/ndev.cloudman.readonly" +] +}, +"getIamPolicy": { +"description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.", +"flatPath": "deploymentmanager/alpha/projects/{project}/global/deployments/{resource}/getIamPolicy", +"httpMethod": "GET", +"id": "deploymentmanager.deployments.getIamPolicy", +"parameterOrder": [ +"project", +"resource" +], +"parameters": { +"header.bypassBillingFilter": { +"location": "query", +"type": "boolean" +}, +"optionsRequestedPolicyVersion": { +"description": "Requested IAM Policy version.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"project": { +"description": "Project ID for this request.", +"location": "path", +"pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", +"required": true, +"type": "string" +}, +"resource": { +"description": "Name or id of the resource for this request.", +"location": "path", +"pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", +"required": true, +"type": "string" +} +}, +"path": "deploymentmanager/alpha/projects/{project}/global/deployments/{resource}/getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/ndev.cloudman" +] +}, +"insert": { +"description": "Creates a deployment and all of the resources described by the deployment manifest.", +"flatPath": "deploymentmanager/alpha/projects/{project}/global/deployments", +"httpMethod": "POST", +"id": "deploymentmanager.deployments.insert", +"parameterOrder": [ +"project" +], +"parameters": { +"createPolicy": { +"default": "CREATE_OR_ACQUIRE", +"description": "Sets the policy to use for creating new resources.", +"enum": [ +"CREATE_OR_ACQUIRE", +"ACQUIRE", +"CREATE" +], +"enumDescriptions": [ +"", +"", +"" +], +"location": "query", +"type": "string" +}, +"header.bypassBillingFilter": { +"location": "query", +"type": "boolean" +}, +"preview": { +"description": "If set to true, creates a deployment and creates \"shell\" resources but does not actually instantiate these resources. This allows you to preview what your deployment looks like. After previewing a deployment, you can deploy your resources by making a request with the `update()` method or you can use the `cancelPreview()` method to cancel the preview altogether. Note that the deployment will still exist after you cancel the preview and you must separately delete this deployment if you want to remove it.", +"location": "query", +"type": "boolean" +}, +"project": { +"description": "The project ID for this request.", +"location": "path", +"pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", +"required": true, +"type": "string" +} +}, +"path": "deploymentmanager/alpha/projects/{project}/global/deployments", +"request": { +"$ref": "Deployment" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/ndev.cloudman" +] +}, +"list": { +"description": "Lists all deployments for a given project.", +"flatPath": "deploymentmanager/alpha/projects/{project}/global/deployments", +"httpMethod": "GET", +"id": "deploymentmanager.deployments.list", +"parameterOrder": [ +"project" +], +"parameters": { +"filter": { +"description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", +"location": "query", +"type": "string" +}, +"maxResults": { +"default": "500", +"description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", +"format": "uint32", +"location": "query", +"minimum": "0", +"type": "integer" +}, +"orderBy": { +"description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", +"location": "query", +"type": "string" +}, +"pageToken": { +"description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", +"location": "query", +"type": "string" +}, +"project": { +"description": "The project ID for this request.", +"location": "path", +"pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", +"required": true, +"type": "string" +} +}, +"path": "deploymentmanager/alpha/projects/{project}/global/deployments", +"response": { +"$ref": "DeploymentsListResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only", +"https://www.googleapis.com/auth/ndev.cloudman", +"https://www.googleapis.com/auth/ndev.cloudman.readonly" +] +}, +"patch": { +"description": "Patches a deployment and all of the resources described by the deployment manifest.", +"flatPath": "deploymentmanager/alpha/projects/{project}/global/deployments/{deployment}", +"httpMethod": "PATCH", +"id": "deploymentmanager.deployments.patch", +"parameterOrder": [ +"project", +"deployment" +], +"parameters": { +"createPolicy": { +"default": "CREATE_OR_ACQUIRE", +"description": "Sets the policy to use for creating new resources.", +"enum": [ +"CREATE_OR_ACQUIRE", +"ACQUIRE", +"CREATE" +], +"enumDescriptions": [ +"", +"", +"" +], +"location": "query", +"type": "string" +}, +"deletePolicy": { +"default": "DELETE", +"description": "Sets the policy to use for deleting resources.", +"enum": [ +"DELETE", +"ABANDON" +], +"enumDescriptions": [ +"", +"" +], +"location": "query", +"type": "string" +}, +"deployment": { +"description": "The name of the deployment for this request.", +"location": "path", +"pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", +"required": true, +"type": "string" +}, +"header.bypassBillingFilter": { +"location": "query", +"type": "boolean" +}, +"preview": { +"default": "false", +"description": "If set to true, updates the deployment and creates and updates the \"shell\" resources but does not actually alter or instantiate these resources. This allows you to preview what your deployment will look like. You can use this intent to preview how an update would affect your deployment. You must provide a `target.config` with a configuration if this is set to true. After previewing a deployment, you can deploy your resources by making a request with the `update()` or you can `cancelPreview()` to remove the preview altogether. Note that the deployment will still exist after you cancel the preview and you must separately delete this deployment if you want to remove it.", +"location": "query", +"type": "boolean" +}, +"project": { +"description": "The project ID for this request.", +"location": "path", +"pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", +"required": true, +"type": "string" +} +}, +"path": "deploymentmanager/alpha/projects/{project}/global/deployments/{deployment}", +"request": { +"$ref": "Deployment" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/ndev.cloudman" +] +}, +"setIamPolicy": { +"description": "Sets the access control policy on the specified resource. Replaces any existing policy.", +"flatPath": "deploymentmanager/alpha/projects/{project}/global/deployments/{resource}/setIamPolicy", +"httpMethod": "POST", +"id": "deploymentmanager.deployments.setIamPolicy", +"parameterOrder": [ +"project", +"resource" +], +"parameters": { +"project": { +"description": "Project ID for this request.", +"location": "path", +"pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", +"required": true, +"type": "string" +}, +"resource": { +"description": "Name or id of the resource for this request.", +"location": "path", +"pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", +"required": true, +"type": "string" +} +}, +"path": "deploymentmanager/alpha/projects/{project}/global/deployments/{resource}/setIamPolicy", +"request": { +"$ref": "GlobalSetPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/ndev.cloudman" +] +}, +"stop": { +"description": "Stops an ongoing operation. This does not roll back any work that has already been completed, but prevents any new work from being started.", +"flatPath": "deploymentmanager/alpha/projects/{project}/global/deployments/{deployment}/stop", +"httpMethod": "POST", +"id": "deploymentmanager.deployments.stop", +"parameterOrder": [ +"project", +"deployment" +], +"parameters": { +"deployment": { +"description": "The name of the deployment for this request.", +"location": "path", +"pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", +"required": true, +"type": "string" +}, +"project": { +"description": "The project ID for this request.", +"location": "path", +"pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", +"required": true, +"type": "string" +} +}, +"path": "deploymentmanager/alpha/projects/{project}/global/deployments/{deployment}/stop", +"request": { +"$ref": "DeploymentsStopRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/ndev.cloudman" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource.", +"flatPath": "deploymentmanager/alpha/projects/{project}/global/deployments/{resource}/testIamPermissions", +"httpMethod": "POST", +"id": "deploymentmanager.deployments.testIamPermissions", +"parameterOrder": [ +"project", +"resource" +], +"parameters": { +"header.bypassBillingFilter": { +"location": "query", +"type": "boolean" +}, +"project": { +"description": "Project ID for this request.", +"location": "path", +"pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", +"required": true, +"type": "string" +}, +"resource": { +"description": "Name or id of the resource for this request.", +"location": "path", +"pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", +"required": true, +"type": "string" +} +}, +"path": "deploymentmanager/alpha/projects/{project}/global/deployments/{resource}/testIamPermissions", +"request": { +"$ref": "TestPermissionsRequest" +}, +"response": { +"$ref": "TestPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/ndev.cloudman" +] +}, +"update": { +"description": "Updates a deployment and all of the resources described by the deployment manifest.", +"flatPath": "deploymentmanager/alpha/projects/{project}/global/deployments/{deployment}", +"httpMethod": "PUT", +"id": "deploymentmanager.deployments.update", +"parameterOrder": [ +"project", +"deployment" +], +"parameters": { +"createPolicy": { +"default": "CREATE_OR_ACQUIRE", +"description": "Sets the policy to use for creating new resources.", +"enum": [ +"CREATE_OR_ACQUIRE", +"ACQUIRE", +"CREATE" +], +"enumDescriptions": [ +"", +"", +"" +], +"location": "query", +"type": "string" +}, +"deletePolicy": { +"default": "DELETE", +"description": "Sets the policy to use for deleting resources.", +"enum": [ +"DELETE", +"ABANDON" +], +"enumDescriptions": [ +"", +"" +], +"location": "query", +"type": "string" +}, +"deployment": { +"description": "The name of the deployment for this request.", +"location": "path", +"pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", +"required": true, +"type": "string" +}, +"header.bypassBillingFilter": { +"location": "query", +"type": "boolean" +}, +"preview": { +"default": "false", +"description": "If set to true, updates the deployment and creates and updates the \"shell\" resources but does not actually alter or instantiate these resources. This allows you to preview what your deployment will look like. You can use this intent to preview how an update would affect your deployment. You must provide a `target.config` with a configuration if this is set to true. After previewing a deployment, you can deploy your resources by making a request with the `update()` or you can `cancelPreview()` to remove the preview altogether. Note that the deployment will still exist after you cancel the preview and you must separately delete this deployment if you want to remove it.", +"location": "query", +"type": "boolean" +}, +"project": { +"description": "The project ID for this request.", +"location": "path", +"pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", +"required": true, +"type": "string" +} +}, +"path": "deploymentmanager/alpha/projects/{project}/global/deployments/{deployment}", +"request": { +"$ref": "Deployment" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/ndev.cloudman" +] +} +} +}, +"manifests": { +"methods": { +"get": { +"description": "Gets information about a specific manifest.", +"flatPath": "deploymentmanager/alpha/projects/{project}/global/deployments/{deployment}/manifests/{manifest}", +"httpMethod": "GET", +"id": "deploymentmanager.manifests.get", +"parameterOrder": [ +"project", +"deployment", +"manifest" +], +"parameters": { +"deployment": { +"description": "The name of the deployment for this request.", +"location": "path", +"pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", +"required": true, +"type": "string" +}, +"header.bypassBillingFilter": { +"location": "query", +"type": "boolean" +}, +"manifest": { +"description": "The name of the manifest for this request.", +"location": "path", +"pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", +"required": true, +"type": "string" +}, +"project": { +"description": "The project ID for this request.", +"location": "path", +"pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", +"required": true, +"type": "string" +} +}, +"path": "deploymentmanager/alpha/projects/{project}/global/deployments/{deployment}/manifests/{manifest}", +"response": { +"$ref": "Manifest" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only", +"https://www.googleapis.com/auth/ndev.cloudman", +"https://www.googleapis.com/auth/ndev.cloudman.readonly" +] +}, +"list": { +"description": "Lists all manifests for a given deployment.", +"flatPath": "deploymentmanager/alpha/projects/{project}/global/deployments/{deployment}/manifests", +"httpMethod": "GET", +"id": "deploymentmanager.manifests.list", +"parameterOrder": [ +"project", +"deployment" +], +"parameters": { +"deployment": { +"description": "The name of the deployment for this request.", +"location": "path", +"pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", +"required": true, +"type": "string" +}, +"filter": { +"description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", +"location": "query", +"type": "string" +}, +"maxResults": { +"default": "500", +"description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", +"format": "uint32", +"location": "query", +"minimum": "0", +"type": "integer" +}, +"orderBy": { +"description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", +"location": "query", +"type": "string" +}, +"pageToken": { +"description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", +"location": "query", +"type": "string" +}, +"project": { +"description": "The project ID for this request.", +"location": "path", +"pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", +"required": true, +"type": "string" +} +}, +"path": "deploymentmanager/alpha/projects/{project}/global/deployments/{deployment}/manifests", +"response": { +"$ref": "ManifestsListResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only", +"https://www.googleapis.com/auth/ndev.cloudman", +"https://www.googleapis.com/auth/ndev.cloudman.readonly" +] +} +} +}, +"operations": { +"methods": { +"get": { +"description": "Gets information about a specific operation.", +"flatPath": "deploymentmanager/alpha/projects/{project}/global/operations/{operation}", +"httpMethod": "GET", +"id": "deploymentmanager.operations.get", +"parameterOrder": [ +"project", +"operation" +], +"parameters": { +"header.bypassBillingFilter": { +"location": "query", +"type": "boolean" +}, +"operation": { +"description": "The name of the operation for this request.", +"location": "path", +"required": true, +"type": "string" +}, +"project": { +"description": "The project ID for this request.", +"location": "path", +"pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", +"required": true, +"type": "string" +} +}, +"path": "deploymentmanager/alpha/projects/{project}/global/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.cloudman", +"https://www.googleapis.com/auth/ndev.cloudman.readonly" +] +}, +"list": { +"description": "Lists all operations for a project.", +"flatPath": "deploymentmanager/alpha/projects/{project}/global/operations", +"httpMethod": "GET", +"id": "deploymentmanager.operations.list", +"parameterOrder": [ +"project" +], +"parameters": { +"filter": { +"description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", +"location": "query", +"type": "string" +}, +"maxResults": { +"default": "500", +"description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", +"format": "uint32", +"location": "query", +"minimum": "0", +"type": "integer" +}, +"orderBy": { +"description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", +"location": "query", +"type": "string" +}, +"pageToken": { +"description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", +"location": "query", +"type": "string" +}, +"project": { +"description": "The project ID for this request.", +"location": "path", +"pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", +"required": true, +"type": "string" +} +}, +"path": "deploymentmanager/alpha/projects/{project}/global/operations", +"response": { +"$ref": "OperationsListResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only", +"https://www.googleapis.com/auth/ndev.cloudman", +"https://www.googleapis.com/auth/ndev.cloudman.readonly" +] +} +} +}, +"resources": { +"methods": { +"get": { +"description": "Gets information about a single resource.", +"flatPath": "deploymentmanager/alpha/projects/{project}/global/deployments/{deployment}/resources/{resource}", +"httpMethod": "GET", +"id": "deploymentmanager.resources.get", +"parameterOrder": [ +"project", +"deployment", +"resource" +], +"parameters": { +"deployment": { +"description": "The name of the deployment for this request.", +"location": "path", +"pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", +"required": true, +"type": "string" +}, +"header.bypassBillingFilter": { +"location": "query", +"type": "boolean" +}, +"project": { +"description": "The project ID for this request.", +"location": "path", +"pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", +"required": true, +"type": "string" +}, +"resource": { +"description": "The name of the resource for this request.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "deploymentmanager/alpha/projects/{project}/global/deployments/{deployment}/resources/{resource}", +"response": { +"$ref": "Resource" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only", +"https://www.googleapis.com/auth/ndev.cloudman", +"https://www.googleapis.com/auth/ndev.cloudman.readonly" +] +}, +"list": { +"description": "Lists all resources in a given deployment.", +"flatPath": "deploymentmanager/alpha/projects/{project}/global/deployments/{deployment}/resources", +"httpMethod": "GET", +"id": "deploymentmanager.resources.list", +"parameterOrder": [ +"project", +"deployment" +], +"parameters": { +"deployment": { +"description": "The name of the deployment for this request.", +"location": "path", +"pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", +"required": true, +"type": "string" +}, +"filter": { +"description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", +"location": "query", +"type": "string" +}, +"maxResults": { +"default": "500", +"description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", +"format": "uint32", +"location": "query", +"minimum": "0", +"type": "integer" +}, +"orderBy": { +"description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", +"location": "query", +"type": "string" +}, +"pageToken": { +"description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", +"location": "query", +"type": "string" +}, +"project": { +"description": "The project ID for this request.", +"location": "path", +"pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", +"required": true, +"type": "string" +} +}, +"path": "deploymentmanager/alpha/projects/{project}/global/deployments/{deployment}/resources", +"response": { +"$ref": "ResourcesListResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only", +"https://www.googleapis.com/auth/ndev.cloudman", +"https://www.googleapis.com/auth/ndev.cloudman.readonly" +] +} +} +}, +"typeProviders": { +"methods": { +"delete": { +"description": "Deletes a type provider.", +"flatPath": "deploymentmanager/alpha/projects/{project}/global/typeProviders/{typeProvider}", +"httpMethod": "DELETE", +"id": "deploymentmanager.typeProviders.delete", +"parameterOrder": [ +"project", +"typeProvider" +], +"parameters": { +"header.bypassBillingFilter": { +"location": "query", +"type": "boolean" +}, +"project": { +"description": "The project ID for this request.", +"location": "path", +"pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", +"required": true, +"type": "string" +}, +"typeProvider": { +"description": "The name of the type provider for this request.", +"location": "path", +"pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", +"required": true, +"type": "string" +} +}, +"path": "deploymentmanager/alpha/projects/{project}/global/typeProviders/{typeProvider}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/ndev.cloudman" +] +}, +"get": { +"description": "Gets information about a specific type provider.", +"flatPath": "deploymentmanager/alpha/projects/{project}/global/typeProviders/{typeProvider}", +"httpMethod": "GET", +"id": "deploymentmanager.typeProviders.get", +"parameterOrder": [ +"project", +"typeProvider" +], +"parameters": { +"header.bypassBillingFilter": { +"location": "query", +"type": "boolean" +}, +"project": { +"description": "The project ID for this request.", +"location": "path", +"pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", +"required": true, +"type": "string" +}, +"typeProvider": { +"description": "The name of the type provider for this request.", +"location": "path", +"pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", +"required": true, +"type": "string" +} +}, +"path": "deploymentmanager/alpha/projects/{project}/global/typeProviders/{typeProvider}", +"response": { +"$ref": "TypeProvider" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only", +"https://www.googleapis.com/auth/ndev.cloudman", +"https://www.googleapis.com/auth/ndev.cloudman.readonly" +] +}, +"getType": { +"description": "Gets a type info for a type provided by a TypeProvider.", +"flatPath": "deploymentmanager/alpha/projects/{project}/global/typeProviders/{typeProvider}/types/{type}", +"httpMethod": "GET", +"id": "deploymentmanager.typeProviders.getType", +"parameterOrder": [ +"project", +"typeProvider", +"type" +], +"parameters": { +"header.bypassBillingFilter": { +"location": "query", +"type": "boolean" +}, +"project": { +"description": "The project ID for this request.", +"location": "path", +"pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", +"required": true, +"type": "string" +}, +"type": { +"description": "The name of the type provider type for this request.", +"location": "path", +"required": true, +"type": "string" +}, +"typeProvider": { +"description": "The name of the type provider for this request.", +"location": "path", +"pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", +"required": true, +"type": "string" +} +}, +"path": "deploymentmanager/alpha/projects/{project}/global/typeProviders/{typeProvider}/types/{type}", +"response": { +"$ref": "TypeInfo" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only", +"https://www.googleapis.com/auth/ndev.cloudman", +"https://www.googleapis.com/auth/ndev.cloudman.readonly" +] +}, +"insert": { +"description": "Creates a type provider.", +"flatPath": "deploymentmanager/alpha/projects/{project}/global/typeProviders", +"httpMethod": "POST", +"id": "deploymentmanager.typeProviders.insert", +"parameterOrder": [ +"project" +], +"parameters": { +"header.bypassBillingFilter": { +"location": "query", +"type": "boolean" +}, +"project": { +"description": "The project ID for this request.", +"location": "path", +"pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", +"required": true, +"type": "string" +} +}, +"path": "deploymentmanager/alpha/projects/{project}/global/typeProviders", +"request": { +"$ref": "TypeProvider" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/ndev.cloudman" +] +}, +"list": { +"description": "Lists all resource type providers for Deployment Manager.", +"flatPath": "deploymentmanager/alpha/projects/{project}/global/typeProviders", +"httpMethod": "GET", +"id": "deploymentmanager.typeProviders.list", +"parameterOrder": [ +"project" +], +"parameters": { +"filter": { +"description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", +"location": "query", +"type": "string" +}, +"maxResults": { +"default": "500", +"description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", +"format": "uint32", +"location": "query", +"minimum": "0", +"type": "integer" +}, +"orderBy": { +"description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", +"location": "query", +"type": "string" +}, +"pageToken": { +"description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", +"location": "query", +"type": "string" +}, +"project": { +"description": "The project ID for this request.", +"location": "path", +"pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", +"required": true, +"type": "string" +} +}, +"path": "deploymentmanager/alpha/projects/{project}/global/typeProviders", +"response": { +"$ref": "TypeProvidersListResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only", +"https://www.googleapis.com/auth/ndev.cloudman", +"https://www.googleapis.com/auth/ndev.cloudman.readonly" +] +}, +"listTypes": { +"description": "Lists all the type info for a TypeProvider.", +"flatPath": "deploymentmanager/alpha/projects/{project}/global/typeProviders/{typeProvider}/types", +"httpMethod": "GET", +"id": "deploymentmanager.typeProviders.listTypes", +"parameterOrder": [ +"project", +"typeProvider" +], +"parameters": { +"filter": { +"description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", +"location": "query", +"type": "string" +}, +"maxResults": { +"default": "500", +"description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", +"format": "uint32", +"location": "query", +"minimum": "0", +"type": "integer" +}, +"orderBy": { +"description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", +"location": "query", +"type": "string" +}, +"pageToken": { +"description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", +"location": "query", +"type": "string" +}, +"project": { +"description": "The project ID for this request.", +"location": "path", +"pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", +"required": true, +"type": "string" +}, +"typeProvider": { +"description": "The name of the type provider for this request.", +"location": "path", +"pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", +"required": true, +"type": "string" +} +}, +"path": "deploymentmanager/alpha/projects/{project}/global/typeProviders/{typeProvider}/types", +"response": { +"$ref": "TypeProvidersListTypesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only", +"https://www.googleapis.com/auth/ndev.cloudman", +"https://www.googleapis.com/auth/ndev.cloudman.readonly" +] +}, +"patch": { +"description": "Patches a type provider.", +"flatPath": "deploymentmanager/alpha/projects/{project}/global/typeProviders/{typeProvider}", +"httpMethod": "PATCH", +"id": "deploymentmanager.typeProviders.patch", +"parameterOrder": [ +"project", +"typeProvider" +], +"parameters": { +"header.bypassBillingFilter": { +"location": "query", +"type": "boolean" +}, +"project": { +"description": "The project ID for this request.", +"location": "path", +"pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", +"required": true, +"type": "string" +}, +"typeProvider": { +"description": "The name of the type provider for this request.", +"location": "path", +"pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", +"required": true, +"type": "string" +} +}, +"path": "deploymentmanager/alpha/projects/{project}/global/typeProviders/{typeProvider}", +"request": { +"$ref": "TypeProvider" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/ndev.cloudman" +] +}, +"update": { +"description": "Updates a type provider.", +"flatPath": "deploymentmanager/alpha/projects/{project}/global/typeProviders/{typeProvider}", +"httpMethod": "PUT", +"id": "deploymentmanager.typeProviders.update", +"parameterOrder": [ +"project", +"typeProvider" +], +"parameters": { +"header.bypassBillingFilter": { +"location": "query", +"type": "boolean" +}, +"project": { +"description": "The project ID for this request.", +"location": "path", +"pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", +"required": true, +"type": "string" +}, +"typeProvider": { +"description": "The name of the type provider for this request.", +"location": "path", +"pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", +"required": true, +"type": "string" +} +}, +"path": "deploymentmanager/alpha/projects/{project}/global/typeProviders/{typeProvider}", +"request": { +"$ref": "TypeProvider" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/ndev.cloudman" +] +} +} +}, +"types": { +"methods": { +"get": { +"description": "Gets information about a specific type.", +"flatPath": "deploymentmanager/alpha/projects/{project}/global/types/{type}", +"httpMethod": "GET", +"id": "deploymentmanager.types.get", +"parameterOrder": [ +"project", +"type" +], +"parameters": { +"header.bypassBillingFilter": { +"location": "query", +"type": "boolean" +}, +"project": { +"description": "The project ID for this request.", +"location": "path", +"pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", +"required": true, +"type": "string" +}, +"type": { +"description": "The name of the type for this request.", +"location": "path", +"pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", +"required": true, +"type": "string" +} +}, +"path": "deploymentmanager/alpha/projects/{project}/global/types/{type}", +"response": { +"$ref": "Type" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only", +"https://www.googleapis.com/auth/ndev.cloudman", +"https://www.googleapis.com/auth/ndev.cloudman.readonly" +] +}, +"list": { +"description": "Lists all resource types for Deployment Manager.", +"flatPath": "deploymentmanager/alpha/projects/{project}/global/types", +"httpMethod": "GET", +"id": "deploymentmanager.types.list", +"parameterOrder": [ +"project" +], +"parameters": { +"filter": { +"description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", +"location": "query", +"type": "string" +}, +"maxResults": { +"default": "500", +"description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", +"format": "uint32", +"location": "query", +"minimum": "0", +"type": "integer" +}, +"orderBy": { +"description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", +"location": "query", +"type": "string" +}, +"pageToken": { +"description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", +"location": "query", +"type": "string" +}, +"project": { +"description": "The project ID for this request.", +"location": "path", +"pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?))", +"required": true, +"type": "string" +} +}, +"path": "deploymentmanager/alpha/projects/{project}/global/types", +"response": { +"$ref": "TypesListResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-platform.read-only", +"https://www.googleapis.com/auth/ndev.cloudman", +"https://www.googleapis.com/auth/ndev.cloudman.readonly" +] +} +} +} +}, +"revision": "20250102", +"rootUrl": "https://deploymentmanager.googleapis.com/", +"schemas": { +"AsyncOptions": { +"description": "Async options that determine when a resource should finish.", +"id": "AsyncOptions", +"properties": { +"methodMatch": { +"description": "Method regex where this policy will apply.", +"type": "string" +}, +"pollingOptions": { +"$ref": "PollingOptions", +"description": "Deployment manager will poll instances for this API resource setting a RUNNING state, and blocking until polling conditions tell whether the resource is completed or failed." +} +}, +"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" +}, +"BaseType": { +"description": "BaseType that describes a service-backed Type.", +"id": "BaseType", +"properties": { +"collectionOverrides": { +"description": "Allows resource handling overrides for specific collections", +"items": { +"$ref": "CollectionOverride" +}, +"type": "array" +}, +"credential": { +"$ref": "Credential", +"description": "Credential used when interacting with this type." +}, +"descriptorUrl": { +"description": "Descriptor Url for the this type.", +"type": "string" +}, +"options": { +"$ref": "Options", +"description": "Options to apply when handling any resources in this service." +} +}, +"type": "object" +}, +"BasicAuth": { +"description": "Basic Auth used as a credential.", +"id": "BasicAuth", +"properties": { +"password": { +"type": "string" +}, +"user": { +"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" +}, +"BulkInsertOperationStatus": { +"id": "BulkInsertOperationStatus", +"properties": { +"createdVmCount": { +"description": "[Output Only] Count of VMs successfully created so far.", +"format": "int32", +"type": "integer" +}, +"deletedVmCount": { +"description": "[Output Only] Count of VMs that got deleted during rollback.", +"format": "int32", +"type": "integer" +}, +"failedToCreateVmCount": { +"description": "[Output Only] Count of VMs that started creating but encountered an error.", +"format": "int32", +"type": "integer" +}, +"status": { +"description": "[Output Only] Creation status of BulkInsert operation - information if the flow is rolling forward or rolling back.", +"enum": [ +"STATUS_UNSPECIFIED", +"CREATING", +"ROLLING_BACK", +"DONE" +], +"enumDescriptions": [ +"", +"Rolling forward - creating VMs.", +"Rolling back - cleaning up after an error.", +"Done" +], +"type": "string" +}, +"targetVmCount": { +"description": "[Output Only] Count of VMs originally planned to be created.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"CollectionOverride": { +"description": "CollectionOverride allows resource handling overrides for specific resources within a BaseType", +"id": "CollectionOverride", +"properties": { +"collection": { +"description": "The collection that identifies this resource within its service.", +"type": "string" +}, +"methodMap": { +"$ref": "MethodMap", +"description": "Custom verb method mappings to support unordered list API mappings." +}, +"options": { +"$ref": "Options", +"description": "The options to apply to this resource-level override" +} +}, +"type": "object" +}, +"CompositeType": { +"description": "Holds the composite type.", +"id": "CompositeType", +"properties": { +"description": { +"description": "An optional textual description of the resource; provided by the client when the resource is created.", +"type": "string" +}, +"id": { +"format": "uint64", +"type": "string" +}, +"insertTime": { +"description": "Output only. Creation timestamp in RFC3339 text format.", +"type": "string" +}, +"labels": { +"description": "Map of labels; provided by the client when the resource is created or updated. Specifically: Label keys must be between 1 and 63 characters long and must conform to the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?` Label values must be between 0 and 63 characters long and must conform to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`.", +"items": { +"$ref": "CompositeTypeLabelEntry" +}, +"type": "array" +}, +"name": { +"description": "Name of the composite type, must follow the expression: `[a-z]([-a-z0-9_.]{0,61}[a-z0-9])?`.", +"type": "string" +}, +"operation": { +"$ref": "Operation", +"description": "Output only. The Operation that most recently ran, or is currently running, on this composite type." +}, +"selfLink": { +"description": "Output only. Server defined URL for the resource.", +"type": "string" +}, +"status": { +"enum": [ +"UNKNOWN_STATUS", +"DEPRECATED", +"EXPERIMENTAL", +"SUPPORTED" +], +"enumDescriptions": [ +"", +"", +"", +"" +], +"type": "string" +}, +"templateContents": { +"$ref": "TemplateContents", +"description": "Files for the template type." +} +}, +"type": "object" +}, +"CompositeTypeLabelEntry": { +"description": "Label object for CompositeTypes", +"id": "CompositeTypeLabelEntry", +"properties": { +"key": { +"description": "Key of the label", +"type": "string" +}, +"value": { +"description": "Value of the label", +"type": "string" +} +}, +"type": "object" +}, +"CompositeTypesListResponse": { +"description": "A response that returns all Composite Types supported by Deployment Manager", +"id": "CompositeTypesListResponse", +"properties": { +"compositeTypes": { +"description": "Output only. A list of resource composite types supported by Deployment Manager.", +"items": { +"$ref": "CompositeType" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token used to continue a truncated list request.", +"type": "string" +} +}, +"type": "object" +}, +"ConfigFile": { +"id": "ConfigFile", +"properties": { +"content": { +"description": "The contents of the file.", +"type": "string" +} +}, +"type": "object" +}, +"Credential": { +"description": "The credential used by Deployment Manager and TypeProvider. Only one of the options is permitted.", +"id": "Credential", +"properties": { +"basicAuth": { +"$ref": "BasicAuth", +"description": "Basic Auth Credential, only used by TypeProvider." +}, +"serviceAccount": { +"$ref": "ServiceAccount", +"description": "Service Account Credential, only used by Deployment." +}, +"useProjectDefault": { +"description": "Specify to use the project default credential, only supported by Deployment.", +"type": "boolean" +} +}, +"type": "object" +}, +"DebugInfo": { +"description": "Describes additional debugging info.", +"id": "DebugInfo", +"properties": { +"detail": { +"description": "Additional debugging information provided by the server.", +"type": "string" +}, +"stackEntries": { +"description": "The stack trace entries indicating where the error occurred.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Deployment": { +"id": "Deployment", +"properties": { +"credential": { +"$ref": "Credential", +"description": "User provided default credential for the deployment." +}, +"description": { +"description": "An optional user-provided description of the deployment.", +"type": "string" +}, +"fingerprint": { +"description": "Provides a fingerprint to use in requests to modify a deployment, such as `update()`, `stop()`, and `cancelPreview()` requests. A fingerprint is a randomly generated value that must be provided with `update()`, `stop()`, and `cancelPreview()` requests to perform optimistic locking. This ensures optimistic concurrency so that only one request happens at a time. The fingerprint is initially generated by Deployment Manager and changes after every request to modify data. To get the latest fingerprint value, perform a `get()` request to a deployment.", +"format": "byte", +"type": "string" +}, +"id": { +"format": "uint64", +"type": "string" +}, +"insertTime": { +"description": "Output only. Creation timestamp in RFC3339 text format.", +"type": "string" +}, +"labels": { +"description": "Map of One Platform labels; provided by the client when the resource is created or updated. Specifically: Label keys must be between 1 and 63 characters long and must conform to the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?` Label values must be between 0 and 63 characters long and must conform to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`.", +"items": { +"$ref": "DeploymentLabelEntry" +}, +"type": "array" +}, +"manifest": { +"description": "Output only. URL of the manifest representing the last manifest that was successfully deployed. If no manifest has been successfully deployed, this field will be absent.", +"type": "string" +}, +"name": { +"description": "Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", +"type": "string" +}, +"operation": { +"$ref": "Operation", +"description": "Output only. The Operation that most recently ran, or is currently running, on this deployment." +}, +"outputs": { +"description": "Output only. List of outputs from the last manifest that deployed successfully.", +"items": { +"$ref": "DeploymentOutputEntry" +}, +"type": "array" +}, +"selfLink": { +"description": "Output only. Server defined URL for the resource.", +"type": "string" +}, +"target": { +"$ref": "TargetConfiguration", +"description": "[Input Only] The parameters that define your deployment, including the deployment configuration and relevant templates." +}, +"update": { +"$ref": "DeploymentUpdate", +"description": "Output only. If Deployment Manager is currently updating or previewing an update to this deployment, the updated configuration appears here." +}, +"updateTime": { +"description": "Output only. Update timestamp in RFC3339 text format.", +"type": "string" +} +}, +"type": "object" +}, +"DeploymentLabelEntry": { +"description": "Label object for Deployments", +"id": "DeploymentLabelEntry", +"properties": { +"key": { +"description": "Key of the label", +"type": "string" +}, +"value": { +"description": "Value of the label", +"type": "string" +} +}, +"type": "object" +}, +"DeploymentOutputEntry": { +"description": "Output object for Deployments", +"id": "DeploymentOutputEntry", +"properties": { +"key": { +"description": "Key of the output", +"type": "string" +}, +"value": { +"description": "Value of the label", +"type": "string" +} +}, +"type": "object" +}, +"DeploymentUpdate": { +"id": "DeploymentUpdate", +"properties": { +"credential": { +"$ref": "Credential", +"description": "Output only. The user-provided default credential to use when deploying this preview." +}, +"description": { +"description": "Output only. An optional user-provided description of the deployment after the current update has been applied.", +"type": "string" +}, +"labels": { +"description": "Map of One Platform labels; provided by the client when the resource is created or updated. Specifically: Label keys must be between 1 and 63 characters long and must conform to the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?` Label values must be between 0 and 63 characters long and must conform to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`.", +"items": { +"$ref": "DeploymentUpdateLabelEntry" +}, +"type": "array" +}, +"manifest": { +"description": "Output only. URL of the manifest representing the update configuration of this deployment.", +"type": "string" +} +}, +"type": "object" +}, +"DeploymentUpdateLabelEntry": { +"description": "Label object for DeploymentUpdate", +"id": "DeploymentUpdateLabelEntry", +"properties": { +"key": { +"description": "Key of the label", +"type": "string" +}, +"value": { +"description": "Value of the label", +"type": "string" +} +}, +"type": "object" +}, +"DeploymentsCancelPreviewRequest": { +"id": "DeploymentsCancelPreviewRequest", +"properties": { +"fingerprint": { +"description": "Specifies a fingerprint for `cancelPreview()` requests. A fingerprint is a randomly generated value that must be provided in `cancelPreview()` requests to perform optimistic locking. This ensures optimistic concurrency so that the deployment does not have conflicting requests (e.g. if someone attempts to make a new update request while another user attempts to cancel a preview, this would prevent one of the requests). The fingerprint is initially generated by Deployment Manager and changes after every request to modify a deployment. To get the latest fingerprint value, perform a `get()` request on the deployment.", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"DeploymentsListResponse": { +"description": "A response containing a partial list of deployments and a page token used to build the next request if the request has been truncated.", +"id": "DeploymentsListResponse", +"properties": { +"deployments": { +"description": "Output only. The deployments contained in this response.", +"items": { +"$ref": "Deployment" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Output only. A token used to continue a truncated list request.", +"type": "string" +} +}, +"type": "object" +}, +"DeploymentsStopRequest": { +"id": "DeploymentsStopRequest", +"properties": { +"fingerprint": { +"description": "Specifies a fingerprint for `stop()` requests. A fingerprint is a randomly generated value that must be provided in `stop()` requests to perform optimistic locking. This ensures optimistic concurrency so that the deployment does not have conflicting requests (e.g. if someone attempts to make a new update request while another user attempts to stop an ongoing update request, this would prevent a collision). The fingerprint is initially generated by Deployment Manager and changes after every request to modify a deployment. To get the latest fingerprint value, perform a `get()` request on the deployment.", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"Diagnostic": { +"id": "Diagnostic", +"properties": { +"field": { +"description": "JsonPath expression on the resource that if non empty, indicates that this field needs to be extracted as a diagnostic.", +"type": "string" +}, +"level": { +"description": "Level to record this diagnostic.", +"enum": [ +"UNKNOWN", +"INFORMATION", +"WARNING", +"ERROR" +], +"enumDescriptions": [ +"", +"If level is informational, it only gets displayed as part of the resource.", +"If level is warning, will end up in the resource as a warning.", +"If level is error, it will indicate an error occurred after finishCondition is set, and this field will populate resource errors and operation errors." +], +"type": "string" +} +}, +"type": "object" +}, +"ErrorInfo": { +"description": "Describes the cause of the error with structured details. Example of an error when contacting the \"pubsub.googleapis.com\" API when it is not enabled: { \"reason\": \"API_DISABLED\" \"domain\": \"googleapis.com\" \"metadata\": { \"resource\": \"projects/123\", \"service\": \"pubsub.googleapis.com\" } } This response indicates that the pubsub.googleapis.com API is not enabled. Example of an error that is returned when attempting to create a Spanner instance in a region that is out of stock: { \"reason\": \"STOCKOUT\" \"domain\": \"spanner.googleapis.com\", \"metadata\": { \"availableRegions\": \"us-central1,us-east2\" } }", +"id": "ErrorInfo", +"properties": { +"domain": { +"description": "The logical grouping to which the \"reason\" belongs. The error domain is typically the registered service name of the tool or product that generates the error. Example: \"pubsub.googleapis.com\". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is \"googleapis.com\".", +"type": "string" +}, +"metadatas": { +"additionalProperties": { +"type": "string" +}, +"description": "Additional structured details about this error. Keys must match a regular expression of `a-z+` but should ideally be lowerCamelCase. Also, they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than `{\"instanceLimit\": \"100/request\"}`, should be returned as, `{\"instanceLimitPerRequest\": \"100\"}`, if the client exceeds the number of instances that can be created in a single (batch) request.", +"type": "object" +}, +"reason": { +"description": "The reason of the error. This is a constant value that identifies the proximate cause of the error. Error reasons are unique within a particular domain of errors. This should be at most 63 characters and match a regular expression of `A-Z+[A-Z0-9]`, which represents UPPER_SNAKE_CASE.", +"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" +}, +"GlobalSetPolicyRequest": { +"id": "GlobalSetPolicyRequest", +"properties": { +"bindings": { +"description": "Flatten Policy to create a backward compatible wire-format. Deprecated. Use 'policy' to specify bindings.", +"items": { +"$ref": "Binding" +}, +"type": "array" +}, +"etag": { +"description": "Flatten Policy to create a backward compatible wire-format. Deprecated. Use 'policy' to specify the etag.", +"format": "byte", +"type": "string" +}, +"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 in general a valid policy but certain services (like Projects) might reject them." +}, +"updateMask": { +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"Help": { +"description": "Provides links to documentation or for performing an out of band action. For example, if a quota check failed with an error indicating the calling project hasn't enabled the accessed service, this can contain a URL pointing directly to the right place in the developer console to flip the bit.", +"id": "Help", +"properties": { +"links": { +"description": "URL(s) pointing to additional information on handling the current error.", +"items": { +"$ref": "HelpLink" +}, +"type": "array" +} +}, +"type": "object" +}, +"HelpLink": { +"description": "Describes a URL link.", +"id": "HelpLink", +"properties": { +"description": { +"description": "Describes what the link offers.", +"type": "string" +}, +"url": { +"description": "The URL of the link.", +"type": "string" +} +}, +"type": "object" +}, +"ImportFile": { +"id": "ImportFile", +"properties": { +"content": { +"description": "The contents of the file.", +"type": "string" +}, +"name": { +"description": "The name of the file.", +"type": "string" +} +}, +"type": "object" +}, +"InputMapping": { +"description": "InputMapping creates a 'virtual' property that will be injected into the properties before sending the request to the underlying API.", +"id": "InputMapping", +"properties": { +"fieldName": { +"description": "The name of the field that is going to be injected.", +"type": "string" +}, +"location": { +"description": "The location where this mapping applies.", +"enum": [ +"UNKNOWN", +"PATH", +"QUERY", +"BODY", +"HEADER" +], +"enumDescriptions": [ +"", +"", +"", +"", +"" +], +"type": "string" +}, +"methodMatch": { +"description": "Regex to evaluate on method to decide if input applies.", +"type": "string" +}, +"value": { +"description": "A jsonPath expression to select an element.", +"type": "string" +} +}, +"type": "object" +}, +"InstancesBulkInsertOperationMetadata": { +"id": "InstancesBulkInsertOperationMetadata", +"properties": { +"perLocationStatus": { +"additionalProperties": { +"$ref": "BulkInsertOperationStatus" +}, +"description": "Status information per location (location name is key). Example key: zones/us-central1-a", +"type": "object" +} +}, +"type": "object" +}, +"LocalizedMessage": { +"description": "Provides a localized error message that is safe to return to the user which can be attached to an RPC error.", +"id": "LocalizedMessage", +"properties": { +"locale": { +"description": "The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: \"en-US\", \"fr-CH\", \"es-MX\"", +"type": "string" +}, +"message": { +"description": "The localized error message in the above locale.", +"type": "string" +} +}, +"type": "object" +}, +"Manifest": { +"id": "Manifest", +"properties": { +"config": { +"$ref": "ConfigFile", +"description": "Output only. The YAML configuration for this manifest." +}, +"expandedConfig": { +"description": "Output only. The fully-expanded configuration file, including any templates and references.", +"type": "string" +}, +"id": { +"format": "uint64", +"type": "string" +}, +"imports": { +"description": "Output only. The imported files for this manifest.", +"items": { +"$ref": "ImportFile" +}, +"type": "array" +}, +"insertTime": { +"description": "Output only. Creation timestamp in RFC3339 text format.", +"type": "string" +}, +"layout": { +"description": "Output only. The YAML layout for this manifest.", +"type": "string" +}, +"manifestSizeBytes": { +"description": "Output only. The computed size of the fully expanded manifest.", +"format": "int64", +"type": "string" +}, +"manifestSizeLimitBytes": { +"description": "Output only. The size limit for expanded manifests in the project.", +"format": "int64", +"type": "string" +}, +"name": { +"description": "Output only. The name of the manifest.", +"type": "string" +}, +"selfLink": { +"description": "Output only. Self link for the manifest.", +"type": "string" +} +}, +"type": "object" +}, +"ManifestsListResponse": { +"description": "A response containing a partial list of manifests and a page token used to build the next request if the request has been truncated.", +"id": "ManifestsListResponse", +"properties": { +"manifests": { +"description": "Output only. Manifests contained in this list response.", +"items": { +"$ref": "Manifest" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Output only. A token used to continue a truncated list request.", +"type": "string" +} +}, +"type": "object" +}, +"MethodMap": { +"description": "Deployment Manager will call these methods during the events of creation/deletion/update/get/setIamPolicy", +"id": "MethodMap", +"properties": { +"create": { +"description": "The action identifier for the create method to be used for this collection", +"type": "string" +}, +"delete": { +"description": "The action identifier for the delete method to be used for this collection", +"type": "string" +}, +"get": { +"description": "The action identifier for the get method to be used for this collection", +"type": "string" +}, +"setIamPolicy": { +"description": "The action identifier for the setIamPolicy method to be used for this collection", +"type": "string" +}, +"update": { +"description": "The action identifier for the update method to be used for this collection", +"type": "string" +} +}, +"type": "object" +}, +"Operation": { +"description": "Represents an Operation resource. Google Compute Engine has three Operation resources: * [Global](/compute/docs/reference/rest/{$api_version}/globalOperations) * [Regional](/compute/docs/reference/rest/{$api_version}/regionOperations) * [Zonal](/compute/docs/reference/rest/{$api_version}/zoneOperations) You can use an operation resource to manage asynchronous API requests. For more information, read Handling API responses. Operations can be global, regional or zonal. - For global operations, use the `globalOperations` resource. - For regional operations, use the `regionOperations` resource. - For zonal operations, use the `zoneOperations` resource. For more information, read Global, Regional, and Zonal Resources. Note that completed Operation resources have a limited retention period.", +"id": "Operation", +"properties": { +"clientOperationId": { +"description": "[Output Only] The value of `requestId` if you provided it in the request. Not present otherwise.", +"type": "string" +}, +"creationTimestamp": { +"description": "[Deprecated] This field is deprecated.", +"type": "string" +}, +"description": { +"description": "[Output Only] A textual description of the operation, which is set when the operation is created.", +"type": "string" +}, +"endTime": { +"description": "[Output Only] The time that this operation was completed. This value is in RFC3339 text format.", +"type": "string" +}, +"error": { +"description": "[Output Only] If errors are generated during processing of the operation, this field will be populated.", +"properties": { +"errors": { +"description": "[Output Only] The array of errors encountered while processing this operation.", +"items": { +"properties": { +"arguments": { +"description": "[Output Only] Optional error details WARNING: DO NOT MAKE VISIBLE This is for internal use-only (like componentization) (thus the visibility \"none\") and in case of public exposure it is strongly recommended to follow pattern of: https://aip.dev/193 and expose as details field.", +"items": { +"type": "string" +}, +"type": "array" +}, +"code": { +"description": "[Output Only] The error type identifier for this error.", +"type": "string" +}, +"debugInfo": { +"$ref": "DebugInfo" +}, +"errorDetails": { +"description": "[Output Only] An optional list of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED.", +"items": { +"properties": { +"errorInfo": { +"$ref": "ErrorInfo" +}, +"help": { +"$ref": "Help" +}, +"localizedMessage": { +"$ref": "LocalizedMessage" +}, +"quotaInfo": { +"$ref": "QuotaExceededInfo" +} +}, +"type": "object" +}, +"type": "array" +}, +"location": { +"description": "[Output Only] Indicates the field in the request that caused the error. This property is optional.", +"type": "string" +}, +"message": { +"description": "[Output Only] An optional, human-readable error message.", +"type": "string" +} +}, +"type": "object" +}, +"type": "array" +} +}, +"type": "object" +}, +"httpErrorMessage": { +"description": "[Output Only] If the operation fails, this field contains the HTTP error message that was returned, such as `NOT FOUND`.", +"type": "string" +}, +"httpErrorStatusCode": { +"description": "[Output Only] If the operation fails, this field contains the HTTP error status code that was returned. For example, a `404` means the resource was not found.", +"format": "int32", +"type": "integer" +}, +"id": { +"description": "[Output Only] The unique identifier for the operation. This identifier is defined by the server.", +"format": "uint64", +"type": "string" +}, +"insertTime": { +"description": "[Output Only] The time that this operation was requested. This value is in RFC3339 text format.", +"type": "string" +}, +"instancesBulkInsertOperationMetadata": { +"$ref": "InstancesBulkInsertOperationMetadata" +}, +"kind": { +"default": "compute#operation", +"description": "[Output Only] Type of the resource. Always `compute#operation` for Operation resources.", +"type": "string" +}, +"name": { +"description": "[Output Only] Name of the operation.", +"type": "string" +}, +"operationGroupId": { +"description": "[Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.", +"type": "string" +}, +"operationType": { +"description": "[Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.", +"type": "string" +}, +"progress": { +"description": "[Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.", +"format": "int32", +"type": "integer" +}, +"region": { +"description": "[Output Only] The URL of the region where the operation resides. Only applicable when performing regional operations.", +"type": "string" +}, +"selfLink": { +"description": "[Output Only] Server-defined URL for the resource.", +"type": "string" +}, +"selfLinkWithId": { +"description": "[Output Only] Server-defined URL for this resource with the resource id.", +"type": "string" +}, +"setCommonInstanceMetadataOperationMetadata": { +"$ref": "SetCommonInstanceMetadataOperationMetadata", +"description": "[Output Only] If the operation is for projects.setCommonInstanceMetadata, this field will contain information on all underlying zonal actions and their state." +}, +"startTime": { +"description": "[Output Only] The time that this operation was started by the server. This value is in RFC3339 text format.", +"type": "string" +}, +"status": { +"description": "[Output Only] The status of the operation, which can be one of the following: `PENDING`, `RUNNING`, or `DONE`.", +"enum": [ +"PENDING", +"RUNNING", +"DONE" +], +"enumDescriptions": [ +"", +"", +"" +], +"type": "string" +}, +"statusMessage": { +"description": "[Output Only] An optional textual description of the current status of the operation.", +"type": "string" +}, +"targetId": { +"description": "[Output Only] The unique target ID, which identifies a specific incarnation of the target resource.", +"format": "uint64", +"type": "string" +}, +"targetLink": { +"description": "[Output Only] The URL of the resource that the operation modifies. For operations related to creating a snapshot, this points to the disk that the snapshot was created from.", +"type": "string" +}, +"user": { +"description": "[Output Only] User who requested the operation, for example: `user@example.com` or `alice_smith_identifier (global/workforcePools/example-com-us-employees)`.", +"type": "string" +}, +"warnings": { +"description": "[Output Only] If warning messages are generated during processing of the operation, this field will be populated.", +"items": { +"properties": { +"code": { +"description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", +"enum": [ +"DEPRECATED_RESOURCE_USED", +"NO_RESULTS_ON_PAGE", +"UNREACHABLE", +"NEXT_HOP_ADDRESS_NOT_ASSIGNED", +"NEXT_HOP_INSTANCE_NOT_FOUND", +"NEXT_HOP_INSTANCE_NOT_ON_NETWORK", +"NEXT_HOP_CANNOT_IP_FORWARD", +"NEXT_HOP_NOT_RUNNING", +"INJECTED_KERNELS_DEPRECATED", +"REQUIRED_TOS_AGREEMENT", +"DISK_SIZE_LARGER_THAN_IMAGE_SIZE", +"RESOURCE_NOT_DELETED", +"SINGLE_INSTANCE_PROPERTY_TEMPLATE", +"NOT_CRITICAL_ERROR", +"CLEANUP_FAILED", +"FIELD_VALUE_OVERRIDEN", +"RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", +"NETWORK_ENDPOINT_NOT_DETACHED", +"PAGE_MISSING_RESULTS", +"SSL_POLICY_ENABLED_FEATURES_NOT_FETCHED", +"RESOURCE_NOT_FOUND_WARNING", +"MISSING_TYPE_DEPENDENCY", +"EXTERNAL_API_WARNING", +"SCHEMA_VALIDATION_IGNORED", +"UNDECLARED_PROPERTIES", +"EXPERIMENTAL_TYPE_USED", +"DEPRECATED_TYPE_USED", +"PARTIAL_SUCCESS", +"LARGE_DEPLOYMENT_WARNING", +"NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", +"INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", +"LIST_OVERHEAD_QUOTA_EXCEED", +"QUOTA_INFO_UNAVAILABLE", +"RESOURCE_USES_GLOBAL_DNS", +"RATE_LIMIT_EXCEEDED", +"RESERVED_ENTRY_135", +"RESERVED_ENTRY_136", +"RESERVED_ENTRY_139", +"RESERVED_ENTRY_141", +"RESERVED_ENTRY_142" +], +"enumDeprecated": [ +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +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 +], +"enumDescriptions": [ +"A link to a deprecated resource was created.", +"No results are present on a particular list page.", +"A given scope cannot be reached.", +"The route's nextHopIp address is not assigned to an instance on the network.", +"The route's nextHopInstance URL refers to an instance that does not exist.", +"The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", +"The route's next hop instance cannot ip forward.", +"The route's next hop instance does not have a status of RUNNING.", +"The operation involved use of an injected kernel, which is deprecated.", +"The user attempted to use a resource that requires a TOS they have not accepted.", +"The user created a boot disk that is larger than image size.", +"One or more of the resources set to auto-delete could not be deleted because they were in use.", +"Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", +"Error which is not critical. We decided to continue the process despite the mentioned error.", +"Warning about failed cleanup of transient changes made by a failed operation.", +"Warning that value of a field has been overridden. Deprecated unused field.", +"Warning that a resource is in use.", +"Warning that network endpoint was not detached.", +"Current page contains less results than requested but a next page token exists.", +"Warning that SSL policy resource in the response does not contain information about the list of enabled features.", +"Warning that a resource is not found.", +"A resource depends on a missing type", +"Warning that is present in an external api call", +"When a resource schema validation is ignored.", +"When undeclared properties in the schema are present", +"When deploying and at least one of the resources has a type marked as experimental", +"When deploying and at least one of the resources has a type marked as deprecated", +"Success is reported, but some results may be missing due to errors", +"When deploying a deployment with a exceedingly large number of resources", +"The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", +"A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", +"Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", +"Quota information is not available to client requests (e.g: regions.list).", +"Indicates that a VM is using global DNS. Can also be used to indicate that a resource has attributes that could result in the creation of a VM that uses global DNS.", +"Resource can't be retrieved due to api quota exceeded.", +"Reserved entries for quickly adding new warnings without breaking dependent clients.", +"", +"", +"", +"" +], +"type": "string" +}, +"data": { +"description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", +"items": { +"properties": { +"key": { +"description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", +"type": "string" +}, +"value": { +"description": "[Output Only] A warning data value corresponding to the key.", +"type": "string" +} +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "[Output Only] A human-readable description of the warning code.", +"type": "string" +} +}, +"type": "object" +}, +"type": "array" +}, +"zone": { +"description": "[Output Only] The URL of the zone where the operation resides. Only applicable when performing per-zone operations.", +"type": "string" +} +}, +"type": "object" +}, +"OperationsListResponse": { +"description": "A response containing a partial list of operations and a page token used to build the next request if the request has been truncated.", +"id": "OperationsListResponse", +"properties": { +"nextPageToken": { +"description": "Output only. A token used to continue a truncated list request.", +"type": "string" +}, +"operations": { +"description": "Output only. Operations contained in this list response.", +"items": { +"$ref": "Operation" +}, +"type": "array" +} +}, +"type": "object" +}, +"Options": { +"description": "Options allows customized resource handling by Deployment Manager.", +"id": "Options", +"properties": { +"asyncOptions": { +"description": "Options regarding how to thread async requests.", +"items": { +"$ref": "AsyncOptions" +}, +"type": "array" +}, +"inputMappings": { +"description": "The mappings that apply for requests.", +"items": { +"$ref": "InputMapping" +}, +"type": "array" +}, +"nameProperty": { +"description": "The json path to the field in the resource JSON body into which the resource name should be mapped. Leaving this empty indicates that there should be no mapping performed.", +"type": "string" +}, +"validationOptions": { +"$ref": "ValidationOptions", +"description": "Options for how to validate and process properties on a resource." +} +}, +"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" +}, +"PollingOptions": { +"id": "PollingOptions", +"properties": { +"diagnostics": { +"description": "An array of diagnostics to be collected by Deployment Manager, these diagnostics will be displayed to the user.", +"items": { +"$ref": "Diagnostic" +}, +"type": "array" +}, +"failCondition": { +"description": "JsonPath expression that determines if the request failed.", +"type": "string" +}, +"finishCondition": { +"description": "JsonPath expression that determines if the request is completed.", +"type": "string" +}, +"pollingLink": { +"description": "JsonPath expression that evaluates to string, it indicates where to poll.", +"type": "string" +}, +"targetLink": { +"description": "JsonPath expression, after polling is completed, indicates where to fetch the resource.", +"type": "string" +} +}, +"type": "object" +}, +"QuotaExceededInfo": { +"description": "Additional details for quota exceeded error for resource quota.", +"id": "QuotaExceededInfo", +"properties": { +"dimensions": { +"additionalProperties": { +"type": "string" +}, +"description": "The map holding related quota dimensions.", +"type": "object" +}, +"futureLimit": { +"description": "Future quota limit being rolled out. The limit's unit depends on the quota type or metric.", +"format": "double", +"type": "number" +}, +"limit": { +"description": "Current effective quota limit. The limit's unit depends on the quota type or metric.", +"format": "double", +"type": "number" +}, +"limitName": { +"description": "The name of the quota limit.", +"type": "string" +}, +"metricName": { +"description": "The Compute Engine quota metric name.", +"type": "string" +}, +"rolloutStatus": { +"description": "Rollout status of the future quota limit.", +"enum": [ +"ROLLOUT_STATUS_UNSPECIFIED", +"IN_PROGRESS" +], +"enumDescriptions": [ +"ROLLOUT_STATUS_UNSPECIFIED - Rollout status is not specified. The default value.", +"IN_PROGRESS - A rollout is in process which will change the limit value to future limit." +], +"type": "string" +} +}, +"type": "object" +}, +"Resource": { +"id": "Resource", +"properties": { +"accessControl": { +"$ref": "ResourceAccessControl", +"description": "The Access Control Policy set on this resource." +}, +"finalProperties": { +"description": "Output only. The evaluated properties of the resource with references expanded. Returned as serialized YAML.", +"type": "string" +}, +"id": { +"format": "uint64", +"type": "string" +}, +"insertTime": { +"description": "Output only. Creation timestamp in RFC3339 text format.", +"type": "string" +}, +"lastUsedCredential": { +"$ref": "Credential", +"description": "Output only. The last used credential that successfully created/updated the resource." +}, +"manifest": { +"description": "Output only. URL of the manifest representing the current configuration of this resource.", +"type": "string" +}, +"name": { +"description": "Output only. The name of the resource as it appears in the YAML config.", +"type": "string" +}, +"properties": { +"description": "Output only. The current properties of the resource before any references have been filled in. Returned as serialized YAML.", +"type": "string" +}, +"runtimePolicies": { +"description": "Output only. In case this is an action, it will show the runtimePolicies on which this action will run in the deployment", +"items": { +"enum": [ +"CREATE", +"DELETE", +"UPDATE_ON_CHANGE", +"UPDATE_ALWAYS" +], +"enumDescriptions": [ +"The action will only be fired during create.", +"The action will only be fired when the action is removed from the deployment.", +"The action will fire during create, and if there is any changes on the inputs.", +"The action will fire during create, and every time there is an update to the deployment." +], +"type": "string" +}, +"type": "array" +}, +"type": { +"description": "Output only. The type of the resource, for example `compute.v1.instance`, or `cloudfunctions.v1beta1.function`.", +"type": "string" +}, +"update": { +"$ref": "ResourceUpdate", +"description": "Output only. If Deployment Manager is currently updating or previewing an update to this resource, the updated configuration appears here." +}, +"updateTime": { +"description": "Output only. Update timestamp in RFC3339 text format.", +"type": "string" +}, +"url": { +"description": "Output only. The URL of the actual resource.", +"type": "string" +}, +"warnings": { +"description": "Output only. If warning messages are generated during processing of this resource, this field will be populated.", +"items": { +"properties": { +"code": { +"description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", +"enum": [ +"DEPRECATED_RESOURCE_USED", +"NO_RESULTS_ON_PAGE", +"UNREACHABLE", +"NEXT_HOP_ADDRESS_NOT_ASSIGNED", +"NEXT_HOP_INSTANCE_NOT_FOUND", +"NEXT_HOP_INSTANCE_NOT_ON_NETWORK", +"NEXT_HOP_CANNOT_IP_FORWARD", +"NEXT_HOP_NOT_RUNNING", +"INJECTED_KERNELS_DEPRECATED", +"REQUIRED_TOS_AGREEMENT", +"DISK_SIZE_LARGER_THAN_IMAGE_SIZE", +"RESOURCE_NOT_DELETED", +"SINGLE_INSTANCE_PROPERTY_TEMPLATE", +"NOT_CRITICAL_ERROR", +"CLEANUP_FAILED", +"FIELD_VALUE_OVERRIDEN", +"RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", +"NETWORK_ENDPOINT_NOT_DETACHED", +"PAGE_MISSING_RESULTS", +"SSL_POLICY_ENABLED_FEATURES_NOT_FETCHED", +"RESOURCE_NOT_FOUND_WARNING", +"MISSING_TYPE_DEPENDENCY", +"EXTERNAL_API_WARNING", +"SCHEMA_VALIDATION_IGNORED", +"UNDECLARED_PROPERTIES", +"EXPERIMENTAL_TYPE_USED", +"DEPRECATED_TYPE_USED", +"PARTIAL_SUCCESS", +"LARGE_DEPLOYMENT_WARNING", +"NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", +"INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", +"LIST_OVERHEAD_QUOTA_EXCEED", +"QUOTA_INFO_UNAVAILABLE", +"RESOURCE_USES_GLOBAL_DNS", +"RATE_LIMIT_EXCEEDED", +"RESERVED_ENTRY_135", +"RESERVED_ENTRY_136", +"RESERVED_ENTRY_139", +"RESERVED_ENTRY_141", +"RESERVED_ENTRY_142" +], +"enumDeprecated": [ +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +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 +], +"enumDescriptions": [ +"A link to a deprecated resource was created.", +"No results are present on a particular list page.", +"A given scope cannot be reached.", +"The route's nextHopIp address is not assigned to an instance on the network.", +"The route's nextHopInstance URL refers to an instance that does not exist.", +"The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", +"The route's next hop instance cannot ip forward.", +"The route's next hop instance does not have a status of RUNNING.", +"The operation involved use of an injected kernel, which is deprecated.", +"The user attempted to use a resource that requires a TOS they have not accepted.", +"The user created a boot disk that is larger than image size.", +"One or more of the resources set to auto-delete could not be deleted because they were in use.", +"Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", +"Error which is not critical. We decided to continue the process despite the mentioned error.", +"Warning about failed cleanup of transient changes made by a failed operation.", +"Warning that value of a field has been overridden. Deprecated unused field.", +"Warning that a resource is in use.", +"Warning that network endpoint was not detached.", +"Current page contains less results than requested but a next page token exists.", +"Warning that SSL policy resource in the response does not contain information about the list of enabled features.", +"Warning that a resource is not found.", +"A resource depends on a missing type", +"Warning that is present in an external api call", +"When a resource schema validation is ignored.", +"When undeclared properties in the schema are present", +"When deploying and at least one of the resources has a type marked as experimental", +"When deploying and at least one of the resources has a type marked as deprecated", +"Success is reported, but some results may be missing due to errors", +"When deploying a deployment with a exceedingly large number of resources", +"The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", +"A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", +"Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", +"Quota information is not available to client requests (e.g: regions.list).", +"Indicates that a VM is using global DNS. Can also be used to indicate that a resource has attributes that could result in the creation of a VM that uses global DNS.", +"Resource can't be retrieved due to api quota exceeded.", +"Reserved entries for quickly adding new warnings without breaking dependent clients.", +"", +"", +"", +"" +], +"type": "string" +}, +"data": { +"description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", +"items": { +"properties": { +"key": { +"description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", +"type": "string" +}, +"value": { +"description": "[Output Only] A warning data value corresponding to the key.", +"type": "string" +} +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "[Output Only] A human-readable description of the warning code.", +"type": "string" +} +}, +"type": "object" +}, +"type": "array" +} +}, +"type": "object" +}, +"ResourceAccessControl": { +"description": "The access controls set on the resource.", +"id": "ResourceAccessControl", +"properties": { +"gcpIamPolicy": { +"description": "The GCP IAM Policy to set on the resource.", +"type": "string" +} +}, +"type": "object" +}, +"ResourceUpdate": { +"id": "ResourceUpdate", +"properties": { +"accessControl": { +"$ref": "ResourceAccessControl", +"description": "The Access Control Policy to set on this resource after updating the resource itself." +}, +"credential": { +"$ref": "Credential", +"description": "Output only. The credential that will be used creating/updating this resource." +}, +"error": { +"description": "Output only. If errors are generated during update of the resource, this field will be populated.", +"properties": { +"errors": { +"description": "[Output Only] The array of errors encountered while processing this operation.", +"items": { +"properties": { +"arguments": { +"description": "[Output Only] Optional error details WARNING: DO NOT MAKE VISIBLE This is for internal use-only (like componentization) (thus the visibility \"none\") and in case of public exposure it is strongly recommended to follow pattern of: https://aip.dev/193 and expose as details field.", +"items": { +"type": "string" +}, +"type": "array" +}, +"code": { +"description": "[Output Only] The error type identifier for this error.", +"type": "string" +}, +"debugInfo": { +"$ref": "DebugInfo" +}, +"errorDetails": { +"description": "[Output Only] An optional list of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED.", +"items": { +"properties": { +"errorInfo": { +"$ref": "ErrorInfo" +}, +"help": { +"$ref": "Help" +}, +"localizedMessage": { +"$ref": "LocalizedMessage" +}, +"quotaInfo": { +"$ref": "QuotaExceededInfo" +} +}, +"type": "object" +}, +"type": "array" +}, +"location": { +"description": "[Output Only] Indicates the field in the request that caused the error. This property is optional.", +"type": "string" +}, +"message": { +"description": "[Output Only] An optional, human-readable error message.", +"type": "string" +} +}, +"type": "object" +}, +"type": "array" +} +}, +"type": "object" +}, +"finalProperties": { +"description": "Output only. The expanded properties of the resource with reference values expanded. Returned as serialized YAML.", +"type": "string" +}, +"intent": { +"description": "Output only. The intent of the resource: `PREVIEW`, `UPDATE`, or `CANCEL`.", +"enum": [ +"CREATE_OR_ACQUIRE", +"DELETE", +"ACQUIRE", +"UPDATE", +"ABANDON", +"CREATE" +], +"enumDescriptions": [ +"The resource is scheduled to be created, or if it already exists, acquired.", +"The resource is scheduled to be deleted.", +"The resource is scheduled to be acquired.", +"The resource is scheduled to be updated via the UPDATE method.", +"The resource is scheduled to be abandoned.", +"The resource is scheduled to be created." +], +"type": "string" +}, +"manifest": { +"description": "Output only. URL of the manifest representing the update configuration of this resource.", +"type": "string" +}, +"properties": { +"description": "Output only. The set of updated properties for this resource, before references are expanded. Returned as serialized YAML.", +"type": "string" +}, +"runtimePolicies": { +"description": "Output only. In case this is an action, it will show the runtimePolicies that this action will have after updating the deployment.", +"items": { +"enum": [ +"CREATE", +"DELETE", +"UPDATE_ON_CHANGE", +"UPDATE_ALWAYS" +], +"enumDescriptions": [ +"The action will only be fired during create.", +"The action will only be fired when the action is removed from the deployment.", +"The action will fire during create, and if there is any changes on the inputs.", +"The action will fire during create, and every time there is an update to the deployment." +], +"type": "string" +}, +"type": "array" +}, +"state": { +"description": "Output only. The state of the resource.", +"enum": [ +"PENDING", +"IN_PROGRESS", +"IN_PREVIEW", +"FAILED", +"ABORTED" +], +"enumDescriptions": [ +"There are changes pending for this resource.", +"The service is executing changes on the resource.", +"The service is previewing changes on the resource.", +"The service has failed to change the resource.", +"The service has aborted trying to change the resource." +], +"type": "string" +}, +"warnings": { +"description": "Output only. If warning messages are generated during processing of this resource, this field will be populated.", +"items": { +"properties": { +"code": { +"description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", +"enum": [ +"DEPRECATED_RESOURCE_USED", +"NO_RESULTS_ON_PAGE", +"UNREACHABLE", +"NEXT_HOP_ADDRESS_NOT_ASSIGNED", +"NEXT_HOP_INSTANCE_NOT_FOUND", +"NEXT_HOP_INSTANCE_NOT_ON_NETWORK", +"NEXT_HOP_CANNOT_IP_FORWARD", +"NEXT_HOP_NOT_RUNNING", +"INJECTED_KERNELS_DEPRECATED", +"REQUIRED_TOS_AGREEMENT", +"DISK_SIZE_LARGER_THAN_IMAGE_SIZE", +"RESOURCE_NOT_DELETED", +"SINGLE_INSTANCE_PROPERTY_TEMPLATE", +"NOT_CRITICAL_ERROR", +"CLEANUP_FAILED", +"FIELD_VALUE_OVERRIDEN", +"RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", +"NETWORK_ENDPOINT_NOT_DETACHED", +"PAGE_MISSING_RESULTS", +"SSL_POLICY_ENABLED_FEATURES_NOT_FETCHED", +"RESOURCE_NOT_FOUND_WARNING", +"MISSING_TYPE_DEPENDENCY", +"EXTERNAL_API_WARNING", +"SCHEMA_VALIDATION_IGNORED", +"UNDECLARED_PROPERTIES", +"EXPERIMENTAL_TYPE_USED", +"DEPRECATED_TYPE_USED", +"PARTIAL_SUCCESS", +"LARGE_DEPLOYMENT_WARNING", +"NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", +"INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", +"LIST_OVERHEAD_QUOTA_EXCEED", +"QUOTA_INFO_UNAVAILABLE", +"RESOURCE_USES_GLOBAL_DNS", +"RATE_LIMIT_EXCEEDED", +"RESERVED_ENTRY_135", +"RESERVED_ENTRY_136", +"RESERVED_ENTRY_139", +"RESERVED_ENTRY_141", +"RESERVED_ENTRY_142" +], +"enumDeprecated": [ +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +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 +], +"enumDescriptions": [ +"A link to a deprecated resource was created.", +"No results are present on a particular list page.", +"A given scope cannot be reached.", +"The route's nextHopIp address is not assigned to an instance on the network.", +"The route's nextHopInstance URL refers to an instance that does not exist.", +"The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", +"The route's next hop instance cannot ip forward.", +"The route's next hop instance does not have a status of RUNNING.", +"The operation involved use of an injected kernel, which is deprecated.", +"The user attempted to use a resource that requires a TOS they have not accepted.", +"The user created a boot disk that is larger than image size.", +"One or more of the resources set to auto-delete could not be deleted because they were in use.", +"Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", +"Error which is not critical. We decided to continue the process despite the mentioned error.", +"Warning about failed cleanup of transient changes made by a failed operation.", +"Warning that value of a field has been overridden. Deprecated unused field.", +"Warning that a resource is in use.", +"Warning that network endpoint was not detached.", +"Current page contains less results than requested but a next page token exists.", +"Warning that SSL policy resource in the response does not contain information about the list of enabled features.", +"Warning that a resource is not found.", +"A resource depends on a missing type", +"Warning that is present in an external api call", +"When a resource schema validation is ignored.", +"When undeclared properties in the schema are present", +"When deploying and at least one of the resources has a type marked as experimental", +"When deploying and at least one of the resources has a type marked as deprecated", +"Success is reported, but some results may be missing due to errors", +"When deploying a deployment with a exceedingly large number of resources", +"The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", +"A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", +"Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", +"Quota information is not available to client requests (e.g: regions.list).", +"Indicates that a VM is using global DNS. Can also be used to indicate that a resource has attributes that could result in the creation of a VM that uses global DNS.", +"Resource can't be retrieved due to api quota exceeded.", +"Reserved entries for quickly adding new warnings without breaking dependent clients.", +"", +"", +"", +"" +], +"type": "string" +}, +"data": { +"description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", +"items": { +"properties": { +"key": { +"description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", +"type": "string" +}, +"value": { +"description": "[Output Only] A warning data value corresponding to the key.", +"type": "string" +} +}, +"type": "object" +}, +"type": "array" +}, +"message": { +"description": "[Output Only] A human-readable description of the warning code.", +"type": "string" +} +}, +"type": "object" +}, +"type": "array" +} +}, +"type": "object" +}, +"ResourcesListResponse": { +"description": "A response containing a partial list of resources and a page token used to build the next request if the request has been truncated.", +"id": "ResourcesListResponse", +"properties": { +"nextPageToken": { +"description": "A token used to continue a truncated list request.", +"type": "string" +}, +"resources": { +"description": "Resources contained in this list response.", +"items": { +"$ref": "Resource" +}, +"type": "array" +} +}, +"type": "object" +}, +"ServiceAccount": { +"description": "Service Account used as a credential.", +"id": "ServiceAccount", +"properties": { +"email": { +"description": "The IAM service account email address like test@myproject.iam.gserviceaccount.com", +"type": "string" +} +}, +"type": "object" +}, +"SetCommonInstanceMetadataOperationMetadata": { +"id": "SetCommonInstanceMetadataOperationMetadata", +"properties": { +"clientOperationId": { +"description": "[Output Only] The client operation id.", +"type": "string" +}, +"perLocationOperations": { +"additionalProperties": { +"$ref": "SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo" +}, +"description": "[Output Only] Status information per location (location name is key). Example key: zones/us-central1-a", +"type": "object" +} +}, +"type": "object" +}, +"SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo": { +"id": "SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo", +"properties": { +"error": { +"$ref": "Status", +"description": "[Output Only] If state is `ABANDONED` or `FAILED`, this field is populated." +}, +"state": { +"description": "[Output Only] Status of the action, which can be one of the following: `PROPAGATING`, `PROPAGATED`, `ABANDONED`, `FAILED`, or `DONE`.", +"enum": [ +"UNSPECIFIED", +"PROPAGATING", +"PROPAGATED", +"ABANDONED", +"FAILED", +"DONE" +], +"enumDescriptions": [ +"", +"Operation is not yet confirmed to have been created in the location.", +"Operation is confirmed to be in the location.", +"Operation not tracked in this location e.g. zone is marked as DOWN.", +"Operation is in an error state.", +"Operation has completed successfully." +], +"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" +}, +"TargetConfiguration": { +"id": "TargetConfiguration", +"properties": { +"config": { +"$ref": "ConfigFile", +"description": "The configuration to use for this deployment." +}, +"imports": { +"description": "Specifies any files to import for this configuration. This can be used to import templates or other files. For example, you might import a text file in order to use the file in a template.", +"items": { +"$ref": "ImportFile" +}, +"type": "array" +} +}, +"type": "object" +}, +"TemplateContents": { +"description": "Files that make up the template contents of a template type.", +"id": "TemplateContents", +"properties": { +"imports": { +"description": "Import files referenced by the main template.", +"items": { +"$ref": "ImportFile" +}, +"type": "array" +}, +"interpreter": { +"description": "Which interpreter (python or jinja) should be used during expansion.", +"enum": [ +"UNKNOWN_INTERPRETER", +"PYTHON", +"JINJA" +], +"enumDescriptions": [ +"", +"", +"" +], +"type": "string" +}, +"mainTemplate": { +"description": "The filename of the mainTemplate", +"type": "string" +}, +"schema": { +"description": "The contents of the template schema.", +"type": "string" +}, +"template": { +"description": "The contents of the main template file.", +"type": "string" +} +}, +"type": "object" +}, +"TestPermissionsRequest": { +"id": "TestPermissionsRequest", +"properties": { +"permissions": { +"description": "The set of permissions to check for the 'resource'. Permissions with wildcards (such as '*' or 'storage.*') are not allowed.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"TestPermissionsResponse": { +"id": "TestPermissionsResponse", +"properties": { +"permissions": { +"description": "A subset of `TestPermissionsRequest.permissions` that the caller is allowed.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Type": { +"description": "A resource type supported by Deployment Manager.", +"id": "Type", +"properties": { +"base": { +"$ref": "BaseType", +"description": "Base Type (configurable service) that backs this Type." +}, +"description": { +"description": "An optional textual description of the resource; provided by the client when the resource is created.", +"type": "string" +}, +"id": { +"format": "uint64", +"type": "string" +}, +"insertTime": { +"description": "Output only. Creation timestamp in RFC3339 text format.", +"type": "string" +}, +"labels": { +"description": "Map of One Platform labels; provided by the client when the resource is created or updated. Specifically: Label keys must be between 1 and 63 characters long and must conform to the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?` Label values must be between 0 and 63 characters long and must conform to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`.", +"items": { +"$ref": "TypeLabelEntry" +}, +"type": "array" +}, +"name": { +"description": "Name of the type.", +"type": "string" +}, +"operation": { +"$ref": "Operation", +"description": "Output only. The Operation that most recently ran, or is currently running, on this type." +}, +"selfLink": { +"description": "Output only. Server defined URL for the resource.", +"type": "string" +} +}, +"type": "object" +}, +"TypeInfo": { +"description": "Type Information. Contains detailed information about a composite type, base type, or base type with specific collection.", +"id": "TypeInfo", +"properties": { +"description": { +"description": "The description of the type.", +"type": "string" +}, +"documentationLink": { +"description": "For swagger 2.0 externalDocs field will be used. For swagger 1.2 this field will be empty.", +"type": "string" +}, +"kind": { +"description": "Output only. Type of the output. Always `deploymentManager#TypeInfo` for TypeInfo.", +"type": "string" +}, +"name": { +"description": "The base type or composite type name.", +"type": "string" +}, +"schema": { +"$ref": "TypeInfoSchemaInfo", +"description": "For base types with a collection, we return a schema and documentation link For template types, we return only a schema" +}, +"selfLink": { +"description": "Output only. Self link for the type provider.", +"type": "string" +}, +"title": { +"description": "The title on the API descriptor URL provided.", +"type": "string" +} +}, +"type": "object" +}, +"TypeInfoSchemaInfo": { +"id": "TypeInfoSchemaInfo", +"properties": { +"input": { +"description": "The properties that this composite type or base type collection accept as input, represented as a json blob, format is: JSON Schema Draft V4", +"type": "string" +}, +"output": { +"description": "The properties that this composite type or base type collection exposes as output, these properties can be used for references, represented as json blob, format is: JSON Schema Draft V4", +"type": "string" +} +}, +"type": "object" +}, +"TypeLabelEntry": { +"description": "Label object for Types", +"id": "TypeLabelEntry", +"properties": { +"key": { +"description": "Key of the label", +"type": "string" +}, +"value": { +"description": "Value of the label", +"type": "string" +} +}, +"type": "object" +}, +"TypeProvider": { +"description": "A type provider that describes a service-backed Type.", +"id": "TypeProvider", +"properties": { +"collectionOverrides": { +"description": "Allows resource handling overrides for specific collections", +"items": { +"$ref": "CollectionOverride" +}, +"type": "array" +}, +"credential": { +"$ref": "Credential", +"description": "Credential used when interacting with this type." +}, +"customCertificateAuthorityRoots": { +"description": "List of up to 2 custom certificate authority roots to use for TLS authentication when making calls on behalf of this type provider. If set, TLS authentication will exclusively use these roots instead of relying on publicly trusted certificate authorities when validating TLS certificate authenticity. The certificates must be in base64-encoded PEM format. The maximum size of each certificate must not exceed 10KB.", +"items": { +"type": "string" +}, +"type": "array" +}, +"description": { +"description": "An optional textual description of the resource; provided by the client when the resource is created.", +"type": "string" +}, +"descriptorUrl": { +"description": "Descriptor Url for the this type provider.", +"type": "string" +}, +"id": { +"description": "Output only. Unique identifier for the resource defined by the server.", +"format": "uint64", +"type": "string" +}, +"insertTime": { +"description": "Output only. Creation timestamp in RFC3339 text format.", +"type": "string" +}, +"labels": { +"description": "Map of One Platform labels; provided by the client when the resource is created or updated. Specifically: Label keys must be between 1 and 63 characters long and must conform to the following regular expression: `[a-z]([-a-z0-9]*[a-z0-9])?` Label values must be between 0 and 63 characters long and must conform to the regular expression `([a-z]([-a-z0-9]*[a-z0-9])?)?`", +"items": { +"$ref": "TypeProviderLabelEntry" +}, +"type": "array" +}, +"name": { +"description": "Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", +"type": "string" +}, +"operation": { +"$ref": "Operation", +"description": "Output only. The Operation that most recently ran, or is currently running, on this type provider." +}, +"options": { +"$ref": "Options", +"description": "Options to apply when handling any resources in this service." +}, +"selfLink": { +"description": "Output only. Self link for the type provider.", +"type": "string" +} +}, +"type": "object" +}, +"TypeProviderLabelEntry": { +"description": "Label object for TypeProviders", +"id": "TypeProviderLabelEntry", +"properties": { +"key": { +"description": "Key of the label", +"type": "string" +}, +"value": { +"description": "Value of the label", +"type": "string" +} +}, +"type": "object" +}, +"TypeProvidersListResponse": { +"description": "A response that returns all Type Providers supported by Deployment Manager", +"id": "TypeProvidersListResponse", +"properties": { +"nextPageToken": { +"description": "A token used to continue a truncated list request.", +"type": "string" +}, +"typeProviders": { +"description": "Output only. A list of resource type providers supported by Deployment Manager.", +"items": { +"$ref": "TypeProvider" +}, +"type": "array" +} +}, +"type": "object" +}, +"TypeProvidersListTypesResponse": { +"id": "TypeProvidersListTypesResponse", +"properties": { +"nextPageToken": { +"description": "A token used to continue a truncated list request.", +"type": "string" +}, +"types": { +"description": "Output only. A list of resource type info.", +"items": { +"$ref": "TypeInfo" +}, +"type": "array" +} +}, +"type": "object" +}, +"TypesListResponse": { +"description": "A response that returns all Types supported by Deployment Manager", +"id": "TypesListResponse", +"properties": { +"nextPageToken": { +"description": "A token used to continue a truncated list request.", +"type": "string" +}, +"types": { +"description": "Output only. A list of resource types supported by Deployment Manager.", +"items": { +"$ref": "Type" +}, +"type": "array" +} +}, +"type": "object" +}, +"ValidationOptions": { +"description": "Options for how to validate and process properties on a resource.", +"id": "ValidationOptions", +"properties": { +"schemaValidation": { +"description": "Customize how deployment manager will validate the resource against schema errors.", +"enum": [ +"UNKNOWN", +"IGNORE", +"IGNORE_WITH_WARNINGS", +"FAIL" +], +"enumDescriptions": [ +"", +"Ignore schema failures.", +"Ignore schema failures but display them as warnings.", +"Fail the resource if the schema is not valid, this is the default behavior." +], +"type": "string" +}, +"undeclaredProperties": { +"description": "Specify what to do with extra properties when executing a request.", +"enum": [ +"UNKNOWN", +"INCLUDE", +"IGNORE", +"INCLUDE_WITH_WARNINGS", +"IGNORE_WITH_WARNINGS", +"FAIL" +], +"enumDescriptions": [ +"", +"Always include even if not present on discovery doc.", +"Always ignore if not present on discovery doc.", +"Include on request, but emit a warning.", +"Ignore properties, but emit a warning.", +"Always fail if undeclared properties are present." +], +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Cloud Deployment Manager V2 API", +"version": "alpha" +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/dialogflow.v3.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/dialogflow.v3.json new file mode 100644 index 0000000000000000000000000000000000000000..313133674b17ae4117be9d3925c5b874c8557e3f --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/dialogflow.v3.json @@ -0,0 +1,17989 @@ +{ +"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/dialogflow": { +"description": "View, manage and query your Dialogflow agents" +} +} +} +}, +"basePath": "", +"baseUrl": "https://dialogflow.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Dialogflow", +"description": "Builds conversational interfaces (for example, chatbots, and voice-powered apps and devices).", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/dialogflow/", +"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": "dialogflow:v3", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://dialogflow.mtls.googleapis.com/", +"name": "dialogflow", +"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": "v3/projects/{projectsId}/locations/{locationsId}", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Resource name for the location.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "GoogleCloudLocationLocation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Lists information about the supported locations for this service.", +"flatPath": "v3/projects/{projectsId}/locations", +"httpMethod": "GET", +"id": "dialogflow.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": "v3/{+name}/locations", +"response": { +"$ref": "GoogleCloudLocationListLocationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +}, +"resources": { +"agents": { +"methods": { +"create": { +"description": "Creates an agent in the specified location. Note: You should always train flows prior to sending them queries. See the [training documentation](https://cloud.google.com/dialogflow/cx/docs/concept/training).", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agents.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The location to create a agent for. Format: `projects//locations/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/agents", +"request": { +"$ref": "GoogleCloudDialogflowCxV3Agent" +}, +"response": { +"$ref": "GoogleCloudDialogflowCxV3Agent" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"delete": { +"description": "Deletes the specified agent.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}", +"httpMethod": "DELETE", +"id": "dialogflow.projects.locations.agents.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the agent to delete. Format: `projects//locations//agents/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"export": { +"description": "Exports the specified agent to a binary file. This method is a [long-running operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation). The returned `Operation` type has the following method-specific fields: - `metadata`: An empty [Struct message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct) - `response`: ExportAgentResponse", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}:export", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agents.export", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the agent to export. Format: `projects//locations//agents/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}:export", +"request": { +"$ref": "GoogleCloudDialogflowCxV3ExportAgentRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"get": { +"description": "Retrieves the specified agent.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agents.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the agent. Format: `projects//locations//agents/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "GoogleCloudDialogflowCxV3Agent" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"getGenerativeSettings": { +"description": "Gets the generative settings for the agent.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/generativeSettings", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agents.getGenerativeSettings", +"parameterOrder": [ +"name" +], +"parameters": { +"languageCode": { +"description": "Required. Language code of the generative settings.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. Format: `projects//locations//agents//generativeSettings`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/generativeSettings$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "GoogleCloudDialogflowCxV3GenerativeSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"getValidationResult": { +"description": "Gets the latest agent validation result. Agent validation is performed when ValidateAgent is called.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/validationResult", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agents.getValidationResult", +"parameterOrder": [ +"name" +], +"parameters": { +"languageCode": { +"description": "If not specified, the agent's default language is used.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. The agent name. Format: `projects//locations//agents//validationResult`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/validationResult$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "GoogleCloudDialogflowCxV3AgentValidationResult" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Returns the list of all agents in the specified location.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agents.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of items to return in a single page. By default 100 and at most 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The location to list all agents for. Format: `projects//locations/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/agents", +"response": { +"$ref": "GoogleCloudDialogflowCxV3ListAgentsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"patch": { +"description": "Updates the specified agent. Note: You should always train flows prior to sending them queries. See the [training documentation](https://cloud.google.com/dialogflow/cx/docs/concept/training).", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}", +"httpMethod": "PATCH", +"id": "dialogflow.projects.locations.agents.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The unique identifier of the agent. Required for the Agents.UpdateAgent method. Agents.CreateAgent populates the name automatically. Format: `projects//locations//agents/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The mask to control which fields get updated. If the mask is not present, all fields will be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v3/{+name}", +"request": { +"$ref": "GoogleCloudDialogflowCxV3Agent" +}, +"response": { +"$ref": "GoogleCloudDialogflowCxV3Agent" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"restore": { +"description": "Restores the specified agent from a binary file. Replaces the current agent with a new one. Note that all existing resources in agent (e.g. intents, entity types, flows) will be removed. This method is a [long-running operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation). The returned `Operation` type has the following method-specific fields: - `metadata`: An empty [Struct message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct) - `response`: An [Empty message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#empty) Note: You should always train flows prior to sending them queries. See the [training documentation](https://cloud.google.com/dialogflow/cx/docs/concept/training).", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}:restore", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agents.restore", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the agent to restore into. Format: `projects//locations//agents/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}:restore", +"request": { +"$ref": "GoogleCloudDialogflowCxV3RestoreAgentRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"updateGenerativeSettings": { +"description": "Updates the generative settings for the agent.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/generativeSettings", +"httpMethod": "PATCH", +"id": "dialogflow.projects.locations.agents.updateGenerativeSettings", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Format: `projects//locations//agents//generativeSettings`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/generativeSettings$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. The mask to control which fields get updated. If the mask is not present, all fields will be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v3/{+name}", +"request": { +"$ref": "GoogleCloudDialogflowCxV3GenerativeSettings" +}, +"response": { +"$ref": "GoogleCloudDialogflowCxV3GenerativeSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"validate": { +"description": "Validates the specified agent and creates or updates validation results. The agent in draft version is validated. Please call this API after the training is completed to get the complete validation results.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}:validate", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agents.validate", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The agent to validate. Format: `projects//locations//agents/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}:validate", +"request": { +"$ref": "GoogleCloudDialogflowCxV3ValidateAgentRequest" +}, +"response": { +"$ref": "GoogleCloudDialogflowCxV3AgentValidationResult" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +}, +"resources": { +"changelogs": { +"methods": { +"get": { +"description": "Retrieves the specified Changelog.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/changelogs/{changelogsId}", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agents.changelogs.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the changelog to get. Format: `projects//locations//agents//changelogs/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/changelogs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "GoogleCloudDialogflowCxV3Changelog" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Returns the list of Changelogs.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/changelogs", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agents.changelogs.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "The filter string. Supports filter by user_email, resource, type and create_time. Some examples: 1. By user email: user_email = \"someone@google.com\" 2. By resource name: resource = \"projects/123/locations/global/agents/456/flows/789\" 3. By resource display name: display_name = \"my agent\" 4. By action: action = \"Create\" 5. By type: type = \"flows\" 6. By create time. Currently predicates on `create_time` and `create_time_epoch_seconds` are supported: create_time_epoch_seconds > 1551790877 AND create_time <= 2017-01-15T01:30:15.01Z 7. Combination of above filters: resource = \"projects/123/locations/global/agents/456/flows/789\" AND user_email = \"someone@google.com\" AND create_time <= 2017-01-15T01:30:15.01Z", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of items to return in a single page. By default 100 and at most 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The agent containing the changelogs. Format: `projects//locations//agents/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/changelogs", +"response": { +"$ref": "GoogleCloudDialogflowCxV3ListChangelogsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +} +}, +"entityTypes": { +"methods": { +"create": { +"description": "Creates an entity type in the specified agent. Note: You should always train a flow prior to sending it queries. See the [training documentation](https://cloud.google.com/dialogflow/cx/docs/concept/training).", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/entityTypes", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agents.entityTypes.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"languageCode": { +"description": "The language of the following fields in `entity_type`: * `EntityType.entities.value` * `EntityType.entities.synonyms` * `EntityType.excluded_phrases.value` If not specified, the agent's default language is used. [Many languages](https://cloud.google.com/dialogflow/cx/docs/reference/language) are supported. Note: languages must be enabled in the agent before they can be used.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The agent to create a entity type for. Format: `projects//locations//agents/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/entityTypes", +"request": { +"$ref": "GoogleCloudDialogflowCxV3EntityType" +}, +"response": { +"$ref": "GoogleCloudDialogflowCxV3EntityType" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"delete": { +"description": "Deletes the specified entity type. Note: You should always train a flow prior to sending it queries. See the [training documentation](https://cloud.google.com/dialogflow/cx/docs/concept/training).", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/entityTypes/{entityTypesId}", +"httpMethod": "DELETE", +"id": "dialogflow.projects.locations.agents.entityTypes.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"force": { +"description": "This field has no effect for entity type not being used. For entity types that are used by intents or pages: * If `force` is set to false, an error will be returned with message indicating the referencing resources. * If `force` is set to true, Dialogflow will remove the entity type, as well as any references to the entity type (i.e. Page parameter of the entity type will be changed to '@sys.any' and intent parameter of the entity type will be removed).", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Required. The name of the entity type to delete. Format: `projects//locations//agents//entityTypes/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/entityTypes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"export": { +"description": "Exports the selected entity types.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/entityTypes:export", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agents.entityTypes.export", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the parent agent to export entity types. Format: `projects//locations//agents/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/entityTypes:export", +"request": { +"$ref": "GoogleCloudDialogflowCxV3ExportEntityTypesRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"get": { +"description": "Retrieves the specified entity type.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/entityTypes/{entityTypesId}", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agents.entityTypes.get", +"parameterOrder": [ +"name" +], +"parameters": { +"languageCode": { +"description": "The language to retrieve the entity type for. The following fields are language dependent: * `EntityType.entities.value` * `EntityType.entities.synonyms` * `EntityType.excluded_phrases.value` If not specified, the agent's default language is used. [Many languages](https://cloud.google.com/dialogflow/cx/docs/reference/language) are supported. Note: languages must be enabled in the agent before they can be used.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. The name of the entity type. Format: `projects//locations//agents//entityTypes/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/entityTypes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "GoogleCloudDialogflowCxV3EntityType" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"import": { +"description": "Imports the specified entitytypes into the agent.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/entityTypes:import", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agents.entityTypes.import", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The agent to import the entity types into. Format: `projects//locations//agents/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/entityTypes:import", +"request": { +"$ref": "GoogleCloudDialogflowCxV3ImportEntityTypesRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Returns the list of all entity types in the specified agent.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/entityTypes", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agents.entityTypes.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"languageCode": { +"description": "The language to list entity types for. The following fields are language dependent: * `EntityType.entities.value` * `EntityType.entities.synonyms` * `EntityType.excluded_phrases.value` If not specified, the agent's default language is used. [Many languages](https://cloud.google.com/dialogflow/cx/docs/reference/language) are supported. Note: languages must be enabled in the agent before they can be used.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of items to return in a single page. By default 100 and at most 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The agent to list all entity types for. Format: `projects//locations//agents/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/entityTypes", +"response": { +"$ref": "GoogleCloudDialogflowCxV3ListEntityTypesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"patch": { +"description": "Updates the specified entity type. Note: You should always train a flow prior to sending it queries. See the [training documentation](https://cloud.google.com/dialogflow/cx/docs/concept/training).", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/entityTypes/{entityTypesId}", +"httpMethod": "PATCH", +"id": "dialogflow.projects.locations.agents.entityTypes.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"languageCode": { +"description": "The language of the following fields in `entity_type`: * `EntityType.entities.value` * `EntityType.entities.synonyms` * `EntityType.excluded_phrases.value` If not specified, the agent's default language is used. [Many languages](https://cloud.google.com/dialogflow/cx/docs/reference/language) are supported. Note: languages must be enabled in the agent before they can be used.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The unique identifier of the entity type. Required for EntityTypes.UpdateEntityType. Format: `projects//locations//agents//entityTypes/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/entityTypes/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The mask to control which fields get updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v3/{+name}", +"request": { +"$ref": "GoogleCloudDialogflowCxV3EntityType" +}, +"response": { +"$ref": "GoogleCloudDialogflowCxV3EntityType" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +} +}, +"environments": { +"methods": { +"create": { +"description": "Creates an Environment in the specified Agent. This method is a [long-running operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation). The returned `Operation` type has the following method-specific fields: - `metadata`: An empty [Struct message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct) - `response`: Environment", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/environments", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agents.environments.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The Agent to create an Environment for. Format: `projects//locations//agents/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/environments", +"request": { +"$ref": "GoogleCloudDialogflowCxV3Environment" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"delete": { +"description": "Deletes the specified Environment.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/environments/{environmentsId}", +"httpMethod": "DELETE", +"id": "dialogflow.projects.locations.agents.environments.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the Environment to delete. Format: `projects//locations//agents//environments/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"deployFlow": { +"description": "Deploys a flow to the specified Environment. This method is a [long-running operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation). The returned `Operation` type has the following method-specific fields: - `metadata`: DeployFlowMetadata - `response`: DeployFlowResponse", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/environments/{environmentsId}:deployFlow", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agents.environments.deployFlow", +"parameterOrder": [ +"environment" +], +"parameters": { +"environment": { +"description": "Required. The environment to deploy the flow to. Format: `projects//locations//agents//environments/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+environment}:deployFlow", +"request": { +"$ref": "GoogleCloudDialogflowCxV3DeployFlowRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"get": { +"description": "Retrieves the specified Environment.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/environments/{environmentsId}", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agents.environments.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the Environment. Format: `projects//locations//agents//environments/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "GoogleCloudDialogflowCxV3Environment" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Returns the list of all environments in the specified Agent.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/environments", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agents.environments.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of items to return in a single page. By default 20 and at most 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The Agent to list all environments for. Format: `projects//locations//agents/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/environments", +"response": { +"$ref": "GoogleCloudDialogflowCxV3ListEnvironmentsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"lookupEnvironmentHistory": { +"description": "Looks up the history of the specified Environment.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/environments/{environmentsId}:lookupEnvironmentHistory", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agents.environments.lookupEnvironmentHistory", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the environment to look up the history for. Format: `projects//locations//agents//environments/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "The maximum number of items to return in a single page. By default 100 and at most 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +} +}, +"path": "v3/{+name}:lookupEnvironmentHistory", +"response": { +"$ref": "GoogleCloudDialogflowCxV3LookupEnvironmentHistoryResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"patch": { +"description": "Updates the specified Environment. This method is a [long-running operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation). The returned `Operation` type has the following method-specific fields: - `metadata`: An empty [Struct message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct) - `response`: Environment", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/environments/{environmentsId}", +"httpMethod": "PATCH", +"id": "dialogflow.projects.locations.agents.environments.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the environment. Format: `projects//locations//agents//environments/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The mask to control which fields get updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v3/{+name}", +"request": { +"$ref": "GoogleCloudDialogflowCxV3Environment" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"runContinuousTest": { +"description": "Kicks off a continuous test under the specified Environment. This method is a [long-running operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation). The returned `Operation` type has the following method-specific fields: - `metadata`: RunContinuousTestMetadata - `response`: RunContinuousTestResponse", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/environments/{environmentsId}:runContinuousTest", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agents.environments.runContinuousTest", +"parameterOrder": [ +"environment" +], +"parameters": { +"environment": { +"description": "Required. Format: `projects//locations//agents//environments/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+environment}:runContinuousTest", +"request": { +"$ref": "GoogleCloudDialogflowCxV3RunContinuousTestRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +}, +"resources": { +"continuousTestResults": { +"methods": { +"list": { +"description": "Fetches a list of continuous test results for a given environment.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/environments/{environmentsId}/continuousTestResults", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agents.environments.continuousTestResults.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of items to return in a single page. By default 100 and at most 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The environment to list results for. Format: `projects//locations//agents//environments/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/continuousTestResults", +"response": { +"$ref": "GoogleCloudDialogflowCxV3ListContinuousTestResultsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +} +}, +"deployments": { +"methods": { +"get": { +"description": "Retrieves the specified Deployment.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/environments/{environmentsId}/deployments/{deploymentsId}", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agents.environments.deployments.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the Deployment. Format: `projects//locations//agents//environments//deployments/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/environments/[^/]+/deployments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "GoogleCloudDialogflowCxV3Deployment" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Returns the list of all deployments in the specified Environment.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/environments/{environmentsId}/deployments", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agents.environments.deployments.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of items to return in a single page. By default 20 and at most 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The Environment to list all environments for. Format: `projects//locations//agents//environments/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/deployments", +"response": { +"$ref": "GoogleCloudDialogflowCxV3ListDeploymentsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +} +}, +"experiments": { +"methods": { +"create": { +"description": "Creates an Experiment in the specified Environment.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/environments/{environmentsId}/experiments", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agents.environments.experiments.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The Agent to create an Environment for. Format: `projects//locations//agents//environments/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/experiments", +"request": { +"$ref": "GoogleCloudDialogflowCxV3Experiment" +}, +"response": { +"$ref": "GoogleCloudDialogflowCxV3Experiment" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"delete": { +"description": "Deletes the specified Experiment.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/environments/{environmentsId}/experiments/{experimentsId}", +"httpMethod": "DELETE", +"id": "dialogflow.projects.locations.agents.environments.experiments.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the Environment to delete. Format: `projects//locations//agents//environments//experiments/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/environments/[^/]+/experiments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"get": { +"description": "Retrieves the specified Experiment.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/environments/{environmentsId}/experiments/{experimentsId}", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agents.environments.experiments.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the Environment. Format: `projects//locations//agents//environments//experiments/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/environments/[^/]+/experiments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "GoogleCloudDialogflowCxV3Experiment" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Returns the list of all experiments in the specified Environment.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/environments/{environmentsId}/experiments", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agents.environments.experiments.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of items to return in a single page. By default 20 and at most 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The Environment to list all environments for. Format: `projects//locations//agents//environments/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/environments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/experiments", +"response": { +"$ref": "GoogleCloudDialogflowCxV3ListExperimentsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"patch": { +"description": "Updates the specified Experiment.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/environments/{environmentsId}/experiments/{experimentsId}", +"httpMethod": "PATCH", +"id": "dialogflow.projects.locations.agents.environments.experiments.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the experiment. Format: projects//locations//agents//environments//experiments/.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/environments/[^/]+/experiments/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The mask to control which fields get updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v3/{+name}", +"request": { +"$ref": "GoogleCloudDialogflowCxV3Experiment" +}, +"response": { +"$ref": "GoogleCloudDialogflowCxV3Experiment" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"start": { +"description": "Starts the specified Experiment. This rpc only changes the state of experiment from PENDING to RUNNING.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/environments/{environmentsId}/experiments/{experimentsId}:start", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agents.environments.experiments.start", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the experiment to start. Format: `projects//locations//agents//environments//experiments/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/environments/[^/]+/experiments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}:start", +"request": { +"$ref": "GoogleCloudDialogflowCxV3StartExperimentRequest" +}, +"response": { +"$ref": "GoogleCloudDialogflowCxV3Experiment" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"stop": { +"description": "Stops the specified Experiment. This rpc only changes the state of experiment from RUNNING to DONE.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/environments/{environmentsId}/experiments/{experimentsId}:stop", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agents.environments.experiments.stop", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the experiment to stop. Format: `projects//locations//agents//environments//experiments/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/environments/[^/]+/experiments/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}:stop", +"request": { +"$ref": "GoogleCloudDialogflowCxV3StopExperimentRequest" +}, +"response": { +"$ref": "GoogleCloudDialogflowCxV3Experiment" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +} +}, +"sessions": { +"methods": { +"detectIntent": { +"description": "Processes a natural language query and returns structured, actionable data as a result. This method is not idempotent, because it may cause session entity types to be updated, which in turn might affect results of future queries. Note: Always use agent versions for production traffic. See [Versions and environments](https://cloud.google.com/dialogflow/cx/docs/concept/version).", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/environments/{environmentsId}/sessions/{sessionsId}:detectIntent", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agents.environments.sessions.detectIntent", +"parameterOrder": [ +"session" +], +"parameters": { +"session": { +"description": "Required. The name of the session this query is sent to. Format: `projects//locations//agents//sessions/` or `projects//locations//agents//environments//sessions/`. If `Environment ID` is not specified, we assume default 'draft' environment. It's up to the API caller to choose an appropriate `Session ID`. It can be a random number or some type of session identifiers (preferably hashed). The length of the `Session ID` must not exceed 36 characters. For more information, see the [sessions guide](https://cloud.google.com/dialogflow/cx/docs/concept/session). Note: Always use agent versions for production traffic. See [Versions and environments](https://cloud.google.com/dialogflow/cx/docs/concept/version).", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/environments/[^/]+/sessions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+session}:detectIntent", +"request": { +"$ref": "GoogleCloudDialogflowCxV3DetectIntentRequest" +}, +"response": { +"$ref": "GoogleCloudDialogflowCxV3DetectIntentResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"fulfillIntent": { +"description": "Fulfills a matched intent returned by MatchIntent. Must be called after MatchIntent, with input from MatchIntentResponse. Otherwise, the behavior is undefined.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/environments/{environmentsId}/sessions/{sessionsId}:fulfillIntent", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agents.environments.sessions.fulfillIntent", +"parameterOrder": [ +"session" +], +"parameters": { +"session": { +"description": "Required. The name of the session this query is sent to. Format: `projects//locations//agents//sessions/` or `projects//locations//agents//environments//sessions/`. If `Environment ID` is not specified, we assume default 'draft' environment. It's up to the API caller to choose an appropriate `Session ID`. It can be a random number or some type of session identifiers (preferably hashed). The length of the `Session ID` must not exceed 36 characters. For more information, see the [sessions guide](https://cloud.google.com/dialogflow/cx/docs/concept/session).", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/environments/[^/]+/sessions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+session}:fulfillIntent", +"request": { +"$ref": "GoogleCloudDialogflowCxV3FulfillIntentRequest" +}, +"response": { +"$ref": "GoogleCloudDialogflowCxV3FulfillIntentResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"matchIntent": { +"description": "Returns preliminary intent match results, doesn't change the session status.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/environments/{environmentsId}/sessions/{sessionsId}:matchIntent", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agents.environments.sessions.matchIntent", +"parameterOrder": [ +"session" +], +"parameters": { +"session": { +"description": "Required. The name of the session this query is sent to. Format: `projects//locations//agents//sessions/` or `projects//locations//agents//environments//sessions/`. If `Environment ID` is not specified, we assume default 'draft' environment. It's up to the API caller to choose an appropriate `Session ID`. It can be a random number or some type of session identifiers (preferably hashed). The length of the `Session ID` must not exceed 36 characters. For more information, see the [sessions guide](https://cloud.google.com/dialogflow/cx/docs/concept/session).", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/environments/[^/]+/sessions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+session}:matchIntent", +"request": { +"$ref": "GoogleCloudDialogflowCxV3MatchIntentRequest" +}, +"response": { +"$ref": "GoogleCloudDialogflowCxV3MatchIntentResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"serverStreamingDetectIntent": { +"description": "Processes a natural language query and returns structured, actionable data as a result through server-side streaming. Server-side streaming allows Dialogflow to send [partial responses](https://cloud.google.com/dialogflow/cx/docs/concept/fulfillment#partial-response) earlier in a single request.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/environments/{environmentsId}/sessions/{sessionsId}:serverStreamingDetectIntent", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agents.environments.sessions.serverStreamingDetectIntent", +"parameterOrder": [ +"session" +], +"parameters": { +"session": { +"description": "Required. The name of the session this query is sent to. Format: `projects//locations//agents//sessions/` or `projects//locations//agents//environments//sessions/`. If `Environment ID` is not specified, we assume default 'draft' environment. It's up to the API caller to choose an appropriate `Session ID`. It can be a random number or some type of session identifiers (preferably hashed). The length of the `Session ID` must not exceed 36 characters. For more information, see the [sessions guide](https://cloud.google.com/dialogflow/cx/docs/concept/session). Note: Always use agent versions for production traffic. See [Versions and environments](https://cloud.google.com/dialogflow/cx/docs/concept/version).", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/environments/[^/]+/sessions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+session}:serverStreamingDetectIntent", +"request": { +"$ref": "GoogleCloudDialogflowCxV3DetectIntentRequest" +}, +"response": { +"$ref": "GoogleCloudDialogflowCxV3DetectIntentResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +}, +"resources": { +"entityTypes": { +"methods": { +"create": { +"description": "Creates a session entity type.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/environments/{environmentsId}/sessions/{sessionsId}/entityTypes", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agents.environments.sessions.entityTypes.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The session to create a session entity type for. Format: `projects//locations//agents//sessions/` or `projects//locations//agents//environments//sessions/`. If `Environment ID` is not specified, we assume default 'draft' environment.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/environments/[^/]+/sessions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/entityTypes", +"request": { +"$ref": "GoogleCloudDialogflowCxV3SessionEntityType" +}, +"response": { +"$ref": "GoogleCloudDialogflowCxV3SessionEntityType" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"delete": { +"description": "Deletes the specified session entity type.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/environments/{environmentsId}/sessions/{sessionsId}/entityTypes/{entityTypesId}", +"httpMethod": "DELETE", +"id": "dialogflow.projects.locations.agents.environments.sessions.entityTypes.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the session entity type to delete. Format: `projects//locations//agents//sessions//entityTypes/` or `projects//locations//agents//environments//sessions//entityTypes/`. If `Environment ID` is not specified, we assume default 'draft' environment.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/environments/[^/]+/sessions/[^/]+/entityTypes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"get": { +"description": "Retrieves the specified session entity type.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/environments/{environmentsId}/sessions/{sessionsId}/entityTypes/{entityTypesId}", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agents.environments.sessions.entityTypes.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the session entity type. Format: `projects//locations//agents//sessions//entityTypes/` or `projects//locations//agents//environments//sessions//entityTypes/`. If `Environment ID` is not specified, we assume default 'draft' environment.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/environments/[^/]+/sessions/[^/]+/entityTypes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "GoogleCloudDialogflowCxV3SessionEntityType" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Returns the list of all session entity types in the specified session.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/environments/{environmentsId}/sessions/{sessionsId}/entityTypes", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agents.environments.sessions.entityTypes.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of items to return in a single page. By default 100 and at most 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The session to list all session entity types from. Format: `projects//locations//agents//sessions/` or `projects//locations//agents//environments//sessions/`. If `Environment ID` is not specified, we assume default 'draft' environment.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/environments/[^/]+/sessions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/entityTypes", +"response": { +"$ref": "GoogleCloudDialogflowCxV3ListSessionEntityTypesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"patch": { +"description": "Updates the specified session entity type.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/environments/{environmentsId}/sessions/{sessionsId}/entityTypes/{entityTypesId}", +"httpMethod": "PATCH", +"id": "dialogflow.projects.locations.agents.environments.sessions.entityTypes.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The unique identifier of the session entity type. Format: `projects//locations//agents//sessions//entityTypes/` or `projects//locations//agents//environments//sessions//entityTypes/`. If `Environment ID` is not specified, we assume default 'draft' environment.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/environments/[^/]+/sessions/[^/]+/entityTypes/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The mask to control which fields get updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v3/{+name}", +"request": { +"$ref": "GoogleCloudDialogflowCxV3SessionEntityType" +}, +"response": { +"$ref": "GoogleCloudDialogflowCxV3SessionEntityType" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +} +} +} +} +} +}, +"flows": { +"methods": { +"create": { +"description": "Creates a flow in the specified agent. Note: You should always train a flow prior to sending it queries. See the [training documentation](https://cloud.google.com/dialogflow/cx/docs/concept/training).", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/flows", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agents.flows.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"languageCode": { +"description": "The language of the following fields in `flow`: * `Flow.event_handlers.trigger_fulfillment.messages` * `Flow.event_handlers.trigger_fulfillment.conditional_cases` * `Flow.transition_routes.trigger_fulfillment.messages` * `Flow.transition_routes.trigger_fulfillment.conditional_cases` If not specified, the agent's default language is used. [Many languages](https://cloud.google.com/dialogflow/cx/docs/reference/language) are supported. Note: languages must be enabled in the agent before they can be used.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The agent to create a flow for. Format: `projects//locations//agents/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/flows", +"request": { +"$ref": "GoogleCloudDialogflowCxV3Flow" +}, +"response": { +"$ref": "GoogleCloudDialogflowCxV3Flow" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"delete": { +"description": "Deletes a specified flow.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/flows/{flowsId}", +"httpMethod": "DELETE", +"id": "dialogflow.projects.locations.agents.flows.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"force": { +"description": "This field has no effect for flows with no incoming transitions. For flows with incoming transitions: * If `force` is set to false, an error will be returned with message indicating the incoming transitions. * If `force` is set to true, Dialogflow will remove the flow, as well as any transitions to the flow (i.e. Target flow in event handlers or Target flow in transition routes that point to this flow will be cleared).", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Required. The name of the flow to delete. Format: `projects//locations//agents//flows/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/flows/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"export": { +"description": "Exports the specified flow to a binary file. This method is a [long-running operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation). The returned `Operation` type has the following method-specific fields: - `metadata`: An empty [Struct message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct) - `response`: ExportFlowResponse Note that resources (e.g. intents, entities, webhooks) that the flow references will also be exported.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/flows/{flowsId}:export", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agents.flows.export", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the flow to export. Format: `projects//locations//agents//flows/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/flows/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}:export", +"request": { +"$ref": "GoogleCloudDialogflowCxV3ExportFlowRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"get": { +"description": "Retrieves the specified flow.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/flows/{flowsId}", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agents.flows.get", +"parameterOrder": [ +"name" +], +"parameters": { +"languageCode": { +"description": "The language to retrieve the flow for. The following fields are language dependent: * `Flow.event_handlers.trigger_fulfillment.messages` * `Flow.event_handlers.trigger_fulfillment.conditional_cases` * `Flow.transition_routes.trigger_fulfillment.messages` * `Flow.transition_routes.trigger_fulfillment.conditional_cases` If not specified, the agent's default language is used. [Many languages](https://cloud.google.com/dialogflow/cx/docs/reference/language) are supported. Note: languages must be enabled in the agent before they can be used.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. The name of the flow to get. Format: `projects//locations//agents//flows/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/flows/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "GoogleCloudDialogflowCxV3Flow" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"getValidationResult": { +"description": "Gets the latest flow validation result. Flow validation is performed when ValidateFlow is called.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/flows/{flowsId}/validationResult", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agents.flows.getValidationResult", +"parameterOrder": [ +"name" +], +"parameters": { +"languageCode": { +"description": "If not specified, the agent's default language is used.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. The flow name. Format: `projects//locations//agents//flows//validationResult`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/flows/[^/]+/validationResult$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "GoogleCloudDialogflowCxV3FlowValidationResult" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"import": { +"description": "Imports the specified flow to the specified agent from a binary file. This method is a [long-running operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation). The returned `Operation` type has the following method-specific fields: - `metadata`: An empty [Struct message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct) - `response`: ImportFlowResponse Note: You should always train a flow prior to sending it queries. See the [training documentation](https://cloud.google.com/dialogflow/cx/docs/concept/training).", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/flows:import", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agents.flows.import", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The agent to import the flow into. Format: `projects//locations//agents/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/flows:import", +"request": { +"$ref": "GoogleCloudDialogflowCxV3ImportFlowRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Returns the list of all flows in the specified agent.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/flows", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agents.flows.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"languageCode": { +"description": "The language to list flows for. The following fields are language dependent: * `Flow.event_handlers.trigger_fulfillment.messages` * `Flow.event_handlers.trigger_fulfillment.conditional_cases` * `Flow.transition_routes.trigger_fulfillment.messages` * `Flow.transition_routes.trigger_fulfillment.conditional_cases` If not specified, the agent's default language is used. [Many languages](https://cloud.google.com/dialogflow/cx/docs/reference/language) are supported. Note: languages must be enabled in the agent before they can be used.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of items to return in a single page. By default 100 and at most 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The agent containing the flows. Format: `projects//locations//agents/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/flows", +"response": { +"$ref": "GoogleCloudDialogflowCxV3ListFlowsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"patch": { +"description": "Updates the specified flow. Note: You should always train a flow prior to sending it queries. See the [training documentation](https://cloud.google.com/dialogflow/cx/docs/concept/training).", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/flows/{flowsId}", +"httpMethod": "PATCH", +"id": "dialogflow.projects.locations.agents.flows.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"languageCode": { +"description": "The language of the following fields in `flow`: * `Flow.event_handlers.trigger_fulfillment.messages` * `Flow.event_handlers.trigger_fulfillment.conditional_cases` * `Flow.transition_routes.trigger_fulfillment.messages` * `Flow.transition_routes.trigger_fulfillment.conditional_cases` If not specified, the agent's default language is used. [Many languages](https://cloud.google.com/dialogflow/cx/docs/reference/language) are supported. Note: languages must be enabled in the agent before they can be used.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The unique identifier of the flow. Format: `projects//locations//agents//flows/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/flows/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The mask to control which fields get updated. If the mask is not present, all fields will be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v3/{+name}", +"request": { +"$ref": "GoogleCloudDialogflowCxV3Flow" +}, +"response": { +"$ref": "GoogleCloudDialogflowCxV3Flow" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"train": { +"description": "Trains the specified flow. Note that only the flow in 'draft' environment is trained. This method is a [long-running operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation). The returned `Operation` type has the following method-specific fields: - `metadata`: An empty [Struct message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct) - `response`: An [Empty message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#empty) Note: You should always train a flow prior to sending it queries. See the [training documentation](https://cloud.google.com/dialogflow/cx/docs/concept/training).", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/flows/{flowsId}:train", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agents.flows.train", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The flow to train. Format: `projects//locations//agents//flows/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/flows/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}:train", +"request": { +"$ref": "GoogleCloudDialogflowCxV3TrainFlowRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"validate": { +"description": "Validates the specified flow and creates or updates validation results. Please call this API after the training is completed to get the complete validation results.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/flows/{flowsId}:validate", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agents.flows.validate", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The flow to validate. Format: `projects//locations//agents//flows/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/flows/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}:validate", +"request": { +"$ref": "GoogleCloudDialogflowCxV3ValidateFlowRequest" +}, +"response": { +"$ref": "GoogleCloudDialogflowCxV3FlowValidationResult" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +}, +"resources": { +"pages": { +"methods": { +"create": { +"description": "Creates a page in the specified flow. Note: You should always train a flow prior to sending it queries. See the [training documentation](https://cloud.google.com/dialogflow/cx/docs/concept/training).", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/flows/{flowsId}/pages", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agents.flows.pages.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"languageCode": { +"description": "The language of the following fields in `page`: * `Page.entry_fulfillment.messages` * `Page.entry_fulfillment.conditional_cases` * `Page.event_handlers.trigger_fulfillment.messages` * `Page.event_handlers.trigger_fulfillment.conditional_cases` * `Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages` * `Page.form.parameters.fill_behavior.initial_prompt_fulfillment.conditional_cases` * `Page.form.parameters.fill_behavior.reprompt_event_handlers.messages` * `Page.form.parameters.fill_behavior.reprompt_event_handlers.conditional_cases` * `Page.transition_routes.trigger_fulfillment.messages` * `Page.transition_routes.trigger_fulfillment.conditional_cases` If not specified, the agent's default language is used. [Many languages](https://cloud.google.com/dialogflow/cx/docs/reference/language) are supported. Note: languages must be enabled in the agent before they can be used.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The flow to create a page for. Format: `projects//locations//agents//flows/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/flows/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/pages", +"request": { +"$ref": "GoogleCloudDialogflowCxV3Page" +}, +"response": { +"$ref": "GoogleCloudDialogflowCxV3Page" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"delete": { +"description": "Deletes the specified page. Note: You should always train a flow prior to sending it queries. See the [training documentation](https://cloud.google.com/dialogflow/cx/docs/concept/training).", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/flows/{flowsId}/pages/{pagesId}", +"httpMethod": "DELETE", +"id": "dialogflow.projects.locations.agents.flows.pages.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"force": { +"description": "This field has no effect for pages with no incoming transitions. For pages with incoming transitions: * If `force` is set to false, an error will be returned with message indicating the incoming transitions. * If `force` is set to true, Dialogflow will remove the page, as well as any transitions to the page (i.e. Target page in event handlers or Target page in transition routes that point to this page will be cleared).", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Required. The name of the page to delete. Format: `projects//locations//agents//Flows//pages/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/flows/[^/]+/pages/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"get": { +"description": "Retrieves the specified page.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/flows/{flowsId}/pages/{pagesId}", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agents.flows.pages.get", +"parameterOrder": [ +"name" +], +"parameters": { +"languageCode": { +"description": "The language to retrieve the page for. The following fields are language dependent: * `Page.entry_fulfillment.messages` * `Page.entry_fulfillment.conditional_cases` * `Page.event_handlers.trigger_fulfillment.messages` * `Page.event_handlers.trigger_fulfillment.conditional_cases` * `Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages` * `Page.form.parameters.fill_behavior.initial_prompt_fulfillment.conditional_cases` * `Page.form.parameters.fill_behavior.reprompt_event_handlers.messages` * `Page.form.parameters.fill_behavior.reprompt_event_handlers.conditional_cases` * `Page.transition_routes.trigger_fulfillment.messages` * `Page.transition_routes.trigger_fulfillment.conditional_cases` If not specified, the agent's default language is used. [Many languages](https://cloud.google.com/dialogflow/cx/docs/reference/language) are supported. Note: languages must be enabled in the agent before they can be used.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. The name of the page. Format: `projects//locations//agents//flows//pages/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/flows/[^/]+/pages/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "GoogleCloudDialogflowCxV3Page" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Returns the list of all pages in the specified flow.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/flows/{flowsId}/pages", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agents.flows.pages.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"languageCode": { +"description": "The language to list pages for. The following fields are language dependent: * `Page.entry_fulfillment.messages` * `Page.entry_fulfillment.conditional_cases` * `Page.event_handlers.trigger_fulfillment.messages` * `Page.event_handlers.trigger_fulfillment.conditional_cases` * `Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages` * `Page.form.parameters.fill_behavior.initial_prompt_fulfillment.conditional_cases` * `Page.form.parameters.fill_behavior.reprompt_event_handlers.messages` * `Page.form.parameters.fill_behavior.reprompt_event_handlers.conditional_cases` * `Page.transition_routes.trigger_fulfillment.messages` * `Page.transition_routes.trigger_fulfillment.conditional_cases` If not specified, the agent's default language is used. [Many languages](https://cloud.google.com/dialogflow/cx/docs/reference/language) are supported. Note: languages must be enabled in the agent before they can be used.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of items to return in a single page. By default 100 and at most 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The flow to list all pages for. Format: `projects//locations//agents//flows/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/flows/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/pages", +"response": { +"$ref": "GoogleCloudDialogflowCxV3ListPagesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"patch": { +"description": "Updates the specified page. Note: You should always train a flow prior to sending it queries. See the [training documentation](https://cloud.google.com/dialogflow/cx/docs/concept/training).", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/flows/{flowsId}/pages/{pagesId}", +"httpMethod": "PATCH", +"id": "dialogflow.projects.locations.agents.flows.pages.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"languageCode": { +"description": "The language of the following fields in `page`: * `Page.entry_fulfillment.messages` * `Page.entry_fulfillment.conditional_cases` * `Page.event_handlers.trigger_fulfillment.messages` * `Page.event_handlers.trigger_fulfillment.conditional_cases` * `Page.form.parameters.fill_behavior.initial_prompt_fulfillment.messages` * `Page.form.parameters.fill_behavior.initial_prompt_fulfillment.conditional_cases` * `Page.form.parameters.fill_behavior.reprompt_event_handlers.messages` * `Page.form.parameters.fill_behavior.reprompt_event_handlers.conditional_cases` * `Page.transition_routes.trigger_fulfillment.messages` * `Page.transition_routes.trigger_fulfillment.conditional_cases` If not specified, the agent's default language is used. [Many languages](https://cloud.google.com/dialogflow/cx/docs/reference/language) are supported. Note: languages must be enabled in the agent before they can be used.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The unique identifier of the page. Required for the Pages.UpdatePage method. Pages.CreatePage populates the name automatically. Format: `projects//locations//agents//flows//pages/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/flows/[^/]+/pages/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The mask to control which fields get updated. If the mask is not present, all fields will be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v3/{+name}", +"request": { +"$ref": "GoogleCloudDialogflowCxV3Page" +}, +"response": { +"$ref": "GoogleCloudDialogflowCxV3Page" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +} +}, +"transitionRouteGroups": { +"methods": { +"create": { +"description": "Creates an TransitionRouteGroup in the specified flow. Note: You should always train a flow prior to sending it queries. See the [training documentation](https://cloud.google.com/dialogflow/cx/docs/concept/training).", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/flows/{flowsId}/transitionRouteGroups", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agents.flows.transitionRouteGroups.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"languageCode": { +"description": "The language of the following fields in `TransitionRouteGroup`: * `TransitionRouteGroup.transition_routes.trigger_fulfillment.messages` * `TransitionRouteGroup.transition_routes.trigger_fulfillment.conditional_cases` If not specified, the agent's default language is used. [Many languages](https://cloud.google.com/dialogflow/cx/docs/reference/language) are supported. Note: languages must be enabled in the agent before they can be used.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The flow to create an TransitionRouteGroup for. Format: `projects//locations//agents//flows/` or `projects//locations//agents/` for agent-level groups.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/flows/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/transitionRouteGroups", +"request": { +"$ref": "GoogleCloudDialogflowCxV3TransitionRouteGroup" +}, +"response": { +"$ref": "GoogleCloudDialogflowCxV3TransitionRouteGroup" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"delete": { +"description": "Deletes the specified TransitionRouteGroup. Note: You should always train a flow prior to sending it queries. See the [training documentation](https://cloud.google.com/dialogflow/cx/docs/concept/training).", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/flows/{flowsId}/transitionRouteGroups/{transitionRouteGroupsId}", +"httpMethod": "DELETE", +"id": "dialogflow.projects.locations.agents.flows.transitionRouteGroups.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"force": { +"description": "This field has no effect for transition route group that no page is using. If the transition route group is referenced by any page: * If `force` is set to false, an error will be returned with message indicating pages that reference the transition route group. * If `force` is set to true, Dialogflow will remove the transition route group, as well as any reference to it.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Required. The name of the TransitionRouteGroup to delete. Format: `projects//locations//agents//flows//transitionRouteGroups/` or `projects//locations//agents//transitionRouteGroups/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/flows/[^/]+/transitionRouteGroups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"get": { +"description": "Retrieves the specified TransitionRouteGroup.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/flows/{flowsId}/transitionRouteGroups/{transitionRouteGroupsId}", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agents.flows.transitionRouteGroups.get", +"parameterOrder": [ +"name" +], +"parameters": { +"languageCode": { +"description": "The language to retrieve the transition route group for. The following fields are language dependent: * `TransitionRouteGroup.transition_routes.trigger_fulfillment.messages` * `TransitionRouteGroup.transition_routes.trigger_fulfillment.conditional_cases` If not specified, the agent's default language is used. [Many languages](https://cloud.google.com/dialogflow/cx/docs/reference/language) are supported. Note: languages must be enabled in the agent before they can be used.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. The name of the TransitionRouteGroup. Format: `projects//locations//agents//flows//transitionRouteGroups/` or `projects//locations//agents//transitionRouteGroups/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/flows/[^/]+/transitionRouteGroups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "GoogleCloudDialogflowCxV3TransitionRouteGroup" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Returns the list of all transition route groups in the specified flow.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/flows/{flowsId}/transitionRouteGroups", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agents.flows.transitionRouteGroups.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"languageCode": { +"description": "The language to list transition route groups for. The following fields are language dependent: * `TransitionRouteGroup.transition_routes.trigger_fulfillment.messages` * `TransitionRouteGroup.transition_routes.trigger_fulfillment.conditional_cases` If not specified, the agent's default language is used. [Many languages](https://cloud.google.com/dialogflow/cx/docs/reference/language) are supported. Note: languages must be enabled in the agent before they can be used.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of items to return in a single page. By default 100 and at most 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The flow to list all transition route groups for. Format: `projects//locations//agents//flows/` or `projects//locations//agents/.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/flows/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/transitionRouteGroups", +"response": { +"$ref": "GoogleCloudDialogflowCxV3ListTransitionRouteGroupsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"patch": { +"description": "Updates the specified TransitionRouteGroup. Note: You should always train a flow prior to sending it queries. See the [training documentation](https://cloud.google.com/dialogflow/cx/docs/concept/training).", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/flows/{flowsId}/transitionRouteGroups/{transitionRouteGroupsId}", +"httpMethod": "PATCH", +"id": "dialogflow.projects.locations.agents.flows.transitionRouteGroups.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"languageCode": { +"description": "The language of the following fields in `TransitionRouteGroup`: * `TransitionRouteGroup.transition_routes.trigger_fulfillment.messages` * `TransitionRouteGroup.transition_routes.trigger_fulfillment.conditional_cases` If not specified, the agent's default language is used. [Many languages](https://cloud.google.com/dialogflow/cx/docs/reference/language) are supported. Note: languages must be enabled in the agent before they can be used.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The unique identifier of the transition route group. TransitionRouteGroups.CreateTransitionRouteGroup populates the name automatically. Format: `projects//locations//agents//flows//transitionRouteGroups/` .", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/flows/[^/]+/transitionRouteGroups/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The mask to control which fields get updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v3/{+name}", +"request": { +"$ref": "GoogleCloudDialogflowCxV3TransitionRouteGroup" +}, +"response": { +"$ref": "GoogleCloudDialogflowCxV3TransitionRouteGroup" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +} +}, +"versions": { +"methods": { +"compareVersions": { +"description": "Compares the specified base version with target version.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/flows/{flowsId}/versions/{versionsId}:compareVersions", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agents.flows.versions.compareVersions", +"parameterOrder": [ +"baseVersion" +], +"parameters": { +"baseVersion": { +"description": "Required. Name of the base flow version to compare with the target version. Use version ID `0` to indicate the draft version of the specified flow. Format: `projects//locations//agents//flows//versions/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/flows/[^/]+/versions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+baseVersion}:compareVersions", +"request": { +"$ref": "GoogleCloudDialogflowCxV3CompareVersionsRequest" +}, +"response": { +"$ref": "GoogleCloudDialogflowCxV3CompareVersionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"create": { +"description": "Creates a Version in the specified Flow. This method is a [long-running operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation). The returned `Operation` type has the following method-specific fields: - `metadata`: CreateVersionOperationMetadata - `response`: Version", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/flows/{flowsId}/versions", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agents.flows.versions.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The Flow to create an Version for. Format: `projects//locations//agents//flows/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/flows/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/versions", +"request": { +"$ref": "GoogleCloudDialogflowCxV3Version" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"delete": { +"description": "Deletes the specified Version.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/flows/{flowsId}/versions/{versionsId}", +"httpMethod": "DELETE", +"id": "dialogflow.projects.locations.agents.flows.versions.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the Version to delete. Format: `projects//locations//agents//flows//versions/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/flows/[^/]+/versions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"get": { +"description": "Retrieves the specified Version.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/flows/{flowsId}/versions/{versionsId}", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agents.flows.versions.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the Version. Format: `projects//locations//agents//flows//versions/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/flows/[^/]+/versions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "GoogleCloudDialogflowCxV3Version" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Returns the list of all versions in the specified Flow.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/flows/{flowsId}/versions", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agents.flows.versions.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of items to return in a single page. By default 20 and at most 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The Flow to list all versions for. Format: `projects//locations//agents//flows/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/flows/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/versions", +"response": { +"$ref": "GoogleCloudDialogflowCxV3ListVersionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"load": { +"description": "Loads resources in the specified version to the draft flow. This method is a [long-running operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation). The returned `Operation` type has the following method-specific fields: - `metadata`: An empty [Struct message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#struct) - `response`: An [Empty message](https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#empty)", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/flows/{flowsId}/versions/{versionsId}:load", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agents.flows.versions.load", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The Version to be loaded to draft flow. Format: `projects//locations//agents//flows//versions/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/flows/[^/]+/versions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}:load", +"request": { +"$ref": "GoogleCloudDialogflowCxV3LoadVersionRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"patch": { +"description": "Updates the specified Version.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/flows/{flowsId}/versions/{versionsId}", +"httpMethod": "PATCH", +"id": "dialogflow.projects.locations.agents.flows.versions.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Format: projects//locations//agents//flows//versions/. Version ID is a self-increasing number generated by Dialogflow upon version creation.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/flows/[^/]+/versions/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The mask to control which fields get updated. Currently only `description` and `display_name` can be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v3/{+name}", +"request": { +"$ref": "GoogleCloudDialogflowCxV3Version" +}, +"response": { +"$ref": "GoogleCloudDialogflowCxV3Version" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +} +} +} +}, +"generators": { +"methods": { +"create": { +"description": "Creates a generator in the specified agent.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/generators", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agents.generators.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"languageCode": { +"description": "The language to create generators for the following fields: * `Generator.prompt_text.text` If not specified, the agent's default language is used.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The agent to create a generator for. Format: `projects//locations//agents/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/generators", +"request": { +"$ref": "GoogleCloudDialogflowCxV3Generator" +}, +"response": { +"$ref": "GoogleCloudDialogflowCxV3Generator" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"delete": { +"description": "Deletes the specified generators.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/generators/{generatorsId}", +"httpMethod": "DELETE", +"id": "dialogflow.projects.locations.agents.generators.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"force": { +"description": "This field has no effect for generators not being used. For generators that are used by pages/flows/transition route groups: * If `force` is set to false, an error will be returned with message indicating the referenced resources. * If `force` is set to true, Dialogflow will remove the generator, as well as any references to the generator (i.e. Generator) in fulfillments.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Required. The name of the generator to delete. Format: `projects//locations//agents//generators/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/generators/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"get": { +"description": "Retrieves the specified generator.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/generators/{generatorsId}", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agents.generators.get", +"parameterOrder": [ +"name" +], +"parameters": { +"languageCode": { +"description": "The language to list generators for.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. The name of the generator. Format: `projects//locations//agents//generators/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/generators/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "GoogleCloudDialogflowCxV3Generator" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Returns the list of all generators in the specified agent.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/generators", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agents.generators.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"languageCode": { +"description": "The language to list generators for.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of items to return in a single page. By default 100 and at most 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The agent to list all generators for. Format: `projects//locations//agents/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/generators", +"response": { +"$ref": "GoogleCloudDialogflowCxV3ListGeneratorsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"patch": { +"description": "Update the specified generator.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/generators/{generatorsId}", +"httpMethod": "PATCH", +"id": "dialogflow.projects.locations.agents.generators.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"languageCode": { +"description": "The language to list generators for.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The unique identifier of the generator. Must be set for the Generators.UpdateGenerator method. Generators.CreateGenerate populates the name automatically. Format: `projects//locations//agents//generators/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/generators/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The mask to control which fields get updated. If the mask is not present, all fields will be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v3/{+name}", +"request": { +"$ref": "GoogleCloudDialogflowCxV3Generator" +}, +"response": { +"$ref": "GoogleCloudDialogflowCxV3Generator" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +} +}, +"intents": { +"methods": { +"create": { +"description": "Creates an intent in the specified agent. Note: You should always train a flow prior to sending it queries. See the [training documentation](https://cloud.google.com/dialogflow/cx/docs/concept/training).", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/intents", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agents.intents.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"languageCode": { +"description": "The language of the following fields in `intent`: * `Intent.training_phrases.parts.text` If not specified, the agent's default language is used. [Many languages](https://cloud.google.com/dialogflow/cx/docs/reference/language) are supported. Note: languages must be enabled in the agent before they can be used.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The agent to create an intent for. Format: `projects//locations//agents/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/intents", +"request": { +"$ref": "GoogleCloudDialogflowCxV3Intent" +}, +"response": { +"$ref": "GoogleCloudDialogflowCxV3Intent" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"delete": { +"description": "Deletes the specified intent. Note: You should always train a flow prior to sending it queries. See the [training documentation](https://cloud.google.com/dialogflow/cx/docs/concept/training).", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/intents/{intentsId}", +"httpMethod": "DELETE", +"id": "dialogflow.projects.locations.agents.intents.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the intent to delete. Format: `projects//locations//agents//intents/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/intents/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"export": { +"description": "Exports the selected intents. This method is a [long-running operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation). The returned `Operation` type has the following method-specific fields: - `metadata`: ExportIntentsMetadata - `response`: ExportIntentsResponse", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/intents:export", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agents.intents.export", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the parent agent to export intents. Format: `projects//locations//agents/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/intents:export", +"request": { +"$ref": "GoogleCloudDialogflowCxV3ExportIntentsRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"get": { +"description": "Retrieves the specified intent.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/intents/{intentsId}", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agents.intents.get", +"parameterOrder": [ +"name" +], +"parameters": { +"languageCode": { +"description": "The language to retrieve the intent for. The following fields are language dependent: * `Intent.training_phrases.parts.text` If not specified, the agent's default language is used. [Many languages](https://cloud.google.com/dialogflow/cx/docs/reference/language) are supported. Note: languages must be enabled in the agent before they can be used.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. The name of the intent. Format: `projects//locations//agents//intents/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/intents/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "GoogleCloudDialogflowCxV3Intent" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"import": { +"description": "Imports the specified intents into the agent. This method is a [long-running operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation). The returned `Operation` type has the following method-specific fields: - `metadata`: ImportIntentsMetadata - `response`: ImportIntentsResponse", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/intents:import", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agents.intents.import", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The agent to import the intents into. Format: `projects//locations//agents/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/intents:import", +"request": { +"$ref": "GoogleCloudDialogflowCxV3ImportIntentsRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Returns the list of all intents in the specified agent.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/intents", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agents.intents.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"intentView": { +"description": "The resource view to apply to the returned intent.", +"enum": [ +"INTENT_VIEW_UNSPECIFIED", +"INTENT_VIEW_PARTIAL", +"INTENT_VIEW_FULL" +], +"enumDescriptions": [ +"Not specified. Treated as INTENT_VIEW_FULL.", +"Training phrases field is not populated in the response.", +"All fields are populated." +], +"location": "query", +"type": "string" +}, +"languageCode": { +"description": "The language to list intents for. The following fields are language dependent: * `Intent.training_phrases.parts.text` If not specified, the agent's default language is used. [Many languages](https://cloud.google.com/dialogflow/cx/docs/reference/language) are supported. Note: languages must be enabled in the agent before they can be used.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of items to return in a single page. By default 100 and at most 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The agent to list all intents for. Format: `projects//locations//agents/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/intents", +"response": { +"$ref": "GoogleCloudDialogflowCxV3ListIntentsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"patch": { +"description": "Updates the specified intent. Note: You should always train a flow prior to sending it queries. See the [training documentation](https://cloud.google.com/dialogflow/cx/docs/concept/training).", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/intents/{intentsId}", +"httpMethod": "PATCH", +"id": "dialogflow.projects.locations.agents.intents.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"languageCode": { +"description": "The language of the following fields in `intent`: * `Intent.training_phrases.parts.text` If not specified, the agent's default language is used. [Many languages](https://cloud.google.com/dialogflow/cx/docs/reference/language) are supported. Note: languages must be enabled in the agent before they can be used.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The unique identifier of the intent. Required for the Intents.UpdateIntent method. Intents.CreateIntent populates the name automatically. Format: `projects//locations//agents//intents/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/intents/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The mask to control which fields get updated. If the mask is not present, all fields will be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v3/{+name}", +"request": { +"$ref": "GoogleCloudDialogflowCxV3Intent" +}, +"response": { +"$ref": "GoogleCloudDialogflowCxV3Intent" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +} +}, +"sessions": { +"methods": { +"detectIntent": { +"description": "Processes a natural language query and returns structured, actionable data as a result. This method is not idempotent, because it may cause session entity types to be updated, which in turn might affect results of future queries. Note: Always use agent versions for production traffic. See [Versions and environments](https://cloud.google.com/dialogflow/cx/docs/concept/version).", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/sessions/{sessionsId}:detectIntent", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agents.sessions.detectIntent", +"parameterOrder": [ +"session" +], +"parameters": { +"session": { +"description": "Required. The name of the session this query is sent to. Format: `projects//locations//agents//sessions/` or `projects//locations//agents//environments//sessions/`. If `Environment ID` is not specified, we assume default 'draft' environment. It's up to the API caller to choose an appropriate `Session ID`. It can be a random number or some type of session identifiers (preferably hashed). The length of the `Session ID` must not exceed 36 characters. For more information, see the [sessions guide](https://cloud.google.com/dialogflow/cx/docs/concept/session). Note: Always use agent versions for production traffic. See [Versions and environments](https://cloud.google.com/dialogflow/cx/docs/concept/version).", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/sessions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+session}:detectIntent", +"request": { +"$ref": "GoogleCloudDialogflowCxV3DetectIntentRequest" +}, +"response": { +"$ref": "GoogleCloudDialogflowCxV3DetectIntentResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"fulfillIntent": { +"description": "Fulfills a matched intent returned by MatchIntent. Must be called after MatchIntent, with input from MatchIntentResponse. Otherwise, the behavior is undefined.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/sessions/{sessionsId}:fulfillIntent", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agents.sessions.fulfillIntent", +"parameterOrder": [ +"session" +], +"parameters": { +"session": { +"description": "Required. The name of the session this query is sent to. Format: `projects//locations//agents//sessions/` or `projects//locations//agents//environments//sessions/`. If `Environment ID` is not specified, we assume default 'draft' environment. It's up to the API caller to choose an appropriate `Session ID`. It can be a random number or some type of session identifiers (preferably hashed). The length of the `Session ID` must not exceed 36 characters. For more information, see the [sessions guide](https://cloud.google.com/dialogflow/cx/docs/concept/session).", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/sessions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+session}:fulfillIntent", +"request": { +"$ref": "GoogleCloudDialogflowCxV3FulfillIntentRequest" +}, +"response": { +"$ref": "GoogleCloudDialogflowCxV3FulfillIntentResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"matchIntent": { +"description": "Returns preliminary intent match results, doesn't change the session status.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/sessions/{sessionsId}:matchIntent", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agents.sessions.matchIntent", +"parameterOrder": [ +"session" +], +"parameters": { +"session": { +"description": "Required. The name of the session this query is sent to. Format: `projects//locations//agents//sessions/` or `projects//locations//agents//environments//sessions/`. If `Environment ID` is not specified, we assume default 'draft' environment. It's up to the API caller to choose an appropriate `Session ID`. It can be a random number or some type of session identifiers (preferably hashed). The length of the `Session ID` must not exceed 36 characters. For more information, see the [sessions guide](https://cloud.google.com/dialogflow/cx/docs/concept/session).", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/sessions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+session}:matchIntent", +"request": { +"$ref": "GoogleCloudDialogflowCxV3MatchIntentRequest" +}, +"response": { +"$ref": "GoogleCloudDialogflowCxV3MatchIntentResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"serverStreamingDetectIntent": { +"description": "Processes a natural language query and returns structured, actionable data as a result through server-side streaming. Server-side streaming allows Dialogflow to send [partial responses](https://cloud.google.com/dialogflow/cx/docs/concept/fulfillment#partial-response) earlier in a single request.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/sessions/{sessionsId}:serverStreamingDetectIntent", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agents.sessions.serverStreamingDetectIntent", +"parameterOrder": [ +"session" +], +"parameters": { +"session": { +"description": "Required. The name of the session this query is sent to. Format: `projects//locations//agents//sessions/` or `projects//locations//agents//environments//sessions/`. If `Environment ID` is not specified, we assume default 'draft' environment. It's up to the API caller to choose an appropriate `Session ID`. It can be a random number or some type of session identifiers (preferably hashed). The length of the `Session ID` must not exceed 36 characters. For more information, see the [sessions guide](https://cloud.google.com/dialogflow/cx/docs/concept/session). Note: Always use agent versions for production traffic. See [Versions and environments](https://cloud.google.com/dialogflow/cx/docs/concept/version).", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/sessions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+session}:serverStreamingDetectIntent", +"request": { +"$ref": "GoogleCloudDialogflowCxV3DetectIntentRequest" +}, +"response": { +"$ref": "GoogleCloudDialogflowCxV3DetectIntentResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"submitAnswerFeedback": { +"description": "Updates the feedback received from the user for a single turn of the bot response.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/sessions/{sessionsId}:submitAnswerFeedback", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agents.sessions.submitAnswerFeedback", +"parameterOrder": [ +"session" +], +"parameters": { +"session": { +"description": "Required. The name of the session the feedback was sent to.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/sessions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+session}:submitAnswerFeedback", +"request": { +"$ref": "GoogleCloudDialogflowCxV3SubmitAnswerFeedbackRequest" +}, +"response": { +"$ref": "GoogleCloudDialogflowCxV3AnswerFeedback" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +}, +"resources": { +"entityTypes": { +"methods": { +"create": { +"description": "Creates a session entity type.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/sessions/{sessionsId}/entityTypes", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agents.sessions.entityTypes.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The session to create a session entity type for. Format: `projects//locations//agents//sessions/` or `projects//locations//agents//environments//sessions/`. If `Environment ID` is not specified, we assume default 'draft' environment.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/sessions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/entityTypes", +"request": { +"$ref": "GoogleCloudDialogflowCxV3SessionEntityType" +}, +"response": { +"$ref": "GoogleCloudDialogflowCxV3SessionEntityType" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"delete": { +"description": "Deletes the specified session entity type.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/sessions/{sessionsId}/entityTypes/{entityTypesId}", +"httpMethod": "DELETE", +"id": "dialogflow.projects.locations.agents.sessions.entityTypes.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the session entity type to delete. Format: `projects//locations//agents//sessions//entityTypes/` or `projects//locations//agents//environments//sessions//entityTypes/`. If `Environment ID` is not specified, we assume default 'draft' environment.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/sessions/[^/]+/entityTypes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"get": { +"description": "Retrieves the specified session entity type.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/sessions/{sessionsId}/entityTypes/{entityTypesId}", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agents.sessions.entityTypes.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the session entity type. Format: `projects//locations//agents//sessions//entityTypes/` or `projects//locations//agents//environments//sessions//entityTypes/`. If `Environment ID` is not specified, we assume default 'draft' environment.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/sessions/[^/]+/entityTypes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "GoogleCloudDialogflowCxV3SessionEntityType" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Returns the list of all session entity types in the specified session.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/sessions/{sessionsId}/entityTypes", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agents.sessions.entityTypes.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of items to return in a single page. By default 100 and at most 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The session to list all session entity types from. Format: `projects//locations//agents//sessions/` or `projects//locations//agents//environments//sessions/`. If `Environment ID` is not specified, we assume default 'draft' environment.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/sessions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/entityTypes", +"response": { +"$ref": "GoogleCloudDialogflowCxV3ListSessionEntityTypesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"patch": { +"description": "Updates the specified session entity type.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/sessions/{sessionsId}/entityTypes/{entityTypesId}", +"httpMethod": "PATCH", +"id": "dialogflow.projects.locations.agents.sessions.entityTypes.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The unique identifier of the session entity type. Format: `projects//locations//agents//sessions//entityTypes/` or `projects//locations//agents//environments//sessions//entityTypes/`. If `Environment ID` is not specified, we assume default 'draft' environment.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/sessions/[^/]+/entityTypes/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The mask to control which fields get updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v3/{+name}", +"request": { +"$ref": "GoogleCloudDialogflowCxV3SessionEntityType" +}, +"response": { +"$ref": "GoogleCloudDialogflowCxV3SessionEntityType" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +} +} +} +}, +"testCases": { +"methods": { +"batchDelete": { +"description": "Batch deletes test cases.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/testCases:batchDelete", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agents.testCases.batchDelete", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The agent to delete test cases from. Format: `projects//locations//agents/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/testCases:batchDelete", +"request": { +"$ref": "GoogleCloudDialogflowCxV3BatchDeleteTestCasesRequest" +}, +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"batchRun": { +"description": "Kicks off a batch run of test cases. This method is a [long-running operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation). The returned `Operation` type has the following method-specific fields: - `metadata`: BatchRunTestCasesMetadata - `response`: BatchRunTestCasesResponse", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/testCases:batchRun", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agents.testCases.batchRun", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Agent name. Format: `projects//locations//agents/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/testCases:batchRun", +"request": { +"$ref": "GoogleCloudDialogflowCxV3BatchRunTestCasesRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"calculateCoverage": { +"description": "Calculates the test coverage for an agent.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/testCases:calculateCoverage", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agents.testCases.calculateCoverage", +"parameterOrder": [ +"agent" +], +"parameters": { +"agent": { +"description": "Required. The agent to calculate coverage for. Format: `projects//locations//agents/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+$", +"required": true, +"type": "string" +}, +"type": { +"description": "Required. The type of coverage requested.", +"enum": [ +"COVERAGE_TYPE_UNSPECIFIED", +"INTENT", +"PAGE_TRANSITION", +"TRANSITION_ROUTE_GROUP" +], +"enumDescriptions": [ +"Should never be used.", +"Intent coverage.", +"Page transition coverage.", +"Transition route group coverage." +], +"location": "query", +"type": "string" +} +}, +"path": "v3/{+agent}/testCases:calculateCoverage", +"response": { +"$ref": "GoogleCloudDialogflowCxV3CalculateCoverageResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"create": { +"description": "Creates a test case for the given agent.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/testCases", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agents.testCases.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The agent to create the test case for. Format: `projects//locations//agents/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/testCases", +"request": { +"$ref": "GoogleCloudDialogflowCxV3TestCase" +}, +"response": { +"$ref": "GoogleCloudDialogflowCxV3TestCase" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"export": { +"description": "Exports the test cases under the agent to a Cloud Storage bucket or a local file. Filter can be applied to export a subset of test cases. This method is a [long-running operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation). The returned `Operation` type has the following method-specific fields: - `metadata`: ExportTestCasesMetadata - `response`: ExportTestCasesResponse", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/testCases:export", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agents.testCases.export", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The agent where to export test cases from. Format: `projects//locations//agents/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/testCases:export", +"request": { +"$ref": "GoogleCloudDialogflowCxV3ExportTestCasesRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"get": { +"description": "Gets a test case.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/testCases/{testCasesId}", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agents.testCases.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the testcase. Format: `projects//locations//agents//testCases/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/testCases/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "GoogleCloudDialogflowCxV3TestCase" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"import": { +"description": "Imports the test cases from a Cloud Storage bucket or a local file. It always creates new test cases and won't overwrite any existing ones. The provided ID in the imported test case is neglected. This method is a [long-running operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation). The returned `Operation` type has the following method-specific fields: - `metadata`: ImportTestCasesMetadata - `response`: ImportTestCasesResponse", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/testCases:import", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agents.testCases.import", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The agent to import test cases to. Format: `projects//locations//agents/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/testCases:import", +"request": { +"$ref": "GoogleCloudDialogflowCxV3ImportTestCasesRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Fetches a list of test cases for a given agent.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/testCases", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agents.testCases.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of items to return in a single page. By default 20. Note that when TestCaseView = FULL, the maximum page size allowed is 20. When TestCaseView = BASIC, the maximum page size allowed is 500.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The agent to list all pages for. Format: `projects//locations//agents/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+$", +"required": true, +"type": "string" +}, +"view": { +"description": "Specifies whether response should include all fields or just the metadata.", +"enum": [ +"TEST_CASE_VIEW_UNSPECIFIED", +"BASIC", +"FULL" +], +"enumDescriptions": [ +"The default / unset value. The API will default to the BASIC view.", +"Include basic metadata about the test case, but not the conversation turns. This is the default value.", +"Include everything." +], +"location": "query", +"type": "string" +} +}, +"path": "v3/{+parent}/testCases", +"response": { +"$ref": "GoogleCloudDialogflowCxV3ListTestCasesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"patch": { +"description": "Updates the specified test case.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/testCases/{testCasesId}", +"httpMethod": "PATCH", +"id": "dialogflow.projects.locations.agents.testCases.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The unique identifier of the test case. TestCases.CreateTestCase will populate the name automatically. Otherwise use format: `projects//locations//agents//testCases/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/testCases/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The mask to specify which fields should be updated. The `creationTime` and `lastTestResult` cannot be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v3/{+name}", +"request": { +"$ref": "GoogleCloudDialogflowCxV3TestCase" +}, +"response": { +"$ref": "GoogleCloudDialogflowCxV3TestCase" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"run": { +"description": "Kicks off a test case run. This method is a [long-running operation](https://cloud.google.com/dialogflow/cx/docs/how/long-running-operation). The returned `Operation` type has the following method-specific fields: - `metadata`: RunTestCaseMetadata - `response`: RunTestCaseResponse", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/testCases/{testCasesId}:run", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agents.testCases.run", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Format of test case name to run: `projects//locations//agents//testCases/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/testCases/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}:run", +"request": { +"$ref": "GoogleCloudDialogflowCxV3RunTestCaseRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +}, +"resources": { +"results": { +"methods": { +"get": { +"description": "Gets a test case result.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/testCases/{testCasesId}/results/{resultsId}", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agents.testCases.results.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the testcase. Format: `projects//locations//agents//testCases//results/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/testCases/[^/]+/results/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "GoogleCloudDialogflowCxV3TestCaseResult" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Fetches the list of run results for the given test case. A maximum of 100 results are kept for each test case.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/testCases/{testCasesId}/results", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agents.testCases.results.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "The filter expression used to filter test case results. See [API Filtering](https://aip.dev/160). The expression is case insensitive. Only 'AND' is supported for logical operators. The supported syntax is listed below in detail: [AND ] ... [AND latest] The supported fields and operators are: field operator `environment` `=`, `IN` (Use value `draft` for draft environment) `test_time` `>`, `<` `latest` only returns the latest test result in all results for each test case. Examples: * \"environment=draft AND latest\" matches the latest test result for each test case in the draft environment. * \"environment IN (e1,e2)\" matches any test case results with an environment resource name of either \"e1\" or \"e2\". * \"test_time > 1602540713\" matches any test case results with test time later than a unix timestamp in seconds 1602540713.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of items to return in a single page. By default 100 and at most 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The test case to list results for. Format: `projects//locations//agents//testCases/`. Specify a `-` as a wildcard for TestCase ID to list results across multiple test cases.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/testCases/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/results", +"response": { +"$ref": "GoogleCloudDialogflowCxV3ListTestCaseResultsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +} +} +} +}, +"transitionRouteGroups": { +"methods": { +"create": { +"description": "Creates an TransitionRouteGroup in the specified flow. Note: You should always train a flow prior to sending it queries. See the [training documentation](https://cloud.google.com/dialogflow/cx/docs/concept/training).", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/transitionRouteGroups", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agents.transitionRouteGroups.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"languageCode": { +"description": "The language of the following fields in `TransitionRouteGroup`: * `TransitionRouteGroup.transition_routes.trigger_fulfillment.messages` * `TransitionRouteGroup.transition_routes.trigger_fulfillment.conditional_cases` If not specified, the agent's default language is used. [Many languages](https://cloud.google.com/dialogflow/cx/docs/reference/language) are supported. Note: languages must be enabled in the agent before they can be used.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The flow to create an TransitionRouteGroup for. Format: `projects//locations//agents//flows/` or `projects//locations//agents/` for agent-level groups.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/transitionRouteGroups", +"request": { +"$ref": "GoogleCloudDialogflowCxV3TransitionRouteGroup" +}, +"response": { +"$ref": "GoogleCloudDialogflowCxV3TransitionRouteGroup" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"delete": { +"description": "Deletes the specified TransitionRouteGroup. Note: You should always train a flow prior to sending it queries. See the [training documentation](https://cloud.google.com/dialogflow/cx/docs/concept/training).", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/transitionRouteGroups/{transitionRouteGroupsId}", +"httpMethod": "DELETE", +"id": "dialogflow.projects.locations.agents.transitionRouteGroups.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"force": { +"description": "This field has no effect for transition route group that no page is using. If the transition route group is referenced by any page: * If `force` is set to false, an error will be returned with message indicating pages that reference the transition route group. * If `force` is set to true, Dialogflow will remove the transition route group, as well as any reference to it.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Required. The name of the TransitionRouteGroup to delete. Format: `projects//locations//agents//flows//transitionRouteGroups/` or `projects//locations//agents//transitionRouteGroups/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/transitionRouteGroups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"get": { +"description": "Retrieves the specified TransitionRouteGroup.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/transitionRouteGroups/{transitionRouteGroupsId}", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agents.transitionRouteGroups.get", +"parameterOrder": [ +"name" +], +"parameters": { +"languageCode": { +"description": "The language to retrieve the transition route group for. The following fields are language dependent: * `TransitionRouteGroup.transition_routes.trigger_fulfillment.messages` * `TransitionRouteGroup.transition_routes.trigger_fulfillment.conditional_cases` If not specified, the agent's default language is used. [Many languages](https://cloud.google.com/dialogflow/cx/docs/reference/language) are supported. Note: languages must be enabled in the agent before they can be used.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. The name of the TransitionRouteGroup. Format: `projects//locations//agents//flows//transitionRouteGroups/` or `projects//locations//agents//transitionRouteGroups/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/transitionRouteGroups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "GoogleCloudDialogflowCxV3TransitionRouteGroup" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Returns the list of all transition route groups in the specified flow.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/transitionRouteGroups", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agents.transitionRouteGroups.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"languageCode": { +"description": "The language to list transition route groups for. The following fields are language dependent: * `TransitionRouteGroup.transition_routes.trigger_fulfillment.messages` * `TransitionRouteGroup.transition_routes.trigger_fulfillment.conditional_cases` If not specified, the agent's default language is used. [Many languages](https://cloud.google.com/dialogflow/cx/docs/reference/language) are supported. Note: languages must be enabled in the agent before they can be used.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of items to return in a single page. By default 100 and at most 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The flow to list all transition route groups for. Format: `projects//locations//agents//flows/` or `projects//locations//agents/.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/transitionRouteGroups", +"response": { +"$ref": "GoogleCloudDialogflowCxV3ListTransitionRouteGroupsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"patch": { +"description": "Updates the specified TransitionRouteGroup. Note: You should always train a flow prior to sending it queries. See the [training documentation](https://cloud.google.com/dialogflow/cx/docs/concept/training).", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/transitionRouteGroups/{transitionRouteGroupsId}", +"httpMethod": "PATCH", +"id": "dialogflow.projects.locations.agents.transitionRouteGroups.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"languageCode": { +"description": "The language of the following fields in `TransitionRouteGroup`: * `TransitionRouteGroup.transition_routes.trigger_fulfillment.messages` * `TransitionRouteGroup.transition_routes.trigger_fulfillment.conditional_cases` If not specified, the agent's default language is used. [Many languages](https://cloud.google.com/dialogflow/cx/docs/reference/language) are supported. Note: languages must be enabled in the agent before they can be used.", +"location": "query", +"type": "string" +}, +"name": { +"description": "The unique identifier of the transition route group. TransitionRouteGroups.CreateTransitionRouteGroup populates the name automatically. Format: `projects//locations//agents//flows//transitionRouteGroups/` .", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/transitionRouteGroups/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The mask to control which fields get updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v3/{+name}", +"request": { +"$ref": "GoogleCloudDialogflowCxV3TransitionRouteGroup" +}, +"response": { +"$ref": "GoogleCloudDialogflowCxV3TransitionRouteGroup" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +} +}, +"webhooks": { +"methods": { +"create": { +"description": "Creates a webhook in the specified agent.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/webhooks", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.agents.webhooks.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The agent to create a webhook for. Format: `projects//locations//agents/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/webhooks", +"request": { +"$ref": "GoogleCloudDialogflowCxV3Webhook" +}, +"response": { +"$ref": "GoogleCloudDialogflowCxV3Webhook" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"delete": { +"description": "Deletes the specified webhook.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/webhooks/{webhooksId}", +"httpMethod": "DELETE", +"id": "dialogflow.projects.locations.agents.webhooks.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"force": { +"description": "This field has no effect for webhook not being used. For webhooks that are used by pages/flows/transition route groups: * If `force` is set to false, an error will be returned with message indicating the referenced resources. * If `force` is set to true, Dialogflow will remove the webhook, as well as any references to the webhook (i.e. Webhook and tagin fulfillments that point to this webhook will be removed).", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Required. The name of the webhook to delete. Format: `projects//locations//agents//webhooks/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/webhooks/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"get": { +"description": "Retrieves the specified webhook.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/webhooks/{webhooksId}", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agents.webhooks.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the webhook. Format: `projects//locations//agents//webhooks/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/webhooks/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "GoogleCloudDialogflowCxV3Webhook" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Returns the list of all webhooks in the specified agent.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/webhooks", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.agents.webhooks.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of items to return in a single page. By default 100 and at most 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The agent to list all webhooks for. Format: `projects//locations//agents/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/webhooks", +"response": { +"$ref": "GoogleCloudDialogflowCxV3ListWebhooksResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"patch": { +"description": "Updates the specified webhook.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/webhooks/{webhooksId}", +"httpMethod": "PATCH", +"id": "dialogflow.projects.locations.agents.webhooks.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The unique identifier of the webhook. Required for the Webhooks.UpdateWebhook method. Webhooks.CreateWebhook populates the name automatically. Format: `projects//locations//agents//webhooks/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/webhooks/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The mask to control which fields get updated. If the mask is not present, all fields will be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v3/{+name}", +"request": { +"$ref": "GoogleCloudDialogflowCxV3Webhook" +}, +"response": { +"$ref": "GoogleCloudDialogflowCxV3Webhook" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +} +} +} +}, +"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": "v3/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel", +"httpMethod": "POST", +"id": "dialogflow.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": "v3/{+name}:cancel", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"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": "v3/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "dialogflow.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": "v3/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/operations", +"httpMethod": "GET", +"id": "dialogflow.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": "v3/{+name}/operations", +"response": { +"$ref": "GoogleLongrunningListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +} +}, +"securitySettings": { +"methods": { +"create": { +"description": "Create security settings in the specified location.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/securitySettings", +"httpMethod": "POST", +"id": "dialogflow.projects.locations.securitySettings.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The location to create an SecuritySettings for. Format: `projects//locations/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/securitySettings", +"request": { +"$ref": "GoogleCloudDialogflowCxV3SecuritySettings" +}, +"response": { +"$ref": "GoogleCloudDialogflowCxV3SecuritySettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"delete": { +"description": "Deletes the specified SecuritySettings.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/securitySettings/{securitySettingsId}", +"httpMethod": "DELETE", +"id": "dialogflow.projects.locations.securitySettings.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the SecuritySettings to delete. Format: `projects//locations//securitySettings/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/securitySettings/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"get": { +"description": "Retrieves the specified SecuritySettings. The returned settings may be stale by up to 1 minute.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/securitySettings/{securitySettingsId}", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.securitySettings.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the settings. Format: `projects//locations//securitySettings/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/securitySettings/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "GoogleCloudDialogflowCxV3SecuritySettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Returns the list of all security settings in the specified location.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/securitySettings", +"httpMethod": "GET", +"id": "dialogflow.projects.locations.securitySettings.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of items to return in a single page. By default 20 and at most 100.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value returned from a previous list request.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The location to list all security settings for. Format: `projects//locations/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/securitySettings", +"response": { +"$ref": "GoogleCloudDialogflowCxV3ListSecuritySettingsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"patch": { +"description": "Updates the specified SecuritySettings.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/securitySettings/{securitySettingsId}", +"httpMethod": "PATCH", +"id": "dialogflow.projects.locations.securitySettings.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Resource name of the settings. Required for the SecuritySettingsService.UpdateSecuritySettings method. SecuritySettingsService.CreateSecuritySettings populates the name automatically. Format: `projects//locations//securitySettings/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/securitySettings/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The mask to control which fields get updated. If the mask is not present, all fields will be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v3/{+name}", +"request": { +"$ref": "GoogleCloudDialogflowCxV3SecuritySettings" +}, +"response": { +"$ref": "GoogleCloudDialogflowCxV3SecuritySettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +} +} +} +}, +"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": "v3/projects/{projectsId}/operations/{operationsId}:cancel", +"httpMethod": "POST", +"id": "dialogflow.projects.operations.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be cancelled.", +"location": "path", +"pattern": "^projects/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}:cancel", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"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": "v3/projects/{projectsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "dialogflow.projects.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v3/projects/{projectsId}/operations", +"httpMethod": "GET", +"id": "dialogflow.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": "v3/{+name}/operations", +"response": { +"$ref": "GoogleLongrunningListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/dialogflow" +] +} +} +} +} +} +}, +"revision": "20250103", +"rootUrl": "https://dialogflow.googleapis.com/", +"schemas": { +"GoogleCloudDialogflowCxV3AdvancedSettings": { +"description": "Hierarchical advanced settings for agent/flow/page/fulfillment/parameter. Settings exposed at lower level overrides the settings exposed at higher level. Overriding occurs at the sub-setting level. For example, the playback_interruption_settings at fulfillment level only overrides the playback_interruption_settings at the agent level, leaving other settings at the agent level unchanged. DTMF settings does not override each other. DTMF settings set at different levels define DTMF detections running in parallel. Hierarchy: Agent->Flow->Page->Fulfillment/Parameter.", +"id": "GoogleCloudDialogflowCxV3AdvancedSettings", +"properties": { +"audioExportGcsDestination": { +"$ref": "GoogleCloudDialogflowCxV3GcsDestination", +"description": "If present, incoming audio is exported by Dialogflow to the configured Google Cloud Storage destination. Exposed at the following levels: - Agent level - Flow level" +}, +"dtmfSettings": { +"$ref": "GoogleCloudDialogflowCxV3AdvancedSettingsDtmfSettings", +"description": "Settings for DTMF. Exposed at the following levels: - Agent level - Flow level - Page level - Parameter level." +}, +"loggingSettings": { +"$ref": "GoogleCloudDialogflowCxV3AdvancedSettingsLoggingSettings", +"description": "Settings for logging. Settings for Dialogflow History, Contact Center messages, StackDriver logs, and speech logging. Exposed at the following levels: - Agent level." +}, +"speechSettings": { +"$ref": "GoogleCloudDialogflowCxV3AdvancedSettingsSpeechSettings", +"description": "Settings for speech to text detection. Exposed at the following levels: - Agent level - Flow level - Page level - Parameter level" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3AdvancedSettingsDtmfSettings": { +"description": "Define behaviors for DTMF (dual tone multi frequency).", +"id": "GoogleCloudDialogflowCxV3AdvancedSettingsDtmfSettings", +"properties": { +"enabled": { +"description": "If true, incoming audio is processed for DTMF (dual tone multi frequency) events. For example, if the caller presses a button on their telephone keypad and DTMF processing is enabled, Dialogflow will detect the event (e.g. a \"3\" was pressed) in the incoming audio and pass the event to the bot to drive business logic (e.g. when 3 is pressed, return the account balance).", +"type": "boolean" +}, +"endpointingTimeoutDuration": { +"description": "Endpoint timeout setting for matching dtmf input to regex.", +"format": "google-duration", +"type": "string" +}, +"finishDigit": { +"description": "The digit that terminates a DTMF digit sequence.", +"type": "string" +}, +"interdigitTimeoutDuration": { +"description": "Interdigit timeout setting for matching dtmf input to regex.", +"format": "google-duration", +"type": "string" +}, +"maxDigits": { +"description": "Max length of DTMF digits.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3AdvancedSettingsLoggingSettings": { +"description": "Define behaviors on logging.", +"id": "GoogleCloudDialogflowCxV3AdvancedSettingsLoggingSettings", +"properties": { +"enableConsentBasedRedaction": { +"description": "Enables consent-based end-user input redaction, if true, a pre-defined session parameter `$session.params.conversation-redaction` will be used to determine if the utterance should be redacted.", +"type": "boolean" +}, +"enableInteractionLogging": { +"description": "Enables DF Interaction logging.", +"type": "boolean" +}, +"enableStackdriverLogging": { +"description": "Enables Google Cloud Logging.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3AdvancedSettingsSpeechSettings": { +"description": "Define behaviors of speech to text detection.", +"id": "GoogleCloudDialogflowCxV3AdvancedSettingsSpeechSettings", +"properties": { +"endpointerSensitivity": { +"description": "Sensitivity of the speech model that detects the end of speech. Scale from 0 to 100.", +"format": "int32", +"type": "integer" +}, +"models": { +"additionalProperties": { +"type": "string" +}, +"description": "Mapping from language to Speech-to-Text model. The mapped Speech-to-Text model will be selected for requests from its corresponding language. For more information, see [Speech models](https://cloud.google.com/dialogflow/cx/docs/concept/speech-models).", +"type": "object" +}, +"noSpeechTimeout": { +"description": "Timeout before detecting no speech.", +"format": "google-duration", +"type": "string" +}, +"useTimeoutBasedEndpointing": { +"description": "Use timeout based endpointing, interpreting endpointer sensitivy as seconds of timeout value.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3Agent": { +"description": "Agents are best described as Natural Language Understanding (NLU) modules that transform user requests into actionable data. You can include agents in your app, product, or service to determine user intent and respond to the user in a natural way. After you create an agent, you can add Intents, Entity Types, Flows, Fulfillments, Webhooks, TransitionRouteGroups and so on to manage the conversation flows.", +"id": "GoogleCloudDialogflowCxV3Agent", +"properties": { +"advancedSettings": { +"$ref": "GoogleCloudDialogflowCxV3AdvancedSettings", +"description": "Hierarchical advanced settings for this agent. The settings exposed at the lower level overrides the settings exposed at the higher level." +}, +"answerFeedbackSettings": { +"$ref": "GoogleCloudDialogflowCxV3AgentAnswerFeedbackSettings", +"description": "Optional. Answer feedback collection settings." +}, +"avatarUri": { +"description": "The URI of the agent's avatar. Avatars are used throughout the Dialogflow console and in the self-hosted [Web Demo](https://cloud.google.com/dialogflow/docs/integrations/web-demo) integration.", +"type": "string" +}, +"clientCertificateSettings": { +"$ref": "GoogleCloudDialogflowCxV3AgentClientCertificateSettings", +"description": "Optional. Settings for custom client certificates." +}, +"defaultLanguageCode": { +"description": "Required. Immutable. The default language of the agent as a language tag. See [Language Support](https://cloud.google.com/dialogflow/cx/docs/reference/language) for a list of the currently supported language codes. This field cannot be set by the Agents.UpdateAgent method.", +"type": "string" +}, +"description": { +"description": "The description of the agent. The maximum length is 500 characters. If exceeded, the request is rejected.", +"type": "string" +}, +"displayName": { +"description": "Required. The human-readable name of the agent, unique within the location.", +"type": "string" +}, +"enableMultiLanguageTraining": { +"description": "Optional. Enable training multi-lingual models for this agent. These models will be trained on all the languages supported by the agent.", +"type": "boolean" +}, +"enableSpellCorrection": { +"description": "Indicates if automatic spell correction is enabled in detect intent requests.", +"type": "boolean" +}, +"enableStackdriverLogging": { +"deprecated": true, +"description": "Indicates if stackdriver logging is enabled for the agent. Please use agent.advanced_settings instead.", +"type": "boolean" +}, +"genAppBuilderSettings": { +"$ref": "GoogleCloudDialogflowCxV3AgentGenAppBuilderSettings", +"description": "Gen App Builder-related agent-level settings." +}, +"gitIntegrationSettings": { +"$ref": "GoogleCloudDialogflowCxV3AgentGitIntegrationSettings", +"description": "Git integration settings for this agent." +}, +"locked": { +"description": "Indicates whether the agent is locked for changes. If the agent is locked, modifications to the agent will be rejected except for RestoreAgent.", +"type": "boolean" +}, +"name": { +"description": "The unique identifier of the agent. Required for the Agents.UpdateAgent method. Agents.CreateAgent populates the name automatically. Format: `projects//locations//agents/`.", +"type": "string" +}, +"personalizationSettings": { +"$ref": "GoogleCloudDialogflowCxV3AgentPersonalizationSettings", +"description": "Optional. Settings for end user personalization." +}, +"satisfiesPzi": { +"description": "Optional. Output only. A read only boolean field reflecting Zone Isolation status of the agent.", +"readOnly": true, +"type": "boolean" +}, +"satisfiesPzs": { +"description": "Optional. Output only. A read only boolean field reflecting Zone Separation status of the agent.", +"readOnly": true, +"type": "boolean" +}, +"securitySettings": { +"description": "Name of the SecuritySettings reference for the agent. Format: `projects//locations//securitySettings/`.", +"type": "string" +}, +"speechToTextSettings": { +"$ref": "GoogleCloudDialogflowCxV3SpeechToTextSettings", +"description": "Speech recognition related settings." +}, +"startFlow": { +"description": "Immutable. Name of the start flow in this agent. A start flow will be automatically created when the agent is created, and can only be deleted by deleting the agent. Format: `projects//locations//agents//flows/`.", +"type": "string" +}, +"supportedLanguageCodes": { +"description": "The list of all languages supported by the agent (except for the `default_language_code`).", +"items": { +"type": "string" +}, +"type": "array" +}, +"textToSpeechSettings": { +"$ref": "GoogleCloudDialogflowCxV3TextToSpeechSettings", +"description": "Settings on instructing the speech synthesizer on how to generate the output audio content." +}, +"timeZone": { +"description": "Required. The time zone of the agent from the [time zone database](https://www.iana.org/time-zones), e.g., America/New_York, Europe/Paris.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3AgentAnswerFeedbackSettings": { +"description": "Settings for answer feedback collection.", +"id": "GoogleCloudDialogflowCxV3AgentAnswerFeedbackSettings", +"properties": { +"enableAnswerFeedback": { +"description": "Optional. If enabled, end users will be able to provide answer feedback to Dialogflow responses. Feature works only if interaction logging is enabled in the Dialogflow agent.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3AgentClientCertificateSettings": { +"description": "Settings for custom client certificates.", +"id": "GoogleCloudDialogflowCxV3AgentClientCertificateSettings", +"properties": { +"passphrase": { +"description": "Optional. The name of the SecretManager secret version resource storing the passphrase. 'passphrase' should be left unset if the private key is not encrypted. Format: `projects/{project}/secrets/{secret}/versions/{version}`", +"type": "string" +}, +"privateKey": { +"description": "Required. The name of the SecretManager secret version resource storing the private key encoded in PEM format. Format: `projects/{project}/secrets/{secret}/versions/{version}`", +"type": "string" +}, +"sslCertificate": { +"description": "Required. The ssl certificate encoded in PEM format. This string must include the begin header and end footer lines.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3AgentGenAppBuilderSettings": { +"description": "Settings for Gen App Builder.", +"id": "GoogleCloudDialogflowCxV3AgentGenAppBuilderSettings", +"properties": { +"engine": { +"description": "Required. The full name of the Gen App Builder engine related to this agent if there is one. Format: `projects/{Project ID}/locations/{Location ID}/collections/{Collection ID}/engines/{Engine ID}`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3AgentGitIntegrationSettings": { +"description": "Settings for connecting to Git repository for an agent.", +"id": "GoogleCloudDialogflowCxV3AgentGitIntegrationSettings", +"properties": { +"githubSettings": { +"$ref": "GoogleCloudDialogflowCxV3AgentGitIntegrationSettingsGithubSettings", +"description": "GitHub settings." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3AgentGitIntegrationSettingsGithubSettings": { +"description": "Settings of integration with GitHub.", +"id": "GoogleCloudDialogflowCxV3AgentGitIntegrationSettingsGithubSettings", +"properties": { +"accessToken": { +"description": "The access token used to authenticate the access to the GitHub repository.", +"type": "string" +}, +"branches": { +"description": "A list of branches configured to be used from Dialogflow.", +"items": { +"type": "string" +}, +"type": "array" +}, +"displayName": { +"description": "The unique repository display name for the GitHub repository.", +"type": "string" +}, +"repositoryUri": { +"description": "The GitHub repository URI related to the agent.", +"type": "string" +}, +"trackingBranch": { +"description": "The branch of the GitHub repository tracked for this agent.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3AgentPersonalizationSettings": { +"description": "Settings for end user personalization.", +"id": "GoogleCloudDialogflowCxV3AgentPersonalizationSettings", +"properties": { +"defaultEndUserMetadata": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Optional. Default end user metadata, used when processing DetectIntent requests. Recommended to be filled as a template instead of hard-coded value, for example { \"age\": \"$session.params.age\" }. The data will be merged with the QueryParameters.end_user_metadata in DetectIntentRequest.query_params during query processing.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3AgentValidationResult": { +"description": "The response message for Agents.GetAgentValidationResult.", +"id": "GoogleCloudDialogflowCxV3AgentValidationResult", +"properties": { +"flowValidationResults": { +"description": "Contains all flow validation results.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3FlowValidationResult" +}, +"type": "array" +}, +"name": { +"description": "The unique identifier of the agent validation result. Format: `projects//locations//agents//validationResult`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3AnswerFeedback": { +"description": "Stores information about feedback provided by users about a response.", +"id": "GoogleCloudDialogflowCxV3AnswerFeedback", +"properties": { +"customRating": { +"description": "Optional. Custom rating from the user about the provided answer, with maximum length of 1024 characters. For example, client could use a customized JSON object to indicate the rating.", +"type": "string" +}, +"rating": { +"description": "Optional. Rating from user for the specific Dialogflow response.", +"enum": [ +"RATING_UNSPECIFIED", +"THUMBS_UP", +"THUMBS_DOWN" +], +"enumDescriptions": [ +"Rating not specified.", +"Thumbs up feedback from user.", +"Thumbs down feedback from user." +], +"type": "string" +}, +"ratingReason": { +"$ref": "GoogleCloudDialogflowCxV3AnswerFeedbackRatingReason", +"description": "Optional. In case of thumbs down rating provided, users can optionally provide context about the rating." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3AnswerFeedbackRatingReason": { +"description": "Stores extra information about why users provided thumbs down rating.", +"id": "GoogleCloudDialogflowCxV3AnswerFeedbackRatingReason", +"properties": { +"feedback": { +"description": "Optional. Additional feedback about the rating. This field can be populated without choosing a predefined `reason`.", +"type": "string" +}, +"reasonLabels": { +"description": "Optional. Custom reason labels for thumbs down rating provided by the user. The maximum number of labels allowed is 10 and the maximum length of a single label is 128 characters.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3AudioInput": { +"description": "Represents the natural speech audio to be processed.", +"id": "GoogleCloudDialogflowCxV3AudioInput", +"properties": { +"audio": { +"description": "The natural language speech audio to be processed. A single request can contain up to 2 minutes of speech audio data. The transcribed text cannot contain more than 256 bytes. For non-streaming audio detect intent, both `config` and `audio` must be provided. For streaming audio detect intent, `config` must be provided in the first request and `audio` must be provided in all following requests.", +"format": "byte", +"type": "string" +}, +"config": { +"$ref": "GoogleCloudDialogflowCxV3InputAudioConfig", +"description": "Required. Instructs the speech recognizer how to process the speech audio." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3BargeInConfig": { +"description": "Configuration of the barge-in behavior. Barge-in instructs the API to return a detected utterance at a proper time while the client is playing back the response audio from a previous request. When the client sees the utterance, it should stop the playback and immediately get ready for receiving the responses for the current request. The barge-in handling requires the client to start streaming audio input as soon as it starts playing back the audio from the previous response. The playback is modeled into two phases: * No barge-in phase: which goes first and during which speech detection should not be carried out. * Barge-in phase: which follows the no barge-in phase and during which the API starts speech detection and may inform the client that an utterance has been detected. Note that no-speech event is not expected in this phase. The client provides this configuration in terms of the durations of those two phases. The durations are measured in terms of the audio length from the start of the input audio. No-speech event is a response with END_OF_UTTERANCE without any transcript following up.", +"id": "GoogleCloudDialogflowCxV3BargeInConfig", +"properties": { +"noBargeInDuration": { +"description": "Duration that is not eligible for barge-in at the beginning of the input audio.", +"format": "google-duration", +"type": "string" +}, +"totalDuration": { +"description": "Total duration for the playback at the beginning of the input audio.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3BatchDeleteTestCasesRequest": { +"description": "The request message for TestCases.BatchDeleteTestCases.", +"id": "GoogleCloudDialogflowCxV3BatchDeleteTestCasesRequest", +"properties": { +"names": { +"description": "Required. Format of test case names: `projects//locations//agents//testCases/`.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3BatchRunTestCasesMetadata": { +"description": "Metadata returned for the TestCases.BatchRunTestCases long running operation.", +"id": "GoogleCloudDialogflowCxV3BatchRunTestCasesMetadata", +"properties": { +"errors": { +"description": "The test errors.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3TestError" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3BatchRunTestCasesRequest": { +"description": "The request message for TestCases.BatchRunTestCases.", +"id": "GoogleCloudDialogflowCxV3BatchRunTestCasesRequest", +"properties": { +"environment": { +"description": "Optional. If not set, draft environment is assumed. Format: `projects//locations//agents//environments/`.", +"type": "string" +}, +"testCases": { +"description": "Required. Format: `projects//locations//agents//testCases/`.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3BatchRunTestCasesResponse": { +"description": "The response message for TestCases.BatchRunTestCases.", +"id": "GoogleCloudDialogflowCxV3BatchRunTestCasesResponse", +"properties": { +"results": { +"description": "The test case results. The detailed conversation turns are empty in this response.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3TestCaseResult" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3BoostSpec": { +"description": "Boost specification to boost certain documents. A copy of google.cloud.discoveryengine.v1main.BoostSpec, field documentation is available at https://cloud.google.com/generative-ai-app-builder/docs/reference/rest/v1alpha/BoostSpec", +"id": "GoogleCloudDialogflowCxV3BoostSpec", +"properties": { +"conditionBoostSpecs": { +"description": "Optional. Condition boost specifications. If a document 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": "GoogleCloudDialogflowCxV3BoostSpecConditionBoostSpec" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3BoostSpecConditionBoostSpec": { +"description": "Boost applies to documents which match a condition.", +"id": "GoogleCloudDialogflowCxV3BoostSpecConditionBoostSpec", +"properties": { +"boost": { +"description": "Optional. 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 document a big promotion. However, it does not necessarily mean that the boosted document will be the top result at all times, nor that other documents 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 documents. Setting to -1.0 gives the document a big demotion. However, results that are deeply relevant might still be shown. The document 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" +}, +"boostControlSpec": { +"$ref": "GoogleCloudDialogflowCxV3BoostSpecConditionBoostSpecBoostControlSpec", +"description": "Optional. Complex specification for custom ranking based on customer defined attribute value." +}, +"condition": { +"description": "Optional. An expression which specifies a boost condition. The syntax and supported fields are the same as a filter expression. Examples: * To boost documents with document ID \"doc_1\" or \"doc_2\", and color \"Red\" or \"Blue\": * (id: ANY(\"doc_1\", \"doc_2\")) AND (color: ANY(\"Red\",\"Blue\"))", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3BoostSpecConditionBoostSpecBoostControlSpec": { +"description": "Specification for custom ranking based on customer specified attribute value. It provides more controls for customized ranking than the simple (condition, boost) combination above.", +"id": "GoogleCloudDialogflowCxV3BoostSpecConditionBoostSpecBoostControlSpec", +"properties": { +"attributeType": { +"description": "Optional. The attribute type to be used to determine the boost amount. The attribute value can be derived from the field value of the specified field_name. In the case of numerical it is straightforward i.e. attribute_value = numerical_field_value. In the case of freshness however, attribute_value = (time.now() - datetime_field_value).", +"enum": [ +"ATTRIBUTE_TYPE_UNSPECIFIED", +"NUMERICAL", +"FRESHNESS" +], +"enumDescriptions": [ +"Unspecified AttributeType.", +"The value of the numerical field will be used to dynamically update the boost amount. In this case, the attribute_value (the x value) of the control point will be the actual value of the numerical field for which the boost_amount is specified.", +"For the freshness use case the attribute value will be the duration between the current time and the date in the datetime field specified. The value must be formatted as an XSD `dayTimeDuration` value (a restricted subset of an ISO 8601 duration value). The pattern for this is: `nDnM]`. E.g. `5D`, `3DT12H30M`, `T24H`." +], +"type": "string" +}, +"controlPoints": { +"description": "Optional. The control points used to define the curve. The monotonic function (defined through the interpolation_type above) passes through the control points listed here.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3BoostSpecConditionBoostSpecBoostControlSpecControlPoint" +}, +"type": "array" +}, +"fieldName": { +"description": "Optional. The name of the field whose value will be used to determine the boost amount.", +"type": "string" +}, +"interpolationType": { +"description": "Optional. The interpolation type to be applied to connect the control points listed below.", +"enum": [ +"INTERPOLATION_TYPE_UNSPECIFIED", +"LINEAR" +], +"enumDescriptions": [ +"Interpolation type is unspecified. In this case, it defaults to Linear.", +"Piecewise linear interpolation will be applied." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3BoostSpecConditionBoostSpecBoostControlSpecControlPoint": { +"description": "The control points used to define the curve. The curve defined through these control points can only be monotonically increasing or decreasing(constant values are acceptable).", +"id": "GoogleCloudDialogflowCxV3BoostSpecConditionBoostSpecBoostControlSpecControlPoint", +"properties": { +"attributeValue": { +"description": "Optional. Can be one of: 1. The numerical field value. 2. The duration spec for freshness: The value must be formatted as an XSD `dayTimeDuration` value (a restricted subset of an ISO 8601 duration value). The pattern for this is: `nDnM]`.", +"type": "string" +}, +"boostAmount": { +"description": "Optional. The value between -1 to 1 by which to boost the score if the attribute_value evaluates to the value specified above.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3BoostSpecs": { +"description": "Boost specifications for data stores.", +"id": "GoogleCloudDialogflowCxV3BoostSpecs", +"properties": { +"dataStores": { +"description": "Optional. Data Stores where the boosting configuration is applied. The full names of the referenced data stores. Formats: `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}` `projects/{project}/locations/{location}/dataStores/{data_store}`", +"items": { +"type": "string" +}, +"type": "array" +}, +"spec": { +"description": "Optional. A list of boosting specifications.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3BoostSpec" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3CalculateCoverageResponse": { +"description": "The response message for TestCases.CalculateCoverage.", +"id": "GoogleCloudDialogflowCxV3CalculateCoverageResponse", +"properties": { +"agent": { +"description": "The agent to calculate coverage for. Format: `projects//locations//agents/`.", +"type": "string" +}, +"intentCoverage": { +"$ref": "GoogleCloudDialogflowCxV3IntentCoverage", +"description": "Intent coverage." +}, +"routeGroupCoverage": { +"$ref": "GoogleCloudDialogflowCxV3TransitionRouteGroupCoverage", +"description": "Transition route group coverage." +}, +"transitionCoverage": { +"$ref": "GoogleCloudDialogflowCxV3TransitionCoverage", +"description": "Transition (excluding transition route groups) coverage." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3Changelog": { +"description": "Changelogs represents a change made to a given agent.", +"id": "GoogleCloudDialogflowCxV3Changelog", +"properties": { +"action": { +"description": "The action of the change.", +"type": "string" +}, +"createTime": { +"description": "The timestamp of the change.", +"format": "google-datetime", +"type": "string" +}, +"displayName": { +"description": "The affected resource display name of the change.", +"type": "string" +}, +"languageCode": { +"description": "The affected language code of the change.", +"type": "string" +}, +"name": { +"description": "The unique identifier of the changelog. Format: `projects//locations//agents//changelogs/`.", +"type": "string" +}, +"resource": { +"description": "The affected resource name of the change.", +"type": "string" +}, +"type": { +"description": "The affected resource type.", +"type": "string" +}, +"userEmail": { +"description": "Email address of the authenticated user.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3CompareVersionsRequest": { +"description": "The request message for Versions.CompareVersions.", +"id": "GoogleCloudDialogflowCxV3CompareVersionsRequest", +"properties": { +"languageCode": { +"description": "The language to compare the flow versions for. If not specified, the agent's default language is used. [Many languages](https://cloud.google.com/dialogflow/docs/reference/language) are supported. Note: languages must be enabled in the agent before they can be used.", +"type": "string" +}, +"targetVersion": { +"description": "Required. Name of the target flow version to compare with the base version. Use version ID `0` to indicate the draft version of the specified flow. Format: `projects//locations//agents//flows//versions/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3CompareVersionsResponse": { +"description": "The response message for Versions.CompareVersions.", +"id": "GoogleCloudDialogflowCxV3CompareVersionsResponse", +"properties": { +"baseVersionContentJson": { +"description": "JSON representation of the base version content.", +"type": "string" +}, +"compareTime": { +"description": "The timestamp when the two version compares.", +"format": "google-datetime", +"type": "string" +}, +"targetVersionContentJson": { +"description": "JSON representation of the target version content.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ContinuousTestResult": { +"description": "Represents a result from running a test case in an agent environment.", +"id": "GoogleCloudDialogflowCxV3ContinuousTestResult", +"properties": { +"name": { +"description": "The resource name for the continuous test result. Format: `projects//locations//agents//environments//continuousTestResults/`.", +"type": "string" +}, +"result": { +"description": "The result of this continuous test run, i.e. whether all the tests in this continuous test run pass or not.", +"enum": [ +"AGGREGATED_TEST_RESULT_UNSPECIFIED", +"PASSED", +"FAILED" +], +"enumDescriptions": [ +"Not specified. Should never be used.", +"All the tests passed.", +"At least one test did not pass." +], +"type": "string" +}, +"runTime": { +"description": "Time when the continuous testing run starts.", +"format": "google-datetime", +"type": "string" +}, +"testCaseResults": { +"description": "A list of individual test case results names in this continuous test run.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ConversationSignals": { +"description": "This message is used to hold all the Conversation Signals data, which will be converted to JSON and exported to BigQuery.", +"id": "GoogleCloudDialogflowCxV3ConversationSignals", +"properties": { +"turnSignals": { +"$ref": "GoogleCloudDialogflowCxV3TurnSignals", +"description": "Required. Turn signals for the current turn." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ConversationTurn": { +"description": "One interaction between a human and virtual agent. The human provides some input and the virtual agent provides a response.", +"id": "GoogleCloudDialogflowCxV3ConversationTurn", +"properties": { +"userInput": { +"$ref": "GoogleCloudDialogflowCxV3ConversationTurnUserInput", +"description": "The user input." +}, +"virtualAgentOutput": { +"$ref": "GoogleCloudDialogflowCxV3ConversationTurnVirtualAgentOutput", +"description": "The virtual agent output." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ConversationTurnUserInput": { +"description": "The input from the human user.", +"id": "GoogleCloudDialogflowCxV3ConversationTurnUserInput", +"properties": { +"enableSentimentAnalysis": { +"description": "Whether sentiment analysis is enabled.", +"type": "boolean" +}, +"injectedParameters": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Parameters that need to be injected into the conversation during intent detection.", +"type": "object" +}, +"input": { +"$ref": "GoogleCloudDialogflowCxV3QueryInput", +"description": "Supports text input, event input, dtmf input in the test case." +}, +"isWebhookEnabled": { +"description": "If webhooks should be allowed to trigger in response to the user utterance. Often if parameters are injected, webhooks should not be enabled.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ConversationTurnVirtualAgentOutput": { +"description": "The output from the virtual agent.", +"id": "GoogleCloudDialogflowCxV3ConversationTurnVirtualAgentOutput", +"properties": { +"currentPage": { +"$ref": "GoogleCloudDialogflowCxV3Page", +"description": "The Page on which the utterance was spoken. Only name and displayName will be set." +}, +"diagnosticInfo": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Required. Input only. The diagnostic info output for the turn. Required to calculate the testing coverage.", +"type": "object" +}, +"differences": { +"description": "Output only. If this is part of a result conversation turn, the list of differences between the original run and the replay for this output, if any.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3TestRunDifference" +}, +"readOnly": true, +"type": "array" +}, +"sessionParameters": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "The session parameters available to the bot at this point.", +"type": "object" +}, +"status": { +"$ref": "GoogleRpcStatus", +"description": "Response error from the agent in the test result. If set, other output is empty." +}, +"textResponses": { +"description": "The text responses from the agent for the turn.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3ResponseMessageText" +}, +"type": "array" +}, +"triggeredIntent": { +"$ref": "GoogleCloudDialogflowCxV3Intent", +"description": "The Intent that triggered the response. Only name and displayName will be set." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3CreateVersionOperationMetadata": { +"description": "Metadata associated with the long running operation for Versions.CreateVersion.", +"id": "GoogleCloudDialogflowCxV3CreateVersionOperationMetadata", +"properties": { +"version": { +"description": "Name of the created version. Format: `projects//locations//agents//flows//versions/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3DataStoreConnection": { +"description": "A data store connection. It represents a data store in Discovery Engine and the type of the contents it contains.", +"id": "GoogleCloudDialogflowCxV3DataStoreConnection", +"properties": { +"dataStore": { +"description": "The full name of the referenced data store. Formats: `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}` `projects/{project}/locations/{location}/dataStores/{data_store}`", +"type": "string" +}, +"dataStoreType": { +"description": "The type of the connected data store.", +"enum": [ +"DATA_STORE_TYPE_UNSPECIFIED", +"PUBLIC_WEB", +"UNSTRUCTURED", +"STRUCTURED" +], +"enumDescriptions": [ +"Not specified. This value indicates that the data store type is not specified, so it will not be used during search.", +"A data store that contains public web content.", +"A data store that contains unstructured private data.", +"A data store that contains structured data (for example FAQ)." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3DataStoreConnectionSignals": { +"description": "Data store connection feature output signals. Might be only partially field if processing stop before the final answer. Reasons for this can be, but are not limited to: empty UCS search results, positive RAI check outcome, grounding failure, ...", +"id": "GoogleCloudDialogflowCxV3DataStoreConnectionSignals", +"properties": { +"answer": { +"description": "Optional. The final compiled answer.", +"type": "string" +}, +"answerGenerationModelCallSignals": { +"$ref": "GoogleCloudDialogflowCxV3DataStoreConnectionSignalsAnswerGenerationModelCallSignals", +"description": "Optional. Diagnostic info related to the answer generation model call." +}, +"answerParts": { +"description": "Optional. Answer parts with relevant citations. Concatenation of texts should add up the `answer` (not counting whitespaces).", +"items": { +"$ref": "GoogleCloudDialogflowCxV3DataStoreConnectionSignalsAnswerPart" +}, +"type": "array" +}, +"citedSnippets": { +"description": "Optional. Snippets cited by the answer generation model from the most to least relevant.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3DataStoreConnectionSignalsCitedSnippet" +}, +"type": "array" +}, +"groundingSignals": { +"$ref": "GoogleCloudDialogflowCxV3DataStoreConnectionSignalsGroundingSignals", +"description": "Optional. Grounding signals." +}, +"rewriterModelCallSignals": { +"$ref": "GoogleCloudDialogflowCxV3DataStoreConnectionSignalsRewriterModelCallSignals", +"description": "Optional. Diagnostic info related to the rewriter model call." +}, +"rewrittenQuery": { +"description": "Optional. Rewritten string query used for search.", +"type": "string" +}, +"safetySignals": { +"$ref": "GoogleCloudDialogflowCxV3DataStoreConnectionSignalsSafetySignals", +"description": "Optional. Safety check result." +}, +"searchSnippets": { +"description": "Optional. Search snippets included in the answer generation prompt.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3DataStoreConnectionSignalsSearchSnippet" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3DataStoreConnectionSignalsAnswerGenerationModelCallSignals": { +"description": "Diagnostic info related to the answer generation model call.", +"id": "GoogleCloudDialogflowCxV3DataStoreConnectionSignalsAnswerGenerationModelCallSignals", +"properties": { +"model": { +"description": "Name of the generative model. For example, \"gemini-ultra\", \"gemini-pro\", \"gemini-1.5-flash\" etc. Defaults to \"Other\" if the model is unknown.", +"type": "string" +}, +"modelOutput": { +"description": "Output of the generative model.", +"type": "string" +}, +"renderedPrompt": { +"description": "Prompt as sent to the model.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3DataStoreConnectionSignalsAnswerPart": { +"description": "Answer part with citation.", +"id": "GoogleCloudDialogflowCxV3DataStoreConnectionSignalsAnswerPart", +"properties": { +"supportingIndices": { +"description": "Citations for this answer part. Indices of `search_snippets`.", +"items": { +"format": "int32", +"type": "integer" +}, +"type": "array" +}, +"text": { +"description": "Substring of the answer.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3DataStoreConnectionSignalsCitedSnippet": { +"description": "Snippet cited by the answer generation model.", +"id": "GoogleCloudDialogflowCxV3DataStoreConnectionSignalsCitedSnippet", +"properties": { +"searchSnippet": { +"$ref": "GoogleCloudDialogflowCxV3DataStoreConnectionSignalsSearchSnippet", +"description": "Details of the snippet." +}, +"snippetIndex": { +"description": "Index of the snippet in `search_snippets` field.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3DataStoreConnectionSignalsGroundingSignals": { +"description": "Grounding signals.", +"id": "GoogleCloudDialogflowCxV3DataStoreConnectionSignalsGroundingSignals", +"properties": { +"decision": { +"description": "Represents the decision of the grounding check.", +"enum": [ +"GROUNDING_DECISION_UNSPECIFIED", +"ACCEPTED_BY_GROUNDING", +"REJECTED_BY_GROUNDING" +], +"enumDescriptions": [ +"Decision not specified.", +"Grounding have accepted the answer.", +"Grounding have rejected the answer." +], +"type": "string" +}, +"score": { +"description": "Grounding score bucket setting.", +"enum": [ +"GROUNDING_SCORE_BUCKET_UNSPECIFIED", +"VERY_LOW", +"LOW", +"MEDIUM", +"HIGH", +"VERY_HIGH" +], +"enumDescriptions": [ +"Score not specified.", +"We have very low confidence that the answer is grounded.", +"We have low confidence that the answer is grounded.", +"We have medium confidence that the answer is grounded.", +"We have high confidence that the answer is grounded.", +"We have very high confidence that the answer is grounded." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3DataStoreConnectionSignalsRewriterModelCallSignals": { +"description": "Diagnostic info related to the rewriter model call.", +"id": "GoogleCloudDialogflowCxV3DataStoreConnectionSignalsRewriterModelCallSignals", +"properties": { +"model": { +"description": "Name of the generative model. For example, \"gemini-ultra\", \"gemini-pro\", \"gemini-1.5-flash\" etc. Defaults to \"Other\" if the model is unknown.", +"type": "string" +}, +"modelOutput": { +"description": "Output of the generative model.", +"type": "string" +}, +"renderedPrompt": { +"description": "Prompt as sent to the model.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3DataStoreConnectionSignalsSafetySignals": { +"description": "Safety check results.", +"id": "GoogleCloudDialogflowCxV3DataStoreConnectionSignalsSafetySignals", +"properties": { +"bannedPhraseMatch": { +"description": "Specifies banned phrase match subject.", +"enum": [ +"BANNED_PHRASE_MATCH_UNSPECIFIED", +"BANNED_PHRASE_MATCH_NONE", +"BANNED_PHRASE_MATCH_QUERY", +"BANNED_PHRASE_MATCH_RESPONSE" +], +"enumDescriptions": [ +"No banned phrase check was executed.", +"All banned phrase checks led to no match.", +"A banned phrase matched the query.", +"A banned phrase matched the response." +], +"type": "string" +}, +"decision": { +"description": "Safety decision.", +"enum": [ +"SAFETY_DECISION_UNSPECIFIED", +"ACCEPTED_BY_SAFETY_CHECK", +"REJECTED_BY_SAFETY_CHECK" +], +"enumDescriptions": [ +"Decision not specified.", +"No manual or automatic safety check fired.", +"One ore more safety checks fired." +], +"type": "string" +}, +"matchedBannedPhrase": { +"description": "The matched banned phrase if there was a match.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3DataStoreConnectionSignalsSearchSnippet": { +"description": "Search snippet details.", +"id": "GoogleCloudDialogflowCxV3DataStoreConnectionSignalsSearchSnippet", +"properties": { +"documentTitle": { +"description": "Title of the enclosing document.", +"type": "string" +}, +"documentUri": { +"description": "Uri for the document. Present if specified for the document.", +"type": "string" +}, +"text": { +"description": "Text included in the prompt.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3DeployFlowMetadata": { +"description": "Metadata returned for the Environments.DeployFlow long running operation.", +"id": "GoogleCloudDialogflowCxV3DeployFlowMetadata", +"properties": { +"testErrors": { +"description": "Errors of running deployment tests.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3TestError" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3DeployFlowRequest": { +"description": "The request message for Environments.DeployFlow.", +"id": "GoogleCloudDialogflowCxV3DeployFlowRequest", +"properties": { +"flowVersion": { +"description": "Required. The flow version to deploy. Format: `projects//locations//agents//flows//versions/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3DeployFlowResponse": { +"description": "The response message for Environments.DeployFlow.", +"id": "GoogleCloudDialogflowCxV3DeployFlowResponse", +"properties": { +"deployment": { +"description": "The name of the flow version Deployment. Format: `projects//locations//agents//environments//deployments/`.", +"type": "string" +}, +"environment": { +"$ref": "GoogleCloudDialogflowCxV3Environment", +"description": "The updated environment where the flow is deployed." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3Deployment": { +"description": "Represents a deployment in an environment. A deployment happens when a flow version configured to be active in the environment. You can configure running pre-deployment steps, e.g. running validation test cases, experiment auto-rollout, etc.", +"id": "GoogleCloudDialogflowCxV3Deployment", +"properties": { +"endTime": { +"description": "End time of this deployment.", +"format": "google-datetime", +"type": "string" +}, +"flowVersion": { +"description": "The name of the flow version for this deployment. Format: projects//locations//agents//flows//versions/.", +"type": "string" +}, +"name": { +"description": "The name of the deployment. Format: projects//locations//agents//environments//deployments/.", +"type": "string" +}, +"result": { +"$ref": "GoogleCloudDialogflowCxV3DeploymentResult", +"description": "Result of the deployment." +}, +"startTime": { +"description": "Start time of this deployment.", +"format": "google-datetime", +"type": "string" +}, +"state": { +"description": "The current state of the deployment.", +"enum": [ +"STATE_UNSPECIFIED", +"RUNNING", +"SUCCEEDED", +"FAILED" +], +"enumDescriptions": [ +"State unspecified.", +"The deployment is running.", +"The deployment succeeded.", +"The deployment failed." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3DeploymentResult": { +"description": "Result of the deployment.", +"id": "GoogleCloudDialogflowCxV3DeploymentResult", +"properties": { +"deploymentTestResults": { +"description": "Results of test cases running before the deployment. Format: `projects//locations//agents//testCases//results/`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"experiment": { +"description": "The name of the experiment triggered by this deployment. Format: projects//locations//agents//environments//experiments/.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3DetectIntentRequest": { +"description": "The request to detect user's intent.", +"id": "GoogleCloudDialogflowCxV3DetectIntentRequest", +"properties": { +"outputAudioConfig": { +"$ref": "GoogleCloudDialogflowCxV3OutputAudioConfig", +"description": "Instructs the speech synthesizer how to generate the output audio." +}, +"queryInput": { +"$ref": "GoogleCloudDialogflowCxV3QueryInput", +"description": "Required. The input specification." +}, +"queryParams": { +"$ref": "GoogleCloudDialogflowCxV3QueryParameters", +"description": "The parameters of this query." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3DetectIntentResponse": { +"description": "The message returned from the DetectIntent method.", +"id": "GoogleCloudDialogflowCxV3DetectIntentResponse", +"properties": { +"allowCancellation": { +"description": "Indicates whether the partial response can be cancelled when a later response arrives. e.g. if the agent specified some music as partial response, it can be cancelled.", +"type": "boolean" +}, +"outputAudio": { +"description": "The audio data bytes encoded as specified in the request. Note: The output audio is generated based on the values of default platform text responses found in the `query_result.response_messages` field. If multiple default text responses exist, they will be concatenated when generating audio. If no default platform text responses exist, the generated audio content will be empty. In some scenarios, multiple output audio fields may be present in the response structure. In these cases, only the top-most-level audio output has content.", +"format": "byte", +"type": "string" +}, +"outputAudioConfig": { +"$ref": "GoogleCloudDialogflowCxV3OutputAudioConfig", +"description": "The config used by the speech synthesizer to generate the output audio." +}, +"queryResult": { +"$ref": "GoogleCloudDialogflowCxV3QueryResult", +"description": "The result of the conversational query." +}, +"responseId": { +"description": "Output only. The unique identifier of the response. It can be used to locate a response in the training example set or for reporting issues.", +"type": "string" +}, +"responseType": { +"description": "Response type.", +"enum": [ +"RESPONSE_TYPE_UNSPECIFIED", +"PARTIAL", +"FINAL" +], +"enumDescriptions": [ +"Not specified. This should never happen.", +"Partial response. e.g. Aggregated responses in a Fulfillment that enables `return_partial_response` can be returned as partial response. WARNING: partial response is not eligible for barge-in.", +"Final response." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3DtmfInput": { +"description": "Represents the input for dtmf event.", +"id": "GoogleCloudDialogflowCxV3DtmfInput", +"properties": { +"digits": { +"description": "The dtmf digits.", +"type": "string" +}, +"finishDigit": { +"description": "The finish digit (if any).", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3EntityType": { +"description": "Entities are extracted from user input and represent parameters that are meaningful to your application. For example, a date range, a proper name such as a geographic location or landmark, and so on. Entities represent actionable data for your application. When you define an entity, you can also include synonyms that all map to that entity. For example, \"soft drink\", \"soda\", \"pop\", and so on. There are three types of entities: * **System** - entities that are defined by the Dialogflow API for common data types such as date, time, currency, and so on. A system entity is represented by the `EntityType` type. * **Custom** - entities that are defined by you that represent actionable data that is meaningful to your application. For example, you could define a `pizza.sauce` entity for red or white pizza sauce, a `pizza.cheese` entity for the different types of cheese on a pizza, a `pizza.topping` entity for different toppings, and so on. A custom entity is represented by the `EntityType` type. * **User** - entities that are built for an individual user such as favorites, preferences, playlists, and so on. A user entity is represented by the SessionEntityType type. For more information about entity types, see the [Dialogflow documentation](https://cloud.google.com/dialogflow/docs/entities-overview).", +"id": "GoogleCloudDialogflowCxV3EntityType", +"properties": { +"autoExpansionMode": { +"description": "Indicates whether the entity type can be automatically expanded.", +"enum": [ +"AUTO_EXPANSION_MODE_UNSPECIFIED", +"AUTO_EXPANSION_MODE_DEFAULT" +], +"enumDescriptions": [ +"Auto expansion disabled for the entity.", +"Allows an agent to recognize values that have not been explicitly listed in the entity." +], +"type": "string" +}, +"displayName": { +"description": "Required. The human-readable name of the entity type, unique within the agent.", +"type": "string" +}, +"enableFuzzyExtraction": { +"description": "Enables fuzzy entity extraction during classification.", +"type": "boolean" +}, +"entities": { +"description": "The collection of entity entries associated with the entity type.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3EntityTypeEntity" +}, +"type": "array" +}, +"excludedPhrases": { +"description": "Collection of exceptional words and phrases that shouldn't be matched. For example, if you have a size entity type with entry `giant`(an adjective), you might consider adding `giants`(a noun) as an exclusion. If the kind of entity type is `KIND_MAP`, then the phrases specified by entities and excluded phrases should be mutually exclusive.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3EntityTypeExcludedPhrase" +}, +"type": "array" +}, +"kind": { +"description": "Required. Indicates the kind of entity type.", +"enum": [ +"KIND_UNSPECIFIED", +"KIND_MAP", +"KIND_LIST", +"KIND_REGEXP" +], +"enumDescriptions": [ +"Not specified. This value should be never used.", +"Map entity types allow mapping of a group of synonyms to a canonical value.", +"List entity types contain a set of entries that do not map to canonical values. However, list entity types can contain references to other entity types (with or without aliases).", +"Regexp entity types allow to specify regular expressions in entries values." +], +"type": "string" +}, +"name": { +"description": "The unique identifier of the entity type. Required for EntityTypes.UpdateEntityType. Format: `projects//locations//agents//entityTypes/`.", +"type": "string" +}, +"redact": { +"description": "Indicates whether parameters of the entity type should be redacted in log. If redaction is enabled, page parameters and intent parameters referring to the entity type will be replaced by parameter name when logging.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3EntityTypeEntity": { +"description": "An **entity entry** for an associated entity type.", +"id": "GoogleCloudDialogflowCxV3EntityTypeEntity", +"properties": { +"synonyms": { +"description": "Required. A collection of value synonyms. For example, if the entity type is *vegetable*, and `value` is *scallions*, a synonym could be *green onions*. For `KIND_LIST` entity types: * This collection must contain exactly one synonym equal to `value`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"value": { +"description": "Required. The primary value associated with this entity entry. For example, if the entity type is *vegetable*, the value could be *scallions*. For `KIND_MAP` entity types: * A canonical value to be used in place of synonyms. For `KIND_LIST` entity types: * A string that can contain references to other entity types (with or without aliases).", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3EntityTypeExcludedPhrase": { +"description": "An excluded entity phrase that should not be matched.", +"id": "GoogleCloudDialogflowCxV3EntityTypeExcludedPhrase", +"properties": { +"value": { +"description": "Required. The word or phrase to be excluded.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3Environment": { +"description": "Represents an environment for an agent. You can create multiple versions of your agent and publish them to separate environments. When you edit an agent, you are editing the draft agent. At any point, you can save the draft agent as an agent version, which is an immutable snapshot of your agent. When you save the draft agent, it is published to the default environment. When you create agent versions, you can publish them to custom environments. You can create a variety of custom environments for testing, development, production, etc.", +"id": "GoogleCloudDialogflowCxV3Environment", +"properties": { +"description": { +"description": "The human-readable description of the environment. The maximum length is 500 characters. If exceeded, the request is rejected.", +"type": "string" +}, +"displayName": { +"description": "Required. The human-readable name of the environment (unique in an agent). Limit of 64 characters.", +"type": "string" +}, +"name": { +"description": "The name of the environment. Format: `projects//locations//agents//environments/`.", +"type": "string" +}, +"testCasesConfig": { +"$ref": "GoogleCloudDialogflowCxV3EnvironmentTestCasesConfig", +"description": "The test cases config for continuous tests of this environment." +}, +"updateTime": { +"description": "Output only. Update time of this environment.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"versionConfigs": { +"description": "A list of configurations for flow versions. You should include version configs for all flows that are reachable from `Start Flow` in the agent. Otherwise, an error will be returned.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3EnvironmentVersionConfig" +}, +"type": "array" +}, +"webhookConfig": { +"$ref": "GoogleCloudDialogflowCxV3EnvironmentWebhookConfig", +"description": "The webhook configuration for this environment." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3EnvironmentTestCasesConfig": { +"description": "The configuration for continuous tests.", +"id": "GoogleCloudDialogflowCxV3EnvironmentTestCasesConfig", +"properties": { +"enableContinuousRun": { +"description": "Whether to run test cases in TestCasesConfig.test_cases periodically. Default false. If set to true, run once a day.", +"type": "boolean" +}, +"enablePredeploymentRun": { +"description": "Whether to run test cases in TestCasesConfig.test_cases before deploying a flow version to the environment. Default false.", +"type": "boolean" +}, +"testCases": { +"description": "A list of test case names to run. They should be under the same agent. Format of each test case name: `projects//locations//agents//testCases/`", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3EnvironmentVersionConfig": { +"description": "Configuration for the version.", +"id": "GoogleCloudDialogflowCxV3EnvironmentVersionConfig", +"properties": { +"version": { +"description": "Required. Both flow and playbook versions are supported. Format for flow version: projects//locations//agents//flows//versions/. Format for playbook version: projects//locations//agents//playbooks//versions/.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3EnvironmentWebhookConfig": { +"description": "Configuration for webhooks.", +"id": "GoogleCloudDialogflowCxV3EnvironmentWebhookConfig", +"properties": { +"webhookOverrides": { +"description": "The list of webhooks to override for the agent environment. The webhook must exist in the agent. You can override fields in `generic_web_service` and `service_directory`.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3Webhook" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3EventHandler": { +"description": "An event handler specifies an event that can be handled during a session. When the specified event happens, the following actions are taken in order: * If there is a `trigger_fulfillment` associated with the event, it will be called. * If there is a `target_page` associated with the event, the session will transition into the specified page. * If there is a `target_flow` associated with the event, the session will transition into the specified flow.", +"id": "GoogleCloudDialogflowCxV3EventHandler", +"properties": { +"event": { +"description": "Required. The name of the event to handle.", +"type": "string" +}, +"name": { +"description": "Output only. The unique identifier of this event handler.", +"readOnly": true, +"type": "string" +}, +"targetFlow": { +"description": "The target flow to transition to. Format: `projects//locations//agents//flows/`.", +"type": "string" +}, +"targetPage": { +"description": "The target page to transition to. Format: `projects//locations//agents//flows//pages/`.", +"type": "string" +}, +"targetPlaybook": { +"description": "The target playbook to transition to. Format: `projects//locations//agents//playbooks/`.", +"type": "string" +}, +"triggerFulfillment": { +"$ref": "GoogleCloudDialogflowCxV3Fulfillment", +"description": "The fulfillment to call when the event occurs. Handling webhook errors with a fulfillment enabled with webhook could cause infinite loop. It is invalid to specify such fulfillment for a handler handling webhooks." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3EventInput": { +"description": "Represents the event to trigger.", +"id": "GoogleCloudDialogflowCxV3EventInput", +"properties": { +"event": { +"description": "Name of the event.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3Experiment": { +"description": "Represents an experiment in an environment.", +"id": "GoogleCloudDialogflowCxV3Experiment", +"properties": { +"createTime": { +"description": "Creation time of this experiment.", +"format": "google-datetime", +"type": "string" +}, +"definition": { +"$ref": "GoogleCloudDialogflowCxV3ExperimentDefinition", +"description": "The definition of the experiment." +}, +"description": { +"description": "The human-readable description of the experiment.", +"type": "string" +}, +"displayName": { +"description": "Required. The human-readable name of the experiment (unique in an environment). Limit of 64 characters.", +"type": "string" +}, +"endTime": { +"description": "End time of this experiment.", +"format": "google-datetime", +"type": "string" +}, +"experimentLength": { +"description": "Maximum number of days to run the experiment/rollout. If auto-rollout is not enabled, default value and maximum will be 30 days. If auto-rollout is enabled, default value and maximum will be 6 days.", +"format": "google-duration", +"type": "string" +}, +"lastUpdateTime": { +"description": "Last update time of this experiment.", +"format": "google-datetime", +"type": "string" +}, +"name": { +"description": "The name of the experiment. Format: projects//locations//agents//environments//experiments/.", +"type": "string" +}, +"result": { +"$ref": "GoogleCloudDialogflowCxV3ExperimentResult", +"description": "Inference result of the experiment." +}, +"rolloutConfig": { +"$ref": "GoogleCloudDialogflowCxV3RolloutConfig", +"description": "The configuration for auto rollout. If set, there should be exactly two variants in the experiment (control variant being the default version of the flow), the traffic allocation for the non-control variant will gradually increase to 100% when conditions are met, and eventually replace the control variant to become the default version of the flow." +}, +"rolloutFailureReason": { +"description": "The reason why rollout has failed. Should only be set when state is ROLLOUT_FAILED.", +"type": "string" +}, +"rolloutState": { +"$ref": "GoogleCloudDialogflowCxV3RolloutState", +"description": "State of the auto rollout process." +}, +"startTime": { +"description": "Start time of this experiment.", +"format": "google-datetime", +"type": "string" +}, +"state": { +"description": "The current state of the experiment. Transition triggered by Experiments.StartExperiment: DRAFT->RUNNING. Transition triggered by Experiments.CancelExperiment: DRAFT->DONE or RUNNING->DONE.", +"enum": [ +"STATE_UNSPECIFIED", +"DRAFT", +"RUNNING", +"DONE", +"ROLLOUT_FAILED" +], +"enumDescriptions": [ +"State unspecified.", +"The experiment is created but not started yet.", +"The experiment is running.", +"The experiment is done.", +"The experiment with auto-rollout enabled has failed." +], +"type": "string" +}, +"variantsHistory": { +"description": "The history of updates to the experiment variants.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3VariantsHistory" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ExperimentDefinition": { +"description": "Definition of the experiment.", +"id": "GoogleCloudDialogflowCxV3ExperimentDefinition", +"properties": { +"condition": { +"description": "The condition defines which subset of sessions are selected for this experiment. If not specified, all sessions are eligible. E.g. \"query_input.language_code=en\" See the [conditions reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition).", +"type": "string" +}, +"versionVariants": { +"$ref": "GoogleCloudDialogflowCxV3VersionVariants", +"description": "The flow versions as the variants of this experiment." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ExperimentResult": { +"description": "The inference result which includes an objective metric to optimize and the confidence interval.", +"id": "GoogleCloudDialogflowCxV3ExperimentResult", +"properties": { +"lastUpdateTime": { +"description": "The last time the experiment's stats data was updated. Will have default value if stats have never been computed for this experiment.", +"format": "google-datetime", +"type": "string" +}, +"versionMetrics": { +"description": "Version variants and metrics.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3ExperimentResultVersionMetrics" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ExperimentResultConfidenceInterval": { +"description": "A confidence interval is a range of possible values for the experiment objective you are trying to measure.", +"id": "GoogleCloudDialogflowCxV3ExperimentResultConfidenceInterval", +"properties": { +"confidenceLevel": { +"description": "The confidence level used to construct the interval, i.e. there is X% chance that the true value is within this interval.", +"format": "double", +"type": "number" +}, +"lowerBound": { +"description": "Lower bound of the interval.", +"format": "double", +"type": "number" +}, +"ratio": { +"description": "The percent change between an experiment metric's value and the value for its control.", +"format": "double", +"type": "number" +}, +"upperBound": { +"description": "Upper bound of the interval.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ExperimentResultMetric": { +"description": "Metric and corresponding confidence intervals.", +"id": "GoogleCloudDialogflowCxV3ExperimentResultMetric", +"properties": { +"confidenceInterval": { +"$ref": "GoogleCloudDialogflowCxV3ExperimentResultConfidenceInterval", +"description": "The probability that the treatment is better than all other treatments in the experiment" +}, +"count": { +"description": "Count value of a metric.", +"format": "double", +"type": "number" +}, +"countType": { +"description": "Count-based metric type. Only one of type or count_type is specified in each Metric.", +"enum": [ +"COUNT_TYPE_UNSPECIFIED", +"TOTAL_NO_MATCH_COUNT", +"TOTAL_TURN_COUNT", +"AVERAGE_TURN_COUNT" +], +"enumDescriptions": [ +"Count type unspecified.", +"Total number of occurrences of a 'NO_MATCH'.", +"Total number of turn counts.", +"Average turn count in a session." +], +"type": "string" +}, +"ratio": { +"description": "Ratio value of a metric.", +"format": "double", +"type": "number" +}, +"type": { +"description": "Ratio-based metric type. Only one of type or count_type is specified in each Metric.", +"enum": [ +"METRIC_UNSPECIFIED", +"CONTAINED_SESSION_NO_CALLBACK_RATE", +"LIVE_AGENT_HANDOFF_RATE", +"CALLBACK_SESSION_RATE", +"ABANDONED_SESSION_RATE", +"SESSION_END_RATE" +], +"enumDescriptions": [ +"Metric unspecified.", +"Percentage of contained sessions without user calling back in 24 hours.", +"Percentage of sessions that were handed to a human agent.", +"Percentage of sessions with the same user calling back.", +"Percentage of sessions where user hung up.", +"Percentage of sessions reached Dialogflow 'END_PAGE' or 'END_SESSION'." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ExperimentResultVersionMetrics": { +"description": "Version variant and associated metrics.", +"id": "GoogleCloudDialogflowCxV3ExperimentResultVersionMetrics", +"properties": { +"metrics": { +"description": "The metrics and corresponding confidence intervals in the inference result.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3ExperimentResultMetric" +}, +"type": "array" +}, +"sessionCount": { +"description": "Number of sessions that were allocated to this version.", +"format": "int32", +"type": "integer" +}, +"version": { +"description": "The name of the flow Version. Format: `projects//locations//agents//flows//versions/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ExportAgentRequest": { +"description": "The request message for Agents.ExportAgent.", +"id": "GoogleCloudDialogflowCxV3ExportAgentRequest", +"properties": { +"agentUri": { +"description": "Optional. The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI to export the agent to. The format of this URI must be `gs:///`. If left unspecified, the serialized agent is returned inline. Dialogflow performs a write operation for the Cloud Storage object on the caller's behalf, so your request authentication must have write permissions for the object. For more information, see [Dialogflow access control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage).", +"type": "string" +}, +"dataFormat": { +"description": "Optional. The data format of the exported agent. If not specified, `BLOB` is assumed.", +"enum": [ +"DATA_FORMAT_UNSPECIFIED", +"BLOB", +"JSON_PACKAGE" +], +"enumDescriptions": [ +"Unspecified format.", +"Agent content will be exported as raw bytes.", +"Agent content will be exported in JSON Package format." +], +"type": "string" +}, +"environment": { +"description": "Optional. Environment name. If not set, draft environment is assumed. Format: `projects//locations//agents//environments/`.", +"type": "string" +}, +"gitDestination": { +"$ref": "GoogleCloudDialogflowCxV3ExportAgentRequestGitDestination", +"description": "Optional. The Git branch to export the agent to." +}, +"includeBigqueryExportSettings": { +"description": "Optional. Whether to include BigQuery Export setting.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ExportAgentRequestGitDestination": { +"description": "Settings for exporting to a git branch.", +"id": "GoogleCloudDialogflowCxV3ExportAgentRequestGitDestination", +"properties": { +"commitMessage": { +"description": "Commit message for the git push.", +"type": "string" +}, +"trackingBranch": { +"description": "Tracking branch for the git push.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ExportAgentResponse": { +"description": "The response message for Agents.ExportAgent.", +"id": "GoogleCloudDialogflowCxV3ExportAgentResponse", +"properties": { +"agentContent": { +"description": "Uncompressed raw byte content for agent. This field is populated if none of `agent_uri` and `git_destination` are specified in ExportAgentRequest.", +"format": "byte", +"type": "string" +}, +"agentUri": { +"description": "The URI to a file containing the exported agent. This field is populated if `agent_uri` is specified in ExportAgentRequest.", +"type": "string" +}, +"commitSha": { +"description": "Commit SHA of the git push. This field is populated if `git_destination` is specified in ExportAgentRequest.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ExportEntityTypesMetadata": { +"description": "Metadata returned for the EntityTypes.ExportEntityTypes long running operation.", +"id": "GoogleCloudDialogflowCxV3ExportEntityTypesMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ExportEntityTypesRequest": { +"description": "The request message for EntityTypes.ExportEntityTypes.", +"id": "GoogleCloudDialogflowCxV3ExportEntityTypesRequest", +"properties": { +"dataFormat": { +"description": "Optional. The data format of the exported entity types. If not specified, `BLOB` is assumed.", +"enum": [ +"DATA_FORMAT_UNSPECIFIED", +"BLOB", +"JSON_PACKAGE" +], +"enumDescriptions": [ +"Unspecified format. Treated as `BLOB`.", +"EntityTypes will be exported as raw bytes.", +"EntityTypes will be exported in JSON Package format." +], +"type": "string" +}, +"entityTypes": { +"description": "Required. The name of the entity types to export. Format: `projects//locations//agents//entityTypes/`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"entityTypesContentInline": { +"description": "Optional. The option to return the serialized entity types inline.", +"type": "boolean" +}, +"entityTypesUri": { +"description": "Optional. The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI to export the entity types to. The format of this URI must be `gs:///`. Dialogflow performs a write operation for the Cloud Storage object on the caller's behalf, so your request authentication must have write permissions for the object. For more information, see [Dialogflow access control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage).", +"type": "string" +}, +"languageCode": { +"description": "Optional. The language to retrieve the entity type for. The following fields are language dependent: * `EntityType.entities.value` * `EntityType.entities.synonyms` * `EntityType.excluded_phrases.value` If not specified, all language dependent fields will be retrieved. [Many languages](https://cloud.google.com/dialogflow/docs/reference/language) are supported. Note: languages must be enabled in the agent before they can be used.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ExportEntityTypesResponse": { +"description": "The response message for EntityTypes.ExportEntityTypes.", +"id": "GoogleCloudDialogflowCxV3ExportEntityTypesResponse", +"properties": { +"entityTypesContent": { +"$ref": "GoogleCloudDialogflowCxV3InlineDestination", +"description": "Uncompressed byte content for entity types. This field is populated only if `entity_types_content_inline` is set to true in ExportEntityTypesRequest." +}, +"entityTypesUri": { +"description": "The URI to a file containing the exported entity types. This field is populated only if `entity_types_uri` is specified in ExportEntityTypesRequest.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ExportFlowRequest": { +"description": "The request message for Flows.ExportFlow.", +"id": "GoogleCloudDialogflowCxV3ExportFlowRequest", +"properties": { +"flowUri": { +"description": "Optional. The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI to export the flow to. The format of this URI must be `gs:///`. If left unspecified, the serialized flow is returned inline. Dialogflow performs a write operation for the Cloud Storage object on the caller's behalf, so your request authentication must have write permissions for the object. For more information, see [Dialogflow access control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage).", +"type": "string" +}, +"includeReferencedFlows": { +"description": "Optional. Whether to export flows referenced by the specified flow.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ExportFlowResponse": { +"description": "The response message for Flows.ExportFlow.", +"id": "GoogleCloudDialogflowCxV3ExportFlowResponse", +"properties": { +"flowContent": { +"description": "Uncompressed raw byte content for flow.", +"format": "byte", +"type": "string" +}, +"flowUri": { +"description": "The URI to a file containing the exported flow. This field is populated only if `flow_uri` is specified in ExportFlowRequest.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ExportIntentsMetadata": { +"description": "Metadata returned for the Intents.ExportIntents long running operation.", +"id": "GoogleCloudDialogflowCxV3ExportIntentsMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ExportIntentsRequest": { +"description": "The request message for Intents.ExportIntents.", +"id": "GoogleCloudDialogflowCxV3ExportIntentsRequest", +"properties": { +"dataFormat": { +"description": "Optional. The data format of the exported intents. If not specified, `BLOB` is assumed.", +"enum": [ +"DATA_FORMAT_UNSPECIFIED", +"BLOB", +"JSON", +"CSV" +], +"enumDescriptions": [ +"Unspecified format. Treated as `BLOB`.", +"Intents will be exported as raw bytes.", +"Intents will be exported in JSON format.", +"Intents will be exported in CSV format." +], +"type": "string" +}, +"intents": { +"description": "Required. The name of the intents to export. Format: `projects//locations//agents//intents/`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"intentsContentInline": { +"description": "Optional. The option to return the serialized intents inline.", +"type": "boolean" +}, +"intentsUri": { +"description": "Optional. The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI to export the intents to. The format of this URI must be `gs:///`. Dialogflow performs a write operation for the Cloud Storage object on the caller's behalf, so your request authentication must have write permissions for the object. For more information, see [Dialogflow access control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage).", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ExportIntentsResponse": { +"description": "The response message for Intents.ExportIntents.", +"id": "GoogleCloudDialogflowCxV3ExportIntentsResponse", +"properties": { +"intentsContent": { +"$ref": "GoogleCloudDialogflowCxV3InlineDestination", +"description": "Uncompressed byte content for intents. This field is populated only if `intents_content_inline` is set to true in ExportIntentsRequest." +}, +"intentsUri": { +"description": "The URI to a file containing the exported intents. This field is populated only if `intents_uri` is specified in ExportIntentsRequest.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ExportTestCasesMetadata": { +"description": "Metadata returned for the TestCases.ExportTestCases long running operation. This message currently has no fields.", +"id": "GoogleCloudDialogflowCxV3ExportTestCasesMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ExportTestCasesRequest": { +"description": "The request message for TestCases.ExportTestCases.", +"id": "GoogleCloudDialogflowCxV3ExportTestCasesRequest", +"properties": { +"dataFormat": { +"description": "The data format of the exported test cases. If not specified, `BLOB` is assumed.", +"enum": [ +"DATA_FORMAT_UNSPECIFIED", +"BLOB", +"JSON" +], +"enumDescriptions": [ +"Unspecified format.", +"Raw bytes.", +"JSON format." +], +"type": "string" +}, +"filter": { +"description": "The filter expression used to filter exported test cases, see [API Filtering](https://aip.dev/160). The expression is case insensitive and supports the following syntax: name = [OR name = ] ... For example: * \"name = t1 OR name = t2\" matches the test case with the exact resource name \"t1\" or \"t2\".", +"type": "string" +}, +"gcsUri": { +"description": "The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI to export the test cases to. The format of this URI must be `gs:///`. If unspecified, the serialized test cases is returned inline. Dialogflow performs a write operation for the Cloud Storage object on the caller's behalf, so your request authentication must have write permissions for the object. For more information, see [Dialogflow access control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage).", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ExportTestCasesResponse": { +"description": "The response message for TestCases.ExportTestCases.", +"id": "GoogleCloudDialogflowCxV3ExportTestCasesResponse", +"properties": { +"content": { +"description": "Uncompressed raw byte content for test cases.", +"format": "byte", +"type": "string" +}, +"gcsUri": { +"description": "The URI to a file containing the exported test cases. This field is populated only if `gcs_uri` is specified in ExportTestCasesRequest.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3FilterSpecs": { +"description": "Filter specifications for data stores.", +"id": "GoogleCloudDialogflowCxV3FilterSpecs", +"properties": { +"dataStores": { +"description": "Optional. Data Stores where the boosting configuration is applied. The full names of the referenced data stores. Formats: `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}` `projects/{project}/locations/{location}/dataStores/{data_store}`", +"items": { +"type": "string" +}, +"type": "array" +}, +"filter": { +"description": "Optional. The filter expression to be applied. Expression syntax is documented at https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata#filter-expression-syntax", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3Flow": { +"description": "Flows represents the conversation flows when you build your chatbot agent. A flow consists of many pages connected by the transition routes. Conversations always start with the built-in Start Flow (with an all-0 ID). Transition routes can direct the conversation session from the current flow (parent flow) to another flow (sub flow). When the sub flow is finished, Dialogflow will bring the session back to the parent flow, where the sub flow is started. Usually, when a transition route is followed by a matched intent, the intent will be \"consumed\". This means the intent won't activate more transition routes. However, when the followed transition route moves the conversation session into a different flow, the matched intent can be carried over and to be consumed in the target flow.", +"id": "GoogleCloudDialogflowCxV3Flow", +"properties": { +"advancedSettings": { +"$ref": "GoogleCloudDialogflowCxV3AdvancedSettings", +"description": "Hierarchical advanced settings for this flow. The settings exposed at the lower level overrides the settings exposed at the higher level." +}, +"description": { +"description": "The description of the flow. The maximum length is 500 characters. If exceeded, the request is rejected.", +"type": "string" +}, +"displayName": { +"description": "Required. The human-readable name of the flow.", +"type": "string" +}, +"eventHandlers": { +"description": "A flow's event handlers serve two purposes: * They are responsible for handling events (e.g. no match, webhook errors) in the flow. * They are inherited by every page's event handlers, which can be used to handle common events regardless of the current page. Event handlers defined in the page have higher priority than those defined in the flow. Unlike transition_routes, these handlers are evaluated on a first-match basis. The first one that matches the event get executed, with the rest being ignored.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3EventHandler" +}, +"type": "array" +}, +"knowledgeConnectorSettings": { +"$ref": "GoogleCloudDialogflowCxV3KnowledgeConnectorSettings", +"description": "Optional. Knowledge connector configuration." +}, +"locked": { +"description": "Indicates whether the flow is locked for changes. If the flow is locked, modifications to the flow will be rejected.", +"type": "boolean" +}, +"multiLanguageSettings": { +"$ref": "GoogleCloudDialogflowCxV3FlowMultiLanguageSettings", +"description": "Optional. Multi-lingual agent settings for this flow." +}, +"name": { +"description": "The unique identifier of the flow. Format: `projects//locations//agents//flows/`.", +"type": "string" +}, +"nluSettings": { +"$ref": "GoogleCloudDialogflowCxV3NluSettings", +"description": "NLU related settings of the flow." +}, +"transitionRouteGroups": { +"description": "A flow's transition route group serve two purposes: * They are responsible for matching the user's first utterances in the flow. * They are inherited by every page's transition route groups. Transition route groups defined in the page have higher priority than those defined in the flow. Format: `projects//locations//agents//flows//transitionRouteGroups/` or `projects//locations//agents//transitionRouteGroups/` for agent-level groups.", +"items": { +"type": "string" +}, +"type": "array" +}, +"transitionRoutes": { +"description": "A flow's transition routes serve two purposes: * They are responsible for matching the user's first utterances in the flow. * They are inherited by every page's transition routes and can support use cases such as the user saying \"help\" or \"can I talk to a human?\", which can be handled in a common way regardless of the current page. Transition routes defined in the page have higher priority than those defined in the flow. TransitionRoutes are evalauted in the following order: * TransitionRoutes with intent specified. * TransitionRoutes with only condition specified. TransitionRoutes with intent specified are inherited by pages in the flow.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3TransitionRoute" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3FlowImportStrategy": { +"description": "The flow import strategy used for resource conflict resolution associated with an ImportFlowRequest.", +"id": "GoogleCloudDialogflowCxV3FlowImportStrategy", +"properties": { +"globalImportStrategy": { +"description": "Optional. Import strategy for resource conflict resolution, applied globally throughout the flow. It will be applied for all display name conflicts in the imported content. If not specified, 'CREATE_NEW' is assumed.", +"enum": [ +"IMPORT_STRATEGY_UNSPECIFIED", +"IMPORT_STRATEGY_CREATE_NEW", +"IMPORT_STRATEGY_REPLACE", +"IMPORT_STRATEGY_KEEP", +"IMPORT_STRATEGY_MERGE", +"IMPORT_STRATEGY_THROW_ERROR" +], +"enumDescriptions": [ +"Unspecified. Treated as 'CREATE_NEW'.", +"Create a new resource with a numeric suffix appended to the end of the existing display name.", +"Replace existing resource with incoming resource in the content to be imported.", +"Keep existing resource and discard incoming resource in the content to be imported.", +"Combine existing and incoming resources when a conflict is encountered.", +"Throw error if a conflict is encountered." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3FlowMultiLanguageSettings": { +"description": "Settings for multi-lingual agents.", +"id": "GoogleCloudDialogflowCxV3FlowMultiLanguageSettings", +"properties": { +"enableMultiLanguageDetection": { +"description": "Optional. Enable multi-language detection for this flow. This can be set only if agent level multi language setting is enabled.", +"type": "boolean" +}, +"supportedResponseLanguageCodes": { +"description": "Optional. Agent will respond in the detected language if the detected language code is in the supported resolved languages for this flow. This will be used only if multi-language training is enabled in the agent and multi-language detection is enabled in the flow. The supported languages must be a subset of the languages supported by the agent.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3FlowValidationResult": { +"description": "The response message for Flows.GetFlowValidationResult.", +"id": "GoogleCloudDialogflowCxV3FlowValidationResult", +"properties": { +"name": { +"description": "The unique identifier of the flow validation result. Format: `projects//locations//agents//flows//validationResult`.", +"type": "string" +}, +"updateTime": { +"description": "Last time the flow was validated.", +"format": "google-datetime", +"type": "string" +}, +"validationMessages": { +"description": "Contains all validation messages.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3ValidationMessage" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3Form": { +"description": "A form is a data model that groups related parameters that can be collected from the user. The process in which the agent prompts the user and collects parameter values from the user is called form filling. A form can be added to a page. When form filling is done, the filled parameters will be written to the session.", +"id": "GoogleCloudDialogflowCxV3Form", +"properties": { +"parameters": { +"description": "Parameters to collect from the user.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3FormParameter" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3FormParameter": { +"description": "Represents a form parameter.", +"id": "GoogleCloudDialogflowCxV3FormParameter", +"properties": { +"advancedSettings": { +"$ref": "GoogleCloudDialogflowCxV3AdvancedSettings", +"description": "Hierarchical advanced settings for this parameter. The settings exposed at the lower level overrides the settings exposed at the higher level." +}, +"defaultValue": { +"description": "The default value of an optional parameter. If the parameter is required, the default value will be ignored.", +"type": "any" +}, +"displayName": { +"description": "Required. The human-readable name of the parameter, unique within the form.", +"type": "string" +}, +"entityType": { +"description": "Required. The entity type of the parameter. Format: `projects/-/locations/-/agents/-/entityTypes/` for system entity types (for example, `projects/-/locations/-/agents/-/entityTypes/sys.date`), or `projects//locations//agents//entityTypes/` for developer entity types.", +"type": "string" +}, +"fillBehavior": { +"$ref": "GoogleCloudDialogflowCxV3FormParameterFillBehavior", +"description": "Required. Defines fill behavior for the parameter." +}, +"isList": { +"description": "Indicates whether the parameter represents a list of values.", +"type": "boolean" +}, +"redact": { +"description": "Indicates whether the parameter content should be redacted in log. If redaction is enabled, the parameter content will be replaced by parameter name during logging. Note: the parameter content is subject to redaction if either parameter level redaction or entity type level redaction is enabled.", +"type": "boolean" +}, +"required": { +"description": "Indicates whether the parameter is required. Optional parameters will not trigger prompts; however, they are filled if the user specifies them. Required parameters must be filled before form filling concludes.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3FormParameterFillBehavior": { +"description": "Configuration for how the filling of a parameter should be handled.", +"id": "GoogleCloudDialogflowCxV3FormParameterFillBehavior", +"properties": { +"initialPromptFulfillment": { +"$ref": "GoogleCloudDialogflowCxV3Fulfillment", +"description": "Required. The fulfillment to provide the initial prompt that the agent can present to the user in order to fill the parameter." +}, +"repromptEventHandlers": { +"description": "The handlers for parameter-level events, used to provide reprompt for the parameter or transition to a different page/flow. The supported events are: * `sys.no-match-`, where N can be from 1 to 6 * `sys.no-match-default` * `sys.no-input-`, where N can be from 1 to 6 * `sys.no-input-default` * `sys.invalid-parameter` `initial_prompt_fulfillment` provides the first prompt for the parameter. If the user's response does not fill the parameter, a no-match/no-input event will be triggered, and the fulfillment associated with the `sys.no-match-1`/`sys.no-input-1` handler (if defined) will be called to provide a prompt. The `sys.no-match-2`/`sys.no-input-2` handler (if defined) will respond to the next no-match/no-input event, and so on. A `sys.no-match-default` or `sys.no-input-default` handler will be used to handle all following no-match/no-input events after all numbered no-match/no-input handlers for the parameter are consumed. A `sys.invalid-parameter` handler can be defined to handle the case where the parameter values have been `invalidated` by webhook. For example, if the user's response fill the parameter, however the parameter was invalidated by webhook, the fulfillment associated with the `sys.invalid-parameter` handler (if defined) will be called to provide a prompt. If the event handler for the corresponding event can't be found on the parameter, `initial_prompt_fulfillment` will be re-prompted.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3EventHandler" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3FulfillIntentRequest": { +"description": "Request of FulfillIntent", +"id": "GoogleCloudDialogflowCxV3FulfillIntentRequest", +"properties": { +"match": { +"$ref": "GoogleCloudDialogflowCxV3Match", +"description": "The matched intent/event to fulfill." +}, +"matchIntentRequest": { +"$ref": "GoogleCloudDialogflowCxV3MatchIntentRequest", +"description": "Must be same as the corresponding MatchIntent request, otherwise the behavior is undefined." +}, +"outputAudioConfig": { +"$ref": "GoogleCloudDialogflowCxV3OutputAudioConfig", +"description": "Instructs the speech synthesizer how to generate output audio." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3FulfillIntentResponse": { +"description": "Response of FulfillIntent", +"id": "GoogleCloudDialogflowCxV3FulfillIntentResponse", +"properties": { +"outputAudio": { +"description": "The audio data bytes encoded as specified in the request. Note: The output audio is generated based on the values of default platform text responses found in the `query_result.response_messages` field. If multiple default text responses exist, they will be concatenated when generating audio. If no default platform text responses exist, the generated audio content will be empty. In some scenarios, multiple output audio fields may be present in the response structure. In these cases, only the top-most-level audio output has content.", +"format": "byte", +"type": "string" +}, +"outputAudioConfig": { +"$ref": "GoogleCloudDialogflowCxV3OutputAudioConfig", +"description": "The config used by the speech synthesizer to generate the output audio." +}, +"queryResult": { +"$ref": "GoogleCloudDialogflowCxV3QueryResult", +"description": "The result of the conversational query." +}, +"responseId": { +"description": "Output only. The unique identifier of the response. It can be used to locate a response in the training example set or for reporting issues.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3Fulfillment": { +"description": "A fulfillment can do one or more of the following actions at the same time: * Generate rich message responses. * Set parameter values. * Call the webhook. Fulfillments can be called at various stages in the Page or Form lifecycle. For example, when a DetectIntentRequest drives a session to enter a new page, the page's entry fulfillment can add a static response to the QueryResult in the returning DetectIntentResponse, call the webhook (for example, to load user data from a database), or both.", +"id": "GoogleCloudDialogflowCxV3Fulfillment", +"properties": { +"advancedSettings": { +"$ref": "GoogleCloudDialogflowCxV3AdvancedSettings", +"description": "Hierarchical advanced settings for this fulfillment. The settings exposed at the lower level overrides the settings exposed at the higher level." +}, +"conditionalCases": { +"description": "Conditional cases for this fulfillment.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3FulfillmentConditionalCases" +}, +"type": "array" +}, +"enableGenerativeFallback": { +"description": "If the flag is true, the agent will utilize LLM to generate a text response. If LLM generation fails, the defined responses in the fulfillment will be respected. This flag is only useful for fulfillments associated with no-match event handlers.", +"type": "boolean" +}, +"messages": { +"description": "The list of rich message responses to present to the user.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3ResponseMessage" +}, +"type": "array" +}, +"returnPartialResponses": { +"description": "Whether Dialogflow should return currently queued fulfillment response messages in streaming APIs. If a webhook is specified, it happens before Dialogflow invokes webhook. Warning: 1) This flag only affects streaming API. Responses are still queued and returned once in non-streaming API. 2) The flag can be enabled in any fulfillment but only the first 3 partial responses will be returned. You may only want to apply it to fulfillments that have slow webhooks.", +"type": "boolean" +}, +"setParameterActions": { +"description": "Set parameter values before executing the webhook.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3FulfillmentSetParameterAction" +}, +"type": "array" +}, +"tag": { +"description": "The value of this field will be populated in the WebhookRequest `fulfillmentInfo.tag` field by Dialogflow when the associated webhook is called. The tag is typically used by the webhook service to identify which fulfillment is being called, but it could be used for other purposes. This field is required if `webhook` is specified.", +"type": "string" +}, +"webhook": { +"description": "The webhook to call. Format: `projects//locations//agents//webhooks/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3FulfillmentConditionalCases": { +"description": "A list of cascading if-else conditions. Cases are mutually exclusive. The first one with a matching condition is selected, all the rest ignored.", +"id": "GoogleCloudDialogflowCxV3FulfillmentConditionalCases", +"properties": { +"cases": { +"description": "A list of cascading if-else conditions.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3FulfillmentConditionalCasesCase" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3FulfillmentConditionalCasesCase": { +"description": "Each case has a Boolean condition. When it is evaluated to be True, the corresponding messages will be selected and evaluated recursively.", +"id": "GoogleCloudDialogflowCxV3FulfillmentConditionalCasesCase", +"properties": { +"caseContent": { +"description": "A list of case content.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3FulfillmentConditionalCasesCaseCaseContent" +}, +"type": "array" +}, +"condition": { +"description": "The condition to activate and select this case. Empty means the condition is always true. The condition is evaluated against form parameters or session parameters. See the [conditions reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition).", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3FulfillmentConditionalCasesCaseCaseContent": { +"description": "The list of messages or conditional cases to activate for this case.", +"id": "GoogleCloudDialogflowCxV3FulfillmentConditionalCasesCaseCaseContent", +"properties": { +"additionalCases": { +"$ref": "GoogleCloudDialogflowCxV3FulfillmentConditionalCases", +"description": "Additional cases to be evaluated." +}, +"message": { +"$ref": "GoogleCloudDialogflowCxV3ResponseMessage", +"description": "Returned message." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3FulfillmentSetParameterAction": { +"description": "Setting a parameter value.", +"id": "GoogleCloudDialogflowCxV3FulfillmentSetParameterAction", +"properties": { +"parameter": { +"description": "Display name of the parameter.", +"type": "string" +}, +"value": { +"description": "The new value of the parameter. A null value clears the parameter.", +"type": "any" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3GcsDestination": { +"description": "Google Cloud Storage location for a Dialogflow operation that writes or exports objects (e.g. exported agent or transcripts) outside of Dialogflow.", +"id": "GoogleCloudDialogflowCxV3GcsDestination", +"properties": { +"uri": { +"description": "Required. The Google Cloud Storage URI for the exported objects. A URI is of the form: `gs://bucket/object-name-or-prefix` Whether a full object name, or just a prefix, its usage depends on the Dialogflow operation.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3GenerativeSettings": { +"description": "Settings for Generative AI.", +"id": "GoogleCloudDialogflowCxV3GenerativeSettings", +"properties": { +"fallbackSettings": { +"$ref": "GoogleCloudDialogflowCxV3GenerativeSettingsFallbackSettings", +"description": "Settings for Generative Fallback." +}, +"generativeSafetySettings": { +"$ref": "GoogleCloudDialogflowCxV3SafetySettings", +"description": "Settings for Generative Safety." +}, +"knowledgeConnectorSettings": { +"$ref": "GoogleCloudDialogflowCxV3GenerativeSettingsKnowledgeConnectorSettings", +"description": "Settings for knowledge connector." +}, +"languageCode": { +"description": "Language for this settings.", +"type": "string" +}, +"name": { +"description": "Format: `projects//locations//agents//generativeSettings`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3GenerativeSettingsFallbackSettings": { +"description": "Settings for Generative Fallback.", +"id": "GoogleCloudDialogflowCxV3GenerativeSettingsFallbackSettings", +"properties": { +"promptTemplates": { +"description": "Stored prompts that can be selected, for example default templates like \"conservative\" or \"chatty\", or user defined ones.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3GenerativeSettingsFallbackSettingsPromptTemplate" +}, +"type": "array" +}, +"selectedPrompt": { +"description": "Display name of the selected prompt.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3GenerativeSettingsFallbackSettingsPromptTemplate": { +"description": "Prompt template.", +"id": "GoogleCloudDialogflowCxV3GenerativeSettingsFallbackSettingsPromptTemplate", +"properties": { +"displayName": { +"description": "Prompt name.", +"type": "string" +}, +"frozen": { +"description": "If the flag is true, the prompt is frozen and cannot be modified by users.", +"type": "boolean" +}, +"promptText": { +"description": "Prompt text that is sent to a LLM on no-match default, placeholders are filled downstream. For example: \"Here is a conversation $conversation, a response is: \"", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3GenerativeSettingsKnowledgeConnectorSettings": { +"description": "Settings for knowledge connector. These parameters are used for LLM prompt like \"You are . You are a helpful and verbose at , . Your task is to help humans on \".", +"id": "GoogleCloudDialogflowCxV3GenerativeSettingsKnowledgeConnectorSettings", +"properties": { +"agent": { +"description": "Name of the virtual agent. Used for LLM prompt. Can be left empty.", +"type": "string" +}, +"agentIdentity": { +"description": "Identity of the agent, e.g. \"virtual agent\", \"AI assistant\".", +"type": "string" +}, +"agentScope": { +"description": "Agent scope, e.g. \"Example company website\", \"internal Example company website for employees\", \"manual of car owner\".", +"type": "string" +}, +"business": { +"description": "Name of the company, organization or other entity that the agent represents. Used for knowledge connector LLM prompt and for knowledge search.", +"type": "string" +}, +"businessDescription": { +"description": "Company description, used for LLM prompt, e.g. \"a family company selling freshly roasted coffee beans\".", +"type": "string" +}, +"disableDataStoreFallback": { +"description": "Whether to disable fallback to Data Store search results (in case the LLM couldn't pick a proper answer). Per default the feature is enabled.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3Generator": { +"description": "Generators contain prompt to be sent to the LLM model to generate text. The prompt can contain parameters which will be resolved before calling the model. It can optionally contain banned phrases to ensure the model responses are safe.", +"id": "GoogleCloudDialogflowCxV3Generator", +"properties": { +"displayName": { +"description": "Required. The human-readable name of the generator, unique within the agent. The prompt contains pre-defined parameters such as $conversation, $last-user-utterance, etc. populated by Dialogflow. It can also contain custom placeholders which will be resolved during fulfillment.", +"type": "string" +}, +"modelParameter": { +"$ref": "GoogleCloudDialogflowCxV3GeneratorModelParameter", +"description": "Parameters passed to the LLM to configure its behavior." +}, +"name": { +"description": "The unique identifier of the generator. Must be set for the Generators.UpdateGenerator method. Generators.CreateGenerate populates the name automatically. Format: `projects//locations//agents//generators/`.", +"type": "string" +}, +"placeholders": { +"description": "Optional. List of custom placeholders in the prompt text.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3GeneratorPlaceholder" +}, +"type": "array" +}, +"promptText": { +"$ref": "GoogleCloudDialogflowCxV3Phrase", +"description": "Required. Prompt for the LLM model." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3GeneratorModelParameter": { +"description": "Parameters to be passed to the LLM. If not set, default values will be used.", +"id": "GoogleCloudDialogflowCxV3GeneratorModelParameter", +"properties": { +"maxDecodeSteps": { +"description": "The maximum number of tokens to generate.", +"format": "int32", +"type": "integer" +}, +"temperature": { +"description": "The temperature used for sampling. Temperature sampling occurs after both topP and topK have been applied. Valid range: [0.0, 1.0] Low temperature = less random. High temperature = more random.", +"format": "float", +"type": "number" +}, +"topK": { +"description": "If set, the sampling process in each step is limited to the top_k tokens with highest probabilities. Valid range: [1, 40] or 1000+. Small topK = less random. Large topK = more random.", +"format": "int32", +"type": "integer" +}, +"topP": { +"description": "If set, only the tokens comprising the top top_p probability mass are considered. If both top_p and top_k are set, top_p will be used for further refining candidates selected with top_k. Valid range: (0.0, 1.0]. Small topP = less random. Large topP = more random.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3GeneratorPlaceholder": { +"description": "Represents a custom placeholder in the prompt text.", +"id": "GoogleCloudDialogflowCxV3GeneratorPlaceholder", +"properties": { +"id": { +"description": "Unique ID used to map custom placeholder to parameters in fulfillment.", +"type": "string" +}, +"name": { +"description": "Custom placeholder value in the prompt text.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ImportEntityTypesMetadata": { +"description": "Metadata returned for the EntityTypes.ImportEntityTypes long running operation.", +"id": "GoogleCloudDialogflowCxV3ImportEntityTypesMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ImportEntityTypesRequest": { +"description": "The request message for EntityTypes.ImportEntityTypes.", +"id": "GoogleCloudDialogflowCxV3ImportEntityTypesRequest", +"properties": { +"entityTypesContent": { +"$ref": "GoogleCloudDialogflowCxV3InlineSource", +"description": "Uncompressed byte content of entity types." +}, +"entityTypesUri": { +"description": "The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI to import entity types from. The format of this URI must be `gs:///`. Dialogflow performs a read operation for the Cloud Storage object on the caller's behalf, so your request authentication must have read permissions for the object. For more information, see [Dialogflow access control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage).", +"type": "string" +}, +"mergeOption": { +"description": "Required. Merge option for importing entity types.", +"enum": [ +"MERGE_OPTION_UNSPECIFIED", +"REPLACE", +"MERGE", +"RENAME", +"REPORT_CONFLICT", +"KEEP" +], +"enumDescriptions": [ +"Unspecified. If used, system uses REPORT_CONFLICT as default.", +"Replace the original entity type in the agent with the new entity type when display name conflicts exist.", +"Merge the original entity type with the new entity type when display name conflicts exist.", +"Create new entity types with new display names to differentiate them from the existing entity types when display name conflicts exist.", +"Report conflict information if display names conflict is detected. Otherwise, import entity types.", +"Keep the original entity type and discard the conflicting new entity type when display name conflicts exist." +], +"type": "string" +}, +"targetEntityType": { +"description": "Optional. The target entity type to import into. Format: `projects//locations//agents//entity_types/`. If set, there should be only one entity type included in entity_types, of which the type should match the type of the target entity type. All entities in the imported entity type will be added to the target entity type.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ImportEntityTypesResponse": { +"description": "The response message for EntityTypes.ImportEntityTypes.", +"id": "GoogleCloudDialogflowCxV3ImportEntityTypesResponse", +"properties": { +"conflictingResources": { +"$ref": "GoogleCloudDialogflowCxV3ImportEntityTypesResponseConflictingResources", +"description": "Info which resources have conflicts when REPORT_CONFLICT merge_option is set in ImportEntityTypesRequest." +}, +"entityTypes": { +"description": "The unique identifier of the imported entity types. Format: `projects//locations//agents//entity_types/`.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ImportEntityTypesResponseConflictingResources": { +"description": "Conflicting resources detected during the import process. Only filled when REPORT_CONFLICT is set in the request and there are conflicts in the display names.", +"id": "GoogleCloudDialogflowCxV3ImportEntityTypesResponseConflictingResources", +"properties": { +"entityDisplayNames": { +"description": "Display names of conflicting entities.", +"items": { +"type": "string" +}, +"type": "array" +}, +"entityTypeDisplayNames": { +"description": "Display names of conflicting entity types.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ImportFlowRequest": { +"description": "The request message for Flows.ImportFlow.", +"id": "GoogleCloudDialogflowCxV3ImportFlowRequest", +"properties": { +"flowContent": { +"description": "Uncompressed raw byte content for flow.", +"format": "byte", +"type": "string" +}, +"flowImportStrategy": { +"$ref": "GoogleCloudDialogflowCxV3FlowImportStrategy", +"description": "Optional. Specifies the import strategy used when resolving resource conflicts." +}, +"flowUri": { +"description": "The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI to import flow from. The format of this URI must be `gs:///`. Dialogflow performs a read operation for the Cloud Storage object on the caller's behalf, so your request authentication must have read permissions for the object. For more information, see [Dialogflow access control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage).", +"type": "string" +}, +"importOption": { +"description": "Flow import mode. If not specified, `KEEP` is assumed.", +"enum": [ +"IMPORT_OPTION_UNSPECIFIED", +"KEEP", +"FALLBACK" +], +"enumDescriptions": [ +"Unspecified. Treated as `KEEP`.", +"Always respect settings in exported flow content. It may cause a import failure if some settings (e.g. custom NLU) are not supported in the agent to import into.", +"Fallback to default settings if some settings are not supported in the agent to import into. E.g. Standard NLU will be used if custom NLU is not available." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ImportFlowResponse": { +"description": "The response message for Flows.ImportFlow.", +"id": "GoogleCloudDialogflowCxV3ImportFlowResponse", +"properties": { +"flow": { +"description": "The unique identifier of the new flow. Format: `projects//locations//agents//flows/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ImportIntentsMetadata": { +"description": "Metadata returned for the Intents.ImportIntents long running operation.", +"id": "GoogleCloudDialogflowCxV3ImportIntentsMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ImportIntentsRequest": { +"description": "The request message for Intents.ImportIntents.", +"id": "GoogleCloudDialogflowCxV3ImportIntentsRequest", +"properties": { +"intentsContent": { +"$ref": "GoogleCloudDialogflowCxV3InlineSource", +"description": "Uncompressed byte content of intents." +}, +"intentsUri": { +"description": "The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI to import intents from. The format of this URI must be `gs:///`. Dialogflow performs a read operation for the Cloud Storage object on the caller's behalf, so your request authentication must have read permissions for the object. For more information, see [Dialogflow access control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage).", +"type": "string" +}, +"mergeOption": { +"description": "Merge option for importing intents. If not specified, `REJECT` is assumed.", +"enum": [ +"MERGE_OPTION_UNSPECIFIED", +"REJECT", +"REPLACE", +"MERGE", +"RENAME", +"REPORT_CONFLICT", +"KEEP" +], +"enumDeprecated": [ +false, +true, +false, +false, +false, +false, +false +], +"enumDescriptions": [ +"Unspecified. Should not be used.", +"DEPRECATED: Please use REPORT_CONFLICT instead. Fail the request if there are intents whose display names conflict with the display names of intents in the agent.", +"Replace the original intent in the agent with the new intent when display name conflicts exist.", +"Merge the original intent with the new intent when display name conflicts exist.", +"Create new intents with new display names to differentiate them from the existing intents when display name conflicts exist.", +"Report conflict information if display names conflict is detected. Otherwise, import intents.", +"Keep the original intent and discard the conflicting new intent when display name conflicts exist." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ImportIntentsResponse": { +"description": "The response message for Intents.ImportIntents.", +"id": "GoogleCloudDialogflowCxV3ImportIntentsResponse", +"properties": { +"conflictingResources": { +"$ref": "GoogleCloudDialogflowCxV3ImportIntentsResponseConflictingResources", +"description": "Info which resources have conflicts when REPORT_CONFLICT merge_option is set in ImportIntentsRequest." +}, +"intents": { +"description": "The unique identifier of the imported intents. Format: `projects//locations//agents//intents/`.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ImportIntentsResponseConflictingResources": { +"description": "Conflicting resources detected during the import process. Only filled when REPORT_CONFLICT is set in the request and there are conflicts in the display names.", +"id": "GoogleCloudDialogflowCxV3ImportIntentsResponseConflictingResources", +"properties": { +"entityDisplayNames": { +"description": "Display names of conflicting entities.", +"items": { +"type": "string" +}, +"type": "array" +}, +"intentDisplayNames": { +"description": "Display names of conflicting intents.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ImportTestCasesMetadata": { +"description": "Metadata returned for the TestCases.ImportTestCases long running operation.", +"id": "GoogleCloudDialogflowCxV3ImportTestCasesMetadata", +"properties": { +"errors": { +"description": "Errors for failed test cases.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3TestCaseError" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ImportTestCasesRequest": { +"description": "The request message for TestCases.ImportTestCases.", +"id": "GoogleCloudDialogflowCxV3ImportTestCasesRequest", +"properties": { +"content": { +"description": "Uncompressed raw byte content for test cases.", +"format": "byte", +"type": "string" +}, +"gcsUri": { +"description": "The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI to import test cases from. The format of this URI must be `gs:///`. Dialogflow performs a read operation for the Cloud Storage object on the caller's behalf, so your request authentication must have read permissions for the object. For more information, see [Dialogflow access control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage).", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ImportTestCasesResponse": { +"description": "The response message for TestCases.ImportTestCases.", +"id": "GoogleCloudDialogflowCxV3ImportTestCasesResponse", +"properties": { +"names": { +"description": "The unique identifiers of the new test cases. Format: `projects//locations//agents//testCases/`.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3InlineDestination": { +"description": "Inline destination for a Dialogflow operation that writes or exports objects (e.g. intents) outside of Dialogflow.", +"id": "GoogleCloudDialogflowCxV3InlineDestination", +"properties": { +"content": { +"description": "Output only. The uncompressed byte content for the objects. Only populated in responses.", +"format": "byte", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3InlineSource": { +"description": "Inline source for a Dialogflow operation that reads or imports objects (e.g. intents) into Dialogflow.", +"id": "GoogleCloudDialogflowCxV3InlineSource", +"properties": { +"content": { +"description": "The uncompressed byte content for the objects.", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3InputAudioConfig": { +"description": "Instructs the speech recognizer on how to process the audio content.", +"id": "GoogleCloudDialogflowCxV3InputAudioConfig", +"properties": { +"audioEncoding": { +"description": "Required. Audio encoding of the audio content to process.", +"enum": [ +"AUDIO_ENCODING_UNSPECIFIED", +"AUDIO_ENCODING_LINEAR_16", +"AUDIO_ENCODING_FLAC", +"AUDIO_ENCODING_MULAW", +"AUDIO_ENCODING_AMR", +"AUDIO_ENCODING_AMR_WB", +"AUDIO_ENCODING_OGG_OPUS", +"AUDIO_ENCODING_SPEEX_WITH_HEADER_BYTE", +"AUDIO_ENCODING_ALAW" +], +"enumDescriptions": [ +"Not specified.", +"Uncompressed 16-bit signed little-endian samples (Linear PCM).", +"[`FLAC`](https://xiph.org/flac/documentation.html) (Free Lossless Audio Codec) is the recommended encoding because it is lossless (therefore recognition is not compromised) and requires only about half the bandwidth of `LINEAR16`. `FLAC` stream encoding supports 16-bit and 24-bit samples, however, not all fields in `STREAMINFO` are supported.", +"8-bit samples that compand 14-bit audio samples using G.711 PCMU/mu-law.", +"Adaptive Multi-Rate Narrowband codec. `sample_rate_hertz` must be 8000.", +"Adaptive Multi-Rate Wideband codec. `sample_rate_hertz` must be 16000.", +"Opus encoded audio frames in Ogg container ([OggOpus](https://wiki.xiph.org/OggOpus)). `sample_rate_hertz` must be 16000.", +"Although the use of lossy encodings is not recommended, if a very low bitrate encoding is required, `OGG_OPUS` is highly preferred over Speex encoding. The [Speex](https://speex.org/) encoding supported by Dialogflow API has a header byte in each block, as in MIME type `audio/x-speex-with-header-byte`. It is a variant of the RTP Speex encoding defined in [RFC 5574](https://tools.ietf.org/html/rfc5574). The stream is a sequence of blocks, one block per RTP packet. Each block starts with a byte containing the length of the block, in bytes, followed by one or more frames of Speex data, padded to an integral number of bytes (octets) as specified in RFC 5574. In other words, each RTP header is replaced with a single byte containing the block length. Only Speex wideband is supported. `sample_rate_hertz` must be 16000.", +"8-bit samples that compand 13-bit audio samples using G.711 PCMU/a-law." +], +"type": "string" +}, +"bargeInConfig": { +"$ref": "GoogleCloudDialogflowCxV3BargeInConfig", +"description": "Configuration of barge-in behavior during the streaming of input audio." +}, +"enableWordInfo": { +"description": "Optional. If `true`, Dialogflow returns SpeechWordInfo in StreamingRecognitionResult with information about the recognized speech words, e.g. start and end time offsets. If false or unspecified, Speech doesn't return any word-level information.", +"type": "boolean" +}, +"model": { +"description": "Optional. Which Speech model to select for the given request. For more information, see [Speech models](https://cloud.google.com/dialogflow/cx/docs/concept/speech-models).", +"type": "string" +}, +"modelVariant": { +"description": "Optional. Which variant of the Speech model to use.", +"enum": [ +"SPEECH_MODEL_VARIANT_UNSPECIFIED", +"USE_BEST_AVAILABLE", +"USE_STANDARD", +"USE_ENHANCED" +], +"enumDescriptions": [ +"No model variant specified. In this case Dialogflow defaults to USE_BEST_AVAILABLE.", +"Use the best available variant of the Speech model that the caller is eligible for.", +"Use standard model variant even if an enhanced model is available. See the [Cloud Speech documentation](https://cloud.google.com/speech-to-text/docs/enhanced-models) for details about enhanced models.", +"Use an enhanced model variant: * If an enhanced variant does not exist for the given model and request language, Dialogflow falls back to the standard variant. The [Cloud Speech documentation](https://cloud.google.com/speech-to-text/docs/enhanced-models) describes which models have enhanced variants." +], +"type": "string" +}, +"optOutConformerModelMigration": { +"description": "If `true`, the request will opt out for STT conformer model migration. This field will be deprecated once force migration takes place in June 2024. Please refer to [Dialogflow CX Speech model migration](https://cloud.google.com/dialogflow/cx/docs/concept/speech-model-migration).", +"type": "boolean" +}, +"phraseHints": { +"description": "Optional. A list of strings containing words and phrases that the speech recognizer should recognize with higher likelihood. See [the Cloud Speech documentation](https://cloud.google.com/speech-to-text/docs/basics#phrase-hints) for more details.", +"items": { +"type": "string" +}, +"type": "array" +}, +"sampleRateHertz": { +"description": "Sample rate (in Hertz) of the audio content sent in the query. Refer to [Cloud Speech API documentation](https://cloud.google.com/speech-to-text/docs/basics) for more details.", +"format": "int32", +"type": "integer" +}, +"singleUtterance": { +"description": "Optional. If `false` (default), recognition does not cease until the client closes the stream. If `true`, the recognizer will detect a single spoken utterance in input audio. Recognition ceases when it detects the audio's voice has stopped or paused. In this case, once a detected intent is received, the client should close the stream and start a new request with a new stream as needed. Note: This setting is relevant only for streaming methods.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3Intent": { +"description": "An intent represents a user's intent to interact with a conversational agent. You can provide information for the Dialogflow API to use to match user input to an intent by adding training phrases (i.e., examples of user input) to your intent.", +"id": "GoogleCloudDialogflowCxV3Intent", +"properties": { +"description": { +"description": "Human readable description for better understanding an intent like its scope, content, result etc. Maximum character limit: 140 characters.", +"type": "string" +}, +"displayName": { +"description": "Required. The human-readable name of the intent, unique within the agent.", +"type": "string" +}, +"isFallback": { +"description": "Indicates whether this is a fallback intent. Currently only default fallback intent is allowed in the agent, which is added upon agent creation. Adding training phrases to fallback intent is useful in the case of requests that are mistakenly matched, since training phrases assigned to fallback intents act as negative examples that triggers no-match event.", +"type": "boolean" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "The key/value metadata to label an intent. Labels can contain lowercase letters, digits and the symbols '-' and '_'. International characters are allowed, including letters from unicase alphabets. Keys must start with a letter. Keys and values can be no longer than 63 characters and no more than 128 bytes. Prefix \"sys-\" is reserved for Dialogflow defined labels. Currently allowed Dialogflow defined labels include: * sys-head * sys-contextual The above labels do not require value. \"sys-head\" means the intent is a head intent. \"sys.contextual\" means the intent is a contextual intent.", +"type": "object" +}, +"name": { +"description": "The unique identifier of the intent. Required for the Intents.UpdateIntent method. Intents.CreateIntent populates the name automatically. Format: `projects//locations//agents//intents/`.", +"type": "string" +}, +"parameters": { +"description": "The collection of parameters associated with the intent.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3IntentParameter" +}, +"type": "array" +}, +"priority": { +"description": "The priority of this intent. Higher numbers represent higher priorities. - If the supplied value is unspecified or 0, the service translates the value to 500,000, which corresponds to the `Normal` priority in the console. - If the supplied value is negative, the intent is ignored in runtime detect intent requests.", +"format": "int32", +"type": "integer" +}, +"trainingPhrases": { +"description": "The collection of training phrases the agent is trained on to identify the intent.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3IntentTrainingPhrase" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3IntentCoverage": { +"description": "Intent coverage represents the percentage of all possible intents in the agent that are triggered in any of a parent's test cases.", +"id": "GoogleCloudDialogflowCxV3IntentCoverage", +"properties": { +"coverageScore": { +"description": "The percent of intents in the agent that are covered.", +"format": "float", +"type": "number" +}, +"intents": { +"description": "The list of Intents present in the agent", +"items": { +"$ref": "GoogleCloudDialogflowCxV3IntentCoverageIntent" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3IntentCoverageIntent": { +"description": "The agent's intent.", +"id": "GoogleCloudDialogflowCxV3IntentCoverageIntent", +"properties": { +"covered": { +"description": "Whether the intent is covered by at least one of the agent's test cases.", +"type": "boolean" +}, +"intent": { +"description": "The intent full resource name", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3IntentInput": { +"description": "Represents the intent to trigger programmatically rather than as a result of natural language processing.", +"id": "GoogleCloudDialogflowCxV3IntentInput", +"properties": { +"intent": { +"description": "Required. The unique identifier of the intent. Format: `projects//locations//agents//intents/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3IntentParameter": { +"description": "Represents an intent parameter.", +"id": "GoogleCloudDialogflowCxV3IntentParameter", +"properties": { +"entityType": { +"description": "Required. The entity type of the parameter. Format: `projects/-/locations/-/agents/-/entityTypes/` for system entity types (for example, `projects/-/locations/-/agents/-/entityTypes/sys.date`), or `projects//locations//agents//entityTypes/` for developer entity types.", +"type": "string" +}, +"id": { +"description": "Required. The unique identifier of the parameter. This field is used by training phrases to annotate their parts.", +"type": "string" +}, +"isList": { +"description": "Indicates whether the parameter represents a list of values.", +"type": "boolean" +}, +"redact": { +"description": "Indicates whether the parameter content should be redacted in log. If redaction is enabled, the parameter content will be replaced by parameter name during logging. Note: the parameter content is subject to redaction if either parameter level redaction or entity type level redaction is enabled.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3IntentTrainingPhrase": { +"description": "Represents an example that the agent is trained on to identify the intent.", +"id": "GoogleCloudDialogflowCxV3IntentTrainingPhrase", +"properties": { +"id": { +"description": "Output only. The unique identifier of the training phrase.", +"readOnly": true, +"type": "string" +}, +"parts": { +"description": "Required. The ordered list of training phrase parts. The parts are concatenated in order to form the training phrase. Note: The API does not automatically annotate training phrases like the Dialogflow Console does. Note: Do not forget to include whitespace at part boundaries, so the training phrase is well formatted when the parts are concatenated. If the training phrase does not need to be annotated with parameters, you just need a single part with only the Part.text field set. If you want to annotate the training phrase, you must create multiple parts, where the fields of each part are populated in one of two ways: - `Part.text` is set to a part of the phrase that has no parameters. - `Part.text` is set to a part of the phrase that you want to annotate, and the `parameter_id` field is set.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3IntentTrainingPhrasePart" +}, +"type": "array" +}, +"repeatCount": { +"description": "Indicates how many times this example was added to the intent.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3IntentTrainingPhrasePart": { +"description": "Represents a part of a training phrase.", +"id": "GoogleCloudDialogflowCxV3IntentTrainingPhrasePart", +"properties": { +"parameterId": { +"description": "The parameter used to annotate this part of the training phrase. This field is required for annotated parts of the training phrase.", +"type": "string" +}, +"text": { +"description": "Required. The text for this part.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3KnowledgeConnectorSettings": { +"description": "The Knowledge Connector settings for this page or flow. This includes information such as the attached Knowledge Bases, and the way to execute fulfillment.", +"id": "GoogleCloudDialogflowCxV3KnowledgeConnectorSettings", +"properties": { +"dataStoreConnections": { +"description": "Optional. List of related data store connections.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3DataStoreConnection" +}, +"type": "array" +}, +"enabled": { +"description": "Whether Knowledge Connector is enabled or not.", +"type": "boolean" +}, +"targetFlow": { +"description": "The target flow to transition to. Format: `projects//locations//agents//flows/`.", +"type": "string" +}, +"targetPage": { +"description": "The target page to transition to. Format: `projects//locations//agents//flows//pages/`.", +"type": "string" +}, +"triggerFulfillment": { +"$ref": "GoogleCloudDialogflowCxV3Fulfillment", +"description": "The fulfillment to be triggered. When the answers from the Knowledge Connector are selected by Dialogflow, you can utitlize the request scoped parameter `$request.knowledge.answers` (contains up to the 5 highest confidence answers) and `$request.knowledge.questions` (contains the corresponding questions) to construct the fulfillment." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3LanguageInfo": { +"description": "Represents the language information of the request.", +"id": "GoogleCloudDialogflowCxV3LanguageInfo", +"properties": { +"confidenceScore": { +"description": "The confidence score of the detected language between 0 and 1.", +"format": "float", +"type": "number" +}, +"inputLanguageCode": { +"description": "The language code specified in the original request.", +"type": "string" +}, +"resolvedLanguageCode": { +"description": "The language code detected for this request based on the user conversation.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ListAgentsResponse": { +"description": "The response message for Agents.ListAgents.", +"id": "GoogleCloudDialogflowCxV3ListAgentsResponse", +"properties": { +"agents": { +"description": "The list of agents. There will be a maximum number of items returned based on the page_size field in the request.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3Agent" +}, +"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" +}, +"GoogleCloudDialogflowCxV3ListChangelogsResponse": { +"description": "The response message for Changelogs.ListChangelogs.", +"id": "GoogleCloudDialogflowCxV3ListChangelogsResponse", +"properties": { +"changelogs": { +"description": "The list of changelogs. There will be a maximum number of items returned based on the page_size field in the request. The changelogs will be ordered by timestamp.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3Changelog" +}, +"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" +}, +"GoogleCloudDialogflowCxV3ListContinuousTestResultsResponse": { +"description": "The response message for Environments.ListTestCaseResults.", +"id": "GoogleCloudDialogflowCxV3ListContinuousTestResultsResponse", +"properties": { +"continuousTestResults": { +"description": "The list of continuous test results.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3ContinuousTestResult" +}, +"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" +}, +"GoogleCloudDialogflowCxV3ListDeploymentsResponse": { +"description": "The response message for Deployments.ListDeployments.", +"id": "GoogleCloudDialogflowCxV3ListDeploymentsResponse", +"properties": { +"deployments": { +"description": "The list of deployments. There will be a maximum number of items returned based on the page_size field in the request. The list may in some cases be empty or contain fewer entries than page_size even if this isn't the last page.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3Deployment" +}, +"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" +}, +"GoogleCloudDialogflowCxV3ListEntityTypesResponse": { +"description": "The response message for EntityTypes.ListEntityTypes.", +"id": "GoogleCloudDialogflowCxV3ListEntityTypesResponse", +"properties": { +"entityTypes": { +"description": "The list of entity types. There will be a maximum number of items returned based on the page_size field in the request.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3EntityType" +}, +"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" +}, +"GoogleCloudDialogflowCxV3ListEnvironmentsResponse": { +"description": "The response message for Environments.ListEnvironments.", +"id": "GoogleCloudDialogflowCxV3ListEnvironmentsResponse", +"properties": { +"environments": { +"description": "The list of environments. There will be a maximum number of items returned based on the page_size field in the request. The list may in some cases be empty or contain fewer entries than page_size even if this isn't the last page.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3Environment" +}, +"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" +}, +"GoogleCloudDialogflowCxV3ListExperimentsResponse": { +"description": "The response message for Experiments.ListExperiments.", +"id": "GoogleCloudDialogflowCxV3ListExperimentsResponse", +"properties": { +"experiments": { +"description": "The list of experiments. There will be a maximum number of items returned based on the page_size field in the request. The list may in some cases be empty or contain fewer entries than page_size even if this isn't the last page.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3Experiment" +}, +"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" +}, +"GoogleCloudDialogflowCxV3ListFlowsResponse": { +"description": "The response message for Flows.ListFlows.", +"id": "GoogleCloudDialogflowCxV3ListFlowsResponse", +"properties": { +"flows": { +"description": "The list of flows. There will be a maximum number of items returned based on the page_size field in the request.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3Flow" +}, +"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" +}, +"GoogleCloudDialogflowCxV3ListGeneratorsResponse": { +"description": "The response message for Generators.ListGenerators.", +"id": "GoogleCloudDialogflowCxV3ListGeneratorsResponse", +"properties": { +"generators": { +"description": "The list of generators. There will be a maximum number of items returned based on the page_size field in the request.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3Generator" +}, +"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" +}, +"GoogleCloudDialogflowCxV3ListIntentsResponse": { +"description": "The response message for Intents.ListIntents.", +"id": "GoogleCloudDialogflowCxV3ListIntentsResponse", +"properties": { +"intents": { +"description": "The list of intents. There will be a maximum number of items returned based on the page_size field in the request.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3Intent" +}, +"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" +}, +"GoogleCloudDialogflowCxV3ListPagesResponse": { +"description": "The response message for Pages.ListPages.", +"id": "GoogleCloudDialogflowCxV3ListPagesResponse", +"properties": { +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +}, +"pages": { +"description": "The list of pages. There will be a maximum number of items returned based on the page_size field in the request.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3Page" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ListSecuritySettingsResponse": { +"description": "The response message for SecuritySettings.ListSecuritySettings.", +"id": "GoogleCloudDialogflowCxV3ListSecuritySettingsResponse", +"properties": { +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +}, +"securitySettings": { +"description": "The list of security settings.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3SecuritySettings" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ListSessionEntityTypesResponse": { +"description": "The response message for SessionEntityTypes.ListSessionEntityTypes.", +"id": "GoogleCloudDialogflowCxV3ListSessionEntityTypesResponse", +"properties": { +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +}, +"sessionEntityTypes": { +"description": "The list of session entity types. There will be a maximum number of items returned based on the page_size field in the request.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3SessionEntityType" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ListTestCaseResultsResponse": { +"description": "The response message for TestCases.ListTestCaseResults.", +"id": "GoogleCloudDialogflowCxV3ListTestCaseResultsResponse", +"properties": { +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +}, +"testCaseResults": { +"description": "The list of test case results.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3TestCaseResult" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ListTestCasesResponse": { +"description": "The response message for TestCases.ListTestCases.", +"id": "GoogleCloudDialogflowCxV3ListTestCasesResponse", +"properties": { +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +}, +"testCases": { +"description": "The list of test cases. There will be a maximum number of items returned based on the page_size field in the request.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3TestCase" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ListTransitionRouteGroupsResponse": { +"description": "The response message for TransitionRouteGroups.ListTransitionRouteGroups.", +"id": "GoogleCloudDialogflowCxV3ListTransitionRouteGroupsResponse", +"properties": { +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +}, +"transitionRouteGroups": { +"description": "The list of transition route groups. There will be a maximum number of items returned based on the page_size field in the request. The list may in some cases be empty or contain fewer entries than page_size even if this isn't the last page.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3TransitionRouteGroup" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ListVersionsResponse": { +"description": "The response message for Versions.ListVersions.", +"id": "GoogleCloudDialogflowCxV3ListVersionsResponse", +"properties": { +"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": "A list of versions. There will be a maximum number of items returned based on the page_size field in the request. The list may in some cases be empty or contain fewer entries than page_size even if this isn't the last page.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3Version" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ListWebhooksResponse": { +"description": "The response message for Webhooks.ListWebhooks.", +"id": "GoogleCloudDialogflowCxV3ListWebhooksResponse", +"properties": { +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +}, +"webhooks": { +"description": "The list of webhooks. There will be a maximum number of items returned based on the page_size field in the request.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3Webhook" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3LoadVersionRequest": { +"description": "The request message for Versions.LoadVersion.", +"id": "GoogleCloudDialogflowCxV3LoadVersionRequest", +"properties": { +"allowOverrideAgentResources": { +"description": "This field is used to prevent accidental overwrite of other agent resources, which can potentially impact other flow's behavior. If `allow_override_agent_resources` is false, conflicted agent-level resources will not be overridden (i.e. intents, entities, webhooks).", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3LookupEnvironmentHistoryResponse": { +"description": "The response message for Environments.LookupEnvironmentHistory.", +"id": "GoogleCloudDialogflowCxV3LookupEnvironmentHistoryResponse", +"properties": { +"environments": { +"description": "Represents a list of snapshots for an environment. Time of the snapshots is stored in `update_time`.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3Environment" +}, +"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" +}, +"GoogleCloudDialogflowCxV3Match": { +"description": "Represents one match result of MatchIntent.", +"id": "GoogleCloudDialogflowCxV3Match", +"properties": { +"confidence": { +"description": "The confidence of this match. Values range from 0.0 (completely uncertain) to 1.0 (completely certain). This value is for informational purpose only and is only used to help match the best intent within the classification threshold. This value may change for the same end-user expression at any time due to a model retraining or change in implementation.", +"format": "float", +"type": "number" +}, +"event": { +"description": "The event that matched the query. Filled for `EVENT`, `NO_MATCH` and `NO_INPUT` match types.", +"type": "string" +}, +"intent": { +"$ref": "GoogleCloudDialogflowCxV3Intent", +"description": "The Intent that matched the query. Some, not all fields are filled in this message, including but not limited to: `name` and `display_name`. Only filled for `INTENT` match type." +}, +"matchType": { +"description": "Type of this Match.", +"enum": [ +"MATCH_TYPE_UNSPECIFIED", +"INTENT", +"DIRECT_INTENT", +"PARAMETER_FILLING", +"NO_MATCH", +"NO_INPUT", +"EVENT", +"KNOWLEDGE_CONNECTOR", +"PLAYBOOK" +], +"enumDescriptions": [ +"Not specified. Should never be used.", +"The query was matched to an intent.", +"The query directly triggered an intent.", +"The query was used for parameter filling.", +"No match was found for the query.", +"Indicates an empty query.", +"The query directly triggered an event.", +"The query was matched to a Knowledge Connector answer.", +"The query was handled by a `Playbook`." +], +"type": "string" +}, +"parameters": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "The collection of parameters extracted from the query. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: * MapKey type: string * MapKey value: parameter name * MapValue type: If parameter's entity type is a composite entity then use map, otherwise, depending on the parameter value type, it could be one of string, number, boolean, null, list or map. * MapValue value: If parameter's entity type is a composite entity then use map from composite entity property names to property values, otherwise, use parameter value.", +"type": "object" +}, +"resolvedInput": { +"description": "Final text input which was matched during MatchIntent. This value can be different from original input sent in request because of spelling correction or other processing.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3MatchIntentRequest": { +"description": "Request of MatchIntent.", +"id": "GoogleCloudDialogflowCxV3MatchIntentRequest", +"properties": { +"persistParameterChanges": { +"description": "Persist session parameter changes from `query_params`.", +"type": "boolean" +}, +"queryInput": { +"$ref": "GoogleCloudDialogflowCxV3QueryInput", +"description": "Required. The input specification." +}, +"queryParams": { +"$ref": "GoogleCloudDialogflowCxV3QueryParameters", +"description": "The parameters of this query." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3MatchIntentResponse": { +"description": "Response of MatchIntent.", +"id": "GoogleCloudDialogflowCxV3MatchIntentResponse", +"properties": { +"currentPage": { +"$ref": "GoogleCloudDialogflowCxV3Page", +"description": "The current Page. Some, not all fields are filled in this message, including but not limited to `name` and `display_name`." +}, +"matches": { +"description": "Match results, if more than one, ordered descendingly by the confidence we have that the particular intent matches the query.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3Match" +}, +"type": "array" +}, +"text": { +"description": "If natural language text was provided as input, this field will contain a copy of the text.", +"type": "string" +}, +"transcript": { +"description": "If natural language speech audio was provided as input, this field will contain the transcript for the audio.", +"type": "string" +}, +"triggerEvent": { +"description": "If an event was provided as input, this field will contain a copy of the event name.", +"type": "string" +}, +"triggerIntent": { +"description": "If an intent was provided as input, this field will contain a copy of the intent identifier. Format: `projects//locations//agents//intents/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3NluSettings": { +"description": "Settings related to NLU.", +"id": "GoogleCloudDialogflowCxV3NluSettings", +"properties": { +"classificationThreshold": { +"description": "To filter out false positive results and still get variety in matched natural language inputs for your agent, you can tune the machine learning classification threshold. If the returned score value is less than the threshold value, then a no-match event will be triggered. The score values range from 0.0 (completely uncertain) to 1.0 (completely certain). If set to 0.0, the default of 0.3 is used. You can set a separate classification threshold for the flow in each language enabled for the agent.", +"format": "float", +"type": "number" +}, +"modelTrainingMode": { +"description": "Indicates NLU model training mode.", +"enum": [ +"MODEL_TRAINING_MODE_UNSPECIFIED", +"MODEL_TRAINING_MODE_AUTOMATIC", +"MODEL_TRAINING_MODE_MANUAL" +], +"enumDescriptions": [ +"Not specified. `MODEL_TRAINING_MODE_AUTOMATIC` will be used.", +"NLU model training is automatically triggered when a flow gets modified. User can also manually trigger model training in this mode.", +"User needs to manually trigger NLU model training. Best for large flows whose models take long time to train." +], +"type": "string" +}, +"modelType": { +"description": "Indicates the type of NLU model.", +"enum": [ +"MODEL_TYPE_UNSPECIFIED", +"MODEL_TYPE_STANDARD", +"MODEL_TYPE_ADVANCED" +], +"enumDescriptions": [ +"Not specified. `MODEL_TYPE_STANDARD` will be used.", +"Use standard NLU model.", +"Use advanced NLU model." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3OutputAudioConfig": { +"description": "Instructs the speech synthesizer how to generate the output audio content.", +"id": "GoogleCloudDialogflowCxV3OutputAudioConfig", +"properties": { +"audioEncoding": { +"description": "Required. Audio encoding of the synthesized audio content.", +"enum": [ +"OUTPUT_AUDIO_ENCODING_UNSPECIFIED", +"OUTPUT_AUDIO_ENCODING_LINEAR_16", +"OUTPUT_AUDIO_ENCODING_MP3", +"OUTPUT_AUDIO_ENCODING_MP3_64_KBPS", +"OUTPUT_AUDIO_ENCODING_OGG_OPUS", +"OUTPUT_AUDIO_ENCODING_MULAW", +"OUTPUT_AUDIO_ENCODING_ALAW" +], +"enumDescriptions": [ +"Not specified.", +"Uncompressed 16-bit signed little-endian samples (Linear PCM). Audio content returned as LINEAR16 also contains a WAV header.", +"MP3 audio at 32kbps.", +"MP3 audio 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.", +"8-bit samples that compand 13-bit audio samples using G.711 PCMU/a-law." +], +"type": "string" +}, +"sampleRateHertz": { +"description": "Optional. The synthesis sample rate (in hertz) for this audio. If not provided, then the synthesizer will use the default sample rate based on the audio encoding. 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).", +"format": "int32", +"type": "integer" +}, +"synthesizeSpeechConfig": { +"$ref": "GoogleCloudDialogflowCxV3SynthesizeSpeechConfig", +"description": "Optional. Configuration of how speech should be synthesized. If not specified, Agent.text_to_speech_settings is applied." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3Page": { +"description": "A Dialogflow CX conversation (session) can be described and visualized as a state machine. The states of a CX session are represented by pages. For each flow, you define many pages, where your combined pages can handle a complete conversation on the topics the flow is designed for. At any given moment, exactly one page is the current page, the current page is considered active, and the flow associated with that page is considered active. Every flow has a special start page. When a flow initially becomes active, the start page page becomes the current page. For each conversational turn, the current page will either stay the same or transition to another page. You configure each page to collect information from the end-user that is relevant for the conversational state represented by the page. For more information, see the [Page guide](https://cloud.google.com/dialogflow/cx/docs/concept/page).", +"id": "GoogleCloudDialogflowCxV3Page", +"properties": { +"advancedSettings": { +"$ref": "GoogleCloudDialogflowCxV3AdvancedSettings", +"description": "Hierarchical advanced settings for this page. The settings exposed at the lower level overrides the settings exposed at the higher level." +}, +"description": { +"description": "The description of the page. The maximum length is 500 characters.", +"type": "string" +}, +"displayName": { +"description": "Required. The human-readable name of the page, unique within the flow.", +"type": "string" +}, +"entryFulfillment": { +"$ref": "GoogleCloudDialogflowCxV3Fulfillment", +"description": "The fulfillment to call when the session is entering the page." +}, +"eventHandlers": { +"description": "Handlers associated with the page to handle events such as webhook errors, no match or no input.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3EventHandler" +}, +"type": "array" +}, +"form": { +"$ref": "GoogleCloudDialogflowCxV3Form", +"description": "The form associated with the page, used for collecting parameters relevant to the page." +}, +"knowledgeConnectorSettings": { +"$ref": "GoogleCloudDialogflowCxV3KnowledgeConnectorSettings", +"description": "Optional. Knowledge connector configuration." +}, +"name": { +"description": "The unique identifier of the page. Required for the Pages.UpdatePage method. Pages.CreatePage populates the name automatically. Format: `projects//locations//agents//flows//pages/`.", +"type": "string" +}, +"transitionRouteGroups": { +"description": "Ordered list of `TransitionRouteGroups` added to the page. Transition route groups must be unique within a page. If the page links both flow-level transition route groups and agent-level transition route groups, the flow-level ones will have higher priority and will be put before the agent-level ones. * If multiple transition routes within a page scope refer to the same intent, then the precedence order is: page's transition route -> page's transition route group -> flow's transition routes. * If multiple transition route groups within a page contain the same intent, then the first group in the ordered list takes precedence. Format:`projects//locations//agents//flows//transitionRouteGroups/` or `projects//locations//agents//transitionRouteGroups/` for agent-level groups.", +"items": { +"type": "string" +}, +"type": "array" +}, +"transitionRoutes": { +"description": "A list of transitions for the transition rules of this page. They route the conversation to another page in the same flow, or another flow. When we are in a certain page, the TransitionRoutes are evalauted in the following order: * TransitionRoutes defined in the page with intent specified. * TransitionRoutes defined in the transition route groups with intent specified. * TransitionRoutes defined in flow with intent specified. * TransitionRoutes defined in the transition route groups with intent specified. * TransitionRoutes defined in the page with only condition specified. * TransitionRoutes defined in the transition route groups with only condition specified.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3TransitionRoute" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3PageInfo": { +"description": "Represents page information communicated to and from the webhook.", +"id": "GoogleCloudDialogflowCxV3PageInfo", +"properties": { +"currentPage": { +"description": "Always present for WebhookRequest. Ignored for WebhookResponse. The unique identifier of the current page. Format: `projects//locations//agents//flows//pages/`.", +"type": "string" +}, +"displayName": { +"description": "Always present for WebhookRequest. Ignored for WebhookResponse. The display name of the current page.", +"type": "string" +}, +"formInfo": { +"$ref": "GoogleCloudDialogflowCxV3PageInfoFormInfo", +"description": "Optional for both WebhookRequest and WebhookResponse. Information about the form." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3PageInfoFormInfo": { +"description": "Represents form information.", +"id": "GoogleCloudDialogflowCxV3PageInfoFormInfo", +"properties": { +"parameterInfo": { +"description": "Optional for both WebhookRequest and WebhookResponse. The parameters contained in the form. Note that the webhook cannot add or remove any form parameter.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3PageInfoFormInfoParameterInfo" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3PageInfoFormInfoParameterInfo": { +"description": "Represents parameter information.", +"id": "GoogleCloudDialogflowCxV3PageInfoFormInfoParameterInfo", +"properties": { +"displayName": { +"description": "Always present for WebhookRequest. Required for WebhookResponse. The human-readable name of the parameter, unique within the form. This field cannot be modified by the webhook.", +"type": "string" +}, +"justCollected": { +"description": "Optional for WebhookRequest. Ignored for WebhookResponse. Indicates if the parameter value was just collected on the last conversation turn.", +"type": "boolean" +}, +"required": { +"description": "Optional for both WebhookRequest and WebhookResponse. Indicates whether the parameter is required. Optional parameters will not trigger prompts; however, they are filled if the user specifies them. Required parameters must be filled before form filling concludes.", +"type": "boolean" +}, +"state": { +"description": "Always present for WebhookRequest. Required for WebhookResponse. The state of the parameter. This field can be set to INVALID by the webhook to invalidate the parameter; other values set by the webhook will be ignored.", +"enum": [ +"PARAMETER_STATE_UNSPECIFIED", +"EMPTY", +"INVALID", +"FILLED" +], +"enumDescriptions": [ +"Not specified. This value should be never used.", +"Indicates that the parameter does not have a value.", +"Indicates that the parameter value is invalid. This field can be used by the webhook to invalidate the parameter and ask the server to collect it from the user again.", +"Indicates that the parameter has a value." +], +"type": "string" +}, +"value": { +"description": "Optional for both WebhookRequest and WebhookResponse. The value of the parameter. This field can be set by the webhook to change the parameter value.", +"type": "any" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3Phrase": { +"description": "Text input which can be used for prompt or banned phrases.", +"id": "GoogleCloudDialogflowCxV3Phrase", +"properties": { +"text": { +"description": "Required. Text input which can be used for prompt or banned phrases.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3QueryInput": { +"description": "Represents the query input. It can contain one of: 1. A conversational query in the form of text. 2. An intent query that specifies which intent to trigger. 3. Natural language speech audio to be processed. 4. An event to be triggered. 5. DTMF digits to invoke an intent and fill in parameter value. 6. The results of a tool executed by the client.", +"id": "GoogleCloudDialogflowCxV3QueryInput", +"properties": { +"audio": { +"$ref": "GoogleCloudDialogflowCxV3AudioInput", +"description": "The natural language speech audio to be processed." +}, +"dtmf": { +"$ref": "GoogleCloudDialogflowCxV3DtmfInput", +"description": "The DTMF event to be handled." +}, +"event": { +"$ref": "GoogleCloudDialogflowCxV3EventInput", +"description": "The event to be triggered." +}, +"intent": { +"$ref": "GoogleCloudDialogflowCxV3IntentInput", +"description": "The intent to be triggered." +}, +"languageCode": { +"description": "Required. The language of the input. See [Language Support](https://cloud.google.com/dialogflow/cx/docs/reference/language) for a list of the currently supported language codes. Note that queries in the same session do not necessarily need to specify the same language.", +"type": "string" +}, +"text": { +"$ref": "GoogleCloudDialogflowCxV3TextInput", +"description": "The natural language text to be processed." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3QueryParameters": { +"description": "Represents the parameters of a conversational query.", +"id": "GoogleCloudDialogflowCxV3QueryParameters", +"properties": { +"analyzeQueryTextSentiment": { +"description": "Configures whether sentiment analysis should be performed. If not provided, sentiment analysis is not performed.", +"type": "boolean" +}, +"channel": { +"description": "The channel which this query is for. If specified, only the ResponseMessage associated with the channel will be returned. If no ResponseMessage is associated with the channel, it falls back to the ResponseMessage with unspecified channel. If unspecified, the ResponseMessage with unspecified channel will be returned.", +"type": "string" +}, +"currentPage": { +"description": "The unique identifier of the page to override the current page in the session. Format: `projects//locations//agents//flows//pages/`. If `current_page` is specified, the previous state of the session will be ignored by Dialogflow, including the previous page and the previous session parameters. In most cases, current_page and parameters should be configured together to direct a session to a specific state.", +"type": "string" +}, +"disableWebhook": { +"description": "Whether to disable webhook calls for this request.", +"type": "boolean" +}, +"endUserMetadata": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Optional. Information about the end-user to improve the relevance and accuracy of generative answers. This will be interpreted and used by a language model, so, for good results, the data should be self-descriptive, and in a simple structure. Example: ```json { \"subscription plan\": \"Business Premium Plus\", \"devices owned\": [ {\"model\": \"Google Pixel 7\"}, {\"model\": \"Google Pixel Tablet\"} ] } ```", +"type": "object" +}, +"flowVersions": { +"description": "A list of flow versions to override for the request. Format: `projects//locations//agents//flows//versions/`. If version 1 of flow X is included in this list, the traffic of flow X will go through version 1 regardless of the version configuration in the environment. Each flow can have at most one version specified in this list.", +"items": { +"type": "string" +}, +"type": "array" +}, +"geoLocation": { +"$ref": "GoogleTypeLatLng", +"description": "The geo location of this conversational query." +}, +"parameters": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Additional parameters to be put into session parameters. To remove a parameter from the session, clients should explicitly set the parameter value to null. You can reference the session parameters in the agent with the following format: $session.params.parameter-id. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: * MapKey type: string * MapKey value: parameter name * MapValue type: If parameter's entity type is a composite entity then use map, otherwise, depending on the parameter value type, it could be one of string, number, boolean, null, list or map. * MapValue value: If parameter's entity type is a composite entity then use map from composite entity property names to property values, otherwise, use parameter value.", +"type": "object" +}, +"payload": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "This field can be used to pass custom data into the webhook associated with the agent. Arbitrary JSON objects are supported. Some integrations that query a Dialogflow agent may provide additional information in the payload. In particular, for the Dialogflow Phone Gateway integration, this field has the form: ``` { \"telephony\": { \"caller_id\": \"+18558363987\" } } ```", +"type": "object" +}, +"populateDataStoreConnectionSignals": { +"description": "Optional. If set to true and data stores are involved in serving the request then DetectIntentResponse.query_result.data_store_connection_signals will be filled with data that can help evaluations.", +"type": "boolean" +}, +"searchConfig": { +"$ref": "GoogleCloudDialogflowCxV3SearchConfig", +"description": "Optional. Search configuration for UCS search queries." +}, +"sessionEntityTypes": { +"description": "Additional session entity types to replace or extend developer entity types with. The entity synonyms apply to all languages and persist for the session of this query.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3SessionEntityType" +}, +"type": "array" +}, +"sessionTtl": { +"description": "Optional. Configure lifetime of the Dialogflow session. By default, a Dialogflow session remains active and its data is stored for 30 minutes after the last request is sent for the session. This value should be no longer than 1 day.", +"format": "google-duration", +"type": "string" +}, +"timeZone": { +"description": "The time zone of this conversational query from the [time zone database](https://www.iana.org/time-zones), e.g., America/New_York, Europe/Paris. If not provided, the time zone specified in the agent is used.", +"type": "string" +}, +"webhookHeaders": { +"additionalProperties": { +"type": "string" +}, +"description": "This field can be used to pass HTTP headers for a webhook call. These headers will be sent to webhook along with the headers that have been configured through Dialogflow web console. The headers defined within this field will overwrite the headers configured through Dialogflow console if there is a conflict. Header names are case-insensitive. Google's specified headers are not allowed. Including: \"Host\", \"Content-Length\", \"Connection\", \"From\", \"User-Agent\", \"Accept-Encoding\", \"If-Modified-Since\", \"If-None-Match\", \"X-Forwarded-For\", etc.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3QueryResult": { +"description": "Represents the result of a conversational query.", +"id": "GoogleCloudDialogflowCxV3QueryResult", +"properties": { +"advancedSettings": { +"$ref": "GoogleCloudDialogflowCxV3AdvancedSettings", +"description": "Returns the current advanced settings including IVR settings. Even though the operations configured by these settings are performed by Dialogflow, the client may need to perform special logic at the moment. For example, if Dialogflow exports audio to Google Cloud Storage, then the client may need to wait for the resulting object to appear in the bucket before proceeding." +}, +"allowAnswerFeedback": { +"description": "Indicates whether the Thumbs up/Thumbs down rating controls are need to be shown for the response in the Dialogflow Messenger widget.", +"type": "boolean" +}, +"currentPage": { +"$ref": "GoogleCloudDialogflowCxV3Page", +"description": "The current Page. Some, not all fields are filled in this message, including but not limited to `name` and `display_name`." +}, +"dataStoreConnectionSignals": { +"$ref": "GoogleCloudDialogflowCxV3DataStoreConnectionSignals", +"description": "Optional. Data store connection feature output signals. Filled only when data stores are involved in serving the query and DetectIntentRequest.populate_data_store_connection_signals is set to true in the request." +}, +"diagnosticInfo": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "The free-form diagnostic info. For example, this field could contain webhook call latency. The fields of this data can change without notice, so you should not write code that depends on its structure. One of the fields is called \"Alternative Matched Intents\", which may aid with debugging. The following describes these intent results: - The list is empty if no intent was matched to end-user input. - Only intents that are referenced in the currently active flow are included. - The matched intent is included. - Other intents that could have matched end-user input, but did not match because they are referenced by intent routes that are out of [scope](https://cloud.google.com/dialogflow/cx/docs/concept/handler#scope), are included. - Other intents referenced by intent routes in scope that matched end-user input, but had a lower confidence score.", +"type": "object" +}, +"dtmf": { +"$ref": "GoogleCloudDialogflowCxV3DtmfInput", +"description": "If a DTMF was provided as input, this field will contain a copy of the DtmfInput." +}, +"intent": { +"$ref": "GoogleCloudDialogflowCxV3Intent", +"deprecated": true, +"description": "The Intent that matched the conversational query. Some, not all fields are filled in this message, including but not limited to: `name` and `display_name`. This field is deprecated, please use QueryResult.match instead." +}, +"intentDetectionConfidence": { +"deprecated": true, +"description": "The intent detection confidence. Values range from 0.0 (completely uncertain) to 1.0 (completely certain). This value is for informational purpose only and is only used to help match the best intent within the classification threshold. This value may change for the same end-user expression at any time due to a model retraining or change in implementation. This field is deprecated, please use QueryResult.match instead.", +"format": "float", +"type": "number" +}, +"languageCode": { +"description": "The language that was triggered during intent detection. See [Language Support](https://cloud.google.com/dialogflow/cx/docs/reference/language) for a list of the currently supported language codes.", +"type": "string" +}, +"match": { +"$ref": "GoogleCloudDialogflowCxV3Match", +"description": "Intent match result, could be an intent or an event." +}, +"parameters": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "The collected session parameters. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: * MapKey type: string * MapKey value: parameter name * MapValue type: If parameter's entity type is a composite entity then use map, otherwise, depending on the parameter value type, it could be one of string, number, boolean, null, list or map. * MapValue value: If parameter's entity type is a composite entity then use map from composite entity property names to property values, otherwise, use parameter value.", +"type": "object" +}, +"responseMessages": { +"description": "The list of rich messages returned to the client. Responses vary from simple text messages to more sophisticated, structured payloads used to drive complex logic.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3ResponseMessage" +}, +"type": "array" +}, +"sentimentAnalysisResult": { +"$ref": "GoogleCloudDialogflowCxV3SentimentAnalysisResult", +"description": "The sentiment analyss result, which depends on `analyze_query_text_sentiment`, specified in the request." +}, +"text": { +"description": "If natural language text was provided as input, this field will contain a copy of the text.", +"type": "string" +}, +"transcript": { +"description": "If natural language speech audio was provided as input, this field will contain the transcript for the audio.", +"type": "string" +}, +"triggerEvent": { +"description": "If an event was provided as input, this field will contain the name of the event.", +"type": "string" +}, +"triggerIntent": { +"description": "If an intent was provided as input, this field will contain a copy of the intent identifier. Format: `projects//locations//agents//intents/`.", +"type": "string" +}, +"webhookPayloads": { +"description": "The list of webhook payload in WebhookResponse.payload, in the order of call sequence. If some webhook call fails or doesn't return any payload, an empty `Struct` would be used instead.", +"items": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"type": "object" +}, +"type": "array" +}, +"webhookStatuses": { +"description": "The list of webhook call status in the order of call sequence.", +"items": { +"$ref": "GoogleRpcStatus" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ResourceName": { +"description": "Resource name and display name.", +"id": "GoogleCloudDialogflowCxV3ResourceName", +"properties": { +"displayName": { +"description": "Display name.", +"type": "string" +}, +"name": { +"description": "Name.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ResponseMessage": { +"description": "Represents a response message that can be returned by a conversational agent. Response messages are also used for output audio synthesis. The approach is as follows: * If at least one OutputAudioText response is present, then all OutputAudioText responses are linearly concatenated, and the result is used for output audio synthesis. * If the OutputAudioText responses are a mixture of text and SSML, then the concatenated result is treated as SSML; otherwise, the result is treated as either text or SSML as appropriate. The agent designer should ideally use either text or SSML consistently throughout the bot design. * Otherwise, all Text responses are linearly concatenated, and the result is used for output audio synthesis. This approach allows for more sophisticated user experience scenarios, where the text displayed to the user may differ from what is heard.", +"id": "GoogleCloudDialogflowCxV3ResponseMessage", +"properties": { +"channel": { +"description": "The channel which the response is associated with. Clients can specify the channel via QueryParameters.channel, and only associated channel response will be returned.", +"type": "string" +}, +"conversationSuccess": { +"$ref": "GoogleCloudDialogflowCxV3ResponseMessageConversationSuccess", +"description": "Indicates that the conversation succeeded." +}, +"endInteraction": { +"$ref": "GoogleCloudDialogflowCxV3ResponseMessageEndInteraction", +"description": "Output only. A signal that indicates the interaction with the Dialogflow agent has ended. This message is generated by Dialogflow only when the conversation reaches `END_SESSION` page. It is not supposed to be defined by the user. It's guaranteed that there is at most one such message in each response.", +"readOnly": true +}, +"knowledgeInfoCard": { +"$ref": "GoogleCloudDialogflowCxV3ResponseMessageKnowledgeInfoCard", +"description": "Represents info card for knowledge answers, to be better rendered in Dialogflow Messenger." +}, +"liveAgentHandoff": { +"$ref": "GoogleCloudDialogflowCxV3ResponseMessageLiveAgentHandoff", +"description": "Hands off conversation to a human agent." +}, +"mixedAudio": { +"$ref": "GoogleCloudDialogflowCxV3ResponseMessageMixedAudio", +"description": "Output only. An audio response message composed of both the synthesized Dialogflow agent responses and responses defined via play_audio. This message is generated by Dialogflow only and not supposed to be defined by the user.", +"readOnly": true +}, +"outputAudioText": { +"$ref": "GoogleCloudDialogflowCxV3ResponseMessageOutputAudioText", +"description": "A text or ssml response that is preferentially used for TTS output audio synthesis, as described in the comment on the ResponseMessage message." +}, +"payload": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Returns a response containing a custom, platform-specific payload.", +"type": "object" +}, +"playAudio": { +"$ref": "GoogleCloudDialogflowCxV3ResponseMessagePlayAudio", +"description": "Signal that the client should play an audio clip hosted at a client-specific URI. Dialogflow uses this to construct mixed_audio. However, Dialogflow itself does not try to read or process the URI in any way." +}, +"responseType": { +"description": "Response type.", +"enum": [ +"RESPONSE_TYPE_UNSPECIFIED", +"ENTRY_PROMPT", +"PARAMETER_PROMPT", +"HANDLER_PROMPT" +], +"enumDescriptions": [ +"Not specified.", +"The response is from an entry prompt in the page.", +"The response is from form-filling prompt in the page.", +"The response is from a transition route or an event handler in the page or flow or transition route group." +], +"type": "string" +}, +"telephonyTransferCall": { +"$ref": "GoogleCloudDialogflowCxV3ResponseMessageTelephonyTransferCall", +"description": "A signal that the client should transfer the phone call connected to this agent to a third-party endpoint." +}, +"text": { +"$ref": "GoogleCloudDialogflowCxV3ResponseMessageText", +"description": "Returns a text response." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ResponseMessageConversationSuccess": { +"description": "Indicates that the conversation succeeded, i.e., the bot handled the issue that the customer talked to it about. Dialogflow only uses this to determine which conversations should be counted as successful and doesn't process the metadata in this message in any way. Note that Dialogflow also considers conversations that get to the conversation end page as successful even if they don't return ConversationSuccess. You may set this, for example: * In the entry_fulfillment of a Page if entering the page indicates that the conversation succeeded. * In a webhook response when you determine that you handled the customer issue.", +"id": "GoogleCloudDialogflowCxV3ResponseMessageConversationSuccess", +"properties": { +"metadata": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Custom metadata. Dialogflow doesn't impose any structure on this.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ResponseMessageEndInteraction": { +"description": "Indicates that interaction with the Dialogflow agent has ended. This message is generated by Dialogflow only and not supposed to be defined by the user.", +"id": "GoogleCloudDialogflowCxV3ResponseMessageEndInteraction", +"properties": {}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ResponseMessageKnowledgeInfoCard": { +"description": "Represents info card response. If the response contains generative knowledge prediction, Dialogflow will return a payload with Infobot Messenger compatible info card. Otherwise, the info card response is skipped.", +"id": "GoogleCloudDialogflowCxV3ResponseMessageKnowledgeInfoCard", +"properties": {}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ResponseMessageLiveAgentHandoff": { +"description": "Indicates that the conversation should be handed off to a live agent. Dialogflow only uses this to determine which conversations were handed off to a human agent for measurement purposes. What else to do with this signal is up to you and your handoff procedures. You may set this, for example: * In the entry_fulfillment of a Page if entering the page indicates something went extremely wrong in the conversation. * In a webhook response when you determine that the customer issue can only be handled by a human.", +"id": "GoogleCloudDialogflowCxV3ResponseMessageLiveAgentHandoff", +"properties": { +"metadata": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Custom metadata for your handoff procedure. Dialogflow doesn't impose any structure on this.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ResponseMessageMixedAudio": { +"description": "Represents an audio message that is composed of both segments synthesized from the Dialogflow agent prompts and ones hosted externally at the specified URIs. The external URIs are specified via play_audio. This message is generated by Dialogflow only and not supposed to be defined by the user.", +"id": "GoogleCloudDialogflowCxV3ResponseMessageMixedAudio", +"properties": { +"segments": { +"description": "Segments this audio response is composed of.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3ResponseMessageMixedAudioSegment" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ResponseMessageMixedAudioSegment": { +"description": "Represents one segment of audio.", +"id": "GoogleCloudDialogflowCxV3ResponseMessageMixedAudioSegment", +"properties": { +"allowPlaybackInterruption": { +"description": "Output only. Whether the playback of this segment can be interrupted by the end user's speech and the client should then start the next Dialogflow request.", +"readOnly": true, +"type": "boolean" +}, +"audio": { +"description": "Raw audio synthesized from the Dialogflow agent's response using the output config specified in the request.", +"format": "byte", +"type": "string" +}, +"uri": { +"description": "Client-specific URI that points to an audio clip accessible to the client. Dialogflow does not impose any validation on it.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ResponseMessageOutputAudioText": { +"description": "A text or ssml response that is preferentially used for TTS output audio synthesis, as described in the comment on the ResponseMessage message.", +"id": "GoogleCloudDialogflowCxV3ResponseMessageOutputAudioText", +"properties": { +"allowPlaybackInterruption": { +"description": "Output only. Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.", +"readOnly": true, +"type": "boolean" +}, +"ssml": { +"description": "The SSML text to be synthesized. For more information, see [SSML](/speech/text-to-speech/docs/ssml).", +"type": "string" +}, +"text": { +"description": "The raw text to be synthesized.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ResponseMessagePlayAudio": { +"description": "Specifies an audio clip to be played by the client as part of the response.", +"id": "GoogleCloudDialogflowCxV3ResponseMessagePlayAudio", +"properties": { +"allowPlaybackInterruption": { +"description": "Output only. Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.", +"readOnly": true, +"type": "boolean" +}, +"audioUri": { +"description": "Required. URI of the audio clip. Dialogflow does not impose any validation on this value. It is specific to the client that reads it.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ResponseMessageTelephonyTransferCall": { +"description": "Represents the signal that telles the client to transfer the phone call connected to the agent to a third-party endpoint.", +"id": "GoogleCloudDialogflowCxV3ResponseMessageTelephonyTransferCall", +"properties": { +"phoneNumber": { +"description": "Transfer the call to a phone number in [E.164 format](https://en.wikipedia.org/wiki/E.164).", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ResponseMessageText": { +"description": "The text response message.", +"id": "GoogleCloudDialogflowCxV3ResponseMessageText", +"properties": { +"allowPlaybackInterruption": { +"description": "Output only. Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.", +"readOnly": true, +"type": "boolean" +}, +"text": { +"description": "Required. A collection of text response variants. If multiple variants are defined, only one text response variant is returned at runtime.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3RestoreAgentRequest": { +"description": "The request message for Agents.RestoreAgent.", +"id": "GoogleCloudDialogflowCxV3RestoreAgentRequest", +"properties": { +"agentContent": { +"description": "Uncompressed raw byte content for agent.", +"format": "byte", +"type": "string" +}, +"agentUri": { +"description": "The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI to restore agent from. The format of this URI must be `gs:///`. Dialogflow performs a read operation for the Cloud Storage object on the caller's behalf, so your request authentication must have read permissions for the object. For more information, see [Dialogflow access control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage).", +"type": "string" +}, +"gitSource": { +"$ref": "GoogleCloudDialogflowCxV3RestoreAgentRequestGitSource", +"description": "Setting for restoring from a git branch" +}, +"restoreOption": { +"description": "Agent restore mode. If not specified, `KEEP` is assumed.", +"enum": [ +"RESTORE_OPTION_UNSPECIFIED", +"KEEP", +"FALLBACK" +], +"enumDescriptions": [ +"Unspecified. Treated as KEEP.", +"Always respect the settings from the exported agent file. It may cause a restoration failure if some settings (e.g. model type) are not supported in the target agent.", +"Fallback to default settings if some settings are not supported in the target agent." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3RestoreAgentRequestGitSource": { +"description": "Settings for restoring from a git branch", +"id": "GoogleCloudDialogflowCxV3RestoreAgentRequestGitSource", +"properties": { +"trackingBranch": { +"description": "tracking branch for the git pull", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3RolloutConfig": { +"description": "The configuration for auto rollout.", +"id": "GoogleCloudDialogflowCxV3RolloutConfig", +"properties": { +"failureCondition": { +"description": "The conditions that are used to evaluate the failure of a rollout step. If not specified, no rollout steps will fail. E.g. \"containment_rate < 10% OR average_turn_count < 3\". See the [conditions reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition).", +"type": "string" +}, +"rolloutCondition": { +"description": "The conditions that are used to evaluate the success of a rollout step. If not specified, all rollout steps will proceed to the next one unless failure conditions are met. E.g. \"containment_rate > 60% AND callback_rate < 20%\". See the [conditions reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition).", +"type": "string" +}, +"rolloutSteps": { +"description": "Steps to roll out a flow version. Steps should be sorted by percentage in ascending order.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3RolloutConfigRolloutStep" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3RolloutConfigRolloutStep": { +"description": "A single rollout step with specified traffic allocation.", +"id": "GoogleCloudDialogflowCxV3RolloutConfigRolloutStep", +"properties": { +"displayName": { +"description": "The name of the rollout step;", +"type": "string" +}, +"minDuration": { +"description": "The minimum time that this step should last. Should be longer than 1 hour. If not set, the default minimum duration for each step will be 1 hour.", +"format": "google-duration", +"type": "string" +}, +"trafficPercent": { +"description": "The percentage of traffic allocated to the flow version of this rollout step. (0%, 100%].", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3RolloutState": { +"description": "State of the auto-rollout process.", +"id": "GoogleCloudDialogflowCxV3RolloutState", +"properties": { +"startTime": { +"description": "Start time of the current step.", +"format": "google-datetime", +"type": "string" +}, +"step": { +"description": "Display name of the current auto rollout step.", +"type": "string" +}, +"stepIndex": { +"description": "Index of the current step in the auto rollout steps list.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3RunContinuousTestMetadata": { +"description": "Metadata returned for the Environments.RunContinuousTest long running operation.", +"id": "GoogleCloudDialogflowCxV3RunContinuousTestMetadata", +"properties": { +"errors": { +"description": "The test errors.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3TestError" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3RunContinuousTestRequest": { +"description": "The request message for Environments.RunContinuousTest.", +"id": "GoogleCloudDialogflowCxV3RunContinuousTestRequest", +"properties": {}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3RunContinuousTestResponse": { +"description": "The response message for Environments.RunContinuousTest.", +"id": "GoogleCloudDialogflowCxV3RunContinuousTestResponse", +"properties": { +"continuousTestResult": { +"$ref": "GoogleCloudDialogflowCxV3ContinuousTestResult", +"description": "The result for a continuous test run." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3RunTestCaseMetadata": { +"description": "Metadata returned for the TestCases.RunTestCase long running operation. This message currently has no fields.", +"id": "GoogleCloudDialogflowCxV3RunTestCaseMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3RunTestCaseRequest": { +"description": "The request message for TestCases.RunTestCase.", +"id": "GoogleCloudDialogflowCxV3RunTestCaseRequest", +"properties": { +"environment": { +"description": "Optional. Environment name. If not set, draft environment is assumed. Format: `projects//locations//agents//environments/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3RunTestCaseResponse": { +"description": "The response message for TestCases.RunTestCase.", +"id": "GoogleCloudDialogflowCxV3RunTestCaseResponse", +"properties": { +"result": { +"$ref": "GoogleCloudDialogflowCxV3TestCaseResult", +"description": "The result." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3SafetySettings": { +"description": "Settings for Generative Safety.", +"id": "GoogleCloudDialogflowCxV3SafetySettings", +"properties": { +"bannedPhrases": { +"description": "Banned phrases for generated text.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3SafetySettingsPhrase" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3SafetySettingsPhrase": { +"description": "Text input which can be used for prompt or banned phrases.", +"id": "GoogleCloudDialogflowCxV3SafetySettingsPhrase", +"properties": { +"languageCode": { +"description": "Required. Language code of the phrase.", +"type": "string" +}, +"text": { +"description": "Required. Text input which can be used for prompt or banned phrases.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3SearchConfig": { +"description": "Search configuration for UCS search queries.", +"id": "GoogleCloudDialogflowCxV3SearchConfig", +"properties": { +"boostSpecs": { +"description": "Optional. Boosting configuration for the datastores.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3BoostSpecs" +}, +"type": "array" +}, +"filterSpecs": { +"description": "Optional. Filter configuration for the datastores.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3FilterSpecs" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3SecuritySettings": { +"description": "Represents the settings related to security issues, such as data redaction and data retention. It may take hours for updates on the settings to propagate to all the related components and take effect.", +"id": "GoogleCloudDialogflowCxV3SecuritySettings", +"properties": { +"audioExportSettings": { +"$ref": "GoogleCloudDialogflowCxV3SecuritySettingsAudioExportSettings", +"description": "Controls audio export settings for post-conversation analytics when ingesting audio to conversations via Participants.AnalyzeContent or Participants.StreamingAnalyzeContent. If retention_strategy is set to REMOVE_AFTER_CONVERSATION or audio_export_settings.gcs_bucket is empty, audio export is disabled. If audio export is enabled, audio is recorded and saved to audio_export_settings.gcs_bucket, subject to retention policy of audio_export_settings.gcs_bucket. This setting won't effect audio input for implicit sessions via Sessions.DetectIntent or Sessions.StreamingDetectIntent." +}, +"deidentifyTemplate": { +"description": "[DLP](https://cloud.google.com/dlp/docs) deidentify template name. Use this template to define de-identification configuration for the content. The `DLP De-identify Templates Reader` role is needed on the Dialogflow service identity service account (has the form `service-PROJECT_NUMBER@gcp-sa-dialogflow.iam.gserviceaccount.com`) for your agent's project. If empty, Dialogflow replaces sensitive info with `[redacted]` text. The template name will have one of the following formats: `projects//locations//deidentifyTemplates/` OR `organizations//locations//deidentifyTemplates/` Note: `deidentify_template` must be located in the same region as the `SecuritySettings`.", +"type": "string" +}, +"displayName": { +"description": "Required. The human-readable name of the security settings, unique within the location.", +"type": "string" +}, +"insightsExportSettings": { +"$ref": "GoogleCloudDialogflowCxV3SecuritySettingsInsightsExportSettings", +"description": "Controls conversation exporting settings to Insights after conversation is completed. If retention_strategy is set to REMOVE_AFTER_CONVERSATION, Insights export is disabled no matter what you configure here." +}, +"inspectTemplate": { +"description": "[DLP](https://cloud.google.com/dlp/docs) inspect template name. Use this template to define inspect base settings. The `DLP Inspect Templates Reader` role is needed on the Dialogflow service identity service account (has the form `service-PROJECT_NUMBER@gcp-sa-dialogflow.iam.gserviceaccount.com`) for your agent's project. If empty, we use the default DLP inspect config. The template name will have one of the following formats: `projects//locations//inspectTemplates/` OR `organizations//locations//inspectTemplates/` Note: `inspect_template` must be located in the same region as the `SecuritySettings`.", +"type": "string" +}, +"name": { +"description": "Resource name of the settings. Required for the SecuritySettingsService.UpdateSecuritySettings method. SecuritySettingsService.CreateSecuritySettings populates the name automatically. Format: `projects//locations//securitySettings/`.", +"type": "string" +}, +"purgeDataTypes": { +"description": "List of types of data to remove when retention settings triggers purge.", +"items": { +"enum": [ +"PURGE_DATA_TYPE_UNSPECIFIED", +"DIALOGFLOW_HISTORY" +], +"enumDescriptions": [ +"Unspecified. Do not use.", +"Dialogflow history. This does not include Cloud logging, which is owned by the user - not Dialogflow." +], +"type": "string" +}, +"type": "array" +}, +"redactionScope": { +"description": "Defines the data for which Dialogflow applies redaction. Dialogflow does not redact data that it does not have access to \u2013 for example, Cloud logging.", +"enum": [ +"REDACTION_SCOPE_UNSPECIFIED", +"REDACT_DISK_STORAGE" +], +"enumDescriptions": [ +"Don't redact any kind of data.", +"On data to be written to disk or similar devices that are capable of holding data even if power is disconnected. This includes data that are temporarily saved on disk." +], +"type": "string" +}, +"redactionStrategy": { +"description": "Strategy that defines how we do redaction.", +"enum": [ +"REDACTION_STRATEGY_UNSPECIFIED", +"REDACT_WITH_SERVICE" +], +"enumDescriptions": [ +"Do not redact.", +"Call redaction service to clean up the data to be persisted." +], +"type": "string" +}, +"retentionStrategy": { +"description": "Specifies the retention behavior defined by SecuritySettings.RetentionStrategy.", +"enum": [ +"RETENTION_STRATEGY_UNSPECIFIED", +"REMOVE_AFTER_CONVERSATION" +], +"enumDescriptions": [ +"Retains the persisted data with Dialogflow's internal default 365d TTLs.", +"Removes data when the conversation ends. If there is no Conversation explicitly established, a default conversation ends when the corresponding Dialogflow session ends." +], +"type": "string" +}, +"retentionWindowDays": { +"description": "Retains the data for the specified number of days. User must set a value lower than Dialogflow's default 365d TTL (30 days for Agent Assist traffic), higher value will be ignored and use default. Setting a value higher than that has no effect. A missing value or setting to 0 also means we use default TTL. When data retention configuration is changed, it only applies to the data created after the change; the TTL of existing data created before the change stays intact.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3SecuritySettingsAudioExportSettings": { +"description": "Settings for exporting audio.", +"id": "GoogleCloudDialogflowCxV3SecuritySettingsAudioExportSettings", +"properties": { +"audioExportPattern": { +"description": "Filename pattern for exported audio.", +"type": "string" +}, +"audioFormat": { +"description": "File format for exported audio file. Currently only in telephony recordings.", +"enum": [ +"AUDIO_FORMAT_UNSPECIFIED", +"MULAW", +"MP3", +"OGG" +], +"enumDescriptions": [ +"Unspecified. Do not use.", +"G.711 mu-law PCM with 8kHz sample rate.", +"MP3 file format.", +"OGG Vorbis." +], +"type": "string" +}, +"enableAudioRedaction": { +"description": "Enable audio redaction if it is true. Note that this only redacts end-user audio data; Synthesised audio from the virtual agent is not redacted.", +"type": "boolean" +}, +"gcsBucket": { +"description": "Cloud Storage bucket to export audio record to. Setting this field would grant the Storage Object Creator role to the Dialogflow Service Agent. API caller that tries to modify this field should have the permission of storage.buckets.setIamPolicy.", +"type": "string" +}, +"storeTtsAudio": { +"description": "Whether to store TTS audio. By default, TTS audio from the virtual agent is not exported.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3SecuritySettingsInsightsExportSettings": { +"description": "Settings for exporting conversations to [Insights](https://cloud.google.com/contact-center/insights/docs).", +"id": "GoogleCloudDialogflowCxV3SecuritySettingsInsightsExportSettings", +"properties": { +"enableInsightsExport": { +"description": "If enabled, we will automatically exports conversations to Insights and Insights runs its analyzers.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3SentimentAnalysisResult": { +"description": "The result of sentiment analysis. Sentiment analysis inspects user input and identifies the prevailing subjective opinion, especially to determine a user's attitude as positive, negative, or neutral.", +"id": "GoogleCloudDialogflowCxV3SentimentAnalysisResult", +"properties": { +"magnitude": { +"description": "A non-negative number in the [0, +inf) range, which represents the absolute magnitude of sentiment, regardless of score (positive or negative).", +"format": "float", +"type": "number" +}, +"score": { +"description": "Sentiment score between -1.0 (negative sentiment) and 1.0 (positive sentiment).", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3SessionEntityType": { +"description": "Session entity types are referred to as **User** entity types and are entities that are built for an individual user such as favorites, preferences, playlists, and so on. You can redefine a session entity type at the session level to extend or replace a custom entity type at the user session level (we refer to the entity types defined at the agent level as \"custom entity types\"). Note: session entity types apply to all queries, regardless of the language. For more information about entity types, see the [Dialogflow documentation](https://cloud.google.com/dialogflow/docs/entities-overview).", +"id": "GoogleCloudDialogflowCxV3SessionEntityType", +"properties": { +"entities": { +"description": "Required. The collection of entities to override or supplement the custom entity type.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3EntityTypeEntity" +}, +"type": "array" +}, +"entityOverrideMode": { +"description": "Required. Indicates whether the additional data should override or supplement the custom entity type definition.", +"enum": [ +"ENTITY_OVERRIDE_MODE_UNSPECIFIED", +"ENTITY_OVERRIDE_MODE_OVERRIDE", +"ENTITY_OVERRIDE_MODE_SUPPLEMENT" +], +"enumDescriptions": [ +"Not specified. This value should be never used.", +"The collection of session entities overrides the collection of entities in the corresponding custom entity type.", +"The collection of session entities extends the collection of entities in the corresponding custom entity type. Note: Even in this override mode calls to `ListSessionEntityTypes`, `GetSessionEntityType`, `CreateSessionEntityType` and `UpdateSessionEntityType` only return the additional entities added in this session entity type. If you want to get the supplemented list, please call EntityTypes.GetEntityType on the custom entity type and merge." +], +"type": "string" +}, +"name": { +"description": "Required. The unique identifier of the session entity type. Format: `projects//locations//agents//sessions//entityTypes/` or `projects//locations//agents//environments//sessions//entityTypes/`. If `Environment ID` is not specified, we assume default 'draft' environment.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3SessionInfo": { +"description": "Represents session information communicated to and from the webhook.", +"id": "GoogleCloudDialogflowCxV3SessionInfo", +"properties": { +"parameters": { +"additionalProperties": { +"type": "any" +}, +"description": "Optional for WebhookRequest. Optional for WebhookResponse. All parameters collected from forms and intents during the session. Parameters can be created, updated, or removed by the webhook. To remove a parameter from the session, the webhook should explicitly set the parameter value to null in WebhookResponse. The map is keyed by parameters' display names.", +"type": "object" +}, +"session": { +"description": "Always present for WebhookRequest. Ignored for WebhookResponse. The unique identifier of the session. This field can be used by the webhook to identify a session. Format: `projects//locations//agents//sessions/` or `projects//locations//agents//environments//sessions/` if environment is specified.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3SpeechToTextSettings": { +"description": "Settings related to speech recognition.", +"id": "GoogleCloudDialogflowCxV3SpeechToTextSettings", +"properties": { +"enableSpeechAdaptation": { +"description": "Whether to use speech adaptation for speech recognition.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3StartExperimentRequest": { +"description": "The request message for Experiments.StartExperiment.", +"id": "GoogleCloudDialogflowCxV3StartExperimentRequest", +"properties": {}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3StopExperimentRequest": { +"description": "The request message for Experiments.StopExperiment.", +"id": "GoogleCloudDialogflowCxV3StopExperimentRequest", +"properties": {}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3SubmitAnswerFeedbackRequest": { +"description": "The request to set the feedback for a bot answer.", +"id": "GoogleCloudDialogflowCxV3SubmitAnswerFeedbackRequest", +"properties": { +"answerFeedback": { +"$ref": "GoogleCloudDialogflowCxV3AnswerFeedback", +"description": "Required. Feedback provided for a bot answer." +}, +"responseId": { +"description": "Required. ID of the response to update its feedback. This is the same as DetectIntentResponse.response_id.", +"type": "string" +}, +"updateMask": { +"description": "Optional. The mask to control which fields to update. If the mask is not present, all fields will be updated.", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3SynthesizeSpeechConfig": { +"description": "Configuration of how speech should be synthesized.", +"id": "GoogleCloudDialogflowCxV3SynthesizeSpeechConfig", +"properties": { +"effectsProfileId": { +"description": "Optional. 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.", +"items": { +"type": "string" +}, +"type": "array" +}, +"pitch": { +"description": "Optional. 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" +}, +"speakingRate": { +"description": "Optional. 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" +}, +"voice": { +"$ref": "GoogleCloudDialogflowCxV3VoiceSelectionParams", +"description": "Optional. The desired voice of the synthesized audio." +}, +"volumeGainDb": { +"description": "Optional. 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. We 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" +}, +"GoogleCloudDialogflowCxV3TestCase": { +"description": "Represents a test case.", +"id": "GoogleCloudDialogflowCxV3TestCase", +"properties": { +"creationTime": { +"description": "Output only. When the test was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Required. The human-readable name of the test case, unique within the agent. Limit of 200 characters.", +"type": "string" +}, +"lastTestResult": { +"$ref": "GoogleCloudDialogflowCxV3TestCaseResult", +"description": "The latest test result." +}, +"name": { +"description": "The unique identifier of the test case. TestCases.CreateTestCase will populate the name automatically. Otherwise use format: `projects//locations//agents//testCases/`.", +"type": "string" +}, +"notes": { +"description": "Additional freeform notes about the test case. Limit of 400 characters.", +"type": "string" +}, +"tags": { +"description": "Tags are short descriptions that users may apply to test cases for organizational and filtering purposes. Each tag should start with \"#\" and has a limit of 30 characters.", +"items": { +"type": "string" +}, +"type": "array" +}, +"testCaseConversationTurns": { +"description": "The conversation turns uttered when the test case was created, in chronological order. These include the canonical set of agent utterances that should occur when the agent is working properly.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3ConversationTurn" +}, +"type": "array" +}, +"testConfig": { +"$ref": "GoogleCloudDialogflowCxV3TestConfig", +"description": "Config for the test case." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3TestCaseError": { +"description": "Error info for importing a test.", +"id": "GoogleCloudDialogflowCxV3TestCaseError", +"properties": { +"status": { +"$ref": "GoogleRpcStatus", +"description": "The status associated with the test case." +}, +"testCase": { +"$ref": "GoogleCloudDialogflowCxV3TestCase", +"description": "The test case." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3TestCaseResult": { +"description": "Represents a result from running a test case in an agent environment.", +"id": "GoogleCloudDialogflowCxV3TestCaseResult", +"properties": { +"conversationTurns": { +"description": "The conversation turns uttered during the test case replay in chronological order.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3ConversationTurn" +}, +"type": "array" +}, +"environment": { +"description": "Environment where the test was run. If not set, it indicates the draft environment.", +"type": "string" +}, +"name": { +"description": "The resource name for the test case result. Format: `projects//locations//agents//testCases//results/`.", +"type": "string" +}, +"testResult": { +"description": "Whether the test case passed in the agent environment.", +"enum": [ +"TEST_RESULT_UNSPECIFIED", +"PASSED", +"FAILED" +], +"enumDescriptions": [ +"Not specified. Should never be used.", +"The test passed.", +"The test did not pass." +], +"type": "string" +}, +"testTime": { +"description": "The time that the test was run.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3TestConfig": { +"description": "Represents configurations for a test case.", +"id": "GoogleCloudDialogflowCxV3TestConfig", +"properties": { +"flow": { +"description": "Flow name to start the test case with. Format: `projects//locations//agents//flows/`. Only one of `flow` and `page` should be set to indicate the starting point of the test case. If neither is set, the test case will start with start page on the default start flow.", +"type": "string" +}, +"page": { +"description": "The page to start the test case with. Format: `projects//locations//agents//flows//pages/`. Only one of `flow` and `page` should be set to indicate the starting point of the test case. If neither is set, the test case will start with start page on the default start flow.", +"type": "string" +}, +"trackingParameters": { +"description": "Session parameters to be compared when calculating differences.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3TestError": { +"description": "Error info for running a test.", +"id": "GoogleCloudDialogflowCxV3TestError", +"properties": { +"status": { +"$ref": "GoogleRpcStatus", +"description": "The status associated with the test." +}, +"testCase": { +"description": "The test case resource name.", +"type": "string" +}, +"testTime": { +"description": "The timestamp when the test was completed.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3TestRunDifference": { +"description": "The description of differences between original and replayed agent output.", +"id": "GoogleCloudDialogflowCxV3TestRunDifference", +"properties": { +"description": { +"description": "A human readable description of the diff, showing the actual output vs expected output.", +"type": "string" +}, +"type": { +"description": "The type of diff.", +"enum": [ +"DIFF_TYPE_UNSPECIFIED", +"INTENT", +"PAGE", +"PARAMETERS", +"UTTERANCE", +"FLOW" +], +"enumDescriptions": [ +"Should never be used.", +"The intent.", +"The page.", +"The parameters.", +"The message utterance.", +"The flow." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3TextInput": { +"description": "Represents the natural language text to be processed.", +"id": "GoogleCloudDialogflowCxV3TextInput", +"properties": { +"text": { +"description": "Required. The UTF-8 encoded natural language text to be processed.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3TextToSpeechSettings": { +"description": "Settings related to speech synthesizing.", +"id": "GoogleCloudDialogflowCxV3TextToSpeechSettings", +"properties": { +"synthesizeSpeechConfigs": { +"additionalProperties": { +"$ref": "GoogleCloudDialogflowCxV3SynthesizeSpeechConfig" +}, +"description": "Configuration of how speech should be synthesized, mapping from language (https://cloud.google.com/dialogflow/cx/docs/reference/language) to SynthesizeSpeechConfig. These settings affect: - The [phone gateway](https://cloud.google.com/dialogflow/cx/docs/concept/integration/phone-gateway) synthesize configuration set via Agent.text_to_speech_settings. - How speech is synthesized when invoking session APIs. Agent.text_to_speech_settings only applies if OutputAudioConfig.synthesize_speech_config is not specified.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3TrainFlowRequest": { +"description": "The request message for Flows.TrainFlow.", +"id": "GoogleCloudDialogflowCxV3TrainFlowRequest", +"properties": {}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3TransitionCoverage": { +"description": "Transition coverage represents the percentage of all possible page transitions (page-level transition routes and event handlers, excluding transition route groups) present within any of a parent's test cases.", +"id": "GoogleCloudDialogflowCxV3TransitionCoverage", +"properties": { +"coverageScore": { +"description": "The percent of transitions in the agent that are covered.", +"format": "float", +"type": "number" +}, +"transitions": { +"description": "The list of Transitions present in the agent.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3TransitionCoverageTransition" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3TransitionCoverageTransition": { +"description": "A transition in a page.", +"id": "GoogleCloudDialogflowCxV3TransitionCoverageTransition", +"properties": { +"covered": { +"description": "Whether the transition is covered by at least one of the agent's test cases.", +"type": "boolean" +}, +"eventHandler": { +"$ref": "GoogleCloudDialogflowCxV3EventHandler", +"description": "Event handler." +}, +"index": { +"description": "The index of a transition in the transition list. Starting from 0.", +"format": "int32", +"type": "integer" +}, +"source": { +"$ref": "GoogleCloudDialogflowCxV3TransitionCoverageTransitionNode", +"description": "The start node of a transition." +}, +"target": { +"$ref": "GoogleCloudDialogflowCxV3TransitionCoverageTransitionNode", +"description": "The end node of a transition." +}, +"transitionRoute": { +"$ref": "GoogleCloudDialogflowCxV3TransitionRoute", +"description": "Intent route or condition route." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3TransitionCoverageTransitionNode": { +"description": "The source or target of a transition.", +"id": "GoogleCloudDialogflowCxV3TransitionCoverageTransitionNode", +"properties": { +"flow": { +"$ref": "GoogleCloudDialogflowCxV3Flow", +"description": "Indicates a transition to a Flow. Only some fields such as name and displayname will be set." +}, +"page": { +"$ref": "GoogleCloudDialogflowCxV3Page", +"description": "Indicates a transition to a Page. Only some fields such as name and displayname will be set." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3TransitionRoute": { +"description": "A transition route specifies a intent that can be matched and/or a data condition that can be evaluated during a session. When a specified transition is matched, the following actions are taken in order: * If there is a `trigger_fulfillment` associated with the transition, it will be called. * If there is a `target_page` associated with the transition, the session will transition into the specified page. * If there is a `target_flow` associated with the transition, the session will transition into the specified flow.", +"id": "GoogleCloudDialogflowCxV3TransitionRoute", +"properties": { +"condition": { +"description": "The condition to evaluate against form parameters or session parameters. See the [conditions reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition). At least one of `intent` or `condition` must be specified. When both `intent` and `condition` are specified, the transition can only happen when both are fulfilled.", +"type": "string" +}, +"description": { +"description": "Optional. The description of the transition route. The maximum length is 500 characters.", +"type": "string" +}, +"intent": { +"description": "The unique identifier of an Intent. Format: `projects//locations//agents//intents/`. Indicates that the transition can only happen when the given intent is matched. At least one of `intent` or `condition` must be specified. When both `intent` and `condition` are specified, the transition can only happen when both are fulfilled.", +"type": "string" +}, +"name": { +"description": "Output only. The unique identifier of this transition route.", +"readOnly": true, +"type": "string" +}, +"targetFlow": { +"description": "The target flow to transition to. Format: `projects//locations//agents//flows/`.", +"type": "string" +}, +"targetPage": { +"description": "The target page to transition to. Format: `projects//locations//agents//flows//pages/`.", +"type": "string" +}, +"triggerFulfillment": { +"$ref": "GoogleCloudDialogflowCxV3Fulfillment", +"description": "The fulfillment to call when the condition is satisfied. At least one of `trigger_fulfillment` and `target` must be specified. When both are defined, `trigger_fulfillment` is executed first." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3TransitionRouteGroup": { +"description": "A TransitionRouteGroup represents a group of `TransitionRoutes` to be used by a Page.", +"id": "GoogleCloudDialogflowCxV3TransitionRouteGroup", +"properties": { +"displayName": { +"description": "Required. The human-readable name of the transition route group, unique within the flow. The display name can be no longer than 30 characters.", +"type": "string" +}, +"name": { +"description": "The unique identifier of the transition route group. TransitionRouteGroups.CreateTransitionRouteGroup populates the name automatically. Format: `projects//locations//agents//flows//transitionRouteGroups/` .", +"type": "string" +}, +"transitionRoutes": { +"description": "Transition routes associated with the TransitionRouteGroup.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3TransitionRoute" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3TransitionRouteGroupCoverage": { +"description": "Transition route group coverage represents the percentage of all possible transition routes present within any of a parent's test cases. The results are grouped by the transition route group.", +"id": "GoogleCloudDialogflowCxV3TransitionRouteGroupCoverage", +"properties": { +"coverageScore": { +"description": "The percent of transition routes in all the transition route groups that are covered.", +"format": "float", +"type": "number" +}, +"coverages": { +"description": "Transition route group coverages.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3TransitionRouteGroupCoverageCoverage" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3TransitionRouteGroupCoverageCoverage": { +"description": "Coverage result message for one transition route group.", +"id": "GoogleCloudDialogflowCxV3TransitionRouteGroupCoverageCoverage", +"properties": { +"coverageScore": { +"description": "The percent of transition routes in the transition route group that are covered.", +"format": "float", +"type": "number" +}, +"routeGroup": { +"$ref": "GoogleCloudDialogflowCxV3TransitionRouteGroup", +"description": "Transition route group metadata. Only name and displayName will be set." +}, +"transitions": { +"description": "The list of transition routes and coverage in the transition route group.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3TransitionRouteGroupCoverageCoverageTransition" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3TransitionRouteGroupCoverageCoverageTransition": { +"description": "A transition coverage in a transition route group.", +"id": "GoogleCloudDialogflowCxV3TransitionRouteGroupCoverageCoverageTransition", +"properties": { +"covered": { +"description": "Whether the transition route is covered by at least one of the agent's test cases.", +"type": "boolean" +}, +"transitionRoute": { +"$ref": "GoogleCloudDialogflowCxV3TransitionRoute", +"description": "Intent route or condition route." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3TurnSignals": { +"description": "Collection of all signals that were extracted for a single turn of the conversation.", +"id": "GoogleCloudDialogflowCxV3TurnSignals", +"properties": { +"agentEscalated": { +"description": "Whether agent responded with LiveAgentHandoff fulfillment.", +"type": "boolean" +}, +"dtmfUsed": { +"description": "Whether user was using DTMF input.", +"type": "boolean" +}, +"failureReasons": { +"description": "Failure reasons of the turn.", +"items": { +"enum": [ +"FAILURE_REASON_UNSPECIFIED", +"FAILED_INTENT", +"FAILED_WEBHOOK" +], +"enumDescriptions": [ +"Failure reason is not assigned.", +"Whether NLU failed to recognize user intent.", +"Whether webhook failed during the turn." +], +"type": "string" +}, +"type": "array" +}, +"noMatch": { +"description": "Whether NLU predicted NO_MATCH.", +"type": "boolean" +}, +"noUserInput": { +"description": "Whether user provided no input.", +"type": "boolean" +}, +"reachedEndPage": { +"description": "Whether turn resulted in End Session page.", +"type": "boolean" +}, +"sentimentMagnitude": { +"description": "Sentiment magnitude of the user utterance if [sentiment](https://cloud.google.com/dialogflow/cx/docs/concept/sentiment) was enabled.", +"format": "float", +"type": "number" +}, +"sentimentScore": { +"description": "Sentiment score of the user utterance if [sentiment](https://cloud.google.com/dialogflow/cx/docs/concept/sentiment) was enabled.", +"format": "float", +"type": "number" +}, +"userEscalated": { +"description": "Whether user was specifically asking for a live agent.", +"type": "boolean" +}, +"webhookStatuses": { +"description": "Human-readable statuses of the webhooks triggered during this turn.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ValidateAgentRequest": { +"description": "The request message for Agents.ValidateAgent.", +"id": "GoogleCloudDialogflowCxV3ValidateAgentRequest", +"properties": { +"languageCode": { +"description": "If not specified, the agent's default language is used.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ValidateFlowRequest": { +"description": "The request message for Flows.ValidateFlow.", +"id": "GoogleCloudDialogflowCxV3ValidateFlowRequest", +"properties": { +"languageCode": { +"description": "If not specified, the agent's default language is used.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3ValidationMessage": { +"description": "Agent/flow validation message.", +"id": "GoogleCloudDialogflowCxV3ValidationMessage", +"properties": { +"detail": { +"description": "The message detail.", +"type": "string" +}, +"resourceNames": { +"description": "The resource names of the resources where the message is found.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3ResourceName" +}, +"type": "array" +}, +"resourceType": { +"description": "The type of the resources where the message is found.", +"enum": [ +"RESOURCE_TYPE_UNSPECIFIED", +"AGENT", +"INTENT", +"INTENT_TRAINING_PHRASE", +"INTENT_PARAMETER", +"INTENTS", +"INTENT_TRAINING_PHRASES", +"ENTITY_TYPE", +"ENTITY_TYPES", +"WEBHOOK", +"FLOW", +"PAGE", +"PAGES", +"TRANSITION_ROUTE_GROUP", +"AGENT_TRANSITION_ROUTE_GROUP" +], +"enumDescriptions": [ +"Unspecified.", +"Agent.", +"Intent.", +"Intent training phrase.", +"Intent parameter.", +"Multiple intents.", +"Multiple training phrases.", +"Entity type.", +"Multiple entity types.", +"Webhook.", +"Flow.", +"Page.", +"Multiple pages.", +"Transition route group.", +"Agent transition route group." +], +"type": "string" +}, +"resources": { +"deprecated": true, +"description": "The names of the resources where the message is found.", +"items": { +"type": "string" +}, +"type": "array" +}, +"severity": { +"description": "Indicates the severity of the message.", +"enum": [ +"SEVERITY_UNSPECIFIED", +"INFO", +"WARNING", +"ERROR" +], +"enumDescriptions": [ +"Unspecified.", +"The agent doesn't follow Dialogflow best practices.", +"The agent may not behave as expected.", +"The agent may experience failures." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3VariantsHistory": { +"description": "The history of variants update.", +"id": "GoogleCloudDialogflowCxV3VariantsHistory", +"properties": { +"updateTime": { +"description": "Update time of the variants.", +"format": "google-datetime", +"type": "string" +}, +"versionVariants": { +"$ref": "GoogleCloudDialogflowCxV3VersionVariants", +"description": "The flow versions as the variants." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3Version": { +"description": "Represents a version of a flow.", +"id": "GoogleCloudDialogflowCxV3Version", +"properties": { +"createTime": { +"description": "Output only. Create time of the version.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "The description of the version. The maximum length is 500 characters. If exceeded, the request is rejected.", +"type": "string" +}, +"displayName": { +"description": "Required. The human-readable name of the version. Limit of 64 characters.", +"type": "string" +}, +"name": { +"description": "Format: projects//locations//agents//flows//versions/. Version ID is a self-increasing number generated by Dialogflow upon version creation.", +"type": "string" +}, +"nluSettings": { +"$ref": "GoogleCloudDialogflowCxV3NluSettings", +"description": "Output only. The NLU settings of the flow at version creation.", +"readOnly": true +}, +"state": { +"description": "Output only. The state of this version. This field is read-only and cannot be set by create and update methods.", +"enum": [ +"STATE_UNSPECIFIED", +"RUNNING", +"SUCCEEDED", +"FAILED" +], +"enumDescriptions": [ +"Not specified. This value is not used.", +"Version is not ready to serve (e.g. training is running).", +"Training has succeeded and this version is ready to serve.", +"Version training failed." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3VersionVariants": { +"description": "A list of flow version variants.", +"id": "GoogleCloudDialogflowCxV3VersionVariants", +"properties": { +"variants": { +"description": "A list of flow version variants.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3VersionVariantsVariant" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3VersionVariantsVariant": { +"description": "A single flow version with specified traffic allocation.", +"id": "GoogleCloudDialogflowCxV3VersionVariantsVariant", +"properties": { +"isControlGroup": { +"description": "Whether the variant is for the control group.", +"type": "boolean" +}, +"trafficAllocation": { +"description": "Percentage of the traffic which should be routed to this version of flow. Traffic allocation for a single flow must sum up to 1.0.", +"format": "float", +"type": "number" +}, +"version": { +"description": "The name of the flow version. Format: `projects//locations//agents//flows//versions/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3VoiceSelectionParams": { +"description": "Description of which voice to use for speech synthesis.", +"id": "GoogleCloudDialogflowCxV3VoiceSelectionParams", +"properties": { +"name": { +"description": "Optional. The name of the voice. If not set, the service will choose a voice based on the other parameters such as language_code and ssml_gender. For the list of available voices, please refer to [Supported voices and languages](https://cloud.google.com/text-to-speech/docs/voices).", +"type": "string" +}, +"ssmlGender": { +"description": "Optional. 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 substitutes a voice with a different gender rather than failing the request.", +"enum": [ +"SSML_VOICE_GENDER_UNSPECIFIED", +"SSML_VOICE_GENDER_MALE", +"SSML_VOICE_GENDER_FEMALE", +"SSML_VOICE_GENDER_NEUTRAL" +], +"enumDescriptions": [ +"An unspecified gender, which means that the client doesn't care which gender the selected voice will have.", +"A male voice.", +"A female voice.", +"A gender-neutral voice." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3Webhook": { +"description": "Webhooks host the developer's business logic. During a session, webhooks allow the developer to use the data extracted by Dialogflow's natural language processing to generate dynamic responses, validate collected data, or trigger actions on the backend.", +"id": "GoogleCloudDialogflowCxV3Webhook", +"properties": { +"disabled": { +"description": "Indicates whether the webhook is disabled.", +"type": "boolean" +}, +"displayName": { +"description": "Required. The human-readable name of the webhook, unique within the agent.", +"type": "string" +}, +"genericWebService": { +"$ref": "GoogleCloudDialogflowCxV3WebhookGenericWebService", +"description": "Configuration for a generic web service." +}, +"name": { +"description": "The unique identifier of the webhook. Required for the Webhooks.UpdateWebhook method. Webhooks.CreateWebhook populates the name automatically. Format: `projects//locations//agents//webhooks/`.", +"type": "string" +}, +"serviceDirectory": { +"$ref": "GoogleCloudDialogflowCxV3WebhookServiceDirectoryConfig", +"description": "Configuration for a [Service Directory](https://cloud.google.com/service-directory) service." +}, +"timeout": { +"description": "Webhook execution timeout. Execution is considered failed if Dialogflow doesn't receive a response from webhook at the end of the timeout period. Defaults to 5 seconds, maximum allowed timeout is 30 seconds.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3WebhookGenericWebService": { +"description": "Represents configuration for a generic web service.", +"id": "GoogleCloudDialogflowCxV3WebhookGenericWebService", +"properties": { +"allowedCaCerts": { +"description": "Optional. Specifies a list of allowed custom CA certificates (in DER format) for HTTPS verification. This overrides the default SSL trust store. If this is empty or unspecified, Dialogflow will use Google's default trust store to verify certificates. N.B. Make sure the HTTPS server certificates are signed with \"subject alt name\". For instance a certificate can be self-signed using the following command, ``` openssl x509 -req -days 200 -in example.com.csr \\ -signkey example.com.key \\ -out example.com.crt \\ -extfile <(printf \"\\nsubjectAltName='DNS:www.example.com'\") ```", +"items": { +"format": "byte", +"type": "string" +}, +"type": "array" +}, +"httpMethod": { +"description": "Optional. HTTP method for the flexible webhook calls. Standard webhook always uses POST.", +"enum": [ +"HTTP_METHOD_UNSPECIFIED", +"POST", +"GET", +"HEAD", +"PUT", +"DELETE", +"PATCH", +"OPTIONS" +], +"enumDescriptions": [ +"HTTP method not specified.", +"HTTP POST Method.", +"HTTP GET Method.", +"HTTP HEAD Method.", +"HTTP PUT Method.", +"HTTP DELETE Method.", +"HTTP PATCH Method.", +"HTTP OPTIONS Method." +], +"type": "string" +}, +"oauthConfig": { +"$ref": "GoogleCloudDialogflowCxV3WebhookGenericWebServiceOAuthConfig", +"description": "Optional. The OAuth configuration of the webhook. If specified, Dialogflow will initiate the OAuth client credential flow to exchange an access token from the 3rd party platform and put it in the auth header." +}, +"parameterMapping": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Maps the values extracted from specific fields of the flexible webhook response into session parameters. - Key: session parameter name - Value: field path in the webhook response", +"type": "object" +}, +"password": { +"deprecated": true, +"description": "The password for HTTP Basic authentication.", +"type": "string" +}, +"requestBody": { +"description": "Optional. Defines a custom JSON object as request body to send to flexible webhook.", +"type": "string" +}, +"requestHeaders": { +"additionalProperties": { +"type": "string" +}, +"description": "The HTTP request headers to send together with webhook requests.", +"type": "object" +}, +"serviceAgentAuth": { +"description": "Optional. Indicate the auth token type generated from the [Diglogflow service agent](https://cloud.google.com/iam/docs/service-agents#dialogflow-service-agent). The generated token is sent in the Authorization header.", +"enum": [ +"SERVICE_AGENT_AUTH_UNSPECIFIED", +"NONE", +"ID_TOKEN", +"ACCESS_TOKEN" +], +"enumDescriptions": [ +"Service agent auth type unspecified. Default to ID_TOKEN.", +"No token used.", +"Use [ID token](https://cloud.google.com/docs/authentication/token-types#id) generated from service agent. This can be used to access Cloud Function and Cloud Run after you grant Invoker role to `service-@gcp-sa-dialogflow.iam.gserviceaccount.com`.", +"Use [access token](https://cloud.google.com/docs/authentication/token-types#access) generated from service agent. This can be used to access other Google Cloud APIs after you grant required roles to `service-@gcp-sa-dialogflow.iam.gserviceaccount.com`." +], +"type": "string" +}, +"uri": { +"description": "Required. The webhook URI for receiving POST requests. It must use https protocol.", +"type": "string" +}, +"username": { +"deprecated": true, +"description": "The user name for HTTP Basic authentication.", +"type": "string" +}, +"webhookType": { +"description": "Optional. Type of the webhook.", +"enum": [ +"WEBHOOK_TYPE_UNSPECIFIED", +"STANDARD", +"FLEXIBLE" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"Represents a standard webhook.", +"Represents a flexible webhook." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3WebhookGenericWebServiceOAuthConfig": { +"description": "Represents configuration of OAuth client credential flow for 3rd party API authentication.", +"id": "GoogleCloudDialogflowCxV3WebhookGenericWebServiceOAuthConfig", +"properties": { +"clientId": { +"description": "Required. The client ID provided by the 3rd party platform.", +"type": "string" +}, +"clientSecret": { +"description": "Required. The client secret provided by the 3rd party platform.", +"type": "string" +}, +"scopes": { +"description": "Optional. The OAuth scopes to grant.", +"items": { +"type": "string" +}, +"type": "array" +}, +"tokenEndpoint": { +"description": "Required. The token endpoint provided by the 3rd party platform to exchange an access token.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3WebhookRequest": { +"description": "The request message for a webhook call. The request is sent as a JSON object and the field names will be presented in camel cases. You may see undocumented fields in an actual request. These fields are used internally by Dialogflow and should be ignored.", +"id": "GoogleCloudDialogflowCxV3WebhookRequest", +"properties": { +"detectIntentResponseId": { +"description": "Always present. The unique identifier of the DetectIntentResponse that will be returned to the API caller.", +"type": "string" +}, +"dtmfDigits": { +"description": "If DTMF was provided as input, this field will contain the DTMF digits.", +"type": "string" +}, +"fulfillmentInfo": { +"$ref": "GoogleCloudDialogflowCxV3WebhookRequestFulfillmentInfo", +"description": "Always present. Information about the fulfillment that triggered this webhook call." +}, +"intentInfo": { +"$ref": "GoogleCloudDialogflowCxV3WebhookRequestIntentInfo", +"description": "Information about the last matched intent." +}, +"languageCode": { +"description": "The language code specified in the original request.", +"type": "string" +}, +"languageInfo": { +"$ref": "GoogleCloudDialogflowCxV3LanguageInfo", +"description": "Information about the language of the request." +}, +"messages": { +"description": "The list of rich message responses to present to the user. Webhook can choose to append or replace this list in WebhookResponse.fulfillment_response;", +"items": { +"$ref": "GoogleCloudDialogflowCxV3ResponseMessage" +}, +"type": "array" +}, +"pageInfo": { +"$ref": "GoogleCloudDialogflowCxV3PageInfo", +"description": "Information about page status." +}, +"payload": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Custom data set in QueryParameters.payload.", +"type": "object" +}, +"sentimentAnalysisResult": { +"$ref": "GoogleCloudDialogflowCxV3WebhookRequestSentimentAnalysisResult", +"description": "The sentiment analysis result of the current user request. The field is filled when sentiment analysis is configured to be enabled for the request." +}, +"sessionInfo": { +"$ref": "GoogleCloudDialogflowCxV3SessionInfo", +"description": "Information about session status." +}, +"text": { +"description": "If natural language text was provided as input, this field will contain a copy of the text.", +"type": "string" +}, +"transcript": { +"description": "If natural language speech audio was provided as input, this field will contain the transcript for the audio.", +"type": "string" +}, +"triggerEvent": { +"description": "If an event was provided as input, this field will contain the name of the event.", +"type": "string" +}, +"triggerIntent": { +"description": "If an intent was provided as input, this field will contain a copy of the intent identifier. Format: `projects//locations//agents//intents/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3WebhookRequestFulfillmentInfo": { +"description": "Represents fulfillment information communicated to the webhook.", +"id": "GoogleCloudDialogflowCxV3WebhookRequestFulfillmentInfo", +"properties": { +"tag": { +"description": "Always present. The value of the Fulfillment.tag field will be populated in this field by Dialogflow when the associated webhook is called. The tag is typically used by the webhook service to identify which fulfillment is being called, but it could be used for other purposes.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3WebhookRequestIntentInfo": { +"description": "Represents intent information communicated to the webhook.", +"id": "GoogleCloudDialogflowCxV3WebhookRequestIntentInfo", +"properties": { +"confidence": { +"description": "The confidence of the matched intent. Values range from 0.0 (completely uncertain) to 1.0 (completely certain).", +"format": "float", +"type": "number" +}, +"displayName": { +"description": "Always present. The display name of the last matched intent.", +"type": "string" +}, +"lastMatchedIntent": { +"description": "Always present. The unique identifier of the last matched intent. Format: `projects//locations//agents//intents/`.", +"type": "string" +}, +"parameters": { +"additionalProperties": { +"$ref": "GoogleCloudDialogflowCxV3WebhookRequestIntentInfoIntentParameterValue" +}, +"description": "Parameters identified as a result of intent matching. This is a map of the name of the identified parameter to the value of the parameter identified from the user's utterance. All parameters defined in the matched intent that are identified will be surfaced here.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3WebhookRequestIntentInfoIntentParameterValue": { +"description": "Represents a value for an intent parameter.", +"id": "GoogleCloudDialogflowCxV3WebhookRequestIntentInfoIntentParameterValue", +"properties": { +"originalValue": { +"description": "Always present. Original text value extracted from user utterance.", +"type": "string" +}, +"resolvedValue": { +"description": "Always present. Structured value for the parameter extracted from user utterance.", +"type": "any" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3WebhookRequestSentimentAnalysisResult": { +"description": "Represents the result of sentiment analysis.", +"id": "GoogleCloudDialogflowCxV3WebhookRequestSentimentAnalysisResult", +"properties": { +"magnitude": { +"description": "A non-negative number in the [0, +inf) range, which represents the absolute magnitude of sentiment, regardless of score (positive or negative).", +"format": "float", +"type": "number" +}, +"score": { +"description": "Sentiment score between -1.0 (negative sentiment) and 1.0 (positive sentiment).", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3WebhookResponse": { +"description": "The response message for a webhook call.", +"id": "GoogleCloudDialogflowCxV3WebhookResponse", +"properties": { +"fulfillmentResponse": { +"$ref": "GoogleCloudDialogflowCxV3WebhookResponseFulfillmentResponse", +"description": "The fulfillment response to send to the user. This field can be omitted by the webhook if it does not intend to send any response to the user." +}, +"pageInfo": { +"$ref": "GoogleCloudDialogflowCxV3PageInfo", +"description": "Information about page status. This field can be omitted by the webhook if it does not intend to modify page status." +}, +"payload": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Value to append directly to QueryResult.webhook_payloads.", +"type": "object" +}, +"sessionInfo": { +"$ref": "GoogleCloudDialogflowCxV3SessionInfo", +"description": "Information about session status. This field can be omitted by the webhook if it does not intend to modify session status." +}, +"targetFlow": { +"description": "The target flow to transition to. Format: `projects//locations//agents//flows/`.", +"type": "string" +}, +"targetPage": { +"description": "The target page to transition to. Format: `projects//locations//agents//flows//pages/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3WebhookResponseFulfillmentResponse": { +"description": "Represents a fulfillment response to the user.", +"id": "GoogleCloudDialogflowCxV3WebhookResponseFulfillmentResponse", +"properties": { +"mergeBehavior": { +"description": "Merge behavior for `messages`.", +"enum": [ +"MERGE_BEHAVIOR_UNSPECIFIED", +"APPEND", +"REPLACE" +], +"enumDescriptions": [ +"Not specified. `APPEND` will be used.", +"`messages` will be appended to the list of messages waiting to be sent to the user.", +"`messages` will replace the list of messages waiting to be sent to the user." +], +"type": "string" +}, +"messages": { +"description": "The list of rich message responses to present to the user.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3ResponseMessage" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3WebhookServiceDirectoryConfig": { +"description": "Represents configuration for a [Service Directory](https://cloud.google.com/service-directory) service.", +"id": "GoogleCloudDialogflowCxV3WebhookServiceDirectoryConfig", +"properties": { +"genericWebService": { +"$ref": "GoogleCloudDialogflowCxV3WebhookGenericWebService", +"description": "Generic Service configuration of this webhook." +}, +"service": { +"description": "Required. The name of [Service Directory](https://cloud.google.com/service-directory) service. Format: `projects//locations//namespaces//services/`. `Location ID` of the service directory must be the same as the location of the agent.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1AdvancedSettings": { +"description": "Hierarchical advanced settings for agent/flow/page/fulfillment/parameter. Settings exposed at lower level overrides the settings exposed at higher level. Overriding occurs at the sub-setting level. For example, the playback_interruption_settings at fulfillment level only overrides the playback_interruption_settings at the agent level, leaving other settings at the agent level unchanged. DTMF settings does not override each other. DTMF settings set at different levels define DTMF detections running in parallel. Hierarchy: Agent->Flow->Page->Fulfillment/Parameter.", +"id": "GoogleCloudDialogflowCxV3beta1AdvancedSettings", +"properties": { +"audioExportGcsDestination": { +"$ref": "GoogleCloudDialogflowCxV3beta1GcsDestination", +"description": "If present, incoming audio is exported by Dialogflow to the configured Google Cloud Storage destination. Exposed at the following levels: - Agent level - Flow level" +}, +"dtmfSettings": { +"$ref": "GoogleCloudDialogflowCxV3beta1AdvancedSettingsDtmfSettings", +"description": "Settings for DTMF. Exposed at the following levels: - Agent level - Flow level - Page level - Parameter level." +}, +"loggingSettings": { +"$ref": "GoogleCloudDialogflowCxV3beta1AdvancedSettingsLoggingSettings", +"description": "Settings for logging. Settings for Dialogflow History, Contact Center messages, StackDriver logs, and speech logging. Exposed at the following levels: - Agent level." +}, +"speechSettings": { +"$ref": "GoogleCloudDialogflowCxV3beta1AdvancedSettingsSpeechSettings", +"description": "Settings for speech to text detection. Exposed at the following levels: - Agent level - Flow level - Page level - Parameter level" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1AdvancedSettingsDtmfSettings": { +"description": "Define behaviors for DTMF (dual tone multi frequency).", +"id": "GoogleCloudDialogflowCxV3beta1AdvancedSettingsDtmfSettings", +"properties": { +"enabled": { +"description": "If true, incoming audio is processed for DTMF (dual tone multi frequency) events. For example, if the caller presses a button on their telephone keypad and DTMF processing is enabled, Dialogflow will detect the event (e.g. a \"3\" was pressed) in the incoming audio and pass the event to the bot to drive business logic (e.g. when 3 is pressed, return the account balance).", +"type": "boolean" +}, +"endpointingTimeoutDuration": { +"description": "Endpoint timeout setting for matching dtmf input to regex.", +"format": "google-duration", +"type": "string" +}, +"finishDigit": { +"description": "The digit that terminates a DTMF digit sequence.", +"type": "string" +}, +"interdigitTimeoutDuration": { +"description": "Interdigit timeout setting for matching dtmf input to regex.", +"format": "google-duration", +"type": "string" +}, +"maxDigits": { +"description": "Max length of DTMF digits.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1AdvancedSettingsLoggingSettings": { +"description": "Define behaviors on logging.", +"id": "GoogleCloudDialogflowCxV3beta1AdvancedSettingsLoggingSettings", +"properties": { +"enableConsentBasedRedaction": { +"description": "Enables consent-based end-user input redaction, if true, a pre-defined session parameter `$session.params.conversation-redaction` will be used to determine if the utterance should be redacted.", +"type": "boolean" +}, +"enableInteractionLogging": { +"description": "Enables DF Interaction logging.", +"type": "boolean" +}, +"enableStackdriverLogging": { +"description": "Enables Google Cloud Logging.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1AdvancedSettingsSpeechSettings": { +"description": "Define behaviors of speech to text detection.", +"id": "GoogleCloudDialogflowCxV3beta1AdvancedSettingsSpeechSettings", +"properties": { +"endpointerSensitivity": { +"description": "Sensitivity of the speech model that detects the end of speech. Scale from 0 to 100.", +"format": "int32", +"type": "integer" +}, +"models": { +"additionalProperties": { +"type": "string" +}, +"description": "Mapping from language to Speech-to-Text model. The mapped Speech-to-Text model will be selected for requests from its corresponding language. For more information, see [Speech models](https://cloud.google.com/dialogflow/cx/docs/concept/speech-models).", +"type": "object" +}, +"noSpeechTimeout": { +"description": "Timeout before detecting no speech.", +"format": "google-duration", +"type": "string" +}, +"useTimeoutBasedEndpointing": { +"description": "Use timeout based endpointing, interpreting endpointer sensitivy as seconds of timeout value.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1AudioInput": { +"description": "Represents the natural speech audio to be processed.", +"id": "GoogleCloudDialogflowCxV3beta1AudioInput", +"properties": { +"audio": { +"description": "The natural language speech audio to be processed. A single request can contain up to 2 minutes of speech audio data. The transcribed text cannot contain more than 256 bytes. For non-streaming audio detect intent, both `config` and `audio` must be provided. For streaming audio detect intent, `config` must be provided in the first request and `audio` must be provided in all following requests.", +"format": "byte", +"type": "string" +}, +"config": { +"$ref": "GoogleCloudDialogflowCxV3beta1InputAudioConfig", +"description": "Required. Instructs the speech recognizer how to process the speech audio." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1BargeInConfig": { +"description": "Configuration of the barge-in behavior. Barge-in instructs the API to return a detected utterance at a proper time while the client is playing back the response audio from a previous request. When the client sees the utterance, it should stop the playback and immediately get ready for receiving the responses for the current request. The barge-in handling requires the client to start streaming audio input as soon as it starts playing back the audio from the previous response. The playback is modeled into two phases: * No barge-in phase: which goes first and during which speech detection should not be carried out. * Barge-in phase: which follows the no barge-in phase and during which the API starts speech detection and may inform the client that an utterance has been detected. Note that no-speech event is not expected in this phase. The client provides this configuration in terms of the durations of those two phases. The durations are measured in terms of the audio length from the start of the input audio. No-speech event is a response with END_OF_UTTERANCE without any transcript following up.", +"id": "GoogleCloudDialogflowCxV3beta1BargeInConfig", +"properties": { +"noBargeInDuration": { +"description": "Duration that is not eligible for barge-in at the beginning of the input audio.", +"format": "google-duration", +"type": "string" +}, +"totalDuration": { +"description": "Total duration for the playback at the beginning of the input audio.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1BatchRunTestCasesMetadata": { +"description": "Metadata returned for the TestCases.BatchRunTestCases long running operation.", +"id": "GoogleCloudDialogflowCxV3beta1BatchRunTestCasesMetadata", +"properties": { +"errors": { +"description": "The test errors.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3beta1TestError" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1BatchRunTestCasesResponse": { +"description": "The response message for TestCases.BatchRunTestCases.", +"id": "GoogleCloudDialogflowCxV3beta1BatchRunTestCasesResponse", +"properties": { +"results": { +"description": "The test case results. The detailed conversation turns are empty in this response.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3beta1TestCaseResult" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ContinuousTestResult": { +"description": "Represents a result from running a test case in an agent environment.", +"id": "GoogleCloudDialogflowCxV3beta1ContinuousTestResult", +"properties": { +"name": { +"description": "The resource name for the continuous test result. Format: `projects//locations//agents//environments//continuousTestResults/`.", +"type": "string" +}, +"result": { +"description": "The result of this continuous test run, i.e. whether all the tests in this continuous test run pass or not.", +"enum": [ +"AGGREGATED_TEST_RESULT_UNSPECIFIED", +"PASSED", +"FAILED" +], +"enumDescriptions": [ +"Not specified. Should never be used.", +"All the tests passed.", +"At least one test did not pass." +], +"type": "string" +}, +"runTime": { +"description": "Time when the continuous testing run starts.", +"format": "google-datetime", +"type": "string" +}, +"testCaseResults": { +"description": "A list of individual test case results names in this continuous test run.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ConversationSignals": { +"description": "This message is used to hold all the Conversation Signals data, which will be converted to JSON and exported to BigQuery.", +"id": "GoogleCloudDialogflowCxV3beta1ConversationSignals", +"properties": { +"turnSignals": { +"$ref": "GoogleCloudDialogflowCxV3beta1TurnSignals", +"description": "Required. Turn signals for the current turn." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ConversationTurn": { +"description": "One interaction between a human and virtual agent. The human provides some input and the virtual agent provides a response.", +"id": "GoogleCloudDialogflowCxV3beta1ConversationTurn", +"properties": { +"userInput": { +"$ref": "GoogleCloudDialogflowCxV3beta1ConversationTurnUserInput", +"description": "The user input." +}, +"virtualAgentOutput": { +"$ref": "GoogleCloudDialogflowCxV3beta1ConversationTurnVirtualAgentOutput", +"description": "The virtual agent output." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ConversationTurnUserInput": { +"description": "The input from the human user.", +"id": "GoogleCloudDialogflowCxV3beta1ConversationTurnUserInput", +"properties": { +"enableSentimentAnalysis": { +"description": "Whether sentiment analysis is enabled.", +"type": "boolean" +}, +"injectedParameters": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Parameters that need to be injected into the conversation during intent detection.", +"type": "object" +}, +"input": { +"$ref": "GoogleCloudDialogflowCxV3beta1QueryInput", +"description": "Supports text input, event input, dtmf input in the test case." +}, +"isWebhookEnabled": { +"description": "If webhooks should be allowed to trigger in response to the user utterance. Often if parameters are injected, webhooks should not be enabled.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ConversationTurnVirtualAgentOutput": { +"description": "The output from the virtual agent.", +"id": "GoogleCloudDialogflowCxV3beta1ConversationTurnVirtualAgentOutput", +"properties": { +"currentPage": { +"$ref": "GoogleCloudDialogflowCxV3beta1Page", +"description": "The Page on which the utterance was spoken. Only name and displayName will be set." +}, +"diagnosticInfo": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Required. Input only. The diagnostic info output for the turn. Required to calculate the testing coverage.", +"type": "object" +}, +"differences": { +"description": "Output only. If this is part of a result conversation turn, the list of differences between the original run and the replay for this output, if any.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3beta1TestRunDifference" +}, +"readOnly": true, +"type": "array" +}, +"sessionParameters": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "The session parameters available to the bot at this point.", +"type": "object" +}, +"status": { +"$ref": "GoogleRpcStatus", +"description": "Response error from the agent in the test result. If set, other output is empty." +}, +"textResponses": { +"description": "The text responses from the agent for the turn.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3beta1ResponseMessageText" +}, +"type": "array" +}, +"triggeredIntent": { +"$ref": "GoogleCloudDialogflowCxV3beta1Intent", +"description": "The Intent that triggered the response. Only name and displayName will be set." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1CreateVersionOperationMetadata": { +"description": "Metadata associated with the long running operation for Versions.CreateVersion.", +"id": "GoogleCloudDialogflowCxV3beta1CreateVersionOperationMetadata", +"properties": { +"version": { +"description": "Name of the created version. Format: `projects//locations//agents//flows//versions/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1DataStoreConnection": { +"description": "A data store connection. It represents a data store in Discovery Engine and the type of the contents it contains.", +"id": "GoogleCloudDialogflowCxV3beta1DataStoreConnection", +"properties": { +"dataStore": { +"description": "The full name of the referenced data store. Formats: `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}` `projects/{project}/locations/{location}/dataStores/{data_store}`", +"type": "string" +}, +"dataStoreType": { +"description": "The type of the connected data store.", +"enum": [ +"DATA_STORE_TYPE_UNSPECIFIED", +"PUBLIC_WEB", +"UNSTRUCTURED", +"STRUCTURED" +], +"enumDescriptions": [ +"Not specified. This value indicates that the data store type is not specified, so it will not be used during search.", +"A data store that contains public web content.", +"A data store that contains unstructured private data.", +"A data store that contains structured data (for example FAQ)." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1DeployFlowMetadata": { +"description": "Metadata returned for the Environments.DeployFlow long running operation.", +"id": "GoogleCloudDialogflowCxV3beta1DeployFlowMetadata", +"properties": { +"testErrors": { +"description": "Errors of running deployment tests.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3beta1TestError" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1DeployFlowResponse": { +"description": "The response message for Environments.DeployFlow.", +"id": "GoogleCloudDialogflowCxV3beta1DeployFlowResponse", +"properties": { +"deployment": { +"description": "The name of the flow version deployment. Format: `projects//locations//agents//environments//deployments/`.", +"type": "string" +}, +"environment": { +"$ref": "GoogleCloudDialogflowCxV3beta1Environment", +"description": "The updated environment where the flow is deployed." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1DtmfInput": { +"description": "Represents the input for dtmf event.", +"id": "GoogleCloudDialogflowCxV3beta1DtmfInput", +"properties": { +"digits": { +"description": "The dtmf digits.", +"type": "string" +}, +"finishDigit": { +"description": "The finish digit (if any).", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1Environment": { +"description": "Represents an environment for an agent. You can create multiple versions of your agent and publish them to separate environments. When you edit an agent, you are editing the draft agent. At any point, you can save the draft agent as an agent version, which is an immutable snapshot of your agent. When you save the draft agent, it is published to the default environment. When you create agent versions, you can publish them to custom environments. You can create a variety of custom environments for testing, development, production, etc.", +"id": "GoogleCloudDialogflowCxV3beta1Environment", +"properties": { +"description": { +"description": "The human-readable description of the environment. The maximum length is 500 characters. If exceeded, the request is rejected.", +"type": "string" +}, +"displayName": { +"description": "Required. The human-readable name of the environment (unique in an agent). Limit of 64 characters.", +"type": "string" +}, +"name": { +"description": "The name of the environment. Format: `projects//locations//agents//environments/`.", +"type": "string" +}, +"testCasesConfig": { +"$ref": "GoogleCloudDialogflowCxV3beta1EnvironmentTestCasesConfig", +"description": "The test cases config for continuous tests of this environment." +}, +"updateTime": { +"description": "Output only. Update time of this environment.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"versionConfigs": { +"description": "A list of configurations for flow versions. You should include version configs for all flows that are reachable from `Start Flow` in the agent. Otherwise, an error will be returned.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3beta1EnvironmentVersionConfig" +}, +"type": "array" +}, +"webhookConfig": { +"$ref": "GoogleCloudDialogflowCxV3beta1EnvironmentWebhookConfig", +"description": "The webhook configuration for this environment." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1EnvironmentTestCasesConfig": { +"description": "The configuration for continuous tests.", +"id": "GoogleCloudDialogflowCxV3beta1EnvironmentTestCasesConfig", +"properties": { +"enableContinuousRun": { +"description": "Whether to run test cases in TestCasesConfig.test_cases periodically. Default false. If set to true, run once a day.", +"type": "boolean" +}, +"enablePredeploymentRun": { +"description": "Whether to run test cases in TestCasesConfig.test_cases before deploying a flow version to the environment. Default false.", +"type": "boolean" +}, +"testCases": { +"description": "A list of test case names to run. They should be under the same agent. Format of each test case name: `projects//locations//agents//testCases/`", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1EnvironmentVersionConfig": { +"description": "Configuration for the version.", +"id": "GoogleCloudDialogflowCxV3beta1EnvironmentVersionConfig", +"properties": { +"version": { +"description": "Required. Both flow and playbook versions are supported. Format for flow version: projects//locations//agents//flows//versions/. Format for playbook version: projects//locations//agents//playbooks//versions/.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1EnvironmentWebhookConfig": { +"description": "Configuration for webhooks.", +"id": "GoogleCloudDialogflowCxV3beta1EnvironmentWebhookConfig", +"properties": { +"webhookOverrides": { +"description": "The list of webhooks to override for the agent environment. The webhook must exist in the agent. You can override fields in `generic_web_service` and `service_directory`.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3beta1Webhook" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1EventHandler": { +"description": "An event handler specifies an event that can be handled during a session. When the specified event happens, the following actions are taken in order: * If there is a `trigger_fulfillment` associated with the event, it will be called. * If there is a `target_page` associated with the event, the session will transition into the specified page. * If there is a `target_flow` associated with the event, the session will transition into the specified flow.", +"id": "GoogleCloudDialogflowCxV3beta1EventHandler", +"properties": { +"event": { +"description": "Required. The name of the event to handle.", +"type": "string" +}, +"name": { +"description": "Output only. The unique identifier of this event handler.", +"readOnly": true, +"type": "string" +}, +"targetFlow": { +"description": "The target flow to transition to. Format: `projects//locations//agents//flows/`.", +"type": "string" +}, +"targetPage": { +"description": "The target page to transition to. Format: `projects//locations//agents//flows//pages/`.", +"type": "string" +}, +"targetPlaybook": { +"description": "The target playbook to transition to. Format: `projects//locations//agents//playbooks/`.", +"type": "string" +}, +"triggerFulfillment": { +"$ref": "GoogleCloudDialogflowCxV3beta1Fulfillment", +"description": "The fulfillment to call when the event occurs. Handling webhook errors with a fulfillment enabled with webhook could cause infinite loop. It is invalid to specify such fulfillment for a handler handling webhooks." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1EventInput": { +"description": "Represents the event to trigger.", +"id": "GoogleCloudDialogflowCxV3beta1EventInput", +"properties": { +"event": { +"description": "Name of the event.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ExportAgentResponse": { +"description": "The response message for Agents.ExportAgent.", +"id": "GoogleCloudDialogflowCxV3beta1ExportAgentResponse", +"properties": { +"agentContent": { +"description": "Uncompressed raw byte content for agent. This field is populated if none of `agent_uri` and `git_destination` are specified in ExportAgentRequest.", +"format": "byte", +"type": "string" +}, +"agentUri": { +"description": "The URI to a file containing the exported agent. This field is populated if `agent_uri` is specified in ExportAgentRequest.", +"type": "string" +}, +"commitSha": { +"description": "Commit SHA of the git push. This field is populated if `git_destination` is specified in ExportAgentRequest.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ExportEntityTypesMetadata": { +"description": "Metadata returned for the EntityTypes.ExportEntityTypes long running operation.", +"id": "GoogleCloudDialogflowCxV3beta1ExportEntityTypesMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ExportEntityTypesResponse": { +"description": "The response message for EntityTypes.ExportEntityTypes.", +"id": "GoogleCloudDialogflowCxV3beta1ExportEntityTypesResponse", +"properties": { +"entityTypesContent": { +"$ref": "GoogleCloudDialogflowCxV3beta1InlineDestination", +"description": "Uncompressed byte content for entity types. This field is populated only if `entity_types_content_inline` is set to true in ExportEntityTypesRequest." +}, +"entityTypesUri": { +"description": "The URI to a file containing the exported entity types. This field is populated only if `entity_types_uri` is specified in ExportEntityTypesRequest.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ExportFlowResponse": { +"description": "The response message for Flows.ExportFlow.", +"id": "GoogleCloudDialogflowCxV3beta1ExportFlowResponse", +"properties": { +"flowContent": { +"description": "Uncompressed raw byte content for flow.", +"format": "byte", +"type": "string" +}, +"flowUri": { +"description": "The URI to a file containing the exported flow. This field is populated only if `flow_uri` is specified in ExportFlowRequest.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ExportIntentsMetadata": { +"description": "Metadata returned for the Intents.ExportIntents long running operation.", +"id": "GoogleCloudDialogflowCxV3beta1ExportIntentsMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ExportIntentsResponse": { +"description": "The response message for Intents.ExportIntents.", +"id": "GoogleCloudDialogflowCxV3beta1ExportIntentsResponse", +"properties": { +"intentsContent": { +"$ref": "GoogleCloudDialogflowCxV3beta1InlineDestination", +"description": "Uncompressed byte content for intents. This field is populated only if `intents_content_inline` is set to true in ExportIntentsRequest." +}, +"intentsUri": { +"description": "The URI to a file containing the exported intents. This field is populated only if `intents_uri` is specified in ExportIntentsRequest.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ExportTestCasesMetadata": { +"description": "Metadata returned for the TestCases.ExportTestCases long running operation. This message currently has no fields.", +"id": "GoogleCloudDialogflowCxV3beta1ExportTestCasesMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ExportTestCasesResponse": { +"description": "The response message for TestCases.ExportTestCases.", +"id": "GoogleCloudDialogflowCxV3beta1ExportTestCasesResponse", +"properties": { +"content": { +"description": "Uncompressed raw byte content for test cases.", +"format": "byte", +"type": "string" +}, +"gcsUri": { +"description": "The URI to a file containing the exported test cases. This field is populated only if `gcs_uri` is specified in ExportTestCasesRequest.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1Form": { +"description": "A form is a data model that groups related parameters that can be collected from the user. The process in which the agent prompts the user and collects parameter values from the user is called form filling. A form can be added to a page. When form filling is done, the filled parameters will be written to the session.", +"id": "GoogleCloudDialogflowCxV3beta1Form", +"properties": { +"parameters": { +"description": "Parameters to collect from the user.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3beta1FormParameter" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1FormParameter": { +"description": "Represents a form parameter.", +"id": "GoogleCloudDialogflowCxV3beta1FormParameter", +"properties": { +"advancedSettings": { +"$ref": "GoogleCloudDialogflowCxV3beta1AdvancedSettings", +"description": "Hierarchical advanced settings for this parameter. The settings exposed at the lower level overrides the settings exposed at the higher level." +}, +"defaultValue": { +"description": "The default value of an optional parameter. If the parameter is required, the default value will be ignored.", +"type": "any" +}, +"displayName": { +"description": "Required. The human-readable name of the parameter, unique within the form.", +"type": "string" +}, +"entityType": { +"description": "Required. The entity type of the parameter. Format: `projects/-/locations/-/agents/-/entityTypes/` for system entity types (for example, `projects/-/locations/-/agents/-/entityTypes/sys.date`), or `projects//locations//agents//entityTypes/` for developer entity types.", +"type": "string" +}, +"fillBehavior": { +"$ref": "GoogleCloudDialogflowCxV3beta1FormParameterFillBehavior", +"description": "Required. Defines fill behavior for the parameter." +}, +"isList": { +"description": "Indicates whether the parameter represents a list of values.", +"type": "boolean" +}, +"redact": { +"description": "Indicates whether the parameter content should be redacted in log. If redaction is enabled, the parameter content will be replaced by parameter name during logging. Note: the parameter content is subject to redaction if either parameter level redaction or entity type level redaction is enabled.", +"type": "boolean" +}, +"required": { +"description": "Indicates whether the parameter is required. Optional parameters will not trigger prompts; however, they are filled if the user specifies them. Required parameters must be filled before form filling concludes.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1FormParameterFillBehavior": { +"description": "Configuration for how the filling of a parameter should be handled.", +"id": "GoogleCloudDialogflowCxV3beta1FormParameterFillBehavior", +"properties": { +"initialPromptFulfillment": { +"$ref": "GoogleCloudDialogflowCxV3beta1Fulfillment", +"description": "Required. The fulfillment to provide the initial prompt that the agent can present to the user in order to fill the parameter." +}, +"repromptEventHandlers": { +"description": "The handlers for parameter-level events, used to provide reprompt for the parameter or transition to a different page/flow. The supported events are: * `sys.no-match-`, where N can be from 1 to 6 * `sys.no-match-default` * `sys.no-input-`, where N can be from 1 to 6 * `sys.no-input-default` * `sys.invalid-parameter` `initial_prompt_fulfillment` provides the first prompt for the parameter. If the user's response does not fill the parameter, a no-match/no-input event will be triggered, and the fulfillment associated with the `sys.no-match-1`/`sys.no-input-1` handler (if defined) will be called to provide a prompt. The `sys.no-match-2`/`sys.no-input-2` handler (if defined) will respond to the next no-match/no-input event, and so on. A `sys.no-match-default` or `sys.no-input-default` handler will be used to handle all following no-match/no-input events after all numbered no-match/no-input handlers for the parameter are consumed. A `sys.invalid-parameter` handler can be defined to handle the case where the parameter values have been `invalidated` by webhook. For example, if the user's response fill the parameter, however the parameter was invalidated by webhook, the fulfillment associated with the `sys.invalid-parameter` handler (if defined) will be called to provide a prompt. If the event handler for the corresponding event can't be found on the parameter, `initial_prompt_fulfillment` will be re-prompted.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3beta1EventHandler" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1Fulfillment": { +"description": "A fulfillment can do one or more of the following actions at the same time: * Generate rich message responses. * Set parameter values. * Call the webhook. Fulfillments can be called at various stages in the Page or Form lifecycle. For example, when a DetectIntentRequest drives a session to enter a new page, the page's entry fulfillment can add a static response to the QueryResult in the returning DetectIntentResponse, call the webhook (for example, to load user data from a database), or both.", +"id": "GoogleCloudDialogflowCxV3beta1Fulfillment", +"properties": { +"advancedSettings": { +"$ref": "GoogleCloudDialogflowCxV3beta1AdvancedSettings", +"description": "Hierarchical advanced settings for this fulfillment. The settings exposed at the lower level overrides the settings exposed at the higher level." +}, +"conditionalCases": { +"description": "Conditional cases for this fulfillment.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3beta1FulfillmentConditionalCases" +}, +"type": "array" +}, +"enableGenerativeFallback": { +"description": "If the flag is true, the agent will utilize LLM to generate a text response. If LLM generation fails, the defined responses in the fulfillment will be respected. This flag is only useful for fulfillments associated with no-match event handlers.", +"type": "boolean" +}, +"messages": { +"description": "The list of rich message responses to present to the user.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3beta1ResponseMessage" +}, +"type": "array" +}, +"returnPartialResponses": { +"description": "Whether Dialogflow should return currently queued fulfillment response messages in streaming APIs. If a webhook is specified, it happens before Dialogflow invokes webhook. Warning: 1) This flag only affects streaming API. Responses are still queued and returned once in non-streaming API. 2) The flag can be enabled in any fulfillment but only the first 3 partial responses will be returned. You may only want to apply it to fulfillments that have slow webhooks.", +"type": "boolean" +}, +"setParameterActions": { +"description": "Set parameter values before executing the webhook.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3beta1FulfillmentSetParameterAction" +}, +"type": "array" +}, +"tag": { +"description": "The value of this field will be populated in the WebhookRequest `fulfillmentInfo.tag` field by Dialogflow when the associated webhook is called. The tag is typically used by the webhook service to identify which fulfillment is being called, but it could be used for other purposes. This field is required if `webhook` is specified.", +"type": "string" +}, +"webhook": { +"description": "The webhook to call. Format: `projects//locations//agents//webhooks/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1FulfillmentConditionalCases": { +"description": "A list of cascading if-else conditions. Cases are mutually exclusive. The first one with a matching condition is selected, all the rest ignored.", +"id": "GoogleCloudDialogflowCxV3beta1FulfillmentConditionalCases", +"properties": { +"cases": { +"description": "A list of cascading if-else conditions.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3beta1FulfillmentConditionalCasesCase" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1FulfillmentConditionalCasesCase": { +"description": "Each case has a Boolean condition. When it is evaluated to be True, the corresponding messages will be selected and evaluated recursively.", +"id": "GoogleCloudDialogflowCxV3beta1FulfillmentConditionalCasesCase", +"properties": { +"caseContent": { +"description": "A list of case content.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3beta1FulfillmentConditionalCasesCaseCaseContent" +}, +"type": "array" +}, +"condition": { +"description": "The condition to activate and select this case. Empty means the condition is always true. The condition is evaluated against form parameters or session parameters. See the [conditions reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition).", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1FulfillmentConditionalCasesCaseCaseContent": { +"description": "The list of messages or conditional cases to activate for this case.", +"id": "GoogleCloudDialogflowCxV3beta1FulfillmentConditionalCasesCaseCaseContent", +"properties": { +"additionalCases": { +"$ref": "GoogleCloudDialogflowCxV3beta1FulfillmentConditionalCases", +"description": "Additional cases to be evaluated." +}, +"message": { +"$ref": "GoogleCloudDialogflowCxV3beta1ResponseMessage", +"description": "Returned message." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1FulfillmentSetParameterAction": { +"description": "Setting a parameter value.", +"id": "GoogleCloudDialogflowCxV3beta1FulfillmentSetParameterAction", +"properties": { +"parameter": { +"description": "Display name of the parameter.", +"type": "string" +}, +"value": { +"description": "The new value of the parameter. A null value clears the parameter.", +"type": "any" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1GcsDestination": { +"description": "Google Cloud Storage location for a Dialogflow operation that writes or exports objects (e.g. exported agent or transcripts) outside of Dialogflow.", +"id": "GoogleCloudDialogflowCxV3beta1GcsDestination", +"properties": { +"uri": { +"description": "Required. The Google Cloud Storage URI for the exported objects. A URI is of the form: `gs://bucket/object-name-or-prefix` Whether a full object name, or just a prefix, its usage depends on the Dialogflow operation.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ImportEntityTypesMetadata": { +"description": "Metadata returned for the EntityTypes.ImportEntityTypes long running operation.", +"id": "GoogleCloudDialogflowCxV3beta1ImportEntityTypesMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ImportEntityTypesResponse": { +"description": "The response message for EntityTypes.ImportEntityTypes.", +"id": "GoogleCloudDialogflowCxV3beta1ImportEntityTypesResponse", +"properties": { +"conflictingResources": { +"$ref": "GoogleCloudDialogflowCxV3beta1ImportEntityTypesResponseConflictingResources", +"description": "Info which resources have conflicts when REPORT_CONFLICT merge_option is set in ImportEntityTypesRequest." +}, +"entityTypes": { +"description": "The unique identifier of the imported entity types. Format: `projects//locations//agents//entity_types/`.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ImportEntityTypesResponseConflictingResources": { +"description": "Conflicting resources detected during the import process. Only filled when REPORT_CONFLICT is set in the request and there are conflicts in the display names.", +"id": "GoogleCloudDialogflowCxV3beta1ImportEntityTypesResponseConflictingResources", +"properties": { +"entityDisplayNames": { +"description": "Display names of conflicting entities.", +"items": { +"type": "string" +}, +"type": "array" +}, +"entityTypeDisplayNames": { +"description": "Display names of conflicting entity types.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ImportFlowResponse": { +"description": "The response message for Flows.ImportFlow.", +"id": "GoogleCloudDialogflowCxV3beta1ImportFlowResponse", +"properties": { +"flow": { +"description": "The unique identifier of the new flow. Format: `projects//locations//agents//flows/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ImportIntentsMetadata": { +"description": "Metadata returned for the Intents.ImportIntents long running operation.", +"id": "GoogleCloudDialogflowCxV3beta1ImportIntentsMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ImportIntentsResponse": { +"description": "The response message for Intents.ImportIntents.", +"id": "GoogleCloudDialogflowCxV3beta1ImportIntentsResponse", +"properties": { +"conflictingResources": { +"$ref": "GoogleCloudDialogflowCxV3beta1ImportIntentsResponseConflictingResources", +"description": "Info which resources have conflicts when REPORT_CONFLICT merge_option is set in ImportIntentsRequest." +}, +"intents": { +"description": "The unique identifier of the imported intents. Format: `projects//locations//agents//intents/`.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ImportIntentsResponseConflictingResources": { +"description": "Conflicting resources detected during the import process. Only filled when REPORT_CONFLICT is set in the request and there are conflicts in the display names.", +"id": "GoogleCloudDialogflowCxV3beta1ImportIntentsResponseConflictingResources", +"properties": { +"entityDisplayNames": { +"description": "Display names of conflicting entities.", +"items": { +"type": "string" +}, +"type": "array" +}, +"intentDisplayNames": { +"description": "Display names of conflicting intents.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ImportTestCasesMetadata": { +"description": "Metadata returned for the TestCases.ImportTestCases long running operation.", +"id": "GoogleCloudDialogflowCxV3beta1ImportTestCasesMetadata", +"properties": { +"errors": { +"description": "Errors for failed test cases.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3beta1TestCaseError" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ImportTestCasesResponse": { +"description": "The response message for TestCases.ImportTestCases.", +"id": "GoogleCloudDialogflowCxV3beta1ImportTestCasesResponse", +"properties": { +"names": { +"description": "The unique identifiers of the new test cases. Format: `projects//locations//agents//testCases/`.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1InlineDestination": { +"description": "Inline destination for a Dialogflow operation that writes or exports objects (e.g. intents) outside of Dialogflow.", +"id": "GoogleCloudDialogflowCxV3beta1InlineDestination", +"properties": { +"content": { +"description": "Output only. The uncompressed byte content for the objects. Only populated in responses.", +"format": "byte", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1InputAudioConfig": { +"description": "Instructs the speech recognizer on how to process the audio content.", +"id": "GoogleCloudDialogflowCxV3beta1InputAudioConfig", +"properties": { +"audioEncoding": { +"description": "Required. Audio encoding of the audio content to process.", +"enum": [ +"AUDIO_ENCODING_UNSPECIFIED", +"AUDIO_ENCODING_LINEAR_16", +"AUDIO_ENCODING_FLAC", +"AUDIO_ENCODING_MULAW", +"AUDIO_ENCODING_AMR", +"AUDIO_ENCODING_AMR_WB", +"AUDIO_ENCODING_OGG_OPUS", +"AUDIO_ENCODING_SPEEX_WITH_HEADER_BYTE", +"AUDIO_ENCODING_ALAW" +], +"enumDescriptions": [ +"Not specified.", +"Uncompressed 16-bit signed little-endian samples (Linear PCM).", +"[`FLAC`](https://xiph.org/flac/documentation.html) (Free Lossless Audio Codec) is the recommended encoding because it is lossless (therefore recognition is not compromised) and requires only about half the bandwidth of `LINEAR16`. `FLAC` stream encoding supports 16-bit and 24-bit samples, however, not all fields in `STREAMINFO` are supported.", +"8-bit samples that compand 14-bit audio samples using G.711 PCMU/mu-law.", +"Adaptive Multi-Rate Narrowband codec. `sample_rate_hertz` must be 8000.", +"Adaptive Multi-Rate Wideband codec. `sample_rate_hertz` must be 16000.", +"Opus encoded audio frames in Ogg container ([OggOpus](https://wiki.xiph.org/OggOpus)). `sample_rate_hertz` must be 16000.", +"Although the use of lossy encodings is not recommended, if a very low bitrate encoding is required, `OGG_OPUS` is highly preferred over Speex encoding. The [Speex](https://speex.org/) encoding supported by Dialogflow API has a header byte in each block, as in MIME type `audio/x-speex-with-header-byte`. It is a variant of the RTP Speex encoding defined in [RFC 5574](https://tools.ietf.org/html/rfc5574). The stream is a sequence of blocks, one block per RTP packet. Each block starts with a byte containing the length of the block, in bytes, followed by one or more frames of Speex data, padded to an integral number of bytes (octets) as specified in RFC 5574. In other words, each RTP header is replaced with a single byte containing the block length. Only Speex wideband is supported. `sample_rate_hertz` must be 16000.", +"8-bit samples that compand 13-bit audio samples using G.711 PCMU/a-law." +], +"type": "string" +}, +"bargeInConfig": { +"$ref": "GoogleCloudDialogflowCxV3beta1BargeInConfig", +"description": "Configuration of barge-in behavior during the streaming of input audio." +}, +"enableWordInfo": { +"description": "Optional. If `true`, Dialogflow returns SpeechWordInfo in StreamingRecognitionResult with information about the recognized speech words, e.g. start and end time offsets. If false or unspecified, Speech doesn't return any word-level information.", +"type": "boolean" +}, +"model": { +"description": "Optional. Which Speech model to select for the given request. For more information, see [Speech models](https://cloud.google.com/dialogflow/cx/docs/concept/speech-models).", +"type": "string" +}, +"modelVariant": { +"description": "Optional. Which variant of the Speech model to use.", +"enum": [ +"SPEECH_MODEL_VARIANT_UNSPECIFIED", +"USE_BEST_AVAILABLE", +"USE_STANDARD", +"USE_ENHANCED" +], +"enumDescriptions": [ +"No model variant specified. In this case Dialogflow defaults to USE_BEST_AVAILABLE.", +"Use the best available variant of the Speech model that the caller is eligible for.", +"Use standard model variant even if an enhanced model is available. See the [Cloud Speech documentation](https://cloud.google.com/speech-to-text/docs/enhanced-models) for details about enhanced models.", +"Use an enhanced model variant: * If an enhanced variant does not exist for the given model and request language, Dialogflow falls back to the standard variant. The [Cloud Speech documentation](https://cloud.google.com/speech-to-text/docs/enhanced-models) describes which models have enhanced variants." +], +"type": "string" +}, +"optOutConformerModelMigration": { +"description": "If `true`, the request will opt out for STT conformer model migration. This field will be deprecated once force migration takes place in June 2024. Please refer to [Dialogflow CX Speech model migration](https://cloud.google.com/dialogflow/cx/docs/concept/speech-model-migration).", +"type": "boolean" +}, +"phraseHints": { +"description": "Optional. A list of strings containing words and phrases that the speech recognizer should recognize with higher likelihood. See [the Cloud Speech documentation](https://cloud.google.com/speech-to-text/docs/basics#phrase-hints) for more details.", +"items": { +"type": "string" +}, +"type": "array" +}, +"sampleRateHertz": { +"description": "Sample rate (in Hertz) of the audio content sent in the query. Refer to [Cloud Speech API documentation](https://cloud.google.com/speech-to-text/docs/basics) for more details.", +"format": "int32", +"type": "integer" +}, +"singleUtterance": { +"description": "Optional. If `false` (default), recognition does not cease until the client closes the stream. If `true`, the recognizer will detect a single spoken utterance in input audio. Recognition ceases when it detects the audio's voice has stopped or paused. In this case, once a detected intent is received, the client should close the stream and start a new request with a new stream as needed. Note: This setting is relevant only for streaming methods.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1Intent": { +"description": "An intent represents a user's intent to interact with a conversational agent. You can provide information for the Dialogflow API to use to match user input to an intent by adding training phrases (i.e., examples of user input) to your intent.", +"id": "GoogleCloudDialogflowCxV3beta1Intent", +"properties": { +"description": { +"description": "Human readable description for better understanding an intent like its scope, content, result etc. Maximum character limit: 140 characters.", +"type": "string" +}, +"displayName": { +"description": "Required. The human-readable name of the intent, unique within the agent.", +"type": "string" +}, +"isFallback": { +"description": "Indicates whether this is a fallback intent. Currently only default fallback intent is allowed in the agent, which is added upon agent creation. Adding training phrases to fallback intent is useful in the case of requests that are mistakenly matched, since training phrases assigned to fallback intents act as negative examples that triggers no-match event.", +"type": "boolean" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "The key/value metadata to label an intent. Labels can contain lowercase letters, digits and the symbols '-' and '_'. International characters are allowed, including letters from unicase alphabets. Keys must start with a letter. Keys and values can be no longer than 63 characters and no more than 128 bytes. Prefix \"sys-\" is reserved for Dialogflow defined labels. Currently allowed Dialogflow defined labels include: * sys-head * sys-contextual The above labels do not require value. \"sys-head\" means the intent is a head intent. \"sys-contextual\" means the intent is a contextual intent.", +"type": "object" +}, +"name": { +"description": "The unique identifier of the intent. Required for the Intents.UpdateIntent method. Intents.CreateIntent populates the name automatically. Format: `projects//locations//agents//intents/`.", +"type": "string" +}, +"parameters": { +"description": "The collection of parameters associated with the intent.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3beta1IntentParameter" +}, +"type": "array" +}, +"priority": { +"description": "The priority of this intent. Higher numbers represent higher priorities. - If the supplied value is unspecified or 0, the service translates the value to 500,000, which corresponds to the `Normal` priority in the console. - If the supplied value is negative, the intent is ignored in runtime detect intent requests.", +"format": "int32", +"type": "integer" +}, +"trainingPhrases": { +"description": "The collection of training phrases the agent is trained on to identify the intent.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3beta1IntentTrainingPhrase" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1IntentInput": { +"description": "Represents the intent to trigger programmatically rather than as a result of natural language processing.", +"id": "GoogleCloudDialogflowCxV3beta1IntentInput", +"properties": { +"intent": { +"description": "Required. The unique identifier of the intent. Format: `projects//locations//agents//intents/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1IntentParameter": { +"description": "Represents an intent parameter.", +"id": "GoogleCloudDialogflowCxV3beta1IntentParameter", +"properties": { +"entityType": { +"description": "Required. The entity type of the parameter. Format: `projects/-/locations/-/agents/-/entityTypes/` for system entity types (for example, `projects/-/locations/-/agents/-/entityTypes/sys.date`), or `projects//locations//agents//entityTypes/` for developer entity types.", +"type": "string" +}, +"id": { +"description": "Required. The unique identifier of the parameter. This field is used by training phrases to annotate their parts.", +"type": "string" +}, +"isList": { +"description": "Indicates whether the parameter represents a list of values.", +"type": "boolean" +}, +"redact": { +"description": "Indicates whether the parameter content should be redacted in log. If redaction is enabled, the parameter content will be replaced by parameter name during logging. Note: the parameter content is subject to redaction if either parameter level redaction or entity type level redaction is enabled.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1IntentTrainingPhrase": { +"description": "Represents an example that the agent is trained on to identify the intent.", +"id": "GoogleCloudDialogflowCxV3beta1IntentTrainingPhrase", +"properties": { +"id": { +"description": "Output only. The unique identifier of the training phrase.", +"readOnly": true, +"type": "string" +}, +"parts": { +"description": "Required. The ordered list of training phrase parts. The parts are concatenated in order to form the training phrase. Note: The API does not automatically annotate training phrases like the Dialogflow Console does. Note: Do not forget to include whitespace at part boundaries, so the training phrase is well formatted when the parts are concatenated. If the training phrase does not need to be annotated with parameters, you just need a single part with only the Part.text field set. If you want to annotate the training phrase, you must create multiple parts, where the fields of each part are populated in one of two ways: - `Part.text` is set to a part of the phrase that has no parameters. - `Part.text` is set to a part of the phrase that you want to annotate, and the `parameter_id` field is set.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3beta1IntentTrainingPhrasePart" +}, +"type": "array" +}, +"repeatCount": { +"description": "Indicates how many times this example was added to the intent.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1IntentTrainingPhrasePart": { +"description": "Represents a part of a training phrase.", +"id": "GoogleCloudDialogflowCxV3beta1IntentTrainingPhrasePart", +"properties": { +"parameterId": { +"description": "The parameter used to annotate this part of the training phrase. This field is required for annotated parts of the training phrase.", +"type": "string" +}, +"text": { +"description": "Required. The text for this part.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1KnowledgeConnectorSettings": { +"description": "The Knowledge Connector settings for this page or flow. This includes information such as the attached Knowledge Bases, and the way to execute fulfillment.", +"id": "GoogleCloudDialogflowCxV3beta1KnowledgeConnectorSettings", +"properties": { +"dataStoreConnections": { +"description": "Optional. List of related data store connections.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3beta1DataStoreConnection" +}, +"type": "array" +}, +"enabled": { +"description": "Whether Knowledge Connector is enabled or not.", +"type": "boolean" +}, +"targetFlow": { +"description": "The target flow to transition to. Format: `projects//locations//agents//flows/`.", +"type": "string" +}, +"targetPage": { +"description": "The target page to transition to. Format: `projects//locations//agents//flows//pages/`.", +"type": "string" +}, +"triggerFulfillment": { +"$ref": "GoogleCloudDialogflowCxV3beta1Fulfillment", +"description": "The fulfillment to be triggered. When the answers from the Knowledge Connector are selected by Dialogflow, you can utitlize the request scoped parameter `$request.knowledge.answers` (contains up to the 5 highest confidence answers) and `$request.knowledge.questions` (contains the corresponding questions) to construct the fulfillment." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1LanguageInfo": { +"description": "Represents the language information of the request.", +"id": "GoogleCloudDialogflowCxV3beta1LanguageInfo", +"properties": { +"confidenceScore": { +"description": "The confidence score of the detected language between 0 and 1.", +"format": "float", +"type": "number" +}, +"inputLanguageCode": { +"description": "The language code specified in the original request.", +"type": "string" +}, +"resolvedLanguageCode": { +"description": "The language code detected for this request based on the user conversation.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1Page": { +"description": "A Dialogflow CX conversation (session) can be described and visualized as a state machine. The states of a CX session are represented by pages. For each flow, you define many pages, where your combined pages can handle a complete conversation on the topics the flow is designed for. At any given moment, exactly one page is the current page, the current page is considered active, and the flow associated with that page is considered active. Every flow has a special start page. When a flow initially becomes active, the start page page becomes the current page. For each conversational turn, the current page will either stay the same or transition to another page. You configure each page to collect information from the end-user that is relevant for the conversational state represented by the page. For more information, see the [Page guide](https://cloud.google.com/dialogflow/cx/docs/concept/page).", +"id": "GoogleCloudDialogflowCxV3beta1Page", +"properties": { +"advancedSettings": { +"$ref": "GoogleCloudDialogflowCxV3beta1AdvancedSettings", +"description": "Hierarchical advanced settings for this page. The settings exposed at the lower level overrides the settings exposed at the higher level." +}, +"description": { +"description": "The description of the page. The maximum length is 500 characters.", +"type": "string" +}, +"displayName": { +"description": "Required. The human-readable name of the page, unique within the flow.", +"type": "string" +}, +"entryFulfillment": { +"$ref": "GoogleCloudDialogflowCxV3beta1Fulfillment", +"description": "The fulfillment to call when the session is entering the page." +}, +"eventHandlers": { +"description": "Handlers associated with the page to handle events such as webhook errors, no match or no input.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3beta1EventHandler" +}, +"type": "array" +}, +"form": { +"$ref": "GoogleCloudDialogflowCxV3beta1Form", +"description": "The form associated with the page, used for collecting parameters relevant to the page." +}, +"knowledgeConnectorSettings": { +"$ref": "GoogleCloudDialogflowCxV3beta1KnowledgeConnectorSettings", +"description": "Optional. Knowledge connector configuration." +}, +"name": { +"description": "The unique identifier of the page. Required for the Pages.UpdatePage method. Pages.CreatePage populates the name automatically. Format: `projects//locations//agents//flows//pages/`.", +"type": "string" +}, +"transitionRouteGroups": { +"description": "Ordered list of `TransitionRouteGroups` added to the page. Transition route groups must be unique within a page. If the page links both flow-level transition route groups and agent-level transition route groups, the flow-level ones will have higher priority and will be put before the agent-level ones. * If multiple transition routes within a page scope refer to the same intent, then the precedence order is: page's transition route -> page's transition route group -> flow's transition routes. * If multiple transition route groups within a page contain the same intent, then the first group in the ordered list takes precedence. Format:`projects//locations//agents//flows//transitionRouteGroups/` or `projects//locations//agents//transitionRouteGroups/` for agent-level groups.", +"items": { +"type": "string" +}, +"type": "array" +}, +"transitionRoutes": { +"description": "A list of transitions for the transition rules of this page. They route the conversation to another page in the same flow, or another flow. When we are in a certain page, the TransitionRoutes are evalauted in the following order: * TransitionRoutes defined in the page with intent specified. * TransitionRoutes defined in the transition route groups with intent specified. * TransitionRoutes defined in flow with intent specified. * TransitionRoutes defined in the transition route groups with intent specified. * TransitionRoutes defined in the page with only condition specified. * TransitionRoutes defined in the transition route groups with only condition specified.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3beta1TransitionRoute" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1PageInfo": { +"description": "Represents page information communicated to and from the webhook.", +"id": "GoogleCloudDialogflowCxV3beta1PageInfo", +"properties": { +"currentPage": { +"description": "Always present for WebhookRequest. Ignored for WebhookResponse. The unique identifier of the current page. Format: `projects//locations//agents//flows//pages/`.", +"type": "string" +}, +"displayName": { +"description": "Always present for WebhookRequest. Ignored for WebhookResponse. The display name of the current page.", +"type": "string" +}, +"formInfo": { +"$ref": "GoogleCloudDialogflowCxV3beta1PageInfoFormInfo", +"description": "Optional for both WebhookRequest and WebhookResponse. Information about the form." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1PageInfoFormInfo": { +"description": "Represents form information.", +"id": "GoogleCloudDialogflowCxV3beta1PageInfoFormInfo", +"properties": { +"parameterInfo": { +"description": "Optional for both WebhookRequest and WebhookResponse. The parameters contained in the form. Note that the webhook cannot add or remove any form parameter.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3beta1PageInfoFormInfoParameterInfo" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1PageInfoFormInfoParameterInfo": { +"description": "Represents parameter information.", +"id": "GoogleCloudDialogflowCxV3beta1PageInfoFormInfoParameterInfo", +"properties": { +"displayName": { +"description": "Always present for WebhookRequest. Required for WebhookResponse. The human-readable name of the parameter, unique within the form. This field cannot be modified by the webhook.", +"type": "string" +}, +"justCollected": { +"description": "Optional for WebhookRequest. Ignored for WebhookResponse. Indicates if the parameter value was just collected on the last conversation turn.", +"type": "boolean" +}, +"required": { +"description": "Optional for both WebhookRequest and WebhookResponse. Indicates whether the parameter is required. Optional parameters will not trigger prompts; however, they are filled if the user specifies them. Required parameters must be filled before form filling concludes.", +"type": "boolean" +}, +"state": { +"description": "Always present for WebhookRequest. Required for WebhookResponse. The state of the parameter. This field can be set to INVALID by the webhook to invalidate the parameter; other values set by the webhook will be ignored.", +"enum": [ +"PARAMETER_STATE_UNSPECIFIED", +"EMPTY", +"INVALID", +"FILLED" +], +"enumDescriptions": [ +"Not specified. This value should be never used.", +"Indicates that the parameter does not have a value.", +"Indicates that the parameter value is invalid. This field can be used by the webhook to invalidate the parameter and ask the server to collect it from the user again.", +"Indicates that the parameter has a value." +], +"type": "string" +}, +"value": { +"description": "Optional for both WebhookRequest and WebhookResponse. The value of the parameter. This field can be set by the webhook to change the parameter value.", +"type": "any" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1QueryInput": { +"description": "Represents the query input. It can contain one of: 1. A conversational query in the form of text. 2. An intent query that specifies which intent to trigger. 3. Natural language speech audio to be processed. 4. An event to be triggered. 5. DTMF digits to invoke an intent and fill in parameter value. 6. The results of a tool executed by the client.", +"id": "GoogleCloudDialogflowCxV3beta1QueryInput", +"properties": { +"audio": { +"$ref": "GoogleCloudDialogflowCxV3beta1AudioInput", +"description": "The natural language speech audio to be processed." +}, +"dtmf": { +"$ref": "GoogleCloudDialogflowCxV3beta1DtmfInput", +"description": "The DTMF event to be handled." +}, +"event": { +"$ref": "GoogleCloudDialogflowCxV3beta1EventInput", +"description": "The event to be triggered." +}, +"intent": { +"$ref": "GoogleCloudDialogflowCxV3beta1IntentInput", +"description": "The intent to be triggered." +}, +"languageCode": { +"description": "Required. The language of the input. See [Language Support](https://cloud.google.com/dialogflow/cx/docs/reference/language) for a list of the currently supported language codes. Note that queries in the same session do not necessarily need to specify the same language.", +"type": "string" +}, +"text": { +"$ref": "GoogleCloudDialogflowCxV3beta1TextInput", +"description": "The natural language text to be processed." +}, +"toolCallResult": { +"$ref": "GoogleCloudDialogflowCxV3beta1ToolCallResult", +"description": "The results of a tool executed by the client." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ResponseMessage": { +"description": "Represents a response message that can be returned by a conversational agent. Response messages are also used for output audio synthesis. The approach is as follows: * If at least one OutputAudioText response is present, then all OutputAudioText responses are linearly concatenated, and the result is used for output audio synthesis. * If the OutputAudioText responses are a mixture of text and SSML, then the concatenated result is treated as SSML; otherwise, the result is treated as either text or SSML as appropriate. The agent designer should ideally use either text or SSML consistently throughout the bot design. * Otherwise, all Text responses are linearly concatenated, and the result is used for output audio synthesis. This approach allows for more sophisticated user experience scenarios, where the text displayed to the user may differ from what is heard.", +"id": "GoogleCloudDialogflowCxV3beta1ResponseMessage", +"properties": { +"channel": { +"description": "The channel which the response is associated with. Clients can specify the channel via QueryParameters.channel, and only associated channel response will be returned.", +"type": "string" +}, +"conversationSuccess": { +"$ref": "GoogleCloudDialogflowCxV3beta1ResponseMessageConversationSuccess", +"description": "Indicates that the conversation succeeded." +}, +"endInteraction": { +"$ref": "GoogleCloudDialogflowCxV3beta1ResponseMessageEndInteraction", +"description": "Output only. A signal that indicates the interaction with the Dialogflow agent has ended. This message is generated by Dialogflow only when the conversation reaches `END_SESSION` page. It is not supposed to be defined by the user. It's guaranteed that there is at most one such message in each response.", +"readOnly": true +}, +"knowledgeInfoCard": { +"$ref": "GoogleCloudDialogflowCxV3beta1ResponseMessageKnowledgeInfoCard", +"description": "Represents info card for knowledge answers, to be better rendered in Dialogflow Messenger." +}, +"liveAgentHandoff": { +"$ref": "GoogleCloudDialogflowCxV3beta1ResponseMessageLiveAgentHandoff", +"description": "Hands off conversation to a human agent." +}, +"mixedAudio": { +"$ref": "GoogleCloudDialogflowCxV3beta1ResponseMessageMixedAudio", +"description": "Output only. An audio response message composed of both the synthesized Dialogflow agent responses and responses defined via play_audio. This message is generated by Dialogflow only and not supposed to be defined by the user.", +"readOnly": true +}, +"outputAudioText": { +"$ref": "GoogleCloudDialogflowCxV3beta1ResponseMessageOutputAudioText", +"description": "A text or ssml response that is preferentially used for TTS output audio synthesis, as described in the comment on the ResponseMessage message." +}, +"payload": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Returns a response containing a custom, platform-specific payload.", +"type": "object" +}, +"playAudio": { +"$ref": "GoogleCloudDialogflowCxV3beta1ResponseMessagePlayAudio", +"description": "Signal that the client should play an audio clip hosted at a client-specific URI. Dialogflow uses this to construct mixed_audio. However, Dialogflow itself does not try to read or process the URI in any way." +}, +"telephonyTransferCall": { +"$ref": "GoogleCloudDialogflowCxV3beta1ResponseMessageTelephonyTransferCall", +"description": "A signal that the client should transfer the phone call connected to this agent to a third-party endpoint." +}, +"text": { +"$ref": "GoogleCloudDialogflowCxV3beta1ResponseMessageText", +"description": "Returns a text response." +}, +"toolCall": { +"$ref": "GoogleCloudDialogflowCxV3beta1ToolCall", +"description": "Returns the definition of a tool call that should be executed by the client." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ResponseMessageConversationSuccess": { +"description": "Indicates that the conversation succeeded, i.e., the bot handled the issue that the customer talked to it about. Dialogflow only uses this to determine which conversations should be counted as successful and doesn't process the metadata in this message in any way. Note that Dialogflow also considers conversations that get to the conversation end page as successful even if they don't return ConversationSuccess. You may set this, for example: * In the entry_fulfillment of a Page if entering the page indicates that the conversation succeeded. * In a webhook response when you determine that you handled the customer issue.", +"id": "GoogleCloudDialogflowCxV3beta1ResponseMessageConversationSuccess", +"properties": { +"metadata": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Custom metadata. Dialogflow doesn't impose any structure on this.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ResponseMessageEndInteraction": { +"description": "Indicates that interaction with the Dialogflow agent has ended. This message is generated by Dialogflow only and not supposed to be defined by the user.", +"id": "GoogleCloudDialogflowCxV3beta1ResponseMessageEndInteraction", +"properties": {}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ResponseMessageKnowledgeInfoCard": { +"description": "Represents info card response. If the response contains generative knowledge prediction, Dialogflow will return a payload with Infobot Messenger compatible info card. Otherwise, the info card response is skipped.", +"id": "GoogleCloudDialogflowCxV3beta1ResponseMessageKnowledgeInfoCard", +"properties": {}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ResponseMessageLiveAgentHandoff": { +"description": "Indicates that the conversation should be handed off to a live agent. Dialogflow only uses this to determine which conversations were handed off to a human agent for measurement purposes. What else to do with this signal is up to you and your handoff procedures. You may set this, for example: * In the entry_fulfillment of a Page if entering the page indicates something went extremely wrong in the conversation. * In a webhook response when you determine that the customer issue can only be handled by a human.", +"id": "GoogleCloudDialogflowCxV3beta1ResponseMessageLiveAgentHandoff", +"properties": { +"metadata": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Custom metadata for your handoff procedure. Dialogflow doesn't impose any structure on this.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ResponseMessageMixedAudio": { +"description": "Represents an audio message that is composed of both segments synthesized from the Dialogflow agent prompts and ones hosted externally at the specified URIs. The external URIs are specified via play_audio. This message is generated by Dialogflow only and not supposed to be defined by the user.", +"id": "GoogleCloudDialogflowCxV3beta1ResponseMessageMixedAudio", +"properties": { +"segments": { +"description": "Segments this audio response is composed of.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3beta1ResponseMessageMixedAudioSegment" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ResponseMessageMixedAudioSegment": { +"description": "Represents one segment of audio.", +"id": "GoogleCloudDialogflowCxV3beta1ResponseMessageMixedAudioSegment", +"properties": { +"allowPlaybackInterruption": { +"description": "Output only. Whether the playback of this segment can be interrupted by the end user's speech and the client should then start the next Dialogflow request.", +"readOnly": true, +"type": "boolean" +}, +"audio": { +"description": "Raw audio synthesized from the Dialogflow agent's response using the output config specified in the request.", +"format": "byte", +"type": "string" +}, +"uri": { +"description": "Client-specific URI that points to an audio clip accessible to the client. Dialogflow does not impose any validation on it.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ResponseMessageOutputAudioText": { +"description": "A text or ssml response that is preferentially used for TTS output audio synthesis, as described in the comment on the ResponseMessage message.", +"id": "GoogleCloudDialogflowCxV3beta1ResponseMessageOutputAudioText", +"properties": { +"allowPlaybackInterruption": { +"description": "Output only. Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.", +"readOnly": true, +"type": "boolean" +}, +"ssml": { +"description": "The SSML text to be synthesized. For more information, see [SSML](/speech/text-to-speech/docs/ssml).", +"type": "string" +}, +"text": { +"description": "The raw text to be synthesized.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ResponseMessagePlayAudio": { +"description": "Specifies an audio clip to be played by the client as part of the response.", +"id": "GoogleCloudDialogflowCxV3beta1ResponseMessagePlayAudio", +"properties": { +"allowPlaybackInterruption": { +"description": "Output only. Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.", +"readOnly": true, +"type": "boolean" +}, +"audioUri": { +"description": "Required. URI of the audio clip. Dialogflow does not impose any validation on this value. It is specific to the client that reads it.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ResponseMessageTelephonyTransferCall": { +"description": "Represents the signal that telles the client to transfer the phone call connected to the agent to a third-party endpoint.", +"id": "GoogleCloudDialogflowCxV3beta1ResponseMessageTelephonyTransferCall", +"properties": { +"phoneNumber": { +"description": "Transfer the call to a phone number in [E.164 format](https://en.wikipedia.org/wiki/E.164).", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ResponseMessageText": { +"description": "The text response message.", +"id": "GoogleCloudDialogflowCxV3beta1ResponseMessageText", +"properties": { +"allowPlaybackInterruption": { +"description": "Output only. Whether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.", +"readOnly": true, +"type": "boolean" +}, +"text": { +"description": "Required. A collection of text response variants. If multiple variants are defined, only one text response variant is returned at runtime.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1RunContinuousTestMetadata": { +"description": "Metadata returned for the Environments.RunContinuousTest long running operation.", +"id": "GoogleCloudDialogflowCxV3beta1RunContinuousTestMetadata", +"properties": { +"errors": { +"description": "The test errors.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3beta1TestError" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1RunContinuousTestResponse": { +"description": "The response message for Environments.RunContinuousTest.", +"id": "GoogleCloudDialogflowCxV3beta1RunContinuousTestResponse", +"properties": { +"continuousTestResult": { +"$ref": "GoogleCloudDialogflowCxV3beta1ContinuousTestResult", +"description": "The result for a continuous test run." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1RunTestCaseMetadata": { +"description": "Metadata returned for the TestCases.RunTestCase long running operation. This message currently has no fields.", +"id": "GoogleCloudDialogflowCxV3beta1RunTestCaseMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1RunTestCaseResponse": { +"description": "The response message for TestCases.RunTestCase.", +"id": "GoogleCloudDialogflowCxV3beta1RunTestCaseResponse", +"properties": { +"result": { +"$ref": "GoogleCloudDialogflowCxV3beta1TestCaseResult", +"description": "The result." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1SessionInfo": { +"description": "Represents session information communicated to and from the webhook.", +"id": "GoogleCloudDialogflowCxV3beta1SessionInfo", +"properties": { +"parameters": { +"additionalProperties": { +"type": "any" +}, +"description": "Optional for WebhookRequest. Optional for WebhookResponse. All parameters collected from forms and intents during the session. Parameters can be created, updated, or removed by the webhook. To remove a parameter from the session, the webhook should explicitly set the parameter value to null in WebhookResponse. The map is keyed by parameters' display names.", +"type": "object" +}, +"session": { +"description": "Always present for WebhookRequest. Ignored for WebhookResponse. The unique identifier of the session. This field can be used by the webhook to identify a session. Format: `projects//locations//agents//sessions/` or `projects//locations//agents//environments//sessions/` if environment is specified.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1TestCase": { +"description": "Represents a test case.", +"id": "GoogleCloudDialogflowCxV3beta1TestCase", +"properties": { +"creationTime": { +"description": "Output only. When the test was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Required. The human-readable name of the test case, unique within the agent. Limit of 200 characters.", +"type": "string" +}, +"lastTestResult": { +"$ref": "GoogleCloudDialogflowCxV3beta1TestCaseResult", +"description": "The latest test result." +}, +"name": { +"description": "The unique identifier of the test case. TestCases.CreateTestCase will populate the name automatically. Otherwise use format: `projects//locations//agents//testCases/`.", +"type": "string" +}, +"notes": { +"description": "Additional freeform notes about the test case. Limit of 400 characters.", +"type": "string" +}, +"tags": { +"description": "Tags are short descriptions that users may apply to test cases for organizational and filtering purposes. Each tag should start with \"#\" and has a limit of 30 characters.", +"items": { +"type": "string" +}, +"type": "array" +}, +"testCaseConversationTurns": { +"description": "The conversation turns uttered when the test case was created, in chronological order. These include the canonical set of agent utterances that should occur when the agent is working properly.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3beta1ConversationTurn" +}, +"type": "array" +}, +"testConfig": { +"$ref": "GoogleCloudDialogflowCxV3beta1TestConfig", +"description": "Config for the test case." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1TestCaseError": { +"description": "Error info for importing a test.", +"id": "GoogleCloudDialogflowCxV3beta1TestCaseError", +"properties": { +"status": { +"$ref": "GoogleRpcStatus", +"description": "The status associated with the test case." +}, +"testCase": { +"$ref": "GoogleCloudDialogflowCxV3beta1TestCase", +"description": "The test case." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1TestCaseResult": { +"description": "Represents a result from running a test case in an agent environment.", +"id": "GoogleCloudDialogflowCxV3beta1TestCaseResult", +"properties": { +"conversationTurns": { +"description": "The conversation turns uttered during the test case replay in chronological order.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3beta1ConversationTurn" +}, +"type": "array" +}, +"environment": { +"description": "Environment where the test was run. If not set, it indicates the draft environment.", +"type": "string" +}, +"name": { +"description": "The resource name for the test case result. Format: `projects//locations//agents//testCases//results/`.", +"type": "string" +}, +"testResult": { +"description": "Whether the test case passed in the agent environment.", +"enum": [ +"TEST_RESULT_UNSPECIFIED", +"PASSED", +"FAILED" +], +"enumDescriptions": [ +"Not specified. Should never be used.", +"The test passed.", +"The test did not pass." +], +"type": "string" +}, +"testTime": { +"description": "The time that the test was run.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1TestConfig": { +"description": "Represents configurations for a test case.", +"id": "GoogleCloudDialogflowCxV3beta1TestConfig", +"properties": { +"flow": { +"description": "Flow name to start the test case with. Format: `projects//locations//agents//flows/`. Only one of `flow` and `page` should be set to indicate the starting point of the test case. If neither is set, the test case will start with start page on the default start flow.", +"type": "string" +}, +"page": { +"description": "The page to start the test case with. Format: `projects//locations//agents//flows//pages/`. Only one of `flow` and `page` should be set to indicate the starting point of the test case. If neither is set, the test case will start with start page on the default start flow.", +"type": "string" +}, +"trackingParameters": { +"description": "Session parameters to be compared when calculating differences.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1TestError": { +"description": "Error info for running a test.", +"id": "GoogleCloudDialogflowCxV3beta1TestError", +"properties": { +"status": { +"$ref": "GoogleRpcStatus", +"description": "The status associated with the test." +}, +"testCase": { +"description": "The test case resource name.", +"type": "string" +}, +"testTime": { +"description": "The timestamp when the test was completed.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1TestRunDifference": { +"description": "The description of differences between original and replayed agent output.", +"id": "GoogleCloudDialogflowCxV3beta1TestRunDifference", +"properties": { +"description": { +"description": "A human readable description of the diff, showing the actual output vs expected output.", +"type": "string" +}, +"type": { +"description": "The type of diff.", +"enum": [ +"DIFF_TYPE_UNSPECIFIED", +"INTENT", +"PAGE", +"PARAMETERS", +"UTTERANCE", +"FLOW" +], +"enumDescriptions": [ +"Should never be used.", +"The intent.", +"The page.", +"The parameters.", +"The message utterance.", +"The flow." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1TextInput": { +"description": "Represents the natural language text to be processed.", +"id": "GoogleCloudDialogflowCxV3beta1TextInput", +"properties": { +"text": { +"description": "Required. The UTF-8 encoded natural language text to be processed.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ToolCall": { +"description": "Represents a call of a specific tool's action with the specified inputs.", +"id": "GoogleCloudDialogflowCxV3beta1ToolCall", +"properties": { +"action": { +"description": "Required. The name of the tool's action associated with this call.", +"type": "string" +}, +"inputParameters": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Optional. The action's input parameters.", +"type": "object" +}, +"tool": { +"description": "Required. The tool associated with this call. Format: `projects//locations//agents//tools/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ToolCallResult": { +"description": "The result of calling a tool's action that has been executed by the client.", +"id": "GoogleCloudDialogflowCxV3beta1ToolCallResult", +"properties": { +"action": { +"description": "Required. The name of the tool's action associated with this call.", +"type": "string" +}, +"error": { +"$ref": "GoogleCloudDialogflowCxV3beta1ToolCallResultError", +"description": "The tool call's error." +}, +"outputParameters": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "The tool call's output parameters.", +"type": "object" +}, +"tool": { +"description": "Required. The tool associated with this call. Format: `projects//locations//agents//tools/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1ToolCallResultError": { +"description": "An error produced by the tool call.", +"id": "GoogleCloudDialogflowCxV3beta1ToolCallResultError", +"properties": { +"message": { +"description": "Optional. The error message of the function.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1TransitionRoute": { +"description": "A transition route specifies a intent that can be matched and/or a data condition that can be evaluated during a session. When a specified transition is matched, the following actions are taken in order: * If there is a `trigger_fulfillment` associated with the transition, it will be called. * If there is a `target_page` associated with the transition, the session will transition into the specified page. * If there is a `target_flow` associated with the transition, the session will transition into the specified flow.", +"id": "GoogleCloudDialogflowCxV3beta1TransitionRoute", +"properties": { +"condition": { +"description": "The condition to evaluate against form parameters or session parameters. See the [conditions reference](https://cloud.google.com/dialogflow/cx/docs/reference/condition). At least one of `intent` or `condition` must be specified. When both `intent` and `condition` are specified, the transition can only happen when both are fulfilled.", +"type": "string" +}, +"description": { +"description": "Optional. The description of the transition route. The maximum length is 500 characters.", +"type": "string" +}, +"intent": { +"description": "The unique identifier of an Intent. Format: `projects//locations//agents//intents/`. Indicates that the transition can only happen when the given intent is matched. At least one of `intent` or `condition` must be specified. When both `intent` and `condition` are specified, the transition can only happen when both are fulfilled.", +"type": "string" +}, +"name": { +"description": "Output only. The unique identifier of this transition route.", +"readOnly": true, +"type": "string" +}, +"targetFlow": { +"description": "The target flow to transition to. Format: `projects//locations//agents//flows/`.", +"type": "string" +}, +"targetPage": { +"description": "The target page to transition to. Format: `projects//locations//agents//flows//pages/`.", +"type": "string" +}, +"triggerFulfillment": { +"$ref": "GoogleCloudDialogflowCxV3beta1Fulfillment", +"description": "The fulfillment to call when the condition is satisfied. At least one of `trigger_fulfillment` and `target` must be specified. When both are defined, `trigger_fulfillment` is executed first." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1TurnSignals": { +"description": "Collection of all signals that were extracted for a single turn of the conversation.", +"id": "GoogleCloudDialogflowCxV3beta1TurnSignals", +"properties": { +"agentEscalated": { +"description": "Whether agent responded with LiveAgentHandoff fulfillment.", +"type": "boolean" +}, +"dtmfUsed": { +"description": "Whether user was using DTMF input.", +"type": "boolean" +}, +"failureReasons": { +"description": "Failure reasons of the turn.", +"items": { +"enum": [ +"FAILURE_REASON_UNSPECIFIED", +"FAILED_INTENT", +"FAILED_WEBHOOK" +], +"enumDescriptions": [ +"Failure reason is not assigned.", +"Whether NLU failed to recognize user intent.", +"Whether webhook failed during the turn." +], +"type": "string" +}, +"type": "array" +}, +"noMatch": { +"description": "Whether NLU predicted NO_MATCH.", +"type": "boolean" +}, +"noUserInput": { +"description": "Whether user provided no input.", +"type": "boolean" +}, +"reachedEndPage": { +"description": "Whether turn resulted in End Session page.", +"type": "boolean" +}, +"sentimentMagnitude": { +"description": "Sentiment magnitude of the user utterance if [sentiment](https://cloud.google.com/dialogflow/cx/docs/concept/sentiment) was enabled.", +"format": "float", +"type": "number" +}, +"sentimentScore": { +"description": "Sentiment score of the user utterance if [sentiment](https://cloud.google.com/dialogflow/cx/docs/concept/sentiment) was enabled.", +"format": "float", +"type": "number" +}, +"userEscalated": { +"description": "Whether user was specifically asking for a live agent.", +"type": "boolean" +}, +"webhookStatuses": { +"description": "Human-readable statuses of the webhooks triggered during this turn.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1Webhook": { +"description": "Webhooks host the developer's business logic. During a session, webhooks allow the developer to use the data extracted by Dialogflow's natural language processing to generate dynamic responses, validate collected data, or trigger actions on the backend.", +"id": "GoogleCloudDialogflowCxV3beta1Webhook", +"properties": { +"disabled": { +"description": "Indicates whether the webhook is disabled.", +"type": "boolean" +}, +"displayName": { +"description": "Required. The human-readable name of the webhook, unique within the agent.", +"type": "string" +}, +"genericWebService": { +"$ref": "GoogleCloudDialogflowCxV3beta1WebhookGenericWebService", +"description": "Configuration for a generic web service." +}, +"name": { +"description": "The unique identifier of the webhook. Required for the Webhooks.UpdateWebhook method. Webhooks.CreateWebhook populates the name automatically. Format: `projects//locations//agents//webhooks/`.", +"type": "string" +}, +"serviceDirectory": { +"$ref": "GoogleCloudDialogflowCxV3beta1WebhookServiceDirectoryConfig", +"description": "Configuration for a [Service Directory](https://cloud.google.com/service-directory) service." +}, +"timeout": { +"description": "Webhook execution timeout. Execution is considered failed if Dialogflow doesn't receive a response from webhook at the end of the timeout period. Defaults to 5 seconds, maximum allowed timeout is 30 seconds.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1WebhookGenericWebService": { +"description": "Represents configuration for a generic web service.", +"id": "GoogleCloudDialogflowCxV3beta1WebhookGenericWebService", +"properties": { +"allowedCaCerts": { +"description": "Optional. Specifies a list of allowed custom CA certificates (in DER format) for HTTPS verification. This overrides the default SSL trust store. If this is empty or unspecified, Dialogflow will use Google's default trust store to verify certificates. N.B. Make sure the HTTPS server certificates are signed with \"subject alt name\". For instance a certificate can be self-signed using the following command, ``` openssl x509 -req -days 200 -in example.com.csr \\ -signkey example.com.key \\ -out example.com.crt \\ -extfile <(printf \"\\nsubjectAltName='DNS:www.example.com'\") ```", +"items": { +"format": "byte", +"type": "string" +}, +"type": "array" +}, +"httpMethod": { +"description": "Optional. HTTP method for the flexible webhook calls. Standard webhook always uses POST.", +"enum": [ +"HTTP_METHOD_UNSPECIFIED", +"POST", +"GET", +"HEAD", +"PUT", +"DELETE", +"PATCH", +"OPTIONS" +], +"enumDescriptions": [ +"HTTP method not specified.", +"HTTP POST Method.", +"HTTP GET Method.", +"HTTP HEAD Method.", +"HTTP PUT Method.", +"HTTP DELETE Method.", +"HTTP PATCH Method.", +"HTTP OPTIONS Method." +], +"type": "string" +}, +"oauthConfig": { +"$ref": "GoogleCloudDialogflowCxV3beta1WebhookGenericWebServiceOAuthConfig", +"description": "Optional. The OAuth configuration of the webhook. If specified, Dialogflow will initiate the OAuth client credential flow to exchange an access token from the 3rd party platform and put it in the auth header." +}, +"parameterMapping": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Maps the values extracted from specific fields of the flexible webhook response into session parameters. - Key: session parameter name - Value: field path in the webhook response", +"type": "object" +}, +"password": { +"deprecated": true, +"description": "The password for HTTP Basic authentication.", +"type": "string" +}, +"requestBody": { +"description": "Optional. Defines a custom JSON object as request body to send to flexible webhook.", +"type": "string" +}, +"requestHeaders": { +"additionalProperties": { +"type": "string" +}, +"description": "The HTTP request headers to send together with webhook requests.", +"type": "object" +}, +"serviceAgentAuth": { +"description": "Optional. Indicate the auth token type generated from the [Diglogflow service agent](https://cloud.google.com/iam/docs/service-agents#dialogflow-service-agent). The generated token is sent in the Authorization header.", +"enum": [ +"SERVICE_AGENT_AUTH_UNSPECIFIED", +"NONE", +"ID_TOKEN", +"ACCESS_TOKEN" +], +"enumDescriptions": [ +"Service agent auth type unspecified. Default to ID_TOKEN.", +"No token used.", +"Use [ID token](https://cloud.google.com/docs/authentication/token-types#id) generated from service agent. This can be used to access Cloud Function and Cloud Run after you grant Invoker role to `service-@gcp-sa-dialogflow.iam.gserviceaccount.com`.", +"Use [access token](https://cloud.google.com/docs/authentication/token-types#access) generated from service agent. This can be used to access other Google Cloud APIs after you grant required roles to `service-@gcp-sa-dialogflow.iam.gserviceaccount.com`." +], +"type": "string" +}, +"uri": { +"description": "Required. The webhook URI for receiving POST requests. It must use https protocol.", +"type": "string" +}, +"username": { +"deprecated": true, +"description": "The user name for HTTP Basic authentication.", +"type": "string" +}, +"webhookType": { +"description": "Optional. Type of the webhook.", +"enum": [ +"WEBHOOK_TYPE_UNSPECIFIED", +"STANDARD", +"FLEXIBLE" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"Represents a standard webhook.", +"Represents a flexible webhook." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1WebhookGenericWebServiceOAuthConfig": { +"description": "Represents configuration of OAuth client credential flow for 3rd party API authentication.", +"id": "GoogleCloudDialogflowCxV3beta1WebhookGenericWebServiceOAuthConfig", +"properties": { +"clientId": { +"description": "Required. The client ID provided by the 3rd party platform.", +"type": "string" +}, +"clientSecret": { +"description": "Required. The client secret provided by the 3rd party platform.", +"type": "string" +}, +"scopes": { +"description": "Optional. The OAuth scopes to grant.", +"items": { +"type": "string" +}, +"type": "array" +}, +"tokenEndpoint": { +"description": "Required. The token endpoint provided by the 3rd party platform to exchange an access token.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1WebhookRequest": { +"description": "The request message for a webhook call. The request is sent as a JSON object and the field names will be presented in camel cases. You may see undocumented fields in an actual request. These fields are used internally by Dialogflow and should be ignored.", +"id": "GoogleCloudDialogflowCxV3beta1WebhookRequest", +"properties": { +"detectIntentResponseId": { +"description": "Always present. The unique identifier of the DetectIntentResponse that will be returned to the API caller.", +"type": "string" +}, +"dtmfDigits": { +"description": "If DTMF was provided as input, this field will contain the DTMF digits.", +"type": "string" +}, +"fulfillmentInfo": { +"$ref": "GoogleCloudDialogflowCxV3beta1WebhookRequestFulfillmentInfo", +"description": "Always present. Information about the fulfillment that triggered this webhook call." +}, +"intentInfo": { +"$ref": "GoogleCloudDialogflowCxV3beta1WebhookRequestIntentInfo", +"description": "Information about the last matched intent." +}, +"languageCode": { +"description": "The language code specified in the original request.", +"type": "string" +}, +"languageInfo": { +"$ref": "GoogleCloudDialogflowCxV3beta1LanguageInfo", +"description": "Information about the language of the request." +}, +"messages": { +"description": "The list of rich message responses to present to the user. Webhook can choose to append or replace this list in WebhookResponse.fulfillment_response;", +"items": { +"$ref": "GoogleCloudDialogflowCxV3beta1ResponseMessage" +}, +"type": "array" +}, +"pageInfo": { +"$ref": "GoogleCloudDialogflowCxV3beta1PageInfo", +"description": "Information about page status." +}, +"payload": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Custom data set in QueryParameters.payload.", +"type": "object" +}, +"sentimentAnalysisResult": { +"$ref": "GoogleCloudDialogflowCxV3beta1WebhookRequestSentimentAnalysisResult", +"description": "The sentiment analysis result of the current user request. The field is filled when sentiment analysis is configured to be enabled for the request." +}, +"sessionInfo": { +"$ref": "GoogleCloudDialogflowCxV3beta1SessionInfo", +"description": "Information about session status." +}, +"text": { +"description": "If natural language text was provided as input, this field will contain a copy of the text.", +"type": "string" +}, +"transcript": { +"description": "If natural language speech audio was provided as input, this field will contain the transcript for the audio.", +"type": "string" +}, +"triggerEvent": { +"description": "If an event was provided as input, this field will contain the name of the event.", +"type": "string" +}, +"triggerIntent": { +"description": "If an intent was provided as input, this field will contain a copy of the intent identifier. Format: `projects//locations//agents//intents/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1WebhookRequestFulfillmentInfo": { +"description": "Represents fulfillment information communicated to the webhook.", +"id": "GoogleCloudDialogflowCxV3beta1WebhookRequestFulfillmentInfo", +"properties": { +"tag": { +"description": "Always present. The value of the Fulfillment.tag field will be populated in this field by Dialogflow when the associated webhook is called. The tag is typically used by the webhook service to identify which fulfillment is being called, but it could be used for other purposes.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1WebhookRequestIntentInfo": { +"description": "Represents intent information communicated to the webhook.", +"id": "GoogleCloudDialogflowCxV3beta1WebhookRequestIntentInfo", +"properties": { +"confidence": { +"description": "The confidence of the matched intent. Values range from 0.0 (completely uncertain) to 1.0 (completely certain).", +"format": "float", +"type": "number" +}, +"displayName": { +"description": "Always present. The display name of the last matched intent.", +"type": "string" +}, +"lastMatchedIntent": { +"description": "Always present. The unique identifier of the last matched intent. Format: `projects//locations//agents//intents/`.", +"type": "string" +}, +"parameters": { +"additionalProperties": { +"$ref": "GoogleCloudDialogflowCxV3beta1WebhookRequestIntentInfoIntentParameterValue" +}, +"description": "Parameters identified as a result of intent matching. This is a map of the name of the identified parameter to the value of the parameter identified from the user's utterance. All parameters defined in the matched intent that are identified will be surfaced here.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1WebhookRequestIntentInfoIntentParameterValue": { +"description": "Represents a value for an intent parameter.", +"id": "GoogleCloudDialogflowCxV3beta1WebhookRequestIntentInfoIntentParameterValue", +"properties": { +"originalValue": { +"description": "Always present. Original text value extracted from user utterance.", +"type": "string" +}, +"resolvedValue": { +"description": "Always present. Structured value for the parameter extracted from user utterance.", +"type": "any" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1WebhookRequestSentimentAnalysisResult": { +"description": "Represents the result of sentiment analysis.", +"id": "GoogleCloudDialogflowCxV3beta1WebhookRequestSentimentAnalysisResult", +"properties": { +"magnitude": { +"description": "A non-negative number in the [0, +inf) range, which represents the absolute magnitude of sentiment, regardless of score (positive or negative).", +"format": "float", +"type": "number" +}, +"score": { +"description": "Sentiment score between -1.0 (negative sentiment) and 1.0 (positive sentiment).", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1WebhookResponse": { +"description": "The response message for a webhook call.", +"id": "GoogleCloudDialogflowCxV3beta1WebhookResponse", +"properties": { +"fulfillmentResponse": { +"$ref": "GoogleCloudDialogflowCxV3beta1WebhookResponseFulfillmentResponse", +"description": "The fulfillment response to send to the user. This field can be omitted by the webhook if it does not intend to send any response to the user." +}, +"pageInfo": { +"$ref": "GoogleCloudDialogflowCxV3beta1PageInfo", +"description": "Information about page status. This field can be omitted by the webhook if it does not intend to modify page status." +}, +"payload": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Value to append directly to QueryResult.webhook_payloads.", +"type": "object" +}, +"sessionInfo": { +"$ref": "GoogleCloudDialogflowCxV3beta1SessionInfo", +"description": "Information about session status. This field can be omitted by the webhook if it does not intend to modify session status." +}, +"targetFlow": { +"description": "The target flow to transition to. Format: `projects//locations//agents//flows/`.", +"type": "string" +}, +"targetPage": { +"description": "The target page to transition to. Format: `projects//locations//agents//flows//pages/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1WebhookResponseFulfillmentResponse": { +"description": "Represents a fulfillment response to the user.", +"id": "GoogleCloudDialogflowCxV3beta1WebhookResponseFulfillmentResponse", +"properties": { +"mergeBehavior": { +"description": "Merge behavior for `messages`.", +"enum": [ +"MERGE_BEHAVIOR_UNSPECIFIED", +"APPEND", +"REPLACE" +], +"enumDescriptions": [ +"Not specified. `APPEND` will be used.", +"`messages` will be appended to the list of messages waiting to be sent to the user.", +"`messages` will replace the list of messages waiting to be sent to the user." +], +"type": "string" +}, +"messages": { +"description": "The list of rich message responses to present to the user.", +"items": { +"$ref": "GoogleCloudDialogflowCxV3beta1ResponseMessage" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowCxV3beta1WebhookServiceDirectoryConfig": { +"description": "Represents configuration for a [Service Directory](https://cloud.google.com/service-directory) service.", +"id": "GoogleCloudDialogflowCxV3beta1WebhookServiceDirectoryConfig", +"properties": { +"genericWebService": { +"$ref": "GoogleCloudDialogflowCxV3beta1WebhookGenericWebService", +"description": "Generic Service configuration of this webhook." +}, +"service": { +"description": "Required. The name of [Service Directory](https://cloud.google.com/service-directory) service. Format: `projects//locations//namespaces//services/`. `Location ID` of the service directory must be the same as the location of the agent.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2AnnotatedMessagePart": { +"description": "Represents a part of a message possibly annotated with an entity. The part can be an entity or purely a part of the message between two entities or message start/end.", +"id": "GoogleCloudDialogflowV2AnnotatedMessagePart", +"properties": { +"entityType": { +"description": "The [Dialogflow system entity type](https://cloud.google.com/dialogflow/docs/reference/system-entities) of this message part. If this is empty, Dialogflow could not annotate the phrase part with a system entity.", +"type": "string" +}, +"formattedValue": { +"description": "The [Dialogflow system entity formatted value ](https://cloud.google.com/dialogflow/docs/reference/system-entities) of this message part. For example for a system entity of type `@sys.unit-currency`, this may contain: { \"amount\": 5, \"currency\": \"USD\" } ", +"type": "any" +}, +"text": { +"description": "A part of a message possibly annotated with an entity.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2ArticleAnswer": { +"description": "Represents article answer.", +"id": "GoogleCloudDialogflowV2ArticleAnswer", +"properties": { +"answerRecord": { +"description": "The name of answer record, in the format of \"projects//locations//answerRecords/\"", +"type": "string" +}, +"confidence": { +"description": "Article match confidence. The system's confidence score that this article is a good match for this conversation, as a value from 0.0 (completely uncertain) to 1.0 (completely certain).", +"format": "float", +"type": "number" +}, +"metadata": { +"additionalProperties": { +"type": "string" +}, +"description": "A map that contains metadata about the answer and the document from which it originates.", +"type": "object" +}, +"snippets": { +"description": "Article snippets.", +"items": { +"type": "string" +}, +"type": "array" +}, +"title": { +"description": "The article title.", +"type": "string" +}, +"uri": { +"description": "The article URI.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2ArticleSuggestionModelMetadata": { +"description": "Metadata for article suggestion models.", +"id": "GoogleCloudDialogflowV2ArticleSuggestionModelMetadata", +"properties": { +"trainingModelType": { +"description": "Optional. Type of the article suggestion model. If not provided, model_type is used.", +"enum": [ +"MODEL_TYPE_UNSPECIFIED", +"SMART_REPLY_DUAL_ENCODER_MODEL", +"SMART_REPLY_BERT_MODEL" +], +"enumDescriptions": [ +"ModelType unspecified.", +"ModelType smart reply dual encoder model.", +"ModelType smart reply bert model." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2BatchUpdateEntityTypesResponse": { +"description": "The response message for EntityTypes.BatchUpdateEntityTypes.", +"id": "GoogleCloudDialogflowV2BatchUpdateEntityTypesResponse", +"properties": { +"entityTypes": { +"description": "The collection of updated or created entity types.", +"items": { +"$ref": "GoogleCloudDialogflowV2EntityType" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2BatchUpdateIntentsResponse": { +"description": "The response message for Intents.BatchUpdateIntents.", +"id": "GoogleCloudDialogflowV2BatchUpdateIntentsResponse", +"properties": { +"intents": { +"description": "The collection of updated or created intents.", +"items": { +"$ref": "GoogleCloudDialogflowV2Intent" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2ClearSuggestionFeatureConfigOperationMetadata": { +"description": "Metadata for a ConversationProfiles.ClearSuggestionFeatureConfig operation.", +"id": "GoogleCloudDialogflowV2ClearSuggestionFeatureConfigOperationMetadata", +"properties": { +"conversationProfile": { +"description": "The resource name of the conversation profile. Format: `projects//locations//conversationProfiles/`", +"type": "string" +}, +"createTime": { +"description": "Timestamp whe the request was created. The time is measured on server side.", +"format": "google-datetime", +"type": "string" +}, +"participantRole": { +"description": "Required. The participant role to remove the suggestion feature config. Only HUMAN_AGENT or END_USER can be used.", +"enum": [ +"ROLE_UNSPECIFIED", +"HUMAN_AGENT", +"AUTOMATED_AGENT", +"END_USER" +], +"enumDescriptions": [ +"Participant role not set.", +"Participant is a human agent.", +"Participant is an automated agent, such as a Dialogflow agent.", +"Participant is an end user that has called or chatted with Dialogflow services." +], +"type": "string" +}, +"suggestionFeatureType": { +"description": "Required. The type of the suggestion feature to remove.", +"enum": [ +"TYPE_UNSPECIFIED", +"ARTICLE_SUGGESTION", +"FAQ", +"SMART_REPLY", +"KNOWLEDGE_SEARCH", +"KNOWLEDGE_ASSIST" +], +"enumDescriptions": [ +"Unspecified feature type.", +"Run article suggestion model for chat.", +"Run FAQ model for chat.", +"Run smart reply model for chat.", +"Run knowledge search with text input from agent or text generated query.", +"Run knowledge assist with automatic query generation." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2Context": { +"description": "Dialogflow contexts are similar to natural language context. If a person says to you \"they are orange\", you need context in order to understand what \"they\" is referring to. Similarly, for Dialogflow to handle an end-user expression like that, it needs to be provided with context in order to correctly match an intent. Using contexts, you can control the flow of a conversation. You can configure contexts for an intent by setting input and output contexts, which are identified by string names. When an intent is matched, any configured output contexts for that intent become active. While any contexts are active, Dialogflow is more likely to match intents that are configured with input contexts that correspond to the currently active contexts. For more information about context, see the [Contexts guide](https://cloud.google.com/dialogflow/docs/contexts-overview).", +"id": "GoogleCloudDialogflowV2Context", +"properties": { +"lifespanCount": { +"description": "Optional. The number of conversational query requests after which the context expires. The default is `0`. If set to `0`, the context expires immediately. Contexts expire automatically after 20 minutes if there are no matching queries.", +"format": "int32", +"type": "integer" +}, +"name": { +"description": "Required. The unique identifier of the context. Format: `projects//agent/sessions//contexts/`, or `projects//agent/environments//users//sessions//contexts/`. The `Context ID` is always converted to lowercase, may only contain characters in `a-zA-Z0-9_-%` and may be at most 250 bytes long. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. The following context names are reserved for internal use by Dialogflow. You should not use these contexts or create contexts with these names: * `__system_counters__` * `*_id_dialog_context` * `*_dialog_params_size`", +"type": "string" +}, +"parameters": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Optional. The collection of parameters associated with this context. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: * MapKey type: string * MapKey value: parameter name * MapValue type: If parameter's entity type is a composite entity then use map, otherwise, depending on the parameter value type, it could be one of string, number, boolean, null, list or map. * MapValue value: If parameter's entity type is a composite entity then use map from composite entity property names to property values, otherwise, use parameter value.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2ConversationEvent": { +"description": "Represents a notification sent to Pub/Sub subscribers for conversation lifecycle events.", +"id": "GoogleCloudDialogflowV2ConversationEvent", +"properties": { +"conversation": { +"description": "The unique identifier of the conversation this notification refers to. Format: `projects//conversations/`.", +"type": "string" +}, +"errorStatus": { +"$ref": "GoogleRpcStatus", +"description": "More detailed information about an error. Only set for type UNRECOVERABLE_ERROR_IN_PHONE_CALL." +}, +"newMessagePayload": { +"$ref": "GoogleCloudDialogflowV2Message", +"description": "Payload of NEW_MESSAGE event." +}, +"newRecognitionResultPayload": { +"$ref": "GoogleCloudDialogflowV2StreamingRecognitionResult", +"description": "Payload of NEW_RECOGNITION_RESULT event." +}, +"type": { +"description": "The type of the event that this notification refers to.", +"enum": [ +"TYPE_UNSPECIFIED", +"CONVERSATION_STARTED", +"CONVERSATION_FINISHED", +"HUMAN_INTERVENTION_NEEDED", +"NEW_MESSAGE", +"NEW_RECOGNITION_RESULT", +"UNRECOVERABLE_ERROR" +], +"enumDescriptions": [ +"Type not set.", +"A new conversation has been opened. This is fired when a telephone call is answered, or a conversation is created via the API.", +"An existing conversation has closed. This is fired when a telephone call is terminated, or a conversation is closed via the API.", +"An existing conversation has received notification from Dialogflow that human intervention is required.", +"An existing conversation has received a new message, either from API or telephony. It is configured in ConversationProfile.new_message_event_notification_config", +"An existing conversation has received a new speech recognition result. This is mainly for delivering intermediate transcripts. The notification is configured in ConversationProfile.new_recognition_event_notification_config.", +"Unrecoverable error during a telephone call. In general non-recoverable errors only occur if something was misconfigured in the ConversationProfile corresponding to the call. After a non-recoverable error, Dialogflow may stop responding. We don't fire this event: * in an API call because we can directly return the error, or, * when we can recover from an error." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2ConversationModel": { +"description": "Represents a conversation model.", +"id": "GoogleCloudDialogflowV2ConversationModel", +"properties": { +"articleSuggestionModelMetadata": { +"$ref": "GoogleCloudDialogflowV2ArticleSuggestionModelMetadata", +"description": "Metadata for article suggestion models." +}, +"createTime": { +"description": "Output only. Creation time of this model.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"datasets": { +"description": "Required. Datasets used to create model.", +"items": { +"$ref": "GoogleCloudDialogflowV2InputDataset" +}, +"type": "array" +}, +"displayName": { +"description": "Required. The display name of the model. At most 64 bytes long.", +"type": "string" +}, +"languageCode": { +"description": "Language code for the conversation model. If not specified, the language is en-US. Language at ConversationModel should be set for all non en-us languages. This should be a [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tag. Example: \"en-US\".", +"type": "string" +}, +"name": { +"description": "ConversationModel resource name. Format: `projects//conversationModels/`", +"type": "string" +}, +"satisfiesPzi": { +"description": "Output only. A read only boolean field reflecting Zone Isolation status of the model.", +"readOnly": true, +"type": "boolean" +}, +"satisfiesPzs": { +"description": "Output only. A read only boolean field reflecting Zone Separation status of the model.", +"readOnly": true, +"type": "boolean" +}, +"smartReplyModelMetadata": { +"$ref": "GoogleCloudDialogflowV2SmartReplyModelMetadata", +"description": "Metadata for smart reply models." +}, +"state": { +"description": "Output only. State of the model. A model can only serve prediction requests after it gets deployed.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"UNDEPLOYED", +"DEPLOYING", +"DEPLOYED", +"UNDEPLOYING", +"DELETING", +"FAILED", +"PENDING" +], +"enumDescriptions": [ +"Should not be used, an un-set enum has this value by default.", +"Model being created.", +"Model is not deployed but ready to deploy.", +"Model is deploying.", +"Model is deployed and ready to use.", +"Model is undeploying.", +"Model is deleting.", +"Model is in error state. Not ready to deploy and use.", +"Model is being created but the training has not started, The model may remain in this state until there is enough capacity to start training." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2CreateConversationDatasetOperationMetadata": { +"description": "Metadata for CreateConversationDataset.", +"id": "GoogleCloudDialogflowV2CreateConversationDatasetOperationMetadata", +"properties": { +"conversationDataset": { +"description": "The resource name of the conversation dataset that will be created. Format: `projects//locations//conversationDatasets/`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2CreateConversationModelEvaluationOperationMetadata": { +"description": "Metadata for a ConversationModels.CreateConversationModelEvaluation operation.", +"id": "GoogleCloudDialogflowV2CreateConversationModelEvaluationOperationMetadata", +"properties": { +"conversationModel": { +"description": "The resource name of the conversation model. Format: `projects//locations//conversationModels/`", +"type": "string" +}, +"conversationModelEvaluation": { +"description": "The resource name of the conversation model. Format: `projects//locations//conversationModels//evaluations/`", +"type": "string" +}, +"createTime": { +"description": "Timestamp when the request to create conversation model was submitted. The time is measured on server side.", +"format": "google-datetime", +"type": "string" +}, +"state": { +"description": "State of CreateConversationModel operation.", +"enum": [ +"STATE_UNSPECIFIED", +"INITIALIZING", +"RUNNING", +"CANCELLED", +"SUCCEEDED", +"FAILED" +], +"enumDescriptions": [ +"Operation status not specified.", +"The operation is being prepared.", +"The operation is running.", +"The operation is cancelled.", +"The operation has succeeded.", +"The operation has failed." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2CreateConversationModelOperationMetadata": { +"description": "Metadata for a ConversationModels.CreateConversationModel operation.", +"id": "GoogleCloudDialogflowV2CreateConversationModelOperationMetadata", +"properties": { +"conversationModel": { +"description": "The resource name of the conversation model. Format: `projects//conversationModels/`", +"type": "string" +}, +"createTime": { +"description": "Timestamp when the request to create conversation model is submitted. The time is measured on server side.", +"format": "google-datetime", +"type": "string" +}, +"state": { +"description": "State of CreateConversationModel operation.", +"enum": [ +"STATE_UNSPECIFIED", +"PENDING", +"SUCCEEDED", +"FAILED", +"CANCELLED", +"CANCELLING", +"TRAINING" +], +"enumDescriptions": [ +"Invalid.", +"Request is submitted, but training has not started yet. The model may remain in this state until there is enough capacity to start training.", +"The training has succeeded.", +"The training has succeeded.", +"The training has been cancelled.", +"The training is in cancelling state.", +"Custom model is training." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2DeleteConversationDatasetOperationMetadata": { +"description": "Metadata for DeleteConversationDataset.", +"id": "GoogleCloudDialogflowV2DeleteConversationDatasetOperationMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudDialogflowV2DeleteConversationModelOperationMetadata": { +"description": "Metadata for a ConversationModels.DeleteConversationModel operation.", +"id": "GoogleCloudDialogflowV2DeleteConversationModelOperationMetadata", +"properties": { +"conversationModel": { +"description": "The resource name of the conversation model. Format: `projects//conversationModels/`", +"type": "string" +}, +"createTime": { +"description": "Timestamp when delete conversation model request was created. The time is measured on server side.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2DeployConversationModelOperationMetadata": { +"description": "Metadata for a ConversationModels.DeployConversationModel operation.", +"id": "GoogleCloudDialogflowV2DeployConversationModelOperationMetadata", +"properties": { +"conversationModel": { +"description": "The resource name of the conversation model. Format: `projects//conversationModels/`", +"type": "string" +}, +"createTime": { +"description": "Timestamp when request to deploy conversation model was submitted. The time is measured on server side.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2EncryptionSpec": { +"description": "A customer-managed encryption key specification that can be applied to all created resources (e.g. Conversation).", +"id": "GoogleCloudDialogflowV2EncryptionSpec", +"properties": { +"kmsKey": { +"description": "Required. The name of customer-managed encryption key that is used to secure a resource and its sub-resources. If empty, the resource is secured by the default Google encryption key. Only the key in the same location as this resource is allowed to be used for encryption. Format: `projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{key}`", +"type": "string" +}, +"name": { +"description": "Immutable. The resource name of the encryption key specification resource. Format: projects/{project}/locations/{location}/encryptionSpec", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2EntityType": { +"description": "Each intent parameter has a type, called the entity type, which dictates exactly how data from an end-user expression is extracted. Dialogflow provides predefined system entities that can match many common types of data. For example, there are system entities for matching dates, times, colors, email addresses, and so on. You can also create your own custom entities for matching custom data. For example, you could define a vegetable entity that can match the types of vegetables available for purchase with a grocery store agent. For more information, see the [Entity guide](https://cloud.google.com/dialogflow/docs/entities-overview).", +"id": "GoogleCloudDialogflowV2EntityType", +"properties": { +"autoExpansionMode": { +"description": "Optional. Indicates whether the entity type can be automatically expanded.", +"enum": [ +"AUTO_EXPANSION_MODE_UNSPECIFIED", +"AUTO_EXPANSION_MODE_DEFAULT" +], +"enumDescriptions": [ +"Auto expansion disabled for the entity.", +"Allows an agent to recognize values that have not been explicitly listed in the entity." +], +"type": "string" +}, +"displayName": { +"description": "Required. The name of the entity type.", +"type": "string" +}, +"enableFuzzyExtraction": { +"description": "Optional. Enables fuzzy entity extraction during classification.", +"type": "boolean" +}, +"entities": { +"description": "Optional. The collection of entity entries associated with the entity type.", +"items": { +"$ref": "GoogleCloudDialogflowV2EntityTypeEntity" +}, +"type": "array" +}, +"kind": { +"description": "Required. Indicates the kind of entity type.", +"enum": [ +"KIND_UNSPECIFIED", +"KIND_MAP", +"KIND_LIST", +"KIND_REGEXP" +], +"enumDescriptions": [ +"Not specified. This value should be never used.", +"Map entity types allow mapping of a group of synonyms to a reference value.", +"List entity types contain a set of entries that do not map to reference values. However, list entity types can contain references to other entity types (with or without aliases).", +"Regexp entity types allow to specify regular expressions in entries values." +], +"type": "string" +}, +"name": { +"description": "The unique identifier of the entity type. Required for EntityTypes.UpdateEntityType and EntityTypes.BatchUpdateEntityTypes methods. Format: `projects//agent/entityTypes/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2EntityTypeEntity": { +"description": "An **entity entry** for an associated entity type.", +"id": "GoogleCloudDialogflowV2EntityTypeEntity", +"properties": { +"synonyms": { +"description": "Required. A collection of value synonyms. For example, if the entity type is *vegetable*, and `value` is *scallions*, a synonym could be *green onions*. For `KIND_LIST` entity types: * This collection must contain exactly one synonym equal to `value`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"value": { +"description": "Required. The primary value associated with this entity entry. For example, if the entity type is *vegetable*, the value could be *scallions*. For `KIND_MAP` entity types: * A reference value to be used in place of synonyms. For `KIND_LIST` entity types: * A string that can contain references to other entity types (with or without aliases).", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2EventInput": { +"description": "Events allow for matching intents by event name instead of the natural language input. For instance, input `` can trigger a personalized welcome response. The parameter `name` may be used by the agent in the response: `\"Hello #welcome_event.name! What can I do for you today?\"`.", +"id": "GoogleCloudDialogflowV2EventInput", +"properties": { +"languageCode": { +"description": "Required. The language of this query. See [Language Support](https://cloud.google.com/dialogflow/docs/reference/language) for a list of the currently supported language codes. Note that queries in the same session do not necessarily need to specify the same language. This field is ignored when used in the context of a WebhookResponse.followup_event_input field, because the language was already defined in the originating detect intent request.", +"type": "string" +}, +"name": { +"description": "Required. The unique identifier of the event.", +"type": "string" +}, +"parameters": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "The collection of parameters associated with the event. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: * MapKey type: string * MapKey value: parameter name * MapValue type: If parameter's entity type is a composite entity then use map, otherwise, depending on the parameter value type, it could be one of string, number, boolean, null, list or map. * MapValue value: If parameter's entity type is a composite entity then use map from composite entity property names to property values, otherwise, use parameter value.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2ExportAgentResponse": { +"description": "The response message for Agents.ExportAgent.", +"id": "GoogleCloudDialogflowV2ExportAgentResponse", +"properties": { +"agentContent": { +"description": "Zip compressed raw byte content for agent.", +"format": "byte", +"type": "string" +}, +"agentUri": { +"description": "The URI to a file containing the exported agent. This field is populated only if `agent_uri` is specified in `ExportAgentRequest`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2ExportOperationMetadata": { +"description": "Metadata related to the Export Data Operations (e.g. ExportDocument).", +"id": "GoogleCloudDialogflowV2ExportOperationMetadata", +"properties": { +"exportedGcsDestination": { +"$ref": "GoogleCloudDialogflowV2GcsDestination", +"description": "Cloud Storage file path of the exported data." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2FaqAnswer": { +"description": "Represents answer from \"frequently asked questions\".", +"id": "GoogleCloudDialogflowV2FaqAnswer", +"properties": { +"answer": { +"description": "The piece of text from the `source` knowledge base document.", +"type": "string" +}, +"answerRecord": { +"description": "The name of answer record, in the format of \"projects//locations//answerRecords/\"", +"type": "string" +}, +"confidence": { +"description": "The system's confidence score that this Knowledge answer is a good match for this conversational query, range from 0.0 (completely uncertain) to 1.0 (completely certain).", +"format": "float", +"type": "number" +}, +"metadata": { +"additionalProperties": { +"type": "string" +}, +"description": "A map that contains metadata about the answer and the document from which it originates.", +"type": "object" +}, +"question": { +"description": "The corresponding FAQ question.", +"type": "string" +}, +"source": { +"description": "Indicates which Knowledge Document this answer was extracted from. Format: `projects//locations//agent/knowledgeBases//documents/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2GcsDestination": { +"description": "Google Cloud Storage location for the output.", +"id": "GoogleCloudDialogflowV2GcsDestination", +"properties": { +"uri": { +"description": "The Google Cloud Storage URIs for the output. A URI is of the form: `gs://bucket/object-prefix-or-name` Whether a prefix or name is used depends on the use case. The requesting user must have \"write-permission\" to the bucket.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2HumanAgentAssistantEvent": { +"description": "Represents a notification sent to Cloud Pub/Sub subscribers for human agent assistant events in a specific conversation.", +"id": "GoogleCloudDialogflowV2HumanAgentAssistantEvent", +"properties": { +"conversation": { +"description": "The conversation this notification refers to. Format: `projects//conversations/`.", +"type": "string" +}, +"participant": { +"description": "The participant that the suggestion is compiled for. Format: `projects//conversations//participants/`. It will not be set in legacy workflow.", +"type": "string" +}, +"suggestionResults": { +"description": "The suggestion results payload that this notification refers to.", +"items": { +"$ref": "GoogleCloudDialogflowV2SuggestionResult" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2ImportConversationDataOperationMetadata": { +"description": "Metadata for a ConversationDatasets.ImportConversationData operation.", +"id": "GoogleCloudDialogflowV2ImportConversationDataOperationMetadata", +"properties": { +"conversationDataset": { +"description": "The resource name of the imported conversation dataset. Format: `projects//locations//conversationDatasets/`", +"type": "string" +}, +"createTime": { +"description": "Timestamp when import conversation data request was created. The time is measured on server side.", +"format": "google-datetime", +"type": "string" +}, +"partialFailures": { +"description": "Partial failures are failures that don't fail the whole long running operation, e.g. single files that couldn't be read.", +"items": { +"$ref": "GoogleRpcStatus" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2ImportConversationDataOperationResponse": { +"description": "Response used for ConversationDatasets.ImportConversationData long running operation.", +"id": "GoogleCloudDialogflowV2ImportConversationDataOperationResponse", +"properties": { +"conversationDataset": { +"description": "The resource name of the imported conversation dataset. Format: `projects//locations//conversationDatasets/`", +"type": "string" +}, +"importCount": { +"description": "Number of conversations imported successfully.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2ImportDocumentsResponse": { +"description": "Response message for Documents.ImportDocuments.", +"id": "GoogleCloudDialogflowV2ImportDocumentsResponse", +"properties": { +"warnings": { +"description": "Includes details about skipped documents or any other warnings.", +"items": { +"$ref": "GoogleRpcStatus" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2InitializeEncryptionSpecMetadata": { +"description": "Metadata for initializing a location-level encryption specification.", +"id": "GoogleCloudDialogflowV2InitializeEncryptionSpecMetadata", +"properties": { +"request": { +"$ref": "GoogleCloudDialogflowV2InitializeEncryptionSpecRequest", +"description": "Output only. The original request for initialization.", +"readOnly": true +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2InitializeEncryptionSpecRequest": { +"description": "The request to initialize a location-level encryption specification.", +"id": "GoogleCloudDialogflowV2InitializeEncryptionSpecRequest", +"properties": { +"encryptionSpec": { +"$ref": "GoogleCloudDialogflowV2EncryptionSpec", +"description": "Required. The encryption spec used for CMEK encryption. It is required that the kms key is in the same region as the endpoint. The same key will be used for all provisioned resources, if encryption is available. If the kms_key_name is left empty, no encryption will be enforced." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2InputDataset": { +"description": "InputDataset used to create model or do evaluation. NextID:5", +"id": "GoogleCloudDialogflowV2InputDataset", +"properties": { +"dataset": { +"description": "Required. ConversationDataset resource name. Format: `projects//locations//conversationDatasets/`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2Intent": { +"description": "An intent categorizes an end-user's intention for one conversation turn. For each agent, you define many intents, where your combined intents can handle a complete conversation. When an end-user writes or says something, referred to as an end-user expression or end-user input, Dialogflow matches the end-user input to the best intent in your agent. Matching an intent is also known as intent classification. For more information, see the [intent guide](https://cloud.google.com/dialogflow/docs/intents-overview).", +"id": "GoogleCloudDialogflowV2Intent", +"properties": { +"action": { +"description": "Optional. The name of the action associated with the intent. Note: The action name must not contain whitespaces.", +"type": "string" +}, +"defaultResponsePlatforms": { +"description": "Optional. The list of platforms for which the first responses will be copied from the messages in PLATFORM_UNSPECIFIED (i.e. default platform).", +"items": { +"enum": [ +"PLATFORM_UNSPECIFIED", +"FACEBOOK", +"SLACK", +"TELEGRAM", +"KIK", +"SKYPE", +"LINE", +"VIBER", +"ACTIONS_ON_GOOGLE", +"GOOGLE_HANGOUTS" +], +"enumDescriptions": [ +"Default platform.", +"Facebook.", +"Slack.", +"Telegram.", +"Kik.", +"Skype.", +"Line.", +"Viber.", +"Google Assistant See [Dialogflow webhook format](https://developers.google.com/assistant/actions/build/json/dialogflow-webhook-json)", +"Google Hangouts." +], +"type": "string" +}, +"type": "array" +}, +"displayName": { +"description": "Required. The name of this intent.", +"type": "string" +}, +"endInteraction": { +"description": "Optional. Indicates that this intent ends an interaction. Some integrations (e.g., Actions on Google or Dialogflow phone gateway) use this information to close interaction with an end user. Default is false.", +"type": "boolean" +}, +"events": { +"description": "Optional. The collection of event names that trigger the intent. If the collection of input contexts is not empty, all of the contexts must be present in the active user session for an event to trigger this intent. Event names are limited to 150 characters.", +"items": { +"type": "string" +}, +"type": "array" +}, +"followupIntentInfo": { +"description": "Output only. Read-only. Information about all followup intents that have this intent as a direct or indirect parent. We populate this field only in the output.", +"items": { +"$ref": "GoogleCloudDialogflowV2IntentFollowupIntentInfo" +}, +"readOnly": true, +"type": "array" +}, +"inputContextNames": { +"description": "Optional. The list of context names required for this intent to be triggered. Format: `projects//agent/sessions/-/contexts/`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"isFallback": { +"description": "Optional. Indicates whether this is a fallback intent.", +"type": "boolean" +}, +"liveAgentHandoff": { +"description": "Optional. Indicates that a live agent should be brought in to handle the interaction with the user. In most cases, when you set this flag to true, you would also want to set end_interaction to true as well. Default is false.", +"type": "boolean" +}, +"messages": { +"description": "Optional. The collection of rich messages corresponding to the `Response` field in the Dialogflow console.", +"items": { +"$ref": "GoogleCloudDialogflowV2IntentMessage" +}, +"type": "array" +}, +"mlDisabled": { +"description": "Optional. Indicates whether Machine Learning is disabled for the intent. Note: If `ml_disabled` setting is set to true, then this intent is not taken into account during inference in `ML ONLY` match mode. Also, auto-markup in the UI is turned off.", +"type": "boolean" +}, +"name": { +"description": "Optional. The unique identifier of this intent. Required for Intents.UpdateIntent and Intents.BatchUpdateIntents methods. Format: `projects//agent/intents/`.", +"type": "string" +}, +"outputContexts": { +"description": "Optional. The collection of contexts that are activated when the intent is matched. Context messages in this collection should not set the parameters field. Setting the `lifespan_count` to 0 will reset the context when the intent is matched. Format: `projects//agent/sessions/-/contexts/`.", +"items": { +"$ref": "GoogleCloudDialogflowV2Context" +}, +"type": "array" +}, +"parameters": { +"description": "Optional. The collection of parameters associated with the intent.", +"items": { +"$ref": "GoogleCloudDialogflowV2IntentParameter" +}, +"type": "array" +}, +"parentFollowupIntentName": { +"description": "Read-only after creation. The unique identifier of the parent intent in the chain of followup intents. You can set this field when creating an intent, for example with CreateIntent or BatchUpdateIntents, in order to make this intent a followup intent. It identifies the parent followup intent. Format: `projects//agent/intents/`.", +"type": "string" +}, +"priority": { +"description": "Optional. The priority of this intent. Higher numbers represent higher priorities. - If the supplied value is unspecified or 0, the service translates the value to 500,000, which corresponds to the `Normal` priority in the console. - If the supplied value is negative, the intent is ignored in runtime detect intent requests.", +"format": "int32", +"type": "integer" +}, +"resetContexts": { +"description": "Optional. Indicates whether to delete all contexts in the current session when this intent is matched.", +"type": "boolean" +}, +"rootFollowupIntentName": { +"description": "Output only. Read-only. The unique identifier of the root intent in the chain of followup intents. It identifies the correct followup intents chain for this intent. We populate this field only in the output. Format: `projects//agent/intents/`.", +"readOnly": true, +"type": "string" +}, +"trainingPhrases": { +"description": "Optional. The collection of examples that the agent is trained on.", +"items": { +"$ref": "GoogleCloudDialogflowV2IntentTrainingPhrase" +}, +"type": "array" +}, +"webhookState": { +"description": "Optional. Indicates whether webhooks are enabled for the intent.", +"enum": [ +"WEBHOOK_STATE_UNSPECIFIED", +"WEBHOOK_STATE_ENABLED", +"WEBHOOK_STATE_ENABLED_FOR_SLOT_FILLING" +], +"enumDescriptions": [ +"Webhook is disabled in the agent and in the intent.", +"Webhook is enabled in the agent and in the intent.", +"Webhook is enabled in the agent and in the intent. Also, each slot filling prompt is forwarded to the webhook." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentFollowupIntentInfo": { +"description": "Represents a single followup intent in the chain.", +"id": "GoogleCloudDialogflowV2IntentFollowupIntentInfo", +"properties": { +"followupIntentName": { +"description": "The unique identifier of the followup intent. Format: `projects//agent/intents/`.", +"type": "string" +}, +"parentFollowupIntentName": { +"description": "The unique identifier of the followup intent's parent. Format: `projects//agent/intents/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentMessage": { +"description": "A rich response message. Corresponds to the intent `Response` field in the Dialogflow console. For more information, see [Rich response messages](https://cloud.google.com/dialogflow/docs/intents-rich-messages).", +"id": "GoogleCloudDialogflowV2IntentMessage", +"properties": { +"basicCard": { +"$ref": "GoogleCloudDialogflowV2IntentMessageBasicCard", +"description": "The basic card response for Actions on Google." +}, +"browseCarouselCard": { +"$ref": "GoogleCloudDialogflowV2IntentMessageBrowseCarouselCard", +"description": "Browse carousel card for Actions on Google." +}, +"card": { +"$ref": "GoogleCloudDialogflowV2IntentMessageCard", +"description": "The card response." +}, +"carouselSelect": { +"$ref": "GoogleCloudDialogflowV2IntentMessageCarouselSelect", +"description": "The carousel card response for Actions on Google." +}, +"image": { +"$ref": "GoogleCloudDialogflowV2IntentMessageImage", +"description": "The image response." +}, +"linkOutSuggestion": { +"$ref": "GoogleCloudDialogflowV2IntentMessageLinkOutSuggestion", +"description": "The link out suggestion chip for Actions on Google." +}, +"listSelect": { +"$ref": "GoogleCloudDialogflowV2IntentMessageListSelect", +"description": "The list card response for Actions on Google." +}, +"mediaContent": { +"$ref": "GoogleCloudDialogflowV2IntentMessageMediaContent", +"description": "The media content card for Actions on Google." +}, +"payload": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "A custom platform-specific response.", +"type": "object" +}, +"platform": { +"description": "Optional. The platform that this message is intended for.", +"enum": [ +"PLATFORM_UNSPECIFIED", +"FACEBOOK", +"SLACK", +"TELEGRAM", +"KIK", +"SKYPE", +"LINE", +"VIBER", +"ACTIONS_ON_GOOGLE", +"GOOGLE_HANGOUTS" +], +"enumDescriptions": [ +"Default platform.", +"Facebook.", +"Slack.", +"Telegram.", +"Kik.", +"Skype.", +"Line.", +"Viber.", +"Google Assistant See [Dialogflow webhook format](https://developers.google.com/assistant/actions/build/json/dialogflow-webhook-json)", +"Google Hangouts." +], +"type": "string" +}, +"quickReplies": { +"$ref": "GoogleCloudDialogflowV2IntentMessageQuickReplies", +"description": "The quick replies response." +}, +"simpleResponses": { +"$ref": "GoogleCloudDialogflowV2IntentMessageSimpleResponses", +"description": "The voice and text-only responses for Actions on Google." +}, +"suggestions": { +"$ref": "GoogleCloudDialogflowV2IntentMessageSuggestions", +"description": "The suggestion chips for Actions on Google." +}, +"tableCard": { +"$ref": "GoogleCloudDialogflowV2IntentMessageTableCard", +"description": "Table card for Actions on Google." +}, +"text": { +"$ref": "GoogleCloudDialogflowV2IntentMessageText", +"description": "The text response." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentMessageBasicCard": { +"description": "The basic card message. Useful for displaying information.", +"id": "GoogleCloudDialogflowV2IntentMessageBasicCard", +"properties": { +"buttons": { +"description": "Optional. The collection of card buttons.", +"items": { +"$ref": "GoogleCloudDialogflowV2IntentMessageBasicCardButton" +}, +"type": "array" +}, +"formattedText": { +"description": "Required, unless image is present. The body text of the card.", +"type": "string" +}, +"image": { +"$ref": "GoogleCloudDialogflowV2IntentMessageImage", +"description": "Optional. The image for the card." +}, +"subtitle": { +"description": "Optional. The subtitle of the card.", +"type": "string" +}, +"title": { +"description": "Optional. The title of the card.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentMessageBasicCardButton": { +"description": "The button object that appears at the bottom of a card.", +"id": "GoogleCloudDialogflowV2IntentMessageBasicCardButton", +"properties": { +"openUriAction": { +"$ref": "GoogleCloudDialogflowV2IntentMessageBasicCardButtonOpenUriAction", +"description": "Required. Action to take when a user taps on the button." +}, +"title": { +"description": "Required. The title of the button.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentMessageBasicCardButtonOpenUriAction": { +"description": "Opens the given URI.", +"id": "GoogleCloudDialogflowV2IntentMessageBasicCardButtonOpenUriAction", +"properties": { +"uri": { +"description": "Required. The HTTP or HTTPS scheme URI.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentMessageBrowseCarouselCard": { +"description": "Browse Carousel Card for Actions on Google. https://developers.google.com/actions/assistant/responses#browsing_carousel", +"id": "GoogleCloudDialogflowV2IntentMessageBrowseCarouselCard", +"properties": { +"imageDisplayOptions": { +"description": "Optional. Settings for displaying the image. Applies to every image in items.", +"enum": [ +"IMAGE_DISPLAY_OPTIONS_UNSPECIFIED", +"GRAY", +"WHITE", +"CROPPED", +"BLURRED_BACKGROUND" +], +"enumDescriptions": [ +"Fill the gaps between the image and the image container with gray bars.", +"Fill the gaps between the image and the image container with gray bars.", +"Fill the gaps between the image and the image container with white bars.", +"Image is scaled such that the image width and height match or exceed the container dimensions. This may crop the top and bottom of the image if the scaled image height is greater than the container height, or crop the left and right of the image if the scaled image width is greater than the container width. This is similar to \"Zoom Mode\" on a widescreen TV when playing a 4:3 video.", +"Pad the gaps between image and image frame with a blurred copy of the same image." +], +"type": "string" +}, +"items": { +"description": "Required. List of items in the Browse Carousel Card. Minimum of two items, maximum of ten.", +"items": { +"$ref": "GoogleCloudDialogflowV2IntentMessageBrowseCarouselCardBrowseCarouselCardItem" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentMessageBrowseCarouselCardBrowseCarouselCardItem": { +"description": "Browsing carousel tile", +"id": "GoogleCloudDialogflowV2IntentMessageBrowseCarouselCardBrowseCarouselCardItem", +"properties": { +"description": { +"description": "Optional. Description of the carousel item. Maximum of four lines of text.", +"type": "string" +}, +"footer": { +"description": "Optional. Text that appears at the bottom of the Browse Carousel Card. Maximum of one line of text.", +"type": "string" +}, +"image": { +"$ref": "GoogleCloudDialogflowV2IntentMessageImage", +"description": "Optional. Hero image for the carousel item." +}, +"openUriAction": { +"$ref": "GoogleCloudDialogflowV2IntentMessageBrowseCarouselCardBrowseCarouselCardItemOpenUrlAction", +"description": "Required. Action to present to the user." +}, +"title": { +"description": "Required. Title of the carousel item. Maximum of two lines of text.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentMessageBrowseCarouselCardBrowseCarouselCardItemOpenUrlAction": { +"description": "Actions on Google action to open a given url.", +"id": "GoogleCloudDialogflowV2IntentMessageBrowseCarouselCardBrowseCarouselCardItemOpenUrlAction", +"properties": { +"url": { +"description": "Required. URL", +"type": "string" +}, +"urlTypeHint": { +"description": "Optional. Specifies the type of viewer that is used when opening the URL. Defaults to opening via web browser.", +"enum": [ +"URL_TYPE_HINT_UNSPECIFIED", +"AMP_ACTION", +"AMP_CONTENT" +], +"enumDescriptions": [ +"Unspecified", +"Url would be an amp action", +"URL that points directly to AMP content, or to a canonical URL which refers to AMP content via ." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentMessageCard": { +"description": "The card response message.", +"id": "GoogleCloudDialogflowV2IntentMessageCard", +"properties": { +"buttons": { +"description": "Optional. The collection of card buttons.", +"items": { +"$ref": "GoogleCloudDialogflowV2IntentMessageCardButton" +}, +"type": "array" +}, +"imageUri": { +"description": "Optional. The public URI to an image file for the card.", +"type": "string" +}, +"subtitle": { +"description": "Optional. The subtitle of the card.", +"type": "string" +}, +"title": { +"description": "Optional. The title of the card.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentMessageCardButton": { +"description": "Contains information about a button.", +"id": "GoogleCloudDialogflowV2IntentMessageCardButton", +"properties": { +"postback": { +"description": "Optional. The text to send back to the Dialogflow API or a URI to open.", +"type": "string" +}, +"text": { +"description": "Optional. The text to show on the button.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentMessageCarouselSelect": { +"description": "The card for presenting a carousel of options to select from.", +"id": "GoogleCloudDialogflowV2IntentMessageCarouselSelect", +"properties": { +"items": { +"description": "Required. Carousel items.", +"items": { +"$ref": "GoogleCloudDialogflowV2IntentMessageCarouselSelectItem" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentMessageCarouselSelectItem": { +"description": "An item in the carousel.", +"id": "GoogleCloudDialogflowV2IntentMessageCarouselSelectItem", +"properties": { +"description": { +"description": "Optional. The body text of the card.", +"type": "string" +}, +"image": { +"$ref": "GoogleCloudDialogflowV2IntentMessageImage", +"description": "Optional. The image to display." +}, +"info": { +"$ref": "GoogleCloudDialogflowV2IntentMessageSelectItemInfo", +"description": "Required. Additional info about the option item." +}, +"title": { +"description": "Required. Title of the carousel item.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentMessageColumnProperties": { +"description": "Column properties for TableCard.", +"id": "GoogleCloudDialogflowV2IntentMessageColumnProperties", +"properties": { +"header": { +"description": "Required. Column heading.", +"type": "string" +}, +"horizontalAlignment": { +"description": "Optional. Defines text alignment for all cells in this column.", +"enum": [ +"HORIZONTAL_ALIGNMENT_UNSPECIFIED", +"LEADING", +"CENTER", +"TRAILING" +], +"enumDescriptions": [ +"Text is aligned to the leading edge of the column.", +"Text is aligned to the leading edge of the column.", +"Text is centered in the column.", +"Text is aligned to the trailing edge of the column." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentMessageImage": { +"description": "The image response message.", +"id": "GoogleCloudDialogflowV2IntentMessageImage", +"properties": { +"accessibilityText": { +"description": "Optional. A text description of the image to be used for accessibility, e.g., screen readers.", +"type": "string" +}, +"imageUri": { +"description": "Optional. The public URI to an image file.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentMessageLinkOutSuggestion": { +"description": "The suggestion chip message that allows the user to jump out to the app or website associated with this agent.", +"id": "GoogleCloudDialogflowV2IntentMessageLinkOutSuggestion", +"properties": { +"destinationName": { +"description": "Required. The name of the app or site this chip is linking to.", +"type": "string" +}, +"uri": { +"description": "Required. The URI of the app or site to open when the user taps the suggestion chip.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentMessageListSelect": { +"description": "The card for presenting a list of options to select from.", +"id": "GoogleCloudDialogflowV2IntentMessageListSelect", +"properties": { +"items": { +"description": "Required. List items.", +"items": { +"$ref": "GoogleCloudDialogflowV2IntentMessageListSelectItem" +}, +"type": "array" +}, +"subtitle": { +"description": "Optional. Subtitle of the list.", +"type": "string" +}, +"title": { +"description": "Optional. The overall title of the list.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentMessageListSelectItem": { +"description": "An item in the list.", +"id": "GoogleCloudDialogflowV2IntentMessageListSelectItem", +"properties": { +"description": { +"description": "Optional. The main text describing the item.", +"type": "string" +}, +"image": { +"$ref": "GoogleCloudDialogflowV2IntentMessageImage", +"description": "Optional. The image to display." +}, +"info": { +"$ref": "GoogleCloudDialogflowV2IntentMessageSelectItemInfo", +"description": "Required. Additional information about this option." +}, +"title": { +"description": "Required. The title of the list item.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentMessageMediaContent": { +"description": "The media content card for Actions on Google.", +"id": "GoogleCloudDialogflowV2IntentMessageMediaContent", +"properties": { +"mediaObjects": { +"description": "Required. List of media objects.", +"items": { +"$ref": "GoogleCloudDialogflowV2IntentMessageMediaContentResponseMediaObject" +}, +"type": "array" +}, +"mediaType": { +"description": "Optional. What type of media is the content (ie \"audio\").", +"enum": [ +"RESPONSE_MEDIA_TYPE_UNSPECIFIED", +"AUDIO" +], +"enumDescriptions": [ +"Unspecified.", +"Response media type is audio." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentMessageMediaContentResponseMediaObject": { +"description": "Response media object for media content card.", +"id": "GoogleCloudDialogflowV2IntentMessageMediaContentResponseMediaObject", +"properties": { +"contentUrl": { +"description": "Required. Url where the media is stored.", +"type": "string" +}, +"description": { +"description": "Optional. Description of media card.", +"type": "string" +}, +"icon": { +"$ref": "GoogleCloudDialogflowV2IntentMessageImage", +"description": "Optional. Icon to display above media content." +}, +"largeImage": { +"$ref": "GoogleCloudDialogflowV2IntentMessageImage", +"description": "Optional. Image to display above media content." +}, +"name": { +"description": "Required. Name of media card.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentMessageQuickReplies": { +"description": "The quick replies response message.", +"id": "GoogleCloudDialogflowV2IntentMessageQuickReplies", +"properties": { +"quickReplies": { +"description": "Optional. The collection of quick replies.", +"items": { +"type": "string" +}, +"type": "array" +}, +"title": { +"description": "Optional. The title of the collection of quick replies.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentMessageSelectItemInfo": { +"description": "Additional info about the select item for when it is triggered in a dialog.", +"id": "GoogleCloudDialogflowV2IntentMessageSelectItemInfo", +"properties": { +"key": { +"description": "Required. A unique key that will be sent back to the agent if this response is given.", +"type": "string" +}, +"synonyms": { +"description": "Optional. A list of synonyms that can also be used to trigger this item in dialog.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentMessageSimpleResponse": { +"description": "The simple response message containing speech or text.", +"id": "GoogleCloudDialogflowV2IntentMessageSimpleResponse", +"properties": { +"displayText": { +"description": "Optional. The text to display.", +"type": "string" +}, +"ssml": { +"description": "One of text_to_speech or ssml must be provided. Structured spoken response to the user in the SSML format. Mutually exclusive with text_to_speech.", +"type": "string" +}, +"textToSpeech": { +"description": "One of text_to_speech or ssml must be provided. The plain text of the speech output. Mutually exclusive with ssml.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentMessageSimpleResponses": { +"description": "The collection of simple response candidates. This message in `QueryResult.fulfillment_messages` and `WebhookResponse.fulfillment_messages` should contain only one `SimpleResponse`.", +"id": "GoogleCloudDialogflowV2IntentMessageSimpleResponses", +"properties": { +"simpleResponses": { +"description": "Required. The list of simple responses.", +"items": { +"$ref": "GoogleCloudDialogflowV2IntentMessageSimpleResponse" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentMessageSuggestion": { +"description": "The suggestion chip message that the user can tap to quickly post a reply to the conversation.", +"id": "GoogleCloudDialogflowV2IntentMessageSuggestion", +"properties": { +"title": { +"description": "Required. The text shown the in the suggestion chip.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentMessageSuggestions": { +"description": "The collection of suggestions.", +"id": "GoogleCloudDialogflowV2IntentMessageSuggestions", +"properties": { +"suggestions": { +"description": "Required. The list of suggested replies.", +"items": { +"$ref": "GoogleCloudDialogflowV2IntentMessageSuggestion" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentMessageTableCard": { +"description": "Table card for Actions on Google.", +"id": "GoogleCloudDialogflowV2IntentMessageTableCard", +"properties": { +"buttons": { +"description": "Optional. List of buttons for the card.", +"items": { +"$ref": "GoogleCloudDialogflowV2IntentMessageBasicCardButton" +}, +"type": "array" +}, +"columnProperties": { +"description": "Optional. Display properties for the columns in this table.", +"items": { +"$ref": "GoogleCloudDialogflowV2IntentMessageColumnProperties" +}, +"type": "array" +}, +"image": { +"$ref": "GoogleCloudDialogflowV2IntentMessageImage", +"description": "Optional. Image which should be displayed on the card." +}, +"rows": { +"description": "Optional. Rows in this table of data.", +"items": { +"$ref": "GoogleCloudDialogflowV2IntentMessageTableCardRow" +}, +"type": "array" +}, +"subtitle": { +"description": "Optional. Subtitle to the title.", +"type": "string" +}, +"title": { +"description": "Required. Title of the card.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentMessageTableCardCell": { +"description": "Cell of TableCardRow.", +"id": "GoogleCloudDialogflowV2IntentMessageTableCardCell", +"properties": { +"text": { +"description": "Required. Text in this cell.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentMessageTableCardRow": { +"description": "Row of TableCard.", +"id": "GoogleCloudDialogflowV2IntentMessageTableCardRow", +"properties": { +"cells": { +"description": "Optional. List of cells that make up this row.", +"items": { +"$ref": "GoogleCloudDialogflowV2IntentMessageTableCardCell" +}, +"type": "array" +}, +"dividerAfter": { +"description": "Optional. Whether to add a visual divider after this row.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentMessageText": { +"description": "The text response message.", +"id": "GoogleCloudDialogflowV2IntentMessageText", +"properties": { +"text": { +"description": "Optional. The collection of the agent's responses.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentParameter": { +"description": "Represents intent parameters.", +"id": "GoogleCloudDialogflowV2IntentParameter", +"properties": { +"defaultValue": { +"description": "Optional. The default value to use when the `value` yields an empty result. Default values can be extracted from contexts by using the following syntax: `#context_name.parameter_name`.", +"type": "string" +}, +"displayName": { +"description": "Required. The name of the parameter.", +"type": "string" +}, +"entityTypeDisplayName": { +"description": "Optional. The name of the entity type, prefixed with `@`, that describes values of the parameter. If the parameter is required, this must be provided.", +"type": "string" +}, +"isList": { +"description": "Optional. Indicates whether the parameter represents a list of values.", +"type": "boolean" +}, +"mandatory": { +"description": "Optional. Indicates whether the parameter is required. That is, whether the intent cannot be completed without collecting the parameter value.", +"type": "boolean" +}, +"name": { +"description": "The unique identifier of this parameter.", +"type": "string" +}, +"prompts": { +"description": "Optional. The collection of prompts that the agent can present to the user in order to collect a value for the parameter.", +"items": { +"type": "string" +}, +"type": "array" +}, +"value": { +"description": "Optional. The definition of the parameter value. It can be: - a constant string, - a parameter value defined as `$parameter_name`, - an original parameter value defined as `$parameter_name.original`, - a parameter value from some context defined as `#context_name.parameter_name`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentTrainingPhrase": { +"description": "Represents an example that the agent is trained on.", +"id": "GoogleCloudDialogflowV2IntentTrainingPhrase", +"properties": { +"name": { +"description": "Output only. The unique identifier of this training phrase.", +"readOnly": true, +"type": "string" +}, +"parts": { +"description": "Required. The ordered list of training phrase parts. The parts are concatenated in order to form the training phrase. Note: The API does not automatically annotate training phrases like the Dialogflow Console does. Note: Do not forget to include whitespace at part boundaries, so the training phrase is well formatted when the parts are concatenated. If the training phrase does not need to be annotated with parameters, you just need a single part with only the Part.text field set. If you want to annotate the training phrase, you must create multiple parts, where the fields of each part are populated in one of two ways: - `Part.text` is set to a part of the phrase that has no parameters. - `Part.text` is set to a part of the phrase that you want to annotate, and the `entity_type`, `alias`, and `user_defined` fields are all set.", +"items": { +"$ref": "GoogleCloudDialogflowV2IntentTrainingPhrasePart" +}, +"type": "array" +}, +"timesAddedCount": { +"description": "Optional. Indicates how many times this example was added to the intent. Each time a developer adds an existing sample by editing an intent or training, this counter is increased.", +"format": "int32", +"type": "integer" +}, +"type": { +"description": "Required. The type of the training phrase.", +"enum": [ +"TYPE_UNSPECIFIED", +"EXAMPLE", +"TEMPLATE" +], +"enumDeprecated": [ +false, +false, +true +], +"enumDescriptions": [ +"Not specified. This value should never be used.", +"Examples do not contain @-prefixed entity type names, but example parts can be annotated with entity types.", +"Templates are not annotated with entity types, but they can contain @-prefixed entity type names as substrings. Template mode has been deprecated. Example mode is the only supported way to create new training phrases. If you have existing training phrases that you've created in template mode, those will continue to work." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2IntentTrainingPhrasePart": { +"description": "Represents a part of a training phrase.", +"id": "GoogleCloudDialogflowV2IntentTrainingPhrasePart", +"properties": { +"alias": { +"description": "Optional. The parameter name for the value extracted from the annotated part of the example. This field is required for annotated parts of the training phrase.", +"type": "string" +}, +"entityType": { +"description": "Optional. The entity type name prefixed with `@`. This field is required for annotated parts of the training phrase.", +"type": "string" +}, +"text": { +"description": "Required. The text for this part.", +"type": "string" +}, +"userDefined": { +"description": "Optional. Indicates whether the text was manually annotated. This field is set to true when the Dialogflow Console is used to manually annotate the part. When creating an annotated part with the API, you must set this to true.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2KnowledgeAssistAnswer": { +"description": "Represents a Knowledge Assist answer.", +"id": "GoogleCloudDialogflowV2KnowledgeAssistAnswer", +"properties": { +"answerRecord": { +"description": "The name of the answer record. Format: `projects//locations//answer Records/`.", +"type": "string" +}, +"suggestedQuery": { +"$ref": "GoogleCloudDialogflowV2KnowledgeAssistAnswerSuggestedQuery", +"description": "The query suggested based on the context. Suggestion is made only if it is different from the previous suggestion." +}, +"suggestedQueryAnswer": { +"$ref": "GoogleCloudDialogflowV2KnowledgeAssistAnswerKnowledgeAnswer", +"description": "The answer generated for the suggested query. Whether or not an answer is generated depends on how confident we are about the generated query." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2KnowledgeAssistAnswerKnowledgeAnswer": { +"description": "Represents an answer from Knowledge. Currently supports FAQ and Generative answers.", +"id": "GoogleCloudDialogflowV2KnowledgeAssistAnswerKnowledgeAnswer", +"properties": { +"answerText": { +"description": "The piece of text from the `source` that answers this suggested query.", +"type": "string" +}, +"faqSource": { +"$ref": "GoogleCloudDialogflowV2KnowledgeAssistAnswerKnowledgeAnswerFaqSource", +"description": "Populated if the prediction came from FAQ." +}, +"generativeSource": { +"$ref": "GoogleCloudDialogflowV2KnowledgeAssistAnswerKnowledgeAnswerGenerativeSource", +"description": "Populated if the prediction was Generative." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2KnowledgeAssistAnswerKnowledgeAnswerFaqSource": { +"description": "Details about source of FAQ answer.", +"id": "GoogleCloudDialogflowV2KnowledgeAssistAnswerKnowledgeAnswerFaqSource", +"properties": { +"question": { +"description": "The corresponding FAQ question.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2KnowledgeAssistAnswerKnowledgeAnswerGenerativeSource": { +"description": "Details about source of Generative answer.", +"id": "GoogleCloudDialogflowV2KnowledgeAssistAnswerKnowledgeAnswerGenerativeSource", +"properties": { +"snippets": { +"description": "All snippets used for this Generative Prediction, with their source URI and data.", +"items": { +"$ref": "GoogleCloudDialogflowV2KnowledgeAssistAnswerKnowledgeAnswerGenerativeSourceSnippet" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2KnowledgeAssistAnswerKnowledgeAnswerGenerativeSourceSnippet": { +"description": "Snippet Source for a Generative Prediction.", +"id": "GoogleCloudDialogflowV2KnowledgeAssistAnswerKnowledgeAnswerGenerativeSourceSnippet", +"properties": { +"metadata": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Metadata of the document.", +"type": "object" +}, +"text": { +"description": "Text taken from that URI.", +"type": "string" +}, +"title": { +"description": "Title of the document.", +"type": "string" +}, +"uri": { +"description": "URI the data is sourced from.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2KnowledgeAssistAnswerSuggestedQuery": { +"description": "Represents a suggested query.", +"id": "GoogleCloudDialogflowV2KnowledgeAssistAnswerSuggestedQuery", +"properties": { +"queryText": { +"description": "Suggested query text.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2KnowledgeOperationMetadata": { +"description": "Metadata in google::longrunning::Operation for Knowledge operations.", +"id": "GoogleCloudDialogflowV2KnowledgeOperationMetadata", +"properties": { +"exportOperationMetadata": { +"$ref": "GoogleCloudDialogflowV2ExportOperationMetadata", +"description": "Metadata for the Export Data Operation such as the destination of export." +}, +"knowledgeBase": { +"description": "The name of the knowledge base interacted with during the operation.", +"type": "string" +}, +"state": { +"description": "Output only. The current state of this operation.", +"enum": [ +"STATE_UNSPECIFIED", +"PENDING", +"RUNNING", +"DONE" +], +"enumDescriptions": [ +"State unspecified.", +"The operation has been created.", +"The operation is currently running.", +"The operation is done, either cancelled or completed." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2Message": { +"description": "Represents a message posted into a conversation.", +"id": "GoogleCloudDialogflowV2Message", +"properties": { +"content": { +"description": "Required. The message content.", +"type": "string" +}, +"createTime": { +"description": "Output only. The time when the message was created in Contact Center AI.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"languageCode": { +"description": "Optional. The message language. This should be a [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tag. Example: \"en-US\".", +"type": "string" +}, +"messageAnnotation": { +"$ref": "GoogleCloudDialogflowV2MessageAnnotation", +"description": "Output only. The annotation for the message.", +"readOnly": true +}, +"name": { +"description": "Optional. The unique identifier of the message. Format: `projects//locations//conversations//messages/`.", +"type": "string" +}, +"participant": { +"description": "Output only. The participant that sends this message.", +"readOnly": true, +"type": "string" +}, +"participantRole": { +"description": "Output only. The role of the participant.", +"enum": [ +"ROLE_UNSPECIFIED", +"HUMAN_AGENT", +"AUTOMATED_AGENT", +"END_USER" +], +"enumDescriptions": [ +"Participant role not set.", +"Participant is a human agent.", +"Participant is an automated agent, such as a Dialogflow agent.", +"Participant is an end user that has called or chatted with Dialogflow services." +], +"readOnly": true, +"type": "string" +}, +"sendTime": { +"description": "Optional. The time when the message was sent.", +"format": "google-datetime", +"type": "string" +}, +"sentimentAnalysis": { +"$ref": "GoogleCloudDialogflowV2SentimentAnalysisResult", +"description": "Output only. The sentiment analysis result for the message.", +"readOnly": true +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2MessageAnnotation": { +"description": "Represents the result of annotation for the message.", +"id": "GoogleCloudDialogflowV2MessageAnnotation", +"properties": { +"containEntities": { +"description": "Indicates whether the text message contains entities.", +"type": "boolean" +}, +"parts": { +"description": "The collection of annotated message parts ordered by their position in the message. You can recover the annotated message by concatenating [AnnotatedMessagePart.text].", +"items": { +"$ref": "GoogleCloudDialogflowV2AnnotatedMessagePart" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2OriginalDetectIntentRequest": { +"description": "Represents the contents of the original request that was passed to the `[Streaming]DetectIntent` call.", +"id": "GoogleCloudDialogflowV2OriginalDetectIntentRequest", +"properties": { +"payload": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Optional. This field is set to the value of the `QueryParameters.payload` field passed in the request. Some integrations that query a Dialogflow agent may provide additional information in the payload. In particular, for the Dialogflow Phone Gateway integration, this field has the form: { \"telephony\": { \"caller_id\": \"+18558363987\" } } Note: The caller ID field (`caller_id`) will be redacted for Trial Edition agents and populated with the caller ID in [E.164 format](https://en.wikipedia.org/wiki/E.164) for Essentials Edition agents.", +"type": "object" +}, +"source": { +"description": "The source of this request, e.g., `google`, `facebook`, `slack`. It is set by Dialogflow-owned servers.", +"type": "string" +}, +"version": { +"description": "Optional. The version of the protocol used for this request. This field is AoG-specific.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2QueryResult": { +"description": "Represents the result of conversational query or event processing.", +"id": "GoogleCloudDialogflowV2QueryResult", +"properties": { +"action": { +"description": "The action name from the matched intent.", +"type": "string" +}, +"allRequiredParamsPresent": { +"description": "This field is set to: - `false` if the matched intent has required parameters and not all of the required parameter values have been collected. - `true` if all required parameter values have been collected, or if the matched intent doesn't contain any required parameters.", +"type": "boolean" +}, +"cancelsSlotFilling": { +"description": "Indicates whether the conversational query triggers a cancellation for slot filling. For more information, see the [cancel slot filling documentation](https://cloud.google.com/dialogflow/es/docs/intents-actions-parameters#cancel).", +"type": "boolean" +}, +"diagnosticInfo": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Free-form diagnostic information for the associated detect intent request. The fields of this data can change without notice, so you should not write code that depends on its structure. The data may contain: - webhook call latency - webhook errors", +"type": "object" +}, +"fulfillmentMessages": { +"description": "The collection of rich messages to present to the user.", +"items": { +"$ref": "GoogleCloudDialogflowV2IntentMessage" +}, +"type": "array" +}, +"fulfillmentText": { +"description": "The text to be pronounced to the user or shown on the screen. Note: This is a legacy field, `fulfillment_messages` should be preferred.", +"type": "string" +}, +"intent": { +"$ref": "GoogleCloudDialogflowV2Intent", +"description": "The intent that matched the conversational query. Some, not all fields are filled in this message, including but not limited to: `name`, `display_name`, `end_interaction` and `is_fallback`." +}, +"intentDetectionConfidence": { +"description": "The intent detection confidence. Values range from 0.0 (completely uncertain) to 1.0 (completely certain). This value is for informational purpose only and is only used to help match the best intent within the classification threshold. This value may change for the same end-user expression at any time due to a model retraining or change in implementation. If there are `multiple knowledge_answers` messages, this value is set to the greatest `knowledgeAnswers.match_confidence` value in the list.", +"format": "float", +"type": "number" +}, +"languageCode": { +"description": "The language that was triggered during intent detection. See [Language Support](https://cloud.google.com/dialogflow/docs/reference/language) for a list of the currently supported language codes.", +"type": "string" +}, +"outputContexts": { +"description": "The collection of output contexts. If applicable, `output_contexts.parameters` contains entries with name `.original` containing the original parameter values before the query.", +"items": { +"$ref": "GoogleCloudDialogflowV2Context" +}, +"type": "array" +}, +"parameters": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "The collection of extracted parameters. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: * MapKey type: string * MapKey value: parameter name * MapValue type: If parameter's entity type is a composite entity then use map, otherwise, depending on the parameter value type, it could be one of string, number, boolean, null, list or map. * MapValue value: If parameter's entity type is a composite entity then use map from composite entity property names to property values, otherwise, use parameter value.", +"type": "object" +}, +"queryText": { +"description": "The original conversational query text: - If natural language text was provided as input, `query_text` contains a copy of the input. - If natural language speech audio was provided as input, `query_text` contains the speech recognition result. If speech recognizer produced multiple alternatives, a particular one is picked. - If automatic spell correction is enabled, `query_text` will contain the corrected user input.", +"type": "string" +}, +"sentimentAnalysisResult": { +"$ref": "GoogleCloudDialogflowV2SentimentAnalysisResult", +"description": "The sentiment analysis result, which depends on the `sentiment_analysis_request_config` specified in the request." +}, +"speechRecognitionConfidence": { +"description": "The Speech recognition confidence between 0.0 and 1.0. A higher number indicates an estimated greater likelihood that the recognized words are correct. The default of 0.0 is a sentinel value indicating that confidence was not set. This field is not guaranteed to be accurate or set. In particular this field isn't set for StreamingDetectIntent since the streaming endpoint has separate confidence estimates per portion of the audio in StreamingRecognitionResult.", +"format": "float", +"type": "number" +}, +"webhookPayload": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "If the query was fulfilled by a webhook call, this field is set to the value of the `payload` field returned in the webhook response.", +"type": "object" +}, +"webhookSource": { +"description": "If the query was fulfilled by a webhook call, this field is set to the value of the `source` field returned in the webhook response.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2Sentiment": { +"description": "The sentiment, such as positive/negative feeling or association, for a unit of analysis, such as the query text. See: https://cloud.google.com/natural-language/docs/basics#interpreting_sentiment_analysis_values for how to interpret the result.", +"id": "GoogleCloudDialogflowV2Sentiment", +"properties": { +"magnitude": { +"description": "A non-negative number in the [0, +inf) range, which represents the absolute magnitude of sentiment, regardless of score (positive or negative).", +"format": "float", +"type": "number" +}, +"score": { +"description": "Sentiment score between -1.0 (negative sentiment) and 1.0 (positive sentiment).", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2SentimentAnalysisResult": { +"description": "The result of sentiment analysis. Sentiment analysis inspects user input and identifies the prevailing subjective opinion, especially to determine a user's attitude as positive, negative, or neutral. For DetectIntent, it needs to be configured in DetectIntentRequest.query_params. For StreamingDetectIntent, it needs to be configured in StreamingDetectIntentRequest.query_params. And for Participants.AnalyzeContent and Participants.StreamingAnalyzeContent, it needs to be configured in ConversationProfile.human_agent_assistant_config", +"id": "GoogleCloudDialogflowV2SentimentAnalysisResult", +"properties": { +"queryTextSentiment": { +"$ref": "GoogleCloudDialogflowV2Sentiment", +"description": "The sentiment analysis result for `query_text`." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2SessionEntityType": { +"description": "A session represents a conversation between a Dialogflow agent and an end-user. You can create special entities, called session entities, during a session. Session entities can extend or replace custom entity types and only exist during the session that they were created for. All session data, including session entities, is stored by Dialogflow for 20 minutes. For more information, see the [session entity guide](https://cloud.google.com/dialogflow/docs/entities-session).", +"id": "GoogleCloudDialogflowV2SessionEntityType", +"properties": { +"entities": { +"description": "Required. The collection of entities associated with this session entity type.", +"items": { +"$ref": "GoogleCloudDialogflowV2EntityTypeEntity" +}, +"type": "array" +}, +"entityOverrideMode": { +"description": "Required. Indicates whether the additional data should override or supplement the custom entity type definition.", +"enum": [ +"ENTITY_OVERRIDE_MODE_UNSPECIFIED", +"ENTITY_OVERRIDE_MODE_OVERRIDE", +"ENTITY_OVERRIDE_MODE_SUPPLEMENT" +], +"enumDescriptions": [ +"Not specified. This value should be never used.", +"The collection of session entities overrides the collection of entities in the corresponding custom entity type.", +"The collection of session entities extends the collection of entities in the corresponding custom entity type. Note: Even in this override mode calls to `ListSessionEntityTypes`, `GetSessionEntityType`, `CreateSessionEntityType` and `UpdateSessionEntityType` only return the additional entities added in this session entity type. If you want to get the supplemented list, please call EntityTypes.GetEntityType on the custom entity type and merge." +], +"type": "string" +}, +"name": { +"description": "Required. The unique identifier of this session entity type. Format: `projects//agent/sessions//entityTypes/`, or `projects//agent/environments//users//sessions//entityTypes/`. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. `` must be the display name of an existing entity type in the same agent that will be overridden or supplemented.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2SetSuggestionFeatureConfigOperationMetadata": { +"description": "Metadata for a ConversationProfiles.SetSuggestionFeatureConfig operation.", +"id": "GoogleCloudDialogflowV2SetSuggestionFeatureConfigOperationMetadata", +"properties": { +"conversationProfile": { +"description": "The resource name of the conversation profile. Format: `projects//locations//conversationProfiles/`", +"type": "string" +}, +"createTime": { +"description": "Timestamp whe the request was created. The time is measured on server side.", +"format": "google-datetime", +"type": "string" +}, +"participantRole": { +"description": "Required. The participant role to add or update the suggestion feature config. Only HUMAN_AGENT or END_USER can be used.", +"enum": [ +"ROLE_UNSPECIFIED", +"HUMAN_AGENT", +"AUTOMATED_AGENT", +"END_USER" +], +"enumDescriptions": [ +"Participant role not set.", +"Participant is a human agent.", +"Participant is an automated agent, such as a Dialogflow agent.", +"Participant is an end user that has called or chatted with Dialogflow services." +], +"type": "string" +}, +"suggestionFeatureType": { +"description": "Required. The type of the suggestion feature to add or update.", +"enum": [ +"TYPE_UNSPECIFIED", +"ARTICLE_SUGGESTION", +"FAQ", +"SMART_REPLY", +"KNOWLEDGE_SEARCH", +"KNOWLEDGE_ASSIST" +], +"enumDescriptions": [ +"Unspecified feature type.", +"Run article suggestion model for chat.", +"Run FAQ model for chat.", +"Run smart reply model for chat.", +"Run knowledge search with text input from agent or text generated query.", +"Run knowledge assist with automatic query generation." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2SmartReplyAnswer": { +"description": "Represents a smart reply answer.", +"id": "GoogleCloudDialogflowV2SmartReplyAnswer", +"properties": { +"answerRecord": { +"description": "The name of answer record, in the format of \"projects//locations//answerRecords/\"", +"type": "string" +}, +"confidence": { +"description": "Smart reply confidence. The system's confidence score that this reply is a good match for this conversation, as a value from 0.0 (completely uncertain) to 1.0 (completely certain).", +"format": "float", +"type": "number" +}, +"reply": { +"description": "The content of the reply.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2SmartReplyModelMetadata": { +"description": "Metadata for smart reply models.", +"id": "GoogleCloudDialogflowV2SmartReplyModelMetadata", +"properties": { +"trainingModelType": { +"description": "Optional. Type of the smart reply model. If not provided, model_type is used.", +"enum": [ +"MODEL_TYPE_UNSPECIFIED", +"SMART_REPLY_DUAL_ENCODER_MODEL", +"SMART_REPLY_BERT_MODEL" +], +"enumDescriptions": [ +"ModelType unspecified.", +"ModelType smart reply dual encoder model.", +"ModelType smart reply bert model." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2SpeechWordInfo": { +"description": "Information for a word recognized by the speech recognizer.", +"id": "GoogleCloudDialogflowV2SpeechWordInfo", +"properties": { +"confidence": { +"description": "The Speech confidence between 0.0 and 1.0 for this word. A higher number indicates an estimated greater likelihood that the recognized word is correct. The default of 0.0 is a sentinel value indicating that confidence was not set. This field is not guaranteed to be fully stable over time for the same audio input. Users should also not rely on it to always be provided.", +"format": "float", +"type": "number" +}, +"endOffset": { +"description": "Time offset relative to the beginning of the audio that corresponds to the end of the spoken word. This is an experimental feature and the accuracy of the time offset can vary.", +"format": "google-duration", +"type": "string" +}, +"startOffset": { +"description": "Time offset relative to the beginning of the audio that corresponds to the start of the spoken word. This is an experimental feature and the accuracy of the time offset can vary.", +"format": "google-duration", +"type": "string" +}, +"word": { +"description": "The word this info is for.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2StreamingRecognitionResult": { +"description": "Contains a speech recognition result corresponding to a portion of the audio that is currently being processed or an indication that this is the end of the single requested utterance. While end-user audio is being processed, Dialogflow sends a series of results. Each result may contain a `transcript` value. A transcript represents a portion of the utterance. While the recognizer is processing audio, transcript values may be interim values or finalized values. Once a transcript is finalized, the `is_final` value is set to true and processing continues for the next transcript. If `StreamingDetectIntentRequest.query_input.audio_config.single_utterance` was true, and the recognizer has completed processing audio, the `message_type` value is set to `END_OF_SINGLE_UTTERANCE and the following (last) result contains the last finalized transcript. The complete end-user utterance is determined by concatenating the finalized transcript values received for the series of results. In the following example, single utterance is enabled. In the case where single utterance is not enabled, result 7 would not occur. ``` Num | transcript | message_type | is_final --- | ----------------------- | ----------------------- | -------- 1 | \"tube\" | TRANSCRIPT | false 2 | \"to be a\" | TRANSCRIPT | false 3 | \"to be\" | TRANSCRIPT | false 4 | \"to be or not to be\" | TRANSCRIPT | true 5 | \"that's\" | TRANSCRIPT | false 6 | \"that is | TRANSCRIPT | false 7 | unset | END_OF_SINGLE_UTTERANCE | unset 8 | \" that is the question\" | TRANSCRIPT | true ``` Concatenating the finalized transcripts with `is_final` set to true, the complete utterance becomes \"to be or not to be that is the question\".", +"id": "GoogleCloudDialogflowV2StreamingRecognitionResult", +"properties": { +"confidence": { +"description": "The Speech confidence between 0.0 and 1.0 for the current portion of audio. A higher number indicates an estimated greater likelihood that the recognized words are correct. The default of 0.0 is a sentinel value indicating that confidence was not set. This field is typically only provided if `is_final` is true and you should not rely on it being accurate or even set.", +"format": "float", +"type": "number" +}, +"isFinal": { +"description": "If `false`, the `StreamingRecognitionResult` represents an interim result that may change. If `true`, the recognizer will not return any further hypotheses about this piece of the audio. May only be populated for `message_type` = `TRANSCRIPT`.", +"type": "boolean" +}, +"languageCode": { +"description": "Detected language code for the transcript.", +"type": "string" +}, +"messageType": { +"description": "Type of the result message.", +"enum": [ +"MESSAGE_TYPE_UNSPECIFIED", +"TRANSCRIPT", +"END_OF_SINGLE_UTTERANCE" +], +"enumDescriptions": [ +"Not specified. Should never be used.", +"Message contains a (possibly partial) transcript.", +"This event indicates that the server has detected the end of the user's speech utterance and expects no additional inputs. Therefore, the server will not process additional audio (although it may subsequently return additional results). The client should stop sending additional audio data, half-close the gRPC connection, and wait for any additional results until the server closes the gRPC connection. This message is only sent if `single_utterance` was set to `true`, and is not used otherwise." +], +"type": "string" +}, +"speechEndOffset": { +"description": "Time offset of the end of this Speech recognition result relative to the beginning of the audio. Only populated for `message_type` = `TRANSCRIPT`.", +"format": "google-duration", +"type": "string" +}, +"speechWordInfo": { +"description": "Word-specific information for the words recognized by Speech in transcript. Populated if and only if `message_type` = `TRANSCRIPT` and [InputAudioConfig.enable_word_info] is set.", +"items": { +"$ref": "GoogleCloudDialogflowV2SpeechWordInfo" +}, +"type": "array" +}, +"transcript": { +"description": "Transcript text representing the words that the user spoke. Populated if and only if `message_type` = `TRANSCRIPT`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2SuggestArticlesResponse": { +"description": "The response message for Participants.SuggestArticles.", +"id": "GoogleCloudDialogflowV2SuggestArticlesResponse", +"properties": { +"articleAnswers": { +"description": "Articles ordered by score in descending order.", +"items": { +"$ref": "GoogleCloudDialogflowV2ArticleAnswer" +}, +"type": "array" +}, +"contextSize": { +"description": "Number of messages prior to and including latest_message to compile the suggestion. It may be smaller than the SuggestArticlesRequest.context_size field in the request if there aren't that many messages in the conversation.", +"format": "int32", +"type": "integer" +}, +"latestMessage": { +"description": "The name of the latest conversation message used to compile suggestion for. Format: `projects//locations//conversations//messages/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2SuggestFaqAnswersResponse": { +"description": "The request message for Participants.SuggestFaqAnswers.", +"id": "GoogleCloudDialogflowV2SuggestFaqAnswersResponse", +"properties": { +"contextSize": { +"description": "Number of messages prior to and including latest_message to compile the suggestion. It may be smaller than the SuggestFaqAnswersRequest.context_size field in the request if there aren't that many messages in the conversation.", +"format": "int32", +"type": "integer" +}, +"faqAnswers": { +"description": "Answers extracted from FAQ documents.", +"items": { +"$ref": "GoogleCloudDialogflowV2FaqAnswer" +}, +"type": "array" +}, +"latestMessage": { +"description": "The name of the latest conversation message used to compile suggestion for. Format: `projects//locations//conversations//messages/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2SuggestKnowledgeAssistResponse": { +"description": "The response message for Participants.SuggestKnowledgeAssist.", +"id": "GoogleCloudDialogflowV2SuggestKnowledgeAssistResponse", +"properties": { +"contextSize": { +"description": "Number of messages prior to and including latest_message to compile the suggestion. It may be smaller than the SuggestKnowledgeAssistRequest.context_size field in the request if there are fewer messages in the conversation.", +"format": "int32", +"type": "integer" +}, +"knowledgeAssistAnswer": { +"$ref": "GoogleCloudDialogflowV2KnowledgeAssistAnswer", +"description": "Output only. Knowledge Assist suggestion.", +"readOnly": true +}, +"latestMessage": { +"description": "The name of the latest conversation message used to compile suggestion for. Format: `projects//locations//conversations//messages/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2SuggestSmartRepliesResponse": { +"description": "The response message for Participants.SuggestSmartReplies.", +"id": "GoogleCloudDialogflowV2SuggestSmartRepliesResponse", +"properties": { +"contextSize": { +"description": "Number of messages prior to and including latest_message to compile the suggestion. It may be smaller than the SuggestSmartRepliesRequest.context_size field in the request if there aren't that many messages in the conversation.", +"format": "int32", +"type": "integer" +}, +"latestMessage": { +"description": "The name of the latest conversation message used to compile suggestion for. Format: `projects//locations//conversations//messages/`.", +"type": "string" +}, +"smartReplyAnswers": { +"description": "Output only. Multiple reply options provided by smart reply service. The order is based on the rank of the model prediction. The maximum number of the returned replies is set in SmartReplyConfig.", +"items": { +"$ref": "GoogleCloudDialogflowV2SmartReplyAnswer" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2SuggestionResult": { +"description": "One response of different type of suggestion response which is used in the response of Participants.AnalyzeContent and Participants.AnalyzeContent, as well as HumanAgentAssistantEvent.", +"id": "GoogleCloudDialogflowV2SuggestionResult", +"properties": { +"error": { +"$ref": "GoogleRpcStatus", +"description": "Error status if the request failed." +}, +"suggestArticlesResponse": { +"$ref": "GoogleCloudDialogflowV2SuggestArticlesResponse", +"description": "SuggestArticlesResponse if request is for ARTICLE_SUGGESTION." +}, +"suggestFaqAnswersResponse": { +"$ref": "GoogleCloudDialogflowV2SuggestFaqAnswersResponse", +"description": "SuggestFaqAnswersResponse if request is for FAQ_ANSWER." +}, +"suggestKnowledgeAssistResponse": { +"$ref": "GoogleCloudDialogflowV2SuggestKnowledgeAssistResponse", +"description": "SuggestKnowledgeAssistResponse if request is for KNOWLEDGE_ASSIST." +}, +"suggestSmartRepliesResponse": { +"$ref": "GoogleCloudDialogflowV2SuggestSmartRepliesResponse", +"description": "SuggestSmartRepliesResponse if request is for SMART_REPLY." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2UndeployConversationModelOperationMetadata": { +"description": "Metadata for a ConversationModels.UndeployConversationModel operation.", +"id": "GoogleCloudDialogflowV2UndeployConversationModelOperationMetadata", +"properties": { +"conversationModel": { +"description": "The resource name of the conversation model. Format: `projects//conversationModels/`", +"type": "string" +}, +"createTime": { +"description": "Timestamp when the request to undeploy conversation model was submitted. The time is measured on server side.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2WebhookRequest": { +"description": "The request message for a webhook call.", +"id": "GoogleCloudDialogflowV2WebhookRequest", +"properties": { +"originalDetectIntentRequest": { +"$ref": "GoogleCloudDialogflowV2OriginalDetectIntentRequest", +"description": "Optional. The contents of the original request that was passed to `[Streaming]DetectIntent` call." +}, +"queryResult": { +"$ref": "GoogleCloudDialogflowV2QueryResult", +"description": "The result of the conversational query or event processing. Contains the same value as `[Streaming]DetectIntentResponse.query_result`." +}, +"responseId": { +"description": "The unique identifier of the response. Contains the same value as `[Streaming]DetectIntentResponse.response_id`.", +"type": "string" +}, +"session": { +"description": "The unique identifier of detectIntent request session. Can be used to identify end-user inside webhook implementation. Format: `projects//agent/sessions/`, or `projects//agent/environments//users//sessions/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2WebhookResponse": { +"description": "The response message for a webhook call. This response is validated by the Dialogflow server. If validation fails, an error will be returned in the QueryResult.diagnostic_info field. Setting JSON fields to an empty value with the wrong type is a common error. To avoid this error: - Use `\"\"` for empty strings - Use `{}` or `null` for empty objects - Use `[]` or `null` for empty arrays For more information, see the [Protocol Buffers Language Guide](https://developers.google.com/protocol-buffers/docs/proto3#json).", +"id": "GoogleCloudDialogflowV2WebhookResponse", +"properties": { +"followupEventInput": { +"$ref": "GoogleCloudDialogflowV2EventInput", +"description": "Optional. Invokes the supplied events. When this field is set, Dialogflow ignores the `fulfillment_text`, `fulfillment_messages`, and `payload` fields." +}, +"fulfillmentMessages": { +"description": "Optional. The rich response messages intended for the end-user. When provided, Dialogflow uses this field to populate QueryResult.fulfillment_messages sent to the integration or API caller.", +"items": { +"$ref": "GoogleCloudDialogflowV2IntentMessage" +}, +"type": "array" +}, +"fulfillmentText": { +"description": "Optional. The text response message intended for the end-user. It is recommended to use `fulfillment_messages.text.text[0]` instead. When provided, Dialogflow uses this field to populate QueryResult.fulfillment_text sent to the integration or API caller.", +"type": "string" +}, +"outputContexts": { +"description": "Optional. The collection of output contexts that will overwrite currently active contexts for the session and reset their lifespans. When provided, Dialogflow uses this field to populate QueryResult.output_contexts sent to the integration or API caller.", +"items": { +"$ref": "GoogleCloudDialogflowV2Context" +}, +"type": "array" +}, +"payload": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Optional. This field can be used to pass custom data from your webhook to the integration or API caller. Arbitrary JSON objects are supported. When provided, Dialogflow uses this field to populate QueryResult.webhook_payload sent to the integration or API caller. This field is also used by the [Google Assistant integration](https://cloud.google.com/dialogflow/docs/integrations/aog) for rich response messages. See the format definition at [Google Assistant Dialogflow webhook format](https://developers.google.com/assistant/actions/build/json/dialogflow-webhook-json)", +"type": "object" +}, +"sessionEntityTypes": { +"description": "Optional. Additional session entity types to replace or extend developer entity types with. The entity synonyms apply to all languages and persist for the session. Setting this data from a webhook overwrites the session entity types that have been set using `detectIntent`, `streamingDetectIntent` or SessionEntityType management methods.", +"items": { +"$ref": "GoogleCloudDialogflowV2SessionEntityType" +}, +"type": "array" +}, +"source": { +"description": "Optional. A custom field used to identify the webhook source. Arbitrary strings are supported. When provided, Dialogflow uses this field to populate QueryResult.webhook_source sent to the integration or API caller.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1AnnotatedMessagePart": { +"description": "Represents a part of a message possibly annotated with an entity. The part can be an entity or purely a part of the message between two entities or message start/end.", +"id": "GoogleCloudDialogflowV2beta1AnnotatedMessagePart", +"properties": { +"entityType": { +"description": "Optional. The [Dialogflow system entity type](https://cloud.google.com/dialogflow/docs/reference/system-entities) of this message part. If this is empty, Dialogflow could not annotate the phrase part with a system entity.", +"type": "string" +}, +"formattedValue": { +"description": "Optional. The [Dialogflow system entity formatted value ](https://cloud.google.com/dialogflow/docs/reference/system-entities) of this message part. For example for a system entity of type `@sys.unit-currency`, this may contain: { \"amount\": 5, \"currency\": \"USD\" } ", +"type": "any" +}, +"text": { +"description": "Required. A part of a message possibly annotated with an entity.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1ArticleAnswer": { +"description": "Represents article answer.", +"id": "GoogleCloudDialogflowV2beta1ArticleAnswer", +"properties": { +"answerRecord": { +"description": "The name of answer record, in the format of \"projects//locations//answerRecords/\"", +"type": "string" +}, +"metadata": { +"additionalProperties": { +"type": "string" +}, +"description": "A map that contains metadata about the answer and the document from which it originates.", +"type": "object" +}, +"snippets": { +"description": "Output only. Article snippets.", +"items": { +"type": "string" +}, +"type": "array" +}, +"title": { +"description": "The article title.", +"type": "string" +}, +"uri": { +"description": "The article URI.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1BatchUpdateEntityTypesResponse": { +"description": "The response message for EntityTypes.BatchUpdateEntityTypes.", +"id": "GoogleCloudDialogflowV2beta1BatchUpdateEntityTypesResponse", +"properties": { +"entityTypes": { +"description": "The collection of updated or created entity types.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1EntityType" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1BatchUpdateIntentsResponse": { +"description": "The response message for Intents.BatchUpdateIntents.", +"id": "GoogleCloudDialogflowV2beta1BatchUpdateIntentsResponse", +"properties": { +"intents": { +"description": "The collection of updated or created intents.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1Intent" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1ClearSuggestionFeatureConfigOperationMetadata": { +"description": "Metadata for a ConversationProfile.ClearSuggestionFeatureConfig operation.", +"id": "GoogleCloudDialogflowV2beta1ClearSuggestionFeatureConfigOperationMetadata", +"properties": { +"conversationProfile": { +"description": "The resource name of the conversation profile. Format: `projects//locations//conversationProfiles/`", +"type": "string" +}, +"createTime": { +"description": "Timestamp whe the request was created. The time is measured on server side.", +"format": "google-datetime", +"type": "string" +}, +"participantRole": { +"description": "Required. The participant role to remove the suggestion feature config. Only HUMAN_AGENT or END_USER can be used.", +"enum": [ +"ROLE_UNSPECIFIED", +"HUMAN_AGENT", +"AUTOMATED_AGENT", +"END_USER" +], +"enumDescriptions": [ +"Participant role not set.", +"Participant is a human agent.", +"Participant is an automated agent, such as a Dialogflow agent.", +"Participant is an end user that has called or chatted with Dialogflow services." +], +"type": "string" +}, +"suggestionFeatureType": { +"description": "Required. The type of the suggestion feature to remove.", +"enum": [ +"TYPE_UNSPECIFIED", +"ARTICLE_SUGGESTION", +"FAQ", +"SMART_REPLY", +"DIALOGFLOW_ASSIST", +"CONVERSATION_SUMMARIZATION", +"KNOWLEDGE_SEARCH", +"KNOWLEDGE_ASSIST" +], +"enumDescriptions": [ +"Unspecified feature type.", +"Run article suggestion model for chat.", +"Run FAQ model.", +"Run smart reply model for chat.", +"Run Dialogflow assist model for chat, which will return automated agent response as suggestion.", +"Run conversation summarization model for chat.", +"Run knowledge search with text input from agent or text generated query.", +"Run knowledge assist with automatic query generation." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1Context": { +"description": "Dialogflow contexts are similar to natural language context. If a person says to you \"they are orange\", you need context in order to understand what \"they\" is referring to. Similarly, for Dialogflow to handle an end-user expression like that, it needs to be provided with context in order to correctly match an intent. Using contexts, you can control the flow of a conversation. You can configure contexts for an intent by setting input and output contexts, which are identified by string names. When an intent is matched, any configured output contexts for that intent become active. While any contexts are active, Dialogflow is more likely to match intents that are configured with input contexts that correspond to the currently active contexts. For more information about context, see the [Contexts guide](https://cloud.google.com/dialogflow/docs/contexts-overview).", +"id": "GoogleCloudDialogflowV2beta1Context", +"properties": { +"lifespanCount": { +"description": "Optional. The number of conversational query requests after which the context expires. The default is `0`. If set to `0`, the context expires immediately. Contexts expire automatically after 20 minutes if there are no matching queries.", +"format": "int32", +"type": "integer" +}, +"name": { +"description": "Required. The unique identifier of the context. Supported formats: - `projects//agent/sessions//contexts/`, - `projects//locations//agent/sessions//contexts/`, - `projects//agent/environments//users//sessions//contexts/`, - `projects//locations//agent/environments//users//sessions//contexts/`, The `Context ID` is always converted to lowercase, may only contain characters in `a-zA-Z0-9_-%` and may be at most 250 bytes long. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. The following context names are reserved for internal use by Dialogflow. You should not use these contexts or create contexts with these names: * `__system_counters__` * `*_id_dialog_context` * `*_dialog_params_size`", +"type": "string" +}, +"parameters": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Optional. The collection of parameters associated with this context. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: * MapKey type: string * MapKey value: parameter name * MapValue type: If parameter's entity type is a composite entity then use map, otherwise, depending on the parameter value type, it could be one of string, number, boolean, null, list or map. * MapValue value: If parameter's entity type is a composite entity then use map from composite entity property names to property values, otherwise, use parameter value.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1ConversationEvent": { +"description": "Represents a notification sent to Pub/Sub subscribers for conversation lifecycle events.", +"id": "GoogleCloudDialogflowV2beta1ConversationEvent", +"properties": { +"conversation": { +"description": "Required. The unique identifier of the conversation this notification refers to. Format: `projects//conversations/`.", +"type": "string" +}, +"errorStatus": { +"$ref": "GoogleRpcStatus", +"description": "Optional. More detailed information about an error. Only set for type UNRECOVERABLE_ERROR_IN_PHONE_CALL." +}, +"newMessagePayload": { +"$ref": "GoogleCloudDialogflowV2beta1Message", +"description": "Payload of NEW_MESSAGE event." +}, +"newRecognitionResultPayload": { +"$ref": "GoogleCloudDialogflowV2beta1StreamingRecognitionResult", +"description": "Payload of NEW_RECOGNITION_RESULT event." +}, +"type": { +"description": "Required. The type of the event that this notification refers to.", +"enum": [ +"TYPE_UNSPECIFIED", +"CONVERSATION_STARTED", +"CONVERSATION_FINISHED", +"HUMAN_INTERVENTION_NEEDED", +"NEW_MESSAGE", +"NEW_RECOGNITION_RESULT", +"UNRECOVERABLE_ERROR" +], +"enumDescriptions": [ +"Type not set.", +"A new conversation has been opened. This is fired when a telephone call is answered, or a conversation is created via the API.", +"An existing conversation has closed. This is fired when a telephone call is terminated, or a conversation is closed via the API.", +"An existing conversation has received notification from Dialogflow that human intervention is required.", +"An existing conversation has received a new message, either from API or telephony. It is configured in ConversationProfile.new_message_event_notification_config", +"An existing conversation has received a new speech recognition result. This is mainly for delivering intermediate transcripts. The notification is configured in ConversationProfile.new_recognition_event_notification_config.", +"Unrecoverable error during a telephone call. In general non-recoverable errors only occur if something was misconfigured in the ConversationProfile corresponding to the call. After a non-recoverable error, Dialogflow may stop responding. We don't fire this event: * in an API call because we can directly return the error, or, * when we can recover from an error." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1DialogflowAssistAnswer": { +"description": "Represents a Dialogflow assist answer.", +"id": "GoogleCloudDialogflowV2beta1DialogflowAssistAnswer", +"properties": { +"answerRecord": { +"description": "The name of answer record, in the format of \"projects//locations//answerRecords/\"", +"type": "string" +}, +"intentSuggestion": { +"$ref": "GoogleCloudDialogflowV2beta1IntentSuggestion", +"description": "An intent suggestion generated from conversation." +}, +"queryResult": { +"$ref": "GoogleCloudDialogflowV2beta1QueryResult", +"description": "Result from v2 agent." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1EncryptionSpec": { +"description": "A customer-managed encryption key specification that can be applied to all created resources (e.g. Conversation).", +"id": "GoogleCloudDialogflowV2beta1EncryptionSpec", +"properties": { +"kmsKey": { +"description": "Required. The name of customer-managed encryption key that is used to secure a resource and its sub-resources. If empty, the resource is secured by the default Google encryption key. Only the key in the same location as this resource is allowed to be used for encryption. Format: `projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{key}`", +"type": "string" +}, +"name": { +"description": "Immutable. The resource name of the encryption key specification resource. Format: projects/{project}/locations/{location}/encryptionSpec", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1EntityType": { +"description": "Each intent parameter has a type, called the entity type, which dictates exactly how data from an end-user expression is extracted. Dialogflow provides predefined system entities that can match many common types of data. For example, there are system entities for matching dates, times, colors, email addresses, and so on. You can also create your own custom entities for matching custom data. For example, you could define a vegetable entity that can match the types of vegetables available for purchase with a grocery store agent. For more information, see the [Entity guide](https://cloud.google.com/dialogflow/docs/entities-overview).", +"id": "GoogleCloudDialogflowV2beta1EntityType", +"properties": { +"autoExpansionMode": { +"description": "Optional. Indicates whether the entity type can be automatically expanded.", +"enum": [ +"AUTO_EXPANSION_MODE_UNSPECIFIED", +"AUTO_EXPANSION_MODE_DEFAULT" +], +"enumDescriptions": [ +"Auto expansion disabled for the entity.", +"Allows an agent to recognize values that have not been explicitly listed in the entity." +], +"type": "string" +}, +"displayName": { +"description": "Required. The name of the entity type.", +"type": "string" +}, +"enableFuzzyExtraction": { +"description": "Optional. Enables fuzzy entity extraction during classification.", +"type": "boolean" +}, +"entities": { +"description": "Optional. The collection of entity entries associated with the entity type.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1EntityTypeEntity" +}, +"type": "array" +}, +"kind": { +"description": "Required. Indicates the kind of entity type.", +"enum": [ +"KIND_UNSPECIFIED", +"KIND_MAP", +"KIND_LIST", +"KIND_REGEXP" +], +"enumDescriptions": [ +"Not specified. This value should be never used.", +"Map entity types allow mapping of a group of synonyms to a reference value.", +"List entity types contain a set of entries that do not map to reference values. However, list entity types can contain references to other entity types (with or without aliases).", +"Regexp entity types allow to specify regular expressions in entries values." +], +"type": "string" +}, +"name": { +"description": "The unique identifier of the entity type. Required for EntityTypes.UpdateEntityType and EntityTypes.BatchUpdateEntityTypes methods. Supported formats: - `projects//agent/entityTypes/` - `projects//locations//agent/entityTypes/`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1EntityTypeEntity": { +"description": "An **entity entry** for an associated entity type.", +"id": "GoogleCloudDialogflowV2beta1EntityTypeEntity", +"properties": { +"synonyms": { +"description": "Required. A collection of value synonyms. For example, if the entity type is *vegetable*, and `value` is *scallions*, a synonym could be *green onions*. For `KIND_LIST` entity types: * This collection must contain exactly one synonym equal to `value`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"value": { +"description": "Required. The primary value associated with this entity entry. For example, if the entity type is *vegetable*, the value could be *scallions*. For `KIND_MAP` entity types: * A reference value to be used in place of synonyms. For `KIND_LIST` entity types: * A string that can contain references to other entity types (with or without aliases).", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1EventInput": { +"description": "Events allow for matching intents by event name instead of the natural language input. For instance, input `` can trigger a personalized welcome response. The parameter `name` may be used by the agent in the response: `\"Hello #welcome_event.name! What can I do for you today?\"`.", +"id": "GoogleCloudDialogflowV2beta1EventInput", +"properties": { +"languageCode": { +"description": "Required. The language of this query. See [Language Support](https://cloud.google.com/dialogflow/docs/reference/language) for a list of the currently supported language codes. Note that queries in the same session do not necessarily need to specify the same language. This field is ignored when used in the context of a WebhookResponse.followup_event_input field, because the language was already defined in the originating detect intent request.", +"type": "string" +}, +"name": { +"description": "Required. The unique identifier of the event.", +"type": "string" +}, +"parameters": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "The collection of parameters associated with the event. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: * MapKey type: string * MapKey value: parameter name * MapValue type: If parameter's entity type is a composite entity then use map, otherwise, depending on the parameter value type, it could be one of string, number, boolean, null, list or map. * MapValue value: If parameter's entity type is a composite entity then use map from composite entity property names to property values, otherwise, use parameter value.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1ExportAgentResponse": { +"description": "The response message for Agents.ExportAgent.", +"id": "GoogleCloudDialogflowV2beta1ExportAgentResponse", +"properties": { +"agentContent": { +"description": "Zip compressed raw byte content for agent.", +"format": "byte", +"type": "string" +}, +"agentUri": { +"description": "The URI to a file containing the exported agent. This field is populated only if `agent_uri` is specified in `ExportAgentRequest`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1ExportOperationMetadata": { +"description": "Metadata related to the Export Data Operations (e.g. ExportDocument).", +"id": "GoogleCloudDialogflowV2beta1ExportOperationMetadata", +"properties": { +"exportedGcsDestination": { +"$ref": "GoogleCloudDialogflowV2beta1GcsDestination", +"description": "Cloud Storage file path of the exported data." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1FaqAnswer": { +"description": "Represents answer from \"frequently asked questions\".", +"id": "GoogleCloudDialogflowV2beta1FaqAnswer", +"properties": { +"answer": { +"description": "The piece of text from the `source` knowledge base document.", +"type": "string" +}, +"answerRecord": { +"description": "The name of answer record, in the format of \"projects//locations//answerRecords/\"", +"type": "string" +}, +"confidence": { +"description": "The system's confidence score that this Knowledge answer is a good match for this conversational query, range from 0.0 (completely uncertain) to 1.0 (completely certain).", +"format": "float", +"type": "number" +}, +"metadata": { +"additionalProperties": { +"type": "string" +}, +"description": "A map that contains metadata about the answer and the document from which it originates.", +"type": "object" +}, +"question": { +"description": "The corresponding FAQ question.", +"type": "string" +}, +"source": { +"description": "Indicates which Knowledge Document this answer was extracted from. Format: `projects//locations//agent/knowledgeBases//documents/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1GcsDestination": { +"description": "Google Cloud Storage location for the output.", +"id": "GoogleCloudDialogflowV2beta1GcsDestination", +"properties": { +"uri": { +"description": "Required. The Google Cloud Storage URIs for the output. A URI is of the form: `gs://bucket/object-prefix-or-name` Whether a prefix or name is used depends on the use case. The requesting user must have \"write-permission\" to the bucket.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1HumanAgentAssistantEvent": { +"description": "Output only. Represents a notification sent to Pub/Sub subscribers for agent assistant events in a specific conversation.", +"id": "GoogleCloudDialogflowV2beta1HumanAgentAssistantEvent", +"properties": { +"conversation": { +"description": "The conversation this notification refers to. Format: `projects//conversations/`.", +"type": "string" +}, +"participant": { +"description": "The participant that the suggestion is compiled for. And This field is used to call Participants.ListSuggestions API. Format: `projects//conversations//participants/`. It will not be set in legacy workflow. HumanAgentAssistantConfig.name for more information.", +"type": "string" +}, +"suggestionResults": { +"description": "The suggestion results payload that this notification refers to. It will only be set when HumanAgentAssistantConfig.SuggestionConfig.group_suggestion_responses sets to true.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1SuggestionResult" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1ImportDocumentsResponse": { +"description": "Response message for Documents.ImportDocuments.", +"id": "GoogleCloudDialogflowV2beta1ImportDocumentsResponse", +"properties": { +"warnings": { +"description": "Includes details about skipped documents or any other warnings.", +"items": { +"$ref": "GoogleRpcStatus" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1InitializeEncryptionSpecMetadata": { +"description": "Metadata for initializing a location-level encryption specification.", +"id": "GoogleCloudDialogflowV2beta1InitializeEncryptionSpecMetadata", +"properties": { +"request": { +"$ref": "GoogleCloudDialogflowV2beta1InitializeEncryptionSpecRequest", +"description": "Output only. The original request for initialization.", +"readOnly": true +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1InitializeEncryptionSpecRequest": { +"description": "The request to initialize a location-level encryption specification.", +"id": "GoogleCloudDialogflowV2beta1InitializeEncryptionSpecRequest", +"properties": { +"encryptionSpec": { +"$ref": "GoogleCloudDialogflowV2beta1EncryptionSpec", +"description": "Required. The encryption spec used for CMEK encryption. It is required that the kms key is in the same region as the endpoint. The same key will be used for all provisioned resources, if encryption is available. If the kms_key_name is left empty, no encryption will be enforced." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1Intent": { +"description": "An intent categorizes an end-user's intention for one conversation turn. For each agent, you define many intents, where your combined intents can handle a complete conversation. When an end-user writes or says something, referred to as an end-user expression or end-user input, Dialogflow matches the end-user input to the best intent in your agent. Matching an intent is also known as intent classification. For more information, see the [intent guide](https://cloud.google.com/dialogflow/docs/intents-overview).", +"id": "GoogleCloudDialogflowV2beta1Intent", +"properties": { +"action": { +"description": "Optional. The name of the action associated with the intent. Note: The action name must not contain whitespaces.", +"type": "string" +}, +"defaultResponsePlatforms": { +"description": "Optional. The list of platforms for which the first responses will be copied from the messages in PLATFORM_UNSPECIFIED (i.e. default platform).", +"items": { +"enum": [ +"PLATFORM_UNSPECIFIED", +"FACEBOOK", +"SLACK", +"TELEGRAM", +"KIK", +"SKYPE", +"LINE", +"VIBER", +"ACTIONS_ON_GOOGLE", +"TELEPHONY", +"GOOGLE_HANGOUTS" +], +"enumDescriptions": [ +"Not specified.", +"Facebook.", +"Slack.", +"Telegram.", +"Kik.", +"Skype.", +"Line.", +"Viber.", +"Google Assistant See [Dialogflow webhook format](https://developers.google.com/assistant/actions/build/json/dialogflow-webhook-json)", +"Telephony Gateway.", +"Google Hangouts." +], +"type": "string" +}, +"type": "array" +}, +"displayName": { +"description": "Required. The name of this intent.", +"type": "string" +}, +"endInteraction": { +"description": "Optional. Indicates that this intent ends an interaction. Some integrations (e.g., Actions on Google or Dialogflow phone gateway) use this information to close interaction with an end user. Default is false.", +"type": "boolean" +}, +"events": { +"description": "Optional. The collection of event names that trigger the intent. If the collection of input contexts is not empty, all of the contexts must be present in the active user session for an event to trigger this intent. Event names are limited to 150 characters.", +"items": { +"type": "string" +}, +"type": "array" +}, +"followupIntentInfo": { +"description": "Output only. Information about all followup intents that have this intent as a direct or indirect parent. We populate this field only in the output.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1IntentFollowupIntentInfo" +}, +"readOnly": true, +"type": "array" +}, +"inputContextNames": { +"description": "Optional. The list of context names required for this intent to be triggered. Formats: - `projects//agent/sessions/-/contexts/` - `projects//locations//agent/sessions/-/contexts/`", +"items": { +"type": "string" +}, +"type": "array" +}, +"isFallback": { +"description": "Optional. Indicates whether this is a fallback intent.", +"type": "boolean" +}, +"liveAgentHandoff": { +"description": "Optional. Indicates that a live agent should be brought in to handle the interaction with the user. In most cases, when you set this flag to true, you would also want to set end_interaction to true as well. Default is false.", +"type": "boolean" +}, +"messages": { +"description": "Optional. The collection of rich messages corresponding to the `Response` field in the Dialogflow console.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessage" +}, +"type": "array" +}, +"mlDisabled": { +"description": "Optional. Indicates whether Machine Learning is disabled for the intent. Note: If `ml_disabled` setting is set to true, then this intent is not taken into account during inference in `ML ONLY` match mode. Also, auto-markup in the UI is turned off.", +"type": "boolean" +}, +"mlEnabled": { +"deprecated": true, +"description": "Optional. Indicates whether Machine Learning is enabled for the intent. Note: If `ml_enabled` setting is set to false, then this intent is not taken into account during inference in `ML ONLY` match mode. Also, auto-markup in the UI is turned off. DEPRECATED! Please use `ml_disabled` field instead. NOTE: If both `ml_enabled` and `ml_disabled` are either not set or false, then the default value is determined as follows: - Before April 15th, 2018 the default is: ml_enabled = false / ml_disabled = true. - After April 15th, 2018 the default is: ml_enabled = true / ml_disabled = false.", +"type": "boolean" +}, +"name": { +"description": "Optional. The unique identifier of this intent. Required for Intents.UpdateIntent and Intents.BatchUpdateIntents methods. Supported formats: - `projects//agent/intents/` - `projects//locations//agent/intents/`", +"type": "string" +}, +"outputContexts": { +"description": "Optional. The collection of contexts that are activated when the intent is matched. Context messages in this collection should not set the parameters field. Setting the `lifespan_count` to 0 will reset the context when the intent is matched. Format: `projects//agent/sessions/-/contexts/`.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1Context" +}, +"type": "array" +}, +"parameters": { +"description": "Optional. The collection of parameters associated with the intent.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1IntentParameter" +}, +"type": "array" +}, +"parentFollowupIntentName": { +"description": "Optional. The unique identifier of the parent intent in the chain of followup intents. You can set this field when creating an intent, for example with CreateIntent or BatchUpdateIntents, in order to make this intent a followup intent. It identifies the parent followup intent. Format: `projects//agent/intents/`.", +"type": "string" +}, +"priority": { +"description": "Optional. The priority of this intent. Higher numbers represent higher priorities. - If the supplied value is unspecified or 0, the service translates the value to 500,000, which corresponds to the `Normal` priority in the console. - If the supplied value is negative, the intent is ignored in runtime detect intent requests.", +"format": "int32", +"type": "integer" +}, +"resetContexts": { +"description": "Optional. Indicates whether to delete all contexts in the current session when this intent is matched.", +"type": "boolean" +}, +"rootFollowupIntentName": { +"description": "Output only. The unique identifier of the root intent in the chain of followup intents. It identifies the correct followup intents chain for this intent. Format: `projects//agent/intents/`.", +"readOnly": true, +"type": "string" +}, +"trainingPhrases": { +"description": "Optional. The collection of examples that the agent is trained on.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1IntentTrainingPhrase" +}, +"type": "array" +}, +"webhookState": { +"description": "Optional. Indicates whether webhooks are enabled for the intent.", +"enum": [ +"WEBHOOK_STATE_UNSPECIFIED", +"WEBHOOK_STATE_ENABLED", +"WEBHOOK_STATE_ENABLED_FOR_SLOT_FILLING" +], +"enumDescriptions": [ +"Webhook is disabled in the agent and in the intent.", +"Webhook is enabled in the agent and in the intent.", +"Webhook is enabled in the agent and in the intent. Also, each slot filling prompt is forwarded to the webhook." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentFollowupIntentInfo": { +"description": "Represents a single followup intent in the chain.", +"id": "GoogleCloudDialogflowV2beta1IntentFollowupIntentInfo", +"properties": { +"followupIntentName": { +"description": "The unique identifier of the followup intent. Format: `projects//agent/intents/`.", +"type": "string" +}, +"parentFollowupIntentName": { +"description": "The unique identifier of the followup intent's parent. Format: `projects//agent/intents/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessage": { +"description": "Corresponds to the `Response` field in the Dialogflow console.", +"id": "GoogleCloudDialogflowV2beta1IntentMessage", +"properties": { +"basicCard": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageBasicCard", +"description": "Displays a basic card for Actions on Google." +}, +"browseCarouselCard": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageBrowseCarouselCard", +"description": "Browse carousel card for Actions on Google." +}, +"card": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageCard", +"description": "Displays a card." +}, +"carouselSelect": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageCarouselSelect", +"description": "Displays a carousel card for Actions on Google." +}, +"image": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageImage", +"description": "Displays an image." +}, +"linkOutSuggestion": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageLinkOutSuggestion", +"description": "Displays a link out suggestion chip for Actions on Google." +}, +"listSelect": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageListSelect", +"description": "Displays a list card for Actions on Google." +}, +"mediaContent": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageMediaContent", +"description": "The media content card for Actions on Google." +}, +"payload": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "A custom platform-specific response.", +"type": "object" +}, +"platform": { +"description": "Optional. The platform that this message is intended for.", +"enum": [ +"PLATFORM_UNSPECIFIED", +"FACEBOOK", +"SLACK", +"TELEGRAM", +"KIK", +"SKYPE", +"LINE", +"VIBER", +"ACTIONS_ON_GOOGLE", +"TELEPHONY", +"GOOGLE_HANGOUTS" +], +"enumDescriptions": [ +"Not specified.", +"Facebook.", +"Slack.", +"Telegram.", +"Kik.", +"Skype.", +"Line.", +"Viber.", +"Google Assistant See [Dialogflow webhook format](https://developers.google.com/assistant/actions/build/json/dialogflow-webhook-json)", +"Telephony Gateway.", +"Google Hangouts." +], +"type": "string" +}, +"quickReplies": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageQuickReplies", +"description": "Displays quick replies." +}, +"rbmCarouselRichCard": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageRbmCarouselCard", +"description": "Rich Business Messaging (RBM) carousel rich card response." +}, +"rbmStandaloneRichCard": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageRbmStandaloneCard", +"description": "Standalone Rich Business Messaging (RBM) rich card response." +}, +"rbmText": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageRbmText", +"description": "Rich Business Messaging (RBM) text response. RBM allows businesses to send enriched and branded versions of SMS. See https://jibe.google.com/business-messaging." +}, +"simpleResponses": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageSimpleResponses", +"description": "Returns a voice or text-only response for Actions on Google." +}, +"suggestions": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageSuggestions", +"description": "Displays suggestion chips for Actions on Google." +}, +"tableCard": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageTableCard", +"description": "Table card for Actions on Google." +}, +"telephonyPlayAudio": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageTelephonyPlayAudio", +"description": "Plays audio from a file in Telephony Gateway." +}, +"telephonySynthesizeSpeech": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageTelephonySynthesizeSpeech", +"description": "Synthesizes speech in Telephony Gateway." +}, +"telephonyTransferCall": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageTelephonyTransferCall", +"description": "Transfers the call in Telephony Gateway." +}, +"text": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageText", +"description": "Returns a text response." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageBasicCard": { +"description": "The basic card message. Useful for displaying information.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageBasicCard", +"properties": { +"buttons": { +"description": "Optional. The collection of card buttons.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageBasicCardButton" +}, +"type": "array" +}, +"formattedText": { +"description": "Required, unless image is present. The body text of the card.", +"type": "string" +}, +"image": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageImage", +"description": "Optional. The image for the card." +}, +"subtitle": { +"description": "Optional. The subtitle of the card.", +"type": "string" +}, +"title": { +"description": "Optional. The title of the card.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageBasicCardButton": { +"description": "The button object that appears at the bottom of a card.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageBasicCardButton", +"properties": { +"openUriAction": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageBasicCardButtonOpenUriAction", +"description": "Required. Action to take when a user taps on the button." +}, +"title": { +"description": "Required. The title of the button.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageBasicCardButtonOpenUriAction": { +"description": "Opens the given URI.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageBasicCardButtonOpenUriAction", +"properties": { +"uri": { +"description": "Required. The HTTP or HTTPS scheme URI.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageBrowseCarouselCard": { +"description": "Browse Carousel Card for Actions on Google. https://developers.google.com/actions/assistant/responses#browsing_carousel", +"id": "GoogleCloudDialogflowV2beta1IntentMessageBrowseCarouselCard", +"properties": { +"imageDisplayOptions": { +"description": "Optional. Settings for displaying the image. Applies to every image in items.", +"enum": [ +"IMAGE_DISPLAY_OPTIONS_UNSPECIFIED", +"GRAY", +"WHITE", +"CROPPED", +"BLURRED_BACKGROUND" +], +"enumDescriptions": [ +"Fill the gaps between the image and the image container with gray bars.", +"Fill the gaps between the image and the image container with gray bars.", +"Fill the gaps between the image and the image container with white bars.", +"Image is scaled such that the image width and height match or exceed the container dimensions. This may crop the top and bottom of the image if the scaled image height is greater than the container height, or crop the left and right of the image if the scaled image width is greater than the container width. This is similar to \"Zoom Mode\" on a widescreen TV when playing a 4:3 video.", +"Pad the gaps between image and image frame with a blurred copy of the same image." +], +"type": "string" +}, +"items": { +"description": "Required. List of items in the Browse Carousel Card. Minimum of two items, maximum of ten.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageBrowseCarouselCardBrowseCarouselCardItem" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageBrowseCarouselCardBrowseCarouselCardItem": { +"description": "Browsing carousel tile", +"id": "GoogleCloudDialogflowV2beta1IntentMessageBrowseCarouselCardBrowseCarouselCardItem", +"properties": { +"description": { +"description": "Optional. Description of the carousel item. Maximum of four lines of text.", +"type": "string" +}, +"footer": { +"description": "Optional. Text that appears at the bottom of the Browse Carousel Card. Maximum of one line of text.", +"type": "string" +}, +"image": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageImage", +"description": "Optional. Hero image for the carousel item." +}, +"openUriAction": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageBrowseCarouselCardBrowseCarouselCardItemOpenUrlAction", +"description": "Required. Action to present to the user." +}, +"title": { +"description": "Required. Title of the carousel item. Maximum of two lines of text.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageBrowseCarouselCardBrowseCarouselCardItemOpenUrlAction": { +"description": "Actions on Google action to open a given url.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageBrowseCarouselCardBrowseCarouselCardItemOpenUrlAction", +"properties": { +"url": { +"description": "Required. URL", +"type": "string" +}, +"urlTypeHint": { +"description": "Optional. Specifies the type of viewer that is used when opening the URL. Defaults to opening via web browser.", +"enum": [ +"URL_TYPE_HINT_UNSPECIFIED", +"AMP_ACTION", +"AMP_CONTENT" +], +"enumDescriptions": [ +"Unspecified", +"Url would be an amp action", +"URL that points directly to AMP content, or to a canonical URL which refers to AMP content via ." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageCard": { +"description": "The card response message.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageCard", +"properties": { +"buttons": { +"description": "Optional. The collection of card buttons.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageCardButton" +}, +"type": "array" +}, +"imageUri": { +"description": "Optional. The public URI to an image file for the card.", +"type": "string" +}, +"subtitle": { +"description": "Optional. The subtitle of the card.", +"type": "string" +}, +"title": { +"description": "Optional. The title of the card.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageCardButton": { +"description": "Optional. Contains information about a button.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageCardButton", +"properties": { +"postback": { +"description": "Optional. The text to send back to the Dialogflow API or a URI to open.", +"type": "string" +}, +"text": { +"description": "Optional. The text to show on the button.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageCarouselSelect": { +"description": "The card for presenting a carousel of options to select from.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageCarouselSelect", +"properties": { +"items": { +"description": "Required. Carousel items.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageCarouselSelectItem" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageCarouselSelectItem": { +"description": "An item in the carousel.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageCarouselSelectItem", +"properties": { +"description": { +"description": "Optional. The body text of the card.", +"type": "string" +}, +"image": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageImage", +"description": "Optional. The image to display." +}, +"info": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageSelectItemInfo", +"description": "Required. Additional info about the option item." +}, +"title": { +"description": "Required. Title of the carousel item.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageColumnProperties": { +"description": "Column properties for TableCard.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageColumnProperties", +"properties": { +"header": { +"description": "Required. Column heading.", +"type": "string" +}, +"horizontalAlignment": { +"description": "Optional. Defines text alignment for all cells in this column.", +"enum": [ +"HORIZONTAL_ALIGNMENT_UNSPECIFIED", +"LEADING", +"CENTER", +"TRAILING" +], +"enumDescriptions": [ +"Text is aligned to the leading edge of the column.", +"Text is aligned to the leading edge of the column.", +"Text is centered in the column.", +"Text is aligned to the trailing edge of the column." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageImage": { +"description": "The image response message.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageImage", +"properties": { +"accessibilityText": { +"description": "A text description of the image to be used for accessibility, e.g., screen readers. Required if image_uri is set for CarouselSelect.", +"type": "string" +}, +"imageUri": { +"description": "Optional. The public URI to an image file.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageLinkOutSuggestion": { +"description": "The suggestion chip message that allows the user to jump out to the app or website associated with this agent.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageLinkOutSuggestion", +"properties": { +"destinationName": { +"description": "Required. The name of the app or site this chip is linking to.", +"type": "string" +}, +"uri": { +"description": "Required. The URI of the app or site to open when the user taps the suggestion chip.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageListSelect": { +"description": "The card for presenting a list of options to select from.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageListSelect", +"properties": { +"items": { +"description": "Required. List items.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageListSelectItem" +}, +"type": "array" +}, +"subtitle": { +"description": "Optional. Subtitle of the list.", +"type": "string" +}, +"title": { +"description": "Optional. The overall title of the list.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageListSelectItem": { +"description": "An item in the list.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageListSelectItem", +"properties": { +"description": { +"description": "Optional. The main text describing the item.", +"type": "string" +}, +"image": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageImage", +"description": "Optional. The image to display." +}, +"info": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageSelectItemInfo", +"description": "Required. Additional information about this option." +}, +"title": { +"description": "Required. The title of the list item.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageMediaContent": { +"description": "The media content card for Actions on Google.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageMediaContent", +"properties": { +"mediaObjects": { +"description": "Required. List of media objects.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageMediaContentResponseMediaObject" +}, +"type": "array" +}, +"mediaType": { +"description": "Optional. What type of media is the content (ie \"audio\").", +"enum": [ +"RESPONSE_MEDIA_TYPE_UNSPECIFIED", +"AUDIO" +], +"enumDescriptions": [ +"Unspecified.", +"Response media type is audio." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageMediaContentResponseMediaObject": { +"description": "Response media object for media content card.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageMediaContentResponseMediaObject", +"properties": { +"contentUrl": { +"description": "Required. Url where the media is stored.", +"type": "string" +}, +"description": { +"description": "Optional. Description of media card.", +"type": "string" +}, +"icon": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageImage", +"description": "Optional. Icon to display above media content." +}, +"largeImage": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageImage", +"description": "Optional. Image to display above media content." +}, +"name": { +"description": "Required. Name of media card.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageQuickReplies": { +"description": "The quick replies response message.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageQuickReplies", +"properties": { +"quickReplies": { +"description": "Optional. The collection of quick replies.", +"items": { +"type": "string" +}, +"type": "array" +}, +"title": { +"description": "Optional. The title of the collection of quick replies.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageRbmCardContent": { +"description": "Rich Business Messaging (RBM) Card content", +"id": "GoogleCloudDialogflowV2beta1IntentMessageRbmCardContent", +"properties": { +"description": { +"description": "Optional. Description of the card (at most 2000 bytes). At least one of the title, description or media must be set.", +"type": "string" +}, +"media": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageRbmCardContentRbmMedia", +"description": "Optional. However at least one of the title, description or media must be set. Media (image, GIF or a video) to include in the card." +}, +"suggestions": { +"description": "Optional. List of suggestions to include in the card.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestion" +}, +"type": "array" +}, +"title": { +"description": "Optional. Title of the card (at most 200 bytes). At least one of the title, description or media must be set.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageRbmCardContentRbmMedia": { +"description": "Rich Business Messaging (RBM) Media displayed in Cards The following media-types are currently supported: Image Types * image/jpeg * image/jpg' * image/gif * image/png Video Types * video/h263 * video/m4v * video/mp4 * video/mpeg * video/mpeg4 * video/webm", +"id": "GoogleCloudDialogflowV2beta1IntentMessageRbmCardContentRbmMedia", +"properties": { +"fileUri": { +"description": "Required. Publicly reachable URI of the file. The RBM platform determines the MIME type of the file from the content-type field in the HTTP headers when the platform fetches the file. The content-type field must be present and accurate in the HTTP response from the URL.", +"type": "string" +}, +"height": { +"description": "Required for cards with vertical orientation. The height of the media within a rich card with a vertical layout. For a standalone card with horizontal layout, height is not customizable, and this field is ignored.", +"enum": [ +"HEIGHT_UNSPECIFIED", +"SHORT", +"MEDIUM", +"TALL" +], +"enumDescriptions": [ +"Not specified.", +"112 DP.", +"168 DP.", +"264 DP. Not available for rich card carousels when the card width is set to small." +], +"type": "string" +}, +"thumbnailUri": { +"description": "Optional. Publicly reachable URI of the thumbnail.If you don't provide a thumbnail URI, the RBM platform displays a blank placeholder thumbnail until the user's device downloads the file. Depending on the user's setting, the file may not download automatically and may require the user to tap a download button.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageRbmCarouselCard": { +"description": "Carousel Rich Business Messaging (RBM) rich card. Rich cards allow you to respond to users with more vivid content, e.g. with media and suggestions. If you want to show a single card with more control over the layout, please use RbmStandaloneCard instead.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageRbmCarouselCard", +"properties": { +"cardContents": { +"description": "Required. The cards in the carousel. A carousel must have at least 2 cards and at most 10.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageRbmCardContent" +}, +"type": "array" +}, +"cardWidth": { +"description": "Required. The width of the cards in the carousel.", +"enum": [ +"CARD_WIDTH_UNSPECIFIED", +"SMALL", +"MEDIUM" +], +"enumDescriptions": [ +"Not specified.", +"120 DP. Note that tall media cannot be used.", +"232 DP." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageRbmStandaloneCard": { +"description": "Standalone Rich Business Messaging (RBM) rich card. Rich cards allow you to respond to users with more vivid content, e.g. with media and suggestions. You can group multiple rich cards into one using RbmCarouselCard but carousel cards will give you less control over the card layout.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageRbmStandaloneCard", +"properties": { +"cardContent": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageRbmCardContent", +"description": "Required. Card content." +}, +"cardOrientation": { +"description": "Required. Orientation of the card.", +"enum": [ +"CARD_ORIENTATION_UNSPECIFIED", +"HORIZONTAL", +"VERTICAL" +], +"enumDescriptions": [ +"Not specified.", +"Horizontal layout.", +"Vertical layout." +], +"type": "string" +}, +"thumbnailImageAlignment": { +"description": "Required if orientation is horizontal. Image preview alignment for standalone cards with horizontal layout.", +"enum": [ +"THUMBNAIL_IMAGE_ALIGNMENT_UNSPECIFIED", +"LEFT", +"RIGHT" +], +"enumDescriptions": [ +"Not specified.", +"Thumbnail preview is left-aligned.", +"Thumbnail preview is right-aligned." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestedAction": { +"description": "Rich Business Messaging (RBM) suggested client-side action that the user can choose from the card.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestedAction", +"properties": { +"dial": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestedActionRbmSuggestedActionDial", +"description": "Suggested client side action: Dial a phone number" +}, +"openUrl": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestedActionRbmSuggestedActionOpenUri", +"description": "Suggested client side action: Open a URI on device" +}, +"postbackData": { +"description": "Opaque payload that the Dialogflow receives in a user event when the user taps the suggested action. This data will be also forwarded to webhook to allow performing custom business logic.", +"type": "string" +}, +"shareLocation": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestedActionRbmSuggestedActionShareLocation", +"description": "Suggested client side action: Share user location" +}, +"text": { +"description": "Text to display alongside the action.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestedActionRbmSuggestedActionDial": { +"description": "Opens the user's default dialer app with the specified phone number but does not dial automatically.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestedActionRbmSuggestedActionDial", +"properties": { +"phoneNumber": { +"description": "Required. The phone number to fill in the default dialer app. This field should be in [E.164](https://en.wikipedia.org/wiki/E.164) format. An example of a correctly formatted phone number: +15556767888.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestedActionRbmSuggestedActionOpenUri": { +"description": "Opens the user's default web browser app to the specified uri If the user has an app installed that is registered as the default handler for the URL, then this app will be opened instead, and its icon will be used in the suggested action UI.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestedActionRbmSuggestedActionOpenUri", +"properties": { +"uri": { +"description": "Required. The uri to open on the user device", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestedActionRbmSuggestedActionShareLocation": { +"description": "Opens the device's location chooser so the user can pick a location to send back to the agent.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestedActionRbmSuggestedActionShareLocation", +"properties": {}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestedReply": { +"description": "Rich Business Messaging (RBM) suggested reply that the user can click instead of typing in their own response.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestedReply", +"properties": { +"postbackData": { +"description": "Opaque payload that the Dialogflow receives in a user event when the user taps the suggested reply. This data will be also forwarded to webhook to allow performing custom business logic.", +"type": "string" +}, +"text": { +"description": "Suggested reply text.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestion": { +"description": "Rich Business Messaging (RBM) suggestion. Suggestions allow user to easily select/click a predefined response or perform an action (like opening a web uri).", +"id": "GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestion", +"properties": { +"action": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestedAction", +"description": "Predefined client side actions that user can choose" +}, +"reply": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestedReply", +"description": "Predefined replies for user to select instead of typing" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageRbmText": { +"description": "Rich Business Messaging (RBM) text response with suggestions.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageRbmText", +"properties": { +"rbmSuggestion": { +"description": "Optional. One or more suggestions to show to the user.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestion" +}, +"type": "array" +}, +"text": { +"description": "Required. Text sent and displayed to the user.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageSelectItemInfo": { +"description": "Additional info about the select item for when it is triggered in a dialog.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageSelectItemInfo", +"properties": { +"key": { +"description": "Required. A unique key that will be sent back to the agent if this response is given.", +"type": "string" +}, +"synonyms": { +"description": "Optional. A list of synonyms that can also be used to trigger this item in dialog.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageSimpleResponse": { +"description": "The simple response message containing speech or text.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageSimpleResponse", +"properties": { +"displayText": { +"description": "Optional. The text to display.", +"type": "string" +}, +"ssml": { +"description": "One of text_to_speech or ssml must be provided. Structured spoken response to the user in the SSML format. Mutually exclusive with text_to_speech.", +"type": "string" +}, +"textToSpeech": { +"description": "One of text_to_speech or ssml must be provided. The plain text of the speech output. Mutually exclusive with ssml.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageSimpleResponses": { +"description": "The collection of simple response candidates. This message in `QueryResult.fulfillment_messages` and `WebhookResponse.fulfillment_messages` should contain only one `SimpleResponse`.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageSimpleResponses", +"properties": { +"simpleResponses": { +"description": "Required. The list of simple responses.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageSimpleResponse" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageSuggestion": { +"description": "The suggestion chip message that the user can tap to quickly post a reply to the conversation.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageSuggestion", +"properties": { +"title": { +"description": "Required. The text shown the in the suggestion chip.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageSuggestions": { +"description": "The collection of suggestions.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageSuggestions", +"properties": { +"suggestions": { +"description": "Required. The list of suggested replies.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageSuggestion" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageTableCard": { +"description": "Table card for Actions on Google.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageTableCard", +"properties": { +"buttons": { +"description": "Optional. List of buttons for the card.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageBasicCardButton" +}, +"type": "array" +}, +"columnProperties": { +"description": "Optional. Display properties for the columns in this table.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageColumnProperties" +}, +"type": "array" +}, +"image": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageImage", +"description": "Optional. Image which should be displayed on the card." +}, +"rows": { +"description": "Optional. Rows in this table of data.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageTableCardRow" +}, +"type": "array" +}, +"subtitle": { +"description": "Optional. Subtitle to the title.", +"type": "string" +}, +"title": { +"description": "Required. Title of the card.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageTableCardCell": { +"description": "Cell of TableCardRow.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageTableCardCell", +"properties": { +"text": { +"description": "Required. Text in this cell.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageTableCardRow": { +"description": "Row of TableCard.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageTableCardRow", +"properties": { +"cells": { +"description": "Optional. List of cells that make up this row.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessageTableCardCell" +}, +"type": "array" +}, +"dividerAfter": { +"description": "Optional. Whether to add a visual divider after this row.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageTelephonyPlayAudio": { +"description": "Plays audio from a file in Telephony Gateway.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageTelephonyPlayAudio", +"properties": { +"audioUri": { +"description": "Required. URI to a Google Cloud Storage object containing the audio to play, e.g., \"gs://bucket/object\". The object must contain a single channel (mono) of linear PCM audio (2 bytes / sample) at 8kHz. This object must be readable by the `service-@gcp-sa-dialogflow.iam.gserviceaccount.com` service account where is the number of the Telephony Gateway project (usually the same as the Dialogflow agent project). If the Google Cloud Storage bucket is in the Telephony Gateway project, this permission is added by default when enabling the Dialogflow V2 API. For audio from other sources, consider using the `TelephonySynthesizeSpeech` message with SSML.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageTelephonySynthesizeSpeech": { +"description": "Synthesizes speech and plays back the synthesized audio to the caller in Telephony Gateway. Telephony Gateway takes the synthesizer settings from `DetectIntentResponse.output_audio_config` which can either be set at request-level or can come from the agent-level synthesizer config.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageTelephonySynthesizeSpeech", +"properties": { +"ssml": { +"description": "The SSML to be synthesized. For more information, see [SSML](https://developers.google.com/actions/reference/ssml).", +"type": "string" +}, +"text": { +"description": "The raw text to be synthesized.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageTelephonyTransferCall": { +"description": "Transfers the call in Telephony Gateway.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageTelephonyTransferCall", +"properties": { +"phoneNumber": { +"description": "Required. The phone number to transfer the call to in [E.164 format](https://en.wikipedia.org/wiki/E.164). We currently only allow transferring to US numbers (+1xxxyyyzzzz).", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentMessageText": { +"description": "The text response message.", +"id": "GoogleCloudDialogflowV2beta1IntentMessageText", +"properties": { +"text": { +"description": "Optional. The collection of the agent's responses.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentParameter": { +"description": "Represents intent parameters.", +"id": "GoogleCloudDialogflowV2beta1IntentParameter", +"properties": { +"defaultValue": { +"description": "Optional. The default value to use when the `value` yields an empty result. Default values can be extracted from contexts by using the following syntax: `#context_name.parameter_name`.", +"type": "string" +}, +"displayName": { +"description": "Required. The name of the parameter.", +"type": "string" +}, +"entityTypeDisplayName": { +"description": "Optional. The name of the entity type, prefixed with `@`, that describes values of the parameter. If the parameter is required, this must be provided.", +"type": "string" +}, +"isList": { +"description": "Optional. Indicates whether the parameter represents a list of values.", +"type": "boolean" +}, +"mandatory": { +"description": "Optional. Indicates whether the parameter is required. That is, whether the intent cannot be completed without collecting the parameter value.", +"type": "boolean" +}, +"name": { +"description": "The unique identifier of this parameter.", +"type": "string" +}, +"prompts": { +"description": "Optional. The collection of prompts that the agent can present to the user in order to collect a value for the parameter.", +"items": { +"type": "string" +}, +"type": "array" +}, +"value": { +"description": "Optional. The definition of the parameter value. It can be: - a constant string, - a parameter value defined as `$parameter_name`, - an original parameter value defined as `$parameter_name.original`, - a parameter value from some context defined as `#context_name.parameter_name`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentSuggestion": { +"description": "Represents an intent suggestion.", +"id": "GoogleCloudDialogflowV2beta1IntentSuggestion", +"properties": { +"description": { +"description": "Human readable description for better understanding an intent like its scope, content, result etc. Maximum character limit: 140 characters.", +"type": "string" +}, +"displayName": { +"description": "The display name of the intent.", +"type": "string" +}, +"intentV2": { +"description": "The unique identifier of this intent. Format: `projects//locations//agent/intents/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentTrainingPhrase": { +"description": "Represents an example that the agent is trained on.", +"id": "GoogleCloudDialogflowV2beta1IntentTrainingPhrase", +"properties": { +"name": { +"description": "Output only. The unique identifier of this training phrase.", +"readOnly": true, +"type": "string" +}, +"parts": { +"description": "Required. The ordered list of training phrase parts. The parts are concatenated in order to form the training phrase. Note: The API does not automatically annotate training phrases like the Dialogflow Console does. Note: Do not forget to include whitespace at part boundaries, so the training phrase is well formatted when the parts are concatenated. If the training phrase does not need to be annotated with parameters, you just need a single part with only the Part.text field set. If you want to annotate the training phrase, you must create multiple parts, where the fields of each part are populated in one of two ways: - `Part.text` is set to a part of the phrase that has no parameters. - `Part.text` is set to a part of the phrase that you want to annotate, and the `entity_type`, `alias`, and `user_defined` fields are all set.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1IntentTrainingPhrasePart" +}, +"type": "array" +}, +"timesAddedCount": { +"description": "Optional. Indicates how many times this example was added to the intent. Each time a developer adds an existing sample by editing an intent or training, this counter is increased.", +"format": "int32", +"type": "integer" +}, +"type": { +"description": "Required. The type of the training phrase.", +"enum": [ +"TYPE_UNSPECIFIED", +"EXAMPLE", +"TEMPLATE" +], +"enumDeprecated": [ +false, +false, +true +], +"enumDescriptions": [ +"Not specified. This value should never be used.", +"Examples do not contain @-prefixed entity type names, but example parts can be annotated with entity types.", +"Templates are not annotated with entity types, but they can contain @-prefixed entity type names as substrings. Note: Template mode has been deprecated. Example mode is the only supported way to create new training phrases. If you have existing training phrases in template mode, they will be removed during training and it can cause a drop in agent performance." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1IntentTrainingPhrasePart": { +"description": "Represents a part of a training phrase.", +"id": "GoogleCloudDialogflowV2beta1IntentTrainingPhrasePart", +"properties": { +"alias": { +"description": "Optional. The parameter name for the value extracted from the annotated part of the example. This field is required for annotated parts of the training phrase.", +"type": "string" +}, +"entityType": { +"description": "Optional. The entity type name prefixed with `@`. This field is required for annotated parts of the training phrase.", +"type": "string" +}, +"text": { +"description": "Required. The text for this part.", +"type": "string" +}, +"userDefined": { +"description": "Optional. Indicates whether the text was manually annotated. This field is set to true when the Dialogflow Console is used to manually annotate the part. When creating an annotated part with the API, you must set this to true.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1KnowledgeAnswers": { +"description": "Represents the result of querying a Knowledge base.", +"id": "GoogleCloudDialogflowV2beta1KnowledgeAnswers", +"properties": { +"answers": { +"description": "A list of answers from Knowledge Connector.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1KnowledgeAnswersAnswer" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1KnowledgeAnswersAnswer": { +"description": "An answer from Knowledge Connector.", +"id": "GoogleCloudDialogflowV2beta1KnowledgeAnswersAnswer", +"properties": { +"answer": { +"description": "The piece of text from the `source` knowledge base document that answers this conversational query.", +"type": "string" +}, +"faqQuestion": { +"description": "The corresponding FAQ question if the answer was extracted from a FAQ Document, empty otherwise.", +"type": "string" +}, +"matchConfidence": { +"description": "The system's confidence score that this Knowledge answer is a good match for this conversational query. The range is from 0.0 (completely uncertain) to 1.0 (completely certain). Note: The confidence score is likely to vary somewhat (possibly even for identical requests), as the underlying model is under constant improvement. It may be deprecated in the future. We recommend using `match_confidence_level` which should be generally more stable.", +"format": "float", +"type": "number" +}, +"matchConfidenceLevel": { +"description": "The system's confidence level that this knowledge answer is a good match for this conversational query. NOTE: The confidence level for a given `` pair may change without notice, as it depends on models that are constantly being improved. However, it will change less frequently than the confidence score below, and should be preferred for referencing the quality of an answer.", +"enum": [ +"MATCH_CONFIDENCE_LEVEL_UNSPECIFIED", +"LOW", +"MEDIUM", +"HIGH" +], +"enumDescriptions": [ +"Not specified.", +"Indicates that the confidence is low.", +"Indicates our confidence is medium.", +"Indicates our confidence is high." +], +"type": "string" +}, +"source": { +"description": "Indicates which Knowledge Document this answer was extracted from. Format: `projects//knowledgeBases//documents/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1KnowledgeAssistAnswer": { +"description": "Represents a Knowledge Assist answer.", +"id": "GoogleCloudDialogflowV2beta1KnowledgeAssistAnswer", +"properties": { +"answerRecord": { +"description": "The name of the answer record. Format: `projects//locations//answer Records/`.", +"type": "string" +}, +"suggestedQuery": { +"$ref": "GoogleCloudDialogflowV2beta1KnowledgeAssistAnswerSuggestedQuery", +"description": "The query suggested based on the context. Suggestion is made only if it is different from the previous suggestion." +}, +"suggestedQueryAnswer": { +"$ref": "GoogleCloudDialogflowV2beta1KnowledgeAssistAnswerKnowledgeAnswer", +"description": "The answer generated for the suggested query. Whether or not an answer is generated depends on how confident we are about the generated query." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1KnowledgeAssistAnswerKnowledgeAnswer": { +"description": "Represents an answer from Knowledge. Currently supports FAQ and Generative answers.", +"id": "GoogleCloudDialogflowV2beta1KnowledgeAssistAnswerKnowledgeAnswer", +"properties": { +"answerText": { +"description": "The piece of text from the `source` that answers this suggested query.", +"type": "string" +}, +"faqSource": { +"$ref": "GoogleCloudDialogflowV2beta1KnowledgeAssistAnswerKnowledgeAnswerFaqSource", +"description": "Populated if the prediction came from FAQ." +}, +"generativeSource": { +"$ref": "GoogleCloudDialogflowV2beta1KnowledgeAssistAnswerKnowledgeAnswerGenerativeSource", +"description": "Populated if the prediction was Generative." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1KnowledgeAssistAnswerKnowledgeAnswerFaqSource": { +"description": "Details about source of FAQ answer.", +"id": "GoogleCloudDialogflowV2beta1KnowledgeAssistAnswerKnowledgeAnswerFaqSource", +"properties": { +"question": { +"description": "The corresponding FAQ question.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1KnowledgeAssistAnswerKnowledgeAnswerGenerativeSource": { +"description": "Details about source of Generative answer.", +"id": "GoogleCloudDialogflowV2beta1KnowledgeAssistAnswerKnowledgeAnswerGenerativeSource", +"properties": { +"snippets": { +"description": "All snippets used for this Generative Prediction, with their source URI and data.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1KnowledgeAssistAnswerKnowledgeAnswerGenerativeSourceSnippet" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1KnowledgeAssistAnswerKnowledgeAnswerGenerativeSourceSnippet": { +"description": "Snippet Source for a Generative Prediction.", +"id": "GoogleCloudDialogflowV2beta1KnowledgeAssistAnswerKnowledgeAnswerGenerativeSourceSnippet", +"properties": { +"metadata": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Metadata of the document.", +"type": "object" +}, +"text": { +"description": "Text taken from that URI.", +"type": "string" +}, +"title": { +"description": "Title of the document.", +"type": "string" +}, +"uri": { +"description": "URI the data is sourced from.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1KnowledgeAssistAnswerSuggestedQuery": { +"description": "Represents a suggested query.", +"id": "GoogleCloudDialogflowV2beta1KnowledgeAssistAnswerSuggestedQuery", +"properties": { +"queryText": { +"description": "Suggested query text.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1KnowledgeOperationMetadata": { +"description": "Metadata in google::longrunning::Operation for Knowledge operations.", +"id": "GoogleCloudDialogflowV2beta1KnowledgeOperationMetadata", +"properties": { +"exportOperationMetadata": { +"$ref": "GoogleCloudDialogflowV2beta1ExportOperationMetadata", +"description": "Metadata for the Export Data Operation such as the destination of export." +}, +"knowledgeBase": { +"description": "The name of the knowledge base interacted with during the operation.", +"type": "string" +}, +"state": { +"description": "Required. Output only. The current state of this operation.", +"enum": [ +"STATE_UNSPECIFIED", +"PENDING", +"RUNNING", +"DONE" +], +"enumDescriptions": [ +"State unspecified.", +"The operation has been created.", +"The operation is currently running.", +"The operation is done, either cancelled or completed." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1Message": { +"description": "Represents a message posted into a conversation.", +"id": "GoogleCloudDialogflowV2beta1Message", +"properties": { +"content": { +"description": "Required. The message content.", +"type": "string" +}, +"createTime": { +"description": "Output only. The time when the message was created in Contact Center AI.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"languageCode": { +"description": "Optional. The message language. This should be a [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tag. Example: \"en-US\".", +"type": "string" +}, +"messageAnnotation": { +"$ref": "GoogleCloudDialogflowV2beta1MessageAnnotation", +"description": "Output only. The annotation for the message.", +"readOnly": true +}, +"name": { +"description": "Optional. The unique identifier of the message. Format: `projects//locations//conversations//messages/`.", +"type": "string" +}, +"participant": { +"description": "Output only. The participant that sends this message.", +"readOnly": true, +"type": "string" +}, +"participantRole": { +"description": "Output only. The role of the participant.", +"enum": [ +"ROLE_UNSPECIFIED", +"HUMAN_AGENT", +"AUTOMATED_AGENT", +"END_USER" +], +"enumDescriptions": [ +"Participant role not set.", +"Participant is a human agent.", +"Participant is an automated agent, such as a Dialogflow agent.", +"Participant is an end user that has called or chatted with Dialogflow services." +], +"readOnly": true, +"type": "string" +}, +"responseMessages": { +"description": "Optional. Automated agent responses.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1ResponseMessage" +}, +"type": "array" +}, +"sendTime": { +"description": "Optional. The time when the message was sent.", +"format": "google-datetime", +"type": "string" +}, +"sentimentAnalysis": { +"$ref": "GoogleCloudDialogflowV2beta1SentimentAnalysisResult", +"description": "Output only. The sentiment analysis result for the message.", +"readOnly": true +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1MessageAnnotation": { +"description": "Represents the result of annotation for the message.", +"id": "GoogleCloudDialogflowV2beta1MessageAnnotation", +"properties": { +"containEntities": { +"description": "Required. Indicates whether the text message contains entities.", +"type": "boolean" +}, +"parts": { +"description": "Optional. The collection of annotated message parts ordered by their position in the message. You can recover the annotated message by concatenating [AnnotatedMessagePart.text].", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1AnnotatedMessagePart" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1OriginalDetectIntentRequest": { +"description": "Represents the contents of the original request that was passed to the `[Streaming]DetectIntent` call.", +"id": "GoogleCloudDialogflowV2beta1OriginalDetectIntentRequest", +"properties": { +"payload": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Optional. This field is set to the value of the `QueryParameters.payload` field passed in the request. Some integrations that query a Dialogflow agent may provide additional information in the payload. In particular, for the Dialogflow Phone Gateway integration, this field has the form: { \"telephony\": { \"caller_id\": \"+18558363987\" } } Note: The caller ID field (`caller_id`) will be redacted for Trial Edition agents and populated with the caller ID in [E.164 format](https://en.wikipedia.org/wiki/E.164) for Essentials Edition agents.", +"type": "object" +}, +"source": { +"description": "The source of this request, e.g., `google`, `facebook`, `slack`. It is set by Dialogflow-owned servers.", +"type": "string" +}, +"version": { +"description": "Optional. The version of the protocol used for this request. This field is AoG-specific.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1QueryResult": { +"description": "Represents the result of conversational query or event processing.", +"id": "GoogleCloudDialogflowV2beta1QueryResult", +"properties": { +"action": { +"description": "The action name from the matched intent.", +"type": "string" +}, +"allRequiredParamsPresent": { +"description": "This field is set to: - `false` if the matched intent has required parameters and not all of the required parameter values have been collected. - `true` if all required parameter values have been collected, or if the matched intent doesn't contain any required parameters.", +"type": "boolean" +}, +"cancelsSlotFilling": { +"description": "Indicates whether the conversational query triggers a cancellation for slot filling. For more information, see the [cancel slot filling documentation](https://cloud.google.com/dialogflow/es/docs/intents-actions-parameters#cancel).", +"type": "boolean" +}, +"diagnosticInfo": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Free-form diagnostic information for the associated detect intent request. The fields of this data can change without notice, so you should not write code that depends on its structure. The data may contain: - webhook call latency - webhook errors", +"type": "object" +}, +"fulfillmentMessages": { +"description": "The collection of rich messages to present to the user.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessage" +}, +"type": "array" +}, +"fulfillmentText": { +"description": "The text to be pronounced to the user or shown on the screen. Note: This is a legacy field, `fulfillment_messages` should be preferred.", +"type": "string" +}, +"intent": { +"$ref": "GoogleCloudDialogflowV2beta1Intent", +"description": "The intent that matched the conversational query. Some, not all fields are filled in this message, including but not limited to: `name`, `display_name`, `end_interaction` and `is_fallback`." +}, +"intentDetectionConfidence": { +"description": "The intent detection confidence. Values range from 0.0 (completely uncertain) to 1.0 (completely certain). This value is for informational purpose only and is only used to help match the best intent within the classification threshold. This value may change for the same end-user expression at any time due to a model retraining or change in implementation. If there are `multiple knowledge_answers` messages, this value is set to the greatest `knowledgeAnswers.match_confidence` value in the list.", +"format": "float", +"type": "number" +}, +"knowledgeAnswers": { +"$ref": "GoogleCloudDialogflowV2beta1KnowledgeAnswers", +"description": "The result from Knowledge Connector (if any), ordered by decreasing `KnowledgeAnswers.match_confidence`." +}, +"languageCode": { +"description": "The language that was triggered during intent detection. See [Language Support](https://cloud.google.com/dialogflow/docs/reference/language) for a list of the currently supported language codes.", +"type": "string" +}, +"outputContexts": { +"description": "The collection of output contexts. If applicable, `output_contexts.parameters` contains entries with name `.original` containing the original parameter values before the query.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1Context" +}, +"type": "array" +}, +"parameters": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "The collection of extracted parameters. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: * MapKey type: string * MapKey value: parameter name * MapValue type: If parameter's entity type is a composite entity then use map, otherwise, depending on the parameter value type, it could be one of string, number, boolean, null, list or map. * MapValue value: If parameter's entity type is a composite entity then use map from composite entity property names to property values, otherwise, use parameter value.", +"type": "object" +}, +"queryText": { +"description": "The original conversational query text: - If natural language text was provided as input, `query_text` contains a copy of the input. - If natural language speech audio was provided as input, `query_text` contains the speech recognition result. If speech recognizer produced multiple alternatives, a particular one is picked. - If automatic spell correction is enabled, `query_text` will contain the corrected user input.", +"type": "string" +}, +"sentimentAnalysisResult": { +"$ref": "GoogleCloudDialogflowV2beta1SentimentAnalysisResult", +"description": "The sentiment analysis result, which depends on the `sentiment_analysis_request_config` specified in the request." +}, +"speechRecognitionConfidence": { +"description": "The Speech recognition confidence between 0.0 and 1.0. A higher number indicates an estimated greater likelihood that the recognized words are correct. The default of 0.0 is a sentinel value indicating that confidence was not set. This field is not guaranteed to be accurate or set. In particular this field isn't set for StreamingDetectIntent since the streaming endpoint has separate confidence estimates per portion of the audio in StreamingRecognitionResult.", +"format": "float", +"type": "number" +}, +"webhookPayload": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "If the query was fulfilled by a webhook call, this field is set to the value of the `payload` field returned in the webhook response.", +"type": "object" +}, +"webhookSource": { +"description": "If the query was fulfilled by a webhook call, this field is set to the value of the `source` field returned in the webhook response.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1ResponseMessage": { +"description": "Response messages from an automated agent.", +"id": "GoogleCloudDialogflowV2beta1ResponseMessage", +"properties": { +"endInteraction": { +"$ref": "GoogleCloudDialogflowV2beta1ResponseMessageEndInteraction", +"description": "A signal that indicates the interaction with the Dialogflow agent has ended." +}, +"liveAgentHandoff": { +"$ref": "GoogleCloudDialogflowV2beta1ResponseMessageLiveAgentHandoff", +"description": "Hands off conversation to a live agent." +}, +"mixedAudio": { +"$ref": "GoogleCloudDialogflowV2beta1ResponseMessageMixedAudio", +"description": "An audio response message composed of both the synthesized Dialogflow agent responses and the audios hosted in places known to the client." +}, +"payload": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Returns a response containing a custom, platform-specific payload.", +"type": "object" +}, +"telephonyTransferCall": { +"$ref": "GoogleCloudDialogflowV2beta1ResponseMessageTelephonyTransferCall", +"description": "A signal that the client should transfer the phone call connected to this agent to a third-party endpoint." +}, +"text": { +"$ref": "GoogleCloudDialogflowV2beta1ResponseMessageText", +"description": "Returns a text response." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1ResponseMessageEndInteraction": { +"description": "Indicates that interaction with the Dialogflow agent has ended.", +"id": "GoogleCloudDialogflowV2beta1ResponseMessageEndInteraction", +"properties": {}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1ResponseMessageLiveAgentHandoff": { +"description": "Indicates that the conversation should be handed off to a human agent. Dialogflow only uses this to determine which conversations were handed off to a human agent for measurement purposes. What else to do with this signal is up to you and your handoff procedures. You may set this, for example: * In the entry fulfillment of a CX Page if entering the page indicates something went extremely wrong in the conversation. * In a webhook response when you determine that the customer issue can only be handled by a human.", +"id": "GoogleCloudDialogflowV2beta1ResponseMessageLiveAgentHandoff", +"properties": { +"metadata": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Custom metadata for your handoff procedure. Dialogflow doesn't impose any structure on this.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1ResponseMessageMixedAudio": { +"description": "Represents an audio message that is composed of both segments synthesized from the Dialogflow agent prompts and ones hosted externally at the specified URIs.", +"id": "GoogleCloudDialogflowV2beta1ResponseMessageMixedAudio", +"properties": { +"segments": { +"description": "Segments this audio response is composed of.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1ResponseMessageMixedAudioSegment" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1ResponseMessageMixedAudioSegment": { +"description": "Represents one segment of audio.", +"id": "GoogleCloudDialogflowV2beta1ResponseMessageMixedAudioSegment", +"properties": { +"allowPlaybackInterruption": { +"description": "Whether the playback of this segment can be interrupted by the end user's speech and the client should then start the next Dialogflow request.", +"type": "boolean" +}, +"audio": { +"description": "Raw audio synthesized from the Dialogflow agent's response using the output config specified in the request.", +"format": "byte", +"type": "string" +}, +"uri": { +"description": "Client-specific URI that points to an audio clip accessible to the client.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1ResponseMessageTelephonyTransferCall": { +"description": "Represents the signal that telles the client to transfer the phone call connected to the agent to a third-party endpoint.", +"id": "GoogleCloudDialogflowV2beta1ResponseMessageTelephonyTransferCall", +"properties": { +"phoneNumber": { +"description": "Transfer the call to a phone number in [E.164 format](https://en.wikipedia.org/wiki/E.164).", +"type": "string" +}, +"sipUri": { +"description": "Transfer the call to a SIP endpoint.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1ResponseMessageText": { +"description": "The text response message.", +"id": "GoogleCloudDialogflowV2beta1ResponseMessageText", +"properties": { +"text": { +"description": "A collection of text response variants. If multiple variants are defined, only one text response variant is returned at runtime.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1Sentiment": { +"description": "The sentiment, such as positive/negative feeling or association, for a unit of analysis, such as the query text. See: https://cloud.google.com/natural-language/docs/basics#interpreting_sentiment_analysis_values for how to interpret the result.", +"id": "GoogleCloudDialogflowV2beta1Sentiment", +"properties": { +"magnitude": { +"description": "A non-negative number in the [0, +inf) range, which represents the absolute magnitude of sentiment, regardless of score (positive or negative).", +"format": "float", +"type": "number" +}, +"score": { +"description": "Sentiment score between -1.0 (negative sentiment) and 1.0 (positive sentiment).", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1SentimentAnalysisResult": { +"description": "The result of sentiment analysis. Sentiment analysis inspects user input and identifies the prevailing subjective opinion, especially to determine a user's attitude as positive, negative, or neutral. For Participants.DetectIntent, it needs to be configured in DetectIntentRequest.query_params. For Participants.StreamingDetectIntent, it needs to be configured in StreamingDetectIntentRequest.query_params. And for Participants.AnalyzeContent and Participants.StreamingAnalyzeContent, it needs to be configured in ConversationProfile.human_agent_assistant_config", +"id": "GoogleCloudDialogflowV2beta1SentimentAnalysisResult", +"properties": { +"queryTextSentiment": { +"$ref": "GoogleCloudDialogflowV2beta1Sentiment", +"description": "The sentiment analysis result for `query_text`." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1SessionEntityType": { +"description": "A session represents a conversation between a Dialogflow agent and an end-user. You can create special entities, called session entities, during a session. Session entities can extend or replace custom entity types and only exist during the session that they were created for. All session data, including session entities, is stored by Dialogflow for 20 minutes. For more information, see the [session entity guide](https://cloud.google.com/dialogflow/docs/entities-session).", +"id": "GoogleCloudDialogflowV2beta1SessionEntityType", +"properties": { +"entities": { +"description": "Required. The collection of entities associated with this session entity type.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1EntityTypeEntity" +}, +"type": "array" +}, +"entityOverrideMode": { +"description": "Required. Indicates whether the additional data should override or supplement the custom entity type definition.", +"enum": [ +"ENTITY_OVERRIDE_MODE_UNSPECIFIED", +"ENTITY_OVERRIDE_MODE_OVERRIDE", +"ENTITY_OVERRIDE_MODE_SUPPLEMENT" +], +"enumDescriptions": [ +"Not specified. This value should be never used.", +"The collection of session entities overrides the collection of entities in the corresponding custom entity type.", +"The collection of session entities extends the collection of entities in the corresponding custom entity type. Note: Even in this override mode calls to `ListSessionEntityTypes`, `GetSessionEntityType`, `CreateSessionEntityType` and `UpdateSessionEntityType` only return the additional entities added in this session entity type. If you want to get the supplemented list, please call EntityTypes.GetEntityType on the custom entity type and merge." +], +"type": "string" +}, +"name": { +"description": "Required. The unique identifier of this session entity type. Supported formats: - `projects//agent/sessions//entityTypes/` - `projects//locations//agent/sessions//entityTypes/` - `projects//agent/environments//users//sessions//entityTypes/` - `projects//locations//agent/environments/ /users//sessions//entityTypes/` If `Location ID` is not specified we assume default 'us' location. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. `` must be the display name of an existing entity type in the same agent that will be overridden or supplemented.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1SetSuggestionFeatureConfigOperationMetadata": { +"description": "Metadata for a ConversationProfile.SetSuggestionFeatureConfig operation.", +"id": "GoogleCloudDialogflowV2beta1SetSuggestionFeatureConfigOperationMetadata", +"properties": { +"conversationProfile": { +"description": "The resource name of the conversation profile. Format: `projects//locations//conversationProfiles/`", +"type": "string" +}, +"createTime": { +"description": "Timestamp whe the request was created. The time is measured on server side.", +"format": "google-datetime", +"type": "string" +}, +"participantRole": { +"description": "Required. The participant role to add or update the suggestion feature config. Only HUMAN_AGENT or END_USER can be used.", +"enum": [ +"ROLE_UNSPECIFIED", +"HUMAN_AGENT", +"AUTOMATED_AGENT", +"END_USER" +], +"enumDescriptions": [ +"Participant role not set.", +"Participant is a human agent.", +"Participant is an automated agent, such as a Dialogflow agent.", +"Participant is an end user that has called or chatted with Dialogflow services." +], +"type": "string" +}, +"suggestionFeatureType": { +"description": "Required. The type of the suggestion feature to add or update.", +"enum": [ +"TYPE_UNSPECIFIED", +"ARTICLE_SUGGESTION", +"FAQ", +"SMART_REPLY", +"DIALOGFLOW_ASSIST", +"CONVERSATION_SUMMARIZATION", +"KNOWLEDGE_SEARCH", +"KNOWLEDGE_ASSIST" +], +"enumDescriptions": [ +"Unspecified feature type.", +"Run article suggestion model for chat.", +"Run FAQ model.", +"Run smart reply model for chat.", +"Run Dialogflow assist model for chat, which will return automated agent response as suggestion.", +"Run conversation summarization model for chat.", +"Run knowledge search with text input from agent or text generated query.", +"Run knowledge assist with automatic query generation." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1SmartReplyAnswer": { +"description": "Represents a smart reply answer.", +"id": "GoogleCloudDialogflowV2beta1SmartReplyAnswer", +"properties": { +"answerRecord": { +"description": "The name of answer record, in the format of \"projects//locations//answerRecords/\"", +"type": "string" +}, +"confidence": { +"description": "Smart reply confidence. The system's confidence score that this reply is a good match for this conversation, as a value from 0.0 (completely uncertain) to 1.0 (completely certain).", +"format": "float", +"type": "number" +}, +"reply": { +"description": "The content of the reply.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1SpeechWordInfo": { +"description": "Information for a word recognized by the speech recognizer.", +"id": "GoogleCloudDialogflowV2beta1SpeechWordInfo", +"properties": { +"confidence": { +"description": "The Speech confidence between 0.0 and 1.0 for this word. A higher number indicates an estimated greater likelihood that the recognized word is correct. The default of 0.0 is a sentinel value indicating that confidence was not set. This field is not guaranteed to be fully stable over time for the same audio input. Users should also not rely on it to always be provided.", +"format": "float", +"type": "number" +}, +"endOffset": { +"description": "Time offset relative to the beginning of the audio that corresponds to the end of the spoken word. This is an experimental feature and the accuracy of the time offset can vary.", +"format": "google-duration", +"type": "string" +}, +"startOffset": { +"description": "Time offset relative to the beginning of the audio that corresponds to the start of the spoken word. This is an experimental feature and the accuracy of the time offset can vary.", +"format": "google-duration", +"type": "string" +}, +"word": { +"description": "The word this info is for.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1StreamingRecognitionResult": { +"description": "Contains a speech recognition result corresponding to a portion of the audio that is currently being processed or an indication that this is the end of the single requested utterance. While end-user audio is being processed, Dialogflow sends a series of results. Each result may contain a `transcript` value. A transcript represents a portion of the utterance. While the recognizer is processing audio, transcript values may be interim values or finalized values. Once a transcript is finalized, the `is_final` value is set to true and processing continues for the next transcript. If `StreamingDetectIntentRequest.query_input.audio_config.single_utterance` was true, and the recognizer has completed processing audio, the `message_type` value is set to `END_OF_SINGLE_UTTERANCE and the following (last) result contains the last finalized transcript. The complete end-user utterance is determined by concatenating the finalized transcript values received for the series of results. In the following example, single utterance is enabled. In the case where single utterance is not enabled, result 7 would not occur. ``` Num | transcript | message_type | is_final --- | ----------------------- | ----------------------- | -------- 1 | \"tube\" | TRANSCRIPT | false 2 | \"to be a\" | TRANSCRIPT | false 3 | \"to be\" | TRANSCRIPT | false 4 | \"to be or not to be\" | TRANSCRIPT | true 5 | \"that's\" | TRANSCRIPT | false 6 | \"that is | TRANSCRIPT | false 7 | unset | END_OF_SINGLE_UTTERANCE | unset 8 | \" that is the question\" | TRANSCRIPT | true ``` Concatenating the finalized transcripts with `is_final` set to true, the complete utterance becomes \"to be or not to be that is the question\".", +"id": "GoogleCloudDialogflowV2beta1StreamingRecognitionResult", +"properties": { +"confidence": { +"description": "The Speech confidence between 0.0 and 1.0 for the current portion of audio. A higher number indicates an estimated greater likelihood that the recognized words are correct. The default of 0.0 is a sentinel value indicating that confidence was not set. This field is typically only provided if `is_final` is true and you should not rely on it being accurate or even set.", +"format": "float", +"type": "number" +}, +"dtmfDigits": { +"$ref": "GoogleCloudDialogflowV2beta1TelephonyDtmfEvents", +"description": "DTMF digits. Populated if and only if `message_type` = `DTMF_DIGITS`." +}, +"isFinal": { +"description": "If `false`, the `StreamingRecognitionResult` represents an interim result that may change. If `true`, the recognizer will not return any further hypotheses about this piece of the audio. May only be populated for `message_type` = `TRANSCRIPT`.", +"type": "boolean" +}, +"languageCode": { +"description": "Detected language code for the transcript.", +"type": "string" +}, +"messageType": { +"description": "Type of the result message.", +"enum": [ +"MESSAGE_TYPE_UNSPECIFIED", +"TRANSCRIPT", +"DTMF_DIGITS", +"END_OF_SINGLE_UTTERANCE", +"PARTIAL_DTMF_DIGITS" +], +"enumDescriptions": [ +"Not specified. Should never be used.", +"Message contains a (possibly partial) transcript.", +"Message contains DTMF digits.", +"This event indicates that the server has detected the end of the user's speech utterance and expects no additional speech. Therefore, the server will not process additional audio (although it may subsequently return additional results). The client should stop sending additional audio data, half-close the gRPC connection, and wait for any additional results until the server closes the gRPC connection. This message is only sent if `single_utterance` was set to `true`, and is not used otherwise.", +"Message contains DTMF digits. Before a message with DTMF_DIGITS is sent, a message with PARTIAL_DTMF_DIGITS may be sent with DTMF digits collected up to the time of sending, which represents an intermediate result." +], +"type": "string" +}, +"speechEndOffset": { +"description": "Time offset of the end of this Speech recognition result relative to the beginning of the audio. Only populated for `message_type` = `TRANSCRIPT`.", +"format": "google-duration", +"type": "string" +}, +"speechWordInfo": { +"description": "Word-specific information for the words recognized by Speech in transcript. Populated if and only if `message_type` = `TRANSCRIPT` and [InputAudioConfig.enable_word_info] is set.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1SpeechWordInfo" +}, +"type": "array" +}, +"stability": { +"description": "An estimate of the likelihood that the speech recognizer will not change its guess about this interim recognition result: * If the value is unspecified or 0.0, Dialogflow didn't compute the stability. In particular, Dialogflow will only provide stability for `TRANSCRIPT` results with `is_final = false`. * Otherwise, the value is in (0.0, 1.0] where 0.0 means completely unstable and 1.0 means completely stable.", +"format": "float", +"type": "number" +}, +"transcript": { +"description": "Transcript text representing the words that the user spoke. Populated if and only if `message_type` = `TRANSCRIPT`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1SuggestArticlesResponse": { +"description": "The response message for Participants.SuggestArticles.", +"id": "GoogleCloudDialogflowV2beta1SuggestArticlesResponse", +"properties": { +"articleAnswers": { +"description": "Output only. Articles ordered by score in descending order.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1ArticleAnswer" +}, +"type": "array" +}, +"contextSize": { +"description": "Number of messages prior to and including latest_message to compile the suggestion. It may be smaller than the SuggestArticlesResponse.context_size field in the request if there aren't that many messages in the conversation.", +"format": "int32", +"type": "integer" +}, +"latestMessage": { +"description": "The name of the latest conversation message used to compile suggestion for. Format: `projects//locations//conversations//messages/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1SuggestDialogflowAssistsResponse": { +"description": "The response message for Participants.SuggestDialogflowAssists.", +"id": "GoogleCloudDialogflowV2beta1SuggestDialogflowAssistsResponse", +"properties": { +"contextSize": { +"description": "Number of messages prior to and including latest_message to compile the suggestion. It may be smaller than the SuggestDialogflowAssistsRequest.context_size field in the request if there aren't that many messages in the conversation.", +"format": "int32", +"type": "integer" +}, +"dialogflowAssistAnswers": { +"description": "Output only. Multiple reply options provided by Dialogflow assist service. The order is based on the rank of the model prediction.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1DialogflowAssistAnswer" +}, +"type": "array" +}, +"latestMessage": { +"description": "The name of the latest conversation message used to suggest answer. Format: `projects//locations//conversations//messages/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1SuggestFaqAnswersResponse": { +"description": "The request message for Participants.SuggestFaqAnswers.", +"id": "GoogleCloudDialogflowV2beta1SuggestFaqAnswersResponse", +"properties": { +"contextSize": { +"description": "Number of messages prior to and including latest_message to compile the suggestion. It may be smaller than the SuggestFaqAnswersRequest.context_size field in the request if there aren't that many messages in the conversation.", +"format": "int32", +"type": "integer" +}, +"faqAnswers": { +"description": "Output only. Answers extracted from FAQ documents.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1FaqAnswer" +}, +"type": "array" +}, +"latestMessage": { +"description": "The name of the latest conversation message used to compile suggestion for. Format: `projects//locations//conversations//messages/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1SuggestKnowledgeAssistResponse": { +"description": "The response message for Participants.SuggestKnowledgeAssist.", +"id": "GoogleCloudDialogflowV2beta1SuggestKnowledgeAssistResponse", +"properties": { +"contextSize": { +"description": "Number of messages prior to and including latest_message to compile the suggestion. It may be smaller than the SuggestKnowledgeAssistRequest.context_size field in the request if there are fewer messages in the conversation.", +"format": "int32", +"type": "integer" +}, +"knowledgeAssistAnswer": { +"$ref": "GoogleCloudDialogflowV2beta1KnowledgeAssistAnswer", +"description": "Output only. Knowledge Assist suggestion.", +"readOnly": true +}, +"latestMessage": { +"description": "The name of the latest conversation message used to compile suggestion for. Format: `projects//locations//conversations//messages/`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1SuggestSmartRepliesResponse": { +"description": "The response message for Participants.SuggestSmartReplies.", +"id": "GoogleCloudDialogflowV2beta1SuggestSmartRepliesResponse", +"properties": { +"contextSize": { +"description": "Number of messages prior to and including latest_message to compile the suggestion. It may be smaller than the SuggestSmartRepliesRequest.context_size field in the request if there aren't that many messages in the conversation.", +"format": "int32", +"type": "integer" +}, +"latestMessage": { +"description": "The name of the latest conversation message used to compile suggestion for. Format: `projects//locations//conversations//messages/`.", +"type": "string" +}, +"smartReplyAnswers": { +"description": "Output only. Multiple reply options provided by smart reply service. The order is based on the rank of the model prediction. The maximum number of the returned replies is set in SmartReplyConfig.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1SmartReplyAnswer" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1SuggestionResult": { +"description": "One response of different type of suggestion response which is used in the response of Participants.AnalyzeContent and Participants.AnalyzeContent, as well as HumanAgentAssistantEvent.", +"id": "GoogleCloudDialogflowV2beta1SuggestionResult", +"properties": { +"error": { +"$ref": "GoogleRpcStatus", +"description": "Error status if the request failed." +}, +"suggestArticlesResponse": { +"$ref": "GoogleCloudDialogflowV2beta1SuggestArticlesResponse", +"description": "SuggestArticlesResponse if request is for ARTICLE_SUGGESTION." +}, +"suggestDialogflowAssistsResponse": { +"$ref": "GoogleCloudDialogflowV2beta1SuggestDialogflowAssistsResponse", +"description": "SuggestDialogflowAssistsResponse if request is for DIALOGFLOW_ASSIST." +}, +"suggestEntityExtractionResponse": { +"$ref": "GoogleCloudDialogflowV2beta1SuggestDialogflowAssistsResponse", +"description": "SuggestDialogflowAssistsResponse if request is for ENTITY_EXTRACTION." +}, +"suggestFaqAnswersResponse": { +"$ref": "GoogleCloudDialogflowV2beta1SuggestFaqAnswersResponse", +"description": "SuggestFaqAnswersResponse if request is for FAQ_ANSWER." +}, +"suggestKnowledgeAssistResponse": { +"$ref": "GoogleCloudDialogflowV2beta1SuggestKnowledgeAssistResponse", +"description": "SuggestKnowledgeAssistResponse if request is for KNOWLEDGE_ASSIST." +}, +"suggestSmartRepliesResponse": { +"$ref": "GoogleCloudDialogflowV2beta1SuggestSmartRepliesResponse", +"description": "SuggestSmartRepliesResponse if request is for SMART_REPLY." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1TelephonyDtmfEvents": { +"description": "A wrapper of repeated TelephonyDtmf digits.", +"id": "GoogleCloudDialogflowV2beta1TelephonyDtmfEvents", +"properties": { +"dtmfEvents": { +"description": "A sequence of TelephonyDtmf digits.", +"items": { +"enum": [ +"TELEPHONY_DTMF_UNSPECIFIED", +"DTMF_ONE", +"DTMF_TWO", +"DTMF_THREE", +"DTMF_FOUR", +"DTMF_FIVE", +"DTMF_SIX", +"DTMF_SEVEN", +"DTMF_EIGHT", +"DTMF_NINE", +"DTMF_ZERO", +"DTMF_A", +"DTMF_B", +"DTMF_C", +"DTMF_D", +"DTMF_STAR", +"DTMF_POUND" +], +"enumDescriptions": [ +"Not specified. This value may be used to indicate an absent digit.", +"Number: '1'.", +"Number: '2'.", +"Number: '3'.", +"Number: '4'.", +"Number: '5'.", +"Number: '6'.", +"Number: '7'.", +"Number: '8'.", +"Number: '9'.", +"Number: '0'.", +"Letter: 'A'.", +"Letter: 'B'.", +"Letter: 'C'.", +"Letter: 'D'.", +"Asterisk/star: '*'.", +"Pound/diamond/hash/square/gate/octothorpe: '#'." +], +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1WebhookRequest": { +"description": "The request message for a webhook call.", +"id": "GoogleCloudDialogflowV2beta1WebhookRequest", +"properties": { +"alternativeQueryResults": { +"description": "Alternative query results from KnowledgeService.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1QueryResult" +}, +"type": "array" +}, +"originalDetectIntentRequest": { +"$ref": "GoogleCloudDialogflowV2beta1OriginalDetectIntentRequest", +"description": "Optional. The contents of the original request that was passed to `[Streaming]DetectIntent` call." +}, +"queryResult": { +"$ref": "GoogleCloudDialogflowV2beta1QueryResult", +"description": "The result of the conversational query or event processing. Contains the same value as `[Streaming]DetectIntentResponse.query_result`." +}, +"responseId": { +"description": "The unique identifier of the response. Contains the same value as `[Streaming]DetectIntentResponse.response_id`.", +"type": "string" +}, +"session": { +"description": "The unique identifier of detectIntent request session. Can be used to identify end-user inside webhook implementation. Supported formats: - `projects//agent/sessions/, - `projects//locations//agent/sessions/`, - `projects//agent/environments//users//sessions/`, - `projects//locations//agent/environments//users//sessions/`,", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV2beta1WebhookResponse": { +"description": "The response message for a webhook call. This response is validated by the Dialogflow server. If validation fails, an error will be returned in the QueryResult.diagnostic_info field. Setting JSON fields to an empty value with the wrong type is a common error. To avoid this error: - Use `\"\"` for empty strings - Use `{}` or `null` for empty objects - Use `[]` or `null` for empty arrays For more information, see the [Protocol Buffers Language Guide](https://developers.google.com/protocol-buffers/docs/proto3#json).", +"id": "GoogleCloudDialogflowV2beta1WebhookResponse", +"properties": { +"endInteraction": { +"description": "Optional. Indicates that this intent ends an interaction. Some integrations (e.g., Actions on Google or Dialogflow phone gateway) use this information to close interaction with an end user. Default is false.", +"type": "boolean" +}, +"followupEventInput": { +"$ref": "GoogleCloudDialogflowV2beta1EventInput", +"description": "Optional. Invokes the supplied events. When this field is set, Dialogflow ignores the `fulfillment_text`, `fulfillment_messages`, and `payload` fields." +}, +"fulfillmentMessages": { +"description": "Optional. The rich response messages intended for the end-user. When provided, Dialogflow uses this field to populate QueryResult.fulfillment_messages sent to the integration or API caller.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1IntentMessage" +}, +"type": "array" +}, +"fulfillmentText": { +"description": "Optional. The text response message intended for the end-user. It is recommended to use `fulfillment_messages.text.text[0]` instead. When provided, Dialogflow uses this field to populate QueryResult.fulfillment_text sent to the integration or API caller.", +"type": "string" +}, +"liveAgentHandoff": { +"description": "Indicates that a live agent should be brought in to handle the interaction with the user. In most cases, when you set this flag to true, you would also want to set end_interaction to true as well. Default is false.", +"type": "boolean" +}, +"outputContexts": { +"description": "Optional. The collection of output contexts that will overwrite currently active contexts for the session and reset their lifespans. When provided, Dialogflow uses this field to populate QueryResult.output_contexts sent to the integration or API caller.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1Context" +}, +"type": "array" +}, +"payload": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Optional. This field can be used to pass custom data from your webhook to the integration or API caller. Arbitrary JSON objects are supported. When provided, Dialogflow uses this field to populate QueryResult.webhook_payload sent to the integration or API caller. This field is also used by the [Google Assistant integration](https://cloud.google.com/dialogflow/docs/integrations/aog) for rich response messages. See the format definition at [Google Assistant Dialogflow webhook format](https://developers.google.com/assistant/actions/build/json/dialogflow-webhook-json)", +"type": "object" +}, +"sessionEntityTypes": { +"description": "Optional. Additional session entity types to replace or extend developer entity types with. The entity synonyms apply to all languages and persist for the session. Setting this data from a webhook overwrites the session entity types that have been set using `detectIntent`, `streamingDetectIntent` or SessionEntityType management methods.", +"items": { +"$ref": "GoogleCloudDialogflowV2beta1SessionEntityType" +}, +"type": "array" +}, +"source": { +"description": "Optional. A custom field used to identify the webhook source. Arbitrary strings are supported. When provided, Dialogflow uses this field to populate QueryResult.webhook_source sent to the integration or API caller.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV3alpha1ConversationSignals": { +"description": "This message is used to hold all the Conversation Signals data, which will be converted to JSON and exported to BigQuery.", +"id": "GoogleCloudDialogflowV3alpha1ConversationSignals", +"properties": { +"turnSignals": { +"$ref": "GoogleCloudDialogflowV3alpha1TurnSignals", +"description": "Required. Turn signals for the current turn." +} +}, +"type": "object" +}, +"GoogleCloudDialogflowV3alpha1TurnSignals": { +"description": "Collection of all signals that were extracted for a single turn of the conversation.", +"id": "GoogleCloudDialogflowV3alpha1TurnSignals", +"properties": { +"agentEscalated": { +"description": "Whether agent responded with LiveAgentHandoff fulfillment.", +"type": "boolean" +}, +"dtmfUsed": { +"description": "Whether user was using DTMF input.", +"type": "boolean" +}, +"failureReasons": { +"description": "Failure reasons of the turn.", +"items": { +"enum": [ +"FAILURE_REASON_UNSPECIFIED", +"FAILED_INTENT", +"FAILED_WEBHOOK" +], +"enumDescriptions": [ +"Failure reason is not assigned.", +"Whether NLU failed to recognize user intent.", +"Whether webhook failed during the turn." +], +"type": "string" +}, +"type": "array" +}, +"noMatch": { +"description": "Whether NLU predicted NO_MATCH.", +"type": "boolean" +}, +"noUserInput": { +"description": "Whether user provided no input.", +"type": "boolean" +}, +"reachedEndPage": { +"description": "Whether turn resulted in End Session page.", +"type": "boolean" +}, +"sentimentMagnitude": { +"description": "Sentiment magnitude of the user utterance if [sentiment](https://cloud.google.com/dialogflow/cx/docs/concept/sentiment) was enabled.", +"format": "float", +"type": "number" +}, +"sentimentScore": { +"description": "Sentiment score of the user utterance if [sentiment](https://cloud.google.com/dialogflow/cx/docs/concept/sentiment) was enabled.", +"format": "float", +"type": "number" +}, +"triggeredAbandonmentEvent": { +"description": "Whether agent has triggered the event corresponding to user abandoning the conversation.", +"type": "boolean" +}, +"userEscalated": { +"description": "Whether user was specifically asking for a live agent.", +"type": "boolean" +}, +"webhookStatuses": { +"description": "Human-readable statuses of the webhooks triggered during this turn.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"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" +}, +"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" +}, +"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": "Dialogflow 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/displayvideo.v3.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/displayvideo.v3.json new file mode 100644 index 0000000000000000000000000000000000000000..d64916286d41467586b34f342e37c3b604060b37 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/displayvideo.v3.json @@ -0,0 +1,22559 @@ +{ +"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:v3", +"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": "v3/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": "v3/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": "v3/advertisers", +"httpMethod": "POST", +"id": "displayvideo.advertisers.create", +"parameterOrder": [], +"parameters": {}, +"path": "v3/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": "v3/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": "v3/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": "v3/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": "v3/advertisers/{+advertiserId}:editAssignedTargetingOptions", +"request": { +"$ref": "BulkEditAdvertiserAssignedTargetingOptionsRequest" +}, +"response": { +"$ref": "BulkEditAdvertiserAssignedTargetingOptionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"get": { +"description": "Gets an advertiser.", +"flatPath": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/advertisers/{+advertiserId}", +"request": { +"$ref": "Advertiser" +}, +"response": { +"$ref": "Advertiser" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +}, +"resources": { +"adGroupAds": { +"methods": { +"get": { +"description": "Gets an ad group ad.", +"flatPath": "v3/advertisers/{advertisersId}/adGroupAds/{adGroupAdsId}", +"httpMethod": "GET", +"id": "displayvideo.advertisers.adGroupAds.get", +"parameterOrder": [ +"advertiserId", +"adGroupAdId" +], +"parameters": { +"adGroupAdId": { +"description": "Required. The ID of the ad group ad to fetch.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"advertiserId": { +"description": "Required. The ID of the advertiser this ad group ad belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/advertisers/{+advertiserId}/adGroupAds/{+adGroupAdId}", +"response": { +"$ref": "AdGroupAd" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists ad group ads.", +"flatPath": "v3/advertisers/{advertisersId}/adGroupAds", +"httpMethod": "GET", +"id": "displayvideo.advertisers.adGroupAds.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": "Optional. Allows filtering by custom 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": "Optional. 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": "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 `ListAdGroupAds` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +} +}, +"path": "v3/advertisers/{+advertiserId}/adGroupAds", +"response": { +"$ref": "ListAdGroupAdsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +} +}, +"adGroups": { +"methods": { +"bulkListAdGroupAssignedTargetingOptions": { +"description": "Lists assigned targeting options for multiple ad groups across targeting types. Inherited assigned targeting options are not included.", +"flatPath": "v3/advertisers/{advertisersId}/adGroups:bulkListAdGroupAssignedTargetingOptions", +"httpMethod": "GET", +"id": "displayvideo.advertisers.adGroups.bulkListAdGroupAssignedTargetingOptions", +"parameterOrder": [ +"advertiserId" +], +"parameters": { +"adGroupIds": { +"description": "Required. The IDs of the ad groups to list assigned targeting options for.", +"format": "int64", +"location": "query", +"repeated": true, +"type": "string" +}, +"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" +} +}, +"path": "v3/advertisers/{+advertiserId}/adGroups:bulkListAdGroupAssignedTargetingOptions", +"response": { +"$ref": "BulkListAdGroupAssignedTargetingOptionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"get": { +"description": "Gets an ad group.", +"flatPath": "v3/advertisers/{advertisersId}/adGroups/{adGroupsId}", +"httpMethod": "GET", +"id": "displayvideo.advertisers.adGroups.get", +"parameterOrder": [ +"advertiserId", +"adGroupId" +], +"parameters": { +"adGroupId": { +"description": "Required. The ID of the ad group to fetch.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"advertiserId": { +"description": "Required. The ID of the advertiser this ad group belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/advertisers/{+advertiserId}/adGroups/{+adGroupId}", +"response": { +"$ref": "AdGroup" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists ad groups.", +"flatPath": "v3/advertisers/{advertisersId}/adGroups", +"httpMethod": "GET", +"id": "displayvideo.advertisers.adGroups.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": "Optional. Allows filtering by custom 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` `AD_GROUP_FORMAT_IN_STREAM` ad groups under an advertiser: `(entityStatus=\"ENTITY_STATUS_ACTIVE\" OR entityStatus=\"ENTITY_STATUS_PAUSED\") AND adGroupFormat=\"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": "Optional. 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": "Optional. 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": "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 `ListAdGroups` method. If not specified, the first page of results will be returned.", +"location": "query", +"type": "string" +} +}, +"path": "v3/advertisers/{+advertiserId}/adGroups", +"response": { +"$ref": "ListAdGroupsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +}, +"resources": { +"targetingTypes": { +"resources": { +"assignedTargetingOptions": { +"methods": { +"get": { +"description": "Gets a single targeting option assigned to an ad group. Inherited assigned targeting options are not included.", +"flatPath": "v3/advertisers/{advertisersId}/adGroups/{adGroupsId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions/{assignedTargetingOptionsId}", +"httpMethod": "GET", +"id": "displayvideo.advertisers.adGroups.targetingTypes.assignedTargetingOptions.get", +"parameterOrder": [ +"advertiserId", +"adGroupId", +"targetingType", +"assignedTargetingOptionId" +], +"parameters": { +"adGroupId": { +"description": "Required. The ID of the ad group the assigned targeting option belongs to.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"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" +} +}, +"path": "v3/advertisers/{+advertiserId}/adGroups/{+adGroupId}/targetingTypes/{+targetingType}/assignedTargetingOptions/{+assignedTargetingOptionId}", +"response": { +"$ref": "AssignedTargetingOption" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists the targeting options assigned to an ad group. Inherited assigned targeting options are not included.", +"flatPath": "v3/advertisers/{advertisersId}/adGroups/{adGroupsId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions", +"httpMethod": "GET", +"id": "displayvideo.advertisers.adGroups.targetingTypes.assignedTargetingOptions.list", +"parameterOrder": [ +"advertiserId", +"adGroupId", +"targetingType" +], +"parameters": { +"adGroupId": { +"description": "Required. The ID of the ad group to list assigned targeting options for.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"advertiserId": { +"description": "Required. The ID of the advertiser the ad group 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: * `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": "Optional. 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": "Optional. 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": "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 `ListAdGroupAssignedTargetingOptions` 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" +} +}, +"path": "v3/advertisers/{+advertiserId}/adGroups/{+adGroupId}/targetingTypes/{+targetingType}/assignedTargetingOptions", +"response": { +"$ref": "ListAdGroupAssignedTargetingOptionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +} +} +} +} +} +}, +"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": "v3/advertisers/{advertisersId}/assets", +"httpMethod": "POST", +"id": "displayvideo.advertisers.assets.upload", +"mediaUpload": { +"accept": [ +"*/*" +], +"protocols": { +"simple": { +"multipart": true, +"path": "/upload/v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/advertisers/{+advertiserId}/creatives/{+creativeId}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"get": { +"description": "Gets a creative.", +"flatPath": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/advertisers/{+advertiserId}/locationLists", +"request": { +"$ref": "LocationList" +}, +"response": { +"$ref": "LocationList" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"get": { +"description": "Gets a location list.", +"flatPath": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/advertisers/{advertiserId}/locationLists/{locationListId}/assignedLocations", +"response": { +"$ref": "ListAssignedLocationsResponse" +}, +"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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/advertisers/{+advertiserId}/targetingTypes/{+targetingType}/assignedTargetingOptions", +"response": { +"$ref": "ListAdvertiserAssignedTargetingOptionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +} +} +} +} +} +}, +"combinedAudiences": { +"methods": { +"get": { +"description": "Gets a combined audience.", +"flatPath": "v3/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": "v3/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": "v3/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": "v3/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": "v3/customBiddingAlgorithms", +"httpMethod": "POST", +"id": "displayvideo.customBiddingAlgorithms.create", +"parameterOrder": [], +"parameters": {}, +"path": "v3/customBiddingAlgorithms", +"request": { +"$ref": "CustomBiddingAlgorithm" +}, +"response": { +"$ref": "CustomBiddingAlgorithm" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"get": { +"description": "Gets a custom bidding algorithm.", +"flatPath": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/customBiddingAlgorithms/{+customBiddingAlgorithmId}", +"request": { +"$ref": "CustomBiddingAlgorithm" +}, +"response": { +"$ref": "CustomBiddingAlgorithm" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"uploadRules": { +"description": "Creates a rules reference object for an AlgorithmRules file. The resulting reference object provides a resource path where the AlgorithmRules file should be uploaded. This reference object should be included when creating a new CustomBiddingAlgorithmRules resource.", +"flatPath": "v3/customBiddingAlgorithms/{customBiddingAlgorithmsId}:uploadRules", +"httpMethod": "GET", +"id": "displayvideo.customBiddingAlgorithms.uploadRules", +"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 rules resource.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"partnerId": { +"description": "The ID of the partner that owns the parent custom bidding algorithm.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v3/customBiddingAlgorithms/{+customBiddingAlgorithmId}:uploadRules", +"response": { +"$ref": "CustomBiddingAlgorithmRulesRef" +}, +"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": "v3/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": "v3/customBiddingAlgorithms/{+customBiddingAlgorithmId}:uploadScript", +"response": { +"$ref": "CustomBiddingScriptRef" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +}, +"resources": { +"rules": { +"methods": { +"create": { +"description": "Creates a new rules resource. Returns the newly created rules resource if successful.", +"flatPath": "v3/customBiddingAlgorithms/{customBiddingAlgorithmsId}/rules", +"httpMethod": "POST", +"id": "displayvideo.customBiddingAlgorithms.rules.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 rules resource.", +"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 rules resource.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v3/customBiddingAlgorithms/{+customBiddingAlgorithmId}/rules", +"request": { +"$ref": "CustomBiddingAlgorithmRules" +}, +"response": { +"$ref": "CustomBiddingAlgorithmRules" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"get": { +"description": "Retrieves a rules resource.", +"flatPath": "v3/customBiddingAlgorithms/{customBiddingAlgorithmsId}/rules/{rulesId}", +"httpMethod": "GET", +"id": "displayvideo.customBiddingAlgorithms.rules.get", +"parameterOrder": [ +"customBiddingAlgorithmId", +"customBiddingAlgorithmRulesId" +], +"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 rules resource.", +"format": "int64", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +}, +"customBiddingAlgorithmRulesId": { +"description": "Required. The ID of the rules resource 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.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v3/customBiddingAlgorithms/{+customBiddingAlgorithmId}/rules/{+customBiddingAlgorithmRulesId}", +"response": { +"$ref": "CustomBiddingAlgorithmRules" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"list": { +"description": "Lists rules resources that belong to the given algorithm. The order is defined by the order_by parameter.", +"flatPath": "v3/customBiddingAlgorithms/{customBiddingAlgorithmsId}/rules", +"httpMethod": "GET", +"id": "displayvideo.customBiddingAlgorithms.rules.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 that owns the rules resource.", +"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 `ListCustomBiddingAlgorithmRules` 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.", +"format": "int64", +"location": "query", +"type": "string" +} +}, +"path": "v3/customBiddingAlgorithms/{+customBiddingAlgorithmId}/rules", +"response": { +"$ref": "ListCustomBiddingAlgorithmRulesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +} +}, +"scripts": { +"methods": { +"create": { +"description": "Creates a new custom bidding script. Returns the newly created script if successful.", +"flatPath": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/customBiddingAlgorithms/{+customBiddingAlgorithmId}/scripts", +"response": { +"$ref": "ListCustomBiddingScriptsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +} +} +} +}, +"customLists": { +"methods": { +"get": { +"description": "Gets a custom list.", +"flatPath": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/floodlightGroups/{+floodlightGroupId}/floodlightActivities", +"response": { +"$ref": "ListFloodlightActivitiesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +} +} +} +} +}, +"googleAudiences": { +"methods": { +"get": { +"description": "Gets a Google audience.", +"flatPath": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/guaranteedOrders/{+guaranteedOrderId}:editGuaranteedOrderReadAccessors", +"request": { +"$ref": "EditGuaranteedOrderReadAccessorsRequest" +}, +"response": { +"$ref": "EditGuaranteedOrderReadAccessorsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"get": { +"description": "Gets a guaranteed order.", +"flatPath": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/inventorySourceGroups", +"request": { +"$ref": "InventorySourceGroup" +}, +"response": { +"$ref": "InventorySourceGroup" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"delete": { +"description": "Deletes an inventory source group.", +"flatPath": "v3/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": "v3/inventorySourceGroups/{+inventorySourceGroupId}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"get": { +"description": "Gets an inventory source group.", +"flatPath": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/inventorySources/{+inventorySourceId}:editInventorySourceReadWriteAccessors", +"request": { +"$ref": "EditInventorySourceReadWriteAccessorsRequest" +}, +"response": { +"$ref": "InventorySourceAccessors" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"get": { +"description": "Gets an inventory source.", +"flatPath": "v3/inventorySources/{inventorySourcesId}", +"httpMethod": "GET", +"id": "displayvideo.inventorySources.get", +"parameterOrder": [ +"inventorySourceId" +], +"parameters": { +"advertiserId": { +"description": "Optional. The ID of the DV360 advertiser to which the fetched inventory source is permissioned. If the user only has access to the advertiser and not the parent partner, use this field to specify the relevant advertiser.", +"format": "int64", +"location": "query", +"type": "string" +}, +"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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/partners/{+partnerId}:editAssignedTargetingOptions", +"request": { +"$ref": "BulkEditPartnerAssignedTargetingOptionsRequest" +}, +"response": { +"$ref": "BulkEditPartnerAssignedTargetingOptionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/display-video" +] +}, +"get": { +"description": "Gets a partner.", +"flatPath": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/sdfdownloadtasks", +"httpMethod": "POST", +"id": "displayvideo.sdfdownloadtasks.create", +"parameterOrder": [], +"parameters": {}, +"path": "v3/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": "v3/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": "v3/{+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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/users", +"httpMethod": "POST", +"id": "displayvideo.users.create", +"parameterOrder": [], +"parameters": {}, +"path": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": "v3/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": { +"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" +}, +"AdGroup": { +"description": "A single ad group associated with a line item.", +"id": "AdGroup", +"properties": { +"adGroupFormat": { +"description": "The format of the ads in the ad group.", +"enum": [ +"AD_GROUP_FORMAT_UNSPECIFIED", +"AD_GROUP_FORMAT_IN_STREAM", +"AD_GROUP_FORMAT_VIDEO_DISCOVERY", +"AD_GROUP_FORMAT_BUMPER", +"AD_GROUP_FORMAT_NON_SKIPPABLE_IN_STREAM", +"AD_GROUP_FORMAT_AUDIO", +"AD_GROUP_FORMAT_RESPONSIVE", +"AD_GROUP_FORMAT_REACH", +"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.", +"[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" +}, +"bidStrategy": { +"$ref": "BiddingStrategy", +"description": "The bidding strategy used by the ad group. Only the youtubeAndPartnersBid field can be used in the bidding strategy." +}, +"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 [optimized targeting](//support.google.com/displayvideo/answer/12060859) settings of the ad group." +} +}, +"type": "object" +}, +"AdGroupAd": { +"description": "A single ad associated with an ad group.", +"id": "AdGroupAd", +"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" +}, +"AdGroupAssignedTargetingOption": { +"description": "Wrapper object associating an AssignedTargetingOption resource and the ad group it is assigned to.", +"id": "AdGroupAssignedTargetingOption", +"properties": { +"adGroupId": { +"description": "The ID of the ad group the assigned targeting option is assigned to.", +"format": "int64", +"type": "string" +}, +"assignedTargetingOption": { +"$ref": "AssignedTargetingOption", +"description": "The assigned targeting option resource." +} +}, +"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": { +"adultExplicitSexualContent": { +"description": "Optional. Adult and Explicit Sexual Content [GARM](https://wfanet.org/leadership/garm/about-garm) risk ranges to exclude.", +"enum": [ +"GARM_RISK_EXCLUSION_UNSPECIFIED", +"GARM_RISK_EXCLUSION_FLOOR", +"GARM_RISK_EXCLUSION_HIGH", +"GARM_RISK_EXCLUSION_MEDIUM", +"GARM_RISK_EXCLUSION_LOW" +], +"enumDescriptions": [ +"This enum is only a placeholder and it doesn't specify any GARM risk exclusion option.", +"Exclude floor risk.", +"Exclude high and floor risk.", +"Exclude medium, high, and floor risk.", +"Exclude all levels of risk (low, medium, high and floor)." +], +"type": "string" +}, +"armsAmmunitionContent": { +"description": "Optional. Arms and Ammunition Content [GARM](https://wfanet.org/leadership/garm/about-garm) risk ranges to exclude.", +"enum": [ +"GARM_RISK_EXCLUSION_UNSPECIFIED", +"GARM_RISK_EXCLUSION_FLOOR", +"GARM_RISK_EXCLUSION_HIGH", +"GARM_RISK_EXCLUSION_MEDIUM", +"GARM_RISK_EXCLUSION_LOW" +], +"enumDescriptions": [ +"This enum is only a placeholder and it doesn't specify any GARM risk exclusion option.", +"Exclude floor risk.", +"Exclude high and floor risk.", +"Exclude medium, high, and floor risk.", +"Exclude all levels of risk (low, medium, high and floor)." +], +"type": "string" +}, +"crimeHarmfulActsIndividualsSocietyHumanRightsViolationsContent": { +"description": "Optional. Crime and Harmful Acts Content [GARM](https://wfanet.org/leadership/garm/about-garm) risk ranges to exclude.", +"enum": [ +"GARM_RISK_EXCLUSION_UNSPECIFIED", +"GARM_RISK_EXCLUSION_FLOOR", +"GARM_RISK_EXCLUSION_HIGH", +"GARM_RISK_EXCLUSION_MEDIUM", +"GARM_RISK_EXCLUSION_LOW" +], +"enumDescriptions": [ +"This enum is only a placeholder and it doesn't specify any GARM risk exclusion option.", +"Exclude floor risk.", +"Exclude high and floor risk.", +"Exclude medium, high, and floor risk.", +"Exclude all levels of risk (low, medium, high and floor)." +], +"type": "string" +}, +"deathInjuryMilitaryConflictContent": { +"description": "Optional. Death, Injury, or Military Conflict Content [GARM](https://wfanet.org/leadership/garm/about-garm) risk ranges to exclude.", +"enum": [ +"GARM_RISK_EXCLUSION_UNSPECIFIED", +"GARM_RISK_EXCLUSION_FLOOR", +"GARM_RISK_EXCLUSION_HIGH", +"GARM_RISK_EXCLUSION_MEDIUM", +"GARM_RISK_EXCLUSION_LOW" +], +"enumDescriptions": [ +"This enum is only a placeholder and it doesn't specify any GARM risk exclusion option.", +"Exclude floor risk.", +"Exclude high and floor risk.", +"Exclude medium, high, and floor risk.", +"Exclude all levels of risk (low, medium, high and floor)." +], +"type": "string" +}, +"debatedSensitiveSocialIssueContent": { +"description": "Optional. Debated Sensitive Social Issue Content [GARM](https://wfanet.org/leadership/garm/about-garm) risk ranges to exclude.", +"enum": [ +"GARM_RISK_EXCLUSION_UNSPECIFIED", +"GARM_RISK_EXCLUSION_FLOOR", +"GARM_RISK_EXCLUSION_HIGH", +"GARM_RISK_EXCLUSION_MEDIUM", +"GARM_RISK_EXCLUSION_LOW" +], +"enumDescriptions": [ +"This enum is only a placeholder and it doesn't specify any GARM risk exclusion option.", +"Exclude floor risk.", +"Exclude high and floor risk.", +"Exclude medium, high, and floor risk.", +"Exclude all levels of risk (low, medium, high and floor)." +], +"type": "string" +}, +"displayIabViewability": { +"description": "Optional. IAB viewability threshold for display ads.", +"enum": [ +"DISPLAY_IAB_VIEWABILITY_UNSPECIFIED", +"DISPLAY_IAB_VIEWABILITY_10", +"DISPLAY_IAB_VIEWABILITY_20", +"DISPLAY_IAB_VIEWABILITY_35", +"DISPLAY_IAB_VIEWABILITY_50", +"DISPLAY_IAB_VIEWABILITY_75" +], +"enumDescriptions": [ +"Default value when not specified or is unknown in this version.", +"10%+ in view (IAB display viewability standard).", +"20%+ in view (IAB display viewability standard).", +"35%+ in view (IAB display viewability standard).", +"50%+ in view (IAB display viewability standard).", +"75%+ in view (IAB display viewability standard)." +], +"type": "string" +}, +"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" +}, +"excludedFraudIvtMfaCategories": { +"description": "Optional. Adloox's fraud IVT MFA categories to exclude.", +"items": { +"enum": [ +"FRAUD_IVT_MFA_CATEGORY_UNSPECIFIED", +"FRAUD_IVT_MFA" +], +"enumDescriptions": [ +"Default value when a Adloox Fraud, IVT, MFA category is not specified or is unknown in this version.", +"FRAUD, IVT, MFA." +], +"type": "string" +}, +"type": "array" +}, +"hateSpeechActsAggressionContent": { +"description": "Optional. Hate Speech and Acts of Aggression Content [GARM](https://wfanet.org/leadership/garm/about-garm) risk ranges to exclude.", +"enum": [ +"GARM_RISK_EXCLUSION_UNSPECIFIED", +"GARM_RISK_EXCLUSION_FLOOR", +"GARM_RISK_EXCLUSION_HIGH", +"GARM_RISK_EXCLUSION_MEDIUM", +"GARM_RISK_EXCLUSION_LOW" +], +"enumDescriptions": [ +"This enum is only a placeholder and it doesn't specify any GARM risk exclusion option.", +"Exclude floor risk.", +"Exclude high and floor risk.", +"Exclude medium, high, and floor risk.", +"Exclude all levels of risk (low, medium, high and floor)." +], +"type": "string" +}, +"illegalDrugsTobaccoEcigarettesVapingAlcoholContent": { +"description": "Optional. Illegal Drugs/Alcohol Content [GARM](https://wfanet.org/leadership/garm/about-garm) risk ranges to exclude.", +"enum": [ +"GARM_RISK_EXCLUSION_UNSPECIFIED", +"GARM_RISK_EXCLUSION_FLOOR", +"GARM_RISK_EXCLUSION_HIGH", +"GARM_RISK_EXCLUSION_MEDIUM", +"GARM_RISK_EXCLUSION_LOW" +], +"enumDescriptions": [ +"This enum is only a placeholder and it doesn't specify any GARM risk exclusion option.", +"Exclude floor risk.", +"Exclude high and floor risk.", +"Exclude medium, high, and floor risk.", +"Exclude all levels of risk (low, medium, high and floor)." +], +"type": "string" +}, +"misinformationContent": { +"description": "Optional. Misinformation Content [GARM](https://wfanet.org/leadership/garm/about-garm) risk ranges to exclude.", +"enum": [ +"GARM_RISK_EXCLUSION_UNSPECIFIED", +"GARM_RISK_EXCLUSION_FLOOR", +"GARM_RISK_EXCLUSION_HIGH", +"GARM_RISK_EXCLUSION_MEDIUM", +"GARM_RISK_EXCLUSION_LOW" +], +"enumDescriptions": [ +"This enum is only a placeholder and it doesn't specify any GARM risk exclusion option.", +"Exclude floor risk.", +"Exclude high and floor risk.", +"Exclude medium, high, and floor risk.", +"Exclude all levels of risk (low, medium, high and floor)." +], +"type": "string" +}, +"obscenityProfanityContent": { +"description": "Optional. Obscenity and Profanity Content [GARM](https://wfanet.org/leadership/garm/about-garm) risk ranges to exclude.", +"enum": [ +"GARM_RISK_EXCLUSION_UNSPECIFIED", +"GARM_RISK_EXCLUSION_FLOOR", +"GARM_RISK_EXCLUSION_HIGH", +"GARM_RISK_EXCLUSION_MEDIUM", +"GARM_RISK_EXCLUSION_LOW" +], +"enumDescriptions": [ +"This enum is only a placeholder and it doesn't specify any GARM risk exclusion option.", +"Exclude floor risk.", +"Exclude high and floor risk.", +"Exclude medium, high, and floor risk.", +"Exclude all levels of risk (low, medium, high and floor)." +], +"type": "string" +}, +"onlinePiracyContent": { +"description": "Optional. Online Piracy Content [GARM](https://wfanet.org/leadership/garm/about-garm) risk ranges to exclude.", +"enum": [ +"GARM_RISK_EXCLUSION_UNSPECIFIED", +"GARM_RISK_EXCLUSION_FLOOR", +"GARM_RISK_EXCLUSION_HIGH", +"GARM_RISK_EXCLUSION_MEDIUM", +"GARM_RISK_EXCLUSION_LOW" +], +"enumDescriptions": [ +"This enum is only a placeholder and it doesn't specify any GARM risk exclusion option.", +"Exclude floor risk.", +"Exclude high and floor risk.", +"Exclude medium, high, and floor risk.", +"Exclude all levels of risk (low, medium, high and floor)." +], +"type": "string" +}, +"spamHarmfulContent": { +"description": "Optional. Spam or Harmful Content [GARM](https://wfanet.org/leadership/garm/about-garm) risk ranges to exclude.", +"enum": [ +"GARM_RISK_EXCLUSION_UNSPECIFIED", +"GARM_RISK_EXCLUSION_FLOOR", +"GARM_RISK_EXCLUSION_HIGH", +"GARM_RISK_EXCLUSION_MEDIUM", +"GARM_RISK_EXCLUSION_LOW" +], +"enumDescriptions": [ +"This enum is only a placeholder and it doesn't specify any GARM risk exclusion option.", +"Exclude floor risk.", +"Exclude high and floor risk.", +"Exclude medium, high, and floor risk.", +"Exclude all levels of risk (low, medium, high and floor)." +], +"type": "string" +}, +"terrorismContent": { +"description": "Optional. Terrorism Content [GARM](https://wfanet.org/leadership/garm/about-garm) risk ranges to exclude.", +"enum": [ +"GARM_RISK_EXCLUSION_UNSPECIFIED", +"GARM_RISK_EXCLUSION_FLOOR", +"GARM_RISK_EXCLUSION_HIGH", +"GARM_RISK_EXCLUSION_MEDIUM", +"GARM_RISK_EXCLUSION_LOW" +], +"enumDescriptions": [ +"This enum is only a placeholder and it doesn't specify any GARM risk exclusion option.", +"Exclude floor risk.", +"Exclude high and floor risk.", +"Exclude medium, high, and floor risk.", +"Exclude all levels of risk (low, medium, high and floor)." +], +"type": "string" +}, +"videoIabViewability": { +"description": "Optional. IAB viewability threshold for video ads.", +"enum": [ +"VIDEO_IAB_VIEWABILITY_UNSPECIFIED", +"VIDEO_IAB_VIEWABILITY_10", +"VIDEO_IAB_VIEWABILITY_20", +"VIDEO_IAB_VIEWABILITY_35", +"VIDEO_IAB_VIEWABILITY_50", +"VIDEO_IAB_VIEWABILITY_75" +], +"enumDescriptions": [ +"Default value when not specified or is unknown in this version.", +"10%+ in view (IAB video viewability standard).", +"20%+ in view (IAB video viewability standard).", +"35%+ in view (IAB video viewability standard).", +"50%+ in view (IAB video viewability standard).", +"75%+ in view (IAB video viewability standard)." +], +"type": "string" +} +}, +"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" +}, +"AlgorithmRules": { +"description": "Rule-based algorithm.", +"id": "AlgorithmRules", +"properties": { +"impressionSignalRuleset": { +"$ref": "AlgorithmRulesRuleset", +"description": "Rules for the impression signals." +} +}, +"type": "object" +}, +"AlgorithmRulesComparisonValue": { +"description": "A value to compare the signal to.", +"id": "AlgorithmRulesComparisonValue", +"properties": { +"boolValue": { +"description": "Boolean value.", +"type": "boolean" +}, +"creativeDimensionValue": { +"$ref": "Dimensions", +"description": "Creative dimension value." +}, +"dayAndTimeValue": { +"$ref": "DayAndTime", +"description": "Day and time value. Only `TIME_ZONE_RESOLUTION_END_USER` is supported." +}, +"deviceTypeValue": { +"description": "Device type value.", +"enum": [ +"RULE_DEVICE_TYPE_UNSPECIFIED", +"RULE_DEVICE_TYPE_COMPUTER", +"RULE_DEVICE_TYPE_CONNECTED_TV", +"RULE_DEVICE_TYPE_SMART_PHONE", +"RULE_DEVICE_TYPE_TABLET", +"RULE_DEVICE_TYPE_CONNECTED_DEVICE", +"RULE_DEVICE_TYPE_SET_TOP_BOX" +], +"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.", +"Set top box." +], +"type": "string" +}, +"doubleValue": { +"description": "Double value.", +"format": "double", +"type": "number" +}, +"environmentValue": { +"description": "Environment value.", +"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" +}, +"exchangeValue": { +"description": "Exchange value.", +"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" +}, +"int64Value": { +"description": "Integer value.", +"format": "int64", +"type": "string" +}, +"onScreenPositionValue": { +"description": "Ad position value.", +"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." +], +"type": "string" +}, +"stringValue": { +"description": "String value.", +"type": "string" +} +}, +"type": "object" +}, +"AlgorithmRulesRule": { +"description": "Set of conditions. The return value of the rule is either: * The return value for single met condition or * The defined default return value if no conditions are met.", +"id": "AlgorithmRulesRule", +"properties": { +"conditions": { +"description": "List of conditions in this rule. The criteria among conditions should be mutually exclusive.", +"items": { +"$ref": "AlgorithmRulesRuleCondition" +}, +"type": "array" +}, +"defaultReturnValue": { +"$ref": "AlgorithmRulesSignalValue", +"description": "The default return value applied when none of the conditions are met." +} +}, +"type": "object" +}, +"AlgorithmRulesRuleCondition": { +"description": "Set of signal comparisons. Equivalent of an `if` statement.", +"id": "AlgorithmRulesRuleCondition", +"properties": { +"returnValue": { +"$ref": "AlgorithmRulesSignalValue", +"description": "The value returned if the `signalComparisons` condition evaluates to `TRUE`." +}, +"signalComparisons": { +"description": "List of comparisons that build `if` statement condition. The comparisons are combined into a single condition with `AND` logical operators.", +"items": { +"$ref": "AlgorithmRulesSignalComparison" +}, +"type": "array" +} +}, +"type": "object" +}, +"AlgorithmRulesRuleset": { +"description": "A ruleset consisting of a list of rules and how to aggregate the resulting values.", +"id": "AlgorithmRulesRuleset", +"properties": { +"aggregationType": { +"description": "How to aggregate values of evaluated rules.", +"enum": [ +"RULE_AGGREGATION_TYPE_UNSPECIFIED", +"SUM_OF_VALUES", +"PRODUCT_OF_VALUES", +"MAXIMUM_VALUE" +], +"enumDescriptions": [ +"Unknown aggregation type.", +"The sum of rule values.", +"The product of rule values.", +"The maximum rule value." +], +"type": "string" +}, +"maxValue": { +"description": "Maximum value the ruleset can evaluate to.", +"format": "double", +"type": "number" +}, +"rules": { +"description": "List of rules to generate the impression value.", +"items": { +"$ref": "AlgorithmRulesRule" +}, +"type": "array" +} +}, +"type": "object" +}, +"AlgorithmRulesSignal": { +"description": "Signal used to evaluate rules.", +"id": "AlgorithmRulesSignal", +"properties": { +"impressionSignal": { +"description": "Signal based on impressions.", +"enum": [ +"IMPRESSION_SIGNAL_UNSPECIFIED", +"DAY_AND_TIME", +"DEVICE_TYPE", +"AD_POSITION", +"OPERATING_SYSTEM_ID", +"MOBILE_MODEL_ID", +"EXCHANGE", +"ENVIRONMENT", +"COUNTRY_ID", +"CITY_ID", +"BROWSER_ID", +"CREATIVE_DIMENSION" +], +"enumDescriptions": [ +"Unknown signal.", +"The day of the week and hour of day the impression was made using browser's local time zone. Value is stored in the dayAndTimeValue field of the comparison value.", +"Device type. Value is stored in the deviceTypeValue field of the comparison value.", +"Ad position. Value is stored in the onScreenPositionValue field of the comparison value.", +"The operating system identifier. Value is stored in the int64Value field of the comparison value.", +"The mobile model identifier. Value is stored in the int64Value field of the comparison value.", +"Exchange. Value is stored in the exchangeValue field of the comparison value.", +"Serving environment. Value is stored in the environmentValue field of the comparison value.", +"The country or region identifier. Value is stored in the int64Value field of the comparison value.", +"The city identifier. Value is stored in the int64Value field of the comparison value.", +"The browser identifier. Value is stored in the int64Value field of the comparison value.", +"Creative height and width in pixels. Value is stored in the creativeDimensionValue field of the comparison value." +], +"type": "string" +} +}, +"type": "object" +}, +"AlgorithmRulesSignalComparison": { +"description": "A single comparison. The comparison compares the `signal` to the `comparisonValue`. The comparison of `siteId==123` is represented with the following field values: * `signal` has an `impressionSignal` of `SITE_ID`. * `comparisonOperator` is set to `EQUAL`. * `comparisonValue` is set to 123.", +"id": "AlgorithmRulesSignalComparison", +"properties": { +"comparisonOperator": { +"description": "Operator used to compare the two values. In the resulting experession, the `signal` will be the first value and the `comparisonValue will be the second.", +"enum": [ +"COMPARISON_OPERATOR_UNSPECIFIED", +"EQUAL", +"GREATER_THAN", +"LESS_THAN", +"GREATER_THAN_OR_EQUAL_TO", +"LESS_THAN_OR_EQUAL_TO" +], +"enumDescriptions": [ +"Unknown operator.", +"Values are equal.", +"Signal value is greater than the comparison value.", +"Signal value is less than the second.", +"Signal value is greater than or equal to the second.", +"Signal value is less or equals to the comparison value." +], +"type": "string" +}, +"comparisonValue": { +"$ref": "AlgorithmRulesComparisonValue", +"description": "Value to compare signal to." +}, +"signal": { +"$ref": "AlgorithmRulesSignal", +"description": "Signal to compare." +} +}, +"type": "object" +}, +"AlgorithmRulesSignalValue": { +"description": "Adjusted value of the signal used for rule evaluation.", +"id": "AlgorithmRulesSignalValue", +"properties": { +"number": { +"description": "Value to use as result.", +"format": "double", +"type": "number" +} +}, +"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." +}, +"youtubeAndPartnersBid": { +"$ref": "YoutubeAndPartnersBiddingStrategy", +"description": "A bid strategy used by YouTube and Partners resources. It can only be used for a YouTube and Partners line item or ad group 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": { +"adGroupAssignedTargetingOptions": { +"description": "The list of wrapper objects, each providing an assigned targeting option and the ad group it is assigned to. This list will be absent if empty.", +"items": { +"$ref": "AdGroupAssignedTargetingOption" +}, +"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 `BulkListAdGroupAssignedTargetingOptions` to fetch the next page of results. This token will be absent if there are no more AdGroupAssignedTargetingOption resources to return.", +"type": "string" +} +}, +"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", +"RULE_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.", +"Algorithm based in defined rules. These rules are defined in the API using the AlgorithmRules object. This algorithm type is only available to allowlisted customers. Other customers attempting to use this type will receive an error." +], +"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" +}, +"CustomBiddingAlgorithmRules": { +"description": "A single custom bidding algorithm rules.", +"id": "CustomBiddingAlgorithmRules", +"properties": { +"active": { +"description": "Output only. Whether the rules resource is currently being used for scoring by the parent algorithm.", +"readOnly": true, +"type": "boolean" +}, +"createTime": { +"description": "Output only. The time when the rules resource was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"customBiddingAlgorithmId": { +"description": "Output only. The unique ID of the custom bidding algorithm that the rules resource belongs to.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"customBiddingAlgorithmRulesId": { +"description": "Output only. The unique ID of the rules resource.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"error": { +"$ref": "CustomBiddingAlgorithmRulesError", +"description": "Output only. Error code of the rejected rules resource. This field will only be populated when the state is `REJECTED`.", +"readOnly": true +}, +"name": { +"description": "Output only. The resource name of the rules resource.", +"readOnly": true, +"type": "string" +}, +"rules": { +"$ref": "CustomBiddingAlgorithmRulesRef", +"description": "Required. Immutable. The reference to the uploaded AlgorithmRules file." +}, +"state": { +"description": "Output only. The state of the rules resource.", +"enum": [ +"STATE_UNSPECIFIED", +"ACCEPTED", +"REJECTED" +], +"enumDescriptions": [ +"The rules state are unspecified or unknown in this version.", +"The rules have been accepted for scoring impressions.", +"The rules have been rejected by backend pipelines. They may have errors." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"CustomBiddingAlgorithmRulesError": { +"description": "An error message for a CustomBiddingAlgorithmRules resource.", +"id": "CustomBiddingAlgorithmRulesError", +"properties": { +"errorCode": { +"description": "The type of error.", +"enum": [ +"ERROR_CODE_UNSPECIFIED", +"SYNTAX_ERROR", +"CONSTRAINT_VIOLATION_ERROR", +"INTERNAL_ERROR" +], +"enumDescriptions": [ +"The error is not specified or is unknown in this version.", +"The rules have a syntax error.", +"The rules have a constraint violation error.", +"Internal errors were thrown while processing the rules." +], +"type": "string" +} +}, +"type": "object" +}, +"CustomBiddingAlgorithmRulesRef": { +"description": "The reference to the uploaded AlgorithmRules file. Retrieve the location to upload new AlgorithmRules file to using customBiddingAlgorithms.uploadRules.", +"id": "CustomBiddingAlgorithmRulesRef", +"properties": { +"resourceName": { +"description": "A resource name to be used in media.download to download the rules files. Or media.upload to upload the rules files. Resource names have the format `customBiddingAlgorithms/{custom_bidding_algorithm_id}/rulesRef/{ref_id}`.", +"type": "string" +} +}, +"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", +"READINESS_STATE_EVALUATION_FAILURE" +], +"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`.", +"A valid script was provided but failed evaluation. This is applicable for scripts that could not be evaluated in the alloted time." +], +"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" +}, +"DayAndTime": { +"description": "Representation of time defined by day of the week and hour of the day.", +"id": "DayAndTime", +"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" +}, +"hourOfDay": { +"description": "Required. Hour of the day.", +"format": "int32", +"type": "integer" +}, +"timeZoneResolution": { +"description": "Required. The mechanism used to determine the relevant timezone.", +"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" +}, +"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" +}, +"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" +}, +"adGroupQaIds": { +"description": "Optional. YouTube Ad Groups, by ID, to download in QA format. 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" +}, +"lineItemQaIds": { +"description": "Optional. Line Items, by ID, to download in QA format. 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." +}, +"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." +}, +"kpi": { +"$ref": "Kpi", +"description": "Required. The key performance indicator (KPI) of the insertion order. This is represented as referred to as the \"Goal\" in the Display & Video 360 interface." +}, +"name": { +"description": "Output only. The resource name of the insertion order.", +"readOnly": true, +"type": "string" +}, +"optimizationObjective": { +"description": "Optional. The optimization objective of the insertion order. **This field is only available to allowlisted customers.** If a customer is not allowlisted, this field will be null and attempts to set it will return an error.", +"enum": [ +"OPTIMIZATION_OBJECTIVE_UNSPECIFIED", +"CONVERSION", +"CLICK", +"BRAND_AWARENESS", +"CUSTOM", +"NO_OBJECTIVE" +], +"enumDescriptions": [ +"Type value is not specified or is unknown in this version.", +"Prioritize impressions that increase sales and conversions.", +"Prioritize impressions that increase website traffic, apps, app stores.", +"Prioritize impressions of specific quality.", +"Objective is defined by the assigned custom bidding algorithm.", +"Objective is not defined. Any KPI or bidding strategy can be used." +], +"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" +}, +"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" +}, +"Kpi": { +"description": "Settings that control the key performance indicator, or KPI, of an insertion order.", +"id": "Kpi", +"properties": { +"kpiAlgorithmId": { +"description": "Optional. Custom Bidding Algorithm ID associated with KPI_CUSTOM_IMPRESSION_VALUE_OVER_COST. This field is ignored if the proper KPI is not selected.", +"format": "int64", +"type": "string" +}, +"kpiAmountMicros": { +"description": "The goal amount, in micros of the advertiser's currency. Applicable when kpi_type is one of: * `KPI_TYPE_CPM` * `KPI_TYPE_CPC` * `KPI_TYPE_CPA` * `KPI_TYPE_CPIAVC` * `KPI_TYPE_VCPM` For example: 1500000 represents 1.5 standard units of the currency.", +"format": "int64", +"type": "string" +}, +"kpiPercentageMicros": { +"description": "The decimal representation of the goal percentage in micros. Applicable when kpi_type is one of: * `KPI_TYPE_CTR` * `KPI_TYPE_VIEWABILITY` * `KPI_TYPE_CLICK_CVR` * `KPI_TYPE_IMPRESSION_CVR` * `KPI_TYPE_VTR` * `KPI_TYPE_AUDIO_COMPLETION_RATE` * `KPI_TYPE_VIDEO_COMPLETION_RATE` For example: 70000 represents 7% (decimal 0.07).", +"format": "int64", +"type": "string" +}, +"kpiString": { +"description": "A KPI string, which can be empty. Must be UTF-8 encoded with a length of no more than 100 characters. Applicable when kpi_type is `KPI_TYPE_OTHER`.", +"type": "string" +}, +"kpiType": { +"description": "Required. The type of KPI.", +"enum": [ +"KPI_TYPE_UNSPECIFIED", +"KPI_TYPE_CPM", +"KPI_TYPE_CPC", +"KPI_TYPE_CPA", +"KPI_TYPE_CTR", +"KPI_TYPE_VIEWABILITY", +"KPI_TYPE_CPIAVC", +"KPI_TYPE_CPE", +"KPI_TYPE_CPV", +"KPI_TYPE_CLICK_CVR", +"KPI_TYPE_IMPRESSION_CVR", +"KPI_TYPE_VCPM", +"KPI_TYPE_VTR", +"KPI_TYPE_AUDIO_COMPLETION_RATE", +"KPI_TYPE_VIDEO_COMPLETION_RATE", +"KPI_TYPE_CPCL", +"KPI_TYPE_CPCV", +"KPI_TYPE_TOS10", +"KPI_TYPE_MAXIMIZE_PACING", +"KPI_TYPE_CUSTOM_IMPRESSION_VALUE_OVER_COST", +"KPI_TYPE_OTHER" +], +"enumDescriptions": [ +"KPI type is not specified or is unknown in this version.", +"The KPI is CPM (cost per mille).", +"The KPI is CPC (cost per click).", +"The KPI is CPA (cost per action).", +"The KPI is CTR (click-through rate) percentage.", +"The KPI is Viewability percentage.", +"The KPI is CPIAVC (cost per impression audible and visible at completion).", +"The KPI is CPE (cost per engagement).", +"The KPI is set in CPV (cost per view).", +"The KPI is click conversion rate (conversions per click) percentage.", +"The KPI is impression conversion rate (conversions per impression) percentage.", +"The KPI is VCPM (cost per thousand viewable impressions).", +"The KPI is YouTube view rate (YouTube views per impression) percentage.", +"The KPI is audio completion rate (complete audio listens per impression) percentage.", +"The KPI is video completion rate (complete video views per impression) percentage.", +"The KPI is set in CPCL (cost per complete audio listen).", +"The KPI is set in CPCV (cost per complete video view).", +"The KPI is set in rate of time on screen 10+ seconds (Percentage of measurable, non-skippable impressions that were on the screen for at least 10 seconds).", +"The KPI is set to maximize brand impact while prioritizing spending the full budget.", +"The KPI is set in custom impression value divided by cost.", +"The KPI is some other value." +], +"type": "string" +} +}, +"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" +], +"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." +], +"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" +}, +"ListAdGroupAdsResponse": { +"id": "ListAdGroupAdsResponse", +"properties": { +"adGroupAds": { +"description": "The list of ad group ads. This list will be absent if empty.", +"items": { +"$ref": "AdGroupAd" +}, +"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 `ListAdGroupAds` method to retrieve the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListAdGroupAssignedTargetingOptionsResponse": { +"description": "Response message for ListAdGroupAssignedTargetingOptions.", +"id": "ListAdGroupAssignedTargetingOptionsResponse", +"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 ListAdGroupAssignedTargetingOptionsRequest to fetch the next page of results. This token will be absent if there are no more AssignedTargetingOption resources to return.", +"type": "string" +} +}, +"type": "object" +}, +"ListAdGroupsResponse": { +"id": "ListAdGroupsResponse", +"properties": { +"adGroups": { +"description": "The list of ad groups. This list will be absent if empty.", +"items": { +"$ref": "AdGroup" +}, +"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 `ListAdGroups` method to retrieve the next page of results.", +"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" +}, +"ListCustomBiddingAlgorithmRulesResponse": { +"id": "ListCustomBiddingAlgorithmRulesResponse", +"properties": { +"customBiddingRules": { +"description": "The list of CustomBiddingAlgorithmRules resources. This list will be absent if empty.", +"items": { +"$ref": "CustomBiddingAlgorithmRules" +}, +"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 `ListCustomBiddingAlgorithmRulesRequest` 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" +}, +"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" +}, +"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" +}, +"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", +"FILE_TYPE_LINE_ITEM_QA", +"FILE_TYPE_AD_GROUP_QA" +], +"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.", +"Line Item - QA format.", +"YouTube Ad Group - QA format." +], +"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." +}, +"billingConfig": { +"$ref": "PartnerBillingConfig", +"description": "Billing 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" +}, +"PartnerBillingConfig": { +"description": "Billing related settings of a partner.", +"id": "PartnerBillingConfig", +"properties": { +"billingProfileId": { +"description": "The ID of a partner default billing profile.", +"format": "int64", +"type": "string" +} +}, +"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": { +"audienceExpansionLevel": { +"description": "Output only. Magnitude of expansion for eligible first-party user lists under this ad group. This field only applies to YouTube and Partners line item and ad group resources.", +"enum": [ +"UNKNOWN", +"NO_REACH", +"LEAST_REACH", +"MID_REACH", +"MOST_REACH" +], +"enumDescriptions": [ +"Audience expansion level is not specified or is unknown in this version.", +"Audience expansion off.", +"Conservative audience expansion.", +"Moderate audience expansion.", +"Aggressive audience expansion." +], +"readOnly": true, +"type": "string" +}, +"audienceExpansionSeedListExcluded": { +"description": "Output only. Whether to exclude seed list for audience expansion. This field only applies to YouTube and Partners line item and ad group resources.", +"readOnly": true, +"type": "boolean" +}, +"enableOptimizedTargeting": { +"description": "Required. Whether to enable Optimized Targeting for the line item. Optimized targeting is not compatible with all bid strategies. Attempting to set this field to `true` for a line item using one of the following combinations of BiddingStrategy fields and BiddingStrategyPerformanceGoalType will result in an error: maximize_auto_spend_bid: * `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CIVA` * `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_IVO_TEN` * `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_AV_VIEWED` performance_goal_auto_bid: * `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_VIEWABLE_CPM`", +"type": "boolean" +} +}, +"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" +}, +"ThirdPartyMeasurementConfigs": { +"description": "Settings that control what third-party vendors are measuring specific line item metrics.", +"id": "ThirdPartyMeasurementConfigs", +"properties": { +"brandLiftVendorConfigs": { +"description": "Optional. 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": "Optional. 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": "Optional. 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": "Optional. 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" +}, +"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" +}, +"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" +}, +"includeYoutube": { +"description": "Optional. Whether to target inventory on YouTube. This includes both search, channels and videos.", +"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" +} +}, +"type": "object" +}, +"YoutubeAndPartnersSettings": { +"description": "Settings for YouTube and Partners line items.", +"id": "YoutubeAndPartnersSettings", +"properties": { +"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." +}, +"thirdPartyMeasurementConfigs": { +"$ref": "ThirdPartyMeasurementConfigs", +"description": "Optional. The third-party measurement configs 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" +}, +"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": "v3", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/dns.v1beta2.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/dns.v1beta2.json new file mode 100644 index 0000000000000000000000000000000000000000..61c9e6ca5952c4ad8387726edf9e53aea5624f04 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/dns.v1beta2.json @@ -0,0 +1,3540 @@ +{ +"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:v1beta2", +"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/v1beta2/projects/{project}/managedZones/{managedZone}/changes", +"httpMethod": "POST", +"id": "dns.changes.create", +"parameterOrder": [ +"project", +"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" +}, +"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/v1beta2/projects/{project}/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/v1beta2/projects/{project}/managedZones/{managedZone}/changes/{changeId}", +"httpMethod": "GET", +"id": "dns.changes.get", +"parameterOrder": [ +"project", +"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" +}, +"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/v1beta2/projects/{project}/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/v1beta2/projects/{project}/managedZones/{managedZone}/changes", +"httpMethod": "GET", +"id": "dns.changes.list", +"parameterOrder": [ +"project", +"managedZone" +], +"parameters": { +"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": "changeSequence", +"description": "Sorting criterion. The only supported value is change sequence.", +"enum": [ +"changeSequence" +], +"enumDescriptions": [ +"" +], +"location": "query", +"type": "string" +}, +"sortOrder": { +"description": "Sorting order direction: 'ascending' or 'descending'.", +"location": "query", +"type": "string" +} +}, +"path": "dns/v1beta2/projects/{project}/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/v1beta2/projects/{project}/managedZones/{managedZone}/dnsKeys/{dnsKeyId}", +"httpMethod": "GET", +"id": "dns.dnsKeys.get", +"parameterOrder": [ +"project", +"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" +}, +"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/v1beta2/projects/{project}/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/v1beta2/projects/{project}/managedZones/{managedZone}/dnsKeys", +"httpMethod": "GET", +"id": "dns.dnsKeys.list", +"parameterOrder": [ +"project", +"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" +}, +"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/v1beta2/projects/{project}/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/v1beta2/projects/{project}/managedZones/{managedZone}/operations/{operation}", +"httpMethod": "GET", +"id": "dns.managedZoneOperations.get", +"parameterOrder": [ +"project", +"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" +}, +"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/v1beta2/projects/{project}/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/v1beta2/projects/{project}/managedZones/{managedZone}/operations", +"httpMethod": "GET", +"id": "dns.managedZoneOperations.list", +"parameterOrder": [ +"project", +"managedZone" +], +"parameters": { +"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": "startTime", +"description": "Sorting criterion. The only supported values are START_TIME and ID.", +"enum": [ +"startTime", +"id" +], +"enumDescriptions": [ +"", +"" +], +"location": "query", +"type": "string" +} +}, +"path": "dns/v1beta2/projects/{project}/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/v1beta2/projects/{project}/managedZones", +"httpMethod": "POST", +"id": "dns.managedZones.create", +"parameterOrder": [ +"project" +], +"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" +}, +"project": { +"description": "Identifies the project addressed by this request.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "dns/v1beta2/projects/{project}/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/v1beta2/projects/{project}/managedZones/{managedZone}", +"httpMethod": "DELETE", +"id": "dns.managedZones.delete", +"parameterOrder": [ +"project", +"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" +}, +"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/v1beta2/projects/{project}/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/v1beta2/projects/{project}/managedZones/{managedZone}", +"httpMethod": "GET", +"id": "dns.managedZones.get", +"parameterOrder": [ +"project", +"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" +}, +"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/v1beta2/projects/{project}/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" +] +}, +"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": "dns/v1beta2/projects/{projectsId}/managedZones/{managedZonesId}:getIamPolicy", +"httpMethod": "POST", +"id": "dns.managedZones.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/[^/]+/managedZones/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "dns/v1beta2/{+resource}:getIamPolicy", +"request": { +"$ref": "GoogleIamV1GetIamPolicyRequest" +}, +"response": { +"$ref": "GoogleIamV1Policy" +}, +"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/v1beta2/projects/{project}/managedZones", +"httpMethod": "GET", +"id": "dns.managedZones.list", +"parameterOrder": [ +"project" +], +"parameters": { +"dnsName": { +"description": "Restricts the list to return only zones with this domain name.", +"location": "query", +"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/v1beta2/projects/{project}/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/v1beta2/projects/{project}/managedZones/{managedZone}", +"httpMethod": "PATCH", +"id": "dns.managedZones.patch", +"parameterOrder": [ +"project", +"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" +}, +"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/v1beta2/projects/{project}/managedZones/{managedZone}", +"request": { +"$ref": "ManagedZone" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/ndev.clouddns.readwrite" +] +}, +"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": "dns/v1beta2/projects/{projectsId}/managedZones/{managedZonesId}:setIamPolicy", +"httpMethod": "POST", +"id": "dns.managedZones.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/[^/]+/managedZones/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "dns/v1beta2/{+resource}:setIamPolicy", +"request": { +"$ref": "GoogleIamV1SetIamPolicyRequest" +}, +"response": { +"$ref": "GoogleIamV1Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/ndev.clouddns.readwrite" +] +}, +"testIamPermissions": { +"description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this 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": "dns/v1beta2/projects/{projectsId}/managedZones/{managedZonesId}:testIamPermissions", +"httpMethod": "POST", +"id": "dns.managedZones.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/[^/]+/managedZones/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "dns/v1beta2/{+resource}:testIamPermissions", +"request": { +"$ref": "GoogleIamV1TestIamPermissionsRequest" +}, +"response": { +"$ref": "GoogleIamV1TestIamPermissionsResponse" +}, +"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" +] +}, +"update": { +"description": "Updates an existing ManagedZone.", +"flatPath": "dns/v1beta2/projects/{project}/managedZones/{managedZone}", +"httpMethod": "PUT", +"id": "dns.managedZones.update", +"parameterOrder": [ +"project", +"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" +}, +"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/v1beta2/projects/{project}/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/v1beta2/projects/{project}/policies", +"httpMethod": "POST", +"id": "dns.policies.create", +"parameterOrder": [ +"project" +], +"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" +}, +"project": { +"description": "Identifies the project addressed by this request.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "dns/v1beta2/projects/{project}/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/v1beta2/projects/{project}/policies/{policy}", +"httpMethod": "DELETE", +"id": "dns.policies.delete", +"parameterOrder": [ +"project", +"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" +}, +"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/v1beta2/projects/{project}/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/v1beta2/projects/{project}/policies/{policy}", +"httpMethod": "GET", +"id": "dns.policies.get", +"parameterOrder": [ +"project", +"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" +}, +"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/v1beta2/projects/{project}/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/v1beta2/projects/{project}/policies", +"httpMethod": "GET", +"id": "dns.policies.list", +"parameterOrder": [ +"project" +], +"parameters": { +"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/v1beta2/projects/{project}/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/v1beta2/projects/{project}/policies/{policy}", +"httpMethod": "PATCH", +"id": "dns.policies.patch", +"parameterOrder": [ +"project", +"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" +}, +"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/v1beta2/projects/{project}/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/v1beta2/projects/{project}/policies/{policy}", +"httpMethod": "PUT", +"id": "dns.policies.update", +"parameterOrder": [ +"project", +"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" +}, +"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/v1beta2/projects/{project}/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/v1beta2/projects/{project}", +"httpMethod": "GET", +"id": "dns.projects.get", +"parameterOrder": [ +"project" +], +"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" +}, +"project": { +"description": "Identifies the project addressed by this request.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "dns/v1beta2/projects/{project}", +"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/v1beta2/projects/{project}/managedZones/{managedZone}/rrsets", +"httpMethod": "POST", +"id": "dns.resourceRecordSets.create", +"parameterOrder": [ +"project", +"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" +}, +"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/v1beta2/projects/{project}/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/v1beta2/projects/{project}/managedZones/{managedZone}/rrsets/{name}/{type}", +"httpMethod": "DELETE", +"id": "dns.resourceRecordSets.delete", +"parameterOrder": [ +"project", +"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" +}, +"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/v1beta2/projects/{project}/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/v1beta2/projects/{project}/managedZones/{managedZone}/rrsets/{name}/{type}", +"httpMethod": "GET", +"id": "dns.resourceRecordSets.get", +"parameterOrder": [ +"project", +"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" +}, +"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/v1beta2/projects/{project}/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/v1beta2/projects/{project}/managedZones/{managedZone}/rrsets", +"httpMethod": "GET", +"id": "dns.resourceRecordSets.list", +"parameterOrder": [ +"project", +"managedZone" +], +"parameters": { +"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/v1beta2/projects/{project}/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/v1beta2/projects/{project}/managedZones/{managedZone}/rrsets/{name}/{type}", +"httpMethod": "PATCH", +"id": "dns.resourceRecordSets.patch", +"parameterOrder": [ +"project", +"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" +}, +"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/v1beta2/projects/{project}/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/v1beta2/projects/{project}/responsePolicies", +"httpMethod": "POST", +"id": "dns.responsePolicies.create", +"parameterOrder": [ +"project" +], +"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" +}, +"project": { +"description": "Identifies the project addressed by this request.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "dns/v1beta2/projects/{project}/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/v1beta2/projects/{project}/responsePolicies/{responsePolicy}", +"httpMethod": "DELETE", +"id": "dns.responsePolicies.delete", +"parameterOrder": [ +"project", +"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" +}, +"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/v1beta2/projects/{project}/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/v1beta2/projects/{project}/responsePolicies/{responsePolicy}", +"httpMethod": "GET", +"id": "dns.responsePolicies.get", +"parameterOrder": [ +"project", +"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" +}, +"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/v1beta2/projects/{project}/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/v1beta2/projects/{project}/responsePolicies", +"httpMethod": "GET", +"id": "dns.responsePolicies.list", +"parameterOrder": [ +"project" +], +"parameters": { +"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/v1beta2/projects/{project}/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/v1beta2/projects/{project}/responsePolicies/{responsePolicy}", +"httpMethod": "PATCH", +"id": "dns.responsePolicies.patch", +"parameterOrder": [ +"project", +"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" +}, +"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/v1beta2/projects/{project}/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/v1beta2/projects/{project}/responsePolicies/{responsePolicy}", +"httpMethod": "PUT", +"id": "dns.responsePolicies.update", +"parameterOrder": [ +"project", +"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" +}, +"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/v1beta2/projects/{project}/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/v1beta2/projects/{project}/responsePolicies/{responsePolicy}/rules", +"httpMethod": "POST", +"id": "dns.responsePolicyRules.create", +"parameterOrder": [ +"project", +"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" +}, +"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/v1beta2/projects/{project}/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/v1beta2/projects/{project}/responsePolicies/{responsePolicy}/rules/{responsePolicyRule}", +"httpMethod": "DELETE", +"id": "dns.responsePolicyRules.delete", +"parameterOrder": [ +"project", +"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" +}, +"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/v1beta2/projects/{project}/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/v1beta2/projects/{project}/responsePolicies/{responsePolicy}/rules/{responsePolicyRule}", +"httpMethod": "GET", +"id": "dns.responsePolicyRules.get", +"parameterOrder": [ +"project", +"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" +}, +"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/v1beta2/projects/{project}/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/v1beta2/projects/{project}/responsePolicies/{responsePolicy}/rules", +"httpMethod": "GET", +"id": "dns.responsePolicyRules.list", +"parameterOrder": [ +"project", +"responsePolicy" +], +"parameters": { +"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/v1beta2/projects/{project}/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/v1beta2/projects/{project}/responsePolicies/{responsePolicy}/rules/{responsePolicyRule}", +"httpMethod": "PATCH", +"id": "dns.responsePolicyRules.patch", +"parameterOrder": [ +"project", +"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" +}, +"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/v1beta2/projects/{project}/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/v1beta2/projects/{project}/responsePolicies/{responsePolicy}/rules/{responsePolicyRule}", +"httpMethod": "PUT", +"id": "dns.responsePolicyRules.update", +"parameterOrder": [ +"project", +"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" +}, +"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/v1beta2/projects/{project}/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": "20250102", +"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" +}, +"kind": { +"default": "dns#changesListResponse", +"description": "Type of resource.", +"type": "string" +}, +"nextPageToken": { +"description": "This field indicates that more results are available beyond the last page displayed. To fetch the results, make another list request and use this value as your page token. This lets you retrieve the complete contents of a very large collection 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 can't retrieve a consistent snapshot of a collection 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": [ +"keySigning", +"zoneSigning" +], +"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": [ +"keySigning", +"zoneSigning" +], +"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" +}, +"kind": { +"default": "dns#dnsKeysListResponse", +"description": "Type of resource.", +"type": "string" +}, +"nextPageToken": { +"description": "This field indicates that more results are available beyond the last page displayed. To fetch the results, make another list request and use this value as your page token. This lets you retrieve the complete contents of a very large collection 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 can't retrieve a consistent snapshot of a collection larger than the maximum page size.", +"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" +}, +"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": "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" +}, +"GoogleIamV1GetIamPolicyRequest": { +"description": "Request message for `GetIamPolicy` method.", +"id": "GoogleIamV1GetIamPolicyRequest", +"properties": { +"options": { +"$ref": "GoogleIamV1GetPolicyOptions", +"description": "OPTIONAL: A `GetPolicyOptions` object for specifying options to `GetIamPolicy`." +} +}, +"type": "object" +}, +"GoogleIamV1GetPolicyOptions": { +"description": "Encapsulates settings provided to GetIamPolicy.", +"id": "GoogleIamV1GetPolicyOptions", +"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" +}, +"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" +}, +"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": [ +"Indicates that records in this zone can be queried from the public internet.", +"Indicates that records in this zone cannot be queried from the public internet. Access to private zones depends on the zone configuration." +], +"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": [ +"Indicates that Cloud DNS will sign records in the managed zone according to RFC 4034 and respond with NSEC records for names that do not exist.", +"Indicates that Cloud DNS will sign records in the managed zone according to RFC 5155 and respond with NSEC3 records for names that do not exist." +], +"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" +}, +"ipv6Address": { +"description": "IPv6 address of a target name server. Does not accept both fields (ipv4 & ipv6) being populated. Public preview as of November 2022.", +"type": "string" +}, +"kind": { +"default": "dns#managedZoneForwardingConfigNameServerTarget", +"type": "string" +} +}, +"type": "object" +}, +"ManagedZoneOperationsListResponse": { +"id": "ManagedZoneOperationsListResponse", +"properties": { +"kind": { +"default": "dns#managedZoneOperationsListResponse", +"description": "Type of resource.", +"type": "string" +}, +"nextPageToken": { +"description": "This field indicates that more results are available beyond the last page displayed. To fetch the results, make another list request and use this value as your page token. This lets you retrieve the complete contents of a very large collection 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 can't 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": { +"kind": { +"default": "dns#managedZonesListResponse", +"description": "Type of resource.", +"type": "string" +}, +"managedZones": { +"description": "The managed zone resources.", +"items": { +"$ref": "ManagedZone" +}, +"type": "array" +}, +"nextPageToken": { +"description": "This field indicates that more results are available beyond the last page displayed. To fetch the results, make another list request and use this value as your page token. This lets you retrieve the complete contents of a very large collection 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 can't 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": { +"kind": { +"default": "dns#policiesListResponse", +"description": "Type of resource.", +"type": "string" +}, +"nextPageToken": { +"description": "This field indicates that more results are available beyond the last page displayed. To fetch the results, make another list request and use this value as your page token. This lets you retrieve the complete contents of a very large collection 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 can't 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": { +"policy": { +"$ref": "Policy" +} +}, +"type": "object" +}, +"PoliciesUpdateResponse": { +"id": "PoliciesUpdateResponse", +"properties": { +"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" +}, +"dns64Config": { +"$ref": "PolicyDns64Config", +"description": "Configurations related to DNS64 for this Policy." +}, +"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 queries to.", +"type": "string" +}, +"ipv6Address": { +"description": "IPv6 address to forward to. Does not accept both fields (ipv4 & ipv6) being populated. Public preview as of November 2022.", +"type": "string" +}, +"kind": { +"default": "dns#policyAlternativeNameServerConfigTargetNameServer", +"type": "string" +} +}, +"type": "object" +}, +"PolicyDns64Config": { +"description": "DNS64 policies", +"id": "PolicyDns64Config", +"properties": { +"kind": { +"default": "dns#policyDns64Config", +"type": "string" +}, +"scope": { +"$ref": "PolicyDns64ConfigScope", +"description": "The scope to which DNS64 config will be applied to." +} +}, +"type": "object" +}, +"PolicyDns64ConfigScope": { +"id": "PolicyDns64ConfigScope", +"properties": { +"allQueries": { +"description": "Controls whether DNS64 is enabled globally at the network level.", +"type": "boolean" +}, +"kind": { +"default": "dns#policyDns64ConfigScope", +"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.", +"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" +}, +"gkeClustersPerManagedZone": { +"description": "Maximum allowed number of GKE clusters to which a privately scoped zone can be attached.", +"format": "int32", +"type": "integer" +}, +"gkeClustersPerPolicy": { +"description": "Maximum allowed number of GKE clusters per policy.", +"format": "int32", +"type": "integer" +}, +"gkeClustersPerResponsePolicy": { +"description": "Maximum allowed number of GKE clusters per response policy.", +"format": "int32", +"type": "integer" +}, +"internetHealthChecksPerManagedZone": { +"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" +}, +"managedZonesPerGkeCluster": { +"description": "Maximum allowed number of managed zones which can be attached to a GKE cluster.", +"format": "int32", +"type": "integer" +}, +"managedZonesPerNetwork": { +"description": "Maximum allowed number of managed zones which can be attached to a network.", +"format": "int32", +"type": "integer" +}, +"nameserversPerDelegation": { +"description": "Maximum number of nameservers per delegation, meant to prevent abuse", +"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" +}, +"networksPerResponsePolicy": { +"description": "Maximum allowed number of networks per response 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" +}, +"responsePolicies": { +"description": "Maximum allowed number of response policies per project.", +"format": "int32", +"type": "integer" +}, +"responsePolicyRulesPerResponsePolicy": { +"description": "Maximum allowed number of rules per response policy.", +"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" +}, +"geoPolicy": { +"$ref": "RRSetRoutingPolicyGeoPolicy", +"deprecated": true +}, +"healthCheck": { +"description": "The selfLink attribute of the HealthCheck resource to use for this RRSetRoutingPolicy. https://cloud.google.com/compute/docs/reference/rest/v1/healthChecks", +"type": "string" +}, +"kind": { +"default": "dns#rRSetRoutingPolicy", +"type": "string" +}, +"primaryBackup": { +"$ref": "RRSetRoutingPolicyPrimaryBackupPolicy" +}, +"wrr": { +"$ref": "RRSetRoutingPolicyWrrPolicy" +}, +"wrrPolicy": { +"$ref": "RRSetRoutingPolicyWrrPolicy", +"deprecated": true +} +}, +"type": "object" +}, +"RRSetRoutingPolicyGeoPolicy": { +"description": "Configures a `RRSetRoutingPolicy` that routes based on the geo location of the querying user.", +"id": "RRSetRoutingPolicyGeoPolicy", +"properties": { +"enableFencing": { +"description": "Without fencing, if health check fails for all configured items in the current geo bucket, we failover to the next nearest geo bucket. With fencing, if health checking is enabled, as long as some targets in the current geo bucket are healthy, we return only the healthy targets. However, if all targets are unhealthy, we don't failover to the next nearest bucket; instead, we return all the items in the current bucket even when all targets are unhealthy.", +"type": "boolean" +}, +"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": { +"healthCheckedTargets": { +"$ref": "RRSetRoutingPolicyHealthCheckTargets", +"description": "For A and AAAA types only. Endpoints to return in the query result only if they are healthy. These can be specified along with `rrdata` within this item." +}, +"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. If health checked targets are provided for DNSSEC enabled zones, there's a restriction of 1 IP address per item.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"RRSetRoutingPolicyHealthCheckTargets": { +"description": "HealthCheckTargets describes endpoints to health-check when responding to Routing Policy queries. Only the healthy endpoints will be included in the response.", +"id": "RRSetRoutingPolicyHealthCheckTargets", +"properties": { +"externalEndpoints": { +"description": "The Internet IP addresses to be health checked. The format matches the format of ResourceRecordSet.rrdata as defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1)", +"items": { +"type": "string" +}, +"type": "array" +}, +"internalLoadBalancers": { +"description": "Configuration for internal load balancers to be health checked.", +"items": { +"$ref": "RRSetRoutingPolicyLoadBalancerTarget" +}, +"type": "array" +} +}, +"type": "object" +}, +"RRSetRoutingPolicyLoadBalancerTarget": { +"description": "The configuration for an individual load balancer to health check.", +"id": "RRSetRoutingPolicyLoadBalancerTarget", +"properties": { +"ipAddress": { +"description": "The frontend IP address of the load balancer to health check.", +"type": "string" +}, +"ipProtocol": { +"description": "The protocol of the load balancer to health check.", +"enum": [ +"undefined", +"tcp", +"udp" +], +"enumDescriptions": [ +"", +"Indicates the load balancer is accessible via TCP.", +"Indicates the load balancer is accessible via UDP." +], +"type": "string" +}, +"kind": { +"default": "dns#rRSetRoutingPolicyLoadBalancerTarget", +"type": "string" +}, +"loadBalancerType": { +"description": "The type of load balancer specified by this target. This value must match the configuration of the load balancer located at the LoadBalancerTarget's IP address, port, and region. Use the following: - *regionalL4ilb*: for a regional internal passthrough Network Load Balancer. - *regionalL7ilb*: for a regional internal Application Load Balancer. - *globalL7ilb*: for a global internal Application Load Balancer. ", +"enum": [ +"none", +"globalL7ilb", +"regionalL4ilb", +"regionalL7ilb" +], +"enumDescriptions": [ +"", +"Indicates the load balancer is a Cross-Region Application Load Balancer.", +"Indicates the load balancer is a Regional Network Passthrough Load Balancer.", +"Indicates the load balancer is a Regional Application Load Balancer." +], +"type": "string" +}, +"networkUrl": { +"description": "The fully qualified URL of the network that the load balancer is attached to. This should be formatted like `https://www.googleapis.com/compute/v1/projects/{project}/global/networks/{network}`.", +"type": "string" +}, +"port": { +"description": "The configured port of the load balancer.", +"type": "string" +}, +"project": { +"description": "The project ID in which the load balancer is located.", +"type": "string" +}, +"region": { +"description": "The region in which the load balancer is located.", +"type": "string" +} +}, +"type": "object" +}, +"RRSetRoutingPolicyPrimaryBackupPolicy": { +"description": "Configures a RRSetRoutingPolicy such that all queries are responded with the primary_targets if they are healthy. And if all of them are unhealthy, then we fallback to a geo localized policy.", +"id": "RRSetRoutingPolicyPrimaryBackupPolicy", +"properties": { +"backupGeoTargets": { +"$ref": "RRSetRoutingPolicyGeoPolicy", +"description": "Backup targets provide a regional failover policy for the otherwise global primary targets. If serving state is set to `BACKUP`, this policy essentially becomes a geo routing policy." +}, +"kind": { +"default": "dns#rRSetRoutingPolicyPrimaryBackupPolicy", +"type": "string" +}, +"primaryTargets": { +"$ref": "RRSetRoutingPolicyHealthCheckTargets", +"description": "Endpoints that are health checked before making the routing decision. Unhealthy endpoints are omitted from the results. If all endpoints are unhealthy, we serve a response based on the `backup_geo_targets`." +}, +"trickleTraffic": { +"description": "When serving state is `PRIMARY`, this field provides the option of sending a small percentage of the traffic to the backup targets.", +"format": "double", +"type": "number" +} +}, +"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": { +"healthCheckedTargets": { +"$ref": "RRSetRoutingPolicyHealthCheckTargets", +"description": "Endpoints that are health checked before making the routing decision. The unhealthy endpoints are omitted from the result. If all endpoints within a bucket are unhealthy, we choose a different bucket (sampled with respect to its weight) for responding. If DNSSEC is enabled for this zone, only one of `rrdata` or `health_checked_targets` can be set." +}, +"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 address per item.", +"items": { +"type": "string" +}, +"type": "array" +}, +"weight": { +"description": "The weight corresponding to this `WrrPolicyItem` object. When multiple `WrrPolicyItem` objects are configured, the probability of returning an `WrrPolicyItem` object's data is proportional to its weight relative to the sum of weights configured for all items. This weight must 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 either the geo location of the querying user or a weighted round robin based routing policy. A valid `ResourceRecordSet` contains only `rrdata` (for static resolution) or a `routing_policy` (for dynamic resolution)." +}, +"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": { +"kind": { +"default": "dns#resourceRecordSetsListResponse", +"description": "Type of resource.", +"type": "string" +}, +"nextPageToken": { +"description": "This field indicates that more results are available beyond the last page displayed. To fetch the results, make another list request and use this value as your page token. This lets you retrieve the complete contents of a very large collection 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 can't 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" +}, +"ResponsePoliciesListResponse": { +"id": "ResponsePoliciesListResponse", +"properties": { +"nextPageToken": { +"description": "This field indicates that more results are available beyond the last page displayed. To fetch the results, make another list request and use this value as your page token. This lets you retrieve the complete contents of a very large collection 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 can't 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": { +"responsePolicy": { +"$ref": "ResponsePolicy" +} +}, +"type": "object" +}, +"ResponsePoliciesUpdateResponse": { +"id": "ResponsePoliciesUpdateResponse", +"properties": { +"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" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "User labels.", +"type": "object" +}, +"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": [ +"behaviorUnspecified", +"bypassResponsePolicy" +], +"enumDescriptions": [ +"", +"Skip a less-specific Response Policy Rule and let the query logic continue. This mechanism, when used with wildcard selectors, lets you exempt specific subdomains from a broader Response Policy Rule and direct the queries to the public internet instead. For example, if the following rules exist: ``` *.example.com -> LocalData 1.2.3.4 foo.example.com -> Behavior 'passthrough' ``` A query for foo.example.com skips the wildcard rule. This functionality also facilitates allowlisting. Response Policy Zones (RPZs) can be applied at multiple levels within the hierarchy: for example, an organization, a folder, a project, or a VPC network. If an RPZ rule is applied at a higher level, adding a `passthrough` rule at a lower level will override it. Queries from affected virtual machines (VMs) to that domain bypass the RPZ and proceed with normal resolution." +], +"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": { +"nextPageToken": { +"description": "This field indicates that more results are available beyond the last page displayed. To fetch the results, make another list request and use this value as your page token. This lets you retrieve the complete contents of a very large collection 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 can't 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": { +"responsePolicyRule": { +"$ref": "ResponsePolicyRule" +} +}, +"type": "object" +}, +"ResponsePolicyRulesUpdateResponse": { +"id": "ResponsePolicyRulesUpdateResponse", +"properties": { +"responsePolicyRule": { +"$ref": "ResponsePolicyRule" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Cloud DNS API", +"version": "v1beta2" +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/docs.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/docs.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..2fe415e84c4192bd0ec49ce25f53739a108096af --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/docs.v1.json @@ -0,0 +1,4599 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/documents": { +"description": "See, edit, create, and delete all your Google Docs documents" +}, +"https://www.googleapis.com/auth/documents.readonly": { +"description": "See all your Google Docs documents" +}, +"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" +} +} +} +}, +"basePath": "", +"baseUrl": "https://docs.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Docs", +"description": "Reads and writes Google Docs documents.", +"discoveryVersion": "v1", +"documentationLink": "https://developers.google.com/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": "docs:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://docs.mtls.googleapis.com/", +"name": "docs", +"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": { +"documents": { +"methods": { +"batchUpdate": { +"description": "Applies one or more updates to the document. 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. Other requests do not need to return information; these each return an empty reply. The order of replies matches that of the requests. For example, suppose you call batchUpdate with four updates, and only the third one returns information. The response would have two empty replies, the reply to the third request, and another empty reply, in that order. Because other users may be editing the document, the document might not exactly reflect your changes: your changes may be altered with respect to collaborator changes. If there are no collaborators, the document should reflect your changes. In any case, the updates in your request are guaranteed to be applied together atomically.", +"flatPath": "v1/documents/{documentId}:batchUpdate", +"httpMethod": "POST", +"id": "docs.documents.batchUpdate", +"parameterOrder": [ +"documentId" +], +"parameters": { +"documentId": { +"description": "The ID of the document to update.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/documents/{documentId}:batchUpdate", +"request": { +"$ref": "BatchUpdateDocumentRequest" +}, +"response": { +"$ref": "BatchUpdateDocumentResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/documents", +"https://www.googleapis.com/auth/drive", +"https://www.googleapis.com/auth/drive.file" +] +}, +"create": { +"description": "Creates a blank document using the title given in the request. Other fields in the request, including any provided content, are ignored. Returns the created document.", +"flatPath": "v1/documents", +"httpMethod": "POST", +"id": "docs.documents.create", +"parameterOrder": [], +"parameters": {}, +"path": "v1/documents", +"request": { +"$ref": "Document" +}, +"response": { +"$ref": "Document" +}, +"scopes": [ +"https://www.googleapis.com/auth/documents", +"https://www.googleapis.com/auth/drive", +"https://www.googleapis.com/auth/drive.file" +] +}, +"get": { +"description": "Gets the latest version of the specified document.", +"flatPath": "v1/documents/{documentId}", +"httpMethod": "GET", +"id": "docs.documents.get", +"parameterOrder": [ +"documentId" +], +"parameters": { +"documentId": { +"description": "The ID of the document to retrieve.", +"location": "path", +"required": true, +"type": "string" +}, +"includeTabsContent": { +"description": "Whether to populate the Document.tabs field instead of the text content fields like `body` and `documentStyle` on Document. - When `True`: Document content populates in the Document.tabs field instead of the text content fields in Document. - When `False`: The content of the document's first tab populates the content fields in Document excluding Document.tabs. If a document has only one tab, then that tab is used to populate the document content. Document.tabs will be empty.", +"location": "query", +"type": "boolean" +}, +"suggestionsViewMode": { +"description": "The suggestions view mode to apply to the document. This allows viewing the document with all suggestions inline, accepted or rejected. If one is not specified, DEFAULT_FOR_CURRENT_ACCESS is used.", +"enum": [ +"DEFAULT_FOR_CURRENT_ACCESS", +"SUGGESTIONS_INLINE", +"PREVIEW_SUGGESTIONS_ACCEPTED", +"PREVIEW_WITHOUT_SUGGESTIONS" +], +"enumDescriptions": [ +"The SuggestionsViewMode applied to the returned document depends on the user's current access level. If the user only has view access, PREVIEW_WITHOUT_SUGGESTIONS is applied. Otherwise, SUGGESTIONS_INLINE is applied. This is the default suggestions view mode.", +"The returned document has suggestions inline. Suggested changes will be differentiated from base content within the document. Requests to retrieve a document using this mode will return a 403 error if the user does not have permission to view suggested changes.", +"The returned document is a preview with all suggested changes accepted. Requests to retrieve a document using this mode will return a 403 error if the user does not have permission to view suggested changes.", +"The returned document is a preview with all suggested changes rejected if there are any suggestions in the document." +], +"location": "query", +"type": "string" +} +}, +"path": "v1/documents/{documentId}", +"response": { +"$ref": "Document" +}, +"scopes": [ +"https://www.googleapis.com/auth/documents", +"https://www.googleapis.com/auth/documents.readonly", +"https://www.googleapis.com/auth/drive", +"https://www.googleapis.com/auth/drive.file", +"https://www.googleapis.com/auth/drive.readonly" +] +} +} +} +}, +"revision": "20240730", +"rootUrl": "https://docs.googleapis.com/", +"schemas": { +"AutoText": { +"description": "A ParagraphElement representing a spot in the text that's dynamically replaced with content that can change over time, like a page number.", +"id": "AutoText", +"properties": { +"suggestedDeletionIds": { +"description": "The suggested deletion IDs. If empty, then there are no suggested deletions of this content.", +"items": { +"type": "string" +}, +"type": "array" +}, +"suggestedInsertionIds": { +"description": "The suggested insertion IDs. An AutoText may have multiple insertion IDs if it's a nested suggested change. If empty, then this is not a suggested insertion.", +"items": { +"type": "string" +}, +"type": "array" +}, +"suggestedTextStyleChanges": { +"additionalProperties": { +"$ref": "SuggestedTextStyle" +}, +"description": "The suggested text style changes to this AutoText, keyed by suggestion ID.", +"type": "object" +}, +"textStyle": { +"$ref": "TextStyle", +"description": "The text style of this AutoText." +}, +"type": { +"description": "The type of this auto text.", +"enum": [ +"TYPE_UNSPECIFIED", +"PAGE_NUMBER", +"PAGE_COUNT" +], +"enumDescriptions": [ +"An unspecified auto text type.", +"Type for auto text that represents the current page number.", +"Type for auto text that represents the total number of pages in the document." +], +"type": "string" +} +}, +"type": "object" +}, +"Background": { +"description": "Represents the background of a document.", +"id": "Background", +"properties": { +"color": { +"$ref": "OptionalColor", +"description": "The background color." +} +}, +"type": "object" +}, +"BackgroundSuggestionState": { +"description": "A mask that indicates which of the fields on the base Background have been changed in this suggestion. For any field set to true, the Backgound has a new suggested value.", +"id": "BackgroundSuggestionState", +"properties": { +"backgroundColorSuggested": { +"description": "Indicates whether the current background color has been modified in this suggestion.", +"type": "boolean" +} +}, +"type": "object" +}, +"BatchUpdateDocumentRequest": { +"description": "Request message for BatchUpdateDocument.", +"id": "BatchUpdateDocumentRequest", +"properties": { +"requests": { +"description": "A list of updates to apply to the document.", +"items": { +"$ref": "Request" +}, +"type": "array" +}, +"writeControl": { +"$ref": "WriteControl", +"description": "Provides control over how write requests are executed." +} +}, +"type": "object" +}, +"BatchUpdateDocumentResponse": { +"description": "Response message from a BatchUpdateDocument request.", +"id": "BatchUpdateDocumentResponse", +"properties": { +"documentId": { +"description": "The ID of the document to which the updates were applied to.", +"type": "string" +}, +"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" +}, +"writeControl": { +"$ref": "WriteControl", +"description": "The updated write control after applying the request." +} +}, +"type": "object" +}, +"Body": { +"description": "The document body. The body typically contains the full document contents except for headers, footers, and footnotes.", +"id": "Body", +"properties": { +"content": { +"description": "The contents of the body. The indexes for the body's content begin at zero.", +"items": { +"$ref": "StructuralElement" +}, +"type": "array" +} +}, +"type": "object" +}, +"BookmarkLink": { +"description": "A reference to a bookmark in this document.", +"id": "BookmarkLink", +"properties": { +"id": { +"description": "The ID of a bookmark in this document.", +"type": "string" +}, +"tabId": { +"description": "The ID of the tab containing this bookmark.", +"type": "string" +} +}, +"type": "object" +}, +"Bullet": { +"description": "Describes the bullet of a paragraph.", +"id": "Bullet", +"properties": { +"listId": { +"description": "The ID of the list this paragraph belongs to.", +"type": "string" +}, +"nestingLevel": { +"description": "The nesting level of this paragraph in the list.", +"format": "int32", +"type": "integer" +}, +"textStyle": { +"$ref": "TextStyle", +"description": "The paragraph-specific text style applied to this bullet." +} +}, +"type": "object" +}, +"BulletSuggestionState": { +"description": "A mask that indicates which of the fields on the base Bullet have been changed in this suggestion. For any field set to true, there's a new suggested value.", +"id": "BulletSuggestionState", +"properties": { +"listIdSuggested": { +"description": "Indicates if there was a suggested change to the list_id.", +"type": "boolean" +}, +"nestingLevelSuggested": { +"description": "Indicates if there was a suggested change to the nesting_level.", +"type": "boolean" +}, +"textStyleSuggestionState": { +"$ref": "TextStyleSuggestionState", +"description": "A mask that indicates which of the fields in text style have been changed in this suggestion." +} +}, +"type": "object" +}, +"Color": { +"description": "A solid color.", +"id": "Color", +"properties": { +"rgbColor": { +"$ref": "RgbColor", +"description": "The RGB color value." +} +}, +"type": "object" +}, +"ColumnBreak": { +"description": "A ParagraphElement representing a column break. A column break makes the subsequent text start at the top of the next column.", +"id": "ColumnBreak", +"properties": { +"suggestedDeletionIds": { +"description": "The suggested deletion IDs. If empty, then there are no suggested deletions of this content.", +"items": { +"type": "string" +}, +"type": "array" +}, +"suggestedInsertionIds": { +"description": "The suggested insertion IDs. A ColumnBreak may have multiple insertion IDs if it's a nested suggested change. If empty, then this is not a suggested insertion.", +"items": { +"type": "string" +}, +"type": "array" +}, +"suggestedTextStyleChanges": { +"additionalProperties": { +"$ref": "SuggestedTextStyle" +}, +"description": "The suggested text style changes to this ColumnBreak, keyed by suggestion ID.", +"type": "object" +}, +"textStyle": { +"$ref": "TextStyle", +"description": "The text style of this ColumnBreak. Similar to text content, like text runs and footnote references, the text style of a column break can affect content layout as well as the styling of text inserted next to it." +} +}, +"type": "object" +}, +"CreateFooterRequest": { +"description": "Creates a Footer. The new footer is applied to the SectionStyle at the location of the SectionBreak if specified, otherwise it is applied to the DocumentStyle. If a footer of the specified type already exists, a 400 bad request error is returned.", +"id": "CreateFooterRequest", +"properties": { +"sectionBreakLocation": { +"$ref": "Location", +"description": "The location of the SectionBreak immediately preceding the section whose SectionStyle this footer should belong to. If this is unset or refers to the first section break in the document, the footer applies to the document style." +}, +"type": { +"description": "The type of footer to create.", +"enum": [ +"HEADER_FOOTER_TYPE_UNSPECIFIED", +"DEFAULT" +], +"enumDescriptions": [ +"The header/footer type is unspecified.", +"A default header/footer." +], +"type": "string" +} +}, +"type": "object" +}, +"CreateFooterResponse": { +"description": "The result of creating a footer.", +"id": "CreateFooterResponse", +"properties": { +"footerId": { +"description": "The ID of the created footer.", +"type": "string" +} +}, +"type": "object" +}, +"CreateFootnoteRequest": { +"description": "Creates a Footnote segment and inserts a new FootnoteReference to it at the given location. The new Footnote segment will contain a space followed by a newline character.", +"id": "CreateFootnoteRequest", +"properties": { +"endOfSegmentLocation": { +"$ref": "EndOfSegmentLocation", +"description": "Inserts the footnote reference at the end of the document body. Footnote references cannot be inserted inside a header, footer or footnote. Since footnote references can only be inserted in the body, the segment ID field must be empty." +}, +"location": { +"$ref": "Location", +"description": "Inserts the footnote reference at a specific index in the document. The footnote reference must be inserted inside the bounds of an existing Paragraph. For instance, it cannot be inserted at a table's start index (i.e. between the table and its preceding paragraph). Footnote references cannot be inserted inside an equation, header, footer or footnote. Since footnote references can only be inserted in the body, the segment ID field must be empty." +} +}, +"type": "object" +}, +"CreateFootnoteResponse": { +"description": "The result of creating a footnote.", +"id": "CreateFootnoteResponse", +"properties": { +"footnoteId": { +"description": "The ID of the created footnote.", +"type": "string" +} +}, +"type": "object" +}, +"CreateHeaderRequest": { +"description": "Creates a Header. The new header is applied to the SectionStyle at the location of the SectionBreak if specified, otherwise it is applied to the DocumentStyle. If a header of the specified type already exists, a 400 bad request error is returned.", +"id": "CreateHeaderRequest", +"properties": { +"sectionBreakLocation": { +"$ref": "Location", +"description": "The location of the SectionBreak which begins the section this header should belong to. If `section_break_location' is unset or if it refers to the first section break in the document body, the header applies to the DocumentStyle" +}, +"type": { +"description": "The type of header to create.", +"enum": [ +"HEADER_FOOTER_TYPE_UNSPECIFIED", +"DEFAULT" +], +"enumDescriptions": [ +"The header/footer type is unspecified.", +"A default header/footer." +], +"type": "string" +} +}, +"type": "object" +}, +"CreateHeaderResponse": { +"description": "The result of creating a header.", +"id": "CreateHeaderResponse", +"properties": { +"headerId": { +"description": "The ID of the created header.", +"type": "string" +} +}, +"type": "object" +}, +"CreateNamedRangeRequest": { +"description": "Creates a NamedRange referencing the given range.", +"id": "CreateNamedRangeRequest", +"properties": { +"name": { +"description": "The name of the NamedRange. Names do not need to be unique. Names must be at least 1 character and no more than 256 characters, measured in UTF-16 code units.", +"type": "string" +}, +"range": { +"$ref": "Range", +"description": "The range to apply the name to." +} +}, +"type": "object" +}, +"CreateNamedRangeResponse": { +"description": "The result of creating a named range.", +"id": "CreateNamedRangeResponse", +"properties": { +"namedRangeId": { +"description": "The ID of the created named range.", +"type": "string" +} +}, +"type": "object" +}, +"CreateParagraphBulletsRequest": { +"description": "Creates bullets for all of the paragraphs that overlap with the given range. The nesting level of each paragraph will be determined by counting leading tabs in front of each paragraph. To avoid excess space between the bullet and the corresponding paragraph, these leading tabs are removed by this request. This may change the indices of parts of the text. If the paragraph immediately before paragraphs being updated is in a list with a matching preset, the paragraphs being updated are added to that preceding list.", +"id": "CreateParagraphBulletsRequest", +"properties": { +"bulletPreset": { +"description": "The kinds of bullet glyphs to be used.", +"enum": [ +"BULLET_GLYPH_PRESET_UNSPECIFIED", +"BULLET_DISC_CIRCLE_SQUARE", +"BULLET_DIAMONDX_ARROW3D_SQUARE", +"BULLET_CHECKBOX", +"BULLET_ARROW_DIAMOND_DISC", +"BULLET_STAR_CIRCLE_SQUARE", +"BULLET_ARROW3D_CIRCLE_SQUARE", +"BULLET_LEFTTRIANGLE_DIAMOND_DISC", +"BULLET_DIAMONDX_HOLLOWDIAMOND_SQUARE", +"BULLET_DIAMOND_CIRCLE_SQUARE", +"NUMBERED_DECIMAL_ALPHA_ROMAN", +"NUMBERED_DECIMAL_ALPHA_ROMAN_PARENS", +"NUMBERED_DECIMAL_NESTED", +"NUMBERED_UPPERALPHA_ALPHA_ROMAN", +"NUMBERED_UPPERROMAN_UPPERALPHA_DECIMAL", +"NUMBERED_ZERODECIMAL_ALPHA_ROMAN" +], +"enumDescriptions": [ +"The bullet glyph preset is unspecified.", +"A bulleted list with a `DISC`, `CIRCLE` and `SQUARE` bullet glyph for the first 3 list nesting levels.", +"A bulleted list with a `DIAMONDX`, `ARROW3D` and `SQUARE` bullet glyph for the first 3 list nesting levels.", +"A bulleted list with `CHECKBOX` bullet glyphs for all list nesting levels.", +"A bulleted list with a `ARROW`, `DIAMOND` and `DISC` bullet glyph for the first 3 list nesting levels.", +"A bulleted list with a `STAR`, `CIRCLE` and `SQUARE` bullet glyph for the first 3 list nesting levels.", +"A bulleted list with a `ARROW3D`, `CIRCLE` and `SQUARE` bullet glyph for the first 3 list nesting levels.", +"A bulleted list with a `LEFTTRIANGLE`, `DIAMOND` and `DISC` bullet glyph for the first 3 list nesting levels.", +"A bulleted list with a `DIAMONDX`, `HOLLOWDIAMOND` and `SQUARE` bullet glyph for the first 3 list nesting levels.", +"A bulleted list with a `DIAMOND`, `CIRCLE` and `SQUARE` bullet glyph for the first 3 list nesting levels.", +"A numbered list with `DECIMAL`, `ALPHA` and `ROMAN` numeric glyphs for the first 3 list nesting levels, followed by periods.", +"A numbered list with `DECIMAL`, `ALPHA` and `ROMAN` numeric glyphs for the first 3 list nesting levels, followed by parenthesis.", +"A numbered list with `DECIMAL` numeric glyphs separated by periods, where each nesting level uses the previous nesting level's glyph as a prefix. For example: '1.', '1.1.', '2.', '2.2.'.", +"A numbered list with `UPPERALPHA`, `ALPHA` and `ROMAN` numeric glyphs for the first 3 list nesting levels, followed by periods.", +"A numbered list with `UPPERROMAN`, `UPPERALPHA` and `DECIMAL` numeric glyphs for the first 3 list nesting levels, followed by periods.", +"A numbered list with `ZERODECIMAL`, `ALPHA` and `ROMAN` numeric glyphs for the first 3 list nesting levels, followed by periods." +], +"type": "string" +}, +"range": { +"$ref": "Range", +"description": "The range to apply the bullet preset to." +} +}, +"type": "object" +}, +"CropProperties": { +"description": "The crop properties of an image. The crop rectangle is represented using fractional offsets from the original content's 4 edges. - If the offset is in the interval (0, 1), the corresponding edge of crop rectangle is positioned inside of the image's original bounding rectangle. - If the offset is negative or greater than 1, the corresponding edge of crop rectangle is positioned outside of the image's original bounding rectangle. - If all offsets and rotation angle are 0, the image is not cropped.", +"id": "CropProperties", +"properties": { +"angle": { +"description": "The clockwise rotation angle of the crop rectangle around its center, in radians. Rotation is applied after the offsets.", +"format": "float", +"type": "number" +}, +"offsetBottom": { +"description": "The offset specifies how far inwards the bottom edge of the crop rectangle is from the bottom edge of the original content as a fraction of the original content's height.", +"format": "float", +"type": "number" +}, +"offsetLeft": { +"description": "The offset specifies how far inwards the left edge of the crop rectangle is from the left edge of the original content as a fraction of the original content's width.", +"format": "float", +"type": "number" +}, +"offsetRight": { +"description": "The offset specifies how far inwards the right edge of the crop rectangle is from the right edge of the original content as a fraction of the original content's width.", +"format": "float", +"type": "number" +}, +"offsetTop": { +"description": "The offset specifies how far inwards the top edge of the crop rectangle is from the top edge of the original content as a fraction of the original content's height.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"CropPropertiesSuggestionState": { +"description": "A mask that indicates which of the fields on the base CropProperties have been changed in this suggestion. For any field set to true, there's a new suggested value.", +"id": "CropPropertiesSuggestionState", +"properties": { +"angleSuggested": { +"description": "Indicates if there was a suggested change to angle.", +"type": "boolean" +}, +"offsetBottomSuggested": { +"description": "Indicates if there was a suggested change to offset_bottom.", +"type": "boolean" +}, +"offsetLeftSuggested": { +"description": "Indicates if there was a suggested change to offset_left.", +"type": "boolean" +}, +"offsetRightSuggested": { +"description": "Indicates if there was a suggested change to offset_right.", +"type": "boolean" +}, +"offsetTopSuggested": { +"description": "Indicates if there was a suggested change to offset_top.", +"type": "boolean" +} +}, +"type": "object" +}, +"DeleteContentRangeRequest": { +"description": "Deletes content from the document.", +"id": "DeleteContentRangeRequest", +"properties": { +"range": { +"$ref": "Range", +"description": "The range of content to delete. Deleting text that crosses a paragraph boundary may result in changes to paragraph styles, lists, positioned objects and bookmarks as the two paragraphs are merged. Attempting to delete certain ranges can result in an invalid document structure in which case a 400 bad request error is returned. Some examples of invalid delete requests include: * Deleting one code unit of a surrogate pair. * Deleting the last newline character of a Body, Header, Footer, Footnote, TableCell or TableOfContents. * Deleting the start or end of a Table, TableOfContents or Equation without deleting the entire element. * Deleting the newline character before a Table, TableOfContents or SectionBreak without deleting the element. * Deleting individual rows or cells of a table. Deleting the content within a table cell is allowed." +} +}, +"type": "object" +}, +"DeleteFooterRequest": { +"description": "Deletes a Footer from the document.", +"id": "DeleteFooterRequest", +"properties": { +"footerId": { +"description": "The id of the footer to delete. If this footer is defined on DocumentStyle, the reference to this footer is removed, resulting in no footer of that type for the first section of the document. If this footer is defined on a SectionStyle, the reference to this footer is removed and the footer of that type is now continued from the previous section.", +"type": "string" +}, +"tabId": { +"description": "The tab that contains the footer to delete. When omitted, the request is applied to the first tab. In a document containing a single tab: - If provided, must match the singular tab's ID. - If omitted, the request applies to the singular tab. In a document containing multiple tabs: - If provided, the request applies to the specified tab. - If omitted, the request applies to the first tab in the document.", +"type": "string" +} +}, +"type": "object" +}, +"DeleteHeaderRequest": { +"description": "Deletes a Header from the document.", +"id": "DeleteHeaderRequest", +"properties": { +"headerId": { +"description": "The id of the header to delete. If this header is defined on DocumentStyle, the reference to this header is removed, resulting in no header of that type for the first section of the document. If this header is defined on a SectionStyle, the reference to this header is removed and the header of that type is now continued from the previous section.", +"type": "string" +}, +"tabId": { +"description": "The tab containing the header to delete. When omitted, the request is applied to the first tab. In a document containing a single tab: - If provided, must match the singular tab's ID. - If omitted, the request applies to the singular tab. In a document containing multiple tabs: - If provided, the request applies to the specified tab. - If omitted, the request applies to the first tab in the document.", +"type": "string" +} +}, +"type": "object" +}, +"DeleteNamedRangeRequest": { +"description": "Deletes a NamedRange.", +"id": "DeleteNamedRangeRequest", +"properties": { +"name": { +"description": "The name of the range(s) to delete. All named ranges with the given name will be deleted.", +"type": "string" +}, +"namedRangeId": { +"description": "The ID of the named range to delete.", +"type": "string" +}, +"tabsCriteria": { +"$ref": "TabsCriteria", +"description": "Optional. The criteria used to specify which tab(s) the range deletion should occur in. When omitted, the range deletion is applied to all tabs. In a document containing a single tab: - If provided, must match the singular tab's ID. - If omitted, the range deletion applies to the singular tab. In a document containing multiple tabs: - If provided, the range deletion applies to the specified tabs. - If not provided, the range deletion applies to all tabs." +} +}, +"type": "object" +}, +"DeleteParagraphBulletsRequest": { +"description": "Deletes bullets from all of the paragraphs that overlap with the given range. The nesting level of each paragraph will be visually preserved by adding indent to the start of the corresponding paragraph.", +"id": "DeleteParagraphBulletsRequest", +"properties": { +"range": { +"$ref": "Range", +"description": "The range to delete bullets from." +} +}, +"type": "object" +}, +"DeletePositionedObjectRequest": { +"description": "Deletes a PositionedObject from the document.", +"id": "DeletePositionedObjectRequest", +"properties": { +"objectId": { +"description": "The ID of the positioned object to delete.", +"type": "string" +}, +"tabId": { +"description": "The tab that the positioned object to delete is in. When omitted, the request is applied to the first tab. In a document containing a single tab: - If provided, must match the singular tab's ID. - If omitted, the request applies to the singular tab. In a document containing multiple tabs: - If provided, the request applies to the specified tab. - If omitted, the request applies to the first tab in the document.", +"type": "string" +} +}, +"type": "object" +}, +"DeleteTableColumnRequest": { +"description": "Deletes a column from a table.", +"id": "DeleteTableColumnRequest", +"properties": { +"tableCellLocation": { +"$ref": "TableCellLocation", +"description": "The reference table cell location from which the column will be deleted. The column this cell spans will be deleted. If this is a merged cell that spans multiple columns, all columns that the cell spans will be deleted. If no columns remain in the table after this deletion, the whole table is deleted." +} +}, +"type": "object" +}, +"DeleteTableRowRequest": { +"description": "Deletes a row from a table.", +"id": "DeleteTableRowRequest", +"properties": { +"tableCellLocation": { +"$ref": "TableCellLocation", +"description": "The reference table cell location from which the row will be deleted. The row this cell spans will be deleted. If this is a merged cell that spans multiple rows, all rows that the cell spans will be deleted. If no rows remain in the table after this deletion, the whole table is deleted." +} +}, +"type": "object" +}, +"Dimension": { +"description": "A magnitude in a single direction in the specified units.", +"id": "Dimension", +"properties": { +"magnitude": { +"description": "The magnitude.", +"format": "double", +"type": "number" +}, +"unit": { +"description": "The units for magnitude.", +"enum": [ +"UNIT_UNSPECIFIED", +"PT" +], +"enumDescriptions": [ +"The units are unknown.", +"A point, 1/72 of an inch." +], +"type": "string" +} +}, +"type": "object" +}, +"Document": { +"description": "A Google Docs document.", +"id": "Document", +"properties": { +"body": { +"$ref": "Body", +"description": "Output only. The main body of the document. Legacy field: Instead, use Document.tabs.documentTab.body, which exposes the actual document content from all tabs when the includeTabsContent parameter is set to `true`. If `false` or unset, this field contains information about the first tab in the document." +}, +"documentId": { +"description": "Output only. The ID of the document.", +"type": "string" +}, +"documentStyle": { +"$ref": "DocumentStyle", +"description": "Output only. The style of the document. Legacy field: Instead, use Document.tabs.documentTab.documentStyle, which exposes the actual document content from all tabs when the includeTabsContent parameter is set to `true`. If `false` or unset, this field contains information about the first tab in the document." +}, +"footers": { +"additionalProperties": { +"$ref": "Footer" +}, +"description": "Output only. The footers in the document, keyed by footer ID. Legacy field: Instead, use Document.tabs.documentTab.footers, which exposes the actual document content from all tabs when the includeTabsContent parameter is set to `true`. If `false` or unset, this field contains information about the first tab in the document.", +"type": "object" +}, +"footnotes": { +"additionalProperties": { +"$ref": "Footnote" +}, +"description": "Output only. The footnotes in the document, keyed by footnote ID. Legacy field: Instead, use Document.tabs.documentTab.footnotes, which exposes the actual document content from all tabs when the includeTabsContent parameter is set to `true`. If `false` or unset, this field contains information about the first tab in the document.", +"type": "object" +}, +"headers": { +"additionalProperties": { +"$ref": "Header" +}, +"description": "Output only. The headers in the document, keyed by header ID. Legacy field: Instead, use Document.tabs.documentTab.headers, which exposes the actual document content from all tabs when the includeTabsContent parameter is set to `true`. If `false` or unset, this field contains information about the first tab in the document.", +"type": "object" +}, +"inlineObjects": { +"additionalProperties": { +"$ref": "InlineObject" +}, +"description": "Output only. The inline objects in the document, keyed by object ID. Legacy field: Instead, use Document.tabs.documentTab.inlineObjects, which exposes the actual document content from all tabs when the includeTabsContent parameter is set to `true`. If `false` or unset, this field contains information about the first tab in the document.", +"type": "object" +}, +"lists": { +"additionalProperties": { +"$ref": "List" +}, +"description": "Output only. The lists in the document, keyed by list ID. Legacy field: Instead, use Document.tabs.documentTab.lists, which exposes the actual document content from all tabs when the includeTabsContent parameter is set to `true`. If `false` or unset, this field contains information about the first tab in the document.", +"type": "object" +}, +"namedRanges": { +"additionalProperties": { +"$ref": "NamedRanges" +}, +"description": "Output only. The named ranges in the document, keyed by name. Legacy field: Instead, use Document.tabs.documentTab.namedRanges, which exposes the actual document content from all tabs when the includeTabsContent parameter is set to `true`. If `false` or unset, this field contains information about the first tab in the document.", +"type": "object" +}, +"namedStyles": { +"$ref": "NamedStyles", +"description": "Output only. The named styles of the document. Legacy field: Instead, use Document.tabs.documentTab.namedStyles, which exposes the actual document content from all tabs when the includeTabsContent parameter is set to `true`. If `false` or unset, this field contains information about the first tab in the document." +}, +"positionedObjects": { +"additionalProperties": { +"$ref": "PositionedObject" +}, +"description": "Output only. The positioned objects in the document, keyed by object ID. Legacy field: Instead, use Document.tabs.documentTab.positionedObjects, which exposes the actual document content from all tabs when the includeTabsContent parameter is set to `true`. If `false` or unset, this field contains information about the first tab in the document.", +"type": "object" +}, +"revisionId": { +"description": "Output only. The revision ID of the document. Can be used in update requests to specify which revision of a document to apply updates to and how the request should behave if the document has been edited since that revision. Only populated if the user has edit access to the document. The revision ID is not a sequential number but an opaque string. The format of the revision ID might change over time. A returned revision ID is only guaranteed to be valid for 24 hours after it has been returned and cannot be shared across users. If the revision ID is unchanged between calls, then the document has not changed. Conversely, a changed ID (for the same document and user) usually means the document has been updated. However, a changed ID can also be due to internal factors such as ID format changes.", +"type": "string" +}, +"suggestedDocumentStyleChanges": { +"additionalProperties": { +"$ref": "SuggestedDocumentStyle" +}, +"description": "Output only. The suggested changes to the style of the document, keyed by suggestion ID. Legacy field: Instead, use Document.tabs.documentTab.suggestedDocumentStyleChanges, which exposes the actual document content from all tabs when the includeTabsContent parameter is set to `true`. If `false` or unset, this field contains information about the first tab in the document.", +"type": "object" +}, +"suggestedNamedStylesChanges": { +"additionalProperties": { +"$ref": "SuggestedNamedStyles" +}, +"description": "Output only. The suggested changes to the named styles of the document, keyed by suggestion ID. Legacy field: Instead, use Document.tabs.documentTab.suggestedNamedStylesChanges, which exposes the actual document content from all tabs when the includeTabsContent parameter is set to `true`. If `false` or unset, this field contains information about the first tab in the document.", +"type": "object" +}, +"suggestionsViewMode": { +"description": "Output only. The suggestions view mode applied to the document. Note: When editing a document, changes must be based on a document with SUGGESTIONS_INLINE.", +"enum": [ +"DEFAULT_FOR_CURRENT_ACCESS", +"SUGGESTIONS_INLINE", +"PREVIEW_SUGGESTIONS_ACCEPTED", +"PREVIEW_WITHOUT_SUGGESTIONS" +], +"enumDescriptions": [ +"The SuggestionsViewMode applied to the returned document depends on the user's current access level. If the user only has view access, PREVIEW_WITHOUT_SUGGESTIONS is applied. Otherwise, SUGGESTIONS_INLINE is applied. This is the default suggestions view mode.", +"The returned document has suggestions inline. Suggested changes will be differentiated from base content within the document. Requests to retrieve a document using this mode will return a 403 error if the user does not have permission to view suggested changes.", +"The returned document is a preview with all suggested changes accepted. Requests to retrieve a document using this mode will return a 403 error if the user does not have permission to view suggested changes.", +"The returned document is a preview with all suggested changes rejected if there are any suggestions in the document." +], +"type": "string" +}, +"tabs": { +"description": "Tabs that are part of a document. Tabs can contain child tabs, a tab nested within another tab. Child tabs are represented by the Tab.childTabs field.", +"items": { +"$ref": "Tab" +}, +"type": "array" +}, +"title": { +"description": "The title of the document.", +"type": "string" +} +}, +"type": "object" +}, +"DocumentStyle": { +"description": "The style of the document.", +"id": "DocumentStyle", +"properties": { +"background": { +"$ref": "Background", +"description": "The background of the document. Documents cannot have a transparent background color." +}, +"defaultFooterId": { +"description": "The ID of the default footer. If not set, there's no default footer. This property is read-only.", +"type": "string" +}, +"defaultHeaderId": { +"description": "The ID of the default header. If not set, there's no default header. This property is read-only.", +"type": "string" +}, +"evenPageFooterId": { +"description": "The ID of the footer used only for even pages. The value of use_even_page_header_footer determines whether to use the default_footer_id or this value for the footer on even pages. If not set, there's no even page footer. This property is read-only.", +"type": "string" +}, +"evenPageHeaderId": { +"description": "The ID of the header used only for even pages. The value of use_even_page_header_footer determines whether to use the default_header_id or this value for the header on even pages. If not set, there's no even page header. This property is read-only.", +"type": "string" +}, +"firstPageFooterId": { +"description": "The ID of the footer used only for the first page. If not set then a unique footer for the first page does not exist. The value of use_first_page_header_footer determines whether to use the default_footer_id or this value for the footer on the first page. If not set, there's no first page footer. This property is read-only.", +"type": "string" +}, +"firstPageHeaderId": { +"description": "The ID of the header used only for the first page. If not set then a unique header for the first page does not exist. The value of use_first_page_header_footer determines whether to use the default_header_id or this value for the header on the first page. If not set, there's no first page header. This property is read-only.", +"type": "string" +}, +"flipPageOrientation": { +"description": "Optional. Indicates whether to flip the dimensions of the page_size, which allows changing the page orientation between portrait and landscape.", +"type": "boolean" +}, +"marginBottom": { +"$ref": "Dimension", +"description": "The bottom page margin. Updating the bottom page margin on the document style clears the bottom page margin on all section styles." +}, +"marginFooter": { +"$ref": "Dimension", +"description": "The amount of space between the bottom of the page and the contents of the footer." +}, +"marginHeader": { +"$ref": "Dimension", +"description": "The amount of space between the top of the page and the contents of the header." +}, +"marginLeft": { +"$ref": "Dimension", +"description": "The left page margin. Updating the left page margin on the document style clears the left page margin on all section styles. It may also cause columns to resize in all sections." +}, +"marginRight": { +"$ref": "Dimension", +"description": "The right page margin. Updating the right page margin on the document style clears the right page margin on all section styles. It may also cause columns to resize in all sections." +}, +"marginTop": { +"$ref": "Dimension", +"description": "The top page margin. Updating the top page margin on the document style clears the top page margin on all section styles." +}, +"pageNumberStart": { +"description": "The page number from which to start counting the number of pages.", +"format": "int32", +"type": "integer" +}, +"pageSize": { +"$ref": "Size", +"description": "The size of a page in the document." +}, +"useCustomHeaderFooterMargins": { +"description": "Indicates whether DocumentStyle margin_header, SectionStyle margin_header and DocumentStyle margin_footer, SectionStyle margin_footer are respected. When false, the default values in the Docs editor for header and footer margin are used. This property is read-only.", +"type": "boolean" +}, +"useEvenPageHeaderFooter": { +"description": "Indicates whether to use the even page header / footer IDs for the even pages.", +"type": "boolean" +}, +"useFirstPageHeaderFooter": { +"description": "Indicates whether to use the first page header / footer IDs for the first page.", +"type": "boolean" +} +}, +"type": "object" +}, +"DocumentStyleSuggestionState": { +"description": "A mask that indicates which of the fields on the base DocumentStyle have been changed in this suggestion. For any field set to true, there's a new suggested value.", +"id": "DocumentStyleSuggestionState", +"properties": { +"backgroundSuggestionState": { +"$ref": "BackgroundSuggestionState", +"description": "A mask that indicates which of the fields in background have been changed in this suggestion." +}, +"defaultFooterIdSuggested": { +"description": "Indicates if there was a suggested change to default_footer_id.", +"type": "boolean" +}, +"defaultHeaderIdSuggested": { +"description": "Indicates if there was a suggested change to default_header_id.", +"type": "boolean" +}, +"evenPageFooterIdSuggested": { +"description": "Indicates if there was a suggested change to even_page_footer_id.", +"type": "boolean" +}, +"evenPageHeaderIdSuggested": { +"description": "Indicates if there was a suggested change to even_page_header_id.", +"type": "boolean" +}, +"firstPageFooterIdSuggested": { +"description": "Indicates if there was a suggested change to first_page_footer_id.", +"type": "boolean" +}, +"firstPageHeaderIdSuggested": { +"description": "Indicates if there was a suggested change to first_page_header_id.", +"type": "boolean" +}, +"flipPageOrientationSuggested": { +"description": "Optional. Indicates if there was a suggested change to flip_page_orientation.", +"type": "boolean" +}, +"marginBottomSuggested": { +"description": "Indicates if there was a suggested change to margin_bottom.", +"type": "boolean" +}, +"marginFooterSuggested": { +"description": "Indicates if there was a suggested change to margin_footer.", +"type": "boolean" +}, +"marginHeaderSuggested": { +"description": "Indicates if there was a suggested change to margin_header.", +"type": "boolean" +}, +"marginLeftSuggested": { +"description": "Indicates if there was a suggested change to margin_left.", +"type": "boolean" +}, +"marginRightSuggested": { +"description": "Indicates if there was a suggested change to margin_right.", +"type": "boolean" +}, +"marginTopSuggested": { +"description": "Indicates if there was a suggested change to margin_top.", +"type": "boolean" +}, +"pageNumberStartSuggested": { +"description": "Indicates if there was a suggested change to page_number_start.", +"type": "boolean" +}, +"pageSizeSuggestionState": { +"$ref": "SizeSuggestionState", +"description": "A mask that indicates which of the fields in size have been changed in this suggestion." +}, +"useCustomHeaderFooterMarginsSuggested": { +"description": "Indicates if there was a suggested change to use_custom_header_footer_margins.", +"type": "boolean" +}, +"useEvenPageHeaderFooterSuggested": { +"description": "Indicates if there was a suggested change to use_even_page_header_footer.", +"type": "boolean" +}, +"useFirstPageHeaderFooterSuggested": { +"description": "Indicates if there was a suggested change to use_first_page_header_footer.", +"type": "boolean" +} +}, +"type": "object" +}, +"DocumentTab": { +"description": "A tab with document contents.", +"id": "DocumentTab", +"properties": { +"body": { +"$ref": "Body", +"description": "The main body of the document tab." +}, +"documentStyle": { +"$ref": "DocumentStyle", +"description": "The style of the document tab." +}, +"footers": { +"additionalProperties": { +"$ref": "Footer" +}, +"description": "The footers in the document tab, keyed by footer ID.", +"type": "object" +}, +"footnotes": { +"additionalProperties": { +"$ref": "Footnote" +}, +"description": "The footnotes in the document tab, keyed by footnote ID.", +"type": "object" +}, +"headers": { +"additionalProperties": { +"$ref": "Header" +}, +"description": "The headers in the document tab, keyed by header ID.", +"type": "object" +}, +"inlineObjects": { +"additionalProperties": { +"$ref": "InlineObject" +}, +"description": "The inline objects in the document tab, keyed by object ID.", +"type": "object" +}, +"lists": { +"additionalProperties": { +"$ref": "List" +}, +"description": "The lists in the document tab, keyed by list ID.", +"type": "object" +}, +"namedRanges": { +"additionalProperties": { +"$ref": "NamedRanges" +}, +"description": "The named ranges in the document tab, keyed by name.", +"type": "object" +}, +"namedStyles": { +"$ref": "NamedStyles", +"description": "The named styles of the document tab." +}, +"positionedObjects": { +"additionalProperties": { +"$ref": "PositionedObject" +}, +"description": "The positioned objects in the document tab, keyed by object ID.", +"type": "object" +}, +"suggestedDocumentStyleChanges": { +"additionalProperties": { +"$ref": "SuggestedDocumentStyle" +}, +"description": "The suggested changes to the style of the document tab, keyed by suggestion ID.", +"type": "object" +}, +"suggestedNamedStylesChanges": { +"additionalProperties": { +"$ref": "SuggestedNamedStyles" +}, +"description": "The suggested changes to the named styles of the document tab, keyed by suggestion ID.", +"type": "object" +} +}, +"type": "object" +}, +"EmbeddedDrawingProperties": { +"description": "The properties of an embedded drawing and used to differentiate the object type. An embedded drawing is one that's created and edited within a document. Note that extensive details are not supported.", +"id": "EmbeddedDrawingProperties", +"properties": {}, +"type": "object" +}, +"EmbeddedDrawingPropertiesSuggestionState": { +"description": "A mask that indicates which of the fields on the base EmbeddedDrawingProperties have been changed in this suggestion. For any field set to true, there's a new suggested value.", +"id": "EmbeddedDrawingPropertiesSuggestionState", +"properties": {}, +"type": "object" +}, +"EmbeddedObject": { +"description": "An embedded object in the document.", +"id": "EmbeddedObject", +"properties": { +"description": { +"description": "The description of the embedded object. The `title` and `description` are both combined to display alt text.", +"type": "string" +}, +"embeddedDrawingProperties": { +"$ref": "EmbeddedDrawingProperties", +"description": "The properties of an embedded drawing." +}, +"embeddedObjectBorder": { +"$ref": "EmbeddedObjectBorder", +"description": "The border of the embedded object." +}, +"imageProperties": { +"$ref": "ImageProperties", +"description": "The properties of an image." +}, +"linkedContentReference": { +"$ref": "LinkedContentReference", +"description": "A reference to the external linked source content. For example, it contains a reference to the source Google Sheets chart when the embedded object is a linked chart. If unset, then the embedded object is not linked." +}, +"marginBottom": { +"$ref": "Dimension", +"description": "The bottom margin of the embedded object." +}, +"marginLeft": { +"$ref": "Dimension", +"description": "The left margin of the embedded object." +}, +"marginRight": { +"$ref": "Dimension", +"description": "The right margin of the embedded object." +}, +"marginTop": { +"$ref": "Dimension", +"description": "The top margin of the embedded object." +}, +"size": { +"$ref": "Size", +"description": "The visible size of the image after cropping." +}, +"title": { +"description": "The title of the embedded object. The `title` and `description` are both combined to display alt text.", +"type": "string" +} +}, +"type": "object" +}, +"EmbeddedObjectBorder": { +"description": "A border around an EmbeddedObject.", +"id": "EmbeddedObjectBorder", +"properties": { +"color": { +"$ref": "OptionalColor", +"description": "The color of the border." +}, +"dashStyle": { +"description": "The dash style of the border.", +"enum": [ +"DASH_STYLE_UNSPECIFIED", +"SOLID", +"DOT", +"DASH" +], +"enumDescriptions": [ +"Unspecified dash style.", +"Solid line. Corresponds to ECMA-376 ST_PresetLineDashVal value 'solid'. This is the default dash style.", +"Dotted line. Corresponds to ECMA-376 ST_PresetLineDashVal value 'dot'.", +"Dashed line. Corresponds to ECMA-376 ST_PresetLineDashVal value 'dash'." +], +"type": "string" +}, +"propertyState": { +"description": "The property state of the border property.", +"enum": [ +"RENDERED", +"NOT_RENDERED" +], +"enumDescriptions": [ +"If a property's state is RENDERED, then the element has the corresponding property when rendered in the document. This is the default value.", +"If a property's state is NOT_RENDERED, then the element does not have the corresponding property when rendered in the document." +], +"type": "string" +}, +"width": { +"$ref": "Dimension", +"description": "The width of the border." +} +}, +"type": "object" +}, +"EmbeddedObjectBorderSuggestionState": { +"description": "A mask that indicates which of the fields on the base EmbeddedObjectBorder have been changed in this suggestion. For any field set to true, there's a new suggested value.", +"id": "EmbeddedObjectBorderSuggestionState", +"properties": { +"colorSuggested": { +"description": "Indicates if there was a suggested change to color.", +"type": "boolean" +}, +"dashStyleSuggested": { +"description": "Indicates if there was a suggested change to dash_style.", +"type": "boolean" +}, +"propertyStateSuggested": { +"description": "Indicates if there was a suggested change to property_state.", +"type": "boolean" +}, +"widthSuggested": { +"description": "Indicates if there was a suggested change to width.", +"type": "boolean" +} +}, +"type": "object" +}, +"EmbeddedObjectSuggestionState": { +"description": "A mask that indicates which of the fields on the base EmbeddedObject have been changed in this suggestion. For any field set to true, there's a new suggested value.", +"id": "EmbeddedObjectSuggestionState", +"properties": { +"descriptionSuggested": { +"description": "Indicates if there was a suggested change to description.", +"type": "boolean" +}, +"embeddedDrawingPropertiesSuggestionState": { +"$ref": "EmbeddedDrawingPropertiesSuggestionState", +"description": "A mask that indicates which of the fields in embedded_drawing_properties have been changed in this suggestion." +}, +"embeddedObjectBorderSuggestionState": { +"$ref": "EmbeddedObjectBorderSuggestionState", +"description": "A mask that indicates which of the fields in embedded_object_border have been changed in this suggestion." +}, +"imagePropertiesSuggestionState": { +"$ref": "ImagePropertiesSuggestionState", +"description": "A mask that indicates which of the fields in image_properties have been changed in this suggestion." +}, +"linkedContentReferenceSuggestionState": { +"$ref": "LinkedContentReferenceSuggestionState", +"description": "A mask that indicates which of the fields in linked_content_reference have been changed in this suggestion." +}, +"marginBottomSuggested": { +"description": "Indicates if there was a suggested change to margin_bottom.", +"type": "boolean" +}, +"marginLeftSuggested": { +"description": "Indicates if there was a suggested change to margin_left.", +"type": "boolean" +}, +"marginRightSuggested": { +"description": "Indicates if there was a suggested change to margin_right.", +"type": "boolean" +}, +"marginTopSuggested": { +"description": "Indicates if there was a suggested change to margin_top.", +"type": "boolean" +}, +"sizeSuggestionState": { +"$ref": "SizeSuggestionState", +"description": "A mask that indicates which of the fields in size have been changed in this suggestion." +}, +"titleSuggested": { +"description": "Indicates if there was a suggested change to title.", +"type": "boolean" +} +}, +"type": "object" +}, +"EndOfSegmentLocation": { +"description": "Location at the end of a body, header, footer or footnote. The location is immediately before the last newline in the document segment.", +"id": "EndOfSegmentLocation", +"properties": { +"segmentId": { +"description": "The ID of the header, footer or footnote the location is in. An empty segment ID signifies the document's body.", +"type": "string" +}, +"tabId": { +"description": "The tab that the location is in. When omitted, the request is applied to the first tab. In a document containing a single tab: - If provided, must match the singular tab's ID. - If omitted, the request applies to the singular tab. In a document containing multiple tabs: - If provided, the request applies to the specified tab. - If omitted, the request applies to the first tab in the document.", +"type": "string" +} +}, +"type": "object" +}, +"Equation": { +"description": "A ParagraphElement representing an equation.", +"id": "Equation", +"properties": { +"suggestedDeletionIds": { +"description": "The suggested deletion IDs. If empty, then there are no suggested deletions of this content.", +"items": { +"type": "string" +}, +"type": "array" +}, +"suggestedInsertionIds": { +"description": "The suggested insertion IDs. An Equation may have multiple insertion IDs if it's a nested suggested change. If empty, then this is not a suggested insertion.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Footer": { +"description": "A document footer.", +"id": "Footer", +"properties": { +"content": { +"description": "The contents of the footer. The indexes for a footer's content begin at zero.", +"items": { +"$ref": "StructuralElement" +}, +"type": "array" +}, +"footerId": { +"description": "The ID of the footer.", +"type": "string" +} +}, +"type": "object" +}, +"Footnote": { +"description": "A document footnote.", +"id": "Footnote", +"properties": { +"content": { +"description": "The contents of the footnote. The indexes for a footnote's content begin at zero.", +"items": { +"$ref": "StructuralElement" +}, +"type": "array" +}, +"footnoteId": { +"description": "The ID of the footnote.", +"type": "string" +} +}, +"type": "object" +}, +"FootnoteReference": { +"description": "A ParagraphElement representing a footnote reference. A footnote reference is the inline content rendered with a number and is used to identify the footnote.", +"id": "FootnoteReference", +"properties": { +"footnoteId": { +"description": "The ID of the footnote that contains the content of this footnote reference.", +"type": "string" +}, +"footnoteNumber": { +"description": "The rendered number of this footnote.", +"type": "string" +}, +"suggestedDeletionIds": { +"description": "The suggested deletion IDs. If empty, then there are no suggested deletions of this content.", +"items": { +"type": "string" +}, +"type": "array" +}, +"suggestedInsertionIds": { +"description": "The suggested insertion IDs. A FootnoteReference may have multiple insertion IDs if it's a nested suggested change. If empty, then this is not a suggested insertion.", +"items": { +"type": "string" +}, +"type": "array" +}, +"suggestedTextStyleChanges": { +"additionalProperties": { +"$ref": "SuggestedTextStyle" +}, +"description": "The suggested text style changes to this FootnoteReference, keyed by suggestion ID.", +"type": "object" +}, +"textStyle": { +"$ref": "TextStyle", +"description": "The text style of this FootnoteReference." +} +}, +"type": "object" +}, +"Header": { +"description": "A document header.", +"id": "Header", +"properties": { +"content": { +"description": "The contents of the header. The indexes for a header's content begin at zero.", +"items": { +"$ref": "StructuralElement" +}, +"type": "array" +}, +"headerId": { +"description": "The ID of the header.", +"type": "string" +} +}, +"type": "object" +}, +"HeadingLink": { +"description": "A reference to a heading in this document.", +"id": "HeadingLink", +"properties": { +"id": { +"description": "The ID of a heading in this document.", +"type": "string" +}, +"tabId": { +"description": "The ID of the tab containing this heading.", +"type": "string" +} +}, +"type": "object" +}, +"HorizontalRule": { +"description": "A ParagraphElement representing a horizontal line.", +"id": "HorizontalRule", +"properties": { +"suggestedDeletionIds": { +"description": "The suggested deletion IDs. If empty, then there are no suggested deletions of this content.", +"items": { +"type": "string" +}, +"type": "array" +}, +"suggestedInsertionIds": { +"description": "The suggested insertion IDs. A HorizontalRule may have multiple insertion IDs if it is a nested suggested change. If empty, then this is not a suggested insertion.", +"items": { +"type": "string" +}, +"type": "array" +}, +"suggestedTextStyleChanges": { +"additionalProperties": { +"$ref": "SuggestedTextStyle" +}, +"description": "The suggested text style changes to this HorizontalRule, keyed by suggestion ID.", +"type": "object" +}, +"textStyle": { +"$ref": "TextStyle", +"description": "The text style of this HorizontalRule. Similar to text content, like text runs and footnote references, the text style of a horizontal rule can affect content layout as well as the styling of text inserted next to it." +} +}, +"type": "object" +}, +"ImageProperties": { +"description": "The properties of an image.", +"id": "ImageProperties", +"properties": { +"angle": { +"description": "The clockwise rotation angle of the image, in radians.", +"format": "float", +"type": "number" +}, +"brightness": { +"description": "The brightness effect of the image. The value should be in the interval [-1.0, 1.0], where 0 means no effect.", +"format": "float", +"type": "number" +}, +"contentUri": { +"description": "A URI to the image with a default lifetime of 30 minutes. This URI is tagged with the account of the requester. Anyone with the URI effectively accesses the image as the original requester. Access to the image may be lost if the document's sharing settings change.", +"type": "string" +}, +"contrast": { +"description": "The contrast effect of the image. The value should be in the interval [-1.0, 1.0], where 0 means no effect.", +"format": "float", +"type": "number" +}, +"cropProperties": { +"$ref": "CropProperties", +"description": "The crop properties of the image." +}, +"sourceUri": { +"description": "The source URI is the URI used to insert the image. The source URI can be empty.", +"type": "string" +}, +"transparency": { +"description": "The transparency effect of the image. The value should be in the interval [0.0, 1.0], where 0 means no effect and 1 means transparent.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"ImagePropertiesSuggestionState": { +"description": "A mask that indicates which of the fields on the base ImageProperties have been changed in this suggestion. For any field set to true, there's a new suggested value.", +"id": "ImagePropertiesSuggestionState", +"properties": { +"angleSuggested": { +"description": "Indicates if there was a suggested change to angle.", +"type": "boolean" +}, +"brightnessSuggested": { +"description": "Indicates if there was a suggested change to brightness.", +"type": "boolean" +}, +"contentUriSuggested": { +"description": "Indicates if there was a suggested change to content_uri.", +"type": "boolean" +}, +"contrastSuggested": { +"description": "Indicates if there was a suggested change to contrast.", +"type": "boolean" +}, +"cropPropertiesSuggestionState": { +"$ref": "CropPropertiesSuggestionState", +"description": "A mask that indicates which of the fields in crop_properties have been changed in this suggestion." +}, +"sourceUriSuggested": { +"description": "Indicates if there was a suggested change to source_uri.", +"type": "boolean" +}, +"transparencySuggested": { +"description": "Indicates if there was a suggested change to transparency.", +"type": "boolean" +} +}, +"type": "object" +}, +"InlineObject": { +"description": "An object that appears inline with text. An InlineObject contains an EmbeddedObject such as an image.", +"id": "InlineObject", +"properties": { +"inlineObjectProperties": { +"$ref": "InlineObjectProperties", +"description": "The properties of this inline object." +}, +"objectId": { +"description": "The ID of this inline object. Can be used to update an object\u2019s properties.", +"type": "string" +}, +"suggestedDeletionIds": { +"description": "The suggested deletion IDs. If empty, then there are no suggested deletions of this content.", +"items": { +"type": "string" +}, +"type": "array" +}, +"suggestedInlineObjectPropertiesChanges": { +"additionalProperties": { +"$ref": "SuggestedInlineObjectProperties" +}, +"description": "The suggested changes to the inline object properties, keyed by suggestion ID.", +"type": "object" +}, +"suggestedInsertionId": { +"description": "The suggested insertion ID. If empty, then this is not a suggested insertion.", +"type": "string" +} +}, +"type": "object" +}, +"InlineObjectElement": { +"description": "A ParagraphElement that contains an InlineObject.", +"id": "InlineObjectElement", +"properties": { +"inlineObjectId": { +"description": "The ID of the InlineObject this element contains.", +"type": "string" +}, +"suggestedDeletionIds": { +"description": "The suggested deletion IDs. If empty, then there are no suggested deletions of this content.", +"items": { +"type": "string" +}, +"type": "array" +}, +"suggestedInsertionIds": { +"description": "The suggested insertion IDs. An InlineObjectElement may have multiple insertion IDs if it's a nested suggested change. If empty, then this is not a suggested insertion.", +"items": { +"type": "string" +}, +"type": "array" +}, +"suggestedTextStyleChanges": { +"additionalProperties": { +"$ref": "SuggestedTextStyle" +}, +"description": "The suggested text style changes to this InlineObject, keyed by suggestion ID.", +"type": "object" +}, +"textStyle": { +"$ref": "TextStyle", +"description": "The text style of this InlineObjectElement. Similar to text content, like text runs and footnote references, the text style of an inline object element can affect content layout as well as the styling of text inserted next to it." +} +}, +"type": "object" +}, +"InlineObjectProperties": { +"description": "Properties of an InlineObject.", +"id": "InlineObjectProperties", +"properties": { +"embeddedObject": { +"$ref": "EmbeddedObject", +"description": "The embedded object of this inline object." +} +}, +"type": "object" +}, +"InlineObjectPropertiesSuggestionState": { +"description": "A mask that indicates which of the fields on the base InlineObjectProperties have been changed in this suggestion. For any field set to true, there's a new suggested value.", +"id": "InlineObjectPropertiesSuggestionState", +"properties": { +"embeddedObjectSuggestionState": { +"$ref": "EmbeddedObjectSuggestionState", +"description": "A mask that indicates which of the fields in embedded_object have been changed in this suggestion." +} +}, +"type": "object" +}, +"InsertInlineImageRequest": { +"description": "Inserts an InlineObject containing an image at the given location.", +"id": "InsertInlineImageRequest", +"properties": { +"endOfSegmentLocation": { +"$ref": "EndOfSegmentLocation", +"description": "Inserts the text at the end of a header, footer or the document body. Inline images cannot be inserted inside a footnote." +}, +"location": { +"$ref": "Location", +"description": "Inserts the image at a specific index in the document. The image must be inserted inside the bounds of an existing Paragraph. For instance, it cannot be inserted at a table's start index (i.e. between the table and its preceding paragraph). Inline images cannot be inserted inside a footnote or equation." +}, +"objectSize": { +"$ref": "Size", +"description": "The size that the image should appear as in the document. This property is optional and the final size of the image in the document is determined by the following rules: * If neither width nor height is specified, then a default size of the image is calculated based on its resolution. * If one dimension is specified then the other dimension is calculated to preserve the aspect ratio of the image. * If both width and height are specified, the image is scaled to fit within the provided dimensions while maintaining its aspect ratio." +}, +"uri": { +"description": "The image URI. The image is fetched once at insertion time and a copy is stored for display inside the document. Images must be less than 50MB in size, cannot exceed 25 megapixels, and must be in one of PNG, JPEG, or GIF format. The provided URI must be publicly accessible and at most 2 kB in length. The URI itself is saved with the image, and exposed via the ImageProperties.content_uri field.", +"type": "string" +} +}, +"type": "object" +}, +"InsertInlineImageResponse": { +"description": "The result of inserting an inline image.", +"id": "InsertInlineImageResponse", +"properties": { +"objectId": { +"description": "The ID of the created InlineObject.", +"type": "string" +} +}, +"type": "object" +}, +"InsertInlineSheetsChartResponse": { +"description": "The result of inserting an embedded Google Sheets chart.", +"id": "InsertInlineSheetsChartResponse", +"properties": { +"objectId": { +"description": "The object ID of the inserted chart.", +"type": "string" +} +}, +"type": "object" +}, +"InsertPageBreakRequest": { +"description": "Inserts a page break followed by a newline at the specified location.", +"id": "InsertPageBreakRequest", +"properties": { +"endOfSegmentLocation": { +"$ref": "EndOfSegmentLocation", +"description": "Inserts the page break at the end of the document body. Page breaks cannot be inserted inside a footnote, header or footer. Since page breaks can only be inserted inside the body, the segment ID field must be empty." +}, +"location": { +"$ref": "Location", +"description": "Inserts the page break at a specific index in the document. The page break must be inserted inside the bounds of an existing Paragraph. For instance, it cannot be inserted at a table's start index (i.e. between the table and its preceding paragraph). Page breaks cannot be inserted inside a table, equation, footnote, header or footer. Since page breaks can only be inserted inside the body, the segment ID field must be empty." +} +}, +"type": "object" +}, +"InsertSectionBreakRequest": { +"description": "Inserts a section break at the given location. A newline character will be inserted before the section break.", +"id": "InsertSectionBreakRequest", +"properties": { +"endOfSegmentLocation": { +"$ref": "EndOfSegmentLocation", +"description": "Inserts a newline and a section break at the end of the document body. Section breaks cannot be inserted inside a footnote, header or footer. Because section breaks can only be inserted inside the body, the segment ID field must be empty." +}, +"location": { +"$ref": "Location", +"description": "Inserts a newline and a section break at a specific index in the document. The section break must be inserted inside the bounds of an existing Paragraph. For instance, it cannot be inserted at a table's start index (i.e. between the table and its preceding paragraph). Section breaks cannot be inserted inside a table, equation, footnote, header, or footer. Since section breaks can only be inserted inside the body, the segment ID field must be empty." +}, +"sectionType": { +"description": "The type of section to insert.", +"enum": [ +"SECTION_TYPE_UNSPECIFIED", +"CONTINUOUS", +"NEXT_PAGE" +], +"enumDescriptions": [ +"The section type is unspecified.", +"The section starts immediately after the last paragraph of the previous section.", +"The section starts on the next page." +], +"type": "string" +} +}, +"type": "object" +}, +"InsertTableColumnRequest": { +"description": "Inserts an empty column into a table.", +"id": "InsertTableColumnRequest", +"properties": { +"insertRight": { +"description": "Whether to insert new column to the right of the reference cell location. - `True`: insert to the right. - `False`: insert to the left.", +"type": "boolean" +}, +"tableCellLocation": { +"$ref": "TableCellLocation", +"description": "The reference table cell location from which columns will be inserted. A new column will be inserted to the left (or right) of the column where the reference cell is. If the reference cell is a merged cell, a new column will be inserted to the left (or right) of the merged cell." +} +}, +"type": "object" +}, +"InsertTableRequest": { +"description": "Inserts a table at the specified location. A newline character will be inserted before the inserted table.", +"id": "InsertTableRequest", +"properties": { +"columns": { +"description": "The number of columns in the table.", +"format": "int32", +"type": "integer" +}, +"endOfSegmentLocation": { +"$ref": "EndOfSegmentLocation", +"description": "Inserts the table at the end of the given header, footer or document body. A newline character will be inserted before the inserted table. Tables cannot be inserted inside a footnote." +}, +"location": { +"$ref": "Location", +"description": "Inserts the table at a specific model index. A newline character will be inserted before the inserted table, therefore the table start index will be at the specified location index + 1. The table must be inserted inside the bounds of an existing Paragraph. For instance, it cannot be inserted at a table's start index (i.e. between an existing table and its preceding paragraph). Tables cannot be inserted inside a footnote or equation." +}, +"rows": { +"description": "The number of rows in the table.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"InsertTableRowRequest": { +"description": "Inserts an empty row into a table.", +"id": "InsertTableRowRequest", +"properties": { +"insertBelow": { +"description": "Whether to insert new row below the reference cell location. - `True`: insert below the cell. - `False`: insert above the cell.", +"type": "boolean" +}, +"tableCellLocation": { +"$ref": "TableCellLocation", +"description": "The reference table cell location from which rows will be inserted. A new row will be inserted above (or below) the row where the reference cell is. If the reference cell is a merged cell, a new row will be inserted above (or below) the merged cell." +} +}, +"type": "object" +}, +"InsertTextRequest": { +"description": "Inserts text at the specified location.", +"id": "InsertTextRequest", +"properties": { +"endOfSegmentLocation": { +"$ref": "EndOfSegmentLocation", +"description": "Inserts the text at the end of a header, footer, footnote or the document body." +}, +"location": { +"$ref": "Location", +"description": "Inserts the text at a specific index in the document. Text must be inserted inside the bounds of an existing Paragraph. For instance, text cannot be inserted at a table's start index (i.e. between the table and its preceding paragraph). The text must be inserted in the preceding paragraph." +}, +"text": { +"description": "The text to be inserted. Inserting a newline character will implicitly create a new Paragraph at that index. The paragraph style of the new paragraph will be copied from the paragraph at the current insertion index, including lists and bullets. Text styles for inserted text will be determined automatically, generally preserving the styling of neighboring text. In most cases, the text style for the inserted text will match the text immediately before the insertion index. Some control characters (U+0000-U+0008, U+000C-U+001F) and characters from the Unicode Basic Multilingual Plane Private Use Area (U+E000-U+F8FF) will be stripped out of the inserted text.", +"type": "string" +} +}, +"type": "object" +}, +"Link": { +"description": "A reference to another portion of a document or an external URL resource.", +"id": "Link", +"properties": { +"bookmark": { +"$ref": "BookmarkLink", +"description": "A bookmark in this document. In documents containing a single tab, links to bookmarks within the singular tab continue to return Link.bookmarkId when the includeTabsContent parameter is set to `false` or unset. Otherwise, this field is returned." +}, +"bookmarkId": { +"description": "The ID of a bookmark in this document. Legacy field: Instead, set includeTabsContent to `true` and use Link.bookmark for read and write operations. This field is only returned when includeTabsContent is set to `false` in documents containing a single tab and links to a bookmark within the singular tab. Otherwise, Link.bookmark is returned. If this field is used in a write request, the bookmark is considered to be from the tab ID specified in the request. If a tab ID is not specified in the request, it is considered to be from the first tab in the document.", +"type": "string" +}, +"heading": { +"$ref": "HeadingLink", +"description": "A heading in this document. In documents containing a single tab, links to headings within the singular tab continue to return Link.headingId when the includeTabsContent parameter is set to `false` or unset. Otherwise, this field is returned." +}, +"headingId": { +"description": "The ID of a heading in this document. Legacy field: Instead, set includeTabsContent to `true` and use Link.heading for read and write operations. This field is only returned when includeTabsContent is set to `false` in documents containing a single tab and links to a heading within the singular tab. Otherwise, Link.heading is returned. If this field is used in a write request, the heading is considered to be from the tab ID specified in the request. If a tab ID is not specified in the request, it is considered to be from the first tab in the document.", +"type": "string" +}, +"tabId": { +"description": "The ID of a tab in this document.", +"type": "string" +}, +"url": { +"description": "An external URL.", +"type": "string" +} +}, +"type": "object" +}, +"LinkedContentReference": { +"description": "A reference to the external linked source content.", +"id": "LinkedContentReference", +"properties": { +"sheetsChartReference": { +"$ref": "SheetsChartReference", +"description": "A reference to the linked chart." +} +}, +"type": "object" +}, +"LinkedContentReferenceSuggestionState": { +"description": "A mask that indicates which of the fields on the base LinkedContentReference have been changed in this suggestion. For any field set to true, there's a new suggested value.", +"id": "LinkedContentReferenceSuggestionState", +"properties": { +"sheetsChartReferenceSuggestionState": { +"$ref": "SheetsChartReferenceSuggestionState", +"description": "A mask that indicates which of the fields in sheets_chart_reference have been changed in this suggestion." +} +}, +"type": "object" +}, +"List": { +"description": "A List represents the list attributes for a group of paragraphs that all belong to the same list. A paragraph that's part of a list has a reference to the list's ID in its bullet.", +"id": "List", +"properties": { +"listProperties": { +"$ref": "ListProperties", +"description": "The properties of the list." +}, +"suggestedDeletionIds": { +"description": "The suggested deletion IDs. If empty, then there are no suggested deletions of this list.", +"items": { +"type": "string" +}, +"type": "array" +}, +"suggestedInsertionId": { +"description": "The suggested insertion ID. If empty, then this is not a suggested insertion.", +"type": "string" +}, +"suggestedListPropertiesChanges": { +"additionalProperties": { +"$ref": "SuggestedListProperties" +}, +"description": "The suggested changes to the list properties, keyed by suggestion ID.", +"type": "object" +} +}, +"type": "object" +}, +"ListProperties": { +"description": "The properties of a list that describe the look and feel of bullets belonging to paragraphs associated with a list.", +"id": "ListProperties", +"properties": { +"nestingLevels": { +"description": "Describes the properties of the bullets at the associated level. A list has at most 9 levels of nesting with nesting level 0 corresponding to the top-most level and nesting level 8 corresponding to the most nested level. The nesting levels are returned in ascending order with the least nested returned first.", +"items": { +"$ref": "NestingLevel" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListPropertiesSuggestionState": { +"description": "A mask that indicates which of the fields on the base ListProperties have been changed in this suggestion. For any field set to true, there's a new suggested value.", +"id": "ListPropertiesSuggestionState", +"properties": { +"nestingLevelsSuggestionStates": { +"description": "A mask that indicates which of the fields on the corresponding NestingLevel in nesting_levels have been changed in this suggestion. The nesting level suggestion states are returned in ascending order of the nesting level with the least nested returned first.", +"items": { +"$ref": "NestingLevelSuggestionState" +}, +"type": "array" +} +}, +"type": "object" +}, +"Location": { +"description": "A particular location in the document.", +"id": "Location", +"properties": { +"index": { +"description": "The zero-based index, in UTF-16 code units. The index is relative to the beginning of the segment specified by segment_id.", +"format": "int32", +"type": "integer" +}, +"segmentId": { +"description": "The ID of the header, footer or footnote the location is in. An empty segment ID signifies the document's body.", +"type": "string" +}, +"tabId": { +"description": "The tab that the location is in. When omitted, the request is applied to the first tab. In a document containing a single tab: - If provided, must match the singular tab's ID. - If omitted, the request applies to the singular tab. In a document containing multiple tabs: - If provided, the request applies to the specified tab. - If omitted, the request applies to the first tab in the document.", +"type": "string" +} +}, +"type": "object" +}, +"MergeTableCellsRequest": { +"description": "Merges cells in a Table.", +"id": "MergeTableCellsRequest", +"properties": { +"tableRange": { +"$ref": "TableRange", +"description": "The table range specifying which cells of the table to merge. Any text in the cells being merged will be concatenated and stored in the \"head\" cell of the range. This is the upper-left cell of the range when the content direction is left to right, and the upper-right cell of the range otherwise. If the range is non-rectangular (which can occur in some cases where the range covers cells that are already merged or where the table is non-rectangular), a 400 bad request error is returned." +} +}, +"type": "object" +}, +"NamedRange": { +"description": "A collection of Ranges with the same named range ID. Named ranges allow developers to associate parts of a document with an arbitrary user-defined label so their contents can be programmatically read or edited later. A document can contain multiple named ranges with the same name, but every named range has a unique ID. A named range is created with a single Range, and content inserted inside a named range generally expands that range. However, certain document changes can cause the range to be split into multiple ranges. Named ranges are not private. All applications and collaborators that have access to the document can see its named ranges.", +"id": "NamedRange", +"properties": { +"name": { +"description": "The name of the named range.", +"type": "string" +}, +"namedRangeId": { +"description": "The ID of the named range.", +"type": "string" +}, +"ranges": { +"description": "The ranges that belong to this named range.", +"items": { +"$ref": "Range" +}, +"type": "array" +} +}, +"type": "object" +}, +"NamedRanges": { +"description": "A collection of all the NamedRanges in the document that share a given name.", +"id": "NamedRanges", +"properties": { +"name": { +"description": "The name that all the named ranges share.", +"type": "string" +}, +"namedRanges": { +"description": "The NamedRanges that share the same name.", +"items": { +"$ref": "NamedRange" +}, +"type": "array" +} +}, +"type": "object" +}, +"NamedStyle": { +"description": "A named style. Paragraphs in the document can inherit their TextStyle and ParagraphStyle from this named style when they have the same named style type.", +"id": "NamedStyle", +"properties": { +"namedStyleType": { +"description": "The type of this named style.", +"enum": [ +"NAMED_STYLE_TYPE_UNSPECIFIED", +"NORMAL_TEXT", +"TITLE", +"SUBTITLE", +"HEADING_1", +"HEADING_2", +"HEADING_3", +"HEADING_4", +"HEADING_5", +"HEADING_6" +], +"enumDescriptions": [ +"The type of named style is unspecified.", +"Normal text.", +"Title.", +"Subtitle.", +"Heading 1.", +"Heading 2.", +"Heading 3.", +"Heading 4.", +"Heading 5.", +"Heading 6." +], +"type": "string" +}, +"paragraphStyle": { +"$ref": "ParagraphStyle", +"description": "The paragraph style of this named style." +}, +"textStyle": { +"$ref": "TextStyle", +"description": "The text style of this named style." +} +}, +"type": "object" +}, +"NamedStyleSuggestionState": { +"description": "A suggestion state of a NamedStyle message.", +"id": "NamedStyleSuggestionState", +"properties": { +"namedStyleType": { +"description": "The named style type that this suggestion state corresponds to. This field is provided as a convenience for matching the NamedStyleSuggestionState with its corresponding NamedStyle.", +"enum": [ +"NAMED_STYLE_TYPE_UNSPECIFIED", +"NORMAL_TEXT", +"TITLE", +"SUBTITLE", +"HEADING_1", +"HEADING_2", +"HEADING_3", +"HEADING_4", +"HEADING_5", +"HEADING_6" +], +"enumDescriptions": [ +"The type of named style is unspecified.", +"Normal text.", +"Title.", +"Subtitle.", +"Heading 1.", +"Heading 2.", +"Heading 3.", +"Heading 4.", +"Heading 5.", +"Heading 6." +], +"type": "string" +}, +"paragraphStyleSuggestionState": { +"$ref": "ParagraphStyleSuggestionState", +"description": "A mask that indicates which of the fields in paragraph style have been changed in this suggestion." +}, +"textStyleSuggestionState": { +"$ref": "TextStyleSuggestionState", +"description": "A mask that indicates which of the fields in text style have been changed in this suggestion." +} +}, +"type": "object" +}, +"NamedStyles": { +"description": "The named styles. Paragraphs in the document can inherit their TextStyle and ParagraphStyle from these named styles.", +"id": "NamedStyles", +"properties": { +"styles": { +"description": "The named styles. There's an entry for each of the possible named style types.", +"items": { +"$ref": "NamedStyle" +}, +"type": "array" +} +}, +"type": "object" +}, +"NamedStylesSuggestionState": { +"description": "The suggestion state of a NamedStyles message.", +"id": "NamedStylesSuggestionState", +"properties": { +"stylesSuggestionStates": { +"description": "A mask that indicates which of the fields on the corresponding NamedStyle in styles have been changed in this suggestion. The order of these named style suggestion states matches the order of the corresponding named style within the named styles suggestion.", +"items": { +"$ref": "NamedStyleSuggestionState" +}, +"type": "array" +} +}, +"type": "object" +}, +"NestingLevel": { +"description": "Contains properties describing the look and feel of a list bullet at a given level of nesting.", +"id": "NestingLevel", +"properties": { +"bulletAlignment": { +"description": "The alignment of the bullet within the space allotted for rendering the bullet.", +"enum": [ +"BULLET_ALIGNMENT_UNSPECIFIED", +"START", +"CENTER", +"END" +], +"enumDescriptions": [ +"The bullet alignment is unspecified.", +"The bullet is aligned to the start of the space allotted for rendering the bullet. Left-aligned for LTR text, right-aligned otherwise.", +"The bullet is aligned to the center of the space allotted for rendering the bullet.", +"The bullet is aligned to the end of the space allotted for rendering the bullet. Right-aligned for LTR text, left-aligned otherwise." +], +"type": "string" +}, +"glyphFormat": { +"description": "The format string used by bullets at this level of nesting. The glyph format contains one or more placeholders, and these placeholders are replaced with the appropriate values depending on the glyph_type or glyph_symbol. The placeholders follow the pattern `%[nesting_level]`. Furthermore, placeholders can have prefixes and suffixes. Thus, the glyph format follows the pattern `%[nesting_level]`. Note that the prefix and suffix are optional and can be arbitrary strings. For example, the glyph format `%0.` indicates that the rendered glyph will replace the placeholder with the corresponding glyph for nesting level 0 followed by a period as the suffix. So a list with a glyph type of UPPER_ALPHA and glyph format `%0.` at nesting level 0 will result in a list with rendered glyphs `A.` `B.` `C.` The glyph format can contain placeholders for the current nesting level as well as placeholders for parent nesting levels. For example, a list can have a glyph format of `%0.` at nesting level 0 and a glyph format of `%0.%1.` at nesting level 1. Assuming both nesting levels have DECIMAL glyph types, this would result in a list with rendered glyphs `1.` `2.` ` 2.1.` ` 2.2.` `3.` For nesting levels that are ordered, the string that replaces a placeholder in the glyph format for a particular paragraph depends on the paragraph's order within the list.", +"type": "string" +}, +"glyphSymbol": { +"description": "A custom glyph symbol used by bullets when paragraphs at this level of nesting are unordered. The glyph symbol replaces placeholders within the glyph_format. For example, if the glyph_symbol is the solid circle corresponding to Unicode U+25cf code point and the glyph_format is `%0`, the rendered glyph would be the solid circle.", +"type": "string" +}, +"glyphType": { +"description": "The type of glyph used by bullets when paragraphs at this level of nesting are ordered. The glyph type determines the type of glyph used to replace placeholders within the glyph_format when paragraphs at this level of nesting are ordered. For example, if the nesting level is 0, the glyph_format is `%0.` and the glyph type is DECIMAL, then the rendered glyph would replace the placeholder `%0` in the glyph format with a number corresponding to list item's order within the list.", +"enum": [ +"GLYPH_TYPE_UNSPECIFIED", +"NONE", +"DECIMAL", +"ZERO_DECIMAL", +"UPPER_ALPHA", +"ALPHA", +"UPPER_ROMAN", +"ROMAN" +], +"enumDescriptions": [ +"The glyph type is unspecified or unsupported.", +"An empty string.", +"A number, like `1`, `2`, or `3`.", +"A number where single digit numbers are prefixed with a zero, like `01`, `02`, or `03`. Numbers with more than one digit are not prefixed with a zero.", +"An uppercase letter, like `A`, `B`, or `C`.", +"A lowercase letter, like `a`, `b`, or `c`.", +"An uppercase Roman numeral, like `I`, `II`, or `III`.", +"A lowercase Roman numeral, like `i`, `ii`, or `iii`." +], +"type": "string" +}, +"indentFirstLine": { +"$ref": "Dimension", +"description": "The amount of indentation for the first line of paragraphs at this level of nesting." +}, +"indentStart": { +"$ref": "Dimension", +"description": "The amount of indentation for paragraphs at this level of nesting. Applied to the side that corresponds to the start of the text, based on the paragraph's content direction." +}, +"startNumber": { +"description": "The number of the first list item at this nesting level. A value of 0 is treated as a value of 1 for lettered lists and Roman numeral lists. For values of both 0 and 1, lettered and Roman numeral lists will begin at `a` and `i` respectively. This value is ignored for nesting levels with unordered glyphs.", +"format": "int32", +"type": "integer" +}, +"textStyle": { +"$ref": "TextStyle", +"description": "The text style of bullets at this level of nesting." +} +}, +"type": "object" +}, +"NestingLevelSuggestionState": { +"description": "A mask that indicates which of the fields on the base NestingLevel have been changed in this suggestion. For any field set to true, there's a new suggested value.", +"id": "NestingLevelSuggestionState", +"properties": { +"bulletAlignmentSuggested": { +"description": "Indicates if there was a suggested change to bullet_alignment.", +"type": "boolean" +}, +"glyphFormatSuggested": { +"description": "Indicates if there was a suggested change to glyph_format.", +"type": "boolean" +}, +"glyphSymbolSuggested": { +"description": "Indicates if there was a suggested change to glyph_symbol.", +"type": "boolean" +}, +"glyphTypeSuggested": { +"description": "Indicates if there was a suggested change to glyph_type.", +"type": "boolean" +}, +"indentFirstLineSuggested": { +"description": "Indicates if there was a suggested change to indent_first_line.", +"type": "boolean" +}, +"indentStartSuggested": { +"description": "Indicates if there was a suggested change to indent_start.", +"type": "boolean" +}, +"startNumberSuggested": { +"description": "Indicates if there was a suggested change to start_number.", +"type": "boolean" +}, +"textStyleSuggestionState": { +"$ref": "TextStyleSuggestionState", +"description": "A mask that indicates which of the fields in text style have been changed in this suggestion." +} +}, +"type": "object" +}, +"ObjectReferences": { +"description": "A collection of object IDs.", +"id": "ObjectReferences", +"properties": { +"objectIds": { +"description": "The object IDs.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"OptionalColor": { +"description": "A color that can either be fully opaque or fully transparent.", +"id": "OptionalColor", +"properties": { +"color": { +"$ref": "Color", +"description": "If set, this will be used as an opaque color. If unset, this represents a transparent color." +} +}, +"type": "object" +}, +"PageBreak": { +"description": "A ParagraphElement representing a page break. A page break makes the subsequent text start at the top of the next page.", +"id": "PageBreak", +"properties": { +"suggestedDeletionIds": { +"description": "The suggested deletion IDs. If empty, then there are no suggested deletions of this content.", +"items": { +"type": "string" +}, +"type": "array" +}, +"suggestedInsertionIds": { +"description": "The suggested insertion IDs. A PageBreak may have multiple insertion IDs if it's a nested suggested change. If empty, then this is not a suggested insertion.", +"items": { +"type": "string" +}, +"type": "array" +}, +"suggestedTextStyleChanges": { +"additionalProperties": { +"$ref": "SuggestedTextStyle" +}, +"description": "The suggested text style changes to this PageBreak, keyed by suggestion ID.", +"type": "object" +}, +"textStyle": { +"$ref": "TextStyle", +"description": "The text style of this PageBreak. Similar to text content, like text runs and footnote references, the text style of a page break can affect content layout as well as the styling of text inserted next to it." +} +}, +"type": "object" +}, +"Paragraph": { +"description": "A StructuralElement representing a paragraph. A paragraph is a range of content that's terminated with a newline character.", +"id": "Paragraph", +"properties": { +"bullet": { +"$ref": "Bullet", +"description": "The bullet for this paragraph. If not present, the paragraph does not belong to a list." +}, +"elements": { +"description": "The content of the paragraph, broken down into its component parts.", +"items": { +"$ref": "ParagraphElement" +}, +"type": "array" +}, +"paragraphStyle": { +"$ref": "ParagraphStyle", +"description": "The style of this paragraph." +}, +"positionedObjectIds": { +"description": "The IDs of the positioned objects tethered to this paragraph.", +"items": { +"type": "string" +}, +"type": "array" +}, +"suggestedBulletChanges": { +"additionalProperties": { +"$ref": "SuggestedBullet" +}, +"description": "The suggested changes to this paragraph's bullet.", +"type": "object" +}, +"suggestedParagraphStyleChanges": { +"additionalProperties": { +"$ref": "SuggestedParagraphStyle" +}, +"description": "The suggested paragraph style changes to this paragraph, keyed by suggestion ID.", +"type": "object" +}, +"suggestedPositionedObjectIds": { +"additionalProperties": { +"$ref": "ObjectReferences" +}, +"description": "The IDs of the positioned objects suggested to be attached to this paragraph, keyed by suggestion ID.", +"type": "object" +} +}, +"type": "object" +}, +"ParagraphBorder": { +"description": "A border around a paragraph.", +"id": "ParagraphBorder", +"properties": { +"color": { +"$ref": "OptionalColor", +"description": "The color of the border." +}, +"dashStyle": { +"description": "The dash style of the border.", +"enum": [ +"DASH_STYLE_UNSPECIFIED", +"SOLID", +"DOT", +"DASH" +], +"enumDescriptions": [ +"Unspecified dash style.", +"Solid line. Corresponds to ECMA-376 ST_PresetLineDashVal value 'solid'. This is the default dash style.", +"Dotted line. Corresponds to ECMA-376 ST_PresetLineDashVal value 'dot'.", +"Dashed line. Corresponds to ECMA-376 ST_PresetLineDashVal value 'dash'." +], +"type": "string" +}, +"padding": { +"$ref": "Dimension", +"description": "The padding of the border." +}, +"width": { +"$ref": "Dimension", +"description": "The width of the border." +} +}, +"type": "object" +}, +"ParagraphElement": { +"description": "A ParagraphElement describes content within a Paragraph.", +"id": "ParagraphElement", +"properties": { +"autoText": { +"$ref": "AutoText", +"description": "An auto text paragraph element." +}, +"columnBreak": { +"$ref": "ColumnBreak", +"description": "A column break paragraph element." +}, +"endIndex": { +"description": "The zero-base end index of this paragraph element, exclusive, in UTF-16 code units.", +"format": "int32", +"type": "integer" +}, +"equation": { +"$ref": "Equation", +"description": "An equation paragraph element." +}, +"footnoteReference": { +"$ref": "FootnoteReference", +"description": "A footnote reference paragraph element." +}, +"horizontalRule": { +"$ref": "HorizontalRule", +"description": "A horizontal rule paragraph element." +}, +"inlineObjectElement": { +"$ref": "InlineObjectElement", +"description": "An inline object paragraph element." +}, +"pageBreak": { +"$ref": "PageBreak", +"description": "A page break paragraph element." +}, +"person": { +"$ref": "Person", +"description": "A paragraph element that links to a person or email address." +}, +"richLink": { +"$ref": "RichLink", +"description": "A paragraph element that links to a Google resource (such as a file in Google Drive, a YouTube video, or a Calendar event.)" +}, +"startIndex": { +"description": "The zero-based start index of this paragraph element, in UTF-16 code units.", +"format": "int32", +"type": "integer" +}, +"textRun": { +"$ref": "TextRun", +"description": "A text run paragraph element." +} +}, +"type": "object" +}, +"ParagraphStyle": { +"description": "Styles that apply to a whole paragraph. Inherited paragraph styles are represented as unset fields in this message. A paragraph style's parent depends on where the paragraph style is defined: * The ParagraphStyle on a Paragraph inherits from the paragraph's corresponding named style type. * The ParagraphStyle on a named style inherits from the normal text named style. * The ParagraphStyle of the normal text named style inherits from the default paragraph style in the Docs editor. * The ParagraphStyle on a Paragraph element that's contained in a table may inherit its paragraph style from the table style. If the paragraph style does not inherit from a parent, unsetting fields will revert the style to a value matching the defaults in the Docs editor.", +"id": "ParagraphStyle", +"properties": { +"alignment": { +"description": "The text alignment for this paragraph.", +"enum": [ +"ALIGNMENT_UNSPECIFIED", +"START", +"CENTER", +"END", +"JUSTIFIED" +], +"enumDescriptions": [ +"The paragraph alignment is inherited from the parent.", +"The paragraph is aligned to the start of the line. Left-aligned for LTR text, right-aligned otherwise.", +"The paragraph is centered.", +"The paragraph is aligned to the end of the line. Right-aligned for LTR text, left-aligned otherwise.", +"The paragraph is justified." +], +"type": "string" +}, +"avoidWidowAndOrphan": { +"description": "Whether to avoid widows and orphans for the paragraph. If unset, the value is inherited from the parent.", +"type": "boolean" +}, +"borderBetween": { +"$ref": "ParagraphBorder", +"description": "The border between this paragraph and the next and previous paragraphs. If unset, the value is inherited from the parent. The between border is rendered when the adjacent paragraph has the same border and indent properties. Paragraph borders cannot be partially updated. When changing a paragraph border, the new border must be specified in its entirety." +}, +"borderBottom": { +"$ref": "ParagraphBorder", +"description": "The border at the bottom of this paragraph. If unset, the value is inherited from the parent. The bottom border is rendered when the paragraph below has different border and indent properties. Paragraph borders cannot be partially updated. When changing a paragraph border, the new border must be specified in its entirety." +}, +"borderLeft": { +"$ref": "ParagraphBorder", +"description": "The border to the left of this paragraph. If unset, the value is inherited from the parent. Paragraph borders cannot be partially updated. When changing a paragraph border, the new border must be specified in its entirety." +}, +"borderRight": { +"$ref": "ParagraphBorder", +"description": "The border to the right of this paragraph. If unset, the value is inherited from the parent. Paragraph borders cannot be partially updated. When changing a paragraph border, the new border must be specified in its entirety." +}, +"borderTop": { +"$ref": "ParagraphBorder", +"description": "The border at the top of this paragraph. If unset, the value is inherited from the parent. The top border is rendered when the paragraph above has different border and indent properties. Paragraph borders cannot be partially updated. When changing a paragraph border, the new border must be specified in its entirety." +}, +"direction": { +"description": "The text direction of this paragraph. If unset, the value defaults to LEFT_TO_RIGHT since paragraph direction is not inherited.", +"enum": [ +"CONTENT_DIRECTION_UNSPECIFIED", +"LEFT_TO_RIGHT", +"RIGHT_TO_LEFT" +], +"enumDescriptions": [ +"The content direction is unspecified.", +"The content goes from left to right.", +"The content goes from right to left." +], +"type": "string" +}, +"headingId": { +"description": "The heading ID of the paragraph. If empty, then this paragraph is not a heading. This property is read-only.", +"type": "string" +}, +"indentEnd": { +"$ref": "Dimension", +"description": "The amount of indentation for the paragraph on the side that corresponds to the end of the text, based on the current paragraph direction. If unset, the value is inherited from the parent." +}, +"indentFirstLine": { +"$ref": "Dimension", +"description": "The amount of indentation for the first line of the paragraph. If unset, the value is inherited from the parent." +}, +"indentStart": { +"$ref": "Dimension", +"description": "The amount of indentation for the paragraph on the side that corresponds to the start of the text, based on the current paragraph direction. If unset, the value is inherited from the parent." +}, +"keepLinesTogether": { +"description": "Whether all lines of the paragraph should be laid out on the same page or column if possible. If unset, the value is inherited from the parent.", +"type": "boolean" +}, +"keepWithNext": { +"description": "Whether at least a part of this paragraph should be laid out on the same page or column as the next paragraph if possible. If unset, the value is inherited from the parent.", +"type": "boolean" +}, +"lineSpacing": { +"description": "The amount of space between lines, as a percentage of normal, where normal is represented as 100.0. If unset, the value is inherited from the parent.", +"format": "float", +"type": "number" +}, +"namedStyleType": { +"description": "The named style type of the paragraph. Since updating the named style type affects other properties within ParagraphStyle, the named style type is applied before the other properties are updated.", +"enum": [ +"NAMED_STYLE_TYPE_UNSPECIFIED", +"NORMAL_TEXT", +"TITLE", +"SUBTITLE", +"HEADING_1", +"HEADING_2", +"HEADING_3", +"HEADING_4", +"HEADING_5", +"HEADING_6" +], +"enumDescriptions": [ +"The type of named style is unspecified.", +"Normal text.", +"Title.", +"Subtitle.", +"Heading 1.", +"Heading 2.", +"Heading 3.", +"Heading 4.", +"Heading 5.", +"Heading 6." +], +"type": "string" +}, +"pageBreakBefore": { +"description": "Whether the current paragraph should always start at the beginning of a page. If unset, the value is inherited from the parent. Attempting to update page_break_before for paragraphs in unsupported regions, including Table, Header, Footer and Footnote, can result in an invalid document state that returns a 400 bad request error.", +"type": "boolean" +}, +"shading": { +"$ref": "Shading", +"description": "The shading of the paragraph. If unset, the value is inherited from the parent." +}, +"spaceAbove": { +"$ref": "Dimension", +"description": "The amount of extra space above the paragraph. If unset, the value is inherited from the parent." +}, +"spaceBelow": { +"$ref": "Dimension", +"description": "The amount of extra space below the paragraph. If unset, the value is inherited from the parent." +}, +"spacingMode": { +"description": "The spacing mode for the paragraph.", +"enum": [ +"SPACING_MODE_UNSPECIFIED", +"NEVER_COLLAPSE", +"COLLAPSE_LISTS" +], +"enumDescriptions": [ +"The spacing mode is inherited from the parent.", +"Paragraph spacing is always rendered.", +"Paragraph spacing is skipped between list elements." +], +"type": "string" +}, +"tabStops": { +"description": "A list of the tab stops for this paragraph. The list of tab stops is not inherited. This property is read-only.", +"items": { +"$ref": "TabStop" +}, +"type": "array" +} +}, +"type": "object" +}, +"ParagraphStyleSuggestionState": { +"description": "A mask that indicates which of the fields on the base ParagraphStyle have been changed in this suggestion. For any field set to true, there's a new suggested value.", +"id": "ParagraphStyleSuggestionState", +"properties": { +"alignmentSuggested": { +"description": "Indicates if there was a suggested change to alignment.", +"type": "boolean" +}, +"avoidWidowAndOrphanSuggested": { +"description": "Indicates if there was a suggested change to avoid_widow_and_orphan.", +"type": "boolean" +}, +"borderBetweenSuggested": { +"description": "Indicates if there was a suggested change to border_between.", +"type": "boolean" +}, +"borderBottomSuggested": { +"description": "Indicates if there was a suggested change to border_bottom.", +"type": "boolean" +}, +"borderLeftSuggested": { +"description": "Indicates if there was a suggested change to border_left.", +"type": "boolean" +}, +"borderRightSuggested": { +"description": "Indicates if there was a suggested change to border_right.", +"type": "boolean" +}, +"borderTopSuggested": { +"description": "Indicates if there was a suggested change to border_top.", +"type": "boolean" +}, +"directionSuggested": { +"description": "Indicates if there was a suggested change to direction.", +"type": "boolean" +}, +"headingIdSuggested": { +"description": "Indicates if there was a suggested change to heading_id.", +"type": "boolean" +}, +"indentEndSuggested": { +"description": "Indicates if there was a suggested change to indent_end.", +"type": "boolean" +}, +"indentFirstLineSuggested": { +"description": "Indicates if there was a suggested change to indent_first_line.", +"type": "boolean" +}, +"indentStartSuggested": { +"description": "Indicates if there was a suggested change to indent_start.", +"type": "boolean" +}, +"keepLinesTogetherSuggested": { +"description": "Indicates if there was a suggested change to keep_lines_together.", +"type": "boolean" +}, +"keepWithNextSuggested": { +"description": "Indicates if there was a suggested change to keep_with_next.", +"type": "boolean" +}, +"lineSpacingSuggested": { +"description": "Indicates if there was a suggested change to line_spacing.", +"type": "boolean" +}, +"namedStyleTypeSuggested": { +"description": "Indicates if there was a suggested change to named_style_type.", +"type": "boolean" +}, +"pageBreakBeforeSuggested": { +"description": "Indicates if there was a suggested change to page_break_before.", +"type": "boolean" +}, +"shadingSuggestionState": { +"$ref": "ShadingSuggestionState", +"description": "A mask that indicates which of the fields in shading have been changed in this suggestion." +}, +"spaceAboveSuggested": { +"description": "Indicates if there was a suggested change to space_above.", +"type": "boolean" +}, +"spaceBelowSuggested": { +"description": "Indicates if there was a suggested change to space_below.", +"type": "boolean" +}, +"spacingModeSuggested": { +"description": "Indicates if there was a suggested change to spacing_mode.", +"type": "boolean" +} +}, +"type": "object" +}, +"Person": { +"description": "A person or email address mentioned in a document. These mentions behave as a single, immutable element containing the person's name or email address.", +"id": "Person", +"properties": { +"personId": { +"description": "Output only. The unique ID of this link.", +"readOnly": true, +"type": "string" +}, +"personProperties": { +"$ref": "PersonProperties", +"description": "Output only. The properties of this Person. This field is always present.", +"readOnly": true +}, +"suggestedDeletionIds": { +"description": "IDs for suggestions that remove this person link from the document. A Person might have multiple deletion IDs if, for example, multiple users suggest deleting it. If empty, then this person link isn't suggested for deletion.", +"items": { +"type": "string" +}, +"type": "array" +}, +"suggestedInsertionIds": { +"description": "IDs for suggestions that insert this person link into the document. A Person might have multiple insertion IDs if it's a nested suggested change (a suggestion within a suggestion made by a different user, for example). If empty, then this person link isn't a suggested insertion.", +"items": { +"type": "string" +}, +"type": "array" +}, +"suggestedTextStyleChanges": { +"additionalProperties": { +"$ref": "SuggestedTextStyle" +}, +"description": "The suggested text style changes to this Person, keyed by suggestion ID.", +"type": "object" +}, +"textStyle": { +"$ref": "TextStyle", +"description": "The text style of this Person." +} +}, +"type": "object" +}, +"PersonProperties": { +"description": "Properties specific to a linked Person.", +"id": "PersonProperties", +"properties": { +"email": { +"description": "Output only. The email address linked to this Person. This field is always present.", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. The name of the person if it's displayed in the link text instead of the person's email address.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"PinTableHeaderRowsRequest": { +"description": "Updates the number of pinned table header rows in a table.", +"id": "PinTableHeaderRowsRequest", +"properties": { +"pinnedHeaderRowsCount": { +"description": "The number of table rows to pin, where 0 implies that all rows are unpinned.", +"format": "int32", +"type": "integer" +}, +"tableStartLocation": { +"$ref": "Location", +"description": "The location where the table starts in the document." +} +}, +"type": "object" +}, +"PositionedObject": { +"description": "An object that's tethered to a Paragraph and positioned relative to the beginning of the paragraph. A PositionedObject contains an EmbeddedObject such as an image.", +"id": "PositionedObject", +"properties": { +"objectId": { +"description": "The ID of this positioned object.", +"type": "string" +}, +"positionedObjectProperties": { +"$ref": "PositionedObjectProperties", +"description": "The properties of this positioned object." +}, +"suggestedDeletionIds": { +"description": "The suggested deletion IDs. If empty, then there are no suggested deletions of this content.", +"items": { +"type": "string" +}, +"type": "array" +}, +"suggestedInsertionId": { +"description": "The suggested insertion ID. If empty, then this is not a suggested insertion.", +"type": "string" +}, +"suggestedPositionedObjectPropertiesChanges": { +"additionalProperties": { +"$ref": "SuggestedPositionedObjectProperties" +}, +"description": "The suggested changes to the positioned object properties, keyed by suggestion ID.", +"type": "object" +} +}, +"type": "object" +}, +"PositionedObjectPositioning": { +"description": "The positioning of a PositionedObject. The positioned object is positioned relative to the beginning of the Paragraph it's tethered to.", +"id": "PositionedObjectPositioning", +"properties": { +"layout": { +"description": "The layout of this positioned object.", +"enum": [ +"POSITIONED_OBJECT_LAYOUT_UNSPECIFIED", +"WRAP_TEXT", +"BREAK_LEFT", +"BREAK_RIGHT", +"BREAK_LEFT_RIGHT", +"IN_FRONT_OF_TEXT", +"BEHIND_TEXT" +], +"enumDescriptions": [ +"The layout is unspecified.", +"The text wraps around the positioned object.", +"Breaks text such that the positioned object is on the left and text is on the right.", +"Breaks text such that the positioned object is on the right and text is on the left.", +"Breaks text such that there's no text on the left or right of the positioned object.", +"The positioned object is in front of the text.", +"The positioned object is behind the text." +], +"type": "string" +}, +"leftOffset": { +"$ref": "Dimension", +"description": "The offset of the left edge of the positioned object relative to the beginning of the Paragraph it's tethered to. The exact positioning of the object can depend on other content in the document and the document's styling." +}, +"topOffset": { +"$ref": "Dimension", +"description": "The offset of the top edge of the positioned object relative to the beginning of the Paragraph it's tethered to. The exact positioning of the object can depend on other content in the document and the document's styling." +} +}, +"type": "object" +}, +"PositionedObjectPositioningSuggestionState": { +"description": "A mask that indicates which of the fields on the base PositionedObjectPositioning have been changed in this suggestion. For any field set to true, there's a new suggested value.", +"id": "PositionedObjectPositioningSuggestionState", +"properties": { +"layoutSuggested": { +"description": "Indicates if there was a suggested change to layout.", +"type": "boolean" +}, +"leftOffsetSuggested": { +"description": "Indicates if there was a suggested change to left_offset.", +"type": "boolean" +}, +"topOffsetSuggested": { +"description": "Indicates if there was a suggested change to top_offset.", +"type": "boolean" +} +}, +"type": "object" +}, +"PositionedObjectProperties": { +"description": "Properties of a PositionedObject.", +"id": "PositionedObjectProperties", +"properties": { +"embeddedObject": { +"$ref": "EmbeddedObject", +"description": "The embedded object of this positioned object." +}, +"positioning": { +"$ref": "PositionedObjectPositioning", +"description": "The positioning of this positioned object relative to the newline of the Paragraph that references this positioned object." +} +}, +"type": "object" +}, +"PositionedObjectPropertiesSuggestionState": { +"description": "A mask that indicates which of the fields on the base PositionedObjectProperties have been changed in this suggestion. For any field set to true, there's a new suggested value.", +"id": "PositionedObjectPropertiesSuggestionState", +"properties": { +"embeddedObjectSuggestionState": { +"$ref": "EmbeddedObjectSuggestionState", +"description": "A mask that indicates which of the fields in embedded_object have been changed in this suggestion." +}, +"positioningSuggestionState": { +"$ref": "PositionedObjectPositioningSuggestionState", +"description": "A mask that indicates which of the fields in positioning have been changed in this suggestion." +} +}, +"type": "object" +}, +"Range": { +"description": "Specifies a contiguous range of text.", +"id": "Range", +"properties": { +"endIndex": { +"description": "The zero-based end index of this range, exclusive, in UTF-16 code units. In all current uses, an end index must be provided. This field is an Int32Value in order to accommodate future use cases with open-ended ranges.", +"format": "int32", +"type": "integer" +}, +"segmentId": { +"description": "The ID of the header, footer, or footnote that this range is contained in. An empty segment ID signifies the document's body.", +"type": "string" +}, +"startIndex": { +"description": "The zero-based start index of this range, in UTF-16 code units. In all current uses, a start index must be provided. This field is an Int32Value in order to accommodate future use cases with open-ended ranges.", +"format": "int32", +"type": "integer" +}, +"tabId": { +"description": "The tab that contains this range. When omitted, the request applies to the first tab. In a document containing a single tab: - If provided, must match the singular tab's ID. - If omitted, the request applies to the singular tab. In a document containing multiple tabs: - If provided, the request applies to the specified tab. - If omitted, the request applies to the first tab in the document.", +"type": "string" +} +}, +"type": "object" +}, +"ReplaceAllTextRequest": { +"description": "Replaces all instances of text matching a criteria with replace text.", +"id": "ReplaceAllTextRequest", +"properties": { +"containsText": { +"$ref": "SubstringMatchCriteria", +"description": "Finds text in the document matching this substring." +}, +"replaceText": { +"description": "The text that will replace the matched text.", +"type": "string" +}, +"tabsCriteria": { +"$ref": "TabsCriteria", +"description": "Optional. The criteria used to specify in which tabs the replacement occurs. When omitted, the replacement applies to all tabs. In a document containing a single tab: - If provided, must match the singular tab's ID. - If omitted, the replacement applies to the singular tab. In a document containing multiple tabs: - If provided, the replacement applies to the specified tabs. - If omitted, the replacement applies to all tabs." +} +}, +"type": "object" +}, +"ReplaceAllTextResponse": { +"description": "The result of replacing text.", +"id": "ReplaceAllTextResponse", +"properties": { +"occurrencesChanged": { +"description": "The number of occurrences changed by replacing all text.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"ReplaceImageRequest": { +"description": "Replaces an existing image with a new image. Replacing an image removes some image effects from the existing image in order to mirror the behavior of the Docs editor.", +"id": "ReplaceImageRequest", +"properties": { +"imageObjectId": { +"description": "The ID of the existing image that will be replaced. The ID can be retrieved from the response of a get request.", +"type": "string" +}, +"imageReplaceMethod": { +"description": "The replacement method.", +"enum": [ +"IMAGE_REPLACE_METHOD_UNSPECIFIED", +"CENTER_CROP" +], +"enumDescriptions": [ +"Unspecified image replace method. This value must not be used.", +"Scales and centers the image to fill the bounds of the original image. The image may be cropped in order to fill the original image's bounds. The rendered size of the image will be the same as the original image." +], +"type": "string" +}, +"tabId": { +"description": "The tab that the image to be replaced is in. When omitted, the request is applied to the first tab. In a document containing a single tab: - If provided, must match the singular tab's ID. - If omitted, the request applies to the singular tab. In a document containing multiple tabs: - If provided, the request applies to the specified tab. - If omitted, the request applies to the first tab in the document.", +"type": "string" +}, +"uri": { +"description": "The URI of the new image. The image is fetched once at insertion time and a copy is stored for display inside the document. Images must be less than 50MB, cannot exceed 25 megapixels, and must be in PNG, JPEG, or GIF format. The provided URI can't surpass 2 KB in length. The URI is saved with the image, and exposed through the ImageProperties.source_uri field.", +"type": "string" +} +}, +"type": "object" +}, +"ReplaceNamedRangeContentRequest": { +"description": "Replaces the contents of the specified NamedRange or NamedRanges with the given replacement content. Note that an individual NamedRange may consist of multiple discontinuous ranges. In this case, only the content in the first range will be replaced. The other ranges and their content will be deleted. In cases where replacing or deleting any ranges would result in an invalid document structure, a 400 bad request error is returned.", +"id": "ReplaceNamedRangeContentRequest", +"properties": { +"namedRangeId": { +"description": "The ID of the named range whose content will be replaced. If there is no named range with the given ID a 400 bad request error is returned.", +"type": "string" +}, +"namedRangeName": { +"description": "The name of the NamedRanges whose content will be replaced. If there are multiple named ranges with the given name, then the content of each one will be replaced. If there are no named ranges with the given name, then the request will be a no-op.", +"type": "string" +}, +"tabsCriteria": { +"$ref": "TabsCriteria", +"description": "Optional. The criteria used to specify in which tabs the replacement occurs. When omitted, the replacement applies to all tabs. In a document containing a single tab: - If provided, must match the singular tab's ID. - If omitted, the replacement applies to the singular tab. In a document containing multiple tabs: - If provided, the replacement applies to the specified tabs. - If omitted, the replacement applies to all tabs." +}, +"text": { +"description": "Replaces the content of the specified named range(s) with the given text.", +"type": "string" +} +}, +"type": "object" +}, +"Request": { +"description": "A single update to apply to a document.", +"id": "Request", +"properties": { +"createFooter": { +"$ref": "CreateFooterRequest", +"description": "Creates a footer." +}, +"createFootnote": { +"$ref": "CreateFootnoteRequest", +"description": "Creates a footnote." +}, +"createHeader": { +"$ref": "CreateHeaderRequest", +"description": "Creates a header." +}, +"createNamedRange": { +"$ref": "CreateNamedRangeRequest", +"description": "Creates a named range." +}, +"createParagraphBullets": { +"$ref": "CreateParagraphBulletsRequest", +"description": "Creates bullets for paragraphs." +}, +"deleteContentRange": { +"$ref": "DeleteContentRangeRequest", +"description": "Deletes content from the document." +}, +"deleteFooter": { +"$ref": "DeleteFooterRequest", +"description": "Deletes a footer from the document." +}, +"deleteHeader": { +"$ref": "DeleteHeaderRequest", +"description": "Deletes a header from the document." +}, +"deleteNamedRange": { +"$ref": "DeleteNamedRangeRequest", +"description": "Deletes a named range." +}, +"deleteParagraphBullets": { +"$ref": "DeleteParagraphBulletsRequest", +"description": "Deletes bullets from paragraphs." +}, +"deletePositionedObject": { +"$ref": "DeletePositionedObjectRequest", +"description": "Deletes a positioned object from the document." +}, +"deleteTableColumn": { +"$ref": "DeleteTableColumnRequest", +"description": "Deletes a column from a table." +}, +"deleteTableRow": { +"$ref": "DeleteTableRowRequest", +"description": "Deletes a row from a table." +}, +"insertInlineImage": { +"$ref": "InsertInlineImageRequest", +"description": "Inserts an inline image at the specified location." +}, +"insertPageBreak": { +"$ref": "InsertPageBreakRequest", +"description": "Inserts a page break at the specified location." +}, +"insertSectionBreak": { +"$ref": "InsertSectionBreakRequest", +"description": "Inserts a section break at the specified location." +}, +"insertTable": { +"$ref": "InsertTableRequest", +"description": "Inserts a table at the specified location." +}, +"insertTableColumn": { +"$ref": "InsertTableColumnRequest", +"description": "Inserts an empty column into a table." +}, +"insertTableRow": { +"$ref": "InsertTableRowRequest", +"description": "Inserts an empty row into a table." +}, +"insertText": { +"$ref": "InsertTextRequest", +"description": "Inserts text at the specified location." +}, +"mergeTableCells": { +"$ref": "MergeTableCellsRequest", +"description": "Merges cells in a table." +}, +"pinTableHeaderRows": { +"$ref": "PinTableHeaderRowsRequest", +"description": "Updates the number of pinned header rows in a table." +}, +"replaceAllText": { +"$ref": "ReplaceAllTextRequest", +"description": "Replaces all instances of the specified text." +}, +"replaceImage": { +"$ref": "ReplaceImageRequest", +"description": "Replaces an image in the document." +}, +"replaceNamedRangeContent": { +"$ref": "ReplaceNamedRangeContentRequest", +"description": "Replaces the content in a named range." +}, +"unmergeTableCells": { +"$ref": "UnmergeTableCellsRequest", +"description": "Unmerges cells in a table." +}, +"updateDocumentStyle": { +"$ref": "UpdateDocumentStyleRequest", +"description": "Updates the style of the document." +}, +"updateParagraphStyle": { +"$ref": "UpdateParagraphStyleRequest", +"description": "Updates the paragraph style at the specified range." +}, +"updateSectionStyle": { +"$ref": "UpdateSectionStyleRequest", +"description": "Updates the section style of the specified range." +}, +"updateTableCellStyle": { +"$ref": "UpdateTableCellStyleRequest", +"description": "Updates the style of table cells." +}, +"updateTableColumnProperties": { +"$ref": "UpdateTableColumnPropertiesRequest", +"description": "Updates the properties of columns in a table." +}, +"updateTableRowStyle": { +"$ref": "UpdateTableRowStyleRequest", +"description": "Updates the row style in a table." +}, +"updateTextStyle": { +"$ref": "UpdateTextStyleRequest", +"description": "Updates the text style at the specified range." +} +}, +"type": "object" +}, +"Response": { +"description": "A single response from an update.", +"id": "Response", +"properties": { +"createFooter": { +"$ref": "CreateFooterResponse", +"description": "The result of creating a footer." +}, +"createFootnote": { +"$ref": "CreateFootnoteResponse", +"description": "The result of creating a footnote." +}, +"createHeader": { +"$ref": "CreateHeaderResponse", +"description": "The result of creating a header." +}, +"createNamedRange": { +"$ref": "CreateNamedRangeResponse", +"description": "The result of creating a named range." +}, +"insertInlineImage": { +"$ref": "InsertInlineImageResponse", +"description": "The result of inserting an inline image." +}, +"insertInlineSheetsChart": { +"$ref": "InsertInlineSheetsChartResponse", +"description": "The result of inserting an inline Google Sheets chart." +}, +"replaceAllText": { +"$ref": "ReplaceAllTextResponse", +"description": "The result of replacing text." +} +}, +"type": "object" +}, +"RgbColor": { +"description": "An RGB color.", +"id": "RgbColor", +"properties": { +"blue": { +"description": "The blue component of the color, from 0.0 to 1.0.", +"format": "float", +"type": "number" +}, +"green": { +"description": "The green component of the color, from 0.0 to 1.0.", +"format": "float", +"type": "number" +}, +"red": { +"description": "The red component of the color, from 0.0 to 1.0.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"RichLink": { +"description": "A link to a Google resource (such as a file in Drive, a YouTube video, or a Calendar event).", +"id": "RichLink", +"properties": { +"richLinkId": { +"description": "Output only. The ID of this link.", +"readOnly": true, +"type": "string" +}, +"richLinkProperties": { +"$ref": "RichLinkProperties", +"description": "Output only. The properties of this RichLink. This field is always present.", +"readOnly": true +}, +"suggestedDeletionIds": { +"description": "IDs for suggestions that remove this link from the document. A RichLink might have multiple deletion IDs if, for example, multiple users suggest deleting it. If empty, then this person link isn't suggested for deletion.", +"items": { +"type": "string" +}, +"type": "array" +}, +"suggestedInsertionIds": { +"description": "IDs for suggestions that insert this link into the document. A RichLink might have multiple insertion IDs if it's a nested suggested change (a suggestion within a suggestion made by a different user, for example). If empty, then this person link isn't a suggested insertion.", +"items": { +"type": "string" +}, +"type": "array" +}, +"suggestedTextStyleChanges": { +"additionalProperties": { +"$ref": "SuggestedTextStyle" +}, +"description": "The suggested text style changes to this RichLink, keyed by suggestion ID.", +"type": "object" +}, +"textStyle": { +"$ref": "TextStyle", +"description": "The text style of this RichLink." +} +}, +"type": "object" +}, +"RichLinkProperties": { +"description": "Properties specific to a RichLink.", +"id": "RichLinkProperties", +"properties": { +"mimeType": { +"description": "Output only. The [MIME type](https://developers.google.com/drive/api/v3/mime-types) of the RichLink, if there's one (for example, when it's a file in Drive).", +"readOnly": true, +"type": "string" +}, +"title": { +"description": "Output only. The title of the RichLink as displayed in the link. This title matches the title of the linked resource at the time of the insertion or last update of the link. This field is always present.", +"readOnly": true, +"type": "string" +}, +"uri": { +"description": "Output only. The URI to the RichLink. This is always present.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"SectionBreak": { +"description": "A StructuralElement representing a section break. A section is a range of content that has the same SectionStyle. A section break represents the start of a new section, and the section style applies to the section after the section break. The document body always begins with a section break.", +"id": "SectionBreak", +"properties": { +"sectionStyle": { +"$ref": "SectionStyle", +"description": "The style of the section after this section break." +}, +"suggestedDeletionIds": { +"description": "The suggested deletion IDs. If empty, then there are no suggested deletions of this content.", +"items": { +"type": "string" +}, +"type": "array" +}, +"suggestedInsertionIds": { +"description": "The suggested insertion IDs. A SectionBreak may have multiple insertion IDs if it's a nested suggested change. If empty, then this is not a suggested insertion.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"SectionColumnProperties": { +"description": "Properties that apply to a section's column.", +"id": "SectionColumnProperties", +"properties": { +"paddingEnd": { +"$ref": "Dimension", +"description": "The padding at the end of the column." +}, +"width": { +"$ref": "Dimension", +"description": "Output only. The width of the column." +} +}, +"type": "object" +}, +"SectionStyle": { +"description": "The styling that applies to a section.", +"id": "SectionStyle", +"properties": { +"columnProperties": { +"description": "The section's columns properties. If empty, the section contains one column with the default properties in the Docs editor. A section can be updated to have no more than 3 columns. When updating this property, setting a concrete value is required. Unsetting this property will result in a 400 bad request error.", +"items": { +"$ref": "SectionColumnProperties" +}, +"type": "array" +}, +"columnSeparatorStyle": { +"description": "The style of column separators. This style can be set even when there's one column in the section. When updating this property, setting a concrete value is required. Unsetting this property results in a 400 bad request error.", +"enum": [ +"COLUMN_SEPARATOR_STYLE_UNSPECIFIED", +"NONE", +"BETWEEN_EACH_COLUMN" +], +"enumDescriptions": [ +"An unspecified column separator style.", +"No column separator lines between columns.", +"Renders a column separator line between each column." +], +"type": "string" +}, +"contentDirection": { +"description": "The content direction of this section. If unset, the value defaults to LEFT_TO_RIGHT. When updating this property, setting a concrete value is required. Unsetting this property results in a 400 bad request error.", +"enum": [ +"CONTENT_DIRECTION_UNSPECIFIED", +"LEFT_TO_RIGHT", +"RIGHT_TO_LEFT" +], +"enumDescriptions": [ +"The content direction is unspecified.", +"The content goes from left to right.", +"The content goes from right to left." +], +"type": "string" +}, +"defaultFooterId": { +"description": "The ID of the default footer. If unset, the value inherits from the previous SectionBreak's SectionStyle. If the value is unset in the first SectionBreak, it inherits from DocumentStyle's default_footer_id. This property is read-only.", +"type": "string" +}, +"defaultHeaderId": { +"description": "The ID of the default header. If unset, the value inherits from the previous SectionBreak's SectionStyle. If the value is unset in the first SectionBreak, it inherits from DocumentStyle's default_header_id. This property is read-only.", +"type": "string" +}, +"evenPageFooterId": { +"description": "The ID of the footer used only for even pages. If the value of DocumentStyle's use_even_page_header_footer is true, this value is used for the footers on even pages in the section. If it is false, the footers on even pages use the default_footer_id. If unset, the value inherits from the previous SectionBreak's SectionStyle. If the value is unset in the first SectionBreak, it inherits from DocumentStyle's even_page_footer_id. This property is read-only.", +"type": "string" +}, +"evenPageHeaderId": { +"description": "The ID of the header used only for even pages. If the value of DocumentStyle's use_even_page_header_footer is true, this value is used for the headers on even pages in the section. If it is false, the headers on even pages use the default_header_id. If unset, the value inherits from the previous SectionBreak's SectionStyle. If the value is unset in the first SectionBreak, it inherits from DocumentStyle's even_page_header_id. This property is read-only.", +"type": "string" +}, +"firstPageFooterId": { +"description": "The ID of the footer used only for the first page of the section. If use_first_page_header_footer is true, this value is used for the footer on the first page of the section. If it's false, the footer on the first page of the section uses the default_footer_id. If unset, the value inherits from the previous SectionBreak's SectionStyle. If the value is unset in the first SectionBreak, it inherits from DocumentStyle's first_page_footer_id. This property is read-only.", +"type": "string" +}, +"firstPageHeaderId": { +"description": "The ID of the header used only for the first page of the section. If use_first_page_header_footer is true, this value is used for the header on the first page of the section. If it's false, the header on the first page of the section uses the default_header_id. If unset, the value inherits from the previous SectionBreak's SectionStyle. If the value is unset in the first SectionBreak, it inherits from DocumentStyle's first_page_header_id. This property is read-only.", +"type": "string" +}, +"flipPageOrientation": { +"description": "Optional. Indicates whether to flip the dimensions of DocumentStyle's page_size for this section, which allows changing the page orientation between portrait and landscape. If unset, the value inherits from DocumentStyle's flip_page_orientation. When updating this property, setting a concrete value is required. Unsetting this property results in a 400 bad request error.", +"type": "boolean" +}, +"marginBottom": { +"$ref": "Dimension", +"description": "The bottom page margin of the section. If unset, the value defaults to margin_bottom from DocumentStyle. When updating this property, setting a concrete value is required. Unsetting this property results in a 400 bad request error." +}, +"marginFooter": { +"$ref": "Dimension", +"description": "The footer margin of the section. If unset, the value defaults to margin_footer from DocumentStyle. If updated, use_custom_header_footer_margins is set to true on DocumentStyle. The value of use_custom_header_footer_margins on DocumentStyle indicates if a footer margin is being respected for this section When updating this property, setting a concrete value is required. Unsetting this property results in a 400 bad request error." +}, +"marginHeader": { +"$ref": "Dimension", +"description": "The header margin of the section. If unset, the value defaults to margin_header from DocumentStyle. If updated, use_custom_header_footer_margins is set to true on DocumentStyle. The value of use_custom_header_footer_margins on DocumentStyle indicates if a header margin is being respected for this section. When updating this property, setting a concrete value is required. Unsetting this property results in a 400 bad request error." +}, +"marginLeft": { +"$ref": "Dimension", +"description": "The left page margin of the section. If unset, the value defaults to margin_left from DocumentStyle. Updating the left margin causes columns in this section to resize. Since the margin affects column width, it's applied before column properties. When updating this property, setting a concrete value is required. Unsetting this property results in a 400 bad request error." +}, +"marginRight": { +"$ref": "Dimension", +"description": "The right page margin of the section. If unset, the value defaults to margin_right from DocumentStyle. Updating the right margin causes columns in this section to resize. Since the margin affects column width, it's applied before column properties. When updating this property, setting a concrete value is required. Unsetting this property results in a 400 bad request error." +}, +"marginTop": { +"$ref": "Dimension", +"description": "The top page margin of the section. If unset, the value defaults to margin_top from DocumentStyle. When updating this property, setting a concrete value is required. Unsetting this property results in a 400 bad request error." +}, +"pageNumberStart": { +"description": "The page number from which to start counting the number of pages for this section. If unset, page numbering continues from the previous section. If the value is unset in the first SectionBreak, refer to DocumentStyle's page_number_start. When updating this property, setting a concrete value is required. Unsetting this property results in a 400 bad request error.", +"format": "int32", +"type": "integer" +}, +"sectionType": { +"description": "Output only. The type of section.", +"enum": [ +"SECTION_TYPE_UNSPECIFIED", +"CONTINUOUS", +"NEXT_PAGE" +], +"enumDescriptions": [ +"The section type is unspecified.", +"The section starts immediately after the last paragraph of the previous section.", +"The section starts on the next page." +], +"type": "string" +}, +"useFirstPageHeaderFooter": { +"description": "Indicates whether to use the first page header / footer IDs for the first page of the section. If unset, it inherits from DocumentStyle's use_first_page_header_footer for the first section. If the value is unset for subsequent sectors, it should be interpreted as false. When updating this property, setting a concrete value is required. Unsetting this property results in a 400 bad request error.", +"type": "boolean" +} +}, +"type": "object" +}, +"Shading": { +"description": "The shading of a paragraph.", +"id": "Shading", +"properties": { +"backgroundColor": { +"$ref": "OptionalColor", +"description": "The background color of this paragraph shading." +} +}, +"type": "object" +}, +"ShadingSuggestionState": { +"description": "A mask that indicates which of the fields on the base Shading have been changed in this suggested change. For any field set to true, there's a new suggested value.", +"id": "ShadingSuggestionState", +"properties": { +"backgroundColorSuggested": { +"description": "Indicates if there was a suggested change to the Shading.", +"type": "boolean" +} +}, +"type": "object" +}, +"SheetsChartReference": { +"description": "A reference to a linked chart embedded from Google Sheets.", +"id": "SheetsChartReference", +"properties": { +"chartId": { +"description": "The ID of the specific chart in the Google Sheets spreadsheet that's embedded.", +"format": "int32", +"type": "integer" +}, +"spreadsheetId": { +"description": "The ID of the Google Sheets spreadsheet that contains the source chart.", +"type": "string" +} +}, +"type": "object" +}, +"SheetsChartReferenceSuggestionState": { +"description": "A mask that indicates which of the fields on the base SheetsChartReference have been changed in this suggestion. For any field set to true, there's a new suggested value.", +"id": "SheetsChartReferenceSuggestionState", +"properties": { +"chartIdSuggested": { +"description": "Indicates if there was a suggested change to chart_id.", +"type": "boolean" +}, +"spreadsheetIdSuggested": { +"description": "Indicates if there was a suggested change to spreadsheet_id.", +"type": "boolean" +} +}, +"type": "object" +}, +"Size": { +"description": "A width and height.", +"id": "Size", +"properties": { +"height": { +"$ref": "Dimension", +"description": "The height of the object." +}, +"width": { +"$ref": "Dimension", +"description": "The width of the object." +} +}, +"type": "object" +}, +"SizeSuggestionState": { +"description": "A mask that indicates which of the fields on the base Size have been changed in this suggestion. For any field set to true, the Size has a new suggested value.", +"id": "SizeSuggestionState", +"properties": { +"heightSuggested": { +"description": "Indicates if there was a suggested change to height.", +"type": "boolean" +}, +"widthSuggested": { +"description": "Indicates if there was a suggested change to width.", +"type": "boolean" +} +}, +"type": "object" +}, +"StructuralElement": { +"description": "A StructuralElement describes content that provides structure to the document.", +"id": "StructuralElement", +"properties": { +"endIndex": { +"description": "The zero-based end index of this structural element, exclusive, in UTF-16 code units.", +"format": "int32", +"type": "integer" +}, +"paragraph": { +"$ref": "Paragraph", +"description": "A paragraph type of structural element." +}, +"sectionBreak": { +"$ref": "SectionBreak", +"description": "A section break type of structural element." +}, +"startIndex": { +"description": "The zero-based start index of this structural element, in UTF-16 code units.", +"format": "int32", +"type": "integer" +}, +"table": { +"$ref": "Table", +"description": "A table type of structural element." +}, +"tableOfContents": { +"$ref": "TableOfContents", +"description": "A table of contents type of structural element." +} +}, +"type": "object" +}, +"SubstringMatchCriteria": { +"description": "A criteria that matches a specific string of text in the document.", +"id": "SubstringMatchCriteria", +"properties": { +"matchCase": { +"description": "Indicates whether the search should respect case: - `True`: the search is case sensitive. - `False`: the search is case insensitive.", +"type": "boolean" +}, +"text": { +"description": "The text to search for in the document.", +"type": "string" +} +}, +"type": "object" +}, +"SuggestedBullet": { +"description": "A suggested change to a Bullet.", +"id": "SuggestedBullet", +"properties": { +"bullet": { +"$ref": "Bullet", +"description": "A Bullet that only includes the changes made in this suggestion. This can be used along with the bullet_suggestion_state to see which fields have changed and their new values." +}, +"bulletSuggestionState": { +"$ref": "BulletSuggestionState", +"description": "A mask that indicates which of the fields on the base Bullet have been changed in this suggestion." +} +}, +"type": "object" +}, +"SuggestedDocumentStyle": { +"description": "A suggested change to the DocumentStyle.", +"id": "SuggestedDocumentStyle", +"properties": { +"documentStyle": { +"$ref": "DocumentStyle", +"description": "A DocumentStyle that only includes the changes made in this suggestion. This can be used along with the document_style_suggestion_state to see which fields have changed and their new values." +}, +"documentStyleSuggestionState": { +"$ref": "DocumentStyleSuggestionState", +"description": "A mask that indicates which of the fields on the base DocumentStyle have been changed in this suggestion." +} +}, +"type": "object" +}, +"SuggestedInlineObjectProperties": { +"description": "A suggested change to InlineObjectProperties.", +"id": "SuggestedInlineObjectProperties", +"properties": { +"inlineObjectProperties": { +"$ref": "InlineObjectProperties", +"description": "An InlineObjectProperties that only includes the changes made in this suggestion. This can be used along with the inline_object_properties_suggestion_state to see which fields have changed and their new values." +}, +"inlineObjectPropertiesSuggestionState": { +"$ref": "InlineObjectPropertiesSuggestionState", +"description": "A mask that indicates which of the fields on the base InlineObjectProperties have been changed in this suggestion." +} +}, +"type": "object" +}, +"SuggestedListProperties": { +"description": "A suggested change to ListProperties.", +"id": "SuggestedListProperties", +"properties": { +"listProperties": { +"$ref": "ListProperties", +"description": "A ListProperties that only includes the changes made in this suggestion. This can be used along with the list_properties_suggestion_state to see which fields have changed and their new values." +}, +"listPropertiesSuggestionState": { +"$ref": "ListPropertiesSuggestionState", +"description": "A mask that indicates which of the fields on the base ListProperties have been changed in this suggestion." +} +}, +"type": "object" +}, +"SuggestedNamedStyles": { +"description": "A suggested change to the NamedStyles.", +"id": "SuggestedNamedStyles", +"properties": { +"namedStyles": { +"$ref": "NamedStyles", +"description": "A NamedStyles that only includes the changes made in this suggestion. This can be used along with the named_styles_suggestion_state to see which fields have changed and their new values." +}, +"namedStylesSuggestionState": { +"$ref": "NamedStylesSuggestionState", +"description": "A mask that indicates which of the fields on the base NamedStyles have been changed in this suggestion." +} +}, +"type": "object" +}, +"SuggestedParagraphStyle": { +"description": "A suggested change to a ParagraphStyle.", +"id": "SuggestedParagraphStyle", +"properties": { +"paragraphStyle": { +"$ref": "ParagraphStyle", +"description": "A ParagraphStyle that only includes the changes made in this suggestion. This can be used along with the paragraph_style_suggestion_state to see which fields have changed and their new values." +}, +"paragraphStyleSuggestionState": { +"$ref": "ParagraphStyleSuggestionState", +"description": "A mask that indicates which of the fields on the base ParagraphStyle have been changed in this suggestion." +} +}, +"type": "object" +}, +"SuggestedPositionedObjectProperties": { +"description": "A suggested change to PositionedObjectProperties.", +"id": "SuggestedPositionedObjectProperties", +"properties": { +"positionedObjectProperties": { +"$ref": "PositionedObjectProperties", +"description": "A PositionedObjectProperties that only includes the changes made in this suggestion. This can be used along with the positioned_object_properties_suggestion_state to see which fields have changed and their new values." +}, +"positionedObjectPropertiesSuggestionState": { +"$ref": "PositionedObjectPropertiesSuggestionState", +"description": "A mask that indicates which of the fields on the base PositionedObjectProperties have been changed in this suggestion." +} +}, +"type": "object" +}, +"SuggestedTableCellStyle": { +"description": "A suggested change to a TableCellStyle.", +"id": "SuggestedTableCellStyle", +"properties": { +"tableCellStyle": { +"$ref": "TableCellStyle", +"description": "A TableCellStyle that only includes the changes made in this suggestion. This can be used along with the table_cell_style_suggestion_state to see which fields have changed and their new values." +}, +"tableCellStyleSuggestionState": { +"$ref": "TableCellStyleSuggestionState", +"description": "A mask that indicates which of the fields on the base TableCellStyle have been changed in this suggestion." +} +}, +"type": "object" +}, +"SuggestedTableRowStyle": { +"description": "A suggested change to a TableRowStyle.", +"id": "SuggestedTableRowStyle", +"properties": { +"tableRowStyle": { +"$ref": "TableRowStyle", +"description": "A TableRowStyle that only includes the changes made in this suggestion. This can be used along with the table_row_style_suggestion_state to see which fields have changed and their new values." +}, +"tableRowStyleSuggestionState": { +"$ref": "TableRowStyleSuggestionState", +"description": "A mask that indicates which of the fields on the base TableRowStyle have been changed in this suggestion." +} +}, +"type": "object" +}, +"SuggestedTextStyle": { +"description": "A suggested change to a TextStyle.", +"id": "SuggestedTextStyle", +"properties": { +"textStyle": { +"$ref": "TextStyle", +"description": "A TextStyle that only includes the changes made in this suggestion. This can be used along with the text_style_suggestion_state to see which fields have changed and their new values." +}, +"textStyleSuggestionState": { +"$ref": "TextStyleSuggestionState", +"description": "A mask that indicates which of the fields on the base TextStyle have been changed in this suggestion." +} +}, +"type": "object" +}, +"Tab": { +"description": "A tab in a document.", +"id": "Tab", +"properties": { +"childTabs": { +"description": "The child tabs nested within this tab.", +"items": { +"$ref": "Tab" +}, +"type": "array" +}, +"documentTab": { +"$ref": "DocumentTab", +"description": "A tab with document contents, like text and images." +}, +"tabProperties": { +"$ref": "TabProperties", +"description": "The properties of the tab, like ID and title." +} +}, +"type": "object" +}, +"TabProperties": { +"description": "Properties of a tab.", +"id": "TabProperties", +"properties": { +"index": { +"description": "The zero-based index of the tab within the parent.", +"format": "int32", +"type": "integer" +}, +"nestingLevel": { +"description": "Output only. The depth of the tab within the document. Root-level tabs start at 0.", +"format": "int32", +"type": "integer" +}, +"parentTabId": { +"description": "Optional. The ID of the parent tab. Empty when the current tab is a root-level tab, which means it doesn't have any parents.", +"type": "string" +}, +"tabId": { +"description": "Output only. The ID of the tab. This field can't be changed.", +"type": "string" +}, +"title": { +"description": "The user-visible name of the tab.", +"type": "string" +} +}, +"type": "object" +}, +"TabStop": { +"description": "A tab stop within a paragraph.", +"id": "TabStop", +"properties": { +"alignment": { +"description": "The alignment of this tab stop. If unset, the value defaults to START.", +"enum": [ +"TAB_STOP_ALIGNMENT_UNSPECIFIED", +"START", +"CENTER", +"END" +], +"enumDescriptions": [ +"The tab stop alignment is unspecified.", +"The tab stop is aligned to the start of the line. This is the default.", +"The tab stop is aligned to the center of the line.", +"The tab stop is aligned to the end of the line." +], +"type": "string" +}, +"offset": { +"$ref": "Dimension", +"description": "The offset between this tab stop and the start margin." +} +}, +"type": "object" +}, +"Table": { +"description": "A StructuralElement representing a table.", +"id": "Table", +"properties": { +"columns": { +"description": "Number of columns in the table. It's possible for a table to be non-rectangular, so some rows may have a different number of cells.", +"format": "int32", +"type": "integer" +}, +"rows": { +"description": "Number of rows in the table.", +"format": "int32", +"type": "integer" +}, +"suggestedDeletionIds": { +"description": "The suggested deletion IDs. If empty, then there are no suggested deletions of this content.", +"items": { +"type": "string" +}, +"type": "array" +}, +"suggestedInsertionIds": { +"description": "The suggested insertion IDs. A Table may have multiple insertion IDs if it's a nested suggested change. If empty, then this is not a suggested insertion.", +"items": { +"type": "string" +}, +"type": "array" +}, +"tableRows": { +"description": "The contents and style of each row.", +"items": { +"$ref": "TableRow" +}, +"type": "array" +}, +"tableStyle": { +"$ref": "TableStyle", +"description": "The style of the table." +} +}, +"type": "object" +}, +"TableCell": { +"description": "The contents and style of a cell in a Table.", +"id": "TableCell", +"properties": { +"content": { +"description": "The content of the cell.", +"items": { +"$ref": "StructuralElement" +}, +"type": "array" +}, +"endIndex": { +"description": "The zero-based end index of this cell, exclusive, in UTF-16 code units.", +"format": "int32", +"type": "integer" +}, +"startIndex": { +"description": "The zero-based start index of this cell, in UTF-16 code units.", +"format": "int32", +"type": "integer" +}, +"suggestedDeletionIds": { +"description": "The suggested deletion IDs. If empty, then there are no suggested deletions of this content.", +"items": { +"type": "string" +}, +"type": "array" +}, +"suggestedInsertionIds": { +"description": "The suggested insertion IDs. A TableCell may have multiple insertion IDs if it's a nested suggested change. If empty, then this is not a suggested insertion.", +"items": { +"type": "string" +}, +"type": "array" +}, +"suggestedTableCellStyleChanges": { +"additionalProperties": { +"$ref": "SuggestedTableCellStyle" +}, +"description": "The suggested changes to the table cell style, keyed by suggestion ID.", +"type": "object" +}, +"tableCellStyle": { +"$ref": "TableCellStyle", +"description": "The style of the cell." +} +}, +"type": "object" +}, +"TableCellBorder": { +"description": "A border around a table cell. Table cell borders cannot be transparent. To hide a table cell border, make its width 0.", +"id": "TableCellBorder", +"properties": { +"color": { +"$ref": "OptionalColor", +"description": "The color of the border. This color cannot be transparent." +}, +"dashStyle": { +"description": "The dash style of the border.", +"enum": [ +"DASH_STYLE_UNSPECIFIED", +"SOLID", +"DOT", +"DASH" +], +"enumDescriptions": [ +"Unspecified dash style.", +"Solid line. Corresponds to ECMA-376 ST_PresetLineDashVal value 'solid'. This is the default dash style.", +"Dotted line. Corresponds to ECMA-376 ST_PresetLineDashVal value 'dot'.", +"Dashed line. Corresponds to ECMA-376 ST_PresetLineDashVal value 'dash'." +], +"type": "string" +}, +"width": { +"$ref": "Dimension", +"description": "The width of the border." +} +}, +"type": "object" +}, +"TableCellLocation": { +"description": "Location of a single cell within a table.", +"id": "TableCellLocation", +"properties": { +"columnIndex": { +"description": "The zero-based column index. For example, the second column in the table has a column index of 1.", +"format": "int32", +"type": "integer" +}, +"rowIndex": { +"description": "The zero-based row index. For example, the second row in the table has a row index of 1.", +"format": "int32", +"type": "integer" +}, +"tableStartLocation": { +"$ref": "Location", +"description": "The location where the table starts in the document." +} +}, +"type": "object" +}, +"TableCellStyle": { +"description": "The style of a TableCell. Inherited table cell styles are represented as unset fields in this message. A table cell style can inherit from the table's style.", +"id": "TableCellStyle", +"properties": { +"backgroundColor": { +"$ref": "OptionalColor", +"description": "The background color of the cell." +}, +"borderBottom": { +"$ref": "TableCellBorder", +"description": "The bottom border of the cell." +}, +"borderLeft": { +"$ref": "TableCellBorder", +"description": "The left border of the cell." +}, +"borderRight": { +"$ref": "TableCellBorder", +"description": "The right border of the cell." +}, +"borderTop": { +"$ref": "TableCellBorder", +"description": "The top border of the cell." +}, +"columnSpan": { +"description": "The column span of the cell. This property is read-only.", +"format": "int32", +"type": "integer" +}, +"contentAlignment": { +"description": "The alignment of the content in the table cell. The default alignment matches the alignment for newly created table cells in the Docs editor.", +"enum": [ +"CONTENT_ALIGNMENT_UNSPECIFIED", +"CONTENT_ALIGNMENT_UNSUPPORTED", +"TOP", +"MIDDLE", +"BOTTOM" +], +"enumDescriptions": [ +"An unspecified content alignment. The content alignment is inherited from the parent if one exists.", +"An unsupported content alignment.", +"An alignment that aligns the content to the top of the content holder. Corresponds to ECMA-376 ST_TextAnchoringType 't'.", +"An alignment that aligns the content to the middle of the content holder. Corresponds to ECMA-376 ST_TextAnchoringType 'ctr'.", +"An alignment that aligns the content to the bottom of the content holder. Corresponds to ECMA-376 ST_TextAnchoringType 'b'." +], +"type": "string" +}, +"paddingBottom": { +"$ref": "Dimension", +"description": "The bottom padding of the cell." +}, +"paddingLeft": { +"$ref": "Dimension", +"description": "The left padding of the cell." +}, +"paddingRight": { +"$ref": "Dimension", +"description": "The right padding of the cell." +}, +"paddingTop": { +"$ref": "Dimension", +"description": "The top padding of the cell." +}, +"rowSpan": { +"description": "The row span of the cell. This property is read-only.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"TableCellStyleSuggestionState": { +"description": "A mask that indicates which of the fields on the base TableCellStyle have been changed in this suggestion. For any field set to true, there's a new suggested value.", +"id": "TableCellStyleSuggestionState", +"properties": { +"backgroundColorSuggested": { +"description": "Indicates if there was a suggested change to background_color.", +"type": "boolean" +}, +"borderBottomSuggested": { +"description": "Indicates if there was a suggested change to border_bottom.", +"type": "boolean" +}, +"borderLeftSuggested": { +"description": "Indicates if there was a suggested change to border_left.", +"type": "boolean" +}, +"borderRightSuggested": { +"description": "Indicates if there was a suggested change to border_right.", +"type": "boolean" +}, +"borderTopSuggested": { +"description": "Indicates if there was a suggested change to border_top.", +"type": "boolean" +}, +"columnSpanSuggested": { +"description": "Indicates if there was a suggested change to column_span.", +"type": "boolean" +}, +"contentAlignmentSuggested": { +"description": "Indicates if there was a suggested change to content_alignment.", +"type": "boolean" +}, +"paddingBottomSuggested": { +"description": "Indicates if there was a suggested change to padding_bottom.", +"type": "boolean" +}, +"paddingLeftSuggested": { +"description": "Indicates if there was a suggested change to padding_left.", +"type": "boolean" +}, +"paddingRightSuggested": { +"description": "Indicates if there was a suggested change to padding_right.", +"type": "boolean" +}, +"paddingTopSuggested": { +"description": "Indicates if there was a suggested change to padding_top.", +"type": "boolean" +}, +"rowSpanSuggested": { +"description": "Indicates if there was a suggested change to row_span.", +"type": "boolean" +} +}, +"type": "object" +}, +"TableColumnProperties": { +"description": "The properties of a column in a table.", +"id": "TableColumnProperties", +"properties": { +"width": { +"$ref": "Dimension", +"description": "The width of the column. Set when the column's `width_type` is FIXED_WIDTH." +}, +"widthType": { +"description": "The width type of the column.", +"enum": [ +"WIDTH_TYPE_UNSPECIFIED", +"EVENLY_DISTRIBUTED", +"FIXED_WIDTH" +], +"enumDescriptions": [ +"The column width type is unspecified.", +"The column width is evenly distributed among the other evenly distributed columns. The width of the column is automatically determined and will have an equal portion of the width remaining for the table after accounting for all columns with specified widths.", +"A fixed column width. The width property contains the column's width." +], +"type": "string" +} +}, +"type": "object" +}, +"TableOfContents": { +"description": "A StructuralElement representing a table of contents.", +"id": "TableOfContents", +"properties": { +"content": { +"description": "The content of the table of contents.", +"items": { +"$ref": "StructuralElement" +}, +"type": "array" +}, +"suggestedDeletionIds": { +"description": "The suggested deletion IDs. If empty, then there are no suggested deletions of this content.", +"items": { +"type": "string" +}, +"type": "array" +}, +"suggestedInsertionIds": { +"description": "The suggested insertion IDs. A TableOfContents may have multiple insertion IDs if it is a nested suggested change. If empty, then this is not a suggested insertion.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"TableRange": { +"description": "A table range represents a reference to a subset of a table. It's important to note that the cells specified by a table range do not necessarily form a rectangle. For example, let's say we have a 3 x 3 table where all the cells of the last row are merged together. The table looks like this: [ ] A table range with table cell location = (table_start_location, row = 0, column = 0), row span = 3 and column span = 2 specifies the following cells: x x [ x x x ]", +"id": "TableRange", +"properties": { +"columnSpan": { +"description": "The column span of the table range.", +"format": "int32", +"type": "integer" +}, +"rowSpan": { +"description": "The row span of the table range.", +"format": "int32", +"type": "integer" +}, +"tableCellLocation": { +"$ref": "TableCellLocation", +"description": "The cell location where the table range starts." +} +}, +"type": "object" +}, +"TableRow": { +"description": "The contents and style of a row in a Table.", +"id": "TableRow", +"properties": { +"endIndex": { +"description": "The zero-based end index of this row, exclusive, in UTF-16 code units.", +"format": "int32", +"type": "integer" +}, +"startIndex": { +"description": "The zero-based start index of this row, in UTF-16 code units.", +"format": "int32", +"type": "integer" +}, +"suggestedDeletionIds": { +"description": "The suggested deletion IDs. If empty, then there are no suggested deletions of this content.", +"items": { +"type": "string" +}, +"type": "array" +}, +"suggestedInsertionIds": { +"description": "The suggested insertion IDs. A TableRow may have multiple insertion IDs if it's a nested suggested change. If empty, then this is not a suggested insertion.", +"items": { +"type": "string" +}, +"type": "array" +}, +"suggestedTableRowStyleChanges": { +"additionalProperties": { +"$ref": "SuggestedTableRowStyle" +}, +"description": "The suggested style changes to this row, keyed by suggestion ID.", +"type": "object" +}, +"tableCells": { +"description": "The contents and style of each cell in this row. It's possible for a table to be non-rectangular, so some rows may have a different number of cells than other rows in the same table.", +"items": { +"$ref": "TableCell" +}, +"type": "array" +}, +"tableRowStyle": { +"$ref": "TableRowStyle", +"description": "The style of the table row." +} +}, +"type": "object" +}, +"TableRowStyle": { +"description": "Styles that apply to a table row.", +"id": "TableRowStyle", +"properties": { +"minRowHeight": { +"$ref": "Dimension", +"description": "The minimum height of the row. The row will be rendered in the Docs editor at a height equal to or greater than this value in order to show all the content in the row's cells." +}, +"preventOverflow": { +"description": "Whether the row cannot overflow across page or column boundaries.", +"type": "boolean" +}, +"tableHeader": { +"description": "Whether the row is a table header.", +"type": "boolean" +} +}, +"type": "object" +}, +"TableRowStyleSuggestionState": { +"description": "A mask that indicates which of the fields on the base TableRowStyle have been changed in this suggestion. For any field set to true, there's a new suggested value.", +"id": "TableRowStyleSuggestionState", +"properties": { +"minRowHeightSuggested": { +"description": "Indicates if there was a suggested change to min_row_height.", +"type": "boolean" +} +}, +"type": "object" +}, +"TableStyle": { +"description": "Styles that apply to a table.", +"id": "TableStyle", +"properties": { +"tableColumnProperties": { +"description": "The properties of each column. Note that in Docs, tables contain rows and rows contain cells, similar to HTML. So the properties for a row can be found on the row's table_row_style.", +"items": { +"$ref": "TableColumnProperties" +}, +"type": "array" +} +}, +"type": "object" +}, +"TabsCriteria": { +"description": "A criteria that specifies in which tabs a request executes.", +"id": "TabsCriteria", +"properties": { +"tabIds": { +"description": "The list of tab IDs in which the request executes.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"TextRun": { +"description": "A ParagraphElement that represents a run of text that all has the same styling.", +"id": "TextRun", +"properties": { +"content": { +"description": "The text of this run. Any non-text elements in the run are replaced with the Unicode character U+E907.", +"type": "string" +}, +"suggestedDeletionIds": { +"description": "The suggested deletion IDs. If empty, then there are no suggested deletions of this content.", +"items": { +"type": "string" +}, +"type": "array" +}, +"suggestedInsertionIds": { +"description": "The suggested insertion IDs. A TextRun may have multiple insertion IDs if it's a nested suggested change. If empty, then this is not a suggested insertion.", +"items": { +"type": "string" +}, +"type": "array" +}, +"suggestedTextStyleChanges": { +"additionalProperties": { +"$ref": "SuggestedTextStyle" +}, +"description": "The suggested text style changes to this run, keyed by suggestion ID.", +"type": "object" +}, +"textStyle": { +"$ref": "TextStyle", +"description": "The text style of this run." +} +}, +"type": "object" +}, +"TextStyle": { +"description": "Represents the styling that can be applied to text. Inherited text styles are represented as unset fields in this message. A text style's parent depends on where the text style is defined: * The TextStyle of text in a Paragraph inherits from the paragraph's corresponding named style type. * The TextStyle on a named style inherits from the normal text named style. * The TextStyle of the normal text named style inherits from the default text style in the Docs editor. * The TextStyle on a Paragraph element that's contained in a table may inherit its text style from the table style. If the text style does not inherit from a parent, unsetting fields will revert the style to a value matching the defaults in the Docs editor.", +"id": "TextStyle", +"properties": { +"backgroundColor": { +"$ref": "OptionalColor", +"description": "The background color of the text. If set, the color is either an RGB color or transparent, depending on the `color` field." +}, +"baselineOffset": { +"description": "The text's vertical offset from its normal position. Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically rendered in a smaller font size, computed based on the `font_size` field. Changes in this field don't affect the `font_size`.", +"enum": [ +"BASELINE_OFFSET_UNSPECIFIED", +"NONE", +"SUPERSCRIPT", +"SUBSCRIPT" +], +"enumDescriptions": [ +"The text's baseline offset is inherited from the parent.", +"The text is not vertically offset.", +"The text is vertically offset upwards (superscript).", +"The text is vertically offset downwards (subscript)." +], +"type": "string" +}, +"bold": { +"description": "Whether or not the text is rendered as bold.", +"type": "boolean" +}, +"fontSize": { +"$ref": "Dimension", +"description": "The size of the text's font." +}, +"foregroundColor": { +"$ref": "OptionalColor", +"description": "The foreground color of the text. If set, the color is either an RGB color or transparent, depending on the `color` field." +}, +"italic": { +"description": "Whether or not the text is italicized.", +"type": "boolean" +}, +"link": { +"$ref": "Link", +"description": "The hyperlink destination of the text. If unset, there's no link. Links are not inherited from parent text. Changing the link in an update request causes some other changes to the text style of the range: * When setting a link, the text foreground color will be updated 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. * Setting a link on a text range that overlaps with an existing link will also update the existing link to point to the new URL. * Links are not settable on newline characters. As a result, setting a link on a text range that crosses a paragraph boundary, such as `\"ABC\\n123\"`, will separate the newline character(s) into their own text runs. The link will be applied separately to the runs before and after the newline. * Removing a link will update the text style of the range to match the style of the preceding text (or the default text styles if the preceding text is another link) unless different styles are being set in the same request." +}, +"smallCaps": { +"description": "Whether or not the text is in small capital letters.", +"type": "boolean" +}, +"strikethrough": { +"description": "Whether or not the text is struck through.", +"type": "boolean" +}, +"underline": { +"description": "Whether or not the text is underlined.", +"type": "boolean" +}, +"weightedFontFamily": { +"$ref": "WeightedFontFamily", +"description": "The font family and rendered weight of the text. If an update request specifies values for both `weighted_font_family` and `bold`, the `weighted_font_family` is applied first, then `bold`. If `weighted_font_family#weight` is not set, it defaults to `400`. If `weighted_font_family` is set, then `weighted_font_family#font_family` must also be set with a non-empty value. Otherwise, a 400 bad request error is returned." +} +}, +"type": "object" +}, +"TextStyleSuggestionState": { +"description": "A mask that indicates which of the fields on the base TextStyle have been changed in this suggestion. For any field set to true, there's a new suggested value.", +"id": "TextStyleSuggestionState", +"properties": { +"backgroundColorSuggested": { +"description": "Indicates if there was a suggested change to background_color.", +"type": "boolean" +}, +"baselineOffsetSuggested": { +"description": "Indicates if there was a suggested change to baseline_offset.", +"type": "boolean" +}, +"boldSuggested": { +"description": "Indicates if there was a suggested change to bold.", +"type": "boolean" +}, +"fontSizeSuggested": { +"description": "Indicates if there was a suggested change to font_size.", +"type": "boolean" +}, +"foregroundColorSuggested": { +"description": "Indicates if there was a suggested change to foreground_color.", +"type": "boolean" +}, +"italicSuggested": { +"description": "Indicates if there was a suggested change to italic.", +"type": "boolean" +}, +"linkSuggested": { +"description": "Indicates if there was a suggested change to link.", +"type": "boolean" +}, +"smallCapsSuggested": { +"description": "Indicates if there was a suggested change to small_caps.", +"type": "boolean" +}, +"strikethroughSuggested": { +"description": "Indicates if there was a suggested change to strikethrough.", +"type": "boolean" +}, +"underlineSuggested": { +"description": "Indicates if there was a suggested change to underline.", +"type": "boolean" +}, +"weightedFontFamilySuggested": { +"description": "Indicates if there was a suggested change to weighted_font_family.", +"type": "boolean" +} +}, +"type": "object" +}, +"UnmergeTableCellsRequest": { +"description": "Unmerges cells in a Table.", +"id": "UnmergeTableCellsRequest", +"properties": { +"tableRange": { +"$ref": "TableRange", +"description": "The table range specifying which cells of the table to unmerge. All merged cells in this range will be unmerged, and cells that are already unmerged will not be affected. If the range has no merged cells, the request will do nothing. If there is text in any of the merged cells, the text will remain in the \"head\" cell of the resulting block of unmerged cells. The \"head\" cell is the upper-left cell when the content direction is from left to right, and the upper-right otherwise." +} +}, +"type": "object" +}, +"UpdateDocumentStyleRequest": { +"description": "Updates the DocumentStyle.", +"id": "UpdateDocumentStyleRequest", +"properties": { +"documentStyle": { +"$ref": "DocumentStyle", +"description": "The styles to set on the document. Certain document style changes may cause other changes in order to mirror the behavior of the Docs editor. See the documentation of DocumentStyle for more information." +}, +"fields": { +"description": "The fields that should be updated. At least one field must be specified. The root `document_style` is implied and should not be specified. A single `\"*\"` can be used as short-hand for listing every field. For example to update the background, set `fields` to `\"background\"`.", +"format": "google-fieldmask", +"type": "string" +}, +"tabId": { +"description": "The tab that contains the style to update. When omitted, the request applies to the first tab. In a document containing a single tab: - If provided, must match the singular tab's ID. - If omitted, the request applies to the singular tab. In a document containing multiple tabs: - If provided, the request applies to the specified tab. - If not provided, the request applies to the first tab in the document.", +"type": "string" +} +}, +"type": "object" +}, +"UpdateParagraphStyleRequest": { +"description": "Update the styling of all paragraphs that overlap with the given range.", +"id": "UpdateParagraphStyleRequest", +"properties": { +"fields": { +"description": "The fields that should be updated. At least one field must be specified. The root `paragraph_style` is implied and should not be specified. A single `\"*\"` can be used as short-hand for listing every field. For example, to update the paragraph style's alignment property, set `fields` to `\"alignment\"`. To reset a property to its default value, include its field name in the field mask but leave the field itself unset.", +"format": "google-fieldmask", +"type": "string" +}, +"paragraphStyle": { +"$ref": "ParagraphStyle", +"description": "The styles to set on the paragraphs. Certain paragraph style changes may cause other changes in order to mirror the behavior of the Docs editor. See the documentation of ParagraphStyle for more information." +}, +"range": { +"$ref": "Range", +"description": "The range overlapping the paragraphs to style." +} +}, +"type": "object" +}, +"UpdateSectionStyleRequest": { +"description": "Updates the SectionStyle.", +"id": "UpdateSectionStyleRequest", +"properties": { +"fields": { +"description": "The fields that should be updated. At least one field must be specified. The root `section_style` is implied and must not be specified. A single `\"*\"` can be used as short-hand for listing every field. For example to update the left margin, set `fields` to `\"margin_left\"`.", +"format": "google-fieldmask", +"type": "string" +}, +"range": { +"$ref": "Range", +"description": "The range overlapping the sections to style. Because section breaks can only be inserted inside the body, the segment ID field must be empty." +}, +"sectionStyle": { +"$ref": "SectionStyle", +"description": "The styles to be set on the section. Certain section style changes may cause other changes in order to mirror the behavior of the Docs editor. See the documentation of SectionStyle for more information." +} +}, +"type": "object" +}, +"UpdateTableCellStyleRequest": { +"description": "Updates the style of a range of table cells.", +"id": "UpdateTableCellStyleRequest", +"properties": { +"fields": { +"description": "The fields that should be updated. At least one field must be specified. The root `tableCellStyle` is implied and should not be specified. A single `\"*\"` can be used as short-hand for listing every field. For example to update the table cell background color, set `fields` to `\"backgroundColor\"`. To reset a property to its default value, include its field name in the field mask but leave the field itself unset.", +"format": "google-fieldmask", +"type": "string" +}, +"tableCellStyle": { +"$ref": "TableCellStyle", +"description": "The style to set on the table cells. When updating borders, if a cell shares a border with an adjacent cell, the corresponding border property of the adjacent cell is updated as well. Borders that are merged and invisible are not updated. Since updating a border shared by adjacent cells in the same request can cause conflicting border updates, border updates are applied in the following order: - `border_right` - `border_left` - `border_bottom` - `border_top`" +}, +"tableRange": { +"$ref": "TableRange", +"description": "The table range representing the subset of the table to which the updates are applied." +}, +"tableStartLocation": { +"$ref": "Location", +"description": "The location where the table starts in the document. When specified, the updates are applied to all the cells in the table." +} +}, +"type": "object" +}, +"UpdateTableColumnPropertiesRequest": { +"description": "Updates the TableColumnProperties of columns in a table.", +"id": "UpdateTableColumnPropertiesRequest", +"properties": { +"columnIndices": { +"description": "The list of zero-based column indices whose property should be updated. If no indices are specified, all columns will be updated.", +"items": { +"format": "int32", +"type": "integer" +}, +"type": "array" +}, +"fields": { +"description": "The fields that should be updated. At least one field must be specified. The root `tableColumnProperties` is implied and should not be specified. A single `\"*\"` can be used as short-hand for listing every field. For example to update the column width, set `fields` to `\"width\"`.", +"format": "google-fieldmask", +"type": "string" +}, +"tableColumnProperties": { +"$ref": "TableColumnProperties", +"description": "The table column properties to update. If the value of `table_column_properties#width` is less than 5 points (5/72 inch), a 400 bad request error is returned." +}, +"tableStartLocation": { +"$ref": "Location", +"description": "The location where the table starts in the document." +} +}, +"type": "object" +}, +"UpdateTableRowStyleRequest": { +"description": "Updates the TableRowStyle of rows in a table.", +"id": "UpdateTableRowStyleRequest", +"properties": { +"fields": { +"description": "The fields that should be updated. At least one field must be specified. The root `tableRowStyle` is implied and should not be specified. A single `\"*\"` can be used as short-hand for listing every field. For example to update the minimum row height, set `fields` to `\"min_row_height\"`.", +"format": "google-fieldmask", +"type": "string" +}, +"rowIndices": { +"description": "The list of zero-based row indices whose style should be updated. If no indices are specified, all rows will be updated.", +"items": { +"format": "int32", +"type": "integer" +}, +"type": "array" +}, +"tableRowStyle": { +"$ref": "TableRowStyle", +"description": "The styles to be set on the rows." +}, +"tableStartLocation": { +"$ref": "Location", +"description": "The location where the table starts in the document." +} +}, +"type": "object" +}, +"UpdateTextStyleRequest": { +"description": "Update the styling of text.", +"id": "UpdateTextStyleRequest", +"properties": { +"fields": { +"description": "The fields that should be updated. At least one field must be specified. The root `text_style` is implied and should not be specified. A single `\"*\"` can be used as short-hand for listing every field. For example, to update the text style to bold, set `fields` to `\"bold\"`. To reset a property to its default value, include its field name in the field mask but leave the field itself unset.", +"format": "google-fieldmask", +"type": "string" +}, +"range": { +"$ref": "Range", +"description": "The range of text to style. The range may be extended to include adjacent newlines. If the range fully contains a paragraph belonging to a list, the paragraph's bullet is also updated with the matching text style. Ranges cannot be inserted inside a relative UpdateTextStyleRequest." +}, +"textStyle": { +"$ref": "TextStyle", +"description": "The styles to set on the text. If the value for a particular style matches that of the parent, that style will be set to inherit. Certain text style changes may cause other changes in order to to mirror the behavior of the Docs editor. See the documentation of TextStyle for more information." +} +}, +"type": "object" +}, +"WeightedFontFamily": { +"description": "Represents a font family and weight of text.", +"id": "WeightedFontFamily", +"properties": { +"fontFamily": { +"description": "The font family of the text. The font family can be any font from the Font menu in Docs or from [Google Fonts] (https://fonts.google.com/). If the font name is unrecognized, the text is rendered in `Arial`.", +"type": "string" +}, +"weight": { +"description": "The weight of the font. This field can have any value that's a multiple of `100` between `100` and `900`, inclusive. This range corresponds to the numerical values described in the CSS 2.1 Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness), with non-numerical values disallowed. The default value is `400` (\"normal\"). The font weight makes up just one component of the rendered font weight. A combination of the `weight` and the text style's resolved `bold` value determine the rendered weight, after accounting for inheritance: * If the text is bold and the weight is less than `400`, the rendered weight is 400. * If the text is bold and the weight is greater than or equal to `400` but is less than `700`, the rendered weight is `700`. * If the weight is greater than or equal to `700`, the rendered weight is equal to the weight. * If the text is not bold, the rendered weight is equal to the weight.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"WriteControl": { +"description": "Provides control over how write requests are executed.", +"id": "WriteControl", +"properties": { +"requiredRevisionId": { +"description": "The optional revision ID of the document the write request is applied to. If this is not the latest revision of the document, the request is not processed and returns a 400 bad request error. When a required revision ID is returned in a response, it indicates the revision ID of the document after the request was applied.", +"type": "string" +}, +"targetRevisionId": { +"description": "The optional target revision ID of the document the write request is applied to. If collaborator changes have occurred after the document was read using the API, the changes produced by this write request are applied against the collaborator changes. This results in a new revision of the document that incorporates both the collaborator changes and the changes in the request, with the Docs server resolving conflicting changes. When using target revision ID, the API client can be thought of as another collaborator of the document. The target revision ID can only be used to write to recent versions of a document. If the target revision is too far behind the latest revision, the request is not processed and returns a 400 bad request error. The request should be tried again after retrieving the latest version of the document. Usually a revision ID remains valid for use as a target revision for several minutes after it's read, but for frequently edited documents this window might be shorter.", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Google Docs 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/domains.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/domains.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..f7252ceea674f4f82f96cb3708debc89c1bd5b0c --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/domains.v1.json @@ -0,0 +1,2758 @@ +{ +"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://domains.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Cloud Domains", +"description": "Enables management and configuration of domain names.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/domains/", +"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": "domains:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://domains.mtls.googleapis.com/", +"name": "domains", +"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": "domains.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": "domains.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": { +"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": "domains.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": "domains.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" +] +} +} +}, +"registrations": { +"methods": { +"configureContactSettings": { +"description": "Updates a `Registration`'s contact settings. Some changes require confirmation by the domain's registrant contact . Caution: Please consider carefully any changes to contact privacy settings when changing from `REDACTED_CONTACT_DATA` to `PUBLIC_CONTACT_DATA.` There may be a delay in reflecting updates you make to registrant contact information such that any changes you make to contact privacy (including from `REDACTED_CONTACT_DATA` to `PUBLIC_CONTACT_DATA`) will be applied without delay but changes to registrant contact information may take a limited time to be publicized. This means that changes to contact privacy from `REDACTED_CONTACT_DATA` to `PUBLIC_CONTACT_DATA` may make the previous registrant contact data public until the modified registrant contact details are published.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registrations/{registrationsId}:configureContactSettings", +"httpMethod": "POST", +"id": "domains.projects.locations.registrations.configureContactSettings", +"parameterOrder": [ +"registration" +], +"parameters": { +"registration": { +"description": "Required. The name of the `Registration` whose contact settings are being updated, in the format `projects/*/locations/*/registrations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/registrations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+registration}:configureContactSettings", +"request": { +"$ref": "ConfigureContactSettingsRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"configureDnsSettings": { +"description": "Updates a `Registration`'s DNS settings.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registrations/{registrationsId}:configureDnsSettings", +"httpMethod": "POST", +"id": "domains.projects.locations.registrations.configureDnsSettings", +"parameterOrder": [ +"registration" +], +"parameters": { +"registration": { +"description": "Required. The name of the `Registration` whose DNS settings are being updated, in the format `projects/*/locations/*/registrations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/registrations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+registration}:configureDnsSettings", +"request": { +"$ref": "ConfigureDnsSettingsRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"configureManagementSettings": { +"description": "Updates a `Registration`'s management settings.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registrations/{registrationsId}:configureManagementSettings", +"httpMethod": "POST", +"id": "domains.projects.locations.registrations.configureManagementSettings", +"parameterOrder": [ +"registration" +], +"parameters": { +"registration": { +"description": "Required. The name of the `Registration` whose management settings are being updated, in the format `projects/*/locations/*/registrations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/registrations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+registration}:configureManagementSettings", +"request": { +"$ref": "ConfigureManagementSettingsRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a `Registration` resource. This method works on any `Registration` resource using [Subscription or Commitment billing](/domains/pricing#billing-models), provided that the resource was created at least 1 day in the past. When an active registration is successfully deleted, you can continue to use the domain in [Google Domains](https://domains.google/) until it expires. The calling user becomes the domain's sole owner in Google Domains, and permissions for the domain are subsequently managed there. The domain does not renew automatically unless the new owner sets up billing in Google Domains. After January 2024 you will only be able to delete `Registration` resources when `state` is one of: `EXPORTED`, `EXPIRED`,`REGISTRATION_FAILED` or `TRANSFER_FAILED`. See [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) for more details.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registrations/{registrationsId}", +"httpMethod": "DELETE", +"id": "domains.projects.locations.registrations.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the `Registration` to delete, in the format `projects/*/locations/*/registrations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/registrations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"export": { +"deprecated": true, +"description": "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) Exports a `Registration` resource, such that it is no longer managed by Cloud Domains. When an active domain is successfully exported, you can continue to use the domain in [Google Domains](https://domains.google/) until it expires. The calling user becomes the domain's sole owner in Google Domains, and permissions for the domain are subsequently managed there. The domain does not renew automatically unless the new owner sets up billing in Google Domains.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registrations/{registrationsId}:export", +"httpMethod": "POST", +"id": "domains.projects.locations.registrations.export", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the `Registration` to export, in the format `projects/*/locations/*/registrations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/registrations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:export", +"request": { +"$ref": "ExportRegistrationRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the details of a `Registration` resource.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registrations/{registrationsId}", +"httpMethod": "GET", +"id": "domains.projects.locations.registrations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the `Registration` to get, in the format `projects/*/locations/*/registrations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/registrations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Registration" +}, +"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}/registrations/{registrationsId}:getIamPolicy", +"httpMethod": "GET", +"id": "domains.projects.locations.registrations.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/[^/]+/registrations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"import": { +"deprecated": true, +"description": "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) Imports a domain name from [Google Domains](https://domains.google/) for use in Cloud Domains. To transfer a domain from another registrar, use the `TransferDomain` method instead. Since individual users can own domains in Google Domains, the calling user must have ownership permission on the domain.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registrations:import", +"httpMethod": "POST", +"id": "domains.projects.locations.registrations.import", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource of the Registration. Must be in the format `projects/*/locations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/registrations:import", +"request": { +"$ref": "ImportDomainRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"initiatePushTransfer": { +"description": "Initiates the `Push Transfer` process to transfer the domain to another registrar. The process might complete instantly or might require confirmation or additional work. Check the emails sent to the email address of the registrant. The process is aborted after a timeout if it's not completed. This method is only supported for domains that have the `REQUIRE_PUSH_TRANSFER` property in the list of `domain_properties`. The domain must also be unlocked before it can be transferred to a different registrar. For more information, see [Transfer a registered domain to another registrar](https://cloud.google.com/domains/docs/transfer-domain-to-another-registrar).", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registrations/{registrationsId}:initiatePushTransfer", +"httpMethod": "POST", +"id": "domains.projects.locations.registrations.initiatePushTransfer", +"parameterOrder": [ +"registration" +], +"parameters": { +"registration": { +"description": "Required. The name of the `Registration` for which the push transfer is initiated, in the format `projects/*/locations/*/registrations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/registrations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+registration}:initiatePushTransfer", +"request": { +"$ref": "InitiatePushTransferRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists the `Registration` resources in a project.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registrations", +"httpMethod": "GET", +"id": "domains.projects.locations.registrations.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Filter expression to restrict the `Registration`s returned. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, a boolean, or an enum value. The comparison operator should be one of =, !=, >, <, >=, <=, or : for prefix or wildcard matches. For example, to filter to a specific domain name, use an expression like `domainName=\"example.com\"`. You can also check for the existence of a field; for example, to find domains using custom DNS settings, use an expression like `dnsSettings.customDns:*`. You can also create compound filters by combining expressions with the `AND` and `OR` operators. For example, to find domains that are suspended or have specific issues flagged, use an expression like `(state=SUSPENDED) OR (issue:*)`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Maximum number of results to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "When set to the `next_page_token` from a prior response, provides the next page of results.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project and location from which to list `Registration`s, specified in the format `projects/*/locations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/registrations", +"response": { +"$ref": "ListRegistrationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates select fields of a `Registration` resource, notably `labels`. To update other fields, use the appropriate custom update method: * To update management settings, see `ConfigureManagementSettings` * To update DNS configuration, see `ConfigureDnsSettings` * To update contact information, see `ConfigureContactSettings`", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registrations/{registrationsId}", +"httpMethod": "PATCH", +"id": "domains.projects.locations.registrations.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. Name of the `Registration` resource, in the format `projects/*/locations/*/registrations/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/registrations/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The field mask describing which fields to update as a comma-separated list. For example, if only the labels are being updated, the `update_mask` is `\"labels\"`.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "Registration" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"register": { +"description": "Registers a new domain name and creates a corresponding `Registration` resource. Call `RetrieveRegisterParameters` first to check availability of the domain name and determine parameters like price that are needed to build a call to this method. A successful call creates a `Registration` resource in state `REGISTRATION_PENDING`, which resolves to `ACTIVE` within 1-2 minutes, indicating that the domain was successfully registered. If the resource ends up in state `REGISTRATION_FAILED`, it indicates that the domain was not registered successfully, and you can safely delete the resource and retry registration.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registrations:register", +"httpMethod": "POST", +"id": "domains.projects.locations.registrations.register", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource of the `Registration`. Must be in the format `projects/*/locations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/registrations:register", +"request": { +"$ref": "RegisterDomainRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"renewDomain": { +"description": "Renews a recently expired domain. This method can only be called on domains that expired in the previous 30 days. After the renewal, the new expiration time of the domain is one year after the old expiration time and you are charged a `yearly_price` for the renewal.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registrations/{registrationsId}:renewDomain", +"httpMethod": "POST", +"id": "domains.projects.locations.registrations.renewDomain", +"parameterOrder": [ +"registration" +], +"parameters": { +"registration": { +"description": "Required. The name of the `Registration` whish is being renewed, in the format `projects/*/locations/*/registrations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/registrations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+registration}:renewDomain", +"request": { +"$ref": "RenewDomainRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"resetAuthorizationCode": { +"description": "Resets the authorization code of the `Registration` to a new random string. You can call this method only after 60 days have elapsed since the initial domain registration. Domains that have the `REQUIRE_PUSH_TRANSFER` property in the list of `domain_properties` don't support authorization codes and must use the `InitiatePushTransfer` method to initiate the process to transfer the domain to a different registrar.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registrations/{registrationsId}:resetAuthorizationCode", +"httpMethod": "POST", +"id": "domains.projects.locations.registrations.resetAuthorizationCode", +"parameterOrder": [ +"registration" +], +"parameters": { +"registration": { +"description": "Required. The name of the `Registration` whose authorization code is being reset, in the format `projects/*/locations/*/registrations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/registrations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+registration}:resetAuthorizationCode", +"request": { +"$ref": "ResetAuthorizationCodeRequest" +}, +"response": { +"$ref": "AuthorizationCode" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"retrieveAuthorizationCode": { +"description": "Gets the authorization code of the `Registration` for the purpose of transferring the domain to another registrar. You can call this method only after 60 days have elapsed since the initial domain registration. Domains that have the `REQUIRE_PUSH_TRANSFER` property in the list of `domain_properties` don't support authorization codes and must use the `InitiatePushTransfer` method to initiate the process to transfer the domain to a different registrar.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registrations/{registrationsId}:retrieveAuthorizationCode", +"httpMethod": "GET", +"id": "domains.projects.locations.registrations.retrieveAuthorizationCode", +"parameterOrder": [ +"registration" +], +"parameters": { +"registration": { +"description": "Required. The name of the `Registration` whose authorization code is being retrieved, in the format `projects/*/locations/*/registrations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/registrations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+registration}:retrieveAuthorizationCode", +"response": { +"$ref": "AuthorizationCode" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"retrieveGoogleDomainsDnsRecords": { +"description": "Lists the DNS records from the Google Domains DNS zone for domains that use the deprecated `google_domains_dns` in the `Registration`'s `dns_settings`.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registrations/{registrationsId}:retrieveGoogleDomainsDnsRecords", +"httpMethod": "GET", +"id": "domains.projects.locations.registrations.retrieveGoogleDomainsDnsRecords", +"parameterOrder": [ +"registration" +], +"parameters": { +"pageSize": { +"description": "Optional. Maximum number of results to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. When set to the `next_page_token` from a prior response, provides the next page of results.", +"location": "query", +"type": "string" +}, +"registration": { +"description": "Required. The name of the `Registration` whose Google Domains DNS records details you are retrieving, in the format `projects/*/locations/*/registrations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/registrations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+registration}:retrieveGoogleDomainsDnsRecords", +"response": { +"$ref": "RetrieveGoogleDomainsDnsRecordsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"retrieveGoogleDomainsForwardingConfig": { +"description": "Lists the deprecated domain and email forwarding configurations you set up in the deprecated Google Domains UI. The configuration is present only for domains with the `google_domains_redirects_data_available` set to `true` in the `Registration`'s `dns_settings`. A forwarding configuration might not work correctly if required DNS records are not present in the domain's authoritative DNS Zone.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registrations/{registrationsId}:retrieveGoogleDomainsForwardingConfig", +"httpMethod": "GET", +"id": "domains.projects.locations.registrations.retrieveGoogleDomainsForwardingConfig", +"parameterOrder": [ +"registration" +], +"parameters": { +"registration": { +"description": "Required. The name of the `Registration` whose Google Domains forwarding configuration details are being retrieved, in the format `projects/*/locations/*/registrations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/registrations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+registration}:retrieveGoogleDomainsForwardingConfig", +"response": { +"$ref": "RetrieveGoogleDomainsForwardingConfigResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"retrieveImportableDomains": { +"deprecated": true, +"description": "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) Lists domain names from [Google Domains](https://domains.google/) that can be imported to Cloud Domains using the `ImportDomain` method. Since individual users can own domains in Google Domains, the list of domains returned depends on the individual user making the call. Domains already managed by Cloud Domains are not returned.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registrations:retrieveImportableDomains", +"httpMethod": "GET", +"id": "domains.projects.locations.registrations.retrieveImportableDomains", +"parameterOrder": [ +"location" +], +"parameters": { +"location": { +"description": "Required. The location. Must be in the format `projects/*/locations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "Maximum number of results to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "When set to the `next_page_token` from a prior response, provides the next page of results.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+location}/registrations:retrieveImportableDomains", +"response": { +"$ref": "RetrieveImportableDomainsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"retrieveRegisterParameters": { +"description": "Gets parameters needed to register a new domain name, including price and up-to-date availability. Use the returned values to call `RegisterDomain`.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registrations:retrieveRegisterParameters", +"httpMethod": "GET", +"id": "domains.projects.locations.registrations.retrieveRegisterParameters", +"parameterOrder": [ +"location" +], +"parameters": { +"domainName": { +"description": "Required. The domain name. Unicode domain names must be expressed in Punycode format.", +"location": "query", +"type": "string" +}, +"location": { +"description": "Required. The location. Must be in the format `projects/*/locations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+location}/registrations:retrieveRegisterParameters", +"response": { +"$ref": "RetrieveRegisterParametersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"retrieveTransferParameters": { +"deprecated": true, +"description": "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) Gets parameters needed to transfer a domain name from another registrar to Cloud Domains. For domains already managed by [Google Domains](https://domains.google/), use `ImportDomain` instead. Use the returned values to call `TransferDomain`.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registrations:retrieveTransferParameters", +"httpMethod": "GET", +"id": "domains.projects.locations.registrations.retrieveTransferParameters", +"parameterOrder": [ +"location" +], +"parameters": { +"domainName": { +"description": "Required. The domain name. Unicode domain names must be expressed in Punycode format.", +"location": "query", +"type": "string" +}, +"location": { +"description": "Required. The location. Must be in the format `projects/*/locations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+location}/registrations:retrieveTransferParameters", +"response": { +"$ref": "RetrieveTransferParametersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"searchDomains": { +"description": "Searches for available domain names similar to the provided query. Availability results from this method are approximate; call `RetrieveRegisterParameters` on a domain before registering to confirm availability.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registrations:searchDomains", +"httpMethod": "GET", +"id": "domains.projects.locations.registrations.searchDomains", +"parameterOrder": [ +"location" +], +"parameters": { +"location": { +"description": "Required. The location. Must be in the format `projects/*/locations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"query": { +"description": "Required. String used to search for available domain names.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+location}/registrations:searchDomains", +"response": { +"$ref": "SearchDomainsResponse" +}, +"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}/registrations/{registrationsId}:setIamPolicy", +"httpMethod": "POST", +"id": "domains.projects.locations.registrations.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/[^/]+/registrations/[^/]+$", +"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 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}/registrations/{registrationsId}:testIamPermissions", +"httpMethod": "POST", +"id": "domains.projects.locations.registrations.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/[^/]+/registrations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"transfer": { +"deprecated": true, +"description": "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) Transfers a domain name from another registrar to Cloud Domains. For domains already managed by [Google Domains](https://domains.google/), use `ImportDomain` instead. Before calling this method, go to the domain's current registrar to unlock the domain for transfer and retrieve the domain's transfer authorization code. Then call `RetrieveTransferParameters` to confirm that the domain is unlocked and to get values needed to build a call to this method. A successful call creates a `Registration` resource in state `TRANSFER_PENDING`. It can take several days to complete the transfer process. The registrant can often speed up this process by approving the transfer through the current registrar, either by clicking a link in an email from the registrar or by visiting the registrar's website. A few minutes after transfer approval, the resource transitions to state `ACTIVE`, indicating that the transfer was successful. If the transfer is rejected or the request expires without being approved, the resource can end up in state `TRANSFER_FAILED`. If transfer fails, you can safely delete the resource and retry the transfer.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/registrations:transfer", +"httpMethod": "POST", +"id": "domains.projects.locations.registrations.transfer", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource of the `Registration`. Must be in the format `projects/*/locations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/registrations:transfer", +"request": { +"$ref": "TransferDomainRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +}, +"revision": "20241209", +"rootUrl": "https://domains.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" +}, +"AuthorizationCode": { +"description": "Defines an authorization code.", +"id": "AuthorizationCode", +"properties": { +"code": { +"description": "The Authorization Code in ASCII. It can be used to transfer the domain to or from another registrar.", +"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" +}, +"ConfigureContactSettingsRequest": { +"description": "Request for the `ConfigureContactSettings` method.", +"id": "ConfigureContactSettingsRequest", +"properties": { +"contactNotices": { +"description": "The list of contact notices that the caller acknowledges. The notices needed here depend on the values specified in `contact_settings`.", +"items": { +"enum": [ +"CONTACT_NOTICE_UNSPECIFIED", +"PUBLIC_CONTACT_DATA_ACKNOWLEDGEMENT" +], +"enumDescriptions": [ +"The notice is undefined.", +"Required when setting the `privacy` field of `ContactSettings` to `PUBLIC_CONTACT_DATA`, which exposes contact data publicly." +], +"type": "string" +}, +"type": "array" +}, +"contactSettings": { +"$ref": "ContactSettings", +"description": "Fields of the `ContactSettings` to update." +}, +"updateMask": { +"description": "Required. The field mask describing which fields to update as a comma-separated list. For example, if only the registrant contact is being updated, the `update_mask` is `\"registrant_contact\"`.", +"format": "google-fieldmask", +"type": "string" +}, +"validateOnly": { +"description": "Validate the request without actually updating the contact settings.", +"type": "boolean" +} +}, +"type": "object" +}, +"ConfigureDnsSettingsRequest": { +"description": "Request for the `ConfigureDnsSettings` method.", +"id": "ConfigureDnsSettingsRequest", +"properties": { +"dnsSettings": { +"$ref": "DnsSettings", +"description": "Fields of the `DnsSettings` to update." +}, +"updateMask": { +"description": "Required. The field mask describing which fields to update as a comma-separated list. For example, if only the name servers are being updated for an existing Custom DNS configuration, the `update_mask` is `\"custom_dns.name_servers\"`. When changing the DNS provider from one type to another, pass the new provider's field name as part of the field mask. For example, when changing from a Google Domains DNS configuration to a Custom DNS configuration, the `update_mask` is `\"custom_dns\"`. //", +"format": "google-fieldmask", +"type": "string" +}, +"validateOnly": { +"description": "Validate the request without actually updating the DNS settings.", +"type": "boolean" +} +}, +"type": "object" +}, +"ConfigureManagementSettingsRequest": { +"description": "Request for the `ConfigureManagementSettings` method.", +"id": "ConfigureManagementSettingsRequest", +"properties": { +"managementSettings": { +"$ref": "ManagementSettings", +"description": "Fields of the `ManagementSettings` to update." +}, +"updateMask": { +"description": "Required. The field mask describing which fields to update as a comma-separated list. For example, if only the transfer lock is being updated, the `update_mask` is `\"transfer_lock_state\"`.", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"Contact": { +"description": "Details required for a contact associated with a `Registration`.", +"id": "Contact", +"properties": { +"email": { +"description": "Required. Email address of the contact.", +"type": "string" +}, +"faxNumber": { +"description": "Fax number of the contact in international format. For example, `\"+1-800-555-0123\"`.", +"type": "string" +}, +"phoneNumber": { +"description": "Required. Phone number of the contact in international format. For example, `\"+1-800-555-0123\"`.", +"type": "string" +}, +"postalAddress": { +"$ref": "PostalAddress", +"description": "Required. Postal address of the contact." +} +}, +"type": "object" +}, +"ContactSettings": { +"description": "Defines the contact information associated with a `Registration`. [ICANN](https://icann.org/) requires all domain names to have associated contact information. The `registrant_contact` is considered the domain's legal owner, and often the other contacts are identical.", +"id": "ContactSettings", +"properties": { +"adminContact": { +"$ref": "Contact", +"description": "Required. The administrative contact for the `Registration`." +}, +"privacy": { +"description": "Required. Privacy setting for the contacts associated with the `Registration`.", +"enum": [ +"CONTACT_PRIVACY_UNSPECIFIED", +"PUBLIC_CONTACT_DATA", +"PRIVATE_CONTACT_DATA", +"REDACTED_CONTACT_DATA" +], +"enumDeprecated": [ +false, +false, +true, +false +], +"enumDescriptions": [ +"The contact privacy settings are undefined.", +"All the data from `ContactSettings` is publicly available. When setting this option, you must also provide a `PUBLIC_CONTACT_DATA_ACKNOWLEDGEMENT` in the `contact_notices` field of the request.", +"Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations). None of the data from `ContactSettings` is publicly available. Instead, proxy contact data is published for your domain. Email sent to the proxy email address is forwarded to the registrant's email address. Cloud Domains provides this privacy proxy service at no additional cost.", +"The organization name (if provided) and limited non-identifying data from `ContactSettings` is available to the public (e.g. country and state). The remaining data is marked as `REDACTED FOR PRIVACY` in the WHOIS database. The actual information redacted depends on the domain. For details, see [the registration privacy article](https://support.google.com/domains/answer/3251242)." +], +"type": "string" +}, +"registrantContact": { +"$ref": "Contact", +"description": "Required. The registrant contact for the `Registration`. *Caution: Anyone with access to this email address, phone number, and/or postal address can take control of the domain.* *Warning: For new `Registration`s, the registrant receives an email confirmation that they must complete within 15 days to avoid domain suspension.*" +}, +"technicalContact": { +"$ref": "Contact", +"description": "Required. The technical contact for the `Registration`." +} +}, +"type": "object" +}, +"CustomDns": { +"description": "Configuration for an arbitrary DNS provider.", +"id": "CustomDns", +"properties": { +"dsRecords": { +"description": "The list of DS records for this domain, which are used to enable DNSSEC. The domain's DNS provider can provide the values to set here. If this field is empty, DNSSEC is disabled.", +"items": { +"$ref": "DsRecord" +}, +"type": "array" +}, +"nameServers": { +"description": "Required. A list of name servers that store the DNS zone for this domain. Each name server is a domain name, with Unicode domain names expressed in Punycode format.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"DnsSettings": { +"description": "Defines the DNS configuration of a `Registration`, including name servers, DNSSEC, and glue records.", +"id": "DnsSettings", +"properties": { +"customDns": { +"$ref": "CustomDns", +"description": "An arbitrary DNS provider identified by its name servers." +}, +"glueRecords": { +"description": "The list of glue records for this `Registration`. Commonly empty.", +"items": { +"$ref": "GlueRecord" +}, +"type": "array" +}, +"googleDomainsDns": { +"$ref": "GoogleDomainsDns", +"deprecated": true, +"description": "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations). The free DNS zone provided by [Google Domains](https://domains.google/)." +}, +"googleDomainsRedirectsDataAvailable": { +"description": "Output only. Indicates if this `Registration` has configured one of the following deprecated Google Domains DNS features: * Domain forwarding (HTTP `301` and `302` response status codes), * Email forwarding. See https://cloud.google.com/domains/docs/deprecations/feature-deprecations for more details. If any of these features is enabled call the `RetrieveGoogleDomainsForwardingConfig` method to get details about the feature's configuration. A forwarding configuration might not work correctly if required DNS records are not present in the domain's authoritative DNS Zone.", +"readOnly": true, +"type": "boolean" +} +}, +"type": "object" +}, +"Domain": { +"description": "A domain that the calling user manages in Google Domains.", +"id": "Domain", +"properties": { +"domainName": { +"description": "The domain name. Unicode domain names are expressed in Punycode format.", +"type": "string" +}, +"resourceState": { +"description": "The state of this domain as a `Registration` resource.", +"enum": [ +"RESOURCE_STATE_UNSPECIFIED", +"IMPORTABLE", +"UNSUPPORTED", +"SUSPENDED", +"EXPIRED", +"DELETED" +], +"enumDescriptions": [ +"The assessment is undefined.", +"A `Registration` resource can be created for this domain by calling `ImportDomain`.", +"A `Registration` resource cannot be created for this domain because it is not supported by Cloud Domains; for example, the top-level domain is not supported or the registry charges non-standard pricing for yearly renewals.", +"A `Registration` resource cannot be created for this domain because it is suspended and needs to be resolved with Google Domains.", +"A `Registration` resource cannot be created for this domain because it is expired and needs to be renewed with Google Domains.", +"A `Registration` resource cannot be created for this domain because it is deleted, but it may be possible to restore it with Google Domains." +], +"type": "string" +}, +"yearlyPrice": { +"$ref": "Money", +"description": "Price to renew the domain for one year. Only set when `resource_state` is `IMPORTABLE`." +} +}, +"type": "object" +}, +"DomainForwarding": { +"description": "Domain forwarding configuration.", +"id": "DomainForwarding", +"properties": { +"pathForwarding": { +"description": "If true, forwards the path after the domain name to the same path at the new address.", +"type": "boolean" +}, +"pemCertificate": { +"description": "The PEM-encoded certificate chain.", +"type": "string" +}, +"redirectType": { +"description": "The redirect type.", +"enum": [ +"REDIRECT_TYPE_UNSPECIFIED", +"TEMPORARY", +"PERMANENT" +], +"enumDescriptions": [ +"Redirect Type is unspecified.", +"301 redirect. Allows to propagate changes to the forwarding address quickly.", +"302 redirect. Allows browsers to cache the forwarding address. This may help the address resolve more quickly. Changes may take longer to propagate" +], +"type": "string" +}, +"sslEnabled": { +"description": "If true, the forwarding works also over HTTPS.", +"type": "boolean" +}, +"subdomain": { +"description": "The subdomain of the registered domain that is being forwarded. E.g. `www.example.com`, `example.com` (i.e. the registered domain itself) or `*.example.com` (i.e. all subdomains).", +"type": "string" +}, +"targetUri": { +"description": "The target of the domain forwarding, i.e. the path to redirect the `subdomain` to.", +"type": "string" +} +}, +"type": "object" +}, +"DsRecord": { +"description": "Defines a Delegation Signer (DS) record, which is needed to enable DNSSEC for a domain. It contains a digest (hash) of a DNSKEY record that must be present in the domain's DNS zone.", +"id": "DsRecord", +"properties": { +"algorithm": { +"description": "The algorithm used to generate the referenced DNSKEY.", +"enum": [ +"ALGORITHM_UNSPECIFIED", +"RSAMD5", +"DH", +"DSA", +"ECC", +"RSASHA1", +"DSANSEC3SHA1", +"RSASHA1NSEC3SHA1", +"RSASHA256", +"RSASHA512", +"ECCGOST", +"ECDSAP256SHA256", +"ECDSAP384SHA384", +"ED25519", +"ED448", +"INDIRECT", +"PRIVATEDNS", +"PRIVATEOID" +], +"enumDescriptions": [ +"The algorithm is unspecified.", +"RSA/MD5. Cannot be used for new deployments.", +"Diffie-Hellman. Cannot be used for new deployments.", +"DSA/SHA1. Not recommended for new deployments.", +"ECC. Not recommended for new deployments.", +"RSA/SHA-1. Not recommended for new deployments.", +"DSA-NSEC3-SHA1. Not recommended for new deployments.", +"RSA/SHA1-NSEC3-SHA1. Not recommended for new deployments.", +"RSA/SHA-256.", +"RSA/SHA-512.", +"GOST R 34.10-2001.", +"ECDSA Curve P-256 with SHA-256.", +"ECDSA Curve P-384 with SHA-384.", +"Ed25519.", +"Ed448.", +"Reserved for Indirect Keys. Cannot be used for new deployments.", +"Private algorithm. Cannot be used for new deployments.", +"Private algorithm OID. Cannot be used for new deployments." +], +"type": "string" +}, +"digest": { +"description": "The digest generated from the referenced DNSKEY.", +"type": "string" +}, +"digestType": { +"description": "The hash function used to generate the digest of the referenced DNSKEY.", +"enum": [ +"DIGEST_TYPE_UNSPECIFIED", +"SHA1", +"SHA256", +"GOST3411", +"SHA384" +], +"enumDescriptions": [ +"The DigestType is unspecified.", +"SHA-1. Not recommended for new deployments.", +"SHA-256.", +"GOST R 34.11-94.", +"SHA-384." +], +"type": "string" +}, +"keyTag": { +"description": "The key tag of the record. Must be set in range 0 -- 65535.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"EmailForwarding": { +"description": "Email forwarding configuration.", +"id": "EmailForwarding", +"properties": { +"alias": { +"description": "An alias recipient email that forwards emails to the `target_email_address`. For example, `admin@example.com` or `*@example.com` (wildcard alias forwards all the emails under the registered domain).", +"type": "string" +}, +"targetEmailAddress": { +"description": "Target email that receives emails sent to the `alias`.", +"type": "string" +} +}, +"type": "object" +}, +"ExportRegistrationRequest": { +"deprecated": true, +"description": "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations). Request for the `ExportRegistration` method.", +"id": "ExportRegistrationRequest", +"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" +}, +"GeoPolicy": { +"description": "Configures a `RRSetRoutingPolicy` that routes based on the geo location of the querying user.", +"id": "GeoPolicy", +"properties": { +"enableFencing": { +"description": "Without fencing, if health check fails for all configured items in the current geo bucket, we failover to the next nearest geo bucket. With fencing, if health checking is enabled, as long as some targets in the current geo bucket are healthy, we return only the healthy targets. However, if all targets are unhealthy, we don't failover to the next nearest bucket; instead, we return all the items in the current bucket even when all targets are unhealthy.", +"type": "boolean" +}, +"item": { +"description": "The primary geo routing configuration. If there are multiple items with the same location, an error is returned instead.", +"items": { +"$ref": "GeoPolicyItem" +}, +"type": "array" +} +}, +"type": "object" +}, +"GeoPolicyItem": { +"description": "ResourceRecordSet data for one geo location.", +"id": "GeoPolicyItem", +"properties": { +"healthCheckedTargets": { +"$ref": "HealthCheckTargets", +"description": "For A and AAAA types only. Endpoints to return in the query result only if they are healthy. These can be specified along with `rrdata` within this item." +}, +"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" +}, +"rrdata": { +"items": { +"type": "string" +}, +"type": "array" +}, +"signatureRrdata": { +"description": "DNSSEC generated signatures for all the `rrdata` within this item. If health checked targets are provided for DNSSEC enabled zones, there's a restriction of 1 IP address per item.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GlueRecord": { +"description": "Defines a host on your domain that is a DNS name server for your domain and/or other domains. Glue records are a way of making the IP address of a name server known, even when it serves DNS queries for its parent domain. For example, when `ns.example.com` is a name server for `example.com`, the host `ns.example.com` must have a glue record to break the circular DNS reference.", +"id": "GlueRecord", +"properties": { +"hostName": { +"description": "Required. Domain name of the host in Punycode format.", +"type": "string" +}, +"ipv4Addresses": { +"description": "List of IPv4 addresses corresponding to this host in the standard decimal format (e.g. `198.51.100.1`). At least one of `ipv4_address` and `ipv6_address` must be set.", +"items": { +"type": "string" +}, +"type": "array" +}, +"ipv6Addresses": { +"description": "List of IPv6 addresses corresponding to this host in the standard hexadecimal format (e.g. `2001:db8::`). At least one of `ipv4_address` and `ipv6_address` must be set.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleDomainsDns": { +"deprecated": true, +"description": "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations). Configuration for using the free DNS zone provided by Google Domains as a `Registration`'s `dns_provider`. You cannot configure the DNS zone itself using the API. To configure the DNS zone, go to [Google Domains](https://domains.google/).", +"id": "GoogleDomainsDns", +"properties": { +"dsRecords": { +"description": "Output only. The list of DS records published for this domain. The list is automatically populated when `ds_state` is `DS_RECORDS_PUBLISHED`, otherwise it remains empty.", +"items": { +"$ref": "DsRecord" +}, +"readOnly": true, +"type": "array" +}, +"dsState": { +"description": "Required. The state of DS records for this domain. Used to enable or disable automatic DNSSEC.", +"enum": [ +"DS_STATE_UNSPECIFIED", +"DS_RECORDS_UNPUBLISHED", +"DS_RECORDS_PUBLISHED" +], +"enumDescriptions": [ +"DS state is unspecified.", +"DNSSEC is disabled for this domain. No DS records for this domain are published in the parent DNS zone.", +"DNSSEC is enabled for this domain. Appropriate DS records for this domain are published in the parent DNS zone. This option is valid only if the DNS zone referenced in the `Registration`'s `dns_provider` field is already DNSSEC-signed." +], +"type": "string" +}, +"nameServers": { +"description": "Output only. A list of name servers that store the DNS zone for this domain. Each name server is a domain name, with Unicode domain names expressed in Punycode format. This field is automatically populated with the name servers assigned to the Google Domains DNS zone.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"HealthCheckTargets": { +"description": "HealthCheckTargets describes endpoints to health-check when responding to Routing Policy queries. Only the healthy endpoints will be included in the response.", +"id": "HealthCheckTargets", +"properties": { +"externalEndpoints": { +"description": "The Internet IP addresses to be health checked. The format matches the format of ResourceRecordSet.rrdata as defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1)", +"items": { +"type": "string" +}, +"type": "array" +}, +"internalLoadBalancer": { +"description": "Configuration for internal load balancers to be health checked.", +"items": { +"$ref": "LoadBalancerTarget" +}, +"type": "array" +} +}, +"type": "object" +}, +"ImportDomainRequest": { +"deprecated": true, +"description": "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations). Request for the `ImportDomain` method.", +"id": "ImportDomainRequest", +"properties": { +"domainName": { +"description": "Required. The domain name. Unicode domain names must be expressed in Punycode format.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Set of labels associated with the `Registration`.", +"type": "object" +} +}, +"type": "object" +}, +"InitiatePushTransferRequest": { +"description": "Request for the `InitiatePushTransfer` method.", +"id": "InitiatePushTransferRequest", +"properties": { +"tag": { +"description": "Required. The Tag of the new registrar. Can be found at [List of registrars](https://nominet.uk/registrar-list/).", +"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" +}, +"ListRegistrationsResponse": { +"description": "Response for the `ListRegistrations` method.", +"id": "ListRegistrationsResponse", +"properties": { +"nextPageToken": { +"description": "When present, there are more results to retrieve. Set `page_token` to this value on a subsequent call to get the next page of results.", +"type": "string" +}, +"registrations": { +"description": "A list of `Registration`s.", +"items": { +"$ref": "Registration" +}, +"type": "array" +} +}, +"type": "object" +}, +"LoadBalancerTarget": { +"description": "The configuration for an individual load balancer to health check.", +"id": "LoadBalancerTarget", +"properties": { +"ipAddress": { +"description": "The frontend IP address of the load balancer to health check.", +"type": "string" +}, +"ipProtocol": { +"description": "The protocol of the load balancer to health check.", +"enum": [ +"UNDEFINED", +"TCP", +"UDP" +], +"enumDescriptions": [ +"", +"Indicates the load balancer is accessible via TCP.", +"Indicates the load balancer is accessible via UDP." +], +"type": "string" +}, +"loadBalancerType": { +"description": "The type of load balancer specified by this target. This value must match the configuration of the load balancer located at the LoadBalancerTarget's IP address, port, and region. Use the following: - *regionalL4ilb*: for a regional internal passthrough Network Load Balancer. - *regionalL7ilb*: for a regional internal Application Load Balancer. - *globalL7ilb*: for a global internal Application Load Balancer. ", +"enum": [ +"NONE", +"GLOBAL_L7ILB", +"REGIONAL_L4ILB", +"REGIONAL_L7ILB" +], +"enumDescriptions": [ +"", +"Indicates the load balancer is a Cross-Region Application Load Balancer.", +"Indicates the load balancer is a Regional Network Passthrough Load Balancer.", +"Indicates the load balancer is a Regional Application Load Balancer." +], +"type": "string" +}, +"networkUrl": { +"description": "The fully qualified URL of the network that the load balancer is attached to. This should be formatted like `https://www.googleapis.com/compute/v1/projects/{project}/global/networks/{network}`.", +"type": "string" +}, +"port": { +"description": "The configured port of the load balancer.", +"type": "string" +}, +"project": { +"description": "The project ID in which the load balancer is located.", +"type": "string" +}, +"region": { +"description": "The region in which the load balancer is located.", +"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" +}, +"ManagementSettings": { +"description": "Defines renewal, billing, and transfer settings for a `Registration`.", +"id": "ManagementSettings", +"properties": { +"effectiveTransferLockState": { +"description": "Output only. The actual transfer lock state for this `Registration`.", +"enum": [ +"TRANSFER_LOCK_STATE_UNSPECIFIED", +"UNLOCKED", +"LOCKED" +], +"enumDescriptions": [ +"The state is unspecified.", +"The domain is unlocked and can be transferred to another registrar.", +"The domain is locked and cannot be transferred to another registrar." +], +"readOnly": true, +"type": "string" +}, +"preferredRenewalMethod": { +"description": "Optional. The desired renewal method for this `Registration`. The actual `renewal_method` is automatically updated to reflect this choice. If unset or equal to `RENEWAL_METHOD_UNSPECIFIED`, the actual `renewalMethod` is treated as if it were set to `AUTOMATIC_RENEWAL`. You cannot use `RENEWAL_DISABLED` during resource creation, and you can update the renewal status only when the `Registration` resource has state `ACTIVE` or `SUSPENDED`. When `preferred_renewal_method` is set to `AUTOMATIC_RENEWAL`, the actual `renewal_method` can be set to `RENEWAL_DISABLED` in case of problems with the billing account or reported domain abuse. In such cases, check the `issues` field on the `Registration`. After the problem is resolved, the `renewal_method` is automatically updated to `preferred_renewal_method` in a few hours.", +"enum": [ +"RENEWAL_METHOD_UNSPECIFIED", +"AUTOMATIC_RENEWAL", +"MANUAL_RENEWAL", +"RENEWAL_DISABLED" +], +"enumDeprecated": [ +false, +false, +true, +false +], +"enumDescriptions": [ +"The renewal method is undefined.", +"The domain is automatically renewed each year.", +"Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations). This option was never used. Use `RENEWAL_DISABLED` instead.", +"The domain won't be renewed and will expire at its expiration time." +], +"type": "string" +}, +"renewalMethod": { +"description": "Output only. The actual renewal method for this `Registration`. When `preferred_renewal_method` is set to `AUTOMATIC_RENEWAL`, the actual `renewal_method` can be equal to `RENEWAL_DISABLED`\u2014for example, when there are problems with the billing account or reported domain abuse. In such cases, check the `issues` field on the `Registration`. After the problem is resolved, the `renewal_method` is automatically updated to `preferred_renewal_method` in a few hours.", +"enum": [ +"RENEWAL_METHOD_UNSPECIFIED", +"AUTOMATIC_RENEWAL", +"MANUAL_RENEWAL", +"RENEWAL_DISABLED" +], +"enumDeprecated": [ +false, +false, +true, +false +], +"enumDescriptions": [ +"The renewal method is undefined.", +"The domain is automatically renewed each year.", +"Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations). This option was never used. Use `RENEWAL_DISABLED` instead.", +"The domain won't be renewed and will expire at its expiration time." +], +"readOnly": true, +"type": "string" +}, +"transferLockState": { +"description": "This is the desired transfer lock state for this `Registration`. A transfer lock controls whether the domain can be transferred to another registrar. The transfer lock state of the domain is returned in the `effective_transfer_lock_state` property. The transfer lock state values might be different for the following reasons: * `transfer_lock_state` was updated only a short time ago. * Domains with the `TRANSFER_LOCK_UNSUPPORTED_BY_REGISTRY` state are in the list of `domain_properties`. These domains are always in the `UNLOCKED` state.", +"enum": [ +"TRANSFER_LOCK_STATE_UNSPECIFIED", +"UNLOCKED", +"LOCKED" +], +"enumDescriptions": [ +"The state is unspecified.", +"The domain is unlocked and can be transferred to another registrar.", +"The domain is locked and cannot be transferred to another registrar." +], +"type": "string" +} +}, +"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" +}, +"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. Output only.", +"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" +}, +"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" +}, +"PostalAddress": { +"description": "Represents a postal address. For example for postal delivery or payments addresses. Given a postal address, a postal service can deliver items to a premise, P.O. Box or similar. It is not intended to model geographical locations (roads, towns, mountains). In typical usage an address would be created by user input or from importing existing data, depending on the type of process. Advice on address input / editing: - Use an internationalization-ready address widget such as https://github.com/google/libaddressinput) - Users should not be presented with UI elements for input or editing of fields outside countries where that field is used. For more guidance on how to use this schema, see: https://support.google.com/business/answer/6397478", +"id": "PostalAddress", +"properties": { +"addressLines": { +"description": "Unstructured address lines describing the lower levels of an address. Because values in address_lines do not have type information and may sometimes contain multiple values in a single field (For example \"Austin, TX\"), it is important that the line order is clear. The order of address lines should be \"envelope order\" for the country/region of the address. In places where this can vary (For example Japan), address_language is used to make it explicit (For example \"ja\" for large-to-small ordering and \"ja-Latn\" or \"en\" for small-to-large). This way, the most specific line of an address can be selected based on the language. The minimum permitted structural representation of an address consists of a region_code with all remaining information placed in the address_lines. It would be possible to format such an address very approximately without geocoding, but no semantic reasoning could be made about any of the address components until it was at least partially resolved. Creating an address only containing a region_code and address_lines, and then geocoding is the recommended way to handle completely unstructured addresses (as opposed to guessing which parts of the address should be localities or administrative areas).", +"items": { +"type": "string" +}, +"type": "array" +}, +"administrativeArea": { +"description": "Optional. Highest administrative subdivision which is used for postal addresses of a country or region. For example, this can be a state, a province, an oblast, or a prefecture. Specifically, for Spain this is the province and not the autonomous community (For example \"Barcelona\" and not \"Catalonia\"). Many countries don't use an administrative area in postal addresses. For example in Switzerland this should be left unpopulated.", +"type": "string" +}, +"languageCode": { +"description": "Optional. BCP-47 language code of the contents of this address (if known). This is often the UI language of the input form or is expected to match one of the languages used in the address' country/region, or their transliterated equivalents. This can affect formatting in certain countries, but is not critical to the correctness of the data and will never affect any validation or other non-formatting related operations. If this value is not known, it should be omitted (rather than specifying a possibly incorrect default). Examples: \"zh-Hant\", \"ja\", \"ja-Latn\", \"en\".", +"type": "string" +}, +"locality": { +"description": "Optional. Generally refers to the city/town portion of the address. Examples: US city, IT comune, UK post town. In regions of the world where localities are not well defined or do not fit into this structure well, leave locality empty and use address_lines.", +"type": "string" +}, +"organization": { +"description": "Optional. The name of the organization at the address.", +"type": "string" +}, +"postalCode": { +"description": "Optional. Postal code of the address. Not all countries use or require postal codes to be present, but where they are used, they may trigger additional validation with other parts of the address (For example state/zip validation in the U.S.A.).", +"type": "string" +}, +"recipients": { +"description": "Optional. The recipient at the address. This field may, under certain circumstances, contain multiline information. For example, it might contain \"care of\" information.", +"items": { +"type": "string" +}, +"type": "array" +}, +"regionCode": { +"description": "Required. CLDR region code of the country/region of the address. This is never inferred and it is up to the user to ensure the value is correct. See https://cldr.unicode.org/ and https://www.unicode.org/cldr/charts/30/supplemental/territory_information.html for details. Example: \"CH\" for Switzerland.", +"type": "string" +}, +"revision": { +"description": "The schema revision of the `PostalAddress`. This must be set to 0, which is the latest revision. All new revisions **must** be backward compatible with old revisions.", +"format": "int32", +"type": "integer" +}, +"sortingCode": { +"description": "Optional. Additional, country-specific, sorting code. This is not used in most regions. Where it is used, the value is either a string like \"CEDEX\", optionally followed by a number (For example \"CEDEX 7\"), or just a number alone, representing the \"sector code\" (Jamaica), \"delivery area indicator\" (Malawi) or \"post office indicator\" (For example C\u00f4te d'Ivoire).", +"type": "string" +}, +"sublocality": { +"description": "Optional. Sublocality of the address. For example, this can be neighborhoods, boroughs, districts.", +"type": "string" +} +}, +"type": "object" +}, +"PrimaryBackupPolicy": { +"description": "Configures a RRSetRoutingPolicy such that all queries are responded with the primary_targets if they are healthy. And if all of them are unhealthy, then we fallback to a geo localized policy.", +"id": "PrimaryBackupPolicy", +"properties": { +"backupGeoTargets": { +"$ref": "GeoPolicy", +"description": "Backup targets provide a regional failover policy for the otherwise global primary targets. If serving state is set to `BACKUP`, this policy essentially becomes a geo routing policy." +}, +"primaryTargets": { +"$ref": "HealthCheckTargets", +"description": "Endpoints that are health checked before making the routing decision. Unhealthy endpoints are omitted from the results. If all endpoints are unhealthy, we serve a response based on the `backup_geo_targets`." +}, +"trickleTraffic": { +"description": "When serving state is `PRIMARY`, this field provides the option of sending a small percentage of the traffic to the backup targets.", +"format": "double", +"type": "number" +} +}, +"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": "GeoPolicy" +}, +"geoPolicy": { +"$ref": "GeoPolicy", +"deprecated": true +}, +"healthCheck": { +"description": "The selfLink attribute of the HealthCheck resource to use for this RRSetRoutingPolicy. https://cloud.google.com/compute/docs/reference/rest/v1/healthChecks", +"type": "string" +}, +"primaryBackup": { +"$ref": "PrimaryBackupPolicy" +}, +"wrr": { +"$ref": "WrrPolicy" +}, +"wrrPolicy": { +"$ref": "WrrPolicy", +"deprecated": true +} +}, +"type": "object" +}, +"RegisterDomainRequest": { +"description": "Request for the `RegisterDomain` method.", +"id": "RegisterDomainRequest", +"properties": { +"contactNotices": { +"description": "The list of contact notices that the caller acknowledges. The notices needed here depend on the values specified in `registration.contact_settings`.", +"items": { +"enum": [ +"CONTACT_NOTICE_UNSPECIFIED", +"PUBLIC_CONTACT_DATA_ACKNOWLEDGEMENT" +], +"enumDescriptions": [ +"The notice is undefined.", +"Required when setting the `privacy` field of `ContactSettings` to `PUBLIC_CONTACT_DATA`, which exposes contact data publicly." +], +"type": "string" +}, +"type": "array" +}, +"domainNotices": { +"description": "The list of domain notices that you acknowledge. Call `RetrieveRegisterParameters` to see the notices that need acknowledgement.", +"items": { +"enum": [ +"DOMAIN_NOTICE_UNSPECIFIED", +"HSTS_PRELOADED" +], +"enumDescriptions": [ +"The notice is undefined.", +"Indicates that the domain is preloaded on the HTTP Strict Transport Security list in browsers. Serving a website on such domain requires an SSL certificate. For details, see [how to get an SSL certificate](https://support.google.com/domains/answer/7638036)." +], +"type": "string" +}, +"type": "array" +}, +"registration": { +"$ref": "Registration", +"description": "Required. The complete `Registration` resource to be created." +}, +"validateOnly": { +"description": "When true, only validation is performed, without actually registering the domain. Follows: https://cloud.google.com/apis/design/design_patterns#request_validation", +"type": "boolean" +}, +"yearlyPrice": { +"$ref": "Money", +"description": "Required. Yearly price to register or renew the domain. The value that should be put here can be obtained from RetrieveRegisterParameters or SearchDomains calls." +} +}, +"type": "object" +}, +"RegisterParameters": { +"description": "Parameters required to register a new domain.", +"id": "RegisterParameters", +"properties": { +"availability": { +"description": "Indicates whether the domain is available for registration. This value is accurate when obtained by calling `RetrieveRegisterParameters`, but is approximate when obtained by calling `SearchDomains`.", +"enum": [ +"AVAILABILITY_UNSPECIFIED", +"AVAILABLE", +"UNAVAILABLE", +"UNSUPPORTED", +"UNKNOWN" +], +"enumDescriptions": [ +"The availability is unspecified.", +"The domain is available for registration.", +"The domain is not available for registration. Generally this means it is already registered to another party.", +"The domain is not currently supported by Cloud Domains, but may be available elsewhere.", +"Cloud Domains is unable to determine domain availability, generally due to system maintenance at the domain name registry." +], +"type": "string" +}, +"domainName": { +"description": "The domain name. Unicode domain names are expressed in Punycode format.", +"type": "string" +}, +"domainNotices": { +"description": "Notices about special properties of the domain.", +"items": { +"enum": [ +"DOMAIN_NOTICE_UNSPECIFIED", +"HSTS_PRELOADED" +], +"enumDescriptions": [ +"The notice is undefined.", +"Indicates that the domain is preloaded on the HTTP Strict Transport Security list in browsers. Serving a website on such domain requires an SSL certificate. For details, see [how to get an SSL certificate](https://support.google.com/domains/answer/7638036)." +], +"type": "string" +}, +"type": "array" +}, +"supportedPrivacy": { +"description": "Contact privacy options that the domain supports.", +"items": { +"enum": [ +"CONTACT_PRIVACY_UNSPECIFIED", +"PUBLIC_CONTACT_DATA", +"PRIVATE_CONTACT_DATA", +"REDACTED_CONTACT_DATA" +], +"enumDeprecated": [ +false, +false, +true, +false +], +"enumDescriptions": [ +"The contact privacy settings are undefined.", +"All the data from `ContactSettings` is publicly available. When setting this option, you must also provide a `PUBLIC_CONTACT_DATA_ACKNOWLEDGEMENT` in the `contact_notices` field of the request.", +"Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations). None of the data from `ContactSettings` is publicly available. Instead, proxy contact data is published for your domain. Email sent to the proxy email address is forwarded to the registrant's email address. Cloud Domains provides this privacy proxy service at no additional cost.", +"The organization name (if provided) and limited non-identifying data from `ContactSettings` is available to the public (e.g. country and state). The remaining data is marked as `REDACTED FOR PRIVACY` in the WHOIS database. The actual information redacted depends on the domain. For details, see [the registration privacy article](https://support.google.com/domains/answer/3251242)." +], +"type": "string" +}, +"type": "array" +}, +"yearlyPrice": { +"$ref": "Money", +"description": "Price to register or renew the domain for one year." +} +}, +"type": "object" +}, +"Registration": { +"description": "The `Registration` resource facilitates managing and configuring domain name registrations. There are several ways to create a new `Registration` resource: To create a new `Registration` resource, find a suitable domain name by calling the `SearchDomains` method with a query to see available domain name options. After choosing a name, call `RetrieveRegisterParameters` to ensure availability and obtain information like pricing, which is needed to build a call to `RegisterDomain`. Another way to create a new `Registration` is to transfer an existing domain from another registrar (Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations)). First, go to the current registrar to unlock the domain for transfer and retrieve the domain's transfer authorization code. Then call `RetrieveTransferParameters` to confirm that the domain is unlocked and to get values needed to build a call to `TransferDomain`. Finally, you can create a new `Registration` by importing an existing domain managed with [Google Domains](https://domains.google/) (Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations)). First, call `RetrieveImportableDomains` to list domains to which the calling user has sufficient access. Then call `ImportDomain` on any domain names you want to use with Cloud Domains.", +"id": "Registration", +"properties": { +"contactSettings": { +"$ref": "ContactSettings", +"description": "Required. Settings for contact information linked to the `Registration`. You cannot update these with the `UpdateRegistration` method. To update these settings, use the `ConfigureContactSettings` method." +}, +"createTime": { +"description": "Output only. The creation timestamp of the `Registration` resource.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"dnsSettings": { +"$ref": "DnsSettings", +"description": "Settings controlling the DNS configuration of the `Registration`. You cannot update these with the `UpdateRegistration` method. To update these settings, use the `ConfigureDnsSettings` method." +}, +"domainName": { +"description": "Required. Immutable. The domain name. Unicode domain names must be expressed in Punycode format.", +"type": "string" +}, +"domainProperties": { +"description": "Output only. Special properties of the domain.", +"items": { +"enum": [ +"DOMAIN_PROPERTY_UNSPECIFIED", +"TRANSFER_LOCK_UNSUPPORTED_BY_REGISTRY", +"REQUIRE_PUSH_TRANSFER" +], +"enumDescriptions": [ +"The property is undefined.", +"The domain does not support transfer locks due to restrictions of the registry. Such domains are effectively always unlocked and any change made to `management_settings.transfer_lock_state` is ignored.", +"The domain uses an alternative `Push Transfer` process to transfer the domain to another registrar. There are two important consequences: * Cloud Domains does not supply the authorization codes. * To initiate the process to transfer the domain to another registrar, you must provide a tag of the registrar you want to transfer to. You can do this by using the `InitiatePushTransfer` method. For more information, see [Transfer a registered domain to another registrar](https://cloud.google.com/domains/docs/transfer-domain-to-another-registrar)." +], +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"expireTime": { +"description": "Output only. The expiration timestamp of the `Registration`.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"issues": { +"description": "Output only. The set of issues with the `Registration` that require attention.", +"items": { +"enum": [ +"ISSUE_UNSPECIFIED", +"CONTACT_SUPPORT", +"UNVERIFIED_EMAIL", +"PROBLEM_WITH_BILLING", +"DNS_NOT_ACTIVATED" +], +"enumDescriptions": [ +"The issue is undefined.", +"Contact the Cloud Support team to resolve a problem with this domain.", +"[ICANN](https://icann.org/) requires verification of the email address in the `Registration`'s `contact_settings.registrant_contact` field. To verify the email address, follow the instructions in the email the `registrant_contact` receives following registration. If you do not complete email verification within 15 days of registration, the domain is suspended. To resend the verification email, call ConfigureContactSettings and provide the current `registrant_contact.email`.", +"The billing account is not in good standing. The domain is not automatically renewed at its expiration time unless you resolve problems with your billing account.", +"The registry failed to validate your DNS configuration and activate your domain. The failure might happen for the following reasons: * You recently registered the domain (wait up to 72 hours). * You provided invalid name servers or name servers that correspond to a newly created DNS zone. Verify your DNS configuration. If the configuration is incorrect, you must fix it. If the configuration is correct, either wait or call the ConfigureDnsSettings method to retry the registry validation." +], +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Set of labels associated with the `Registration`.", +"type": "object" +}, +"managementSettings": { +"$ref": "ManagementSettings", +"description": "Settings for management of the `Registration`, including renewal, billing, and transfer. You cannot update these with the `UpdateRegistration` method. To update these settings, use the `ConfigureManagementSettings` method." +}, +"name": { +"description": "Output only. Name of the `Registration` resource, in the format `projects/*/locations/*/registrations/`.", +"readOnly": true, +"type": "string" +}, +"pendingContactSettings": { +"$ref": "ContactSettings", +"description": "Output only. Pending contact settings for the `Registration`. Updates to the `contact_settings` field that change its `registrant_contact` or `privacy` fields require email confirmation by the `registrant_contact` before taking effect. This field is set only if there are pending updates to the `contact_settings` that have not been confirmed. To confirm the changes, the `registrant_contact` must follow the instructions in the email they receive.", +"readOnly": true +}, +"registerFailureReason": { +"description": "Output only. The reason the domain registration failed. Only set for domains in REGISTRATION_FAILED state.", +"enum": [ +"REGISTER_FAILURE_REASON_UNSPECIFIED", +"REGISTER_FAILURE_REASON_UNKNOWN", +"DOMAIN_NOT_AVAILABLE", +"INVALID_CONTACTS" +], +"enumDescriptions": [ +"Register failure unspecified.", +"Registration failed for an unknown reason.", +"The domain is not available for registration.", +"The provided contact information was rejected." +], +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. The state of the `Registration`", +"enum": [ +"STATE_UNSPECIFIED", +"REGISTRATION_PENDING", +"REGISTRATION_FAILED", +"TRANSFER_PENDING", +"TRANSFER_FAILED", +"IMPORT_PENDING", +"ACTIVE", +"SUSPENDED", +"EXPORTED", +"EXPIRED" +], +"enumDeprecated": [ +false, +false, +false, +true, +true, +true, +false, +false, +false, +false +], +"enumDescriptions": [ +"The state is undefined.", +"The domain is being registered.", +"The domain registration failed. You can delete resources in this state to allow registration to be retried.", +"The domain is being transferred from another registrar to Cloud Domains.", +"The attempt to transfer the domain from another registrar to Cloud Domains failed. You can delete resources in this state and retry the transfer.", +"The domain is being imported from Google Domains to Cloud Domains.", +"The domain is registered and operational. The domain renews automatically as long as it remains in this state and the `RenewalMethod` is set to `AUTOMATIC_RENEWAL`.", +"The domain is suspended and inoperative. For more details, see the `issues` field.", +"The domain is no longer managed with Cloud Domains. It may have been transferred to another registrar or exported for management in [Google Domains](https://domains.google/). You can no longer update it with this API, and information shown about it may be stale. Domains in this state are not automatically renewed by Cloud Domains.", +"The domain is expired." +], +"readOnly": true, +"type": "string" +}, +"supportedPrivacy": { +"description": "Output only. Set of options for the `contact_settings.privacy` field that this `Registration` supports.", +"items": { +"enum": [ +"CONTACT_PRIVACY_UNSPECIFIED", +"PUBLIC_CONTACT_DATA", +"PRIVATE_CONTACT_DATA", +"REDACTED_CONTACT_DATA" +], +"enumDeprecated": [ +false, +false, +true, +false +], +"enumDescriptions": [ +"The contact privacy settings are undefined.", +"All the data from `ContactSettings` is publicly available. When setting this option, you must also provide a `PUBLIC_CONTACT_DATA_ACKNOWLEDGEMENT` in the `contact_notices` field of the request.", +"Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations). None of the data from `ContactSettings` is publicly available. Instead, proxy contact data is published for your domain. Email sent to the proxy email address is forwarded to the registrant's email address. Cloud Domains provides this privacy proxy service at no additional cost.", +"The organization name (if provided) and limited non-identifying data from `ContactSettings` is available to the public (e.g. country and state). The remaining data is marked as `REDACTED FOR PRIVACY` in the WHOIS database. The actual information redacted depends on the domain. For details, see [the registration privacy article](https://support.google.com/domains/answer/3251242)." +], +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"transferFailureReason": { +"deprecated": true, +"description": "Output only. Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations). The reason the domain transfer failed. Only set for domains in TRANSFER_FAILED state.", +"enum": [ +"TRANSFER_FAILURE_REASON_UNSPECIFIED", +"TRANSFER_FAILURE_REASON_UNKNOWN", +"EMAIL_CONFIRMATION_FAILURE", +"DOMAIN_NOT_REGISTERED", +"DOMAIN_HAS_TRANSFER_LOCK", +"INVALID_AUTHORIZATION_CODE", +"TRANSFER_CANCELLED", +"TRANSFER_REJECTED", +"INVALID_REGISTRANT_EMAIL_ADDRESS", +"DOMAIN_NOT_ELIGIBLE_FOR_TRANSFER", +"TRANSFER_ALREADY_PENDING" +], +"enumDescriptions": [ +"Transfer failure unspecified.", +"Transfer failed for an unknown reason.", +"An email confirmation sent to the user was rejected or expired.", +"The domain is available for registration.", +"The domain has a transfer lock with its current registrar which must be removed prior to transfer.", +"The authorization code entered is not valid.", +"The transfer was cancelled by the domain owner, current registrar, or TLD registry.", +"The transfer was rejected by the current registrar. Contact the current registrar for more information.", +"The registrant email address cannot be parsed from the domain's current public contact data.", +"The domain is not eligible for transfer due requirements imposed by the current registrar or TLD registry.", +"Another transfer is already pending for this domain. The existing transfer attempt must expire or be cancelled in order to proceed." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"RenewDomainRequest": { +"description": "Request for the `RenewDomain` method.", +"id": "RenewDomainRequest", +"properties": { +"validateOnly": { +"description": "Optional. When true, only validation is performed, without actually renewing the domain. For more information, see [Request validation](https://cloud.google.com/apis/design/design_patterns#request_validation)", +"type": "boolean" +}, +"yearlyPrice": { +"$ref": "Money", +"description": "Required. Acknowledgement of the price to renew the domain for one year. To get the price, see [Cloud Domains pricing](https://cloud.google.com/domains/pricing). If not provided, the expected price is returned in the error message." +} +}, +"type": "object" +}, +"ResetAuthorizationCodeRequest": { +"description": "Request for the `ResetAuthorizationCode` method.", +"id": "ResetAuthorizationCodeRequest", +"properties": {}, +"type": "object" +}, +"ResourceRecordSet": { +"description": "A unit of data that is returned by the DNS servers.", +"id": "ResourceRecordSet", +"properties": { +"name": { +"description": "For example, www.example.com.", +"type": "string" +}, +"routingPolicy": { +"$ref": "RRSetRoutingPolicy", +"description": "Configures dynamic query responses based on either the geo location of the querying user or a weighted round robin based routing policy. A valid `ResourceRecordSet` contains only `rrdata` (for static resolution) or a `routing_policy` (for dynamic resolution)." +}, +"rrdata": { +"description": "As defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1) -- see examples.", +"items": { +"type": "string" +}, +"type": "array" +}, +"signatureRrdata": { +"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" +}, +"RetrieveGoogleDomainsDnsRecordsResponse": { +"description": "Response for the `RetrieveGoogleDomainsDnsRecords` method.", +"id": "RetrieveGoogleDomainsDnsRecordsResponse", +"properties": { +"nextPageToken": { +"description": "When present, there are more results to retrieve. Set `page_token` to this value on a subsequent call to get the next page of results.", +"type": "string" +}, +"rrset": { +"description": "The resource record set resources (DNS Zone records).", +"items": { +"$ref": "ResourceRecordSet" +}, +"type": "array" +} +}, +"type": "object" +}, +"RetrieveGoogleDomainsForwardingConfigResponse": { +"description": "Response for the `RetrieveGoogleDomainsForwardingConfig` method.", +"id": "RetrieveGoogleDomainsForwardingConfigResponse", +"properties": { +"domainForwardings": { +"description": "The list of domain forwarding configurations. A forwarding configuration might not work correctly if the required DNS records are not present in the domain's authoritative DNS zone.", +"items": { +"$ref": "DomainForwarding" +}, +"type": "array" +}, +"emailForwardings": { +"description": "The list of email forwarding configurations. A forwarding configuration might not work correctly if the required DNS records are not present in the domain's authoritative DNS zone.", +"items": { +"$ref": "EmailForwarding" +}, +"type": "array" +} +}, +"type": "object" +}, +"RetrieveImportableDomainsResponse": { +"deprecated": true, +"description": "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations). Response for the `RetrieveImportableDomains` method.", +"id": "RetrieveImportableDomainsResponse", +"properties": { +"domains": { +"description": "A list of domains that the calling user manages in Google Domains.", +"items": { +"$ref": "Domain" +}, +"type": "array" +}, +"nextPageToken": { +"description": "When present, there are more results to retrieve. Set `page_token` to this value on a subsequent call to get the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"RetrieveRegisterParametersResponse": { +"description": "Response for the `RetrieveRegisterParameters` method.", +"id": "RetrieveRegisterParametersResponse", +"properties": { +"registerParameters": { +"$ref": "RegisterParameters", +"description": "Parameters to use when calling the `RegisterDomain` method." +} +}, +"type": "object" +}, +"RetrieveTransferParametersResponse": { +"deprecated": true, +"description": "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations). Response for the `RetrieveTransferParameters` method.", +"id": "RetrieveTransferParametersResponse", +"properties": { +"transferParameters": { +"$ref": "TransferParameters", +"description": "Parameters to use when calling the `TransferDomain` method." +} +}, +"type": "object" +}, +"SearchDomainsResponse": { +"description": "Response for the `SearchDomains` method.", +"id": "SearchDomainsResponse", +"properties": { +"registerParameters": { +"description": "Results of the domain name search.", +"items": { +"$ref": "RegisterParameters" +}, +"type": "array" +} +}, +"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" +}, +"TransferDomainRequest": { +"deprecated": true, +"description": "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations). Request for the `TransferDomain` method.", +"id": "TransferDomainRequest", +"properties": { +"authorizationCode": { +"$ref": "AuthorizationCode", +"description": "The domain's transfer authorization code. You can obtain this from the domain's current registrar." +}, +"contactNotices": { +"description": "The list of contact notices that you acknowledge. The notices needed here depend on the values specified in `registration.contact_settings`.", +"items": { +"enum": [ +"CONTACT_NOTICE_UNSPECIFIED", +"PUBLIC_CONTACT_DATA_ACKNOWLEDGEMENT" +], +"enumDescriptions": [ +"The notice is undefined.", +"Required when setting the `privacy` field of `ContactSettings` to `PUBLIC_CONTACT_DATA`, which exposes contact data publicly." +], +"type": "string" +}, +"type": "array" +}, +"registration": { +"$ref": "Registration", +"description": "Required. The complete `Registration` resource to be created. You can leave `registration.dns_settings` unset to import the domain's current DNS configuration from its current registrar. Use this option only if you are sure that the domain's current DNS service does not cease upon transfer, as is often the case for DNS services provided for free by the registrar." +}, +"validateOnly": { +"description": "Validate the request without actually transferring the domain.", +"type": "boolean" +}, +"yearlyPrice": { +"$ref": "Money", +"description": "Required. Acknowledgement of the price to transfer or renew the domain for one year. Call `RetrieveTransferParameters` to obtain the price, which you must acknowledge." +} +}, +"type": "object" +}, +"TransferParameters": { +"deprecated": true, +"description": "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations). Parameters required to transfer a domain from another registrar.", +"id": "TransferParameters", +"properties": { +"currentRegistrar": { +"description": "The registrar that currently manages the domain.", +"type": "string" +}, +"currentRegistrarUri": { +"description": "The URL of the registrar that currently manages the domain.", +"type": "string" +}, +"domainName": { +"description": "The domain name. Unicode domain names are expressed in Punycode format.", +"type": "string" +}, +"nameServers": { +"description": "The name servers that currently store the configuration of the domain.", +"items": { +"type": "string" +}, +"type": "array" +}, +"supportedPrivacy": { +"description": "Contact privacy options that the domain supports.", +"items": { +"enum": [ +"CONTACT_PRIVACY_UNSPECIFIED", +"PUBLIC_CONTACT_DATA", +"PRIVATE_CONTACT_DATA", +"REDACTED_CONTACT_DATA" +], +"enumDeprecated": [ +false, +false, +true, +false +], +"enumDescriptions": [ +"The contact privacy settings are undefined.", +"All the data from `ContactSettings` is publicly available. When setting this option, you must also provide a `PUBLIC_CONTACT_DATA_ACKNOWLEDGEMENT` in the `contact_notices` field of the request.", +"Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations). None of the data from `ContactSettings` is publicly available. Instead, proxy contact data is published for your domain. Email sent to the proxy email address is forwarded to the registrant's email address. Cloud Domains provides this privacy proxy service at no additional cost.", +"The organization name (if provided) and limited non-identifying data from `ContactSettings` is available to the public (e.g. country and state). The remaining data is marked as `REDACTED FOR PRIVACY` in the WHOIS database. The actual information redacted depends on the domain. For details, see [the registration privacy article](https://support.google.com/domains/answer/3251242)." +], +"type": "string" +}, +"type": "array" +}, +"transferLockState": { +"description": "Indicates whether the domain is protected by a transfer lock. For a transfer to succeed, this must show `UNLOCKED`. To unlock a domain, go to its current registrar.", +"enum": [ +"TRANSFER_LOCK_STATE_UNSPECIFIED", +"UNLOCKED", +"LOCKED" +], +"enumDescriptions": [ +"The state is unspecified.", +"The domain is unlocked and can be transferred to another registrar.", +"The domain is locked and cannot be transferred to another registrar." +], +"type": "string" +}, +"yearlyPrice": { +"$ref": "Money", +"description": "Price to transfer or renew the domain for one year." +} +}, +"type": "object" +}, +"WrrPolicy": { +"description": "Configures a RRSetRoutingPolicy that routes in a weighted round robin fashion.", +"id": "WrrPolicy", +"properties": { +"item": { +"items": { +"$ref": "WrrPolicyItem" +}, +"type": "array" +} +}, +"type": "object" +}, +"WrrPolicyItem": { +"description": "A routing block which contains the routing information for one WRR item.", +"id": "WrrPolicyItem", +"properties": { +"healthCheckedTargets": { +"$ref": "HealthCheckTargets", +"description": "Endpoints that are health checked before making the routing decision. The unhealthy endpoints are omitted from the result. If all endpoints within a bucket are unhealthy, we choose a different bucket (sampled with respect to its weight) for responding. If DNSSEC is enabled for this zone, only one of `rrdata` or `health_checked_targets` can be set." +}, +"rrdata": { +"items": { +"type": "string" +}, +"type": "array" +}, +"signatureRrdata": { +"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 address per item.", +"items": { +"type": "string" +}, +"type": "array" +}, +"weight": { +"description": "The weight corresponding to this `WrrPolicyItem` object. When multiple `WrrPolicyItem` objects are configured, the probability of returning an `WrrPolicyItem` object's data is proportional to its weight relative to the sum of weights configured for all items. This weight must be non-negative.", +"format": "double", +"type": "number" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Cloud Domains 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/domains.v1alpha2.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/domains.v1alpha2.json new file mode 100644 index 0000000000000000000000000000000000000000..a534109049f4c517ce4806a4ffe584eb4f382ee7 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/domains.v1alpha2.json @@ -0,0 +1,2773 @@ +{ +"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://domains.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Cloud Domains", +"description": "Enables management and configuration of domain names.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/domains/", +"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": "domains:v1alpha2", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://domains.mtls.googleapis.com/", +"name": "domains", +"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": "v1alpha2/projects/{projectsId}/locations/{locationsId}", +"httpMethod": "GET", +"id": "domains.projects.locations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Resource name for the location.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha2/{+name}", +"response": { +"$ref": "Location" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists information about the supported locations for this service.", +"flatPath": "v1alpha2/projects/{projectsId}/locations", +"httpMethod": "GET", +"id": "domains.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": "v1alpha2/{+name}/locations", +"response": { +"$ref": "ListLocationsResponse" +}, +"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": "v1alpha2/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "domains.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": "v1alpha2/{+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": "v1alpha2/projects/{projectsId}/locations/{locationsId}/operations", +"httpMethod": "GET", +"id": "domains.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": "v1alpha2/{+name}/operations", +"response": { +"$ref": "ListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"registrations": { +"methods": { +"configureContactSettings": { +"description": "Updates a `Registration`'s contact settings. Some changes require confirmation by the domain's registrant contact . Caution: Please consider carefully any changes to contact privacy settings when changing from `REDACTED_CONTACT_DATA` to `PUBLIC_CONTACT_DATA.` There may be a delay in reflecting updates you make to registrant contact information such that any changes you make to contact privacy (including from `REDACTED_CONTACT_DATA` to `PUBLIC_CONTACT_DATA`) will be applied without delay but changes to registrant contact information may take a limited time to be publicized. This means that changes to contact privacy from `REDACTED_CONTACT_DATA` to `PUBLIC_CONTACT_DATA` may make the previous registrant contact data public until the modified registrant contact details are published.", +"flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/registrations/{registrationsId}:configureContactSettings", +"httpMethod": "POST", +"id": "domains.projects.locations.registrations.configureContactSettings", +"parameterOrder": [ +"registration" +], +"parameters": { +"registration": { +"description": "Required. The name of the `Registration` whose contact settings are being updated, in the format `projects/*/locations/*/registrations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/registrations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha2/{+registration}:configureContactSettings", +"request": { +"$ref": "ConfigureContactSettingsRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"configureDnsSettings": { +"description": "Updates a `Registration`'s DNS settings.", +"flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/registrations/{registrationsId}:configureDnsSettings", +"httpMethod": "POST", +"id": "domains.projects.locations.registrations.configureDnsSettings", +"parameterOrder": [ +"registration" +], +"parameters": { +"registration": { +"description": "Required. The name of the `Registration` whose DNS settings are being updated, in the format `projects/*/locations/*/registrations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/registrations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha2/{+registration}:configureDnsSettings", +"request": { +"$ref": "ConfigureDnsSettingsRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"configureManagementSettings": { +"description": "Updates a `Registration`'s management settings.", +"flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/registrations/{registrationsId}:configureManagementSettings", +"httpMethod": "POST", +"id": "domains.projects.locations.registrations.configureManagementSettings", +"parameterOrder": [ +"registration" +], +"parameters": { +"registration": { +"description": "Required. The name of the `Registration` whose management settings are being updated, in the format `projects/*/locations/*/registrations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/registrations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha2/{+registration}:configureManagementSettings", +"request": { +"$ref": "ConfigureManagementSettingsRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a `Registration` resource. This method works on any `Registration` resource using [Subscription or Commitment billing](/domains/pricing#billing-models), provided that the resource was created at least 1 day in the past. When an active registration is successfully deleted, you can continue to use the domain in [Google Domains](https://domains.google/) until it expires. The calling user becomes the domain's sole owner in Google Domains, and permissions for the domain are subsequently managed there. The domain does not renew automatically unless the new owner sets up billing in Google Domains. After January 2024 you will only be able to delete `Registration` resources when `state` is one of: `EXPORTED`, `EXPIRED`,`REGISTRATION_FAILED` or `TRANSFER_FAILED`. See [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) for more details.", +"flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/registrations/{registrationsId}", +"httpMethod": "DELETE", +"id": "domains.projects.locations.registrations.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the `Registration` to delete, in the format `projects/*/locations/*/registrations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/registrations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha2/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"export": { +"deprecated": true, +"description": "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) Exports a `Registration` resource, such that it is no longer managed by Cloud Domains. When an active domain is successfully exported, you can continue to use the domain in [Google Domains](https://domains.google/) until it expires. The calling user becomes the domain's sole owner in Google Domains, and permissions for the domain are subsequently managed there. The domain does not renew automatically unless the new owner sets up billing in Google Domains.", +"flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/registrations/{registrationsId}:export", +"httpMethod": "POST", +"id": "domains.projects.locations.registrations.export", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the `Registration` to export, in the format `projects/*/locations/*/registrations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/registrations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha2/{+name}:export", +"request": { +"$ref": "ExportRegistrationRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the details of a `Registration` resource.", +"flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/registrations/{registrationsId}", +"httpMethod": "GET", +"id": "domains.projects.locations.registrations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the `Registration` to get, in the format `projects/*/locations/*/registrations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/registrations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha2/{+name}", +"response": { +"$ref": "Registration" +}, +"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": "v1alpha2/projects/{projectsId}/locations/{locationsId}/registrations/{registrationsId}:getIamPolicy", +"httpMethod": "GET", +"id": "domains.projects.locations.registrations.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/[^/]+/registrations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha2/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"import": { +"deprecated": true, +"description": "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) Imports a domain name from [Google Domains](https://domains.google/) for use in Cloud Domains. To transfer a domain from another registrar, use the `TransferDomain` method instead. Since individual users can own domains in Google Domains, the calling user must have ownership permission on the domain.", +"flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/registrations:import", +"httpMethod": "POST", +"id": "domains.projects.locations.registrations.import", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource of the Registration. Must be in the format `projects/*/locations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha2/{+parent}/registrations:import", +"request": { +"$ref": "ImportDomainRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"initiatePushTransfer": { +"description": "Initiates the `Push Transfer` process to transfer the domain to another registrar. The process might complete instantly or might require confirmation or additional work. Check the emails sent to the email address of the registrant. The process is aborted after a timeout if it's not completed. This method is only supported for domains that have the `REQUIRE_PUSH_TRANSFER` property in the list of `domain_properties`. The domain must also be unlocked before it can be transferred to a different registrar. For more information, see [Transfer a registered domain to another registrar](https://cloud.google.com/domains/docs/transfer-domain-to-another-registrar).", +"flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/registrations/{registrationsId}:initiatePushTransfer", +"httpMethod": "POST", +"id": "domains.projects.locations.registrations.initiatePushTransfer", +"parameterOrder": [ +"registration" +], +"parameters": { +"registration": { +"description": "Required. The name of the `Registration` for which the push transfer is initiated, in the format `projects/*/locations/*/registrations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/registrations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha2/{+registration}:initiatePushTransfer", +"request": { +"$ref": "InitiatePushTransferRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists the `Registration` resources in a project.", +"flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/registrations", +"httpMethod": "GET", +"id": "domains.projects.locations.registrations.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Filter expression to restrict the `Registration`s returned. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, a boolean, or an enum value. The comparison operator should be one of =, !=, >, <, >=, <=, or : for prefix or wildcard matches. For example, to filter to a specific domain name, use an expression like `domainName=\"example.com\"`. You can also check for the existence of a field; for example, to find domains using custom DNS settings, use an expression like `dnsSettings.customDns:*`. You can also create compound filters by combining expressions with the `AND` and `OR` operators. For example, to find domains that are suspended or have specific issues flagged, use an expression like `(state=SUSPENDED) OR (issue:*)`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Maximum number of results to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "When set to the `next_page_token` from a prior response, provides the next page of results.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project and location from which to list `Registration`s, specified in the format `projects/*/locations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha2/{+parent}/registrations", +"response": { +"$ref": "ListRegistrationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates select fields of a `Registration` resource, notably `labels`. To update other fields, use the appropriate custom update method: * To update management settings, see `ConfigureManagementSettings` * To update DNS configuration, see `ConfigureDnsSettings` * To update contact information, see `ConfigureContactSettings`", +"flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/registrations/{registrationsId}", +"httpMethod": "PATCH", +"id": "domains.projects.locations.registrations.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. Name of the `Registration` resource, in the format `projects/*/locations/*/registrations/`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/registrations/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The field mask describing which fields to update as a comma-separated list. For example, if only the labels are being updated, the `update_mask` is `\"labels\"`.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha2/{+name}", +"request": { +"$ref": "Registration" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"register": { +"description": "Registers a new domain name and creates a corresponding `Registration` resource. Call `RetrieveRegisterParameters` first to check availability of the domain name and determine parameters like price that are needed to build a call to this method. A successful call creates a `Registration` resource in state `REGISTRATION_PENDING`, which resolves to `ACTIVE` within 1-2 minutes, indicating that the domain was successfully registered. If the resource ends up in state `REGISTRATION_FAILED`, it indicates that the domain was not registered successfully, and you can safely delete the resource and retry registration.", +"flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/registrations:register", +"httpMethod": "POST", +"id": "domains.projects.locations.registrations.register", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource of the `Registration`. Must be in the format `projects/*/locations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha2/{+parent}/registrations:register", +"request": { +"$ref": "RegisterDomainRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"renewDomain": { +"description": "Renews a recently expired domain. This method can only be called on domains that expired in the previous 30 days. After the renewal, the new expiration time of the domain is one year after the old expiration time and you are charged a `yearly_price` for the renewal.", +"flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/registrations/{registrationsId}:renewDomain", +"httpMethod": "POST", +"id": "domains.projects.locations.registrations.renewDomain", +"parameterOrder": [ +"registration" +], +"parameters": { +"registration": { +"description": "Required. The name of the `Registration` whish is being renewed, in the format `projects/*/locations/*/registrations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/registrations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha2/{+registration}:renewDomain", +"request": { +"$ref": "RenewDomainRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"resetAuthorizationCode": { +"description": "Resets the authorization code of the `Registration` to a new random string. You can call this method only after 60 days have elapsed since the initial domain registration. Domains that have the `REQUIRE_PUSH_TRANSFER` property in the list of `domain_properties` don't support authorization codes and must use the `InitiatePushTransfer` method to initiate the process to transfer the domain to a different registrar.", +"flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/registrations/{registrationsId}:resetAuthorizationCode", +"httpMethod": "POST", +"id": "domains.projects.locations.registrations.resetAuthorizationCode", +"parameterOrder": [ +"registration" +], +"parameters": { +"registration": { +"description": "Required. The name of the `Registration` whose authorization code is being reset, in the format `projects/*/locations/*/registrations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/registrations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha2/{+registration}:resetAuthorizationCode", +"request": { +"$ref": "ResetAuthorizationCodeRequest" +}, +"response": { +"$ref": "AuthorizationCode" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"retrieveAuthorizationCode": { +"description": "Gets the authorization code of the `Registration` for the purpose of transferring the domain to another registrar. You can call this method only after 60 days have elapsed since the initial domain registration. Domains that have the `REQUIRE_PUSH_TRANSFER` property in the list of `domain_properties` don't support authorization codes and must use the `InitiatePushTransfer` method to initiate the process to transfer the domain to a different registrar.", +"flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/registrations/{registrationsId}:retrieveAuthorizationCode", +"httpMethod": "GET", +"id": "domains.projects.locations.registrations.retrieveAuthorizationCode", +"parameterOrder": [ +"registration" +], +"parameters": { +"registration": { +"description": "Required. The name of the `Registration` whose authorization code is being retrieved, in the format `projects/*/locations/*/registrations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/registrations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha2/{+registration}:retrieveAuthorizationCode", +"response": { +"$ref": "AuthorizationCode" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"retrieveGoogleDomainsDnsRecords": { +"description": "Lists the DNS records from the Google Domains DNS zone for domains that use the deprecated `google_domains_dns` in the `Registration`'s `dns_settings`.", +"flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/registrations/{registrationsId}:retrieveGoogleDomainsDnsRecords", +"httpMethod": "GET", +"id": "domains.projects.locations.registrations.retrieveGoogleDomainsDnsRecords", +"parameterOrder": [ +"registration" +], +"parameters": { +"pageSize": { +"description": "Optional. Maximum number of results to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. When set to the `next_page_token` from a prior response, provides the next page of results.", +"location": "query", +"type": "string" +}, +"registration": { +"description": "Required. The name of the `Registration` whose Google Domains DNS records details you are retrieving, in the format `projects/*/locations/*/registrations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/registrations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha2/{+registration}:retrieveGoogleDomainsDnsRecords", +"response": { +"$ref": "RetrieveGoogleDomainsDnsRecordsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"retrieveGoogleDomainsForwardingConfig": { +"description": "Lists the deprecated domain and email forwarding configurations you set up in the deprecated Google Domains UI. The configuration is present only for domains with the `google_domains_redirects_data_available` set to `true` in the `Registration`'s `dns_settings`. A forwarding configuration might not work correctly if required DNS records are not present in the domain's authoritative DNS Zone.", +"flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/registrations/{registrationsId}:retrieveGoogleDomainsForwardingConfig", +"httpMethod": "GET", +"id": "domains.projects.locations.registrations.retrieveGoogleDomainsForwardingConfig", +"parameterOrder": [ +"registration" +], +"parameters": { +"registration": { +"description": "Required. The name of the `Registration` whose Google Domains forwarding configuration details are being retrieved, in the format `projects/*/locations/*/registrations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/registrations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha2/{+registration}:retrieveGoogleDomainsForwardingConfig", +"response": { +"$ref": "RetrieveGoogleDomainsForwardingConfigResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"retrieveImportableDomains": { +"deprecated": true, +"description": "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) Lists domain names from [Google Domains](https://domains.google/) that can be imported to Cloud Domains using the `ImportDomain` method. Since individual users can own domains in Google Domains, the list of domains returned depends on the individual user making the call. Domains already managed by Cloud Domains are not returned.", +"flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/registrations:retrieveImportableDomains", +"httpMethod": "GET", +"id": "domains.projects.locations.registrations.retrieveImportableDomains", +"parameterOrder": [ +"location" +], +"parameters": { +"location": { +"description": "Required. The location. Must be in the format `projects/*/locations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "Maximum number of results to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "When set to the `next_page_token` from a prior response, provides the next page of results.", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha2/{+location}/registrations:retrieveImportableDomains", +"response": { +"$ref": "RetrieveImportableDomainsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"retrieveRegisterParameters": { +"description": "Gets parameters needed to register a new domain name, including price and up-to-date availability. Use the returned values to call `RegisterDomain`.", +"flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/registrations:retrieveRegisterParameters", +"httpMethod": "GET", +"id": "domains.projects.locations.registrations.retrieveRegisterParameters", +"parameterOrder": [ +"location" +], +"parameters": { +"domainName": { +"description": "Required. The domain name. Unicode domain names must be expressed in Punycode format.", +"location": "query", +"type": "string" +}, +"location": { +"description": "Required. The location. Must be in the format `projects/*/locations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha2/{+location}/registrations:retrieveRegisterParameters", +"response": { +"$ref": "RetrieveRegisterParametersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"retrieveTransferParameters": { +"deprecated": true, +"description": "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) Gets parameters needed to transfer a domain name from another registrar to Cloud Domains. For domains already managed by [Google Domains](https://domains.google/), use `ImportDomain` instead. Use the returned values to call `TransferDomain`.", +"flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/registrations:retrieveTransferParameters", +"httpMethod": "GET", +"id": "domains.projects.locations.registrations.retrieveTransferParameters", +"parameterOrder": [ +"location" +], +"parameters": { +"domainName": { +"description": "Required. The domain name. Unicode domain names must be expressed in Punycode format.", +"location": "query", +"type": "string" +}, +"location": { +"description": "Required. The location. Must be in the format `projects/*/locations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha2/{+location}/registrations:retrieveTransferParameters", +"response": { +"$ref": "RetrieveTransferParametersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"searchDomains": { +"description": "Searches for available domain names similar to the provided query. Availability results from this method are approximate; call `RetrieveRegisterParameters` on a domain before registering to confirm availability.", +"flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/registrations:searchDomains", +"httpMethod": "GET", +"id": "domains.projects.locations.registrations.searchDomains", +"parameterOrder": [ +"location" +], +"parameters": { +"location": { +"description": "Required. The location. Must be in the format `projects/*/locations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"query": { +"description": "Required. String used to search for available domain names.", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha2/{+location}/registrations:searchDomains", +"response": { +"$ref": "SearchDomainsResponse" +}, +"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": "v1alpha2/projects/{projectsId}/locations/{locationsId}/registrations/{registrationsId}:setIamPolicy", +"httpMethod": "POST", +"id": "domains.projects.locations.registrations.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/[^/]+/registrations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha2/{+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": "v1alpha2/projects/{projectsId}/locations/{locationsId}/registrations/{registrationsId}:testIamPermissions", +"httpMethod": "POST", +"id": "domains.projects.locations.registrations.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/[^/]+/registrations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha2/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"transfer": { +"deprecated": true, +"description": "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) Transfers a domain name from another registrar to Cloud Domains. For domains already managed by [Google Domains](https://domains.google/), use `ImportDomain` instead. Before calling this method, go to the domain's current registrar to unlock the domain for transfer and retrieve the domain's transfer authorization code. Then call `RetrieveTransferParameters` to confirm that the domain is unlocked and to get values needed to build a call to this method. A successful call creates a `Registration` resource in state `TRANSFER_PENDING`. It can take several days to complete the transfer process. The registrant can often speed up this process by approving the transfer through the current registrar, either by clicking a link in an email from the registrar or by visiting the registrar's website. A few minutes after transfer approval, the resource transitions to state `ACTIVE`, indicating that the transfer was successful. If the transfer is rejected or the request expires without being approved, the resource can end up in state `TRANSFER_FAILED`. If transfer fails, you can safely delete the resource and retry the transfer.", +"flatPath": "v1alpha2/projects/{projectsId}/locations/{locationsId}/registrations:transfer", +"httpMethod": "POST", +"id": "domains.projects.locations.registrations.transfer", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource of the `Registration`. Must be in the format `projects/*/locations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha2/{+parent}/registrations:transfer", +"request": { +"$ref": "TransferDomainRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +}, +"revision": "20241209", +"rootUrl": "https://domains.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" +}, +"AuthorizationCode": { +"description": "Defines an authorization code.", +"id": "AuthorizationCode", +"properties": { +"code": { +"description": "The Authorization Code in ASCII. It can be used to transfer the domain to or from another registrar.", +"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" +}, +"ConfigureContactSettingsRequest": { +"description": "Request for the `ConfigureContactSettings` method.", +"id": "ConfigureContactSettingsRequest", +"properties": { +"contactNotices": { +"description": "The list of contact notices that the caller acknowledges. The notices needed here depend on the values specified in `contact_settings`.", +"items": { +"enum": [ +"CONTACT_NOTICE_UNSPECIFIED", +"PUBLIC_CONTACT_DATA_ACKNOWLEDGEMENT" +], +"enumDescriptions": [ +"The notice is undefined.", +"Required when setting the `privacy` field of `ContactSettings` to `PUBLIC_CONTACT_DATA`, which exposes contact data publicly." +], +"type": "string" +}, +"type": "array" +}, +"contactSettings": { +"$ref": "ContactSettings", +"description": "Fields of the `ContactSettings` to update." +}, +"updateMask": { +"description": "Required. The field mask describing which fields to update as a comma-separated list. For example, if only the registrant contact is being updated, the `update_mask` is `\"registrant_contact\"`.", +"format": "google-fieldmask", +"type": "string" +}, +"validateOnly": { +"description": "Validate the request without actually updating the contact settings.", +"type": "boolean" +} +}, +"type": "object" +}, +"ConfigureDnsSettingsRequest": { +"description": "Request for the `ConfigureDnsSettings` method.", +"id": "ConfigureDnsSettingsRequest", +"properties": { +"dnsSettings": { +"$ref": "DnsSettings", +"description": "Fields of the `DnsSettings` to update." +}, +"updateMask": { +"description": "Required. The field mask describing which fields to update as a comma-separated list. For example, if only the name servers are being updated for an existing Custom DNS configuration, the `update_mask` is `\"custom_dns.name_servers\"`. When changing the DNS provider from one type to another, pass the new provider's field name as part of the field mask. For example, when changing from a Google Domains DNS configuration to a Custom DNS configuration, the `update_mask` is `\"custom_dns\"`. //", +"format": "google-fieldmask", +"type": "string" +}, +"validateOnly": { +"description": "Validate the request without actually updating the DNS settings.", +"type": "boolean" +} +}, +"type": "object" +}, +"ConfigureManagementSettingsRequest": { +"description": "Request for the `ConfigureManagementSettings` method.", +"id": "ConfigureManagementSettingsRequest", +"properties": { +"managementSettings": { +"$ref": "ManagementSettings", +"description": "Fields of the `ManagementSettings` to update." +}, +"updateMask": { +"description": "Required. The field mask describing which fields to update as a comma-separated list. For example, if only the transfer lock is being updated, the `update_mask` is `\"transfer_lock_state\"`.", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"Contact": { +"description": "Details required for a contact associated with a `Registration`.", +"id": "Contact", +"properties": { +"email": { +"description": "Required. Email address of the contact.", +"type": "string" +}, +"faxNumber": { +"description": "Fax number of the contact in international format. For example, `\"+1-800-555-0123\"`.", +"type": "string" +}, +"phoneNumber": { +"description": "Required. Phone number of the contact in international format. For example, `\"+1-800-555-0123\"`.", +"type": "string" +}, +"postalAddress": { +"$ref": "PostalAddress", +"description": "Required. Postal address of the contact." +} +}, +"type": "object" +}, +"ContactSettings": { +"description": "Defines the contact information associated with a `Registration`. [ICANN](https://icann.org/) requires all domain names to have associated contact information. The `registrant_contact` is considered the domain's legal owner, and often the other contacts are identical.", +"id": "ContactSettings", +"properties": { +"adminContact": { +"$ref": "Contact", +"description": "Required. The administrative contact for the `Registration`." +}, +"privacy": { +"description": "Required. Privacy setting for the contacts associated with the `Registration`.", +"enum": [ +"CONTACT_PRIVACY_UNSPECIFIED", +"PUBLIC_CONTACT_DATA", +"PRIVATE_CONTACT_DATA", +"REDACTED_CONTACT_DATA" +], +"enumDeprecated": [ +false, +false, +true, +false +], +"enumDescriptions": [ +"The contact privacy settings are undefined.", +"All the data from `ContactSettings` is publicly available. When setting this option, you must also provide a `PUBLIC_CONTACT_DATA_ACKNOWLEDGEMENT` in the `contact_notices` field of the request.", +"Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations). None of the data from `ContactSettings` is publicly available. Instead, proxy contact data is published for your domain. Email sent to the proxy email address is forwarded to the registrant's email address. Cloud Domains provides this privacy proxy service at no additional cost.", +"The organization name (if provided) and limited non-identifying data from `ContactSettings` is available to the public (e.g. country and state). The remaining data is marked as `REDACTED FOR PRIVACY` in the WHOIS database. The actual information redacted depends on the domain. For details, see [the registration privacy article](https://support.google.com/domains/answer/3251242)." +], +"type": "string" +}, +"registrantContact": { +"$ref": "Contact", +"description": "Required. The registrant contact for the `Registration`. *Caution: Anyone with access to this email address, phone number, and/or postal address can take control of the domain.* *Warning: For new `Registration`s, the registrant receives an email confirmation that they must complete within 15 days to avoid domain suspension.*" +}, +"technicalContact": { +"$ref": "Contact", +"description": "Required. The technical contact for the `Registration`." +} +}, +"type": "object" +}, +"CustomDns": { +"description": "Configuration for an arbitrary DNS provider.", +"id": "CustomDns", +"properties": { +"dsRecords": { +"description": "The list of DS records for this domain, which are used to enable DNSSEC. The domain's DNS provider can provide the values to set here. If this field is empty, DNSSEC is disabled.", +"items": { +"$ref": "DsRecord" +}, +"type": "array" +}, +"nameServers": { +"description": "Required. A list of name servers that store the DNS zone for this domain. Each name server is a domain name, with Unicode domain names expressed in Punycode format.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"DnsSettings": { +"description": "Defines the DNS configuration of a `Registration`, including name servers, DNSSEC, and glue records.", +"id": "DnsSettings", +"properties": { +"customDns": { +"$ref": "CustomDns", +"description": "An arbitrary DNS provider identified by its name servers." +}, +"glueRecords": { +"description": "The list of glue records for this `Registration`. Commonly empty.", +"items": { +"$ref": "GlueRecord" +}, +"type": "array" +}, +"googleDomainsDns": { +"$ref": "GoogleDomainsDns", +"deprecated": true, +"description": "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations). The free DNS zone provided by [Google Domains](https://domains.google/)." +}, +"googleDomainsRedirectsDataAvailable": { +"description": "Output only. Indicates if this `Registration` has configured one of the following deprecated Google Domains DNS features: * Domain forwarding (HTTP `301` and `302` response status codes), * Email forwarding. See https://cloud.google.com/domains/docs/deprecations/feature-deprecations for more details. If any of these features is enabled call the `RetrieveGoogleDomainsForwardingConfig` method to get details about the feature's configuration. A forwarding configuration might not work correctly if required DNS records are not present in the domain's authoritative DNS Zone.", +"readOnly": true, +"type": "boolean" +} +}, +"type": "object" +}, +"Domain": { +"description": "A domain that the calling user manages in Google Domains.", +"id": "Domain", +"properties": { +"domainName": { +"description": "The domain name. Unicode domain names are expressed in Punycode format.", +"type": "string" +}, +"resourceState": { +"description": "The state of this domain as a `Registration` resource.", +"enum": [ +"RESOURCE_STATE_UNSPECIFIED", +"IMPORTABLE", +"UNSUPPORTED", +"SUSPENDED", +"EXPIRED", +"DELETED" +], +"enumDescriptions": [ +"The assessment is undefined.", +"A `Registration` resource can be created for this domain by calling `ImportDomain`.", +"A `Registration` resource cannot be created for this domain because it is not supported by Cloud Domains; for example, the top-level domain is not supported or the registry charges non-standard pricing for yearly renewals.", +"A `Registration` resource cannot be created for this domain because it is suspended and needs to be resolved with Google Domains.", +"A `Registration` resource cannot be created for this domain because it is expired and needs to be renewed with Google Domains.", +"A `Registration` resource cannot be created for this domain because it is deleted, but it may be possible to restore it with Google Domains." +], +"type": "string" +}, +"yearlyPrice": { +"$ref": "Money", +"description": "Price to renew the domain for one year. Only set when `resource_state` is `IMPORTABLE`." +} +}, +"type": "object" +}, +"DomainForwarding": { +"description": "Domain forwarding configuration.", +"id": "DomainForwarding", +"properties": { +"pathForwarding": { +"description": "If true, forwards the path after the domain name to the same path at the new address.", +"type": "boolean" +}, +"pemCertificate": { +"description": "The PEM-encoded certificate chain.", +"type": "string" +}, +"redirectType": { +"description": "The redirect type.", +"enum": [ +"REDIRECT_TYPE_UNSPECIFIED", +"TEMPORARY", +"PERMANENT" +], +"enumDescriptions": [ +"Redirect Type is unspecified.", +"301 redirect. Allows to propagate changes to the forwarding address quickly.", +"302 redirect. Allows browsers to cache the forwarding address. This may help the address resolve more quickly. Changes may take longer to propagate" +], +"type": "string" +}, +"sslEnabled": { +"description": "If true, the forwarding works also over HTTPS.", +"type": "boolean" +}, +"subdomain": { +"description": "The subdomain of the registered domain that is being forwarded. E.g. `www.example.com`, `example.com` (i.e. the registered domain itself) or `*.example.com` (i.e. all subdomains).", +"type": "string" +}, +"targetUri": { +"description": "The target of the domain forwarding, i.e. the path to redirect the `subdomain` to.", +"type": "string" +} +}, +"type": "object" +}, +"DsRecord": { +"description": "Defines a Delegation Signer (DS) record, which is needed to enable DNSSEC for a domain. It contains a digest (hash) of a DNSKEY record that must be present in the domain's DNS zone.", +"id": "DsRecord", +"properties": { +"algorithm": { +"description": "The algorithm used to generate the referenced DNSKEY.", +"enum": [ +"ALGORITHM_UNSPECIFIED", +"RSAMD5", +"DH", +"DSA", +"ECC", +"RSASHA1", +"DSANSEC3SHA1", +"RSASHA1NSEC3SHA1", +"RSASHA256", +"RSASHA512", +"ECCGOST", +"ECDSAP256SHA256", +"ECDSAP384SHA384", +"ED25519", +"ED448", +"INDIRECT", +"PRIVATEDNS", +"PRIVATEOID" +], +"enumDescriptions": [ +"The algorithm is unspecified.", +"RSA/MD5. Cannot be used for new deployments.", +"Diffie-Hellman. Cannot be used for new deployments.", +"DSA/SHA1. Not recommended for new deployments.", +"ECC. Not recommended for new deployments.", +"RSA/SHA-1. Not recommended for new deployments.", +"DSA-NSEC3-SHA1. Not recommended for new deployments.", +"RSA/SHA1-NSEC3-SHA1. Not recommended for new deployments.", +"RSA/SHA-256.", +"RSA/SHA-512.", +"GOST R 34.10-2001.", +"ECDSA Curve P-256 with SHA-256.", +"ECDSA Curve P-384 with SHA-384.", +"Ed25519.", +"Ed448.", +"Reserved for Indirect Keys. Cannot be used for new deployments.", +"Private algorithm. Cannot be used for new deployments.", +"Private algorithm OID. Cannot be used for new deployments." +], +"type": "string" +}, +"digest": { +"description": "The digest generated from the referenced DNSKEY.", +"type": "string" +}, +"digestType": { +"description": "The hash function used to generate the digest of the referenced DNSKEY.", +"enum": [ +"DIGEST_TYPE_UNSPECIFIED", +"SHA1", +"SHA256", +"GOST3411", +"SHA384" +], +"enumDescriptions": [ +"The DigestType is unspecified.", +"SHA-1. Not recommended for new deployments.", +"SHA-256.", +"GOST R 34.11-94.", +"SHA-384." +], +"type": "string" +}, +"keyTag": { +"description": "The key tag of the record. Must be set in range 0 -- 65535.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"EmailForwarding": { +"description": "Email forwarding configuration.", +"id": "EmailForwarding", +"properties": { +"alias": { +"description": "An alias recipient email that forwards emails to the `target_email_address`. For example, `admin@example.com` or `*@example.com` (wildcard alias forwards all the emails under the registered domain).", +"type": "string" +}, +"targetEmailAddress": { +"description": "Target email that receives emails sent to the `alias`.", +"type": "string" +} +}, +"type": "object" +}, +"ExportRegistrationRequest": { +"deprecated": true, +"description": "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations). Request for the `ExportRegistration` method.", +"id": "ExportRegistrationRequest", +"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" +}, +"GeoPolicy": { +"description": "Configures a `RRSetRoutingPolicy` that routes based on the geo location of the querying user.", +"id": "GeoPolicy", +"properties": { +"enableFencing": { +"description": "Without fencing, if health check fails for all configured items in the current geo bucket, we failover to the next nearest geo bucket. With fencing, if health checking is enabled, as long as some targets in the current geo bucket are healthy, we return only the healthy targets. However, if all targets are unhealthy, we don't failover to the next nearest bucket; instead, we return all the items in the current bucket even when all targets are unhealthy.", +"type": "boolean" +}, +"item": { +"description": "The primary geo routing configuration. If there are multiple items with the same location, an error is returned instead.", +"items": { +"$ref": "GeoPolicyItem" +}, +"type": "array" +} +}, +"type": "object" +}, +"GeoPolicyItem": { +"description": "ResourceRecordSet data for one geo location.", +"id": "GeoPolicyItem", +"properties": { +"healthCheckedTargets": { +"$ref": "HealthCheckTargets", +"description": "For A and AAAA types only. Endpoints to return in the query result only if they are healthy. These can be specified along with `rrdata` within this item." +}, +"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" +}, +"rrdata": { +"items": { +"type": "string" +}, +"type": "array" +}, +"signatureRrdata": { +"description": "DNSSEC generated signatures for all the `rrdata` within this item. If health checked targets are provided for DNSSEC enabled zones, there's a restriction of 1 IP address per item.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GlueRecord": { +"description": "Defines a host on your domain that is a DNS name server for your domain and/or other domains. Glue records are a way of making the IP address of a name server known, even when it serves DNS queries for its parent domain. For example, when `ns.example.com` is a name server for `example.com`, the host `ns.example.com` must have a glue record to break the circular DNS reference.", +"id": "GlueRecord", +"properties": { +"hostName": { +"description": "Required. Domain name of the host in Punycode format.", +"type": "string" +}, +"ipv4Addresses": { +"description": "List of IPv4 addresses corresponding to this host in the standard decimal format (e.g. `198.51.100.1`). At least one of `ipv4_address` and `ipv6_address` must be set.", +"items": { +"type": "string" +}, +"type": "array" +}, +"ipv6Addresses": { +"description": "List of IPv6 addresses corresponding to this host in the standard hexadecimal format (e.g. `2001:db8::`). At least one of `ipv4_address` and `ipv6_address` must be set.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleDomainsDns": { +"deprecated": true, +"description": "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations). Configuration for using the free DNS zone provided by Google Domains as a `Registration`'s `dns_provider`. You cannot configure the DNS zone itself using the API. To configure the DNS zone, go to [Google Domains](https://domains.google/).", +"id": "GoogleDomainsDns", +"properties": { +"dsRecords": { +"description": "Output only. The list of DS records published for this domain. The list is automatically populated when `ds_state` is `DS_RECORDS_PUBLISHED`, otherwise it remains empty.", +"items": { +"$ref": "DsRecord" +}, +"readOnly": true, +"type": "array" +}, +"dsState": { +"description": "Required. The state of DS records for this domain. Used to enable or disable automatic DNSSEC.", +"enum": [ +"DS_STATE_UNSPECIFIED", +"DS_RECORDS_UNPUBLISHED", +"DS_RECORDS_PUBLISHED" +], +"enumDescriptions": [ +"DS state is unspecified.", +"DNSSEC is disabled for this domain. No DS records for this domain are published in the parent DNS zone.", +"DNSSEC is enabled for this domain. Appropriate DS records for this domain are published in the parent DNS zone. This option is valid only if the DNS zone referenced in the `Registration`'s `dns_provider` field is already DNSSEC-signed." +], +"type": "string" +}, +"nameServers": { +"description": "Output only. A list of name servers that store the DNS zone for this domain. Each name server is a domain name, with Unicode domain names expressed in Punycode format. This field is automatically populated with the name servers assigned to the Google Domains DNS zone.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"HealthCheckTargets": { +"description": "HealthCheckTargets describes endpoints to health-check when responding to Routing Policy queries. Only the healthy endpoints will be included in the response.", +"id": "HealthCheckTargets", +"properties": { +"externalEndpoints": { +"description": "The Internet IP addresses to be health checked. The format matches the format of ResourceRecordSet.rrdata as defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1)", +"items": { +"type": "string" +}, +"type": "array" +}, +"internalLoadBalancer": { +"description": "Configuration for internal load balancers to be health checked.", +"items": { +"$ref": "LoadBalancerTarget" +}, +"type": "array" +} +}, +"type": "object" +}, +"ImportDomainRequest": { +"deprecated": true, +"description": "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations). Request for the `ImportDomain` method.", +"id": "ImportDomainRequest", +"properties": { +"domainName": { +"description": "Required. The domain name. Unicode domain names must be expressed in Punycode format.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Set of labels associated with the `Registration`.", +"type": "object" +} +}, +"type": "object" +}, +"InitiatePushTransferRequest": { +"description": "Request for the `InitiatePushTransfer` method.", +"id": "InitiatePushTransferRequest", +"properties": { +"tag": { +"description": "Required. The Tag of the new registrar. Can be found at [List of registrars](https://nominet.uk/registrar-list/).", +"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" +}, +"ListRegistrationsResponse": { +"description": "Response for the `ListRegistrations` method.", +"id": "ListRegistrationsResponse", +"properties": { +"nextPageToken": { +"description": "When present, there are more results to retrieve. Set `page_token` to this value on a subsequent call to get the next page of results.", +"type": "string" +}, +"registrations": { +"description": "A list of `Registration`s.", +"items": { +"$ref": "Registration" +}, +"type": "array" +} +}, +"type": "object" +}, +"LoadBalancerTarget": { +"description": "The configuration for an individual load balancer to health check.", +"id": "LoadBalancerTarget", +"properties": { +"ipAddress": { +"description": "The frontend IP address of the load balancer to health check.", +"type": "string" +}, +"ipProtocol": { +"description": "The protocol of the load balancer to health check.", +"enum": [ +"UNDEFINED", +"TCP", +"UDP" +], +"enumDescriptions": [ +"", +"Indicates the load balancer is accessible via TCP.", +"Indicates the load balancer is accessible via UDP." +], +"type": "string" +}, +"loadBalancerType": { +"description": "The type of load balancer specified by this target. This value must match the configuration of the load balancer located at the LoadBalancerTarget's IP address, port, and region. Use the following: - *regionalL4ilb*: for a regional internal passthrough Network Load Balancer. - *regionalL7ilb*: for a regional internal Application Load Balancer. - *globalL7ilb*: for a global internal Application Load Balancer. ", +"enum": [ +"NONE", +"GLOBAL_L7ILB", +"REGIONAL_L4ILB", +"REGIONAL_L7ILB" +], +"enumDescriptions": [ +"", +"Indicates the load balancer is a Cross-Region Application Load Balancer.", +"Indicates the load balancer is a Regional Network Passthrough Load Balancer.", +"Indicates the load balancer is a Regional Application Load Balancer." +], +"type": "string" +}, +"networkUrl": { +"description": "The fully qualified URL of the network that the load balancer is attached to. This should be formatted like `https://www.googleapis.com/compute/v1/projects/{project}/global/networks/{network}`.", +"type": "string" +}, +"port": { +"description": "The configured port of the load balancer.", +"type": "string" +}, +"project": { +"description": "The project ID in which the load balancer is located.", +"type": "string" +}, +"region": { +"description": "The region in which the load balancer is located.", +"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" +}, +"ManagementSettings": { +"description": "Defines renewal, billing, and transfer settings for a `Registration`.", +"id": "ManagementSettings", +"properties": { +"effectiveTransferLockState": { +"description": "Output only. The actual transfer lock state for this `Registration`.", +"enum": [ +"TRANSFER_LOCK_STATE_UNSPECIFIED", +"UNLOCKED", +"LOCKED" +], +"enumDescriptions": [ +"The state is unspecified.", +"The domain is unlocked and can be transferred to another registrar.", +"The domain is locked and cannot be transferred to another registrar." +], +"readOnly": true, +"type": "string" +}, +"preferredRenewalMethod": { +"description": "Optional. The desired renewal method for this `Registration`. The actual `renewal_method` is automatically updated to reflect this choice. If unset or equal to `RENEWAL_METHOD_UNSPECIFIED`, the actual `renewalMethod` is treated as if it were set to `AUTOMATIC_RENEWAL`. You cannot use `RENEWAL_DISABLED` during resource creation, and you can update the renewal status only when the `Registration` resource has state `ACTIVE` or `SUSPENDED`. When `preferred_renewal_method` is set to `AUTOMATIC_RENEWAL`, the actual `renewal_method` can be set to `RENEWAL_DISABLED` in case of problems with the billing account or reported domain abuse. In such cases, check the `issues` field on the `Registration`. After the problem is resolved, the `renewal_method` is automatically updated to `preferred_renewal_method` in a few hours.", +"enum": [ +"RENEWAL_METHOD_UNSPECIFIED", +"AUTOMATIC_RENEWAL", +"MANUAL_RENEWAL", +"RENEWAL_DISABLED" +], +"enumDeprecated": [ +false, +false, +true, +false +], +"enumDescriptions": [ +"The renewal method is undefined.", +"The domain is automatically renewed each year.", +"Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations). This option was never used. Use `RENEWAL_DISABLED` instead.", +"The domain won't be renewed and will expire at its expiration time." +], +"type": "string" +}, +"renewalMethod": { +"description": "Output only. The actual renewal method for this `Registration`. When `preferred_renewal_method` is set to `AUTOMATIC_RENEWAL`, the actual `renewal_method` can be equal to `RENEWAL_DISABLED`\u2014for example, when there are problems with the billing account or reported domain abuse. In such cases, check the `issues` field on the `Registration`. After the problem is resolved, the `renewal_method` is automatically updated to `preferred_renewal_method` in a few hours.", +"enum": [ +"RENEWAL_METHOD_UNSPECIFIED", +"AUTOMATIC_RENEWAL", +"MANUAL_RENEWAL", +"RENEWAL_DISABLED" +], +"enumDeprecated": [ +false, +false, +true, +false +], +"enumDescriptions": [ +"The renewal method is undefined.", +"The domain is automatically renewed each year.", +"Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations). This option was never used. Use `RENEWAL_DISABLED` instead.", +"The domain won't be renewed and will expire at its expiration time." +], +"readOnly": true, +"type": "string" +}, +"transferLockState": { +"description": "This is the desired transfer lock state for this `Registration`. A transfer lock controls whether the domain can be transferred to another registrar. The transfer lock state of the domain is returned in the `effective_transfer_lock_state` property. The transfer lock state values might be different for the following reasons: * `transfer_lock_state` was updated only a short time ago. * Domains with the `TRANSFER_LOCK_UNSUPPORTED_BY_REGISTRY` state are in the list of `domain_properties`. These domains are always in the `UNLOCKED` state.", +"enum": [ +"TRANSFER_LOCK_STATE_UNSPECIFIED", +"UNLOCKED", +"LOCKED" +], +"enumDescriptions": [ +"The state is unspecified.", +"The domain is unlocked and can be transferred to another registrar.", +"The domain is locked and cannot be transferred to another registrar." +], +"type": "string" +} +}, +"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" +}, +"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. Output only.", +"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" +}, +"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" +}, +"PostalAddress": { +"description": "Represents a postal address. For example for postal delivery or payments addresses. Given a postal address, a postal service can deliver items to a premise, P.O. Box or similar. It is not intended to model geographical locations (roads, towns, mountains). In typical usage an address would be created by user input or from importing existing data, depending on the type of process. Advice on address input / editing: - Use an internationalization-ready address widget such as https://github.com/google/libaddressinput) - Users should not be presented with UI elements for input or editing of fields outside countries where that field is used. For more guidance on how to use this schema, see: https://support.google.com/business/answer/6397478", +"id": "PostalAddress", +"properties": { +"addressLines": { +"description": "Unstructured address lines describing the lower levels of an address. Because values in address_lines do not have type information and may sometimes contain multiple values in a single field (For example \"Austin, TX\"), it is important that the line order is clear. The order of address lines should be \"envelope order\" for the country/region of the address. In places where this can vary (For example Japan), address_language is used to make it explicit (For example \"ja\" for large-to-small ordering and \"ja-Latn\" or \"en\" for small-to-large). This way, the most specific line of an address can be selected based on the language. The minimum permitted structural representation of an address consists of a region_code with all remaining information placed in the address_lines. It would be possible to format such an address very approximately without geocoding, but no semantic reasoning could be made about any of the address components until it was at least partially resolved. Creating an address only containing a region_code and address_lines, and then geocoding is the recommended way to handle completely unstructured addresses (as opposed to guessing which parts of the address should be localities or administrative areas).", +"items": { +"type": "string" +}, +"type": "array" +}, +"administrativeArea": { +"description": "Optional. Highest administrative subdivision which is used for postal addresses of a country or region. For example, this can be a state, a province, an oblast, or a prefecture. Specifically, for Spain this is the province and not the autonomous community (For example \"Barcelona\" and not \"Catalonia\"). Many countries don't use an administrative area in postal addresses. For example in Switzerland this should be left unpopulated.", +"type": "string" +}, +"languageCode": { +"description": "Optional. BCP-47 language code of the contents of this address (if known). This is often the UI language of the input form or is expected to match one of the languages used in the address' country/region, or their transliterated equivalents. This can affect formatting in certain countries, but is not critical to the correctness of the data and will never affect any validation or other non-formatting related operations. If this value is not known, it should be omitted (rather than specifying a possibly incorrect default). Examples: \"zh-Hant\", \"ja\", \"ja-Latn\", \"en\".", +"type": "string" +}, +"locality": { +"description": "Optional. Generally refers to the city/town portion of the address. Examples: US city, IT comune, UK post town. In regions of the world where localities are not well defined or do not fit into this structure well, leave locality empty and use address_lines.", +"type": "string" +}, +"organization": { +"description": "Optional. The name of the organization at the address.", +"type": "string" +}, +"postalCode": { +"description": "Optional. Postal code of the address. Not all countries use or require postal codes to be present, but where they are used, they may trigger additional validation with other parts of the address (For example state/zip validation in the U.S.A.).", +"type": "string" +}, +"recipients": { +"description": "Optional. The recipient at the address. This field may, under certain circumstances, contain multiline information. For example, it might contain \"care of\" information.", +"items": { +"type": "string" +}, +"type": "array" +}, +"regionCode": { +"description": "Required. CLDR region code of the country/region of the address. This is never inferred and it is up to the user to ensure the value is correct. See https://cldr.unicode.org/ and https://www.unicode.org/cldr/charts/30/supplemental/territory_information.html for details. Example: \"CH\" for Switzerland.", +"type": "string" +}, +"revision": { +"description": "The schema revision of the `PostalAddress`. This must be set to 0, which is the latest revision. All new revisions **must** be backward compatible with old revisions.", +"format": "int32", +"type": "integer" +}, +"sortingCode": { +"description": "Optional. Additional, country-specific, sorting code. This is not used in most regions. Where it is used, the value is either a string like \"CEDEX\", optionally followed by a number (For example \"CEDEX 7\"), or just a number alone, representing the \"sector code\" (Jamaica), \"delivery area indicator\" (Malawi) or \"post office indicator\" (For example C\u00f4te d'Ivoire).", +"type": "string" +}, +"sublocality": { +"description": "Optional. Sublocality of the address. For example, this can be neighborhoods, boroughs, districts.", +"type": "string" +} +}, +"type": "object" +}, +"PrimaryBackupPolicy": { +"description": "Configures a RRSetRoutingPolicy such that all queries are responded with the primary_targets if they are healthy. And if all of them are unhealthy, then we fallback to a geo localized policy.", +"id": "PrimaryBackupPolicy", +"properties": { +"backupGeoTargets": { +"$ref": "GeoPolicy", +"description": "Backup targets provide a regional failover policy for the otherwise global primary targets. If serving state is set to `BACKUP`, this policy essentially becomes a geo routing policy." +}, +"primaryTargets": { +"$ref": "HealthCheckTargets", +"description": "Endpoints that are health checked before making the routing decision. Unhealthy endpoints are omitted from the results. If all endpoints are unhealthy, we serve a response based on the `backup_geo_targets`." +}, +"trickleTraffic": { +"description": "When serving state is `PRIMARY`, this field provides the option of sending a small percentage of the traffic to the backup targets.", +"format": "double", +"type": "number" +} +}, +"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": "GeoPolicy" +}, +"geoPolicy": { +"$ref": "GeoPolicy", +"deprecated": true +}, +"healthCheck": { +"description": "The selfLink attribute of the HealthCheck resource to use for this RRSetRoutingPolicy. https://cloud.google.com/compute/docs/reference/rest/v1/healthChecks", +"type": "string" +}, +"primaryBackup": { +"$ref": "PrimaryBackupPolicy" +}, +"wrr": { +"$ref": "WrrPolicy" +}, +"wrrPolicy": { +"$ref": "WrrPolicy", +"deprecated": true +} +}, +"type": "object" +}, +"RegisterDomainRequest": { +"description": "Request for the `RegisterDomain` method.", +"id": "RegisterDomainRequest", +"properties": { +"contactNotices": { +"description": "The list of contact notices that the caller acknowledges. The notices needed here depend on the values specified in `registration.contact_settings`.", +"items": { +"enum": [ +"CONTACT_NOTICE_UNSPECIFIED", +"PUBLIC_CONTACT_DATA_ACKNOWLEDGEMENT" +], +"enumDescriptions": [ +"The notice is undefined.", +"Required when setting the `privacy` field of `ContactSettings` to `PUBLIC_CONTACT_DATA`, which exposes contact data publicly." +], +"type": "string" +}, +"type": "array" +}, +"domainNotices": { +"description": "The list of domain notices that you acknowledge. Call `RetrieveRegisterParameters` to see the notices that need acknowledgement.", +"items": { +"enum": [ +"DOMAIN_NOTICE_UNSPECIFIED", +"HSTS_PRELOADED" +], +"enumDescriptions": [ +"The notice is undefined.", +"Indicates that the domain is preloaded on the HTTP Strict Transport Security list in browsers. Serving a website on such domain requires an SSL certificate. For details, see [how to get an SSL certificate](https://support.google.com/domains/answer/7638036)." +], +"type": "string" +}, +"type": "array" +}, +"registration": { +"$ref": "Registration", +"description": "Required. The complete `Registration` resource to be created." +}, +"validateOnly": { +"description": "When true, only validation is performed, without actually registering the domain. Follows: https://cloud.google.com/apis/design/design_patterns#request_validation", +"type": "boolean" +}, +"yearlyPrice": { +"$ref": "Money", +"description": "Required. Yearly price to register or renew the domain. The value that should be put here can be obtained from RetrieveRegisterParameters or SearchDomains calls." +} +}, +"type": "object" +}, +"RegisterParameters": { +"description": "Parameters required to register a new domain.", +"id": "RegisterParameters", +"properties": { +"availability": { +"description": "Indicates whether the domain is available for registration. This value is accurate when obtained by calling `RetrieveRegisterParameters`, but is approximate when obtained by calling `SearchDomains`.", +"enum": [ +"AVAILABILITY_UNSPECIFIED", +"AVAILABLE", +"UNAVAILABLE", +"UNSUPPORTED", +"UNKNOWN" +], +"enumDescriptions": [ +"The availability is unspecified.", +"The domain is available for registration.", +"The domain is not available for registration. Generally this means it is already registered to another party.", +"The domain is not currently supported by Cloud Domains, but may be available elsewhere.", +"Cloud Domains is unable to determine domain availability, generally due to system maintenance at the domain name registry." +], +"type": "string" +}, +"domainName": { +"description": "The domain name. Unicode domain names are expressed in Punycode format.", +"type": "string" +}, +"domainNotices": { +"description": "Notices about special properties of the domain.", +"items": { +"enum": [ +"DOMAIN_NOTICE_UNSPECIFIED", +"HSTS_PRELOADED" +], +"enumDescriptions": [ +"The notice is undefined.", +"Indicates that the domain is preloaded on the HTTP Strict Transport Security list in browsers. Serving a website on such domain requires an SSL certificate. For details, see [how to get an SSL certificate](https://support.google.com/domains/answer/7638036)." +], +"type": "string" +}, +"type": "array" +}, +"supportedPrivacy": { +"description": "Contact privacy options that the domain supports.", +"items": { +"enum": [ +"CONTACT_PRIVACY_UNSPECIFIED", +"PUBLIC_CONTACT_DATA", +"PRIVATE_CONTACT_DATA", +"REDACTED_CONTACT_DATA" +], +"enumDeprecated": [ +false, +false, +true, +false +], +"enumDescriptions": [ +"The contact privacy settings are undefined.", +"All the data from `ContactSettings` is publicly available. When setting this option, you must also provide a `PUBLIC_CONTACT_DATA_ACKNOWLEDGEMENT` in the `contact_notices` field of the request.", +"Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations). None of the data from `ContactSettings` is publicly available. Instead, proxy contact data is published for your domain. Email sent to the proxy email address is forwarded to the registrant's email address. Cloud Domains provides this privacy proxy service at no additional cost.", +"The organization name (if provided) and limited non-identifying data from `ContactSettings` is available to the public (e.g. country and state). The remaining data is marked as `REDACTED FOR PRIVACY` in the WHOIS database. The actual information redacted depends on the domain. For details, see [the registration privacy article](https://support.google.com/domains/answer/3251242)." +], +"type": "string" +}, +"type": "array" +}, +"yearlyPrice": { +"$ref": "Money", +"description": "Price to register or renew the domain for one year." +} +}, +"type": "object" +}, +"Registration": { +"description": "The `Registration` resource facilitates managing and configuring domain name registrations. There are several ways to create a new `Registration` resource: To create a new `Registration` resource, find a suitable domain name by calling the `SearchDomains` method with a query to see available domain name options. After choosing a name, call `RetrieveRegisterParameters` to ensure availability and obtain information like pricing, which is needed to build a call to `RegisterDomain`. Another way to create a new `Registration` is to transfer an existing domain from another registrar (Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations)). First, go to the current registrar to unlock the domain for transfer and retrieve the domain's transfer authorization code. Then call `RetrieveTransferParameters` to confirm that the domain is unlocked and to get values needed to build a call to `TransferDomain`. Finally, you can create a new `Registration` by importing an existing domain managed with [Google Domains](https://domains.google/) (Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations)). First, call `RetrieveImportableDomains` to list domains to which the calling user has sufficient access. Then call `ImportDomain` on any domain names you want to use with Cloud Domains.", +"id": "Registration", +"properties": { +"contactSettings": { +"$ref": "ContactSettings", +"description": "Required. Settings for contact information linked to the `Registration`. You cannot update these with the `UpdateRegistration` method. To update these settings, use the `ConfigureContactSettings` method." +}, +"createTime": { +"description": "Output only. The creation timestamp of the `Registration` resource.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"dnsSettings": { +"$ref": "DnsSettings", +"description": "Settings controlling the DNS configuration of the `Registration`. You cannot update these with the `UpdateRegistration` method. To update these settings, use the `ConfigureDnsSettings` method." +}, +"domainName": { +"description": "Required. Immutable. The domain name. Unicode domain names must be expressed in Punycode format.", +"type": "string" +}, +"domainProperties": { +"description": "Output only. Special properties of the domain.", +"items": { +"enum": [ +"DOMAIN_PROPERTY_UNSPECIFIED", +"TRANSFER_LOCK_UNSUPPORTED_BY_REGISTRY", +"REQUIRE_PUSH_TRANSFER" +], +"enumDescriptions": [ +"The property is undefined.", +"The domain does not support transfer locks due to restrictions of the registry. Such domains are effectively always unlocked and any change made to `management_settings.transfer_lock_state` is ignored.", +"The domain uses an alternative `Push Transfer` process to transfer the domain to another registrar. There are two important consequences: * Cloud Domains does not supply the authorization codes. * To initiate the process to transfer the domain to another registrar, you must provide a tag of the registrar you want to transfer to. You can do this by using the `InitiatePushTransfer` method. For more information, see [Transfer a registered domain to another registrar](https://cloud.google.com/domains/docs/transfer-domain-to-another-registrar)." +], +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"expireTime": { +"description": "Output only. The expiration timestamp of the `Registration`.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"issues": { +"description": "Output only. The set of issues with the `Registration` that require attention.", +"items": { +"enum": [ +"ISSUE_UNSPECIFIED", +"CONTACT_SUPPORT", +"UNVERIFIED_EMAIL", +"PROBLEM_WITH_BILLING", +"DNS_NOT_ACTIVATED" +], +"enumDescriptions": [ +"The issue is undefined.", +"Contact the Cloud Support team to resolve a problem with this domain.", +"[ICANN](https://icann.org/) requires verification of the email address in the `Registration`'s `contact_settings.registrant_contact` field. To verify the email address, follow the instructions in the email the `registrant_contact` receives following registration. If you do not complete email verification within 15 days of registration, the domain is suspended. To resend the verification email, call ConfigureContactSettings and provide the current `registrant_contact.email`.", +"The billing account is not in good standing. The domain is not automatically renewed at its expiration time unless you resolve problems with your billing account.", +"The registry failed to validate your DNS configuration and activate your domain. The failure might happen for the following reasons: * You recently registered the domain (wait up to 72 hours). * You provided invalid name servers or name servers that correspond to a newly created DNS zone. Verify your DNS configuration. If the configuration is incorrect, you must fix it. If the configuration is correct, either wait or call the ConfigureDnsSettings method to retry the registry validation." +], +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Set of labels associated with the `Registration`.", +"type": "object" +}, +"managementSettings": { +"$ref": "ManagementSettings", +"description": "Settings for management of the `Registration`, including renewal, billing, and transfer. You cannot update these with the `UpdateRegistration` method. To update these settings, use the `ConfigureManagementSettings` method." +}, +"name": { +"description": "Output only. Name of the `Registration` resource, in the format `projects/*/locations/*/registrations/`.", +"readOnly": true, +"type": "string" +}, +"pendingContactSettings": { +"$ref": "ContactSettings", +"description": "Output only. Pending contact settings for the `Registration`. Updates to the `contact_settings` field that change its `registrant_contact` or `privacy` fields require email confirmation by the `registrant_contact` before taking effect. This field is set only if there are pending updates to the `contact_settings` that have not been confirmed. To confirm the changes, the `registrant_contact` must follow the instructions in the email they receive.", +"readOnly": true +}, +"provider": { +"description": "Output only. Current domain management provider.", +"enum": [ +"REGISTRAR_UNSPECIFIED", +"GOOGLE_DOMAINS", +"SQUARESPACE" +], +"enumDescriptions": [ +"Registrar is not selected.", +"Use Google Domains registrar.", +"Use Squarespace registrar" +], +"readOnly": true, +"type": "string" +}, +"registerFailureReason": { +"description": "Output only. The reason the domain registration failed. Only set for domains in REGISTRATION_FAILED state.", +"enum": [ +"REGISTER_FAILURE_REASON_UNSPECIFIED", +"REGISTER_FAILURE_REASON_UNKNOWN", +"DOMAIN_NOT_AVAILABLE", +"INVALID_CONTACTS" +], +"enumDescriptions": [ +"Register failure unspecified.", +"Registration failed for an unknown reason.", +"The domain is not available for registration.", +"The provided contact information was rejected." +], +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. The state of the `Registration`", +"enum": [ +"STATE_UNSPECIFIED", +"REGISTRATION_PENDING", +"REGISTRATION_FAILED", +"TRANSFER_PENDING", +"TRANSFER_FAILED", +"IMPORT_PENDING", +"ACTIVE", +"SUSPENDED", +"EXPORTED", +"EXPIRED" +], +"enumDeprecated": [ +false, +false, +false, +true, +true, +true, +false, +false, +false, +false +], +"enumDescriptions": [ +"The state is undefined.", +"The domain is being registered.", +"The domain registration failed. You can delete resources in this state to allow registration to be retried.", +"The domain is being transferred from another registrar to Cloud Domains.", +"The attempt to transfer the domain from another registrar to Cloud Domains failed. You can delete resources in this state and retry the transfer.", +"The domain is being imported from Google Domains to Cloud Domains.", +"The domain is registered and operational. The domain renews automatically as long as it remains in this state and the `RenewalMethod` is set to `AUTOMATIC_RENEWAL`.", +"The domain is suspended and inoperative. For more details, see the `issues` field.", +"The domain is no longer managed with Cloud Domains. It may have been transferred to another registrar or exported for management in [Google Domains](https://domains.google/). You can no longer update it with this API, and information shown about it may be stale. Domains in this state are not automatically renewed by Cloud Domains.", +"The domain is expired." +], +"readOnly": true, +"type": "string" +}, +"supportedPrivacy": { +"description": "Output only. Set of options for the `contact_settings.privacy` field that this `Registration` supports.", +"items": { +"enum": [ +"CONTACT_PRIVACY_UNSPECIFIED", +"PUBLIC_CONTACT_DATA", +"PRIVATE_CONTACT_DATA", +"REDACTED_CONTACT_DATA" +], +"enumDeprecated": [ +false, +false, +true, +false +], +"enumDescriptions": [ +"The contact privacy settings are undefined.", +"All the data from `ContactSettings` is publicly available. When setting this option, you must also provide a `PUBLIC_CONTACT_DATA_ACKNOWLEDGEMENT` in the `contact_notices` field of the request.", +"Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations). None of the data from `ContactSettings` is publicly available. Instead, proxy contact data is published for your domain. Email sent to the proxy email address is forwarded to the registrant's email address. Cloud Domains provides this privacy proxy service at no additional cost.", +"The organization name (if provided) and limited non-identifying data from `ContactSettings` is available to the public (e.g. country and state). The remaining data is marked as `REDACTED FOR PRIVACY` in the WHOIS database. The actual information redacted depends on the domain. For details, see [the registration privacy article](https://support.google.com/domains/answer/3251242)." +], +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"transferFailureReason": { +"deprecated": true, +"description": "Output only. Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations). The reason the domain transfer failed. Only set for domains in TRANSFER_FAILED state.", +"enum": [ +"TRANSFER_FAILURE_REASON_UNSPECIFIED", +"TRANSFER_FAILURE_REASON_UNKNOWN", +"EMAIL_CONFIRMATION_FAILURE", +"DOMAIN_NOT_REGISTERED", +"DOMAIN_HAS_TRANSFER_LOCK", +"INVALID_AUTHORIZATION_CODE", +"TRANSFER_CANCELLED", +"TRANSFER_REJECTED", +"INVALID_REGISTRANT_EMAIL_ADDRESS", +"DOMAIN_NOT_ELIGIBLE_FOR_TRANSFER", +"TRANSFER_ALREADY_PENDING" +], +"enumDescriptions": [ +"Transfer failure unspecified.", +"Transfer failed for an unknown reason.", +"An email confirmation sent to the user was rejected or expired.", +"The domain is available for registration.", +"The domain has a transfer lock with its current registrar which must be removed prior to transfer.", +"The authorization code entered is not valid.", +"The transfer was cancelled by the domain owner, current registrar, or TLD registry.", +"The transfer was rejected by the current registrar. Contact the current registrar for more information.", +"The registrant email address cannot be parsed from the domain's current public contact data.", +"The domain is not eligible for transfer due requirements imposed by the current registrar or TLD registry.", +"Another transfer is already pending for this domain. The existing transfer attempt must expire or be cancelled in order to proceed." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"RenewDomainRequest": { +"description": "Request for the `RenewDomain` method.", +"id": "RenewDomainRequest", +"properties": { +"validateOnly": { +"description": "Optional. When true, only validation is performed, without actually renewing the domain. For more information, see [Request validation](https://cloud.google.com/apis/design/design_patterns#request_validation)", +"type": "boolean" +}, +"yearlyPrice": { +"$ref": "Money", +"description": "Required. Acknowledgement of the price to renew the domain for one year. To get the price, see [Cloud Domains pricing](https://cloud.google.com/domains/pricing). If not provided, the expected price is returned in the error message." +} +}, +"type": "object" +}, +"ResetAuthorizationCodeRequest": { +"description": "Request for the `ResetAuthorizationCode` method.", +"id": "ResetAuthorizationCodeRequest", +"properties": {}, +"type": "object" +}, +"ResourceRecordSet": { +"description": "A unit of data that is returned by the DNS servers.", +"id": "ResourceRecordSet", +"properties": { +"name": { +"description": "For example, www.example.com.", +"type": "string" +}, +"routingPolicy": { +"$ref": "RRSetRoutingPolicy", +"description": "Configures dynamic query responses based on either the geo location of the querying user or a weighted round robin based routing policy. A valid `ResourceRecordSet` contains only `rrdata` (for static resolution) or a `routing_policy` (for dynamic resolution)." +}, +"rrdata": { +"description": "As defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1) -- see examples.", +"items": { +"type": "string" +}, +"type": "array" +}, +"signatureRrdata": { +"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" +}, +"RetrieveGoogleDomainsDnsRecordsResponse": { +"description": "Response for the `RetrieveGoogleDomainsDnsRecords` method.", +"id": "RetrieveGoogleDomainsDnsRecordsResponse", +"properties": { +"nextPageToken": { +"description": "When present, there are more results to retrieve. Set `page_token` to this value on a subsequent call to get the next page of results.", +"type": "string" +}, +"rrset": { +"description": "The resource record set resources (DNS Zone records).", +"items": { +"$ref": "ResourceRecordSet" +}, +"type": "array" +} +}, +"type": "object" +}, +"RetrieveGoogleDomainsForwardingConfigResponse": { +"description": "Response for the `RetrieveGoogleDomainsForwardingConfig` method.", +"id": "RetrieveGoogleDomainsForwardingConfigResponse", +"properties": { +"domainForwardings": { +"description": "The list of domain forwarding configurations. A forwarding configuration might not work correctly if the required DNS records are not present in the domain's authoritative DNS zone.", +"items": { +"$ref": "DomainForwarding" +}, +"type": "array" +}, +"emailForwardings": { +"description": "The list of email forwarding configurations. A forwarding configuration might not work correctly if the required DNS records are not present in the domain's authoritative DNS zone.", +"items": { +"$ref": "EmailForwarding" +}, +"type": "array" +} +}, +"type": "object" +}, +"RetrieveImportableDomainsResponse": { +"deprecated": true, +"description": "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations). Response for the `RetrieveImportableDomains` method.", +"id": "RetrieveImportableDomainsResponse", +"properties": { +"domains": { +"description": "A list of domains that the calling user manages in Google Domains.", +"items": { +"$ref": "Domain" +}, +"type": "array" +}, +"nextPageToken": { +"description": "When present, there are more results to retrieve. Set `page_token` to this value on a subsequent call to get the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"RetrieveRegisterParametersResponse": { +"description": "Response for the `RetrieveRegisterParameters` method.", +"id": "RetrieveRegisterParametersResponse", +"properties": { +"registerParameters": { +"$ref": "RegisterParameters", +"description": "Parameters to use when calling the `RegisterDomain` method." +} +}, +"type": "object" +}, +"RetrieveTransferParametersResponse": { +"deprecated": true, +"description": "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations). Response for the `RetrieveTransferParameters` method.", +"id": "RetrieveTransferParametersResponse", +"properties": { +"transferParameters": { +"$ref": "TransferParameters", +"description": "Parameters to use when calling the `TransferDomain` method." +} +}, +"type": "object" +}, +"SearchDomainsResponse": { +"description": "Response for the `SearchDomains` method.", +"id": "SearchDomainsResponse", +"properties": { +"registerParameters": { +"description": "Results of the domain name search.", +"items": { +"$ref": "RegisterParameters" +}, +"type": "array" +} +}, +"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" +}, +"TransferDomainRequest": { +"deprecated": true, +"description": "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations). Request for the `TransferDomain` method.", +"id": "TransferDomainRequest", +"properties": { +"authorizationCode": { +"$ref": "AuthorizationCode", +"description": "The domain's transfer authorization code. You can obtain this from the domain's current registrar." +}, +"contactNotices": { +"description": "The list of contact notices that you acknowledge. The notices needed here depend on the values specified in `registration.contact_settings`.", +"items": { +"enum": [ +"CONTACT_NOTICE_UNSPECIFIED", +"PUBLIC_CONTACT_DATA_ACKNOWLEDGEMENT" +], +"enumDescriptions": [ +"The notice is undefined.", +"Required when setting the `privacy` field of `ContactSettings` to `PUBLIC_CONTACT_DATA`, which exposes contact data publicly." +], +"type": "string" +}, +"type": "array" +}, +"registration": { +"$ref": "Registration", +"description": "Required. The complete `Registration` resource to be created. You can leave `registration.dns_settings` unset to import the domain's current DNS configuration from its current registrar. Use this option only if you are sure that the domain's current DNS service does not cease upon transfer, as is often the case for DNS services provided for free by the registrar." +}, +"validateOnly": { +"description": "Validate the request without actually transferring the domain.", +"type": "boolean" +}, +"yearlyPrice": { +"$ref": "Money", +"description": "Required. Acknowledgement of the price to transfer or renew the domain for one year. Call `RetrieveTransferParameters` to obtain the price, which you must acknowledge." +} +}, +"type": "object" +}, +"TransferParameters": { +"deprecated": true, +"description": "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations). Parameters required to transfer a domain from another registrar.", +"id": "TransferParameters", +"properties": { +"currentRegistrar": { +"description": "The registrar that currently manages the domain.", +"type": "string" +}, +"currentRegistrarUri": { +"description": "The URL of the registrar that currently manages the domain.", +"type": "string" +}, +"domainName": { +"description": "The domain name. Unicode domain names are expressed in Punycode format.", +"type": "string" +}, +"nameServers": { +"description": "The name servers that currently store the configuration of the domain.", +"items": { +"type": "string" +}, +"type": "array" +}, +"supportedPrivacy": { +"description": "Contact privacy options that the domain supports.", +"items": { +"enum": [ +"CONTACT_PRIVACY_UNSPECIFIED", +"PUBLIC_CONTACT_DATA", +"PRIVATE_CONTACT_DATA", +"REDACTED_CONTACT_DATA" +], +"enumDeprecated": [ +false, +false, +true, +false +], +"enumDescriptions": [ +"The contact privacy settings are undefined.", +"All the data from `ContactSettings` is publicly available. When setting this option, you must also provide a `PUBLIC_CONTACT_DATA_ACKNOWLEDGEMENT` in the `contact_notices` field of the request.", +"Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations). None of the data from `ContactSettings` is publicly available. Instead, proxy contact data is published for your domain. Email sent to the proxy email address is forwarded to the registrant's email address. Cloud Domains provides this privacy proxy service at no additional cost.", +"The organization name (if provided) and limited non-identifying data from `ContactSettings` is available to the public (e.g. country and state). The remaining data is marked as `REDACTED FOR PRIVACY` in the WHOIS database. The actual information redacted depends on the domain. For details, see [the registration privacy article](https://support.google.com/domains/answer/3251242)." +], +"type": "string" +}, +"type": "array" +}, +"transferLockState": { +"description": "Indicates whether the domain is protected by a transfer lock. For a transfer to succeed, this must show `UNLOCKED`. To unlock a domain, go to its current registrar.", +"enum": [ +"TRANSFER_LOCK_STATE_UNSPECIFIED", +"UNLOCKED", +"LOCKED" +], +"enumDescriptions": [ +"The state is unspecified.", +"The domain is unlocked and can be transferred to another registrar.", +"The domain is locked and cannot be transferred to another registrar." +], +"type": "string" +}, +"yearlyPrice": { +"$ref": "Money", +"description": "Price to transfer or renew the domain for one year." +} +}, +"type": "object" +}, +"WrrPolicy": { +"description": "Configures a RRSetRoutingPolicy that routes in a weighted round robin fashion.", +"id": "WrrPolicy", +"properties": { +"item": { +"items": { +"$ref": "WrrPolicyItem" +}, +"type": "array" +} +}, +"type": "object" +}, +"WrrPolicyItem": { +"description": "A routing block which contains the routing information for one WRR item.", +"id": "WrrPolicyItem", +"properties": { +"healthCheckedTargets": { +"$ref": "HealthCheckTargets", +"description": "Endpoints that are health checked before making the routing decision. The unhealthy endpoints are omitted from the result. If all endpoints within a bucket are unhealthy, we choose a different bucket (sampled with respect to its weight) for responding. If DNSSEC is enabled for this zone, only one of `rrdata` or `health_checked_targets` can be set." +}, +"rrdata": { +"items": { +"type": "string" +}, +"type": "array" +}, +"signatureRrdata": { +"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 address per item.", +"items": { +"type": "string" +}, +"type": "array" +}, +"weight": { +"description": "The weight corresponding to this `WrrPolicyItem` object. When multiple `WrrPolicyItem` objects are configured, the probability of returning an `WrrPolicyItem` object's data is proportional to its weight relative to the sum of weights configured for all items. This weight must be non-negative.", +"format": "double", +"type": "number" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Cloud Domains API", +"version": "v1alpha2", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/domainsrdap.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/domainsrdap.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..ac147710c8bd0cad2ff814e0700520f2480b19d1 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/domainsrdap.v1.json @@ -0,0 +1,436 @@ +{ +"basePath": "", +"baseUrl": "https://domainsrdap.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Domains RDAP", +"description": "Read-only public API that lets users search for information about domain names.", +"discoveryVersion": "v1", +"documentationLink": "https://developers.google.com/domains/rdap/", +"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": "domainsrdap:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://domainsrdap.mtls.googleapis.com/", +"name": "domainsrdap", +"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": { +"autnum": { +"methods": { +"get": { +"description": "The RDAP API recognizes this command from the RDAP specification but does not support it. The response is a formatted 501 error.", +"flatPath": "v1/autnum/{autnumId}", +"httpMethod": "GET", +"id": "domainsrdap.autnum.get", +"parameterOrder": [ +"autnumId" +], +"parameters": { +"autnumId": { +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/autnum/{autnumId}", +"response": { +"$ref": "RdapResponse" +} +} +} +}, +"domain": { +"methods": { +"get": { +"description": "Look up RDAP information for a domain by name.", +"flatPath": "v1/domain/{domainId}", +"httpMethod": "GET", +"id": "domainsrdap.domain.get", +"parameterOrder": [ +"domainName" +], +"parameters": { +"domainName": { +"description": "Full domain name to look up. Example: \"example.com\"", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/domain/{+domainName}", +"response": { +"$ref": "HttpBody" +} +} +} +}, +"entity": { +"methods": { +"get": { +"description": "The RDAP API recognizes this command from the RDAP specification but does not support it. The response is a formatted 501 error.", +"flatPath": "v1/entity/{entityId}", +"httpMethod": "GET", +"id": "domainsrdap.entity.get", +"parameterOrder": [ +"entityId" +], +"parameters": { +"entityId": { +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/entity/{entityId}", +"response": { +"$ref": "RdapResponse" +} +} +} +}, +"ip": { +"methods": { +"get": { +"description": "The RDAP API recognizes this command from the RDAP specification but does not support it. The response is a formatted 501 error.", +"flatPath": "v1/ip/{ipId}/{ipId1}", +"httpMethod": "GET", +"id": "domainsrdap.ip.get", +"parameterOrder": [ +"ipId", +"ipId1" +], +"parameters": { +"ipId": { +"location": "path", +"required": true, +"type": "string" +}, +"ipId1": { +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/ip/{ipId}/{ipId1}", +"response": { +"$ref": "RdapResponse" +} +} +} +}, +"nameserver": { +"methods": { +"get": { +"description": "The RDAP API recognizes this command from the RDAP specification but does not support it. The response is a formatted 501 error.", +"flatPath": "v1/nameserver/{nameserverId}", +"httpMethod": "GET", +"id": "domainsrdap.nameserver.get", +"parameterOrder": [ +"nameserverId" +], +"parameters": { +"nameserverId": { +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/nameserver/{nameserverId}", +"response": { +"$ref": "RdapResponse" +} +} +} +}, +"v1": { +"methods": { +"getDomains": { +"description": "The RDAP API recognizes this command from the RDAP specification but does not support it. The response is a formatted 501 error.", +"flatPath": "v1/domains", +"httpMethod": "GET", +"id": "domainsrdap.getDomains", +"parameterOrder": [], +"parameters": {}, +"path": "v1/domains", +"response": { +"$ref": "RdapResponse" +} +}, +"getEntities": { +"description": "The RDAP API recognizes this command from the RDAP specification but does not support it. The response is a formatted 501 error.", +"flatPath": "v1/entities", +"httpMethod": "GET", +"id": "domainsrdap.getEntities", +"parameterOrder": [], +"parameters": {}, +"path": "v1/entities", +"response": { +"$ref": "RdapResponse" +} +}, +"getHelp": { +"description": "Get help information for the RDAP API, including links to documentation.", +"flatPath": "v1/help", +"httpMethod": "GET", +"id": "domainsrdap.getHelp", +"parameterOrder": [], +"parameters": {}, +"path": "v1/help", +"response": { +"$ref": "HttpBody" +} +}, +"getIp": { +"description": "The RDAP API recognizes this command from the RDAP specification but does not support it. The response is a formatted 501 error.", +"flatPath": "v1/ip", +"httpMethod": "GET", +"id": "domainsrdap.getIp", +"parameterOrder": [], +"parameters": {}, +"path": "v1/ip", +"response": { +"$ref": "HttpBody" +} +}, +"getNameservers": { +"description": "The RDAP API recognizes this command from the RDAP specification but does not support it. The response is a formatted 501 error.", +"flatPath": "v1/nameservers", +"httpMethod": "GET", +"id": "domainsrdap.getNameservers", +"parameterOrder": [], +"parameters": {}, +"path": "v1/nameservers", +"response": { +"$ref": "RdapResponse" +} +} +} +} +}, +"revision": "20240708", +"rootUrl": "https://domainsrdap.googleapis.com/", +"schemas": { +"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" +}, +"Link": { +"description": "Links object defined in [section 4.2 of RFC 7483](https://tools.ietf.org/html/rfc7483#section-4.2).", +"id": "Link", +"properties": { +"href": { +"description": "Target URL of a link. Example: \"http://example.com/previous\".", +"type": "string" +}, +"hreflang": { +"description": "Language code of a link. Example: \"en\".", +"type": "string" +}, +"media": { +"description": "Media type of the link destination. Example: \"screen\".", +"type": "string" +}, +"rel": { +"description": "Relation type of a link. Example: \"previous\".", +"type": "string" +}, +"title": { +"description": "Title of this link. Example: \"title\".", +"type": "string" +}, +"type": { +"description": "Content type of the link. Example: \"application/json\".", +"type": "string" +}, +"value": { +"description": "URL giving context for the link. Example: \"http://example.com/current\".", +"type": "string" +} +}, +"type": "object" +}, +"Notice": { +"description": "Notices object defined in [section 4.3 of RFC 7483](https://tools.ietf.org/html/rfc7483#section-4.3).", +"id": "Notice", +"properties": { +"description": { +"description": "Description of the notice.", +"items": { +"type": "string" +}, +"type": "array" +}, +"links": { +"description": "Link to a document containing more information.", +"items": { +"$ref": "Link" +}, +"type": "array" +}, +"title": { +"description": "Title of a notice. Example: \"Terms of Service\".", +"type": "string" +}, +"type": { +"description": "Type values defined in [section 10.2.1 of RFC 7483](https://tools.ietf.org/html/rfc7483#section-10.2.1) specific to a whole response: \"result set truncated due to authorization\", \"result set truncated due to excessive load\", \"result set truncated due to unexplainable reasons\".", +"type": "string" +} +}, +"type": "object" +}, +"RdapResponse": { +"description": "Response to a general RDAP query.", +"id": "RdapResponse", +"properties": { +"description": { +"description": "Error description.", +"items": { +"type": "string" +}, +"type": "array" +}, +"errorCode": { +"description": "Error HTTP code. Example: \"501\".", +"format": "int32", +"type": "integer" +}, +"jsonResponse": { +"$ref": "HttpBody", +"description": "HTTP response with content type set to \"application/json+rdap\"." +}, +"lang": { +"description": "Error language code. Error response info fields are defined in [section 6 of RFC 7483](https://tools.ietf.org/html/rfc7483#section-6).", +"type": "string" +}, +"notices": { +"description": "Notices applying to this response.", +"items": { +"$ref": "Notice" +}, +"type": "array" +}, +"rdapConformance": { +"description": "RDAP conformance level.", +"items": { +"type": "string" +}, +"type": "array" +}, +"title": { +"description": "Error title.", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Domains RDAP 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/doubleclickbidmanager.v1.1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/doubleclickbidmanager.v1.1.json new file mode 100644 index 0000000000000000000000000000000000000000..89bd5a8aa298b8e89364b48fe27b225c5784e42c --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/doubleclickbidmanager.v1.1.json @@ -0,0 +1,3779 @@ +{ + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/doubleclickbidmanager": { + "description": "View and manage your reports in DoubleClick Bid Manager" + } + } + } + }, + "basePath": "/doubleclickbidmanager/v1.1/", + "baseUrl": "https://doubleclickbidmanager.googleapis.com/doubleclickbidmanager/v1.1/", + "batchPath": "batch", + "canonicalName": "DoubleClick Bid Manager", + "description": "DoubleClick Bid Manager API allows users to manage and create campaigns and reports.", + "discoveryVersion": "v1", + "documentationLink": "https://developers.google.com/bid-manager/", + "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": "doubleclickbidmanager:v1.1", + "kind": "discovery#restDescription", + "mtlsRootUrl": "https://doubleclickbidmanager.mtls.googleapis.com/", + "name": "doubleclickbidmanager", + "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": { + "queries": { + "methods": { + "createquery": { + "description": "Creates a query.", + "flatPath": "query", + "httpMethod": "POST", + "id": "doubleclickbidmanager.queries.createquery", + "parameterOrder": [], + "parameters": { + "asynchronous": { + "default": "false", + "description": "If true, tries to run the query asynchronously. Only applicable when the frequency is ONE_TIME.", + "location": "query", + "type": "boolean" + } + }, + "path": "query", + "request": { + "$ref": "Query" + }, + "response": { + "$ref": "Query" + }, + "scopes": [ + "https://www.googleapis.com/auth/doubleclickbidmanager" + ] + }, + "deletequery": { + "description": "Deletes a stored query as well as the associated stored reports.", + "flatPath": "query/{queryId}", + "httpMethod": "DELETE", + "id": "doubleclickbidmanager.queries.deletequery", + "parameterOrder": [ + "queryId" + ], + "parameters": { + "queryId": { + "description": "Query ID to delete.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "query/{queryId}", + "scopes": [ + "https://www.googleapis.com/auth/doubleclickbidmanager" + ] + }, + "getquery": { + "description": "Retrieves a stored query.", + "flatPath": "query/{queryId}", + "httpMethod": "GET", + "id": "doubleclickbidmanager.queries.getquery", + "parameterOrder": [ + "queryId" + ], + "parameters": { + "queryId": { + "description": "Query ID to retrieve.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "query/{queryId}", + "response": { + "$ref": "Query" + }, + "scopes": [ + "https://www.googleapis.com/auth/doubleclickbidmanager" + ] + }, + "listqueries": { + "description": "Retrieves stored queries.", + "flatPath": "queries", + "httpMethod": "GET", + "id": "doubleclickbidmanager.queries.listqueries", + "parameterOrder": [], + "parameters": { + "pageSize": { + "description": "Maximum number of results per page. Must be between 1 and 100. Defaults to 100 if unspecified.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional pagination token.", + "location": "query", + "type": "string" + } + }, + "path": "queries", + "response": { + "$ref": "ListQueriesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/doubleclickbidmanager" + ] + }, + "runquery": { + "description": "Runs a stored query to generate a report.", + "flatPath": "query/{queryId}", + "httpMethod": "POST", + "id": "doubleclickbidmanager.queries.runquery", + "parameterOrder": [ + "queryId" + ], + "parameters": { + "asynchronous": { + "default": "false", + "description": "If true, tries to run the query asynchronously.", + "location": "query", + "type": "boolean" + }, + "queryId": { + "description": "Query ID to run.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "query/{queryId}", + "request": { + "$ref": "RunQueryRequest" + }, + "scopes": [ + "https://www.googleapis.com/auth/doubleclickbidmanager" + ] + } + } + }, + "reports": { + "methods": { + "listreports": { + "description": "Retrieves stored reports.", + "flatPath": "queries/{queryId}/reports", + "httpMethod": "GET", + "id": "doubleclickbidmanager.reports.listreports", + "parameterOrder": [ + "queryId" + ], + "parameters": { + "pageSize": { + "description": "Maximum number of results per page. Must be between 1 and 100. Defaults to 100 if unspecified.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional pagination token.", + "location": "query", + "type": "string" + }, + "queryId": { + "description": "Query ID with which the reports are associated.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "queries/{queryId}/reports", + "response": { + "$ref": "ListReportsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/doubleclickbidmanager" + ] + } + } + } + }, + "revision": "20230523", + "rootUrl": "https://doubleclickbidmanager.googleapis.com/", + "schemas": { + "ChannelGrouping": { + "description": "A channel grouping defines a set of rules that can be used to categorize events in a path report.", + "id": "ChannelGrouping", + "properties": { + "fallbackName": { + "description": "The name to apply to an event that does not match any of the rules in the channel grouping.", + "type": "string" + }, + "name": { + "description": "Channel Grouping name.", + "type": "string" + }, + "rules": { + "description": "Rules within Channel Grouping. There is a limit of 100 rules that can be set per channel grouping.", + "items": { + "$ref": "Rule" + }, + "type": "array" + } + }, + "type": "object" + }, + "DisjunctiveMatchStatement": { + "description": "DisjunctiveMatchStatement that OR's all contained filters.", + "id": "DisjunctiveMatchStatement", + "properties": { + "eventFilters": { + "description": "Filters. There is a limit of 100 filters that can be set per disjunctive match statement.", + "items": { + "$ref": "EventFilter" + }, + "type": "array" + } + }, + "type": "object" + }, + "EventFilter": { + "description": "Defines the type of filter to be applied to the path, a DV360 event dimension filter.", + "id": "EventFilter", + "properties": { + "dimensionFilter": { + "$ref": "PathQueryOptionsFilter", + "description": "Filter on a dimension." + } + }, + "type": "object" + }, + "FilterPair": { + "description": "Filter used to match traffic data in your report.", + "id": "FilterPair", + "properties": { + "type": { + "description": "Filter type.", + "enum": [ + "FILTER_UNKNOWN", + "FILTER_DATE", + "FILTER_DAY_OF_WEEK", + "FILTER_WEEK", + "FILTER_MONTH", + "FILTER_YEAR", + "FILTER_TIME_OF_DAY", + "FILTER_CONVERSION_DELAY", + "FILTER_CREATIVE_ID", + "FILTER_CREATIVE_SIZE", + "FILTER_CREATIVE_TYPE", + "FILTER_EXCHANGE_ID", + "FILTER_AD_POSITION", + "FILTER_PUBLIC_INVENTORY", + "FILTER_INVENTORY_SOURCE", + "FILTER_CITY", + "FILTER_REGION", + "FILTER_DMA", + "FILTER_COUNTRY", + "FILTER_SITE_ID", + "FILTER_CHANNEL_ID", + "FILTER_PARTNER", + "FILTER_ADVERTISER", + "FILTER_INSERTION_ORDER", + "FILTER_LINE_ITEM", + "FILTER_PARTNER_CURRENCY", + "FILTER_ADVERTISER_CURRENCY", + "FILTER_ADVERTISER_TIMEZONE", + "FILTER_LINE_ITEM_TYPE", + "FILTER_USER_LIST", + "FILTER_USER_LIST_FIRST_PARTY", + "FILTER_USER_LIST_THIRD_PARTY", + "FILTER_TARGETED_USER_LIST", + "FILTER_DATA_PROVIDER", + "FILTER_ORDER_ID", + "FILTER_VIDEO_PLAYER_SIZE", + "FILTER_VIDEO_DURATION_SECONDS", + "FILTER_KEYWORD", + "FILTER_PAGE_CATEGORY", + "FILTER_CAMPAIGN_DAILY_FREQUENCY", + "FILTER_LINE_ITEM_DAILY_FREQUENCY", + "FILTER_LINE_ITEM_LIFETIME_FREQUENCY", + "FILTER_OS", + "FILTER_BROWSER", + "FILTER_CARRIER", + "FILTER_SITE_LANGUAGE", + "FILTER_INVENTORY_FORMAT", + "FILTER_ZIP_CODE", + "FILTER_VIDEO_RATING_TIER", + "FILTER_VIDEO_FORMAT_SUPPORT", + "FILTER_VIDEO_SKIPPABLE_SUPPORT", + "FILTER_VIDEO_CREATIVE_DURATION", + "FILTER_PAGE_LAYOUT", + "FILTER_VIDEO_AD_POSITION_IN_STREAM", + "FILTER_AGE", + "FILTER_GENDER", + "FILTER_QUARTER", + "FILTER_TRUEVIEW_CONVERSION_TYPE", + "FILTER_MOBILE_GEO", + "FILTER_MRAID_SUPPORT", + "FILTER_ACTIVE_VIEW_EXPECTED_VIEWABILITY", + "FILTER_VIDEO_CREATIVE_DURATION_SKIPPABLE", + "FILTER_NIELSEN_COUNTRY_CODE", + "FILTER_NIELSEN_DEVICE_ID", + "FILTER_NIELSEN_GENDER", + "FILTER_NIELSEN_AGE", + "FILTER_INVENTORY_SOURCE_TYPE", + "FILTER_CREATIVE_WIDTH", + "FILTER_CREATIVE_HEIGHT", + "FILTER_DFP_ORDER_ID", + "FILTER_TRUEVIEW_AGE", + "FILTER_TRUEVIEW_GENDER", + "FILTER_TRUEVIEW_PARENTAL_STATUS", + "FILTER_TRUEVIEW_REMARKETING_LIST", + "FILTER_TRUEVIEW_INTEREST", + "FILTER_TRUEVIEW_AD_GROUP_ID", + "FILTER_TRUEVIEW_AD_GROUP_AD_ID", + "FILTER_TRUEVIEW_IAR_LANGUAGE", + "FILTER_TRUEVIEW_IAR_GENDER", + "FILTER_TRUEVIEW_IAR_AGE", + "FILTER_TRUEVIEW_IAR_CATEGORY", + "FILTER_TRUEVIEW_IAR_COUNTRY", + "FILTER_TRUEVIEW_IAR_CITY", + "FILTER_TRUEVIEW_IAR_REGION", + "FILTER_TRUEVIEW_IAR_ZIPCODE", + "FILTER_TRUEVIEW_IAR_REMARKETING_LIST", + "FILTER_TRUEVIEW_IAR_INTEREST", + "FILTER_TRUEVIEW_IAR_PARENTAL_STATUS", + "FILTER_TRUEVIEW_IAR_TIME_OF_DAY", + "FILTER_TRUEVIEW_CUSTOM_AFFINITY", + "FILTER_TRUEVIEW_CATEGORY", + "FILTER_TRUEVIEW_KEYWORD", + "FILTER_TRUEVIEW_PLACEMENT", + "FILTER_TRUEVIEW_URL", + "FILTER_TRUEVIEW_COUNTRY", + "FILTER_TRUEVIEW_REGION", + "FILTER_TRUEVIEW_CITY", + "FILTER_TRUEVIEW_DMA", + "FILTER_TRUEVIEW_ZIPCODE", + "FILTER_NOT_SUPPORTED", + "FILTER_MEDIA_PLAN", + "FILTER_TRUEVIEW_IAR_YOUTUBE_CHANNEL", + "FILTER_TRUEVIEW_IAR_YOUTUBE_VIDEO", + "FILTER_SKIPPABLE_SUPPORT", + "FILTER_COMPANION_CREATIVE_ID", + "FILTER_BUDGET_SEGMENT_DESCRIPTION", + "FILTER_FLOODLIGHT_ACTIVITY_ID", + "FILTER_DEVICE_MODEL", + "FILTER_DEVICE_MAKE", + "FILTER_DEVICE_TYPE", + "FILTER_CREATIVE_ATTRIBUTE", + "FILTER_INVENTORY_COMMITMENT_TYPE", + "FILTER_INVENTORY_RATE_TYPE", + "FILTER_INVENTORY_DELIVERY_METHOD", + "FILTER_INVENTORY_SOURCE_EXTERNAL_ID", + "FILTER_AUTHORIZED_SELLER_STATE", + "FILTER_VIDEO_DURATION_SECONDS_RANGE", + "FILTER_PARTNER_NAME", + "FILTER_PARTNER_STATUS", + "FILTER_ADVERTISER_NAME", + "FILTER_ADVERTISER_INTEGRATION_CODE", + "FILTER_ADVERTISER_INTEGRATION_STATUS", + "FILTER_CARRIER_NAME", + "FILTER_CHANNEL_NAME", + "FILTER_CITY_NAME", + "FILTER_COMPANION_CREATIVE_NAME", + "FILTER_USER_LIST_FIRST_PARTY_NAME", + "FILTER_USER_LIST_THIRD_PARTY_NAME", + "FILTER_NIELSEN_RESTATEMENT_DATE", + "FILTER_NIELSEN_DATE_RANGE", + "FILTER_INSERTION_ORDER_NAME", + "FILTER_REGION_NAME", + "FILTER_DMA_NAME", + "FILTER_TRUEVIEW_IAR_REGION_NAME", + "FILTER_TRUEVIEW_DMA_NAME", + "FILTER_TRUEVIEW_REGION_NAME", + "FILTER_ACTIVE_VIEW_CUSTOM_METRIC_ID", + "FILTER_ACTIVE_VIEW_CUSTOM_METRIC_NAME", + "FILTER_AD_TYPE", + "FILTER_ALGORITHM", + "FILTER_ALGORITHM_ID", + "FILTER_AMP_PAGE_REQUEST", + "FILTER_ANONYMOUS_INVENTORY_MODELING", + "FILTER_APP_URL", + "FILTER_APP_URL_EXCLUDED", + "FILTER_ATTRIBUTED_USERLIST", + "FILTER_ATTRIBUTED_USERLIST_COST", + "FILTER_ATTRIBUTED_USERLIST_TYPE", + "FILTER_ATTRIBUTION_MODEL", + "FILTER_AUDIENCE_LIST", + "FILTER_AUDIENCE_LIST_COST", + "FILTER_AUDIENCE_LIST_TYPE", + "FILTER_AUDIENCE_NAME", + "FILTER_AUDIENCE_TYPE", + "FILTER_BILLABLE_OUTCOME", + "FILTER_BRAND_LIFT_TYPE", + "FILTER_CHANNEL_TYPE", + "FILTER_CM_PLACEMENT_ID", + "FILTER_CONVERSION_SOURCE", + "FILTER_CONVERSION_SOURCE_ID", + "FILTER_COUNTRY_ID", + "FILTER_CREATIVE", + "FILTER_CREATIVE_ASSET", + "FILTER_CREATIVE_INTEGRATION_CODE", + "FILTER_CREATIVE_RENDERED_IN_AMP", + "FILTER_CREATIVE_SOURCE", + "FILTER_CREATIVE_STATUS", + "FILTER_DATA_PROVIDER_NAME", + "FILTER_DETAILED_DEMOGRAPHICS", + "FILTER_DETAILED_DEMOGRAPHICS_ID", + "FILTER_DEVICE", + "FILTER_GAM_INSERTION_ORDER", + "FILTER_GAM_LINE_ITEM", + "FILTER_GAM_LINE_ITEM_ID", + "FILTER_DIGITAL_CONTENT_LABEL", + "FILTER_DOMAIN", + "FILTER_ELIGIBLE_COOKIES_ON_FIRST_PARTY_AUDIENCE_LIST", + "FILTER_ELIGIBLE_COOKIES_ON_THIRD_PARTY_AUDIENCE_LIST_AND_INTEREST", + "FILTER_EXCHANGE", + "FILTER_EXCHANGE_CODE", + "FILTER_EXTENSION", + "FILTER_EXTENSION_STATUS", + "FILTER_EXTENSION_TYPE", + "FILTER_FIRST_PARTY_AUDIENCE_LIST_COST", + "FILTER_FIRST_PARTY_AUDIENCE_LIST_TYPE", + "FILTER_FLOODLIGHT_ACTIVITY", + "FILTER_FORMAT", + "FILTER_GMAIL_AGE", + "FILTER_GMAIL_CITY", + "FILTER_GMAIL_COUNTRY", + "FILTER_GMAIL_COUNTRY_NAME", + "FILTER_GMAIL_DEVICE_TYPE", + "FILTER_GMAIL_DEVICE_TYPE_NAME", + "FILTER_GMAIL_GENDER", + "FILTER_GMAIL_REGION", + "FILTER_GMAIL_REMARKETING_LIST", + "FILTER_HOUSEHOLD_INCOME", + "FILTER_IMPRESSION_COUNTING_METHOD", + "FILTER_YOUTUBE_PROGRAMMATIC_GUARANTEED_INSERTION_ORDER", + "FILTER_INSERTION_ORDER_INTEGRATION_CODE", + "FILTER_INSERTION_ORDER_STATUS", + "FILTER_INTEREST", + "FILTER_INVENTORY_SOURCE_GROUP", + "FILTER_INVENTORY_SOURCE_GROUP_ID", + "FILTER_INVENTORY_SOURCE_ID", + "FILTER_INVENTORY_SOURCE_NAME", + "FILTER_LIFE_EVENT", + "FILTER_LIFE_EVENTS", + "FILTER_LINE_ITEM_INTEGRATION_CODE", + "FILTER_LINE_ITEM_NAME", + "FILTER_LINE_ITEM_STATUS", + "FILTER_MATCH_RATIO", + "FILTER_MEASUREMENT_SOURCE", + "FILTER_MEDIA_PLAN_NAME", + "FILTER_PARENTAL_STATUS", + "FILTER_PLACEMENT_ALL_YOUTUBE_CHANNELS", + "FILTER_PLATFORM", + "FILTER_PLAYBACK_METHOD", + "FILTER_POSITION_IN_CONTENT", + "FILTER_PUBLISHER_PROPERTY", + "FILTER_PUBLISHER_PROPERTY_ID", + "FILTER_PUBLISHER_PROPERTY_SECTION", + "FILTER_PUBLISHER_PROPERTY_SECTION_ID", + "FILTER_REFUND_REASON", + "FILTER_REMARKETING_LIST", + "FILTER_REWARDED", + "FILTER_SENSITIVE_CATEGORY", + "FILTER_SERVED_PIXEL_DENSITY", + "FILTER_TARGETED_DATA_PROVIDERS", + "FILTER_THIRD_PARTY_AUDIENCE_LIST_COST", + "FILTER_THIRD_PARTY_AUDIENCE_LIST_TYPE", + "FILTER_TRUEVIEW_AD", + "FILTER_TRUEVIEW_AD_GROUP", + "FILTER_TRUEVIEW_DETAILED_DEMOGRAPHICS", + "FILTER_TRUEVIEW_DETAILED_DEMOGRAPHICS_ID", + "FILTER_TRUEVIEW_HOUSEHOLD_INCOME", + "FILTER_TRUEVIEW_IAR_COUNTRY_NAME", + "FILTER_TRUEVIEW_REMARKETING_LIST_NAME", + "FILTER_VARIANT_ID", + "FILTER_VARIANT_NAME", + "FILTER_VARIANT_VERSION", + "FILTER_VERIFICATION_VIDEO_PLAYER_SIZE", + "FILTER_VERIFICATION_VIDEO_POSITION", + "FILTER_VIDEO_COMPANION_CREATIVE_SIZE", + "FILTER_VIDEO_CONTINUOUS_PLAY", + "FILTER_VIDEO_DURATION", + "FILTER_YOUTUBE_ADAPTED_AUDIENCE_LIST", + "FILTER_YOUTUBE_AD_VIDEO", + "FILTER_YOUTUBE_AD_VIDEO_ID", + "FILTER_YOUTUBE_CHANNEL", + "FILTER_YOUTUBE_PROGRAMMATIC_GUARANTEED_ADVERTISER", + "FILTER_YOUTUBE_PROGRAMMATIC_GUARANTEED_PARTNER", + "FILTER_YOUTUBE_VIDEO", + "FILTER_ZIP_POSTAL_CODE", + "FILTER_PLACEMENT_NAME_ALL_YOUTUBE_CHANNELS", + "FILTER_TRUEVIEW_PLACEMENT_ID", + "FILTER_PATH_PATTERN_ID", + "FILTER_PATH_EVENT_INDEX", + "FILTER_EVENT_TYPE", + "FILTER_CHANNEL_GROUPING", + "FILTER_OM_SDK_AVAILABLE", + "FILTER_DATA_SOURCE", + "FILTER_CM360_PLACEMENT_ID", + "FILTER_TRUEVIEW_CLICK_TYPE_NAME", + "FILTER_TRUEVIEW_AD_TYPE_NAME", + "FILTER_VIDEO_CONTENT_DURATION", + "FILTER_MATCHED_GENRE_TARGET", + "FILTER_VIDEO_CONTENT_LIVE_STREAM", + "FILTER_BUDGET_SEGMENT_TYPE", + "FILTER_BUDGET_SEGMENT_BUDGET", + "FILTER_BUDGET_SEGMENT_START_DATE", + "FILTER_BUDGET_SEGMENT_END_DATE", + "FILTER_BUDGET_SEGMENT_PACING_PERCENTAGE", + "FILTER_LINE_ITEM_BUDGET", + "FILTER_LINE_ITEM_START_DATE", + "FILTER_LINE_ITEM_END_DATE", + "FILTER_INSERTION_ORDER_GOAL_TYPE", + "FILTER_LINE_ITEM_PACING_PERCENTAGE", + "FILTER_INSERTION_ORDER_GOAL_VALUE", + "FILTER_OMID_CAPABLE", + "FILTER_VENDOR_MEASUREMENT_MODE", + "FILTER_IMPRESSION_LOSS_REJECTION_REASON", + "FILTER_VERIFICATION_VIDEO_PLAYER_SIZE_START", + "FILTER_VERIFICATION_VIDEO_PLAYER_SIZE_FIRST_QUARTILE", + "FILTER_VERIFICATION_VIDEO_PLAYER_SIZE_MID_POINT", + "FILTER_VERIFICATION_VIDEO_PLAYER_SIZE_THIRD_QUARTILE", + "FILTER_VERIFICATION_VIDEO_PLAYER_SIZE_COMPLETE", + "FILTER_VERIFICATION_VIDEO_RESIZED", + "FILTER_VERIFICATION_AUDIBILITY_START", + "FILTER_VERIFICATION_AUDIBILITY_COMPLETE", + "FILTER_MEDIA_TYPE", + "FILTER_AUDIO_FEED_TYPE_NAME", + "FILTER_TRUEVIEW_TARGETING_EXPANSION", + "FILTER_PUBLISHER_TRAFFIC_SOURCE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "value": { + "description": "Filter value.", + "type": "string" + } + }, + "type": "object" + }, + "ListQueriesResponse": { + "description": "List queries response.", + "id": "ListQueriesResponse", + "properties": { + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"doubleclickbidmanager#listQueriesResponse\".", + "type": "string" + }, + "nextPageToken": { + "description": "Next page's pagination token if one exists.", + "type": "string" + }, + "queries": { + "description": "Retrieved queries.", + "items": { + "$ref": "Query" + }, + "type": "array" + } + }, + "type": "object" + }, + "ListReportsResponse": { + "description": "List reports response.", + "id": "ListReportsResponse", + "properties": { + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"doubleclickbidmanager#listReportsResponse\".", + "type": "string" + }, + "nextPageToken": { + "description": "Next page's pagination token if one exists.", + "type": "string" + }, + "reports": { + "description": "Retrieved reports.", + "items": { + "$ref": "Report" + }, + "type": "array" + } + }, + "type": "object" + }, + "Options": { + "description": "Additional query options.", + "id": "Options", + "properties": { + "includeOnlyTargetedUserLists": { + "description": "Set to true and filter your report by `FILTER_INSERTION_ORDER` or `FILTER_LINE_ITEM` to include data for audience lists specifically targeted by those items.", + "type": "boolean" + }, + "pathQueryOptions": { + "$ref": "PathQueryOptions", + "description": "Options that contain Path Filters and Custom Channel Groupings." + } + }, + "type": "object" + }, + "Parameters": { + "description": "Parameters of a query or report.", + "id": "Parameters", + "properties": { + "filters": { + "description": "Filters used to match traffic data in your report.", + "items": { + "$ref": "FilterPair" + }, + "type": "array" + }, + "groupBys": { + "description": "Data is grouped by the filters listed in this field.", + "items": { + "enum": [ + "FILTER_UNKNOWN", + "FILTER_DATE", + "FILTER_DAY_OF_WEEK", + "FILTER_WEEK", + "FILTER_MONTH", + "FILTER_YEAR", + "FILTER_TIME_OF_DAY", + "FILTER_CONVERSION_DELAY", + "FILTER_CREATIVE_ID", + "FILTER_CREATIVE_SIZE", + "FILTER_CREATIVE_TYPE", + "FILTER_EXCHANGE_ID", + "FILTER_AD_POSITION", + "FILTER_PUBLIC_INVENTORY", + "FILTER_INVENTORY_SOURCE", + "FILTER_CITY", + "FILTER_REGION", + "FILTER_DMA", + "FILTER_COUNTRY", + "FILTER_SITE_ID", + "FILTER_CHANNEL_ID", + "FILTER_PARTNER", + "FILTER_ADVERTISER", + "FILTER_INSERTION_ORDER", + "FILTER_LINE_ITEM", + "FILTER_PARTNER_CURRENCY", + "FILTER_ADVERTISER_CURRENCY", + "FILTER_ADVERTISER_TIMEZONE", + "FILTER_LINE_ITEM_TYPE", + "FILTER_USER_LIST", + "FILTER_USER_LIST_FIRST_PARTY", + "FILTER_USER_LIST_THIRD_PARTY", + "FILTER_TARGETED_USER_LIST", + "FILTER_DATA_PROVIDER", + "FILTER_ORDER_ID", + "FILTER_VIDEO_PLAYER_SIZE", + "FILTER_VIDEO_DURATION_SECONDS", + "FILTER_KEYWORD", + "FILTER_PAGE_CATEGORY", + "FILTER_CAMPAIGN_DAILY_FREQUENCY", + "FILTER_LINE_ITEM_DAILY_FREQUENCY", + "FILTER_LINE_ITEM_LIFETIME_FREQUENCY", + "FILTER_OS", + "FILTER_BROWSER", + "FILTER_CARRIER", + "FILTER_SITE_LANGUAGE", + "FILTER_INVENTORY_FORMAT", + "FILTER_ZIP_CODE", + "FILTER_VIDEO_RATING_TIER", + "FILTER_VIDEO_FORMAT_SUPPORT", + "FILTER_VIDEO_SKIPPABLE_SUPPORT", + "FILTER_VIDEO_CREATIVE_DURATION", + "FILTER_PAGE_LAYOUT", + "FILTER_VIDEO_AD_POSITION_IN_STREAM", + "FILTER_AGE", + "FILTER_GENDER", + "FILTER_QUARTER", + "FILTER_TRUEVIEW_CONVERSION_TYPE", + "FILTER_MOBILE_GEO", + "FILTER_MRAID_SUPPORT", + "FILTER_ACTIVE_VIEW_EXPECTED_VIEWABILITY", + "FILTER_VIDEO_CREATIVE_DURATION_SKIPPABLE", + "FILTER_NIELSEN_COUNTRY_CODE", + "FILTER_NIELSEN_DEVICE_ID", + "FILTER_NIELSEN_GENDER", + "FILTER_NIELSEN_AGE", + "FILTER_INVENTORY_SOURCE_TYPE", + "FILTER_CREATIVE_WIDTH", + "FILTER_CREATIVE_HEIGHT", + "FILTER_DFP_ORDER_ID", + "FILTER_TRUEVIEW_AGE", + "FILTER_TRUEVIEW_GENDER", + "FILTER_TRUEVIEW_PARENTAL_STATUS", + "FILTER_TRUEVIEW_REMARKETING_LIST", + "FILTER_TRUEVIEW_INTEREST", + "FILTER_TRUEVIEW_AD_GROUP_ID", + "FILTER_TRUEVIEW_AD_GROUP_AD_ID", + "FILTER_TRUEVIEW_IAR_LANGUAGE", + "FILTER_TRUEVIEW_IAR_GENDER", + "FILTER_TRUEVIEW_IAR_AGE", + "FILTER_TRUEVIEW_IAR_CATEGORY", + "FILTER_TRUEVIEW_IAR_COUNTRY", + "FILTER_TRUEVIEW_IAR_CITY", + "FILTER_TRUEVIEW_IAR_REGION", + "FILTER_TRUEVIEW_IAR_ZIPCODE", + "FILTER_TRUEVIEW_IAR_REMARKETING_LIST", + "FILTER_TRUEVIEW_IAR_INTEREST", + "FILTER_TRUEVIEW_IAR_PARENTAL_STATUS", + "FILTER_TRUEVIEW_IAR_TIME_OF_DAY", + "FILTER_TRUEVIEW_CUSTOM_AFFINITY", + "FILTER_TRUEVIEW_CATEGORY", + "FILTER_TRUEVIEW_KEYWORD", + "FILTER_TRUEVIEW_PLACEMENT", + "FILTER_TRUEVIEW_URL", + "FILTER_TRUEVIEW_COUNTRY", + "FILTER_TRUEVIEW_REGION", + "FILTER_TRUEVIEW_CITY", + "FILTER_TRUEVIEW_DMA", + "FILTER_TRUEVIEW_ZIPCODE", + "FILTER_NOT_SUPPORTED", + "FILTER_MEDIA_PLAN", + "FILTER_TRUEVIEW_IAR_YOUTUBE_CHANNEL", + "FILTER_TRUEVIEW_IAR_YOUTUBE_VIDEO", + "FILTER_SKIPPABLE_SUPPORT", + "FILTER_COMPANION_CREATIVE_ID", + "FILTER_BUDGET_SEGMENT_DESCRIPTION", + "FILTER_FLOODLIGHT_ACTIVITY_ID", + "FILTER_DEVICE_MODEL", + "FILTER_DEVICE_MAKE", + "FILTER_DEVICE_TYPE", + "FILTER_CREATIVE_ATTRIBUTE", + "FILTER_INVENTORY_COMMITMENT_TYPE", + "FILTER_INVENTORY_RATE_TYPE", + "FILTER_INVENTORY_DELIVERY_METHOD", + "FILTER_INVENTORY_SOURCE_EXTERNAL_ID", + "FILTER_AUTHORIZED_SELLER_STATE", + "FILTER_VIDEO_DURATION_SECONDS_RANGE", + "FILTER_PARTNER_NAME", + "FILTER_PARTNER_STATUS", + "FILTER_ADVERTISER_NAME", + "FILTER_ADVERTISER_INTEGRATION_CODE", + "FILTER_ADVERTISER_INTEGRATION_STATUS", + "FILTER_CARRIER_NAME", + "FILTER_CHANNEL_NAME", + "FILTER_CITY_NAME", + "FILTER_COMPANION_CREATIVE_NAME", + "FILTER_USER_LIST_FIRST_PARTY_NAME", + "FILTER_USER_LIST_THIRD_PARTY_NAME", + "FILTER_NIELSEN_RESTATEMENT_DATE", + "FILTER_NIELSEN_DATE_RANGE", + "FILTER_INSERTION_ORDER_NAME", + "FILTER_REGION_NAME", + "FILTER_DMA_NAME", + "FILTER_TRUEVIEW_IAR_REGION_NAME", + "FILTER_TRUEVIEW_DMA_NAME", + "FILTER_TRUEVIEW_REGION_NAME", + "FILTER_ACTIVE_VIEW_CUSTOM_METRIC_ID", + "FILTER_ACTIVE_VIEW_CUSTOM_METRIC_NAME", + "FILTER_AD_TYPE", + "FILTER_ALGORITHM", + "FILTER_ALGORITHM_ID", + "FILTER_AMP_PAGE_REQUEST", + "FILTER_ANONYMOUS_INVENTORY_MODELING", + "FILTER_APP_URL", + "FILTER_APP_URL_EXCLUDED", + "FILTER_ATTRIBUTED_USERLIST", + "FILTER_ATTRIBUTED_USERLIST_COST", + "FILTER_ATTRIBUTED_USERLIST_TYPE", + "FILTER_ATTRIBUTION_MODEL", + "FILTER_AUDIENCE_LIST", + "FILTER_AUDIENCE_LIST_COST", + "FILTER_AUDIENCE_LIST_TYPE", + "FILTER_AUDIENCE_NAME", + "FILTER_AUDIENCE_TYPE", + "FILTER_BILLABLE_OUTCOME", + "FILTER_BRAND_LIFT_TYPE", + "FILTER_CHANNEL_TYPE", + "FILTER_CM_PLACEMENT_ID", + "FILTER_CONVERSION_SOURCE", + "FILTER_CONVERSION_SOURCE_ID", + "FILTER_COUNTRY_ID", + "FILTER_CREATIVE", + "FILTER_CREATIVE_ASSET", + "FILTER_CREATIVE_INTEGRATION_CODE", + "FILTER_CREATIVE_RENDERED_IN_AMP", + "FILTER_CREATIVE_SOURCE", + "FILTER_CREATIVE_STATUS", + "FILTER_DATA_PROVIDER_NAME", + "FILTER_DETAILED_DEMOGRAPHICS", + "FILTER_DETAILED_DEMOGRAPHICS_ID", + "FILTER_DEVICE", + "FILTER_GAM_INSERTION_ORDER", + "FILTER_GAM_LINE_ITEM", + "FILTER_GAM_LINE_ITEM_ID", + "FILTER_DIGITAL_CONTENT_LABEL", + "FILTER_DOMAIN", + "FILTER_ELIGIBLE_COOKIES_ON_FIRST_PARTY_AUDIENCE_LIST", + "FILTER_ELIGIBLE_COOKIES_ON_THIRD_PARTY_AUDIENCE_LIST_AND_INTEREST", + "FILTER_EXCHANGE", + "FILTER_EXCHANGE_CODE", + "FILTER_EXTENSION", + "FILTER_EXTENSION_STATUS", + "FILTER_EXTENSION_TYPE", + "FILTER_FIRST_PARTY_AUDIENCE_LIST_COST", + "FILTER_FIRST_PARTY_AUDIENCE_LIST_TYPE", + "FILTER_FLOODLIGHT_ACTIVITY", + "FILTER_FORMAT", + "FILTER_GMAIL_AGE", + "FILTER_GMAIL_CITY", + "FILTER_GMAIL_COUNTRY", + "FILTER_GMAIL_COUNTRY_NAME", + "FILTER_GMAIL_DEVICE_TYPE", + "FILTER_GMAIL_DEVICE_TYPE_NAME", + "FILTER_GMAIL_GENDER", + "FILTER_GMAIL_REGION", + "FILTER_GMAIL_REMARKETING_LIST", + "FILTER_HOUSEHOLD_INCOME", + "FILTER_IMPRESSION_COUNTING_METHOD", + "FILTER_YOUTUBE_PROGRAMMATIC_GUARANTEED_INSERTION_ORDER", + "FILTER_INSERTION_ORDER_INTEGRATION_CODE", + "FILTER_INSERTION_ORDER_STATUS", + "FILTER_INTEREST", + "FILTER_INVENTORY_SOURCE_GROUP", + "FILTER_INVENTORY_SOURCE_GROUP_ID", + "FILTER_INVENTORY_SOURCE_ID", + "FILTER_INVENTORY_SOURCE_NAME", + "FILTER_LIFE_EVENT", + "FILTER_LIFE_EVENTS", + "FILTER_LINE_ITEM_INTEGRATION_CODE", + "FILTER_LINE_ITEM_NAME", + "FILTER_LINE_ITEM_STATUS", + "FILTER_MATCH_RATIO", + "FILTER_MEASUREMENT_SOURCE", + "FILTER_MEDIA_PLAN_NAME", + "FILTER_PARENTAL_STATUS", + "FILTER_PLACEMENT_ALL_YOUTUBE_CHANNELS", + "FILTER_PLATFORM", + "FILTER_PLAYBACK_METHOD", + "FILTER_POSITION_IN_CONTENT", + "FILTER_PUBLISHER_PROPERTY", + "FILTER_PUBLISHER_PROPERTY_ID", + "FILTER_PUBLISHER_PROPERTY_SECTION", + "FILTER_PUBLISHER_PROPERTY_SECTION_ID", + "FILTER_REFUND_REASON", + "FILTER_REMARKETING_LIST", + "FILTER_REWARDED", + "FILTER_SENSITIVE_CATEGORY", + "FILTER_SERVED_PIXEL_DENSITY", + "FILTER_TARGETED_DATA_PROVIDERS", + "FILTER_THIRD_PARTY_AUDIENCE_LIST_COST", + "FILTER_THIRD_PARTY_AUDIENCE_LIST_TYPE", + "FILTER_TRUEVIEW_AD", + "FILTER_TRUEVIEW_AD_GROUP", + "FILTER_TRUEVIEW_DETAILED_DEMOGRAPHICS", + "FILTER_TRUEVIEW_DETAILED_DEMOGRAPHICS_ID", + "FILTER_TRUEVIEW_HOUSEHOLD_INCOME", + "FILTER_TRUEVIEW_IAR_COUNTRY_NAME", + "FILTER_TRUEVIEW_REMARKETING_LIST_NAME", + "FILTER_VARIANT_ID", + "FILTER_VARIANT_NAME", + "FILTER_VARIANT_VERSION", + "FILTER_VERIFICATION_VIDEO_PLAYER_SIZE", + "FILTER_VERIFICATION_VIDEO_POSITION", + "FILTER_VIDEO_COMPANION_CREATIVE_SIZE", + "FILTER_VIDEO_CONTINUOUS_PLAY", + "FILTER_VIDEO_DURATION", + "FILTER_YOUTUBE_ADAPTED_AUDIENCE_LIST", + "FILTER_YOUTUBE_AD_VIDEO", + "FILTER_YOUTUBE_AD_VIDEO_ID", + "FILTER_YOUTUBE_CHANNEL", + "FILTER_YOUTUBE_PROGRAMMATIC_GUARANTEED_ADVERTISER", + "FILTER_YOUTUBE_PROGRAMMATIC_GUARANTEED_PARTNER", + "FILTER_YOUTUBE_VIDEO", + "FILTER_ZIP_POSTAL_CODE", + "FILTER_PLACEMENT_NAME_ALL_YOUTUBE_CHANNELS", + "FILTER_TRUEVIEW_PLACEMENT_ID", + "FILTER_PATH_PATTERN_ID", + "FILTER_PATH_EVENT_INDEX", + "FILTER_EVENT_TYPE", + "FILTER_CHANNEL_GROUPING", + "FILTER_OM_SDK_AVAILABLE", + "FILTER_DATA_SOURCE", + "FILTER_CM360_PLACEMENT_ID", + "FILTER_TRUEVIEW_CLICK_TYPE_NAME", + "FILTER_TRUEVIEW_AD_TYPE_NAME", + "FILTER_VIDEO_CONTENT_DURATION", + "FILTER_MATCHED_GENRE_TARGET", + "FILTER_VIDEO_CONTENT_LIVE_STREAM", + "FILTER_BUDGET_SEGMENT_TYPE", + "FILTER_BUDGET_SEGMENT_BUDGET", + "FILTER_BUDGET_SEGMENT_START_DATE", + "FILTER_BUDGET_SEGMENT_END_DATE", + "FILTER_BUDGET_SEGMENT_PACING_PERCENTAGE", + "FILTER_LINE_ITEM_BUDGET", + "FILTER_LINE_ITEM_START_DATE", + "FILTER_LINE_ITEM_END_DATE", + "FILTER_INSERTION_ORDER_GOAL_TYPE", + "FILTER_LINE_ITEM_PACING_PERCENTAGE", + "FILTER_INSERTION_ORDER_GOAL_VALUE", + "FILTER_OMID_CAPABLE", + "FILTER_VENDOR_MEASUREMENT_MODE", + "FILTER_IMPRESSION_LOSS_REJECTION_REASON", + "FILTER_VERIFICATION_VIDEO_PLAYER_SIZE_START", + "FILTER_VERIFICATION_VIDEO_PLAYER_SIZE_FIRST_QUARTILE", + "FILTER_VERIFICATION_VIDEO_PLAYER_SIZE_MID_POINT", + "FILTER_VERIFICATION_VIDEO_PLAYER_SIZE_THIRD_QUARTILE", + "FILTER_VERIFICATION_VIDEO_PLAYER_SIZE_COMPLETE", + "FILTER_VERIFICATION_VIDEO_RESIZED", + "FILTER_VERIFICATION_AUDIBILITY_START", + "FILTER_VERIFICATION_AUDIBILITY_COMPLETE", + "FILTER_MEDIA_TYPE", + "FILTER_AUDIO_FEED_TYPE_NAME", + "FILTER_TRUEVIEW_TARGETING_EXPANSION", + "FILTER_PUBLISHER_TRAFFIC_SOURCE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "type": "array" + }, + "includeInviteData": { + "description": "Deprecated. This field is no longer in use.", + "type": "boolean" + }, + "metrics": { + "description": "Metrics to include as columns in your report.", + "items": { + "enum": [ + "METRIC_UNKNOWN", + "METRIC_IMPRESSIONS", + "METRIC_CLICKS", + "METRIC_LAST_IMPRESSIONS", + "METRIC_LAST_CLICKS", + "METRIC_TOTAL_CONVERSIONS", + "METRIC_MEDIA_COST_ADVERTISER", + "METRIC_MEDIA_COST_USD", + "METRIC_MEDIA_COST_PARTNER", + "METRIC_DATA_COST_ADVERTISER", + "METRIC_DATA_COST_USD", + "METRIC_DATA_COST_PARTNER", + "METRIC_CPM_FEE1_ADVERTISER", + "METRIC_CPM_FEE1_USD", + "METRIC_CPM_FEE1_PARTNER", + "METRIC_CPM_FEE2_ADVERTISER", + "METRIC_CPM_FEE2_USD", + "METRIC_CPM_FEE2_PARTNER", + "METRIC_MEDIA_FEE1_ADVERTISER", + "METRIC_MEDIA_FEE1_USD", + "METRIC_MEDIA_FEE1_PARTNER", + "METRIC_MEDIA_FEE2_ADVERTISER", + "METRIC_MEDIA_FEE2_USD", + "METRIC_MEDIA_FEE2_PARTNER", + "METRIC_REVENUE_ADVERTISER", + "METRIC_REVENUE_USD", + "METRIC_REVENUE_PARTNER", + "METRIC_PROFIT_ADVERTISER", + "METRIC_PROFIT_USD", + "METRIC_PROFIT_PARTNER", + "METRIC_PROFIT_MARGIN", + "METRIC_TOTAL_MEDIA_COST_USD", + "METRIC_TOTAL_MEDIA_COST_PARTNER", + "METRIC_TOTAL_MEDIA_COST_ADVERTISER", + "METRIC_BILLABLE_COST_USD", + "METRIC_BILLABLE_COST_PARTNER", + "METRIC_BILLABLE_COST_ADVERTISER", + "METRIC_PLATFORM_FEE_USD", + "METRIC_PLATFORM_FEE_PARTNER", + "METRIC_PLATFORM_FEE_ADVERTISER", + "METRIC_VIDEO_COMPLETION_RATE", + "METRIC_PROFIT_ECPM_ADVERTISER", + "METRIC_PROFIT_ECPM_USD", + "METRIC_PROFIT_ECPM_PARTNER", + "METRIC_REVENUE_ECPM_ADVERTISER", + "METRIC_REVENUE_ECPM_USD", + "METRIC_REVENUE_ECPM_PARTNER", + "METRIC_REVENUE_ECPC_ADVERTISER", + "METRIC_REVENUE_ECPC_USD", + "METRIC_REVENUE_ECPC_PARTNER", + "METRIC_REVENUE_ECPA_ADVERTISER", + "METRIC_REVENUE_ECPA_USD", + "METRIC_REVENUE_ECPA_PARTNER", + "METRIC_REVENUE_ECPAPV_ADVERTISER", + "METRIC_REVENUE_ECPAPV_USD", + "METRIC_REVENUE_ECPAPV_PARTNER", + "METRIC_REVENUE_ECPAPC_ADVERTISER", + "METRIC_REVENUE_ECPAPC_USD", + "METRIC_REVENUE_ECPAPC_PARTNER", + "METRIC_MEDIA_COST_ECPM_ADVERTISER", + "METRIC_MEDIA_COST_ECPM_USD", + "METRIC_MEDIA_COST_ECPM_PARTNER", + "METRIC_MEDIA_COST_ECPC_ADVERTISER", + "METRIC_MEDIA_COST_ECPC_USD", + "METRIC_MEDIA_COST_ECPC_PARTNER", + "METRIC_MEDIA_COST_ECPA_ADVERTISER", + "METRIC_MEDIA_COST_ECPA_USD", + "METRIC_MEDIA_COST_ECPA_PARTNER", + "METRIC_MEDIA_COST_ECPAPV_ADVERTISER", + "METRIC_MEDIA_COST_ECPAPV_USD", + "METRIC_MEDIA_COST_ECPAPV_PARTNER", + "METRIC_MEDIA_COST_ECPAPC_ADVERTISER", + "METRIC_MEDIA_COST_ECPAPC_USD", + "METRIC_MEDIA_COST_ECPAPC_PARTNER", + "METRIC_TOTAL_MEDIA_COST_ECPM_ADVERTISER", + "METRIC_TOTAL_MEDIA_COST_ECPM_USD", + "METRIC_TOTAL_MEDIA_COST_ECPM_PARTNER", + "METRIC_TOTAL_MEDIA_COST_ECPC_ADVERTISER", + "METRIC_TOTAL_MEDIA_COST_ECPC_USD", + "METRIC_TOTAL_MEDIA_COST_ECPC_PARTNER", + "METRIC_TOTAL_MEDIA_COST_ECPA_ADVERTISER", + "METRIC_TOTAL_MEDIA_COST_ECPA_USD", + "METRIC_TOTAL_MEDIA_COST_ECPA_PARTNER", + "METRIC_TOTAL_MEDIA_COST_ECPAPV_ADVERTISER", + "METRIC_TOTAL_MEDIA_COST_ECPAPV_USD", + "METRIC_TOTAL_MEDIA_COST_ECPAPV_PARTNER", + "METRIC_TOTAL_MEDIA_COST_ECPAPC_ADVERTISER", + "METRIC_TOTAL_MEDIA_COST_ECPAPC_USD", + "METRIC_TOTAL_MEDIA_COST_ECPAPC_PARTNER", + "METRIC_RICH_MEDIA_VIDEO_PLAYS", + "METRIC_RICH_MEDIA_VIDEO_COMPLETIONS", + "METRIC_RICH_MEDIA_VIDEO_PAUSES", + "METRIC_RICH_MEDIA_VIDEO_MUTES", + "METRIC_RICH_MEDIA_VIDEO_MIDPOINTS", + "METRIC_RICH_MEDIA_VIDEO_FULL_SCREENS", + "METRIC_RICH_MEDIA_VIDEO_FIRST_QUARTILE_COMPLETES", + "METRIC_RICH_MEDIA_VIDEO_THIRD_QUARTILE_COMPLETES", + "METRIC_CLICK_TO_POST_CLICK_CONVERSION_RATE", + "METRIC_IMPRESSIONS_TO_CONVERSION_RATE", + "METRIC_CONVERSIONS_PER_MILLE", + "METRIC_CTR", + "METRIC_BID_REQUESTS", + "METRIC_UNIQUE_VISITORS_COOKIES", + "METRIC_REVENUE_ECPCV_ADVERTISER", + "METRIC_REVENUE_ECPCV_USD", + "METRIC_REVENUE_ECPCV_PARTNER", + "METRIC_MEDIA_COST_ECPCV_ADVERTISER", + "METRIC_MEDIA_COST_ECPCV_USD", + "METRIC_MEDIA_COST_ECPCV_PARTNER", + "METRIC_TOTAL_MEDIA_COST_ECPCV_ADVERTISER", + "METRIC_TOTAL_MEDIA_COST_ECPCV_USD", + "METRIC_TOTAL_MEDIA_COST_ECPCV_PARTNER", + "METRIC_RICH_MEDIA_VIDEO_SKIPS", + "METRIC_FEE2_ADVERTISER", + "METRIC_FEE2_USD", + "METRIC_FEE2_PARTNER", + "METRIC_FEE3_ADVERTISER", + "METRIC_FEE3_USD", + "METRIC_FEE3_PARTNER", + "METRIC_FEE4_ADVERTISER", + "METRIC_FEE4_USD", + "METRIC_FEE4_PARTNER", + "METRIC_FEE5_ADVERTISER", + "METRIC_FEE5_USD", + "METRIC_FEE5_PARTNER", + "METRIC_FEE6_ADVERTISER", + "METRIC_FEE6_USD", + "METRIC_FEE6_PARTNER", + "METRIC_FEE7_ADVERTISER", + "METRIC_FEE7_USD", + "METRIC_FEE7_PARTNER", + "METRIC_FEE8_ADVERTISER", + "METRIC_FEE8_USD", + "METRIC_FEE8_PARTNER", + "METRIC_FEE9_ADVERTISER", + "METRIC_FEE9_USD", + "METRIC_FEE9_PARTNER", + "METRIC_FEE10_ADVERTISER", + "METRIC_FEE10_USD", + "METRIC_FEE10_PARTNER", + "METRIC_FEE11_ADVERTISER", + "METRIC_FEE11_USD", + "METRIC_FEE11_PARTNER", + "METRIC_FEE12_ADVERTISER", + "METRIC_FEE12_USD", + "METRIC_FEE12_PARTNER", + "METRIC_FEE13_ADVERTISER", + "METRIC_FEE13_USD", + "METRIC_FEE13_PARTNER", + "METRIC_FEE14_ADVERTISER", + "METRIC_FEE14_USD", + "METRIC_FEE14_PARTNER", + "METRIC_FEE15_ADVERTISER", + "METRIC_FEE15_USD", + "METRIC_FEE15_PARTNER", + "METRIC_CPM_FEE3_ADVERTISER", + "METRIC_CPM_FEE3_USD", + "METRIC_CPM_FEE3_PARTNER", + "METRIC_CPM_FEE4_ADVERTISER", + "METRIC_CPM_FEE4_USD", + "METRIC_CPM_FEE4_PARTNER", + "METRIC_CPM_FEE5_ADVERTISER", + "METRIC_CPM_FEE5_USD", + "METRIC_CPM_FEE5_PARTNER", + "METRIC_MEDIA_FEE3_ADVERTISER", + "METRIC_MEDIA_FEE3_USD", + "METRIC_MEDIA_FEE3_PARTNER", + "METRIC_MEDIA_FEE4_ADVERTISER", + "METRIC_MEDIA_FEE4_USD", + "METRIC_MEDIA_FEE4_PARTNER", + "METRIC_MEDIA_FEE5_ADVERTISER", + "METRIC_MEDIA_FEE5_USD", + "METRIC_MEDIA_FEE5_PARTNER", + "METRIC_VIDEO_COMPANION_IMPRESSIONS", + "METRIC_VIDEO_COMPANION_CLICKS", + "METRIC_FEE16_ADVERTISER", + "METRIC_FEE16_USD", + "METRIC_FEE16_PARTNER", + "METRIC_FEE17_ADVERTISER", + "METRIC_FEE17_USD", + "METRIC_FEE17_PARTNER", + "METRIC_FEE18_ADVERTISER", + "METRIC_FEE18_USD", + "METRIC_FEE18_PARTNER", + "METRIC_TRUEVIEW_VIEWS", + "METRIC_TRUEVIEW_UNIQUE_VIEWERS", + "METRIC_TRUEVIEW_EARNED_VIEWS", + "METRIC_TRUEVIEW_EARNED_SUBSCRIBERS", + "METRIC_TRUEVIEW_EARNED_PLAYLIST_ADDITIONS", + "METRIC_TRUEVIEW_EARNED_LIKES", + "METRIC_TRUEVIEW_EARNED_SHARES", + "METRIC_TRUEVIEW_IMPRESSION_SHARE", + "METRIC_TRUEVIEW_LOST_IS_BUDGET", + "METRIC_TRUEVIEW_LOST_IS_RANK", + "METRIC_TRUEVIEW_VIEW_THROUGH_CONVERSION", + "METRIC_TRUEVIEW_CONVERSION_MANY_PER_VIEW", + "METRIC_TRUEVIEW_VIEW_RATE", + "METRIC_TRUEVIEW_CONVERSION_RATE_ONE_PER_VIEW", + "METRIC_TRUEVIEW_CPV_ADVERTISER", + "METRIC_TRUEVIEW_CPV_USD", + "METRIC_TRUEVIEW_CPV_PARTNER", + "METRIC_FEE19_ADVERTISER", + "METRIC_FEE19_USD", + "METRIC_FEE19_PARTNER", + "METRIC_TEA_TRUEVIEW_IMPRESSIONS", + "METRIC_TEA_TRUEVIEW_UNIQUE_COOKIES", + "METRIC_FEE20_ADVERTISER", + "METRIC_FEE20_USD", + "METRIC_FEE20_PARTNER", + "METRIC_FEE21_ADVERTISER", + "METRIC_FEE21_USD", + "METRIC_FEE21_PARTNER", + "METRIC_FEE22_ADVERTISER", + "METRIC_FEE22_USD", + "METRIC_FEE22_PARTNER", + "METRIC_TRUEVIEW_TOTAL_CONVERSION_VALUES_ADVERTISER", + "METRIC_TRUEVIEW_TOTAL_CONVERSION_VALUES_USD", + "METRIC_TRUEVIEW_TOTAL_CONVERSION_VALUES_PARTNER", + "METRIC_TRUEVIEW_CONVERSION_COST_MANY_PER_VIEW_ADVERTISER", + "METRIC_TRUEVIEW_CONVERSION_COST_MANY_PER_VIEW_USD", + "METRIC_TRUEVIEW_CONVERSION_COST_MANY_PER_VIEW_PARTNER", + "METRIC_PROFIT_VIEWABLE_ECPM_ADVERTISER", + "METRIC_PROFIT_VIEWABLE_ECPM_USD", + "METRIC_PROFIT_VIEWABLE_ECPM_PARTNER", + "METRIC_REVENUE_VIEWABLE_ECPM_ADVERTISER", + "METRIC_REVENUE_VIEWABLE_ECPM_USD", + "METRIC_REVENUE_VIEWABLE_ECPM_PARTNER", + "METRIC_MEDIA_COST_VIEWABLE_ECPM_ADVERTISER", + "METRIC_MEDIA_COST_VIEWABLE_ECPM_USD", + "METRIC_MEDIA_COST_VIEWABLE_ECPM_PARTNER", + "METRIC_TOTAL_MEDIA_COST_VIEWABLE_ECPM_ADVERTISER", + "METRIC_TOTAL_MEDIA_COST_VIEWABLE_ECPM_USD", + "METRIC_TOTAL_MEDIA_COST_VIEWABLE_ECPM_PARTNER", + "METRIC_TRUEVIEW_ENGAGEMENTS", + "METRIC_TRUEVIEW_ENGAGEMENT_RATE", + "METRIC_TRUEVIEW_AVERAGE_CPE_ADVERTISER", + "METRIC_TRUEVIEW_AVERAGE_CPE_USD", + "METRIC_TRUEVIEW_AVERAGE_CPE_PARTNER", + "METRIC_ACTIVE_VIEW_VIEWABLE_IMPRESSIONS", + "METRIC_ACTIVE_VIEW_ELIGIBLE_IMPRESSIONS", + "METRIC_ACTIVE_VIEW_MEASURABLE_IMPRESSIONS", + "METRIC_ACTIVE_VIEW_PCT_MEASURABLE_IMPRESSIONS", + "METRIC_ACTIVE_VIEW_PCT_VIEWABLE_IMPRESSIONS", + "METRIC_ACTIVE_VIEW_AVERAGE_VIEWABLE_TIME", + "METRIC_ACTIVE_VIEW_UNMEASURABLE_IMPRESSIONS", + "METRIC_ACTIVE_VIEW_UNVIEWABLE_IMPRESSIONS", + "METRIC_ACTIVE_VIEW_DISTRIBUTION_UNMEASURABLE", + "METRIC_ACTIVE_VIEW_DISTRIBUTION_UNVIEWABLE", + "METRIC_ACTIVE_VIEW_DISTRIBUTION_VIEWABLE", + "METRIC_ACTIVE_VIEW_PERCENT_VIEWABLE_FOR_TIME_THRESHOLD", + "METRIC_ACTIVE_VIEW_VIEWABLE_FOR_TIME_THRESHOLD", + "METRIC_ACTIVE_VIEW_PERCENT_VISIBLE_AT_START", + "METRIC_ACTIVE_VIEW_PERCENT_VISIBLE_FIRST_QUAR", + "METRIC_ACTIVE_VIEW_PERCENT_VISIBLE_SECOND_QUAR", + "METRIC_ACTIVE_VIEW_PERCENT_VISIBLE_THIRD_QUAR", + "METRIC_ACTIVE_VIEW_PERCENT_VISIBLE_ON_COMPLETE", + "METRIC_ACTIVE_VIEW_PERCENT_AUDIBLE_VISIBLE_AT_START", + "METRIC_ACTIVE_VIEW_PERCENT_AUDIBLE_VISIBLE_FIRST_QUAR", + "METRIC_ACTIVE_VIEW_PERCENT_AUDIBLE_VISIBLE_SECOND_QUAR", + "METRIC_ACTIVE_VIEW_PERCENT_AUDIBLE_VISIBLE_THIRD_QUAR", + "METRIC_ACTIVE_VIEW_PERCENT_AUDIBLE_VISIBLE_ON_COMPLETE", + "METRIC_ACTIVE_VIEW_AUDIBLE_VISIBLE_ON_COMPLETE_IMPRESSIONS", + "METRIC_VIEWABLE_BID_REQUESTS", + "METRIC_COOKIE_REACH_IMPRESSION_REACH", + "METRIC_COOKIE_REACH_AVERAGE_IMPRESSION_FREQUENCY", + "METRIC_DBM_ENGAGEMENT_RATE", + "METRIC_RICH_MEDIA_SCROLLS", + "METRIC_CM_POST_VIEW_REVENUE", + "METRIC_CM_POST_CLICK_REVENUE", + "METRIC_FLOODLIGHT_IMPRESSIONS", + "METRIC_BILLABLE_IMPRESSIONS", + "METRIC_NIELSEN_AVERAGE_FREQUENCY", + "METRIC_NIELSEN_IMPRESSIONS", + "METRIC_NIELSEN_UNIQUE_AUDIENCE", + "METRIC_NIELSEN_GRP", + "METRIC_NIELSEN_IMPRESSION_INDEX", + "METRIC_NIELSEN_IMPRESSIONS_SHARE", + "METRIC_NIELSEN_POPULATION", + "METRIC_NIELSEN_POPULATION_REACH", + "METRIC_NIELSEN_POPULATION_SHARE", + "METRIC_NIELSEN_REACH_INDEX", + "METRIC_NIELSEN_REACH_SHARE", + "METRIC_ACTIVE_VIEW_AUDIBLE_FULLY_ON_SCREEN_HALF_OF_DURATION_IMPRESSIONS", + "METRIC_ACTIVE_VIEW_AUDIBLE_FULLY_ON_SCREEN_HALF_OF_DURATION_MEASURABLE_IMPRESSIONS", + "METRIC_ACTIVE_VIEW_AUDIBLE_FULLY_ON_SCREEN_HALF_OF_DURATION_RATE", + "METRIC_ACTIVE_VIEW_AUDIBLE_FULLY_ON_SCREEN_HALF_OF_DURATION_TRUEVIEW_IMPRESSIONS", + "METRIC_ACTIVE_VIEW_AUDIBLE_FULLY_ON_SCREEN_HALF_OF_DURATION_TRUEVIEW_MEASURABLE_IMPRESSIONS", + "METRIC_ACTIVE_VIEW_AUDIBLE_FULLY_ON_SCREEN_HALF_OF_DURATION_TRUEVIEW_RATE", + "METRIC_ACTIVE_VIEW_CUSTOM_METRIC_MEASURABLE_IMPRESSIONS", + "METRIC_ACTIVE_VIEW_CUSTOM_METRIC_VIEWABLE_IMPRESSIONS", + "METRIC_ACTIVE_VIEW_CUSTOM_METRIC_VIEWABLE_RATE", + "METRIC_ACTIVE_VIEW_PERCENT_AUDIBLE_IMPRESSIONS", + "METRIC_ACTIVE_VIEW_PERCENT_FULLY_ON_SCREEN_2_SEC", + "METRIC_ACTIVE_VIEW_PERCENT_FULL_SCREEN", + "METRIC_ACTIVE_VIEW_PERCENT_IN_BACKGROUND", + "METRIC_ACTIVE_VIEW_PERCENT_OF_AD_PLAYED", + "METRIC_ACTIVE_VIEW_PERCENT_OF_COMPLETED_IMPRESSIONS_AUDIBLE_AND_VISIBLE", + "METRIC_ACTIVE_VIEW_PERCENT_OF_COMPLETED_IMPRESSIONS_VISIBLE", + "METRIC_ACTIVE_VIEW_PERCENT_OF_FIRST_QUARTILE_IMPRESSIONS_AUDIBLE_AND_VISIBLE", + "METRIC_ACTIVE_VIEW_PERCENT_OF_FIRST_QUARTILE_IMPRESSIONS_VISIBLE", + "METRIC_ACTIVE_VIEW_PERCENT_OF_MIDPOINT_IMPRESSIONS_AUDIBLE_AND_VISIBLE", + "METRIC_ACTIVE_VIEW_PERCENT_OF_MIDPOINT_IMPRESSIONS_VISIBLE", + "METRIC_ACTIVE_VIEW_PERCENT_OF_THIRD_QUARTILE_IMPRESSIONS_AUDIBLE_AND_VISIBLE", + "METRIC_ACTIVE_VIEW_PERCENT_OF_THIRD_QUARTILE_IMPRESSIONS_VISIBLE", + "METRIC_ACTIVE_VIEW_PERCENT_PLAY_TIME_AUDIBLE", + "METRIC_ACTIVE_VIEW_PERCENT_PLAY_TIME_AUDIBLE_AND_VISIBLE", + "METRIC_ACTIVE_VIEW_PERCENT_PLAY_TIME_VISIBLE", + "METRIC_ADAPTED_AUDIENCE_FREQUENCY", + "METRIC_ADLINGO_FEE_ADVERTISER_CURRENCY", + "METRIC_AUDIO_CLIENT_COST_ECPCL_ADVERTISER_CURRENCY", + "METRIC_AUDIO_MEDIA_COST_ECPCL_ADVERTISER_CURRENCY", + "METRIC_AUDIO_MUTES_AUDIO", + "METRIC_AUDIO_REVENUE_ECPCL_ADVERTISER_CURRENCY", + "METRIC_AUDIO_UNMUTES_AUDIO", + "METRIC_AUDIO_UNMUTES_VIDEO", + "METRIC_AVERAGE_DISPLAY_TIME", + "METRIC_AVERAGE_IMPRESSION_FREQUENCY_PER_USER", + "METRIC_AVERAGE_INTERACTION_TIME", + "METRIC_AVERAGE_WATCH_TIME_PER_IMPRESSION", + "METRIC_BEGIN_TO_RENDER_ELIGIBLE_IMPRESSIONS", + "METRIC_BEGIN_TO_RENDER_IMPRESSIONS", + "METRIC_BENCHMARK_FREQUENCY", + "METRIC_BRAND_LIFT_ABSOLUTE_BRAND_LIFT", + "METRIC_BRAND_LIFT_ALL_SURVEY_RESPONSES", + "METRIC_BRAND_LIFT_BASELINE_POSITIVE_RESPONSE_RATE", + "METRIC_BRAND_LIFT_BASELINE_SURVEY_RESPONSES", + "METRIC_BRAND_LIFT_COST_PER_LIFTED_USER", + "METRIC_BRAND_LIFT_EXPOSED_SURVEY_RESPONSES", + "METRIC_BRAND_LIFT_HEADROOM_BRAND_LIFT", + "METRIC_BRAND_LIFT_RELATIVE_BRAND_LIFT", + "METRIC_BRAND_LIFT_USERS", + "METRIC_CARD_CLICKS", + "METRIC_CLIENT_COST_ADVERTISER_CURRENCY", + "METRIC_CLIENT_COST_ECPA_ADVERTISER_CURRENCY", + "METRIC_CLIENT_COST_ECPA_PC_ADVERTISER_CURRENCY", + "METRIC_CLIENT_COST_ECPA_PV_ADVERTISER_CURRENCY", + "METRIC_CLIENT_COST_ECPC_ADVERTISER_CURRENCY", + "METRIC_CLIENT_COST_ECPM_ADVERTISER_CURRENCY", + "METRIC_CLIENT_COST_VIEWABLE_ECPM_ADVERTISER_CURRENCY", + "METRIC_CM_POST_CLICK_REVENUE_CROSS_ENVIRONMENT", + "METRIC_CM_POST_VIEW_REVENUE_CROSS_ENVIRONMENT", + "METRIC_COMPANION_CLICKS_AUDIO", + "METRIC_COMPANION_IMPRESSIONS_AUDIO", + "METRIC_COMPLETE_LISTENS_AUDIO", + "METRIC_COMPLETION_RATE_AUDIO", + "METRIC_COUNTERS", + "METRIC_CUSTOM_FEE_1_ADVERTISER_CURRENCY", + "METRIC_CUSTOM_FEE_2_ADVERTISER_CURRENCY", + "METRIC_CUSTOM_FEE_3_ADVERTISER_CURRENCY", + "METRIC_CUSTOM_FEE_4_ADVERTISER_CURRENCY", + "METRIC_CUSTOM_FEE_5_ADVERTISER_CURRENCY", + "METRIC_CUSTOM_VALUE_PER_1000_IMPRESSIONS", + "METRIC_ENGAGEMENTS", + "METRIC_ESTIMATED_CPM_FOR_IMPRESSIONS_WITH_CUSTOM_VALUE_ADVERTISER_CURRENCY", + "METRIC_ESTIMATED_TOTAL_COST_FOR_IMPRESSIONS_WITH_CUSTOM_VALUE_ADVERTISER_CURRENCY", + "METRIC_EXITS", + "METRIC_EXPANSIONS", + "METRIC_FIRST_QUARTILE_AUDIO", + "METRIC_GENERAL_INVALID_TRAFFIC_GIVT_IMPRESSIONS", + "METRIC_GENERAL_INVALID_TRAFFIC_GIVT_TRACKED_ADS", + "METRIC_GIVT_ACTIVE_VIEW_ELIGIBLE_IMPRESSIONS", + "METRIC_GIVT_ACTIVE_VIEW_MEASURABLE_IMPRESSIONS", + "METRIC_GIVT_ACTIVE_VIEW_VIEWABLE_IMPRESSIONS", + "METRIC_GIVT_BEGIN_TO_RENDER_IMPRESSIONS", + "METRIC_GIVT_CLICKS", + "METRIC_GMAIL_CONVERSIONS", + "METRIC_GMAIL_POST_CLICK_CONVERSIONS", + "METRIC_GMAIL_POST_VIEW_CONVERSIONS", + "METRIC_GMAIL_POTENTIAL_VIEWS", + "METRIC_IMPRESSIONS_WITH_CUSTOM_VALUE", + "METRIC_IMPRESSIONS_WITH_POSITIVE_CUSTOM_VALUE", + "METRIC_IMPRESSION_CUSTOM_VALUE_COST", + "METRIC_INTERACTIVE_IMPRESSIONS", + "METRIC_INVALID_ACTIVE_VIEW_ELIGIBLE_IMPRESSIONS", + "METRIC_INVALID_ACTIVE_VIEW_MEASURABLE_IMPRESSIONS", + "METRIC_INVALID_ACTIVE_VIEW_VIEWABLE_IMPRESSIONS", + "METRIC_INVALID_BEGIN_TO_RENDER_IMPRESSIONS", + "METRIC_INVALID_CLICKS", + "METRIC_INVALID_IMPRESSIONS", + "METRIC_INVALID_TRACKED_ADS", + "METRIC_MIDPOINT_AUDIO", + "METRIC_ORIGINAL_AUDIENCE_FREQUENCY", + "METRIC_PAUSES_AUDIO", + "METRIC_PERCENT_IMPRESSIONS_WITH_POSITIVE_CUSTOM_VALUE", + "METRIC_PLATFORM_FEE_RATE", + "METRIC_POST_CLICK_CONVERSIONS_CROSS_ENVIRONMENT", + "METRIC_POST_VIEW_CONVERSIONS_CROSS_ENVIRONMENT", + "METRIC_POTENTIAL_IMPRESSIONS", + "METRIC_POTENTIAL_VIEWS", + "METRIC_PREMIUM_FEE_ADVERTISER_CURRENCY", + "METRIC_PROGRAMMATIC_GUARANTEED_IMPRESSIONS_PASSED_DUE_TO_FREQUENCY", + "METRIC_PROGRAMMATIC_GUARANTEED_SAVINGS_RE_INVESTED_DUE_TO_FREQUENCY_ADVERTISER_CURRENCY", + "METRIC_REFUND_BILLABLE_COST_ADVERTISER_CURRENCY", + "METRIC_REFUND_MEDIA_COST_ADVERTISER_CURRENCY", + "METRIC_REFUND_PLATFORM_FEE_ADVERTISER_CURRENCY", + "METRIC_RICH_MEDIA_ENGAGEMENTS", + "METRIC_STARTS_AUDIO", + "METRIC_STOPS_AUDIO", + "METRIC_STORE_VISIT_CONVERSIONS", + "METRIC_THIRD_QUARTILE_AUDIO", + "METRIC_TIMERS", + "METRIC_TOTAL_AUDIO_MEDIA_COST_ECPCL_ADVERTISER_CURRENCY", + "METRIC_TOTAL_CONVERSIONS_CROSS_ENVIRONMENT", + "METRIC_TOTAL_DISPLAY_TIME", + "METRIC_TOTAL_IMPRESSION_CUSTOM_VALUE", + "METRIC_TOTAL_INTERACTION_TIME", + "METRIC_TOTAL_USERS", + "METRIC_TRACKED_ADS", + "METRIC_TRUEVIEW_GENERAL_INVALID_TRAFFIC_GIVT_VIEWS", + "METRIC_TRUEVIEW_INVALID_VIEWS", + "METRIC_UNIQUE_COOKIES_WITH_IMPRESSIONS", + "METRIC_UNIQUE_REACH_AVERAGE_IMPRESSION_FREQUENCY", + "METRIC_UNIQUE_REACH_CLICK_REACH", + "METRIC_UNIQUE_REACH_IMPRESSION_REACH", + "METRIC_UNIQUE_REACH_TOTAL_REACH", + "METRIC_VERIFIABLE_IMPRESSIONS", + "METRIC_VIDEO_CLIENT_COST_ECPCV_ADVERTISER_CURRENCY", + "METRIC_WATCH_TIME", + "METRIC_LAST_TOUCH_TOTAL_CONVERSIONS", + "METRIC_LAST_TOUCH_CLICK_THROUGH_CONVERSIONS", + "METRIC_LAST_TOUCH_VIEW_THROUGH_CONVERSIONS", + "METRIC_TOTAL_PATHS", + "METRIC_TOTAL_EXPOSURES", + "METRIC_PATH_CONVERSION_RATE", + "METRIC_CONVERTING_PATHS", + "METRIC_ACTIVITY_REVENUE", + "METRIC_PERCENT_INVALID_IMPRESSIONS_PREBID", + "METRIC_GRP_CORRECTED_IMPRESSIONS", + "METRIC_DEMO_CORRECTED_CLICKS", + "METRIC_VIRTUAL_PEOPLE_IMPRESSION_REACH_BY_DEMO", + "METRIC_VIRTUAL_PEOPLE_CLICK_REACH_BY_DEMO", + "METRIC_VIRTUAL_PEOPLE_AVERAGE_IMPRESSION_FREQUENCY_BY_DEMO", + "METRIC_DEMO_COMPOSITION_IMPRESSION", + "METRIC_VIRTUAL_PEOPLE_IMPRESSION_REACH_SHARE_PERCENT", + "METRIC_DEMO_POPULATION", + "METRIC_VIRTUAL_PEOPLE_IMPRESSION_REACH_PERCENT", + "METRIC_TARGET_RATING_POINTS", + "METRIC_PROVISIONAL_IMPRESSIONS", + "METRIC_VENDOR_BLOCKED_ADS", + "METRIC_GRP_CORRECTED_VIEWABLE_IMPRESSIONS", + "METRIC_GRP_CORRECTED_VIEWABLE_IMPRESSIONS_SHARE_PERCENT", + "METRIC_VIEWABLE_GROSS_RATING_POINTS", + "METRIC_VIRTUAL_PEOPLE_AVERAGE_VIEWABLE_IMPRESSION_FREQUENCY_BY_DEMO", + "METRIC_VIRTUAL_PEOPLE_VIEWABLE_IMPRESSION_REACH_BY_DEMO", + "METRIC_VIRTUAL_PEOPLE_VIEWABLE_IMPRESSION_REACH_PERCENT", + "METRIC_VIRTUAL_PEOPLE_VIEWABLE_IMPRESSION_REACH_SHARE_PERCENT", + "METRIC_ENGAGEMENT_RATE", + "METRIC_CM360_POST_VIEW_REVENUE", + "METRIC_CM360_POST_CLICK_REVENUE", + "METRIC_CM360_POST_CLICK_REVENUE_CROSS_ENVIRONMENT", + "METRIC_CM360_POST_VIEW_REVENUE_CROSS_ENVIRONMENT", + "METRIC_PERCENTAGE_FROM_CURRENT_IO_GOAL", + "METRIC_DUPLICATE_FLOODLIGHT_IMPRESSIONS", + "METRIC_COOKIE_CONSENTED_FLOODLIGHT_IMPRESSIONS", + "METRIC_COOKIE_UNCONSENTED_FLOODLIGHT_IMPRESSIONS", + "METRIC_TRACKING_UNCONSENTED_CLICKS", + "METRIC_IMPRESSION_LOSS_TARGETED_IMPRESSIONS", + "METRIC_LINEITEM_BID_RESPONSE_COUNT", + "METRIC_WIN_LOSS_RATE", + "METRIC_WIN_LOSS_DEAL_AVAILABLE_REQUESTS", + "METRIC_WIN_LOSS_LINEITEM_AVAILABLE_REQUESTS", + "METRIC_WIN_LOSS_DEAL_TARGETED_IMPRESSIONS", + "METRIC_WIN_LOSS_LINEITEM_TARGETED_IMPRESSIONS", + "METRIC_VERIFICATION_VIDEO_PLAYER_SIZE_MEASURABLE_IMPRESSIONS", + "METRIC_TRUEVIEW_ALL_AD_SEQUENCE_IMPRESSIONS", + "METRIC_IMPRESSIONS_COVIEWED", + "METRIC_UNIQUE_REACH_IMPRESSION_REACH_COVIEWED", + "METRIC_UNIQUE_REACH_TOTAL_REACH_COVIEWED", + "METRIC_UNIQUE_REACH_AVERAGE_IMPRESSION_FREQUENCY_COVIEWED", + "METRIC_GRP_CORRECTED_IMPRESSIONS_COVIEWED", + "METRIC_VIRTUAL_PEOPLE_IMPRESSION_REACH_BY_DEMO_COVIEWED", + "METRIC_VIRTUAL_PEOPLE_AVERAGE_IMPRESSION_FREQUENCY_BY_DEMO_COVIEWED", + "METRIC_TARGET_RATING_POINTS_COVIEWED", + "METRIC_DEMO_COMPOSITION_IMPRESSION_COVIEWED", + "METRIC_VIRTUAL_PEOPLE_IMPRESSION_REACH_SHARE_PERCENT_COVIEWED", + "METRIC_VIRTUAL_PEOPLE_IMPRESSION_REACH_PERCENT_COVIEWED" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "type": "array" + }, + "options": { + "$ref": "Options", + "description": "Additional query options." + }, + "type": { + "description": "Report type.", + "enum": [ + "TYPE_GENERAL", + "TYPE_AUDIENCE_PERFORMANCE", + "TYPE_INVENTORY_AVAILABILITY", + "TYPE_KEYWORD", + "TYPE_PIXEL_LOAD", + "TYPE_AUDIENCE_COMPOSITION", + "TYPE_CROSS_PARTNER", + "TYPE_PAGE_CATEGORY", + "TYPE_THIRD_PARTY_DATA_PROVIDER", + "TYPE_CROSS_PARTNER_THIRD_PARTY_DATA_PROVIDER", + "TYPE_CLIENT_SAFE", + "TYPE_ORDER_ID", + "TYPE_FEE", + "TYPE_CROSS_FEE", + "TYPE_ACTIVE_GRP", + "TYPE_YOUTUBE_VERTICAL", + "TYPE_COMSCORE_VCE", + "TYPE_TRUEVIEW", + "TYPE_NIELSEN_AUDIENCE_PROFILE", + "TYPE_NIELSEN_DAILY_REACH_BUILD", + "TYPE_NIELSEN_SITE", + "TYPE_REACH_AND_FREQUENCY", + "TYPE_ESTIMATED_CONVERSION", + "TYPE_VERIFICATION", + "TYPE_TRUEVIEW_IAR", + "TYPE_NIELSEN_ONLINE_GLOBAL_MARKET", + "TYPE_PETRA_NIELSEN_AUDIENCE_PROFILE", + "TYPE_PETRA_NIELSEN_DAILY_REACH_BUILD", + "TYPE_PETRA_NIELSEN_ONLINE_GLOBAL_MARKET", + "TYPE_NOT_SUPPORTED", + "TYPE_REACH_AUDIENCE", + "TYPE_LINEAR_TV_SEARCH_LIFT", + "TYPE_PATH", + "TYPE_PATH_ATTRIBUTION" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "PathFilter": { + "description": "Path filters specify which paths to include in a report. A path is the result of combining DV360 events based on User ID to create a workflow of users' actions. When a path filter is set, the resulting report will only include paths that match the specified event at the specified position. All other paths will be excluded.", + "id": "PathFilter", + "properties": { + "eventFilters": { + "description": "Filter on an event to be applied to some part of the path.", + "items": { + "$ref": "EventFilter" + }, + "type": "array" + }, + "pathMatchPosition": { + "description": "Indicates the position of the path the filter should match to (first, last, or any event in path).", + "enum": [ + "ANY", + "FIRST", + "LAST" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "PathQueryOptions": { + "description": "Path Query Options for Report Options.", + "id": "PathQueryOptions", + "properties": { + "channelGrouping": { + "$ref": "ChannelGrouping", + "description": "Custom Channel Groupings." + }, + "pathFilters": { + "description": "Path Filters. There is a limit of 100 path filters that can be set per report.", + "items": { + "$ref": "PathFilter" + }, + "type": "array" + } + }, + "type": "object" + }, + "PathQueryOptionsFilter": { + "description": "Dimension Filter on path events.", + "id": "PathQueryOptionsFilter", + "properties": { + "filter": { + "description": "Dimension the filter is applied to.", + "enum": [ + "FILTER_UNKNOWN", + "FILTER_DATE", + "FILTER_DAY_OF_WEEK", + "FILTER_WEEK", + "FILTER_MONTH", + "FILTER_YEAR", + "FILTER_TIME_OF_DAY", + "FILTER_CONVERSION_DELAY", + "FILTER_CREATIVE_ID", + "FILTER_CREATIVE_SIZE", + "FILTER_CREATIVE_TYPE", + "FILTER_EXCHANGE_ID", + "FILTER_AD_POSITION", + "FILTER_PUBLIC_INVENTORY", + "FILTER_INVENTORY_SOURCE", + "FILTER_CITY", + "FILTER_REGION", + "FILTER_DMA", + "FILTER_COUNTRY", + "FILTER_SITE_ID", + "FILTER_CHANNEL_ID", + "FILTER_PARTNER", + "FILTER_ADVERTISER", + "FILTER_INSERTION_ORDER", + "FILTER_LINE_ITEM", + "FILTER_PARTNER_CURRENCY", + "FILTER_ADVERTISER_CURRENCY", + "FILTER_ADVERTISER_TIMEZONE", + "FILTER_LINE_ITEM_TYPE", + "FILTER_USER_LIST", + "FILTER_USER_LIST_FIRST_PARTY", + "FILTER_USER_LIST_THIRD_PARTY", + "FILTER_TARGETED_USER_LIST", + "FILTER_DATA_PROVIDER", + "FILTER_ORDER_ID", + "FILTER_VIDEO_PLAYER_SIZE", + "FILTER_VIDEO_DURATION_SECONDS", + "FILTER_KEYWORD", + "FILTER_PAGE_CATEGORY", + "FILTER_CAMPAIGN_DAILY_FREQUENCY", + "FILTER_LINE_ITEM_DAILY_FREQUENCY", + "FILTER_LINE_ITEM_LIFETIME_FREQUENCY", + "FILTER_OS", + "FILTER_BROWSER", + "FILTER_CARRIER", + "FILTER_SITE_LANGUAGE", + "FILTER_INVENTORY_FORMAT", + "FILTER_ZIP_CODE", + "FILTER_VIDEO_RATING_TIER", + "FILTER_VIDEO_FORMAT_SUPPORT", + "FILTER_VIDEO_SKIPPABLE_SUPPORT", + "FILTER_VIDEO_CREATIVE_DURATION", + "FILTER_PAGE_LAYOUT", + "FILTER_VIDEO_AD_POSITION_IN_STREAM", + "FILTER_AGE", + "FILTER_GENDER", + "FILTER_QUARTER", + "FILTER_TRUEVIEW_CONVERSION_TYPE", + "FILTER_MOBILE_GEO", + "FILTER_MRAID_SUPPORT", + "FILTER_ACTIVE_VIEW_EXPECTED_VIEWABILITY", + "FILTER_VIDEO_CREATIVE_DURATION_SKIPPABLE", + "FILTER_NIELSEN_COUNTRY_CODE", + "FILTER_NIELSEN_DEVICE_ID", + "FILTER_NIELSEN_GENDER", + "FILTER_NIELSEN_AGE", + "FILTER_INVENTORY_SOURCE_TYPE", + "FILTER_CREATIVE_WIDTH", + "FILTER_CREATIVE_HEIGHT", + "FILTER_DFP_ORDER_ID", + "FILTER_TRUEVIEW_AGE", + "FILTER_TRUEVIEW_GENDER", + "FILTER_TRUEVIEW_PARENTAL_STATUS", + "FILTER_TRUEVIEW_REMARKETING_LIST", + "FILTER_TRUEVIEW_INTEREST", + "FILTER_TRUEVIEW_AD_GROUP_ID", + "FILTER_TRUEVIEW_AD_GROUP_AD_ID", + "FILTER_TRUEVIEW_IAR_LANGUAGE", + "FILTER_TRUEVIEW_IAR_GENDER", + "FILTER_TRUEVIEW_IAR_AGE", + "FILTER_TRUEVIEW_IAR_CATEGORY", + "FILTER_TRUEVIEW_IAR_COUNTRY", + "FILTER_TRUEVIEW_IAR_CITY", + "FILTER_TRUEVIEW_IAR_REGION", + "FILTER_TRUEVIEW_IAR_ZIPCODE", + "FILTER_TRUEVIEW_IAR_REMARKETING_LIST", + "FILTER_TRUEVIEW_IAR_INTEREST", + "FILTER_TRUEVIEW_IAR_PARENTAL_STATUS", + "FILTER_TRUEVIEW_IAR_TIME_OF_DAY", + "FILTER_TRUEVIEW_CUSTOM_AFFINITY", + "FILTER_TRUEVIEW_CATEGORY", + "FILTER_TRUEVIEW_KEYWORD", + "FILTER_TRUEVIEW_PLACEMENT", + "FILTER_TRUEVIEW_URL", + "FILTER_TRUEVIEW_COUNTRY", + "FILTER_TRUEVIEW_REGION", + "FILTER_TRUEVIEW_CITY", + "FILTER_TRUEVIEW_DMA", + "FILTER_TRUEVIEW_ZIPCODE", + "FILTER_NOT_SUPPORTED", + "FILTER_MEDIA_PLAN", + "FILTER_TRUEVIEW_IAR_YOUTUBE_CHANNEL", + "FILTER_TRUEVIEW_IAR_YOUTUBE_VIDEO", + "FILTER_SKIPPABLE_SUPPORT", + "FILTER_COMPANION_CREATIVE_ID", + "FILTER_BUDGET_SEGMENT_DESCRIPTION", + "FILTER_FLOODLIGHT_ACTIVITY_ID", + "FILTER_DEVICE_MODEL", + "FILTER_DEVICE_MAKE", + "FILTER_DEVICE_TYPE", + "FILTER_CREATIVE_ATTRIBUTE", + "FILTER_INVENTORY_COMMITMENT_TYPE", + "FILTER_INVENTORY_RATE_TYPE", + "FILTER_INVENTORY_DELIVERY_METHOD", + "FILTER_INVENTORY_SOURCE_EXTERNAL_ID", + "FILTER_AUTHORIZED_SELLER_STATE", + "FILTER_VIDEO_DURATION_SECONDS_RANGE", + "FILTER_PARTNER_NAME", + "FILTER_PARTNER_STATUS", + "FILTER_ADVERTISER_NAME", + "FILTER_ADVERTISER_INTEGRATION_CODE", + "FILTER_ADVERTISER_INTEGRATION_STATUS", + "FILTER_CARRIER_NAME", + "FILTER_CHANNEL_NAME", + "FILTER_CITY_NAME", + "FILTER_COMPANION_CREATIVE_NAME", + "FILTER_USER_LIST_FIRST_PARTY_NAME", + "FILTER_USER_LIST_THIRD_PARTY_NAME", + "FILTER_NIELSEN_RESTATEMENT_DATE", + "FILTER_NIELSEN_DATE_RANGE", + "FILTER_INSERTION_ORDER_NAME", + "FILTER_REGION_NAME", + "FILTER_DMA_NAME", + "FILTER_TRUEVIEW_IAR_REGION_NAME", + "FILTER_TRUEVIEW_DMA_NAME", + "FILTER_TRUEVIEW_REGION_NAME", + "FILTER_ACTIVE_VIEW_CUSTOM_METRIC_ID", + "FILTER_ACTIVE_VIEW_CUSTOM_METRIC_NAME", + "FILTER_AD_TYPE", + "FILTER_ALGORITHM", + "FILTER_ALGORITHM_ID", + "FILTER_AMP_PAGE_REQUEST", + "FILTER_ANONYMOUS_INVENTORY_MODELING", + "FILTER_APP_URL", + "FILTER_APP_URL_EXCLUDED", + "FILTER_ATTRIBUTED_USERLIST", + "FILTER_ATTRIBUTED_USERLIST_COST", + "FILTER_ATTRIBUTED_USERLIST_TYPE", + "FILTER_ATTRIBUTION_MODEL", + "FILTER_AUDIENCE_LIST", + "FILTER_AUDIENCE_LIST_COST", + "FILTER_AUDIENCE_LIST_TYPE", + "FILTER_AUDIENCE_NAME", + "FILTER_AUDIENCE_TYPE", + "FILTER_BILLABLE_OUTCOME", + "FILTER_BRAND_LIFT_TYPE", + "FILTER_CHANNEL_TYPE", + "FILTER_CM_PLACEMENT_ID", + "FILTER_CONVERSION_SOURCE", + "FILTER_CONVERSION_SOURCE_ID", + "FILTER_COUNTRY_ID", + "FILTER_CREATIVE", + "FILTER_CREATIVE_ASSET", + "FILTER_CREATIVE_INTEGRATION_CODE", + "FILTER_CREATIVE_RENDERED_IN_AMP", + "FILTER_CREATIVE_SOURCE", + "FILTER_CREATIVE_STATUS", + "FILTER_DATA_PROVIDER_NAME", + "FILTER_DETAILED_DEMOGRAPHICS", + "FILTER_DETAILED_DEMOGRAPHICS_ID", + "FILTER_DEVICE", + "FILTER_GAM_INSERTION_ORDER", + "FILTER_GAM_LINE_ITEM", + "FILTER_GAM_LINE_ITEM_ID", + "FILTER_DIGITAL_CONTENT_LABEL", + "FILTER_DOMAIN", + "FILTER_ELIGIBLE_COOKIES_ON_FIRST_PARTY_AUDIENCE_LIST", + "FILTER_ELIGIBLE_COOKIES_ON_THIRD_PARTY_AUDIENCE_LIST_AND_INTEREST", + "FILTER_EXCHANGE", + "FILTER_EXCHANGE_CODE", + "FILTER_EXTENSION", + "FILTER_EXTENSION_STATUS", + "FILTER_EXTENSION_TYPE", + "FILTER_FIRST_PARTY_AUDIENCE_LIST_COST", + "FILTER_FIRST_PARTY_AUDIENCE_LIST_TYPE", + "FILTER_FLOODLIGHT_ACTIVITY", + "FILTER_FORMAT", + "FILTER_GMAIL_AGE", + "FILTER_GMAIL_CITY", + "FILTER_GMAIL_COUNTRY", + "FILTER_GMAIL_COUNTRY_NAME", + "FILTER_GMAIL_DEVICE_TYPE", + "FILTER_GMAIL_DEVICE_TYPE_NAME", + "FILTER_GMAIL_GENDER", + "FILTER_GMAIL_REGION", + "FILTER_GMAIL_REMARKETING_LIST", + "FILTER_HOUSEHOLD_INCOME", + "FILTER_IMPRESSION_COUNTING_METHOD", + "FILTER_YOUTUBE_PROGRAMMATIC_GUARANTEED_INSERTION_ORDER", + "FILTER_INSERTION_ORDER_INTEGRATION_CODE", + "FILTER_INSERTION_ORDER_STATUS", + "FILTER_INTEREST", + "FILTER_INVENTORY_SOURCE_GROUP", + "FILTER_INVENTORY_SOURCE_GROUP_ID", + "FILTER_INVENTORY_SOURCE_ID", + "FILTER_INVENTORY_SOURCE_NAME", + "FILTER_LIFE_EVENT", + "FILTER_LIFE_EVENTS", + "FILTER_LINE_ITEM_INTEGRATION_CODE", + "FILTER_LINE_ITEM_NAME", + "FILTER_LINE_ITEM_STATUS", + "FILTER_MATCH_RATIO", + "FILTER_MEASUREMENT_SOURCE", + "FILTER_MEDIA_PLAN_NAME", + "FILTER_PARENTAL_STATUS", + "FILTER_PLACEMENT_ALL_YOUTUBE_CHANNELS", + "FILTER_PLATFORM", + "FILTER_PLAYBACK_METHOD", + "FILTER_POSITION_IN_CONTENT", + "FILTER_PUBLISHER_PROPERTY", + "FILTER_PUBLISHER_PROPERTY_ID", + "FILTER_PUBLISHER_PROPERTY_SECTION", + "FILTER_PUBLISHER_PROPERTY_SECTION_ID", + "FILTER_REFUND_REASON", + "FILTER_REMARKETING_LIST", + "FILTER_REWARDED", + "FILTER_SENSITIVE_CATEGORY", + "FILTER_SERVED_PIXEL_DENSITY", + "FILTER_TARGETED_DATA_PROVIDERS", + "FILTER_THIRD_PARTY_AUDIENCE_LIST_COST", + "FILTER_THIRD_PARTY_AUDIENCE_LIST_TYPE", + "FILTER_TRUEVIEW_AD", + "FILTER_TRUEVIEW_AD_GROUP", + "FILTER_TRUEVIEW_DETAILED_DEMOGRAPHICS", + "FILTER_TRUEVIEW_DETAILED_DEMOGRAPHICS_ID", + "FILTER_TRUEVIEW_HOUSEHOLD_INCOME", + "FILTER_TRUEVIEW_IAR_COUNTRY_NAME", + "FILTER_TRUEVIEW_REMARKETING_LIST_NAME", + "FILTER_VARIANT_ID", + "FILTER_VARIANT_NAME", + "FILTER_VARIANT_VERSION", + "FILTER_VERIFICATION_VIDEO_PLAYER_SIZE", + "FILTER_VERIFICATION_VIDEO_POSITION", + "FILTER_VIDEO_COMPANION_CREATIVE_SIZE", + "FILTER_VIDEO_CONTINUOUS_PLAY", + "FILTER_VIDEO_DURATION", + "FILTER_YOUTUBE_ADAPTED_AUDIENCE_LIST", + "FILTER_YOUTUBE_AD_VIDEO", + "FILTER_YOUTUBE_AD_VIDEO_ID", + "FILTER_YOUTUBE_CHANNEL", + "FILTER_YOUTUBE_PROGRAMMATIC_GUARANTEED_ADVERTISER", + "FILTER_YOUTUBE_PROGRAMMATIC_GUARANTEED_PARTNER", + "FILTER_YOUTUBE_VIDEO", + "FILTER_ZIP_POSTAL_CODE", + "FILTER_PLACEMENT_NAME_ALL_YOUTUBE_CHANNELS", + "FILTER_TRUEVIEW_PLACEMENT_ID", + "FILTER_PATH_PATTERN_ID", + "FILTER_PATH_EVENT_INDEX", + "FILTER_EVENT_TYPE", + "FILTER_CHANNEL_GROUPING", + "FILTER_OM_SDK_AVAILABLE", + "FILTER_DATA_SOURCE", + "FILTER_CM360_PLACEMENT_ID", + "FILTER_TRUEVIEW_CLICK_TYPE_NAME", + "FILTER_TRUEVIEW_AD_TYPE_NAME", + "FILTER_VIDEO_CONTENT_DURATION", + "FILTER_MATCHED_GENRE_TARGET", + "FILTER_VIDEO_CONTENT_LIVE_STREAM", + "FILTER_BUDGET_SEGMENT_TYPE", + "FILTER_BUDGET_SEGMENT_BUDGET", + "FILTER_BUDGET_SEGMENT_START_DATE", + "FILTER_BUDGET_SEGMENT_END_DATE", + "FILTER_BUDGET_SEGMENT_PACING_PERCENTAGE", + "FILTER_LINE_ITEM_BUDGET", + "FILTER_LINE_ITEM_START_DATE", + "FILTER_LINE_ITEM_END_DATE", + "FILTER_INSERTION_ORDER_GOAL_TYPE", + "FILTER_LINE_ITEM_PACING_PERCENTAGE", + "FILTER_INSERTION_ORDER_GOAL_VALUE", + "FILTER_OMID_CAPABLE", + "FILTER_VENDOR_MEASUREMENT_MODE", + "FILTER_IMPRESSION_LOSS_REJECTION_REASON", + "FILTER_VERIFICATION_VIDEO_PLAYER_SIZE_START", + "FILTER_VERIFICATION_VIDEO_PLAYER_SIZE_FIRST_QUARTILE", + "FILTER_VERIFICATION_VIDEO_PLAYER_SIZE_MID_POINT", + "FILTER_VERIFICATION_VIDEO_PLAYER_SIZE_THIRD_QUARTILE", + "FILTER_VERIFICATION_VIDEO_PLAYER_SIZE_COMPLETE", + "FILTER_VERIFICATION_VIDEO_RESIZED", + "FILTER_VERIFICATION_AUDIBILITY_START", + "FILTER_VERIFICATION_AUDIBILITY_COMPLETE", + "FILTER_MEDIA_TYPE", + "FILTER_AUDIO_FEED_TYPE_NAME", + "FILTER_TRUEVIEW_TARGETING_EXPANSION", + "FILTER_PUBLISHER_TRAFFIC_SOURCE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "match": { + "description": "Indicates how the filter should be matched to the value.", + "enum": [ + "UNKNOWN", + "EXACT", + "PARTIAL", + "BEGINS_WITH", + "WILDCARD_EXPRESSION" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "values": { + "description": "Value to filter on.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "Query": { + "description": "Represents a query.", + "id": "Query", + "properties": { + "kind": { + "description": "Identifies what kind of resource this is. Value: the fixed string \"doubleclickbidmanager#query\".", + "type": "string" + }, + "metadata": { + "$ref": "QueryMetadata", + "description": "Query metadata." + }, + "params": { + "$ref": "Parameters", + "description": "Query parameters." + }, + "queryId": { + "description": "Query ID.", + "format": "int64", + "type": "string" + }, + "reportDataEndTimeMs": { + "description": "The ending time for the data that is shown in the report. Note, reportDataEndTimeMs is required if metadata.dataRange is CUSTOM_DATES and ignored otherwise.", + "format": "int64", + "type": "string" + }, + "reportDataStartTimeMs": { + "description": "The starting time for the data that is shown in the report. Note, reportDataStartTimeMs is required if metadata.dataRange is CUSTOM_DATES and ignored otherwise.", + "format": "int64", + "type": "string" + }, + "schedule": { + "$ref": "QuerySchedule", + "description": "Information on how often and when to run a query." + }, + "timezoneCode": { + "description": "Canonical timezone code for report data time. Defaults to America/New_York.", + "type": "string" + } + }, + "type": "object" + }, + "QueryMetadata": { + "description": "Query metadata.", + "id": "QueryMetadata", + "properties": { + "dataRange": { + "description": "Range of report data.", + "enum": [ + "CUSTOM_DATES", + "CURRENT_DAY", + "PREVIOUS_DAY", + "WEEK_TO_DATE", + "MONTH_TO_DATE", + "QUARTER_TO_DATE", + "YEAR_TO_DATE", + "PREVIOUS_WEEK", + "PREVIOUS_HALF_MONTH", + "PREVIOUS_MONTH", + "PREVIOUS_QUARTER", + "PREVIOUS_YEAR", + "LAST_7_DAYS", + "LAST_30_DAYS", + "LAST_90_DAYS", + "LAST_365_DAYS", + "ALL_TIME", + "LAST_14_DAYS", + "TYPE_NOT_SUPPORTED", + "LAST_60_DAYS" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "format": { + "description": "Format of the generated report.", + "enum": [ + "CSV", + "EXCEL_CSV", + "XLSX" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + }, + "googleCloudStoragePathForLatestReport": { + "description": "The path to the location in Google Cloud Storage where the latest report is stored.", + "type": "string" + }, + "googleDrivePathForLatestReport": { + "description": "The path in Google Drive for the latest report.", + "type": "string" + }, + "latestReportRunTimeMs": { + "description": "The time when the latest report started to run.", + "format": "int64", + "type": "string" + }, + "locale": { + "description": "Locale of the generated reports. Valid values are cs CZECH de GERMAN en ENGLISH es SPANISH fr FRENCH it ITALIAN ja JAPANESE ko KOREAN pl POLISH pt-BR BRAZILIAN_PORTUGUESE ru RUSSIAN tr TURKISH uk UKRAINIAN zh-CN CHINA_CHINESE zh-TW TAIWAN_CHINESE An locale string not in the list above will generate reports in English.", + "type": "string" + }, + "reportCount": { + "description": "Number of reports that have been generated for the query.", + "format": "int32", + "type": "integer" + }, + "running": { + "description": "Whether the latest report is currently running.", + "type": "boolean" + }, + "sendNotification": { + "description": "Whether to send an email notification when a report is ready. Default to false.", + "type": "boolean" + }, + "shareEmailAddress": { + "description": "List of email addresses which are sent email notifications when the report is finished. Separate from sendNotification.", + "items": { + "type": "string" + }, + "type": "array" + }, + "title": { + "description": "Query title. It is used to name the reports generated from this query.", + "type": "string" + } + }, + "type": "object" + }, + "QuerySchedule": { + "description": "Information on how frequently and when to run a query.", + "id": "QuerySchedule", + "properties": { + "endTimeMs": { + "description": "Datetime to periodically run the query until.", + "format": "int64", + "type": "string" + }, + "frequency": { + "description": "How often the query is run.", + "enum": [ + "ONE_TIME", + "DAILY", + "WEEKLY", + "SEMI_MONTHLY", + "MONTHLY", + "QUARTERLY", + "YEARLY" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "nextRunMinuteOfDay": { + "description": "Time of day at which a new report will be generated, represented as minutes past midnight. Range is 0 to 1439. Only applies to scheduled reports.", + "format": "int32", + "type": "integer" + }, + "nextRunTimezoneCode": { + "description": "Canonical timezone code for report generation time. Defaults to America/New_York.", + "type": "string" + }, + "startTimeMs": { + "description": "When to start running the query. Not applicable to `ONE_TIME` frequency.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "Report": { + "description": "Represents a report.", + "id": "Report", + "properties": { + "key": { + "$ref": "ReportKey", + "description": "Key used to identify a report." + }, + "metadata": { + "$ref": "ReportMetadata", + "description": "Report metadata." + }, + "params": { + "$ref": "Parameters", + "description": "Report parameters." + } + }, + "type": "object" + }, + "ReportFailure": { + "description": "An explanation of a report failure.", + "id": "ReportFailure", + "properties": { + "errorCode": { + "description": "Error code that shows why the report was not created.", + "enum": [ + "AUTHENTICATION_ERROR", + "UNAUTHORIZED_API_ACCESS", + "SERVER_ERROR", + "VALIDATION_ERROR", + "REPORTING_FATAL_ERROR", + "REPORTING_TRANSIENT_ERROR", + "REPORTING_IMCOMPATIBLE_METRICS", + "REPORTING_ILLEGAL_FILENAME", + "REPORTING_QUERY_NOT_FOUND", + "REPORTING_BUCKET_NOT_FOUND", + "REPORTING_CREATE_BUCKET_FAILED", + "REPORTING_DELETE_BUCKET_FAILED", + "REPORTING_UPDATE_BUCKET_PERMISSION_FAILED", + "REPORTING_WRITE_BUCKET_OBJECT_FAILED", + "DEPRECATED_REPORTING_INVALID_QUERY", + "REPORTING_INVALID_QUERY_TOO_MANY_UNFILTERED_LARGE_GROUP_BYS", + "REPORTING_INVALID_QUERY_TITLE_MISSING", + "REPORTING_INVALID_QUERY_MISSING_PARTNER_AND_ADVERTISER_FILTERS" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "ReportKey": { + "description": "Key used to identify a report.", + "id": "ReportKey", + "properties": { + "queryId": { + "description": "Query ID.", + "format": "int64", + "type": "string" + }, + "reportId": { + "description": "Report ID.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "ReportMetadata": { + "description": "Report metadata.", + "id": "ReportMetadata", + "properties": { + "googleCloudStoragePath": { + "description": "The path to the location in Google Cloud Storage where the report is stored.", + "type": "string" + }, + "reportDataEndTimeMs": { + "description": "The ending time for the data that is shown in the report.", + "format": "int64", + "type": "string" + }, + "reportDataStartTimeMs": { + "description": "The starting time for the data that is shown in the report.", + "format": "int64", + "type": "string" + }, + "status": { + "$ref": "ReportStatus", + "description": "Report status." + } + }, + "type": "object" + }, + "ReportStatus": { + "description": "Report status.", + "id": "ReportStatus", + "properties": { + "failure": { + "$ref": "ReportFailure", + "description": "If the report failed, this records the cause." + }, + "finishTimeMs": { + "description": "The time when this report either completed successfully or failed.", + "format": "int64", + "type": "string" + }, + "format": { + "description": "The file type of the report.", + "enum": [ + "CSV", + "EXCEL_CSV", + "XLSX" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + }, + "state": { + "description": "The state of the report.", + "enum": [ + "RUNNING", + "DONE", + "FAILED" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "Rule": { + "description": "A Rule defines a name, and a boolean expression in [conjunctive normal form](http: //mathworld.wolfram.com/ConjunctiveNormalForm.html){.external} that can be // applied to a path event to determine if that name should be applied.", + "id": "Rule", + "properties": { + "disjunctiveMatchStatements": { + "items": { + "$ref": "DisjunctiveMatchStatement" + }, + "type": "array" + }, + "name": { + "description": "Rule name.", + "type": "string" + } + }, + "type": "object" + }, + "RunQueryRequest": { + "description": "Request to run a stored query to generate a report.", + "id": "RunQueryRequest", + "properties": { + "dataRange": { + "description": "Report data range used to generate the report.", + "enum": [ + "CUSTOM_DATES", + "CURRENT_DAY", + "PREVIOUS_DAY", + "WEEK_TO_DATE", + "MONTH_TO_DATE", + "QUARTER_TO_DATE", + "YEAR_TO_DATE", + "PREVIOUS_WEEK", + "PREVIOUS_HALF_MONTH", + "PREVIOUS_MONTH", + "PREVIOUS_QUARTER", + "PREVIOUS_YEAR", + "LAST_7_DAYS", + "LAST_30_DAYS", + "LAST_90_DAYS", + "LAST_365_DAYS", + "ALL_TIME", + "LAST_14_DAYS", + "TYPE_NOT_SUPPORTED", + "LAST_60_DAYS" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "reportDataEndTimeMs": { + "description": "The ending time for the data that is shown in the report. Note, reportDataEndTimeMs is required if dataRange is CUSTOM_DATES and ignored otherwise.", + "format": "int64", + "type": "string" + }, + "reportDataStartTimeMs": { + "description": "The starting time for the data that is shown in the report. Note, reportDataStartTimeMs is required if dataRange is CUSTOM_DATES and ignored otherwise.", + "format": "int64", + "type": "string" + }, + "timezoneCode": { + "description": "Canonical timezone code for report data time. Defaults to America/New_York.", + "type": "string" + } + }, + "type": "object" + } + }, + "servicePath": "doubleclickbidmanager/v1.1/", + "title": "DoubleClick Bid Manager API", + "version": "v1.1" +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/doubleclickbidmanager.v2.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/doubleclickbidmanager.v2.json new file mode 100644 index 0000000000000000000000000000000000000000..4d4b40022bc1279deef343f861583f3f71e2a464 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/doubleclickbidmanager.v2.json @@ -0,0 +1,777 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/doubleclickbidmanager": { +"description": "View and manage your reports in DoubleClick Bid Manager" +} +} +} +}, +"basePath": "/v2/", +"baseUrl": "https://doubleclickbidmanager.googleapis.com/v2/", +"batchPath": "batch", +"canonicalName": "DoubleClick Bid Manager", +"description": "DoubleClick Bid Manager API allows users to manage and create campaigns and reports.", +"discoveryVersion": "v1", +"documentationLink": "https://developers.google.com/bid-manager/", +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "doubleclickbidmanager:v2", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://doubleclickbidmanager.mtls.googleapis.com/", +"name": "doubleclickbidmanager", +"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": { +"queries": { +"methods": { +"create": { +"description": "Creates a new query.", +"flatPath": "queries", +"httpMethod": "POST", +"id": "doubleclickbidmanager.queries.create", +"parameterOrder": [], +"parameters": {}, +"path": "queries", +"request": { +"$ref": "Query" +}, +"response": { +"$ref": "Query" +}, +"scopes": [ +"https://www.googleapis.com/auth/doubleclickbidmanager" +] +}, +"delete": { +"description": "Deletes an existing query as well as its generated reports.", +"flatPath": "queries/{queryId}", +"httpMethod": "DELETE", +"id": "doubleclickbidmanager.queries.delete", +"parameterOrder": [ +"queryId" +], +"parameters": { +"queryId": { +"description": "Required. The ID of the query to delete.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "queries/{queryId}", +"scopes": [ +"https://www.googleapis.com/auth/doubleclickbidmanager" +] +}, +"get": { +"description": "Retrieves a query.", +"flatPath": "queries/{queryId}", +"httpMethod": "GET", +"id": "doubleclickbidmanager.queries.get", +"parameterOrder": [ +"queryId" +], +"parameters": { +"queryId": { +"description": "Required. The ID of the query to retrieve.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "queries/{queryId}", +"response": { +"$ref": "Query" +}, +"scopes": [ +"https://www.googleapis.com/auth/doubleclickbidmanager" +] +}, +"list": { +"description": "Lists queries created by the current user.", +"flatPath": "queries", +"httpMethod": "GET", +"id": "doubleclickbidmanager.queries.list", +"parameterOrder": [], +"parameters": { +"orderBy": { +"description": "Field to sort the list by. Accepts the following values: * `queryId` (default) * `metadata.title` The default sorting order is ascending. To specify descending order for a field, add the suffix `desc` to the field name. For example, `queryId desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Maximum number of results per page. Must be between `1` and `100`. Defaults to `100` if unspecified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying which page of results the server should return. Typically, this is the value of nextPageToken, returned from the previous call to the `queries.list` method. If unspecified, the first page of results is returned.", +"location": "query", +"type": "string" +} +}, +"path": "queries", +"response": { +"$ref": "ListQueriesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/doubleclickbidmanager" +] +}, +"run": { +"description": "Runs an existing query to generate a report.", +"flatPath": "queries/{queryId}:run", +"httpMethod": "POST", +"id": "doubleclickbidmanager.queries.run", +"parameterOrder": [ +"queryId" +], +"parameters": { +"queryId": { +"description": "Required. The ID of the query to run.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"synchronous": { +"description": "Whether the query should be run synchronously. When `true`, the request won't return until the resulting report has finished running. This parameter is `false` by default. Setting this parameter to `true` is **not recommended**.", +"location": "query", +"type": "boolean" +} +}, +"path": "queries/{queryId}:run", +"request": { +"$ref": "RunQueryRequest" +}, +"response": { +"$ref": "Report" +}, +"scopes": [ +"https://www.googleapis.com/auth/doubleclickbidmanager" +] +} +}, +"resources": { +"reports": { +"methods": { +"get": { +"description": "Retrieves a report.", +"flatPath": "queries/{queryId}/reports/{reportId}", +"httpMethod": "GET", +"id": "doubleclickbidmanager.queries.reports.get", +"parameterOrder": [ +"queryId", +"reportId" +], +"parameters": { +"queryId": { +"description": "Required. The ID of the query that generated the report.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +}, +"reportId": { +"description": "Required. The ID of the query to retrieve.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "queries/{queryId}/reports/{reportId}", +"response": { +"$ref": "Report" +}, +"scopes": [ +"https://www.googleapis.com/auth/doubleclickbidmanager" +] +}, +"list": { +"description": "Lists reports generated by the provided query.", +"flatPath": "queries/{queryId}/reports", +"httpMethod": "GET", +"id": "doubleclickbidmanager.queries.reports.list", +"parameterOrder": [ +"queryId" +], +"parameters": { +"orderBy": { +"description": "Field to sort the list by. Accepts the following values: * `key.reportId` (default) The default sorting order is ascending. To specify descending order for a field, add the suffix `desc` to the field name. For example, `key.reportId desc`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Maximum number of results per page. Must be between `1` and `100`. Defaults to `100` if unspecified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying which page of results the server should return. Typically, this is the value of nextPageToken returned from the previous call to the `queries.reports.list` method. If unspecified, the first page of results is returned.", +"location": "query", +"type": "string" +}, +"queryId": { +"description": "Required. The ID of the query that generated the reports.", +"format": "int64", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "queries/{queryId}/reports", +"response": { +"$ref": "ListReportsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/doubleclickbidmanager" +] +} +} +} +} +} +}, +"revision": "20240731", +"rootUrl": "https://doubleclickbidmanager.googleapis.com/", +"schemas": { +"DataRange": { +"description": "The date range to be reported on.", +"id": "DataRange", +"properties": { +"customEndDate": { +"$ref": "Date", +"description": "If `CUSTOM_DATES` is assigned to range, this field specifies the end date for the date range that is reported on. This field is required if using `CUSTOM_DATES` range and will be ignored otherwise." +}, +"customStartDate": { +"$ref": "Date", +"description": "If `CUSTOM_DATES` is assigned to range, this field specifies the starting date for the date range that is reported on. This field is required if using `CUSTOM_DATES` range and will be ignored otherwise." +}, +"range": { +"description": "The preset date range to be reported on. If `CUSTOM_DATES` is assigned to this field, fields custom_start_date and custom_end_date must be set to specify the custom date range.", +"enum": [ +"RANGE_UNSPECIFIED", +"CUSTOM_DATES", +"CURRENT_DAY", +"PREVIOUS_DAY", +"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", +"ALL_TIME", +"LAST_14_DAYS", +"LAST_60_DAYS" +], +"enumDescriptions": [ +"Default value when range is not specified or is unknown in this version.", +"Custom date range.", +"Current day.", +"Previous day.", +"All days, including the current day, since the most recent Sunday.", +"All days, including the current day, since the start of the current month.", +"All days, including the current day, since the start of the current quarter.", +"All days, including the current day, since the start of the current calendar year.", +"The previous completed week, beginning from Sunday.", +"The previous completed calendar month.", +"The previous completed quarter.", +"The previous completed calendar year.", +"The previous 7 days, excluding the current day.", +"The previous 30 days, excluding the current day.", +"The previous 90 days, excluding the current day.", +"The previous 365 days, excluding the current day.", +"All time for which data is available, excluding the current day.", +"The previous 14 days, excluding the current day.", +"The previous 60 days, excluding the current day." +], +"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" +}, +"FilterPair": { +"description": "Represents a single filter rule.", +"id": "FilterPair", +"properties": { +"type": { +"description": "The type of value to filter by. Defined by a [Filter](/bid-manager/reference/rest/v2/filters-metrics#filters) value.", +"type": "string" +}, +"value": { +"description": "The identifying value to filter by, such as a relevant resource ID.", +"type": "string" +} +}, +"type": "object" +}, +"ListQueriesResponse": { +"id": "ListQueriesResponse", +"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 `queries.list` method to retrieve the next page of results.", +"type": "string" +}, +"queries": { +"description": "The list of queries. This field will be absent if empty.", +"items": { +"$ref": "Query" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListReportsResponse": { +"id": "ListReportsResponse", +"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 `queries.reports.list` method to retrieve the next page of results.", +"type": "string" +}, +"reports": { +"description": "The list of reports. This field will be absent if empty.", +"items": { +"$ref": "Report" +}, +"type": "array" +} +}, +"type": "object" +}, +"Options": { +"description": "Report parameter options.", +"id": "Options", +"properties": { +"includeOnlyTargetedUserLists": { +"description": "Whether to include data for audience lists specifically targeted by filtered line items or insertion orders. Requires the use of `FILTER_INSERTION_ORDER` or `FILTER_LINE_ITEM` filters.", +"type": "boolean" +} +}, +"type": "object" +}, +"Parameters": { +"description": "Parameters of a generated report.", +"id": "Parameters", +"properties": { +"filters": { +"description": "Filters to limit the scope of reported data.", +"items": { +"$ref": "FilterPair" +}, +"type": "array" +}, +"groupBys": { +"description": "Dimensions by which to segment and group the data. Defined by [Filter](/bid-manager/reference/rest/v2/filters-metrics#filters) values.", +"items": { +"type": "string" +}, +"type": "array" +}, +"metrics": { +"description": "Metrics to define the data populating the report. Defined by [Metric](/bid-manager/reference/rest/v2/filters-metrics#metrics) values.", +"items": { +"type": "string" +}, +"type": "array" +}, +"options": { +"$ref": "Options", +"description": "Additional report parameter options." +}, +"type": { +"description": "The type of the report. The type of the report determines the dimesions, filters, and metrics that can be used.", +"enum": [ +"REPORT_TYPE_UNSPECIFIED", +"STANDARD", +"INVENTORY_AVAILABILITY", +"AUDIENCE_COMPOSITION", +"FLOODLIGHT", +"YOUTUBE", +"GRP", +"YOUTUBE_PROGRAMMATIC_GUARANTEED", +"REACH", +"UNIQUE_REACH_AUDIENCE", +"FULL_PATH", +"PATH_ATTRIBUTION" +], +"enumDeprecated": [ +false, +false, +false, +true, +false, +false, +false, +false, +false, +false, +true, +true +], +"enumDescriptions": [ +"Default value when report type is not specified or is unknown in this version.", +"Standard report.", +"Inventory Availability report.", +"Audience Composition report.", +"Floodlight report.", +"YouTube report.", +"GRP report.", +"YouTube Programmatic Guaranteed report.", +"Reach report.", +"Unique Reach Audience report.", +"Full Path report.", +"Path Attribution report." +], +"type": "string" +} +}, +"type": "object" +}, +"Query": { +"description": "A single query used to generate a report.", +"id": "Query", +"properties": { +"metadata": { +"$ref": "QueryMetadata", +"description": "The metadata of the query." +}, +"params": { +"$ref": "Parameters", +"description": "The parameters of the report generated by the query." +}, +"queryId": { +"description": "Output only. The unique ID of the query.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"schedule": { +"$ref": "QuerySchedule", +"description": "When and how often the query is scheduled to run. If the frequency field is set to `ONE_TIME`, the query will only run when queries.run is called." +} +}, +"type": "object" +}, +"QueryMetadata": { +"description": "The metadata of the query.", +"id": "QueryMetadata", +"properties": { +"dataRange": { +"$ref": "DataRange", +"description": "The date range the report generated by the query will report on. This date range will be defined by the time zone as used by the advertiser." +}, +"format": { +"description": "The format of the report generated by the query.", +"enum": [ +"FORMAT_UNSPECIFIED", +"CSV", +"XLSX" +], +"enumDescriptions": [ +"Default value when format is not specified or is unknown in this version.", +"CSV.", +"Excel." +], +"type": "string" +}, +"sendNotification": { +"description": "Whether an email notification is sent to the query creator when a report generated by the query is ready. This value is `false` by default.", +"type": "boolean" +}, +"shareEmailAddress": { +"description": "List of additional email addresses with which to share the query. If send_notification is `true`, these email addresses will receive a notification when a report generated by the query is ready. If these email addresses are connected to Display & Video 360 users, the query will be available to them in the Display & Video 360 interface.", +"items": { +"type": "string" +}, +"type": "array" +}, +"title": { +"description": "The display name of the query. This value will be used in the file name of reports generated by the query.", +"type": "string" +} +}, +"type": "object" +}, +"QuerySchedule": { +"description": "Settings on when and how frequently to run a query.", +"id": "QuerySchedule", +"properties": { +"endDate": { +"$ref": "Date", +"description": "The date on which to end the scheduled runs. This field is required if frequency is not set to `ONE_TIME`. Otherwise, it will be ignored." +}, +"frequency": { +"description": "How frequently to run the query. If set to `ONE_TIME`, the query will only be run when queries.run is called.", +"enum": [ +"FREQUENCY_UNSPECIFIED", +"ONE_TIME", +"DAILY", +"WEEKLY", +"SEMI_MONTHLY", +"MONTHLY", +"QUARTERLY", +"YEARLY" +], +"enumDescriptions": [ +"Default value when frequency is not specified or is unknown in this version.", +"Only when the query is run manually.", +"Once a day.", +"Once a week.", +"Twice a month.", +"Once a month.", +"Once a quarter.", +"Once a year." +], +"type": "string" +}, +"nextRunTimezoneCode": { +"description": "The canonical code for the timezone the query schedule is based on. Scheduled runs are usually conducted in the morning of a given day. Defaults to `America/New_York`.", +"type": "string" +}, +"startDate": { +"$ref": "Date", +"description": "The date on which to begin the scheduled runs. This field is required if frequency is not set to `ONE_TIME`. Otherwise, it will be ignored." +} +}, +"type": "object" +}, +"Report": { +"description": "A single report generated by its parent report.", +"id": "Report", +"properties": { +"key": { +"$ref": "ReportKey", +"description": "The key information identifying the report." +}, +"metadata": { +"$ref": "ReportMetadata", +"description": "The metadata of the report." +}, +"params": { +"$ref": "Parameters", +"description": "The parameters of the report." +} +}, +"type": "object" +}, +"ReportKey": { +"description": "Identifying information of a report.", +"id": "ReportKey", +"properties": { +"queryId": { +"description": "Output only. The unique ID of the query that generated the report.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"reportId": { +"description": "Output only. The unique ID of the report.", +"format": "int64", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ReportMetadata": { +"description": "The metadata of a report.", +"id": "ReportMetadata", +"properties": { +"googleCloudStoragePath": { +"description": "Output only. The location of the generated report file in Google Cloud Storage. This field will be absent if status.state is not `DONE`.", +"readOnly": true, +"type": "string" +}, +"reportDataEndDate": { +"$ref": "Date", +"description": "The end date of the report data date range." +}, +"reportDataStartDate": { +"$ref": "Date", +"description": "The start date of the report data date range." +}, +"status": { +"$ref": "ReportStatus", +"description": "The status of the report." +} +}, +"type": "object" +}, +"ReportStatus": { +"description": "The status of a report.", +"id": "ReportStatus", +"properties": { +"finishTime": { +"description": "Output only. The timestamp of when report generation finished successfully or in failure. This field will not be set unless state is `DONE` or `FAILED`.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"format": { +"description": "The format of the generated report file.", +"enum": [ +"FORMAT_UNSPECIFIED", +"CSV", +"XLSX" +], +"enumDescriptions": [ +"Default value when format is not specified or is unknown in this version.", +"CSV.", +"Excel." +], +"type": "string" +}, +"state": { +"description": "Output only. The state of the report generation.", +"enum": [ +"STATE_UNSPECIFIED", +"QUEUED", +"RUNNING", +"DONE", +"FAILED" +], +"enumDescriptions": [ +"Default value when state is not specified or is unknown in this version.", +"The report is queued to run.", +"The report is currently running.", +"The report has finished running successfully.", +"The report has finished running in failure." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"RunQueryRequest": { +"description": "Details specifying how to run a query.", +"id": "RunQueryRequest", +"properties": { +"dataRange": { +"$ref": "DataRange", +"description": "The date range used by the query to generate the report. If unspecified, the query's original data_range is used." +} +}, +"type": "object" +} +}, +"servicePath": "v2/", +"title": "DoubleClick Bid Manager API", +"version": "v2" +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/file.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/file.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..fb61dfe29800152383d30ff22437674fb4fd04aa --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/file.v1.json @@ -0,0 +1,2396 @@ +{ +"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://file.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Cloud Filestore", +"description": "The Cloud Filestore API is used for creating and managing cloud file servers.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/filestore/", +"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": "file:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://file.mtls.googleapis.com/", +"name": "file", +"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": "file.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": "file.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" +}, +"includeUnrevealedLocations": { +"description": "If true, the returned list will include locations which are not yet revealed.", +"location": "query", +"type": "boolean" +}, +"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": { +"backups": { +"methods": { +"create": { +"description": "Creates a backup.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/backups", +"httpMethod": "POST", +"id": "file.projects.locations.backups.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"backupId": { +"description": "Required. The ID to use for the backup. The ID must be unique within the specified project and location. This value must start with a lowercase letter followed by up to 62 lowercase letters, numbers, or hyphens, and cannot end with a hyphen. Values that do not match this pattern will trigger an INVALID_ARGUMENT error.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The backup's project and location, in the format `projects/{project_number}/locations/{location}`. In Filestore, backup locations map to Google Cloud regions, for example **us-west1**.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/backups", +"request": { +"$ref": "Backup" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a backup.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/backups/{backupsId}", +"httpMethod": "DELETE", +"id": "file.projects.locations.backups.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The backup resource name, in the format `projects/{project_number}/locations/{location}/backups/{backup_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/backups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the details of a specific backup.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/backups/{backupsId}", +"httpMethod": "GET", +"id": "file.projects.locations.backups.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The backup resource name, in the format `projects/{project_number}/locations/{location}/backups/{backup_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/backups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Backup" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all backups in a project for either a specified location or for all locations.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/backups", +"httpMethod": "GET", +"id": "file.projects.locations.backups.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 backup information, in the format `projects/{project_number}/locations/{location}`. In Filestore, backup locations map to Google Cloud regions, for example **us-west1**. To retrieve backup information for all locations, use \"-\" for the `{location}` value.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/backups", +"response": { +"$ref": "ListBackupsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the settings of a specific backup.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/backups/{backupsId}", +"httpMethod": "PATCH", +"id": "file.projects.locations.backups.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. The resource name of the backup, in the format `projects/{project_number}/locations/{location_id}/backups/{backup_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/backups/[^/]+$", +"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": "Backup" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"instances": { +"methods": { +"create": { +"description": "Creates an instance. When creating from a backup, the capacity of the new instance needs to be equal to or larger than the capacity of the backup (and also equal to or larger than the minimum capacity of the tier).", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances", +"httpMethod": "POST", +"id": "file.projects.locations.instances.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"instanceId": { +"description": "Required. The name of the instance to create. The name must be unique for the specified project and location.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The instance's project and location, in the format `projects/{project_id}/locations/{location}`. In Filestore, locations map to Google Cloud zones, for example **us-west1-b**.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/instances", +"request": { +"$ref": "Instance" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes an instance.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}", +"httpMethod": "DELETE", +"id": "file.projects.locations.instances.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"force": { +"description": "If set to true, all snapshots of the instance will also be deleted. (Otherwise, the request will only work if the instance has no snapshots.)", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Required. The instance resource name, in the format `projects/{project_id}/locations/{location}/instances/{instance_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the details of a specific instance.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}", +"httpMethod": "GET", +"id": "file.projects.locations.instances.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The instance resource name, in the format `projects/{project_id}/locations/{location}/instances/{instance_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Instance" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all instances in a project for either a specified location or for all locations.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances", +"httpMethod": "GET", +"id": "file.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_id}/locations/{location}`. In Cloud Filestore, locations map to Google Cloud zones, for example **us-west1-b**. To retrieve instance information for all locations, use \"-\" for the `{location}` value.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/instances", +"response": { +"$ref": "ListInstancesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the settings of a specific instance.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}", +"httpMethod": "PATCH", +"id": "file.projects.locations.instances.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. The resource name of the instance, in the format `projects/{project}/locations/{location}/instances/{instance}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Mask of fields to update. At least one path must be supplied in this field. The elements of the repeated paths field may only include these fields: * \"description\" * \"file_shares\" * \"labels\" * \"performance_config\" * \"deletion_protection_enabled\" * \"deletion_protection_reason\"", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "Instance" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"promoteReplica": { +"description": "Promote the standby instance (replica).", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:promoteReplica", +"httpMethod": "POST", +"id": "file.projects.locations.instances.promoteReplica", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the instance, in the format `projects/{project_id}/locations/{location_id}/instances/{instance_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:promoteReplica", +"request": { +"$ref": "PromoteReplicaRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"restore": { +"description": "Restores an existing instance's file share from a backup. The capacity of the instance needs to be equal to or larger than the capacity of the backup (and also equal to or larger than the minimum capacity of the tier).", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:restore", +"httpMethod": "POST", +"id": "file.projects.locations.instances.restore", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the instance, in the format `projects/{project_number}/locations/{location_id}/instances/{instance_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:restore", +"request": { +"$ref": "RestoreInstanceRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"revert": { +"description": "Revert an existing instance's file system to a specified snapshot.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:revert", +"httpMethod": "POST", +"id": "file.projects.locations.instances.revert", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the instance, in the format `projects/{project_id}/locations/{location_id}/instances/{instance_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:revert", +"request": { +"$ref": "RevertInstanceRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"snapshots": { +"methods": { +"create": { +"description": "Creates a snapshot.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}/snapshots", +"httpMethod": "POST", +"id": "file.projects.locations.instances.snapshots.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The Filestore Instance to create the snapshots of, in the format `projects/{project_id}/locations/{location}/instances/{instance_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +}, +"snapshotId": { +"description": "Required. The ID to use for the snapshot. The ID must be unique within the specified instance. This value must start with a lowercase letter followed by up to 62 lowercase letters, numbers, or hyphens, and cannot end with a hyphen.", +"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}/instances/{instancesId}/snapshots/{snapshotsId}", +"httpMethod": "DELETE", +"id": "file.projects.locations.instances.snapshots.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The snapshot resource name, in the format `projects/{project_id}/locations/{location}/instances/{instance_id}/snapshots/{snapshot_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+/snapshots/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the details of a specific snapshot.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}/snapshots/{snapshotsId}", +"httpMethod": "GET", +"id": "file.projects.locations.instances.snapshots.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The snapshot resource name, in the format `projects/{project_id}/locations/{location}/instances/{instance_id}/snapshots/{snapshot_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+/snapshots/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Snapshot" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all snapshots in a project for either a specified location or for all locations.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}/snapshots", +"httpMethod": "GET", +"id": "file.projects.locations.instances.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 instance for which to retrieve snapshot information, in the format `projects/{project_id}/locations/{location}/instances/{instance_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +}, +"returnPartialSuccess": { +"description": "Optional. If true, allow partial responses for multi-regional Aggregated List requests.", +"location": "query", +"type": "boolean" +} +}, +"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}/instances/{instancesId}/snapshots/{snapshotsId}", +"httpMethod": "PATCH", +"id": "file.projects.locations.instances.snapshots.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. The resource name of the snapshot, in the format `projects/{project_id}/locations/{location_id}/instances/{instance_id}/snapshots/{snapshot_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+/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" +] +} +} +} +} +}, +"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": "file.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": "file.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": "file.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": "file.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": "20241204", +"rootUrl": "https://file.googleapis.com/", +"schemas": { +"Backup": { +"description": "A Filestore backup.", +"id": "Backup", +"properties": { +"capacityGb": { +"description": "Output only. Capacity of the source file share when the backup was created.", +"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" +}, +"downloadBytes": { +"description": "Output only. Amount of bytes that will be downloaded if the backup is restored. This may be different than storage bytes, since sequential backups of the same disk will share storage.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"fileSystemProtocol": { +"description": "Output only. The file system protocol of the source Filestore instance that this backup is created from.", +"enum": [ +"FILE_PROTOCOL_UNSPECIFIED", +"NFS_V3", +"NFS_V4_1" +], +"enumDescriptions": [ +"FILE_PROTOCOL_UNSPECIFIED serves a \"not set\" default value when a FileProtocol is a separate field in a message.", +"NFS 3.0.", +"NFS 4.1." +], +"readOnly": true, +"type": "string" +}, +"kmsKey": { +"description": "Immutable. KMS key name used for data encryption.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Resource labels to represent user provided metadata.", +"type": "object" +}, +"name": { +"description": "Output only. The resource name of the backup, in the format `projects/{project_number}/locations/{location_id}/backups/{backup_id}`.", +"readOnly": true, +"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" +}, +"sourceFileShare": { +"description": "Name of the file share in the source Filestore instance that the backup is created from.", +"type": "string" +}, +"sourceInstance": { +"description": "The resource name of the source Filestore instance, in the format `projects/{project_number}/locations/{location_id}/instances/{instance_id}`, used to create this backup.", +"type": "string" +}, +"sourceInstanceTier": { +"description": "Output only. The service tier of the source Filestore instance that this backup is created from.", +"enum": [ +"TIER_UNSPECIFIED", +"STANDARD", +"PREMIUM", +"BASIC_HDD", +"BASIC_SSD", +"HIGH_SCALE_SSD", +"ENTERPRISE", +"ZONAL", +"REGIONAL" +], +"enumDescriptions": [ +"Not set.", +"STANDARD tier. BASIC_HDD is the preferred term for this tier.", +"PREMIUM tier. BASIC_SSD is the preferred term for this tier.", +"BASIC instances offer a maximum capacity of 63.9 TB. BASIC_HDD is an alias for STANDARD Tier, offering economical performance backed by HDD.", +"BASIC instances offer a maximum capacity of 63.9 TB. BASIC_SSD is an alias for PREMIUM Tier, and offers improved performance backed by SSD.", +"HIGH_SCALE instances offer expanded capacity and performance scaling capabilities.", +"ENTERPRISE instances offer the features and availability needed for mission-critical workloads.", +"ZONAL instances offer expanded capacity and performance scaling capabilities.", +"REGIONAL instances offer the features and availability needed for mission-critical workloads." +], +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. The backup state.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"FINALIZING", +"READY", +"DELETING", +"INVALID" +], +"enumDescriptions": [ +"State not set.", +"Backup is being created.", +"Backup has been taken and the operation is being finalized. At this point, changes to the file share will not be reflected in the backup.", +"Backup is available for use.", +"Backup is being deleted.", +"Backup is not valid and cannot be used for creating new instances or restoring existing instances." +], +"readOnly": true, +"type": "string" +}, +"storageBytes": { +"description": "Output only. The size of the storage used by the backup. As backups share storage, this number is expected to change with backup creation/deletion.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"tags": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Input only. Immutable. Tag key-value pairs bound to this resource. Each key must be a namespaced name and each value a short name. Example: \"123456789012/environment\" : \"production\", \"123456789013/costCenter\" : \"marketing\" See the documentation for more information: - Namespaced name: https://cloud.google.com/resource-manager/docs/tags/tags-creating-and-managing#retrieving_tag_key - Short name: https://cloud.google.com/resource-manager/docs/tags/tags-creating-and-managing#retrieving_tag_value", +"type": "object" +} +}, +"type": "object" +}, +"CancelOperationRequest": { +"description": "The request message for Operations.CancelOperation.", +"id": "CancelOperationRequest", +"properties": {}, +"type": "object" +}, +"DailyCycle": { +"description": "Time window specified for daily operations.", +"id": "DailyCycle", +"properties": { +"duration": { +"description": "Output only. Duration of the time window, set by service producer.", +"format": "google-duration", +"type": "string" +}, +"startTime": { +"$ref": "TimeOfDay", +"description": "Time within the day to start the operations." +} +}, +"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" +}, +"DenyMaintenancePeriod": { +"description": "DenyMaintenancePeriod definition. Maintenance is forbidden within the deny period. The start_date must be less than the end_date.", +"id": "DenyMaintenancePeriod", +"properties": { +"endDate": { +"$ref": "Date", +"description": "Deny period end date. This can be: * A full date, with non-zero year, month and day values. * A month and day value, with a zero year. Allows recurring deny periods each year. Date matching this period will have to be before the end." +}, +"startDate": { +"$ref": "Date", +"description": "Deny period start date. This can be: * A full date, with non-zero year, month and day values. * A month and day value, with a zero year. Allows recurring deny periods each year. Date matching this period will have to be the same or after the start." +}, +"time": { +"$ref": "TimeOfDay", +"description": "Time in UTC when the Blackout period starts on start_date and ends on end_date. This can be: * Full time. * All zeros for 00:00:00 UTC" +} +}, +"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" +}, +"FileShareConfig": { +"description": "File share configuration for the instance.", +"id": "FileShareConfig", +"properties": { +"capacityGb": { +"description": "File share capacity in gigabytes (GB). Filestore defines 1 GB as 1024^3 bytes.", +"format": "int64", +"type": "string" +}, +"name": { +"description": "Required. The name of the file share. Must use 1-16 characters for the basic service tier and 1-63 characters for all other service tiers. Must use lowercase letters, numbers, or underscores `[a-z0-9_]`. Must start with a letter. Immutable.", +"type": "string" +}, +"nfsExportOptions": { +"description": "Nfs Export Options. There is a limit of 10 export options per file share.", +"items": { +"$ref": "NfsExportOptions" +}, +"type": "array" +}, +"sourceBackup": { +"description": "The resource name of the backup, in the format `projects/{project_number}/locations/{location_id}/backups/{backup_id}`, that this file share has been restored from.", +"type": "string" +} +}, +"type": "object" +}, +"FixedIOPS": { +"description": "Fixed IOPS (input/output operations per second) parameters.", +"id": "FixedIOPS", +"properties": { +"maxIops": { +"description": "Required. Maximum IOPS.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSaasacceleratorManagementProvidersV1Instance": { +"description": "Instance represents the interface for SLM services to actuate the state of control plane resources. Example Instance in JSON, where consumer-project-number=123456, producer-project-id=cloud-sql: ```json Instance: { \"name\": \"projects/123456/locations/us-east1/instances/prod-instance\", \"create_time\": { \"seconds\": 1526406431, }, \"labels\": { \"env\": \"prod\", \"foo\": \"bar\" }, \"state\": READY, \"software_versions\": { \"software_update\": \"cloud-sql-09-28-2018\", }, \"maintenance_policy_names\": { \"UpdatePolicy\": \"projects/123456/locations/us-east1/maintenancePolicies/prod-update-policy\", } \"tenant_project_id\": \"cloud-sql-test-tenant\", \"producer_metadata\": { \"cloud-sql-tier\": \"basic\", \"cloud-sql-instance-size\": \"1G\", }, \"provisioned_resources\": [ { \"resource-type\": \"compute-instance\", \"resource-url\": \"https://www.googleapis.com/compute/v1/projects/cloud-sql/zones/us-east1-b/instances/vm-1\", } ], \"maintenance_schedules\": { \"csa_rollout\": { \"start_time\": { \"seconds\": 1526406431, }, \"end_time\": { \"seconds\": 1535406431, }, }, \"ncsa_rollout\": { \"start_time\": { \"seconds\": 1526406431, }, \"end_time\": { \"seconds\": 1535406431, }, } }, \"consumer_defined_name\": \"my-sql-instance1\", } ``` LINT.IfChange", +"id": "GoogleCloudSaasacceleratorManagementProvidersV1Instance", +"properties": { +"consumerDefinedName": { +"description": "consumer_defined_name is the name of the instance set by the service consumers. Generally this is different from the `name` field which reperesents the system-assigned id of the instance which the service consumers do not recognize. This is a required field for tenants onboarding to Maintenance Window notifications (go/slm-rollout-maintenance-policies#prerequisites).", +"type": "string" +}, +"createTime": { +"description": "Output only. Timestamp when the resource was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"instanceType": { +"description": "Optional. The instance_type of this instance of format: projects/{project_number}/locations/{location_id}/instanceTypes/{instance_type_id}. Instance Type represents a high-level tier or SKU of the service that this instance belong to. When enabled(eg: Maintenance Rollout), Rollout uses 'instance_type' along with 'software_versions' to determine whether instance needs an update or not.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Resource labels to represent user provided metadata. Each label is a key-value pair, where both the key and the value are arbitrary strings provided by the user.", +"type": "object" +}, +"maintenancePolicyNames": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. The MaintenancePolicies that have been attached to the instance. The key must be of the type name of the oneof policy name defined in MaintenancePolicy, and the referenced policy must define the same policy type. For details, please refer to go/mr-user-guide. Should not be set if maintenance_settings.maintenance_policies is set.", +"type": "object" +}, +"maintenanceSchedules": { +"additionalProperties": { +"$ref": "GoogleCloudSaasacceleratorManagementProvidersV1MaintenanceSchedule" +}, +"description": "The MaintenanceSchedule contains the scheduling information of published maintenance schedule with same key as software_versions.", +"type": "object" +}, +"maintenanceSettings": { +"$ref": "GoogleCloudSaasacceleratorManagementProvidersV1MaintenanceSettings", +"description": "Optional. The MaintenanceSettings associated with instance." +}, +"name": { +"description": "Unique name of the resource. It uses the form: `projects/{project_number}/locations/{location_id}/instances/{instance_id}` Note: This name is passed, stored and logged across the rollout system. So use of consumer project_id or any other consumer PII in the name is strongly discouraged for wipeout (go/wipeout) compliance. See go/elysium/project_ids#storage-guidance for more details.", +"type": "string" +}, +"notificationParameters": { +"additionalProperties": { +"$ref": "GoogleCloudSaasacceleratorManagementProvidersV1NotificationParameter" +}, +"description": "Optional. notification_parameter are information that service producers may like to include that is not relevant to Rollout. This parameter will only be passed to Gamma and Cloud Logging for notification/logging purpose.", +"type": "object" +}, +"producerMetadata": { +"additionalProperties": { +"type": "string" +}, +"description": "Output only. Custom string attributes used primarily to expose producer-specific information in monitoring dashboards. See go/get-instance-metadata.", +"readOnly": true, +"type": "object" +}, +"provisionedResources": { +"description": "Output only. The list of data plane resources provisioned for this instance, e.g. compute VMs. See go/get-instance-metadata.", +"items": { +"$ref": "GoogleCloudSaasacceleratorManagementProvidersV1ProvisionedResource" +}, +"readOnly": true, +"type": "array" +}, +"slmInstanceTemplate": { +"description": "Link to the SLM instance template. Only populated when updating SLM instances via SSA's Actuation service adaptor. Service producers with custom control plane (e.g. Cloud SQL) doesn't need to populate this field. Instead they should use software_versions.", +"type": "string" +}, +"sloMetadata": { +"$ref": "GoogleCloudSaasacceleratorManagementProvidersV1SloMetadata", +"description": "Output only. SLO metadata for instance classification in the Standardized dataplane SLO platform. See go/cloud-ssa-standard-slo for feature description.", +"readOnly": true +}, +"softwareVersions": { +"additionalProperties": { +"type": "string" +}, +"description": "Software versions that are used to deploy this instance. This can be mutated by rollout services.", +"type": "object" +}, +"state": { +"description": "Output only. Current lifecycle state of the resource (e.g. if it's being created or ready to use).", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"READY", +"UPDATING", +"REPAIRING", +"DELETING", +"ERROR" +], +"enumDescriptions": [ +"Unspecified state.", +"Instance is being created.", +"Instance has been created and is ready to use.", +"Instance is being updated.", +"Instance is unheathy and under repair.", +"Instance is being deleted.", +"Instance encountered an error and is in indeterministic state." +], +"readOnly": true, +"type": "string" +}, +"tenantProjectId": { +"description": "Output only. ID of the associated GCP tenant project. See go/get-instance-metadata.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. Timestamp when the resource was last modified.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSaasacceleratorManagementProvidersV1MaintenanceSchedule": { +"description": "Maintenance schedule which is exposed to customer and potentially end user, indicating published upcoming future maintenance schedule", +"id": "GoogleCloudSaasacceleratorManagementProvidersV1MaintenanceSchedule", +"properties": { +"canReschedule": { +"deprecated": true, +"description": "This field is deprecated, and will be always set to true since reschedule can happen multiple times now. This field should not be removed until all service producers remove this for their customers.", +"type": "boolean" +}, +"endTime": { +"description": "The scheduled end time for the maintenance.", +"format": "google-datetime", +"type": "string" +}, +"rolloutManagementPolicy": { +"description": "The rollout management policy this maintenance schedule is associated with. When doing reschedule update request, the reschedule should be against this given policy.", +"type": "string" +}, +"scheduleDeadlineTime": { +"description": "schedule_deadline_time is the time deadline any schedule start time cannot go beyond, including reschedule. It's normally the initial schedule start time plus maintenance window length (1 day or 1 week). Maintenance cannot be scheduled to start beyond this deadline.", +"format": "google-datetime", +"type": "string" +}, +"startTime": { +"description": "The scheduled start time for the maintenance.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSaasacceleratorManagementProvidersV1MaintenanceSettings": { +"description": "Maintenance settings associated with instance. Allows service producers and end users to assign settings that controls maintenance on this instance.", +"id": "GoogleCloudSaasacceleratorManagementProvidersV1MaintenanceSettings", +"properties": { +"exclude": { +"description": "Optional. Exclude instance from maintenance. When true, rollout service will not attempt maintenance on the instance. Rollout service will include the instance in reported rollout progress as not attempted.", +"type": "boolean" +}, +"isRollback": { +"description": "Optional. If the update call is triggered from rollback, set the value as true.", +"type": "boolean" +}, +"maintenancePolicies": { +"additionalProperties": { +"$ref": "MaintenancePolicy" +}, +"description": "Optional. The MaintenancePolicies that have been attached to the instance. The key must be of the type name of the oneof policy name defined in MaintenancePolicy, and the embedded policy must define the same policy type. For details, please refer to go/mr-user-guide. Should not be set if maintenance_policy_names is set. If only the name is needed, then only populate MaintenancePolicy.name.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudSaasacceleratorManagementProvidersV1NodeSloMetadata": { +"description": "Node information for custom per-node SLO implementations. SSA does not support per-node SLO, but producers can populate per-node information in SloMetadata for custom precomputations. SSA Eligibility Exporter will emit per-node metric based on this information.", +"id": "GoogleCloudSaasacceleratorManagementProvidersV1NodeSloMetadata", +"properties": { +"location": { +"description": "The location of the node, if different from instance location.", +"type": "string" +}, +"nodeId": { +"description": "The id of the node. This should be equal to SaasInstanceNode.node_id.", +"type": "string" +}, +"perSliEligibility": { +"$ref": "GoogleCloudSaasacceleratorManagementProvidersV1PerSliSloEligibility", +"description": "If present, this will override eligibility for the node coming from instance or exclusions for specified SLIs." +} +}, +"type": "object" +}, +"GoogleCloudSaasacceleratorManagementProvidersV1NotificationParameter": { +"description": "Contains notification related data.", +"id": "GoogleCloudSaasacceleratorManagementProvidersV1NotificationParameter", +"properties": { +"values": { +"description": "Optional. Array of string values. e.g. instance's replica information.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudSaasacceleratorManagementProvidersV1PerSliSloEligibility": { +"description": "PerSliSloEligibility is a mapping from an SLI name to eligibility.", +"id": "GoogleCloudSaasacceleratorManagementProvidersV1PerSliSloEligibility", +"properties": { +"eligibilities": { +"additionalProperties": { +"$ref": "GoogleCloudSaasacceleratorManagementProvidersV1SloEligibility" +}, +"description": "An entry in the eligibilities map specifies an eligibility for a particular SLI for the given instance. The SLI key in the name must be a valid SLI name specified in the Eligibility Exporter binary flags otherwise an error will be emitted by Eligibility Exporter and the oncaller will be alerted. If an SLI has been defined in the binary flags but the eligibilities map does not contain it, the corresponding SLI time series will not be emitted by the Eligibility Exporter. This ensures a smooth rollout and compatibility between the data produced by different versions of the Eligibility Exporters. If eligibilities map contains a key for an SLI which has not been declared in the binary flags, there will be an error message emitted in the Eligibility Exporter log and the metric for the SLI in question will not be emitted.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudSaasacceleratorManagementProvidersV1ProvisionedResource": { +"description": "Describes provisioned dataplane resources.", +"id": "GoogleCloudSaasacceleratorManagementProvidersV1ProvisionedResource", +"properties": { +"resourceType": { +"description": "Type of the resource. This can be either a GCP resource or a custom one (e.g. another cloud provider's VM). For GCP compute resources use singular form of the names listed in GCP compute API documentation (https://cloud.google.com/compute/docs/reference/rest/v1/), prefixed with 'compute-', for example: 'compute-instance', 'compute-disk', 'compute-autoscaler'.", +"type": "string" +}, +"resourceUrl": { +"description": "URL identifying the resource, e.g. \"https://www.googleapis.com/compute/v1/projects/...)\".", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSaasacceleratorManagementProvidersV1SloEligibility": { +"description": "SloEligibility is a tuple containing eligibility value: true if an instance is eligible for SLO calculation or false if it should be excluded from all SLO-related calculations along with a user-defined reason.", +"id": "GoogleCloudSaasacceleratorManagementProvidersV1SloEligibility", +"properties": { +"eligible": { +"description": "Whether an instance is eligible or ineligible.", +"type": "boolean" +}, +"reason": { +"description": "User-defined reason for the current value of instance eligibility. Usually, this can be directly mapped to the internal state. An empty reason is allowed.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSaasacceleratorManagementProvidersV1SloMetadata": { +"description": "SloMetadata contains resources required for proper SLO classification of the instance.", +"id": "GoogleCloudSaasacceleratorManagementProvidersV1SloMetadata", +"properties": { +"nodes": { +"description": "Optional. List of nodes. Some producers need to use per-node metadata to calculate SLO. This field allows such producers to publish per-node SLO meta data, which will be consumed by SSA Eligibility Exporter and published in the form of per node metric to Monarch.", +"items": { +"$ref": "GoogleCloudSaasacceleratorManagementProvidersV1NodeSloMetadata" +}, +"type": "array" +}, +"perSliEligibility": { +"$ref": "GoogleCloudSaasacceleratorManagementProvidersV1PerSliSloEligibility", +"description": "Optional. Multiple per-instance SLI eligibilities which apply for individual SLIs." +}, +"tier": { +"description": "Name of the SLO tier the Instance belongs to. This name will be expected to match the tiers specified in the service SLO configuration. Field is mandatory and must not be empty.", +"type": "string" +} +}, +"type": "object" +}, +"IOPSPerTB": { +"description": "IOPS per TB. Filestore defines TB as 1024^4 bytes (TiB).", +"id": "IOPSPerTB", +"properties": { +"maxIopsPerTb": { +"description": "Required. Maximum IOPS per TiB.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"Instance": { +"description": "A Filestore instance.", +"id": "Instance", +"properties": { +"configurablePerformanceEnabled": { +"description": "Output only. Indicates whether this instance's performance is configurable. If enabled, adjust it using the 'performance_config' field.", +"readOnly": true, +"type": "boolean" +}, +"createTime": { +"description": "Output only. The time when the instance was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"deletionProtectionEnabled": { +"description": "Optional. Indicates whether the instance is protected against deletion.", +"type": "boolean" +}, +"deletionProtectionReason": { +"description": "Optional. The reason for enabling deletion protection.", +"type": "string" +}, +"description": { +"description": "The description of the instance (2048 characters or less).", +"type": "string" +}, +"etag": { +"description": "Server-specified ETag for the instance resource to prevent simultaneous updates from overwriting each other.", +"type": "string" +}, +"fileShares": { +"description": "File system shares on the instance. For this version, only a single file share is supported.", +"items": { +"$ref": "FileShareConfig" +}, +"type": "array" +}, +"kmsKeyName": { +"description": "KMS key name used for data encryption.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Resource labels to represent user provided metadata.", +"type": "object" +}, +"name": { +"description": "Output only. The resource name of the instance, in the format `projects/{project}/locations/{location}/instances/{instance}`.", +"readOnly": true, +"type": "string" +}, +"networks": { +"description": "VPC networks to which the instance is connected. For this version, only a single network is supported.", +"items": { +"$ref": "NetworkConfig" +}, +"type": "array" +}, +"performanceConfig": { +"$ref": "PerformanceConfig", +"description": "Optional. Used to configure performance." +}, +"performanceLimits": { +"$ref": "PerformanceLimits", +"description": "Output only. Used for getting performance limits.", +"readOnly": true +}, +"protocol": { +"description": "Immutable. The protocol indicates the access protocol for all shares in the instance. This field is immutable and it cannot be changed after the instance has been created. Default value: `NFS_V3`.", +"enum": [ +"FILE_PROTOCOL_UNSPECIFIED", +"NFS_V3", +"NFS_V4_1" +], +"enumDescriptions": [ +"FILE_PROTOCOL_UNSPECIFIED serves a \"not set\" default value when a FileProtocol is a separate field in a message.", +"NFS 3.0.", +"NFS 4.1." +], +"type": "string" +}, +"replication": { +"$ref": "Replication", +"description": "Optional. Replication configuration." +}, +"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": "Output only. The instance state.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"READY", +"REPAIRING", +"DELETING", +"ERROR", +"RESTORING", +"SUSPENDED", +"SUSPENDING", +"RESUMING", +"REVERTING", +"PROMOTING" +], +"enumDescriptions": [ +"State not set.", +"The instance is being created.", +"The instance is available for use.", +"Work is being done on the instance. You can get further details from the `statusMessage` field of the `Instance` resource.", +"The instance is shutting down.", +"The instance is experiencing an issue and might be unusable. You can get further details from the `statusMessage` field of the `Instance` resource.", +"The instance is restoring a backup to an existing file share and may be unusable during this time.", +"The instance is suspended. You can get further details from the `suspension_reasons` field of the `Instance` resource.", +"The instance is in the process of becoming suspended.", +"The instance is in the process of becoming active.", +"The instance is reverting to a snapshot.", +"The replica instance is being promoted." +], +"readOnly": true, +"type": "string" +}, +"statusMessage": { +"description": "Output only. Additional information about the instance state, if available.", +"readOnly": true, +"type": "string" +}, +"suspensionReasons": { +"description": "Output only. Field indicates all the reasons the instance is in \"SUSPENDED\" state.", +"items": { +"enum": [ +"SUSPENSION_REASON_UNSPECIFIED", +"KMS_KEY_ISSUE" +], +"enumDescriptions": [ +"Not set.", +"The KMS key used by the instance is either revoked or denied access to." +], +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"tags": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Input only. Immutable. Tag key-value pairs bound to this resource. Each key must be a namespaced name and each value a short name. Example: \"123456789012/environment\" : \"production\", \"123456789013/costCenter\" : \"marketing\" See the documentation for more information: - Namespaced name: https://cloud.google.com/resource-manager/docs/tags/tags-creating-and-managing#retrieving_tag_key - Short name: https://cloud.google.com/resource-manager/docs/tags/tags-creating-and-managing#retrieving_tag_value", +"type": "object" +}, +"tier": { +"description": "The service tier of the instance.", +"enum": [ +"TIER_UNSPECIFIED", +"STANDARD", +"PREMIUM", +"BASIC_HDD", +"BASIC_SSD", +"HIGH_SCALE_SSD", +"ENTERPRISE", +"ZONAL", +"REGIONAL" +], +"enumDescriptions": [ +"Not set.", +"STANDARD tier. BASIC_HDD is the preferred term for this tier.", +"PREMIUM tier. BASIC_SSD is the preferred term for this tier.", +"BASIC instances offer a maximum capacity of 63.9 TB. BASIC_HDD is an alias for STANDARD Tier, offering economical performance backed by HDD.", +"BASIC instances offer a maximum capacity of 63.9 TB. BASIC_SSD is an alias for PREMIUM Tier, and offers improved performance backed by SSD.", +"HIGH_SCALE instances offer expanded capacity and performance scaling capabilities.", +"ENTERPRISE instances offer the features and availability needed for mission-critical workloads.", +"ZONAL instances offer expanded capacity and performance scaling capabilities.", +"REGIONAL instances offer the features and availability needed for mission-critical workloads." +], +"type": "string" +} +}, +"type": "object" +}, +"ListBackupsResponse": { +"description": "ListBackupsResponse is the result of ListBackupsRequest.", +"id": "ListBackupsResponse", +"properties": { +"backups": { +"description": "A list of backups in the project for the specified location. If the `{location}` value in the request is \"-\", the response contains a list of backups from all locations. If any location is unreachable, the response will only return backups in reachable locations and the \"unreachable\" field will be populated with a list of unreachable locations.", +"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": "Unordered list. Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListInstancesResponse": { +"description": "ListInstancesResponse is the result of ListInstancesRequest.", +"id": "ListInstancesResponse", +"properties": { +"instances": { +"description": "A list of instances in the project for the specified location. If the `{location}` value in the request is \"-\", the response contains a list of instances from all locations. If any location is unreachable, the response will only return instances in reachable locations and the \"unreachable\" field will be populated with a list of unreachable locations.", +"items": { +"$ref": "Instance" +}, +"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": "Unordered list. 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" +}, +"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 instance.", +"items": { +"$ref": "Snapshot" +}, +"type": "array" +}, +"unreachable": { +"description": "Unordered list. 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" +}, +"MaintenancePolicy": { +"description": "Defines policies to service maintenance events.", +"id": "MaintenancePolicy", +"properties": { +"createTime": { +"description": "Output only. The time when the resource was created.", +"format": "google-datetime", +"type": "string" +}, +"description": { +"description": "Optional. Description of what this policy is for. Create/Update methods return INVALID_ARGUMENT if the length is greater than 512.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Resource labels to represent user provided metadata. Each label is a key-value pair, where both the key and the value are arbitrary strings provided by the user.", +"type": "object" +}, +"name": { +"description": "Required. MaintenancePolicy name using the form: `projects/{project_id}/locations/{location_id}/maintenancePolicies/{maintenance_policy_id}` where {project_id} refers to a GCP consumer project ID, {location_id} refers to a GCP region/zone, {maintenance_policy_id} must be 1-63 characters long and match the regular expression `[a-z0-9]([-a-z0-9]*[a-z0-9])?`.", +"type": "string" +}, +"state": { +"description": "Optional. The state of the policy.", +"enum": [ +"STATE_UNSPECIFIED", +"READY", +"DELETING" +], +"enumDescriptions": [ +"Unspecified state.", +"Resource is ready to be used.", +"Resource is being deleted. It can no longer be attached to instances." +], +"type": "string" +}, +"updatePolicy": { +"$ref": "UpdatePolicy", +"description": "Maintenance policy applicable to instance update." +}, +"updateTime": { +"description": "Output only. The time when the resource was updated.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"MaintenanceWindow": { +"description": "MaintenanceWindow definition.", +"id": "MaintenanceWindow", +"properties": { +"dailyCycle": { +"$ref": "DailyCycle", +"description": "Daily cycle." +}, +"weeklyCycle": { +"$ref": "WeeklyCycle", +"description": "Weekly cycle." +} +}, +"type": "object" +}, +"NetworkConfig": { +"description": "Network configuration for the instance.", +"id": "NetworkConfig", +"properties": { +"connectMode": { +"description": "The network connect mode of the Filestore instance. If not provided, the connect mode defaults to DIRECT_PEERING.", +"enum": [ +"CONNECT_MODE_UNSPECIFIED", +"DIRECT_PEERING", +"PRIVATE_SERVICE_ACCESS" +], +"enumDescriptions": [ +"Not set.", +"Connect via direct peering to the Filestore service.", +"Connect to your Filestore instance using Private Service Access. Private services access provides an IP address range for multiple Google Cloud services, including Filestore." +], +"type": "string" +}, +"ipAddresses": { +"description": "Output only. IPv4 addresses in the format `{octet1}.{octet2}.{octet3}.{octet4}` or IPv6 addresses in the format `{block1}:{block2}:{block3}:{block4}:{block5}:{block6}:{block7}:{block8}`.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"modes": { +"description": "Internet protocol versions for which the instance has IP addresses assigned. For this version, only MODE_IPV4 is supported.", +"items": { +"enum": [ +"ADDRESS_MODE_UNSPECIFIED", +"MODE_IPV4" +], +"enumDescriptions": [ +"Internet protocol not set.", +"Use the IPv4 internet protocol." +], +"type": "string" +}, +"type": "array" +}, +"network": { +"description": "The name of the Google Compute Engine [VPC network](https://cloud.google.com/vpc/docs/vpc) to which the instance is connected.", +"type": "string" +}, +"reservedIpRange": { +"description": "Optional, reserved_ip_range can have one of the following two types of values. * CIDR range value when using DIRECT_PEERING connect mode. * [Allocated IP address range](https://cloud.google.com/compute/docs/ip-addresses/reserve-static-internal-ip-address) when using PRIVATE_SERVICE_ACCESS connect mode. When the name of an allocated IP address range is specified, it must be one of the ranges associated with the private service access connection. When specified as a direct CIDR value, it must be a /29 CIDR block for Basic tier, a /24 CIDR block for High Scale tier, or a /26 CIDR block for Enterprise tier in one of the [internal IP address ranges](https://www.arin.net/reference/research/statistics/address_filters/) that identifies the range of IP addresses reserved for this instance. For example, 10.0.0.0/29, 192.168.0.0/24 or 192.168.0.0/26, respectively. The range you specify can't overlap with either existing subnets or assigned IP address ranges for other Filestore instances in the selected VPC network.", +"type": "string" +} +}, +"type": "object" +}, +"NfsExportOptions": { +"description": "NFS export options specifications.", +"id": "NfsExportOptions", +"properties": { +"accessMode": { +"description": "Either READ_ONLY, for allowing only read requests on the exported directory, or READ_WRITE, for allowing both read and write requests. The default is READ_WRITE.", +"enum": [ +"ACCESS_MODE_UNSPECIFIED", +"READ_ONLY", +"READ_WRITE" +], +"enumDescriptions": [ +"AccessMode not set.", +"The client can only read the file share.", +"The client can read and write the file share (default)." +], +"type": "string" +}, +"anonGid": { +"description": "An integer representing the anonymous group id with a default value of 65534. Anon_gid may only be set with squash_mode of ROOT_SQUASH. An error will be returned if this field is specified for other squash_mode settings.", +"format": "int64", +"type": "string" +}, +"anonUid": { +"description": "An integer representing the anonymous user id with a default value of 65534. Anon_uid may only be set with squash_mode of ROOT_SQUASH. An error will be returned if this field is specified for other squash_mode settings.", +"format": "int64", +"type": "string" +}, +"ipRanges": { +"description": "List of either an IPv4 addresses in the format `{octet1}.{octet2}.{octet3}.{octet4}` or CIDR ranges in the format `{octet1}.{octet2}.{octet3}.{octet4}/{mask size}` which may mount the file share. Overlapping IP ranges are not allowed, both within and across NfsExportOptions. An error will be returned. The limit is 64 IP ranges/addresses for each FileShareConfig among all NfsExportOptions.", +"items": { +"type": "string" +}, +"type": "array" +}, +"squashMode": { +"description": "Either NO_ROOT_SQUASH, for allowing root access on the exported directory, or ROOT_SQUASH, for not allowing root access. The default is NO_ROOT_SQUASH.", +"enum": [ +"SQUASH_MODE_UNSPECIFIED", +"NO_ROOT_SQUASH", +"ROOT_SQUASH" +], +"enumDescriptions": [ +"SquashMode not set.", +"The Root user has root access to the file share (default).", +"The Root user has squashed access to the anonymous uid/gid." +], +"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" +}, +"PerformanceConfig": { +"description": "Used for setting the performance configuration. If the user doesn't specify PerformanceConfig, automatically provision the default performance settings as described in https://cloud.google.com/filestore/docs/performance. Larger instances will be linearly set to more IOPS. If the instance's capacity is increased or decreased, its performance will be automatically adjusted upwards or downwards accordingly (respectively).", +"id": "PerformanceConfig", +"properties": { +"fixedIops": { +"$ref": "FixedIOPS", +"description": "Choose a fixed provisioned IOPS value for the instance, which will remain constant regardless of instance capacity. Value must be a multiple of 1000. If the chosen value is outside the supported range for the instance's capacity during instance creation, instance creation will fail with an `InvalidArgument` error. Similarly, if an instance capacity update would result in a value outside the supported range, the update will fail with an `InvalidArgument` error." +}, +"iopsPerTb": { +"$ref": "IOPSPerTB", +"description": "Provision IOPS dynamically based on the capacity of the instance. Provisioned read IOPS will be calculated by multiplying the capacity of the instance in TiB by the `iops_per_tb` value. For example, for a 2 TiB instance with an `iops_per_tb` value of 17000 the provisioned read IOPS will be 34000. If the calculated value is outside the supported range for the instance's capacity during instance creation, instance creation will fail with an `InvalidArgument` error. Similarly, if an instance capacity update would result in a value outside the supported range, the update will fail with an `InvalidArgument` error." +} +}, +"type": "object" +}, +"PerformanceLimits": { +"description": "The enforced performance limits, calculated from the instance's performance configuration.", +"id": "PerformanceLimits", +"properties": { +"maxReadIops": { +"description": "Output only. The max read IOPS.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"maxReadThroughputBps": { +"description": "Output only. The max read throughput in bytes per second.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"maxWriteIops": { +"description": "Output only. The max write IOPS.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"maxWriteThroughputBps": { +"description": "Output only. The max write throughput in bytes per second.", +"format": "int64", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"PromoteReplicaRequest": { +"description": "PromoteReplicaRequest promotes a Filestore standby instance (replica).", +"id": "PromoteReplicaRequest", +"properties": {}, +"type": "object" +}, +"ReplicaConfig": { +"description": "Replica configuration for the instance.", +"id": "ReplicaConfig", +"properties": { +"lastActiveSyncTime": { +"description": "Output only. The timestamp of the latest replication snapshot taken on the active instance and is already replicated safely.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"peerInstance": { +"description": "Optional. The peer instance.", +"type": "string" +}, +"state": { +"description": "Output only. The replica state.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"READY", +"REMOVING", +"FAILED" +], +"enumDescriptions": [ +"State not set.", +"The replica is being created.", +"The replica is ready.", +"The replica is being removed.", +"The replica is experiencing an issue and might be unusable. You can get further details from the `stateReasons` field of the `ReplicaConfig` object." +], +"readOnly": true, +"type": "string" +}, +"stateReasons": { +"description": "Output only. Additional information about the replication state, if available.", +"items": { +"enum": [ +"STATE_REASON_UNSPECIFIED", +"PEER_INSTANCE_UNREACHABLE" +], +"enumDescriptions": [ +"Reason not specified.", +"The peer instance is unreachable." +], +"type": "string" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"Replication": { +"description": "Replication specifications.", +"id": "Replication", +"properties": { +"replicas": { +"description": "Optional. Replication configuration for the replica instance associated with this instance. Only a single replica is supported.", +"items": { +"$ref": "ReplicaConfig" +}, +"type": "array" +}, +"role": { +"description": "Optional. The replication role.", +"enum": [ +"ROLE_UNSPECIFIED", +"ACTIVE", +"STANDBY" +], +"enumDescriptions": [ +"Role not set.", +"The instance is the `ACTIVE` replication member, functions as the replication source instance.", +"The instance is the `STANDBY` replication member, functions as the replication destination instance." +], +"type": "string" +} +}, +"type": "object" +}, +"RestoreInstanceRequest": { +"description": "RestoreInstanceRequest restores an existing instance's file share from a backup.", +"id": "RestoreInstanceRequest", +"properties": { +"fileShare": { +"description": "Required. Name of the file share in the Filestore instance that the backup is being restored to.", +"type": "string" +}, +"sourceBackup": { +"description": "The resource name of the backup, in the format `projects/{project_number}/locations/{location_id}/backups/{backup_id}`.", +"type": "string" +} +}, +"type": "object" +}, +"RevertInstanceRequest": { +"description": "RevertInstanceRequest reverts the given instance's file share to the specified snapshot.", +"id": "RevertInstanceRequest", +"properties": { +"targetSnapshotId": { +"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}/instances/{instance_id}/snapshots/{snapshot_id}`", +"type": "string" +} +}, +"type": "object" +}, +"Schedule": { +"description": "Configure the schedule.", +"id": "Schedule", +"properties": { +"day": { +"description": "Allows to define schedule that runs specified 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" +}, +"duration": { +"description": "Output only. Duration of the time window, set by service producer.", +"format": "google-duration", +"type": "string" +}, +"startTime": { +"$ref": "TimeOfDay", +"description": "Time within the window to start the operations." +} +}, +"type": "object" +}, +"Snapshot": { +"description": "A Filestore snapshot.", +"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" +}, +"filesystemUsedBytes": { +"description": "Output only. The amount of bytes needed to allocate a full copy of the snapshot content", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Resource labels to represent user provided metadata.", +"type": "object" +}, +"name": { +"description": "Output only. The resource name of the snapshot, in the format `projects/{project_id}/locations/{location_id}/instances/{instance_id}/snapshots/{snapshot_id}`.", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. The snapshot state.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"READY", +"DELETING" +], +"enumDescriptions": [ +"State not set.", +"Snapshot is being created.", +"Snapshot is available for use.", +"Snapshot is being deleted." +], +"readOnly": true, +"type": "string" +}, +"tags": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Input only. Immutable. Tag key-value pairs bound to this resource. Each key must be a namespaced name and each value a short name. Example: \"123456789012/environment\" : \"production\", \"123456789013/costCenter\" : \"marketing\" See the documentation for more information: - Namespaced name: https://cloud.google.com/resource-manager/docs/tags/tags-creating-and-managing#retrieving_tag_key - Short name: https://cloud.google.com/resource-manager/docs/tags/tags-creating-and-managing#retrieving_tag_value", +"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" +}, +"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" +}, +"UpdatePolicy": { +"description": "Maintenance policy applicable to instance updates.", +"id": "UpdatePolicy", +"properties": { +"channel": { +"description": "Optional. Relative scheduling channel applied to resource.", +"enum": [ +"UPDATE_CHANNEL_UNSPECIFIED", +"EARLIER", +"LATER", +"WEEK1", +"WEEK2", +"WEEK5" +], +"enumDescriptions": [ +"Unspecified channel.", +"Early channel within a customer project.", +"Later channel within a customer project.", +"! ! The follow channels can ONLY be used if you adopt the new MW system! ! ! NOTE: all WEEK channels are assumed to be under a weekly window. ! There is currently no dedicated channel definitions for Daily windows. ! If you use Daily window, the system will assume a 1d (24Hours) advanced ! notification period b/w EARLY and LATER. ! We may consider support more flexible daily channel specifications in ! the future. WEEK1 == EARLIER with minimum 7d advanced notification. {7d, 14d} The system will treat them equally and will use WEEK1 whenever it can. New customers are encouraged to use this channel annotation.", +"WEEK2 == LATER with minimum 14d advanced notification {14d, 21d}.", +"WEEK5 == 40d support. minimum 35d advanced notification {35d, 42d}." +], +"type": "string" +}, +"denyMaintenancePeriods": { +"description": "Deny Maintenance Period that is applied to resource to indicate when maintenance is forbidden. The protocol supports zero-to-many such periods, but the current SLM Rollout implementation only supports zero-to-one.", +"items": { +"$ref": "DenyMaintenancePeriod" +}, +"type": "array" +}, +"window": { +"$ref": "MaintenanceWindow", +"description": "Optional. Maintenance window that is applied to resources covered by this policy." +} +}, +"type": "object" +}, +"WeeklyCycle": { +"description": "Time window specified for weekly operations.", +"id": "WeeklyCycle", +"properties": { +"schedule": { +"description": "User can specify multiple windows in a week. Minimum of 1 window.", +"items": { +"$ref": "Schedule" +}, +"type": "array" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Cloud Filestore 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/firebaseappdistribution.v1alpha.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/firebaseappdistribution.v1alpha.json new file mode 100644 index 0000000000000000000000000000000000000000..10c15acab939b65e9d99fb3da13e049ea414a9c6 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/firebaseappdistribution.v1alpha.json @@ -0,0 +1,1912 @@ +{ +"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://firebaseappdistribution.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Firebase App Distribution", +"description": "", +"discoveryVersion": "v1", +"documentationLink": "https://firebase.google.com/products/app-distribution", +"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": "firebaseappdistribution:v1alpha", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://firebaseappdistribution.mtls.googleapis.com/", +"name": "firebaseappdistribution", +"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": { +"get": { +"description": "Get the app, if it exists", +"flatPath": "v1alpha/apps/{mobilesdkAppId}", +"httpMethod": "GET", +"id": "firebaseappdistribution.apps.get", +"parameterOrder": [ +"mobilesdkAppId" +], +"parameters": { +"appView": { +"description": "App view. When unset or set to BASIC, returns an App with everything set except for aab_state. When set to FULL, returns an App with aab_state set.", +"enum": [ +"APP_VIEW_UNSPECIFIED", +"BASIC", +"FULL" +], +"enumDescriptions": [ +"The default / unset value. The API will default to the BASIC view.", +"Include everything except aab_state.", +"Include everything." +], +"location": "query", +"type": "string" +}, +"mobilesdkAppId": { +"description": "Unique id for a Firebase app of the format: {version}:{project_number}:{platform}:{hash(bundle_id)} Example: 1:581234567376:android:aa0a3c7b135e90289", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/apps/{mobilesdkAppId}", +"response": { +"$ref": "GoogleFirebaseAppdistroV1alphaApp" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getJwt": { +"description": "Get a JWT token", +"flatPath": "v1alpha/apps/{mobilesdkAppId}/jwt", +"httpMethod": "GET", +"id": "firebaseappdistribution.apps.getJwt", +"parameterOrder": [ +"mobilesdkAppId" +], +"parameters": { +"mobilesdkAppId": { +"description": "Unique id for a Firebase app of the format: {version}:{project_number}:{platform}:{hash(bundle_id)} Example: 1:581234567376:android:aa0a3c7b135e90289", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/apps/{mobilesdkAppId}/jwt", +"response": { +"$ref": "GoogleFirebaseAppdistroV1alphaJwt" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"provisionApp": { +"description": "Provision app distribution for an existing Firebase app, enabling it to subsequently be used by appdistro.", +"flatPath": "v1alpha/apps/{mobilesdkAppId}", +"httpMethod": "POST", +"id": "firebaseappdistribution.apps.provisionApp", +"parameterOrder": [ +"mobilesdkAppId" +], +"parameters": { +"mobilesdkAppId": { +"description": "Unique id for a Firebase app of the format: {version}:{project_number}:{platform}:{hash(bundle_id)} Example: 1:581234567376:android:aa0a3c7b135e90289", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/apps/{mobilesdkAppId}", +"response": { +"$ref": "GoogleFirebaseAppdistroV1alphaProvisionAppResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"release_by_hash": { +"methods": { +"get": { +"description": "GET Release by binary upload hash", +"flatPath": "v1alpha/apps/{mobilesdkAppId}/release_by_hash/{uploadHash}", +"httpMethod": "GET", +"id": "firebaseappdistribution.apps.release_by_hash.get", +"parameterOrder": [ +"mobilesdkAppId", +"uploadHash" +], +"parameters": { +"mobilesdkAppId": { +"description": "Unique id for a Firebase app of the format: {version}:{project_number}:{platform}:{hash(bundle_id)} Example: 1:581234567376:android:aa0a3c7b135e90289", +"location": "path", +"required": true, +"type": "string" +}, +"uploadHash": { +"description": "The hash for the upload", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/apps/{mobilesdkAppId}/release_by_hash/{uploadHash}", +"response": { +"$ref": "GoogleFirebaseAppdistroV1alphaGetReleaseByUploadHashResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"releases": { +"methods": { +"enable_access": { +"description": "Enable access on a release for testers.", +"flatPath": "v1alpha/apps/{mobilesdkAppId}/releases/{releaseId}/enable_access", +"httpMethod": "POST", +"id": "firebaseappdistribution.apps.releases.enable_access", +"parameterOrder": [ +"mobilesdkAppId", +"releaseId" +], +"parameters": { +"mobilesdkAppId": { +"description": "Unique id for a Firebase app of the format: {version}:{project_number}:{platform}:{hash(bundle_id)} Example: 1:581234567376:android:aa0a3c7b135e90289", +"location": "path", +"required": true, +"type": "string" +}, +"releaseId": { +"description": "Release identifier", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/apps/{mobilesdkAppId}/releases/{releaseId}/enable_access", +"request": { +"$ref": "GoogleFirebaseAppdistroV1alphaEnableAccessOnReleaseRequest" +}, +"response": { +"$ref": "GoogleFirebaseAppdistroV1alphaEnableAccessOnReleaseResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"notes": { +"methods": { +"create": { +"description": "Create release notes on a release.", +"flatPath": "v1alpha/apps/{mobilesdkAppId}/releases/{releaseId}/notes", +"httpMethod": "POST", +"id": "firebaseappdistribution.apps.releases.notes.create", +"parameterOrder": [ +"mobilesdkAppId", +"releaseId" +], +"parameters": { +"mobilesdkAppId": { +"description": "Unique id for a Firebase app of the format: {version}:{project_number}:{platform}:{hash(bundle_id)} Example: 1:581234567376:android:aa0a3c7b135e90289", +"location": "path", +"required": true, +"type": "string" +}, +"releaseId": { +"description": "Release identifier", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/apps/{mobilesdkAppId}/releases/{releaseId}/notes", +"request": { +"$ref": "GoogleFirebaseAppdistroV1alphaCreateReleaseNotesRequest" +}, +"response": { +"$ref": "GoogleFirebaseAppdistroV1alphaCreateReleaseNotesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"testers": { +"methods": { +"getTesterUdids": { +"description": "Get UDIDs of tester iOS devices in a project", +"flatPath": "v1alpha/apps/{mobilesdkAppId}/testers:getTesterUdids", +"httpMethod": "GET", +"id": "firebaseappdistribution.apps.testers.getTesterUdids", +"parameterOrder": [ +"mobilesdkAppId" +], +"parameters": { +"mobilesdkAppId": { +"description": "Unique id for a Firebase app of the format: {version}:{project_number}:{platform}:{hash(bundle_id)} Example: 1:581234567376:android:aa0a3c7b135e90289", +"location": "path", +"required": true, +"type": "string" +}, +"project": { +"description": "The name of the project, which is the parent of testers Format: `projects/{project_number}`", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha/apps/{mobilesdkAppId}/testers:getTesterUdids", +"response": { +"$ref": "GoogleFirebaseAppdistroV1alphaGetTesterUdidsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"upload_status": { +"methods": { +"get": { +"description": "GET Binary upload status by token", +"flatPath": "v1alpha/apps/{mobilesdkAppId}/upload_status/{uploadToken}", +"httpMethod": "GET", +"id": "firebaseappdistribution.apps.upload_status.get", +"parameterOrder": [ +"mobilesdkAppId", +"uploadToken" +], +"parameters": { +"mobilesdkAppId": { +"description": "Unique id for a Firebase app of the format: {version}:{project_number}:{platform}:{hash(bundle_id)} Example: 1:581234567376:android:aa0a3c7b135e90289", +"location": "path", +"required": true, +"type": "string" +}, +"uploadToken": { +"description": "The token for the upload", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/apps/{mobilesdkAppId}/upload_status/{uploadToken}", +"response": { +"$ref": "GoogleFirebaseAppdistroV1alphaGetUploadStatusResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"projects": { +"resources": { +"apps": { +"methods": { +"getTestConfig": { +"description": "Gets configuration for automated tests.", +"flatPath": "v1alpha/projects/{projectsId}/apps/{appsId}/testConfig", +"httpMethod": "GET", +"id": "firebaseappdistribution.projects.apps.getTestConfig", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the `TestConfig` resource to retrieve. Format: `projects/{project_number}/apps/{app_id}/testConfig`", +"location": "path", +"pattern": "^projects/[^/]+/apps/[^/]+/testConfig$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "GoogleFirebaseAppdistroV1alphaTestConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateTestConfig": { +"description": "Updates a release.", +"flatPath": "v1alpha/projects/{projectsId}/apps/{appsId}/testConfig", +"httpMethod": "PATCH", +"id": "firebaseappdistribution.projects.apps.updateTestConfig", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. The name of the test configuration resource. Format: `projects/{project_number}/apps/{app_id}/testConfig`", +"location": "path", +"pattern": "^projects/[^/]+/apps/[^/]+/testConfig$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. The list of fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"request": { +"$ref": "GoogleFirebaseAppdistroV1alphaTestConfig" +}, +"response": { +"$ref": "GoogleFirebaseAppdistroV1alphaTestConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"releases": { +"resources": { +"tests": { +"methods": { +"cancel": { +"description": "Abort automated test run on release.", +"flatPath": "v1alpha/projects/{projectsId}/apps/{appsId}/releases/{releasesId}/tests/{testsId}:cancel", +"httpMethod": "GET", +"id": "firebaseappdistribution.projects.apps.releases.tests.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the release test resource. Format: `projects/{project_number}/apps/{app_id}/releases/{release_id}/tests/{test_id}`", +"location": "path", +"pattern": "^projects/[^/]+/apps/[^/]+/releases/[^/]+/tests/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}:cancel", +"response": { +"$ref": "GoogleFirebaseAppdistroV1alphaCancelReleaseTestResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"create": { +"description": "Run automated test(s) on release.", +"flatPath": "v1alpha/projects/{projectsId}/apps/{appsId}/releases/{releasesId}/tests", +"httpMethod": "POST", +"id": "firebaseappdistribution.projects.apps.releases.tests.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the release resource, which is the parent of the test Format: `projects/{project_number}/apps/{app_id}/releases/{release_id}`", +"location": "path", +"pattern": "^projects/[^/]+/apps/[^/]+/releases/[^/]+$", +"required": true, +"type": "string" +}, +"releaseTestId": { +"description": "Optional. The ID to use for the test, which will become the final component of the test's resource name. This value should be 4-63 characters, and valid characters are /a-z-/. If it is not provided one will be automatically generated.", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha/{+parent}/tests", +"request": { +"$ref": "GoogleFirebaseAppdistroV1alphaReleaseTest" +}, +"response": { +"$ref": "GoogleFirebaseAppdistroV1alphaReleaseTest" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Get results for automated test run on release.", +"flatPath": "v1alpha/projects/{projectsId}/apps/{appsId}/releases/{releasesId}/tests/{testsId}", +"httpMethod": "GET", +"id": "firebaseappdistribution.projects.apps.releases.tests.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the release test resource. Format: `projects/{project_number}/apps/{app_id}/releases/{release_id}/tests/{test_id}`", +"location": "path", +"pattern": "^projects/[^/]+/apps/[^/]+/releases/[^/]+/tests/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "GoogleFirebaseAppdistroV1alphaReleaseTest" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "List results for automated tests run on release.", +"flatPath": "v1alpha/projects/{projectsId}/apps/{appsId}/releases/{releasesId}/tests", +"httpMethod": "GET", +"id": "firebaseappdistribution.projects.apps.releases.tests.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of tests 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 `ListReleaseTests` call. Provide this to retrieve the subsequent page.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the release resource, which is the parent of the tests Format: `projects/{project_number}/apps/{app_id}/releases/{release_id}`", +"location": "path", +"pattern": "^projects/[^/]+/apps/[^/]+/releases/[^/]+$", +"required": true, +"type": "string" +}, +"view": { +"description": "Optional. The requested view on the returned ReleaseTests. Defaults to the basic view.", +"enum": [ +"RELEASE_TEST_VIEW_UNSPECIFIED", +"RELEASE_TEST_VIEW_BASIC", +"RELEASE_TEST_VIEW_FULL" +], +"enumDescriptions": [ +"The default / unset value. The default view depends on the RPC.", +"Include basic metadata about the release test and its status, but not the full result details. This is the default value for ListReleaseTests.", +"Include everything." +], +"location": "query", +"type": "string" +} +}, +"path": "v1alpha/{+parent}/tests", +"response": { +"$ref": "GoogleFirebaseAppdistroV1alphaListReleaseTestsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"testCases": { +"methods": { +"create": { +"description": "Create a new test case.", +"flatPath": "v1alpha/projects/{projectsId}/apps/{appsId}/testCases", +"httpMethod": "POST", +"id": "firebaseappdistribution.projects.apps.testCases.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource where this test case will be created. Format: `projects/{project_number}/apps/{app_id}`", +"location": "path", +"pattern": "^projects/[^/]+/apps/[^/]+$", +"required": true, +"type": "string" +}, +"testCaseId": { +"description": "Optional. The ID to use for the test case, which will become the final component of the test case's resource name. This value should be 4-63 characters, and valid characters are /a-z-/.", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha/{+parent}/testCases", +"request": { +"$ref": "GoogleFirebaseAppdistroV1alphaTestCase" +}, +"response": { +"$ref": "GoogleFirebaseAppdistroV1alphaTestCase" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Delete a test case.", +"flatPath": "v1alpha/projects/{projectsId}/apps/{appsId}/testCases/{testCasesId}", +"httpMethod": "DELETE", +"id": "firebaseappdistribution.projects.apps.testCases.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the test case resource to delete. Format: `projects/{project_number}/apps/{app_id}/testCases/{test_case_id}`", +"location": "path", +"pattern": "^projects/[^/]+/apps/[^/]+/testCases/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Get a test case.", +"flatPath": "v1alpha/projects/{projectsId}/apps/{appsId}/testCases/{testCasesId}", +"httpMethod": "GET", +"id": "firebaseappdistribution.projects.apps.testCases.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the test case resource to retrieve. Format: `projects/{project_number}/apps/{app_id}/testCases/{test_case_id}`", +"location": "path", +"pattern": "^projects/[^/]+/apps/[^/]+/testCases/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "GoogleFirebaseAppdistroV1alphaTestCase" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "List test cases.", +"flatPath": "v1alpha/projects/{projectsId}/apps/{appsId}/testCases", +"httpMethod": "GET", +"id": "firebaseappdistribution.projects.apps.testCases.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of test cases to return. The service may return fewer than this value. If unspecified, at most 50 test cases 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 `ListTestCases` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListTestCases` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource from which to list test cases. Format: `projects/{project_number}/apps/{app_id}`", +"location": "path", +"pattern": "^projects/[^/]+/apps/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+parent}/testCases", +"response": { +"$ref": "GoogleFirebaseAppdistroV1alphaListTestCasesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Update a test case.", +"flatPath": "v1alpha/projects/{projectsId}/apps/{appsId}/testCases/{testCasesId}", +"httpMethod": "PATCH", +"id": "firebaseappdistribution.projects.apps.testCases.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. The name of the test case resource. Format: `projects/{project_number}/apps/{app_id}/testCases/{test_case_id}`", +"location": "path", +"pattern": "^projects/[^/]+/apps/[^/]+/testCases/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"request": { +"$ref": "GoogleFirebaseAppdistroV1alphaTestCase" +}, +"response": { +"$ref": "GoogleFirebaseAppdistroV1alphaTestCase" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"testers": { +"methods": { +"getUdids": { +"description": "Get UDIDs of tester iOS devices in a project", +"flatPath": "v1alpha/projects/{projectsId}/testers:udids", +"httpMethod": "GET", +"id": "firebaseappdistribution.projects.testers.getUdids", +"parameterOrder": [ +"project" +], +"parameters": { +"mobilesdkAppId": { +"description": "Unique id for a Firebase app of the format: {version}:{project_number}:{platform}:{hash(bundle_id)} Example: 1:581234567376:android:aa0a3c7b135e90289", +"location": "query", +"type": "string" +}, +"project": { +"description": "The name of the project, which is the parent of testers Format: `projects/{project_number}`", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+project}/testers:udids", +"response": { +"$ref": "GoogleFirebaseAppdistroV1alphaGetTesterUdidsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +}, +"revision": "20241204", +"rootUrl": "https://firebaseappdistribution.googleapis.com/", +"schemas": { +"AndroidxCrawlerOutputPoint": { +"description": "Point for describing bounding boxes tap locations Top left is 0,0", +"id": "AndroidxCrawlerOutputPoint", +"properties": { +"xCoordinate": { +"format": "int32", +"type": "integer" +}, +"yCoordinate": { +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleFirebaseAppdistroV1Release": { +"description": "A release of a Firebase app.", +"id": "GoogleFirebaseAppdistroV1Release", +"properties": { +"binaryDownloadUri": { +"description": "Output only. A signed link (which expires in one hour) to directly download the app binary (IPA/APK/AAB) file.", +"readOnly": true, +"type": "string" +}, +"buildVersion": { +"description": "Output only. Build version of the release. For an Android release, the build version is the `versionCode`. For an iOS release, the build version is the `CFBundleVersion`.", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. The time the release was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"displayVersion": { +"description": "Output only. Display version of the release. For an Android release, the display version is the `versionName`. For an iOS release, the display version is the `CFBundleShortVersionString`.", +"readOnly": true, +"type": "string" +}, +"firebaseConsoleUri": { +"description": "Output only. A link to the Firebase console displaying a single release.", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "The name of the release resource. Format: `projects/{project_number}/apps/{app_id}/releases/{release_id}`", +"type": "string" +}, +"releaseNotes": { +"$ref": "GoogleFirebaseAppdistroV1ReleaseNotes", +"description": "Notes of the release." +}, +"testingUri": { +"description": "Output only. A link to the release in the tester web clip or Android app that lets testers (which were granted access to the app) view release notes and install the app onto their devices.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleFirebaseAppdistroV1ReleaseNotes": { +"description": "Notes that belong to a release.", +"id": "GoogleFirebaseAppdistroV1ReleaseNotes", +"properties": { +"text": { +"description": "The text of the release notes.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleFirebaseAppdistroV1UploadReleaseMetadata": { +"description": "Operation metadata for `UploadRelease`.", +"id": "GoogleFirebaseAppdistroV1UploadReleaseMetadata", +"properties": {}, +"type": "object" +}, +"GoogleFirebaseAppdistroV1UploadReleaseResponse": { +"description": "Response message for `UploadRelease`.", +"id": "GoogleFirebaseAppdistroV1UploadReleaseResponse", +"properties": { +"release": { +"$ref": "GoogleFirebaseAppdistroV1Release", +"description": "Release associated with the uploaded binary." +}, +"result": { +"description": "Result of upload release.", +"enum": [ +"UPLOAD_RELEASE_RESULT_UNSPECIFIED", +"RELEASE_CREATED", +"RELEASE_UPDATED", +"RELEASE_UNMODIFIED" +], +"enumDescriptions": [ +"Upload binary result unspecified", +"Upload binary resulted in a new release", +"Upload binary updated an existing release", +"Upload binary resulted in a no-op. A release with the exact same binary already exists." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleFirebaseAppdistroV1alphaAabCertificate": { +"description": "App bundle test certificate", +"id": "GoogleFirebaseAppdistroV1alphaAabCertificate", +"properties": { +"certificateHashMd5": { +"description": "MD5 hash of the certificate used to resign the AAB", +"type": "string" +}, +"certificateHashSha1": { +"description": "SHA1 hash of the certificate used to resign the AAB", +"type": "string" +}, +"certificateHashSha256": { +"description": "SHA256 hash of the certificate used to resign the AAB", +"type": "string" +} +}, +"type": "object" +}, +"GoogleFirebaseAppdistroV1alphaAiInstructions": { +"description": "Instructions for AI driven test", +"id": "GoogleFirebaseAppdistroV1alphaAiInstructions", +"properties": { +"appDescription": { +"deprecated": true, +"description": "Optional. Describes the app to give the AI some context", +"type": "string" +}, +"steps": { +"description": "Required. Steps to be accomplished by the AI", +"items": { +"$ref": "GoogleFirebaseAppdistroV1alphaAiStep" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleFirebaseAppdistroV1alphaAiStep": { +"description": "A step to be accomplished by the AI", +"id": "GoogleFirebaseAppdistroV1alphaAiStep", +"properties": { +"assertion": { +"description": "An assertion to be checked by the AI", +"type": "string" +}, +"goal": { +"description": "A goal to be accomplished by the AI", +"type": "string" +}, +"hint": { +"description": "Optional. Hint text containing suggestions to help the agent accomplish the goal", +"type": "string" +}, +"successCriteria": { +"description": "Optional. A description of criteria the agent should use to determine if the goal has been successfully completed", +"type": "string" +} +}, +"type": "object" +}, +"GoogleFirebaseAppdistroV1alphaAiStepResult": { +"description": "Captures the results of an AiStep", +"id": "GoogleFirebaseAppdistroV1alphaAiStepResult", +"properties": { +"assertionDetails": { +"$ref": "GoogleFirebaseAppdistroV1alphaAssertionDetails", +"description": "Output only. Details for an assertion step.", +"readOnly": true +}, +"goalDetails": { +"$ref": "GoogleFirebaseAppdistroV1alphaGoalDetails", +"description": "Output only. Details for a goal step.", +"readOnly": true +}, +"state": { +"description": "Output only. The current state of the step", +"enum": [ +"STEP_STATE_UNSPECIFIED", +"IN_PROGRESS", +"PASSED", +"FAILED", +"TIMED_OUT", +"GOAL_ACTION_LIMIT_REACHED" +], +"enumDescriptions": [ +"Step state unspecified", +"The step is in progress", +"The step has completed successfully", +"The step has failed", +"The test timed out during this step", +"The number of actions needed to reach the goal exceeded its limit" +], +"readOnly": true, +"type": "string" +}, +"step": { +"$ref": "GoogleFirebaseAppdistroV1alphaAiStep", +"description": "Required. The step performed by the AI" +} +}, +"type": "object" +}, +"GoogleFirebaseAppdistroV1alphaApp": { +"description": "An app.", +"id": "GoogleFirebaseAppdistroV1alphaApp", +"properties": { +"aabCertificate": { +"$ref": "GoogleFirebaseAppdistroV1alphaAabCertificate", +"description": "App bundle test certificate generated for the app." +}, +"aabState": { +"description": "App bundle state. Only valid for android apps. The app_view field in the request must be set to FULL in order for this to be populated.", +"enum": [ +"AAB_STATE_UNSPECIFIED", +"ACTIVE", +"PLAY_ACCOUNT_NOT_LINKED", +"NO_APP_WITH_GIVEN_BUNDLE_ID_IN_PLAY_ACCOUNT", +"APP_NOT_PUBLISHED", +"AAB_STATE_UNAVAILABLE", +"PLAY_IAS_TERMS_NOT_ACCEPTED" +], +"enumDescriptions": [ +"Aab state unspecified", +"App can receive app bundle uploads", +"Firebase project is not linked to a Play developer account", +"There is no app in linked Play developer account with the same bundle id", +"The app in Play developer account is not in a published state", +"Play App status is unavailable", +"Play IAS terms not accepted" +], +"type": "string" +}, +"appId": { +"description": "Firebase gmp app id", +"type": "string" +}, +"bundleId": { +"description": "Bundle identifier", +"type": "string" +}, +"contactEmail": { +"description": "Developer contact email for testers to reach out to about privacy or support issues.", +"type": "string" +}, +"platform": { +"description": "iOS or Android", +"type": "string" +}, +"projectNumber": { +"description": "Project number of the Firebase project, for example 300830567303.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleFirebaseAppdistroV1alphaAppCrash": { +"description": "An app crash that occurred during an automated test.", +"id": "GoogleFirebaseAppdistroV1alphaAppCrash", +"properties": { +"message": { +"description": "Output only. The message associated with the crash.", +"readOnly": true, +"type": "string" +}, +"stackTrace": { +"description": "Output only. The raw stack trace.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleFirebaseAppdistroV1alphaAssertionDetails": { +"description": "Details for an assertion step.", +"id": "GoogleFirebaseAppdistroV1alphaAssertionDetails", +"properties": { +"explanation": { +"description": "Output only. An explanation justifying the assertion result.", +"readOnly": true, +"type": "string" +}, +"result": { +"description": "Output only. The result of the assertion.", +"readOnly": true, +"type": "boolean" +}, +"screenshot": { +"$ref": "GoogleFirebaseAppdistroV1alphaScreenshot", +"description": "Output only. The screenshot used in the context of this assertion.", +"readOnly": true +} +}, +"type": "object" +}, +"GoogleFirebaseAppdistroV1alphaCancelReleaseTestResponse": { +"description": "The (empty) response message for `CancelReleaseTest`.", +"id": "GoogleFirebaseAppdistroV1alphaCancelReleaseTestResponse", +"properties": {}, +"type": "object" +}, +"GoogleFirebaseAppdistroV1alphaCreateReleaseNotesRequest": { +"description": "The request message for `CreateReleaseNotes`.", +"id": "GoogleFirebaseAppdistroV1alphaCreateReleaseNotesRequest", +"properties": { +"releaseNotes": { +"$ref": "GoogleFirebaseAppdistroV1alphaReleaseNotes", +"description": "The actual release notes body from the user" +} +}, +"type": "object" +}, +"GoogleFirebaseAppdistroV1alphaCreateReleaseNotesResponse": { +"description": "The response message for `CreateReleaseNotes`.", +"id": "GoogleFirebaseAppdistroV1alphaCreateReleaseNotesResponse", +"properties": {}, +"type": "object" +}, +"GoogleFirebaseAppdistroV1alphaDeviceAction": { +"description": "A high level action taken by the AI on the device, potentially involving multiple taps, text entries, waits, etc.", +"id": "GoogleFirebaseAppdistroV1alphaDeviceAction", +"properties": { +"description": { +"description": "Output only. A short description of the high level action taken by the AI agent.", +"readOnly": true, +"type": "string" +}, +"deviceInteractions": { +"description": "Output only. The interactions made with the device as part of this higher level action taken by the agent, such as taps, text entries, waits, etc.", +"items": { +"$ref": "GoogleFirebaseAppdistroV1alphaDeviceInteraction" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"GoogleFirebaseAppdistroV1alphaDeviceExecution": { +"description": "The results of running an automated test on a particular device.", +"id": "GoogleFirebaseAppdistroV1alphaDeviceExecution", +"properties": { +"aiStepResults": { +"description": "Output only. Results of the AI steps if passed in", +"items": { +"$ref": "GoogleFirebaseAppdistroV1alphaAiStepResult" +}, +"readOnly": true, +"type": "array" +}, +"appCrash": { +"$ref": "GoogleFirebaseAppdistroV1alphaAppCrash", +"description": "Output only. An app crash, if any occurred during the test.", +"readOnly": true +}, +"crawlGraphUri": { +"description": "Output only. A URI to an image of the Robo crawl graph.", +"readOnly": true, +"type": "string" +}, +"device": { +"$ref": "GoogleFirebaseAppdistroV1alphaTestDevice", +"description": "Required. The device that the test was run on." +}, +"failedReason": { +"description": "Output only. The reason why the test failed.", +"enum": [ +"FAILED_REASON_UNSPECIFIED", +"CRASHED", +"NOT_INSTALLED", +"UNABLE_TO_CRAWL", +"DEVICE_OUT_OF_MEMORY", +"FAILED_AI_STEP", +"TIMED_OUT" +], +"enumDescriptions": [ +"Reason unspecified.", +"The app crashed during the test.", +"If an app is not installed and thus no test can be run with the app. This might be caused by trying to run a test on an unsupported platform.", +"If the app could not be crawled (possibly because the app did not start).", +"If the device ran out of memory during the test.", +"At least one AI step failed.", +"The crawl reached the time limit before the test could be completed." +], +"readOnly": true, +"type": "string" +}, +"inconclusiveReason": { +"description": "Output only. The reason why the test was inconclusive.", +"enum": [ +"INCONCLUSIVE_REASON_UNSPECIFIED", +"QUOTA_EXCEEDED", +"INFRASTRUCTURE_FAILURE", +"SERVICE_NOT_ACTIVATED", +"NO_SIGNATURE", +"NO_LAUNCHER_ACTIVITY", +"FORBIDDEN_PERMISSIONS", +"DEVICE_ADMIN_RECEIVER", +"NO_CODE_APK", +"INVALID_APK_PREVIEW_SDK" +], +"enumDescriptions": [ +"Reason unspecified.", +"Not enough quota remained to run the test.", +"The outcome of the test could not be determined because of a failure in the test running infrastructure.", +"A required cloud service api is not activated (Google Cloud Testing API or Cloud Tool Results API).", +"The app was not signed.", +"A main launcher activity could not be found.", +"The app declares one or more permissions that are not allowed.", +"Device administrator applications are not allowed.", +"APK contains no code. See also https://developer.android.com/guide/topics/manifest/application-element.html#code", +"APK is built for a preview SDK which is unsupported." +], +"readOnly": true, +"type": "string" +}, +"resultsStoragePath": { +"description": "Output only. The path to a directory in Cloud Storage that will eventually contain the results for this execution. For example, gs://bucket/Nexus5-18-en-portrait.", +"readOnly": true, +"type": "string" +}, +"roboStats": { +"$ref": "GoogleFirebaseAppdistroV1alphaRoboStats", +"description": "Output only. The statistics collected during the Robo test.", +"readOnly": true +}, +"screenshotUris": { +"description": "Output only. A list of screenshot image URIs taken from the Robo crawl. The file names are numbered by the order in which they were taken.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"state": { +"description": "Output only. The state of the test.", +"enum": [ +"TEST_STATE_UNSPECIFIED", +"IN_PROGRESS", +"PASSED", +"FAILED", +"INCONCLUSIVE" +], +"enumDescriptions": [ +"Test state unspecified.", +"The test is in progress.", +"The test has passed.", +"The test has failed.", +"The test was inconclusive." +], +"readOnly": true, +"type": "string" +}, +"videoUri": { +"description": "Output only. A URI to a video of the test run.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleFirebaseAppdistroV1alphaDeviceInteraction": { +"description": "An interaction with the device, such as a tap, text entry, wait, etc.", +"id": "GoogleFirebaseAppdistroV1alphaDeviceInteraction", +"properties": { +"keyCode": { +"description": "Output only. Key code for a key event action.", +"readOnly": true, +"type": "string" +}, +"screenshot": { +"$ref": "GoogleFirebaseAppdistroV1alphaScreenshot", +"description": "Output only. The screenshot used in the context of this action. The screen may have changed before the action was actually taken.", +"readOnly": true +}, +"swipe": { +"$ref": "GoogleFirebaseAppdistroV1alphaDeviceInteractionSwipe", +"description": "Output only. A swipe action.", +"readOnly": true +}, +"tap": { +"$ref": "AndroidxCrawlerOutputPoint", +"description": "Output only. A tap action.", +"readOnly": true +}, +"textInput": { +"description": "Output only. Text entered for a text entry action.", +"readOnly": true, +"type": "string" +}, +"wait": { +"$ref": "GoogleFirebaseAppdistroV1alphaDeviceInteractionWait", +"description": "Output only. A wait action.", +"readOnly": true +} +}, +"type": "object" +}, +"GoogleFirebaseAppdistroV1alphaDeviceInteractionSwipe": { +"description": "A swipe action.", +"id": "GoogleFirebaseAppdistroV1alphaDeviceInteractionSwipe", +"properties": { +"end": { +"$ref": "AndroidxCrawlerOutputPoint", +"description": "Output only. The end point of the swipe.", +"readOnly": true +}, +"start": { +"$ref": "AndroidxCrawlerOutputPoint", +"description": "Output only. The start point of the swipe.", +"readOnly": true +} +}, +"type": "object" +}, +"GoogleFirebaseAppdistroV1alphaDeviceInteractionWait": { +"description": "A wait action.", +"id": "GoogleFirebaseAppdistroV1alphaDeviceInteractionWait", +"properties": { +"duration": { +"description": "Output only. The duration of the wait.", +"format": "google-duration", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleFirebaseAppdistroV1alphaEnableAccessOnReleaseRequest": { +"description": "The request message for `EnableAccessOnRelease`.", +"id": "GoogleFirebaseAppdistroV1alphaEnableAccessOnReleaseRequest", +"properties": { +"buildVersion": { +"deprecated": true, +"description": "Optional. Ignored. Used to be build version of the app release if an instance identifier was provided for the release_id.", +"type": "string" +}, +"displayVersion": { +"deprecated": true, +"description": "Optional. Ignored. Used to be display version of the app release if an instance identifier was provided for the release_id.", +"type": "string" +}, +"emails": { +"description": "Optional. An email address which should get access to this release, for example rebeccahe@google.com", +"items": { +"type": "string" +}, +"type": "array" +}, +"groupIds": { +"description": "Optional. A repeated list of group aliases to enable access to a release for Note: This field is misnamed, but can't be changed because we need to maintain compatibility with old build tools", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleFirebaseAppdistroV1alphaEnableAccessOnReleaseResponse": { +"description": "The response message for `EnableAccessOnRelease`.", +"id": "GoogleFirebaseAppdistroV1alphaEnableAccessOnReleaseResponse", +"properties": {}, +"type": "object" +}, +"GoogleFirebaseAppdistroV1alphaGetReleaseByUploadHashResponse": { +"description": "Response object to get the release given a upload hash", +"id": "GoogleFirebaseAppdistroV1alphaGetReleaseByUploadHashResponse", +"properties": { +"release": { +"$ref": "GoogleFirebaseAppdistroV1alphaRelease", +"description": "Release object" +} +}, +"type": "object" +}, +"GoogleFirebaseAppdistroV1alphaGetTesterUdidsResponse": { +"description": "Response containing the UDIDs of tester iOS devices in a project", +"id": "GoogleFirebaseAppdistroV1alphaGetTesterUdidsResponse", +"properties": { +"testerUdids": { +"description": "The UDIDs of tester iOS devices in a project", +"items": { +"$ref": "GoogleFirebaseAppdistroV1alphaTesterUdid" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleFirebaseAppdistroV1alphaGetUploadStatusResponse": { +"description": "The response message for `GetUploadStatus`.", +"id": "GoogleFirebaseAppdistroV1alphaGetUploadStatusResponse", +"properties": { +"errorCode": { +"description": "The error code associated with (only set on \"FAILURE\")", +"enum": [ +"ERROR_UNSPECIFIED", +"INVALID_ZIP", +"MISSING_PLIST", +"MISSING_PROFILE", +"VERSION_TOO_LONG", +"MISSING_UUIDS", +"MISSING_RESOURCES", +"MISSING_MANIFEST", +"IOS_METADATA_ERROR", +"ANDROID_METADATA_ERROR", +"UNSUPPORTED_PLATFORM_TYPE", +"BUNDLE_ID_MISMATCH", +"APK_NOT_ZIP_ALIGNED", +"INVALID_CERTIFICATE", +"APK_TOO_LARGE", +"AAB_NOT_PUBLISHED", +"INVALID_PLIST_DEVICE_FAMILIES", +"AAB_TOS_NOT_ACCEPTED", +"APP_NAME_TOO_LONG", +"AAB_DEVELOPER_ACCOUNT_NOT_LINKED", +"AAB_NO_APP_WITH_GIVEN_PACKAGE_NAME_IN_ACCOUNT", +"AAB_UPLOAD_ERROR" +], +"enumDescriptions": [ +"", +"", +"", +"", +"", +"", +"", +"", +"", +"", +"", +"", +"", +"", +"", +"", +"", +"", +"", +"", +"", +"" +], +"type": "string" +}, +"message": { +"description": "Any additional context for the given upload status (e.g. error message) Meant to be displayed to the client", +"type": "string" +}, +"release": { +"$ref": "GoogleFirebaseAppdistroV1alphaRelease", +"description": "The release that was created from the upload (only set on \"SUCCESS\")" +}, +"status": { +"description": "The status of the upload", +"enum": [ +"STATUS_UNSPECIFIED", +"IN_PROGRESS", +"ALREADY_UPLOADED", +"SUCCESS", +"ERROR" +], +"enumDescriptions": [ +"Status unspecified.", +"The upload is in progress.", +"The binary has already been uploaded.", +"The upload was successful.", +"The upload failed." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleFirebaseAppdistroV1alphaGoalAction": { +"description": "An action taken by the AI agent while attempting to accomplish a goal.", +"id": "GoogleFirebaseAppdistroV1alphaGoalAction", +"properties": { +"deviceAction": { +"$ref": "GoogleFirebaseAppdistroV1alphaDeviceAction", +"description": "Output only. A high level action taken by the AI on the device.", +"readOnly": true +}, +"explanation": { +"description": "Output only. An explanation justifying why the action was taken.", +"readOnly": true, +"type": "string" +}, +"terminalAction": { +"$ref": "GoogleFirebaseAppdistroV1alphaTerminalAction", +"description": "Output only. An action taken by the AI to end the goal.", +"readOnly": true +} +}, +"type": "object" +}, +"GoogleFirebaseAppdistroV1alphaGoalDetails": { +"description": "Details for a goal step.", +"id": "GoogleFirebaseAppdistroV1alphaGoalDetails", +"properties": { +"goalActions": { +"description": "Output only. The actions taken by the AI while attempting to accomplish the goal.", +"items": { +"$ref": "GoogleFirebaseAppdistroV1alphaGoalAction" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"GoogleFirebaseAppdistroV1alphaJwt": { +"description": "A JWT token.", +"id": "GoogleFirebaseAppdistroV1alphaJwt", +"properties": { +"token": { +"description": "The JWT token (three Base64URL-encoded strings joined by dots).", +"type": "string" +} +}, +"type": "object" +}, +"GoogleFirebaseAppdistroV1alphaListReleaseTestsResponse": { +"description": "The response message for `ListReleaseTests`.", +"id": "GoogleFirebaseAppdistroV1alphaListReleaseTestsResponse", +"properties": { +"nextPageToken": { +"description": "A short-lived token, which can be sent as `pageToken` to retrieve the next page. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"releaseTests": { +"description": "The tests listed.", +"items": { +"$ref": "GoogleFirebaseAppdistroV1alphaReleaseTest" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleFirebaseAppdistroV1alphaListTestCasesResponse": { +"description": "The response message for `ListTestCases`.", +"id": "GoogleFirebaseAppdistroV1alphaListTestCasesResponse", +"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" +}, +"testCases": { +"description": "The test cases from the specified app.", +"items": { +"$ref": "GoogleFirebaseAppdistroV1alphaTestCase" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleFirebaseAppdistroV1alphaLoginCredential": { +"description": "Login credential for automated tests", +"id": "GoogleFirebaseAppdistroV1alphaLoginCredential", +"properties": { +"fieldHints": { +"$ref": "GoogleFirebaseAppdistroV1alphaLoginCredentialFieldHints", +"description": "Optional. Hints to the crawler for identifying input fields" +}, +"google": { +"description": "Optional. Are these credentials for Google?", +"type": "boolean" +}, +"password": { +"description": "Optional. Password for automated tests", +"type": "string" +}, +"username": { +"description": "Optional. Username for automated tests", +"type": "string" +} +}, +"type": "object" +}, +"GoogleFirebaseAppdistroV1alphaLoginCredentialFieldHints": { +"description": "Hints to the crawler for identifying input fields", +"id": "GoogleFirebaseAppdistroV1alphaLoginCredentialFieldHints", +"properties": { +"passwordResourceName": { +"description": "Required. The Android resource name of the password UI element. For example, in Java: R.string.foo in xml: @string/foo Only the \"foo\" part is needed. Reference doc: https://developer.android.com/guide/topics/resources/accessing-resources.html", +"type": "string" +}, +"usernameResourceName": { +"description": "Required. The Android resource name of the username UI element. For example, in Java: R.string.foo in xml: @string/foo Only the \"foo\" part is needed. Reference doc: https://developer.android.com/guide/topics/resources/accessing-resources.html", +"type": "string" +} +}, +"type": "object" +}, +"GoogleFirebaseAppdistroV1alphaProvisionAppResponse": { +"description": "The response message for `ProvisionApp`.", +"id": "GoogleFirebaseAppdistroV1alphaProvisionAppResponse", +"properties": {}, +"type": "object" +}, +"GoogleFirebaseAppdistroV1alphaRelease": { +"description": "Proto defining a release object", +"id": "GoogleFirebaseAppdistroV1alphaRelease", +"properties": { +"buildVersion": { +"description": "Release build version", +"type": "string" +}, +"displayVersion": { +"description": "Release version", +"type": "string" +}, +"distributedAt": { +"description": "Timestamp when the release was created", +"format": "google-datetime", +"type": "string" +}, +"id": { +"description": "Release Id", +"type": "string" +}, +"instanceId": { +"description": "Instance id of the release", +"type": "string" +}, +"lastActivityAt": { +"description": "Last activity timestamp", +"format": "google-datetime", +"type": "string" +}, +"openInvitationCount": { +"description": "Number of testers who have open invitations for the release", +"format": "int32", +"type": "integer" +}, +"receivedAt": { +"deprecated": true, +"description": "unused. ", +"format": "google-datetime", +"type": "string" +}, +"releaseNotesSummary": { +"description": "Release notes summary", +"type": "string" +}, +"testerCount": { +"description": "Count of testers added to the release", +"format": "int32", +"type": "integer" +}, +"testerWithInstallCount": { +"description": "Number of testers who have installed the release", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleFirebaseAppdistroV1alphaReleaseNotes": { +"description": "Release notes for a release.", +"id": "GoogleFirebaseAppdistroV1alphaReleaseNotes", +"properties": { +"releaseNotes": { +"description": "The actual release notes text from the user.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleFirebaseAppdistroV1alphaReleaseTest": { +"description": "The results of running an automated test on a release.", +"id": "GoogleFirebaseAppdistroV1alphaReleaseTest", +"properties": { +"aiInstructions": { +"$ref": "GoogleFirebaseAppdistroV1alphaAiInstructions", +"description": "Optional. Instructions for AI driven test." +}, +"createTime": { +"description": "Output only. Timestamp when the test was run.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"deviceExecutions": { +"description": "Required. The results of the test on each device.", +"items": { +"$ref": "GoogleFirebaseAppdistroV1alphaDeviceExecution" +}, +"type": "array" +}, +"displayName": { +"description": "Optional. Display name of the release test. Required if the release test is created with multiple goals.", +"type": "string" +}, +"loginCredential": { +"$ref": "GoogleFirebaseAppdistroV1alphaLoginCredential", +"description": "Optional. Input only. Login credentials for the test. Input only." +}, +"name": { +"description": "The name of the release test resource. Format: `projects/{project_number}/apps/{app_id}/releases/{release_id}/tests/{test_id}`", +"type": "string" +}, +"testCase": { +"description": "Optional. The test case that was used to generate this release test. Note: The test case may have changed or been deleted since the release test was created. Format: `projects/{project_number}/apps/{app}/testCases/{test_case}`", +"type": "string" +}, +"testState": { +"description": "Output only. The state of the release test.", +"enum": [ +"TEST_STATE_UNSPECIFIED", +"IN_PROGRESS", +"PASSED", +"FAILED", +"INCONCLUSIVE" +], +"enumDescriptions": [ +"Test state unspecified.", +"The test is in progress.", +"The test has passed.", +"The test has failed.", +"The test was inconclusive." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleFirebaseAppdistroV1alphaRoboCrawler": { +"description": "Configuration for Robo crawler", +"id": "GoogleFirebaseAppdistroV1alphaRoboCrawler", +"properties": { +"aiInstructions": { +"$ref": "GoogleFirebaseAppdistroV1alphaAiInstructions", +"description": "Optional. Instructions for AI driven test" +}, +"loginCredential": { +"$ref": "GoogleFirebaseAppdistroV1alphaLoginCredential", +"description": "Optional. Login credential for automated tests" +} +}, +"type": "object" +}, +"GoogleFirebaseAppdistroV1alphaRoboStats": { +"description": "Statistics collected during a Robo test.", +"id": "GoogleFirebaseAppdistroV1alphaRoboStats", +"properties": { +"actionsPerformed": { +"description": "Output only. Number of actions that crawler performed.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"crawlDuration": { +"description": "Output only. Duration of crawl.", +"format": "google-duration", +"readOnly": true, +"type": "string" +}, +"distinctVisitedScreens": { +"description": "Output only. Number of distinct screens visited.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"mainActivityCrawlTimedOut": { +"description": "Output only. Whether the main activity crawl timed out.", +"readOnly": true, +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleFirebaseAppdistroV1alphaScreenshot": { +"description": "A device screenshot taken during a test.", +"id": "GoogleFirebaseAppdistroV1alphaScreenshot", +"properties": { +"height": { +"description": "Output only. The height of the screenshot, in pixels.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"uri": { +"description": "Output only. The URI of the screenshot.", +"readOnly": true, +"type": "string" +}, +"width": { +"description": "Output only. The width of the screenshot, in pixels.", +"format": "int32", +"readOnly": true, +"type": "integer" +} +}, +"type": "object" +}, +"GoogleFirebaseAppdistroV1alphaTerminalAction": { +"description": "An action taken by the AI to end the goal.", +"id": "GoogleFirebaseAppdistroV1alphaTerminalAction", +"properties": { +"reason": { +"description": "Output only. The reason why this goal was ended.", +"enum": [ +"REASON_UNSPECIFIED", +"GOAL_IMPOSSIBLE", +"GOAL_COMPLETE" +], +"enumDescriptions": [ +"Reason unspecified.", +"The goal was impossible to accomplish.", +"The goal was completed successfully." +], +"readOnly": true, +"type": "string" +}, +"screenshot": { +"$ref": "GoogleFirebaseAppdistroV1alphaScreenshot", +"description": "Output only. The screenshot used in the context of this terminal action.", +"readOnly": true +} +}, +"type": "object" +}, +"GoogleFirebaseAppdistroV1alphaTestCase": { +"description": "AI test cases", +"id": "GoogleFirebaseAppdistroV1alphaTestCase", +"properties": { +"aiInstructions": { +"$ref": "GoogleFirebaseAppdistroV1alphaAiInstructions", +"description": "Optional. Instructions for AI driven test." +}, +"displayName": { +"description": "Required. Display name of the test case.", +"type": "string" +}, +"name": { +"description": "Identifier. The name of the test case resource. Format: `projects/{project_number}/apps/{app_id}/testCases/{test_case_id}`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleFirebaseAppdistroV1alphaTestConfig": { +"description": "Configuration for automated tests", +"id": "GoogleFirebaseAppdistroV1alphaTestConfig", +"properties": { +"displayName": { +"description": "Optional. Display name of the AI driven test. Required if the release test is created with multiple goals.", +"type": "string" +}, +"name": { +"description": "Identifier. The name of the test configuration resource. Format: `projects/{project_number}/apps/{app_id}/testConfig`", +"type": "string" +}, +"roboCrawler": { +"$ref": "GoogleFirebaseAppdistroV1alphaRoboCrawler", +"description": "Optional. Configuration for Robo crawler" +}, +"testDevices": { +"description": "Optional. Tests will be run on this list of devices", +"items": { +"$ref": "GoogleFirebaseAppdistroV1alphaTestDevice" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleFirebaseAppdistroV1alphaTestDevice": { +"description": "A device on which automated tests can be run.", +"id": "GoogleFirebaseAppdistroV1alphaTestDevice", +"properties": { +"locale": { +"description": "Optional. The locale of the device (e.g. \"en_US\" for US English) during the test.", +"type": "string" +}, +"model": { +"description": "Required. The device model.", +"type": "string" +}, +"orientation": { +"description": "Optional. The orientation of the device during the test.", +"type": "string" +}, +"version": { +"description": "Required. The version of the device (API level on Android).", +"type": "string" +} +}, +"type": "object" +}, +"GoogleFirebaseAppdistroV1alphaTesterUdid": { +"description": "The UDIDs of a tester's iOS device", +"id": "GoogleFirebaseAppdistroV1alphaTesterUdid", +"properties": { +"name": { +"description": "The name of the tester's device", +"type": "string" +}, +"platform": { +"description": "The platform of the tester's device", +"type": "string" +}, +"udid": { +"description": "The UDID of the tester's device", +"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": "Firebase App Distribution 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/firebaseml.v2beta.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/firebaseml.v2beta.json new file mode 100644 index 0000000000000000000000000000000000000000..cf4be06c0d9aaaac45a1ba97f2ee05707bca4fcc --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/firebaseml.v2beta.json @@ -0,0 +1,1872 @@ +{ +"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:v2beta", +"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": { +"locations": { +"resources": { +"publishers": { +"resources": { +"models": { +"methods": { +"countTokens": { +"description": "Perform a token counting.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/publishers/{publishersId}/models/{modelsId}:countTokens", +"httpMethod": "POST", +"id": "firebaseml.projects.locations.publishers.models.countTokens", +"parameterOrder": [ +"endpoint" +], +"parameters": { +"endpoint": { +"description": "Required. The name of the Endpoint requested to perform token counting. Format: `projects/{project}/locations/{location}/endpoints/{endpoint}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/publishers/[^/]+/models/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+endpoint}:countTokens", +"request": { +"$ref": "GoogleCloudAiplatformV1beta1CountTokensRequest" +}, +"response": { +"$ref": "GoogleCloudAiplatformV1beta1CountTokensResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"generateContent": { +"description": "Generate content with multimodal inputs.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/publishers/{publishersId}/models/{modelsId}:generateContent", +"httpMethod": "POST", +"id": "firebaseml.projects.locations.publishers.models.generateContent", +"parameterOrder": [ +"model" +], +"parameters": { +"model": { +"description": "Required. The fully qualified name of the publisher model or tuned model endpoint to use. Publisher model format: `projects/{project}/locations/{location}/publishers/*/models/*` Tuned model endpoint format: `projects/{project}/locations/{location}/endpoints/{endpoint}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/publishers/[^/]+/models/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+model}:generateContent", +"request": { +"$ref": "GoogleCloudAiplatformV1beta1GenerateContentRequest" +}, +"response": { +"$ref": "GoogleCloudAiplatformV1beta1GenerateContentResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"streamGenerateContent": { +"description": "Generate content with multimodal inputs with streaming support.", +"flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/publishers/{publishersId}/models/{modelsId}:streamGenerateContent", +"httpMethod": "POST", +"id": "firebaseml.projects.locations.publishers.models.streamGenerateContent", +"parameterOrder": [ +"model" +], +"parameters": { +"model": { +"description": "Required. The fully qualified name of the publisher model or tuned model endpoint to use. Publisher model format: `projects/{project}/locations/{location}/publishers/*/models/*` Tuned model endpoint format: `projects/{project}/locations/{location}/endpoints/{endpoint}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/publishers/[^/]+/models/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v2beta/{+model}:streamGenerateContent", +"request": { +"$ref": "GoogleCloudAiplatformV1beta1GenerateContentRequest" +}, +"response": { +"$ref": "GoogleCloudAiplatformV1beta1GenerateContentResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +} +} +}, +"revision": "20241231", +"rootUrl": "https://firebaseml.googleapis.com/", +"schemas": { +"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" +}, +"GoogleCloudAiplatformV1beta1Blob": { +"description": "Content blob.", +"id": "GoogleCloudAiplatformV1beta1Blob", +"properties": { +"data": { +"description": "Required. Raw bytes.", +"format": "byte", +"type": "string" +}, +"mimeType": { +"description": "Required. The IANA standard MIME type of the source data.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudAiplatformV1beta1Candidate": { +"description": "A response candidate generated from the model.", +"id": "GoogleCloudAiplatformV1beta1Candidate", +"properties": { +"avgLogprobs": { +"description": "Output only. Average log probability score of the candidate.", +"format": "double", +"readOnly": true, +"type": "number" +}, +"citationMetadata": { +"$ref": "GoogleCloudAiplatformV1beta1CitationMetadata", +"description": "Output only. Source attribution of the generated content.", +"readOnly": true +}, +"content": { +"$ref": "GoogleCloudAiplatformV1beta1Content", +"description": "Output only. Content parts of the candidate.", +"readOnly": true +}, +"finishMessage": { +"description": "Output only. Describes the reason the mode stopped generating tokens in more detail. This is only filled when `finish_reason` is set.", +"readOnly": true, +"type": "string" +}, +"finishReason": { +"description": "Output only. The reason why the model stopped generating tokens. If empty, the model has not stopped generating the tokens.", +"enum": [ +"FINISH_REASON_UNSPECIFIED", +"STOP", +"MAX_TOKENS", +"SAFETY", +"RECITATION", +"OTHER", +"BLOCKLIST", +"PROHIBITED_CONTENT", +"SPII", +"MALFORMED_FUNCTION_CALL" +], +"enumDescriptions": [ +"The finish reason is unspecified.", +"Token generation reached a natural stopping point or a configured stop sequence.", +"Token generation reached the configured maximum output tokens.", +"Token generation stopped because the content potentially contains safety violations. NOTE: When streaming, content is empty if content filters blocks the output.", +"The token generation stopped because of potential recitation.", +"All other reasons that stopped the token generation.", +"Token generation stopped because the content contains forbidden terms.", +"Token generation stopped for potentially containing prohibited content.", +"Token generation stopped because the content potentially contains Sensitive Personally Identifiable Information (SPII).", +"The function call generated by the model is invalid." +], +"readOnly": true, +"type": "string" +}, +"groundingMetadata": { +"$ref": "GoogleCloudAiplatformV1beta1GroundingMetadata", +"description": "Output only. Metadata specifies sources used to ground generated content.", +"readOnly": true +}, +"index": { +"description": "Output only. Index of the candidate.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"logprobsResult": { +"$ref": "GoogleCloudAiplatformV1beta1LogprobsResult", +"description": "Output only. Log-likelihood scores for the response tokens and top tokens", +"readOnly": true +}, +"safetyRatings": { +"description": "Output only. List of ratings for the safety of a response candidate. There is at most one rating per category.", +"items": { +"$ref": "GoogleCloudAiplatformV1beta1SafetyRating" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudAiplatformV1beta1Citation": { +"description": "Source attributions for content.", +"id": "GoogleCloudAiplatformV1beta1Citation", +"properties": { +"endIndex": { +"description": "Output only. End index into the content.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"license": { +"description": "Output only. License of the attribution.", +"readOnly": true, +"type": "string" +}, +"publicationDate": { +"$ref": "Date", +"description": "Output only. Publication date of the attribution.", +"readOnly": true +}, +"startIndex": { +"description": "Output only. Start index into the content.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"title": { +"description": "Output only. Title of the attribution.", +"readOnly": true, +"type": "string" +}, +"uri": { +"description": "Output only. Url reference of the attribution.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudAiplatformV1beta1CitationMetadata": { +"description": "A collection of source attributions for a piece of content.", +"id": "GoogleCloudAiplatformV1beta1CitationMetadata", +"properties": { +"citations": { +"description": "Output only. List of citations.", +"items": { +"$ref": "GoogleCloudAiplatformV1beta1Citation" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudAiplatformV1beta1CodeExecutionResult": { +"description": "Result of executing the [ExecutableCode]. Always follows a `part` containing the [ExecutableCode].", +"id": "GoogleCloudAiplatformV1beta1CodeExecutionResult", +"properties": { +"outcome": { +"description": "Required. Outcome of the code execution.", +"enum": [ +"OUTCOME_UNSPECIFIED", +"OUTCOME_OK", +"OUTCOME_FAILED", +"OUTCOME_DEADLINE_EXCEEDED" +], +"enumDescriptions": [ +"Unspecified status. This value should not be used.", +"Code execution completed successfully.", +"Code execution finished but with a failure. `stderr` should contain the reason.", +"Code execution ran for too long, and was cancelled. There may or may not be a partial output present." +], +"type": "string" +}, +"output": { +"description": "Optional. Contains stdout when code execution is successful, stderr or other description otherwise.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudAiplatformV1beta1Content": { +"description": "The base structured datatype containing multi-part content of a message. A `Content` includes a `role` field designating the producer of the `Content` and a `parts` field containing multi-part data that contains the content of the message turn.", +"id": "GoogleCloudAiplatformV1beta1Content", +"properties": { +"parts": { +"description": "Required. Ordered `Parts` that constitute a single message. Parts may have different IANA MIME types.", +"items": { +"$ref": "GoogleCloudAiplatformV1beta1Part" +}, +"type": "array" +}, +"role": { +"description": "Optional. The producer of the content. Must be either 'user' or 'model'. Useful to set for multi-turn conversations, otherwise can be left blank or unset.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudAiplatformV1beta1CountTokensRequest": { +"description": "Request message for PredictionService.CountTokens.", +"id": "GoogleCloudAiplatformV1beta1CountTokensRequest", +"properties": { +"contents": { +"description": "Optional. Input content.", +"items": { +"$ref": "GoogleCloudAiplatformV1beta1Content" +}, +"type": "array" +}, +"generationConfig": { +"$ref": "GoogleCloudAiplatformV1beta1GenerationConfig", +"description": "Optional. Generation config that the model will use to generate the response." +}, +"instances": { +"description": "Optional. The instances that are the input to token counting call. Schema is identical to the prediction schema of the underlying model.", +"items": { +"type": "any" +}, +"type": "array" +}, +"model": { +"description": "Optional. The name of the publisher model requested to serve the prediction. Format: `projects/{project}/locations/{location}/publishers/*/models/*`", +"type": "string" +}, +"systemInstruction": { +"$ref": "GoogleCloudAiplatformV1beta1Content", +"description": "Optional. The user provided system instructions for the model. Note: only text should be used in parts and content in each part will be in a separate paragraph." +}, +"tools": { +"description": "Optional. A list of `Tools` the model may use to generate the next response. A `Tool` is a piece of code that enables the system to interact with external systems to perform an action, or set of actions, outside of knowledge and scope of the model.", +"items": { +"$ref": "GoogleCloudAiplatformV1beta1Tool" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudAiplatformV1beta1CountTokensResponse": { +"description": "Response message for PredictionService.CountTokens.", +"id": "GoogleCloudAiplatformV1beta1CountTokensResponse", +"properties": { +"totalBillableCharacters": { +"description": "The total number of billable characters counted across all instances from the request.", +"format": "int32", +"type": "integer" +}, +"totalTokens": { +"description": "The total number of tokens counted across all instances from the request.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudAiplatformV1beta1DynamicRetrievalConfig": { +"description": "Describes the options to customize dynamic retrieval.", +"id": "GoogleCloudAiplatformV1beta1DynamicRetrievalConfig", +"properties": { +"dynamicThreshold": { +"description": "Optional. The threshold to be used in dynamic retrieval. If not set, a system default value is used.", +"format": "float", +"type": "number" +}, +"mode": { +"description": "The mode of the predictor to be used in dynamic retrieval.", +"enum": [ +"MODE_UNSPECIFIED", +"MODE_DYNAMIC" +], +"enumDescriptions": [ +"Always trigger retrieval.", +"Run retrieval only when system decides it is necessary." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudAiplatformV1beta1ExecutableCode": { +"description": "Code generated by the model that is meant to be executed, and the result returned to the model. Generated when using the [FunctionDeclaration] tool and [FunctionCallingConfig] mode is set to [Mode.CODE].", +"id": "GoogleCloudAiplatformV1beta1ExecutableCode", +"properties": { +"code": { +"description": "Required. The code to be executed.", +"type": "string" +}, +"language": { +"description": "Required. Programming language of the `code`.", +"enum": [ +"LANGUAGE_UNSPECIFIED", +"PYTHON" +], +"enumDescriptions": [ +"Unspecified language. This value should not be used.", +"Python >= 3.10, with numpy and simpy available." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudAiplatformV1beta1FileData": { +"description": "URI based data.", +"id": "GoogleCloudAiplatformV1beta1FileData", +"properties": { +"fileUri": { +"description": "Required. URI.", +"type": "string" +}, +"mimeType": { +"description": "Required. The IANA standard MIME type of the source data.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudAiplatformV1beta1FunctionCall": { +"description": "A predicted [FunctionCall] returned from the model that contains a string representing the [FunctionDeclaration.name] and a structured JSON object containing the parameters and their values.", +"id": "GoogleCloudAiplatformV1beta1FunctionCall", +"properties": { +"args": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Optional. Required. The function parameters and values in JSON object format. See [FunctionDeclaration.parameters] for parameter details.", +"type": "object" +}, +"name": { +"description": "Required. The name of the function to call. Matches [FunctionDeclaration.name].", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudAiplatformV1beta1FunctionCallingConfig": { +"description": "Function calling config.", +"id": "GoogleCloudAiplatformV1beta1FunctionCallingConfig", +"properties": { +"allowedFunctionNames": { +"description": "Optional. Function names to call. Only set when the Mode is ANY. Function names should match [FunctionDeclaration.name]. With mode set to ANY, model will predict a function call from the set of function names provided.", +"items": { +"type": "string" +}, +"type": "array" +}, +"mode": { +"description": "Optional. Function calling mode.", +"enum": [ +"MODE_UNSPECIFIED", +"AUTO", +"ANY", +"NONE" +], +"enumDescriptions": [ +"Unspecified function calling mode. This value should not be used.", +"Default model behavior, model decides to predict either function calls or natural language response.", +"Model is constrained to always predicting function calls only. If \"allowed_function_names\" are set, the predicted function calls will be limited to any one of \"allowed_function_names\", else the predicted function calls will be any one of the provided \"function_declarations\".", +"Model will not predict any function calls. Model behavior is same as when not passing any function declarations." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudAiplatformV1beta1FunctionDeclaration": { +"description": "Structured representation of a function declaration as defined by the [OpenAPI 3.0 specification](https://spec.openapis.org/oas/v3.0.3). Included in this declaration are the function name, description, parameters and response type. This FunctionDeclaration is a representation of a block of code that can be used as a `Tool` by the model and executed by the client.", +"id": "GoogleCloudAiplatformV1beta1FunctionDeclaration", +"properties": { +"description": { +"description": "Optional. Description and purpose of the function. Model uses it to decide how and whether to call the function.", +"type": "string" +}, +"name": { +"description": "Required. The name of the function to call. Must start with a letter or an underscore. Must be a-z, A-Z, 0-9, or contain underscores, dots and dashes, with a maximum length of 64.", +"type": "string" +}, +"parameters": { +"$ref": "GoogleCloudAiplatformV1beta1Schema", +"description": "Optional. Describes the parameters to this function in JSON Schema Object format. Reflects the Open API 3.03 Parameter Object. string Key: the name of the parameter. Parameter names are case sensitive. Schema Value: the Schema defining the type used for the parameter. For function with no parameters, this can be left unset. Parameter names must start with a letter or an underscore and must only contain chars a-z, A-Z, 0-9, or underscores with a maximum length of 64. Example with 1 required and 1 optional parameter: type: OBJECT properties: param1: type: STRING param2: type: INTEGER required: - param1" +}, +"response": { +"$ref": "GoogleCloudAiplatformV1beta1Schema", +"description": "Optional. Describes the output from this function in JSON Schema format. Reflects the Open API 3.03 Response Object. The Schema defines the type used for the response value of the function." +} +}, +"type": "object" +}, +"GoogleCloudAiplatformV1beta1FunctionResponse": { +"description": "The result output from a [FunctionCall] that contains a string representing the [FunctionDeclaration.name] and a structured JSON object containing any output from the function is used as context to the model. This should contain the result of a [FunctionCall] made based on model prediction.", +"id": "GoogleCloudAiplatformV1beta1FunctionResponse", +"properties": { +"name": { +"description": "Required. The name of the function to call. Matches [FunctionDeclaration.name] and [FunctionCall.name].", +"type": "string" +}, +"response": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Required. The function response in JSON object format. Use \"output\" key to specify function output and \"error\" key to specify error details (if any). If \"output\" and \"error\" keys are not specified, then whole \"response\" is treated as function output.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudAiplatformV1beta1GenerateContentRequest": { +"description": "Request message for [PredictionService.GenerateContent].", +"id": "GoogleCloudAiplatformV1beta1GenerateContentRequest", +"properties": { +"cachedContent": { +"description": "Optional. The name of the cached content used as context to serve the prediction. Note: only used in explicit caching, where users can have control over caching (e.g. what content to cache) and enjoy guaranteed cost savings. Format: `projects/{project}/locations/{location}/cachedContents/{cachedContent}`", +"type": "string" +}, +"contents": { +"description": "Required. The content of the current conversation with the model. For single-turn queries, this is a single instance. For multi-turn queries, this is a repeated field that contains conversation history + latest request.", +"items": { +"$ref": "GoogleCloudAiplatformV1beta1Content" +}, +"type": "array" +}, +"generationConfig": { +"$ref": "GoogleCloudAiplatformV1beta1GenerationConfig", +"description": "Optional. Generation config." +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. The labels with user-defined metadata for the request. It is used for billing and reporting only. Label keys and values can be no longer than 63 characters (Unicode codepoints) and 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" +}, +"safetySettings": { +"description": "Optional. Per request settings for blocking unsafe content. Enforced on GenerateContentResponse.candidates.", +"items": { +"$ref": "GoogleCloudAiplatformV1beta1SafetySetting" +}, +"type": "array" +}, +"systemInstruction": { +"$ref": "GoogleCloudAiplatformV1beta1Content", +"description": "Optional. The user provided system instructions for the model. Note: only text should be used in parts and content in each part will be in a separate paragraph." +}, +"toolConfig": { +"$ref": "GoogleCloudAiplatformV1beta1ToolConfig", +"description": "Optional. Tool config. This config is shared for all tools provided in the request." +}, +"tools": { +"description": "Optional. A list of `Tools` the model may use to generate the next response. A `Tool` is a piece of code that enables the system to interact with external systems to perform an action, or set of actions, outside of knowledge and scope of the model.", +"items": { +"$ref": "GoogleCloudAiplatformV1beta1Tool" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudAiplatformV1beta1GenerateContentResponse": { +"description": "Response message for [PredictionService.GenerateContent].", +"id": "GoogleCloudAiplatformV1beta1GenerateContentResponse", +"properties": { +"candidates": { +"description": "Output only. Generated candidates.", +"items": { +"$ref": "GoogleCloudAiplatformV1beta1Candidate" +}, +"readOnly": true, +"type": "array" +}, +"modelVersion": { +"description": "Output only. The model version used to generate the response.", +"readOnly": true, +"type": "string" +}, +"promptFeedback": { +"$ref": "GoogleCloudAiplatformV1beta1GenerateContentResponsePromptFeedback", +"description": "Output only. Content filter results for a prompt sent in the request. Note: Sent only in the first stream chunk. Only happens when no candidates were generated due to content violations.", +"readOnly": true +}, +"usageMetadata": { +"$ref": "GoogleCloudAiplatformV1beta1GenerateContentResponseUsageMetadata", +"description": "Usage metadata about the response(s)." +} +}, +"type": "object" +}, +"GoogleCloudAiplatformV1beta1GenerateContentResponsePromptFeedback": { +"description": "Content filter results for a prompt sent in the request.", +"id": "GoogleCloudAiplatformV1beta1GenerateContentResponsePromptFeedback", +"properties": { +"blockReason": { +"description": "Output only. Blocked reason.", +"enum": [ +"BLOCKED_REASON_UNSPECIFIED", +"SAFETY", +"OTHER", +"BLOCKLIST", +"PROHIBITED_CONTENT" +], +"enumDescriptions": [ +"Unspecified blocked reason.", +"Candidates blocked due to safety.", +"Candidates blocked due to other reason.", +"Candidates blocked due to the terms which are included from the terminology blocklist.", +"Candidates blocked due to prohibited content." +], +"readOnly": true, +"type": "string" +}, +"blockReasonMessage": { +"description": "Output only. A readable block reason message.", +"readOnly": true, +"type": "string" +}, +"safetyRatings": { +"description": "Output only. Safety ratings.", +"items": { +"$ref": "GoogleCloudAiplatformV1beta1SafetyRating" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudAiplatformV1beta1GenerateContentResponseUsageMetadata": { +"description": "Usage metadata about response(s).", +"id": "GoogleCloudAiplatformV1beta1GenerateContentResponseUsageMetadata", +"properties": { +"cachedContentTokenCount": { +"description": "Output only. Number of tokens in the cached part in the input (the cached content).", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"candidatesTokenCount": { +"description": "Number of tokens in the response(s).", +"format": "int32", +"type": "integer" +}, +"promptTokenCount": { +"description": "Number of tokens in the request. When `cached_content` is set, this is still the total effective prompt size meaning this includes the number of tokens in the cached content.", +"format": "int32", +"type": "integer" +}, +"totalTokenCount": { +"description": "Total token count for prompt and response candidates.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudAiplatformV1beta1GenerationConfig": { +"description": "Generation config.", +"id": "GoogleCloudAiplatformV1beta1GenerationConfig", +"properties": { +"audioTimestamp": { +"description": "Optional. If enabled, audio timestamp will be included in the request to the model.", +"type": "boolean" +}, +"candidateCount": { +"description": "Optional. Number of candidates to generate.", +"format": "int32", +"type": "integer" +}, +"frequencyPenalty": { +"description": "Optional. Frequency penalties.", +"format": "float", +"type": "number" +}, +"logprobs": { +"description": "Optional. Logit probabilities.", +"format": "int32", +"type": "integer" +}, +"maxOutputTokens": { +"description": "Optional. The maximum number of output tokens to generate per message.", +"format": "int32", +"type": "integer" +}, +"mediaResolution": { +"description": "Optional. If specified, the media resolution specified will be used.", +"enum": [ +"MEDIA_RESOLUTION_UNSPECIFIED", +"MEDIA_RESOLUTION_LOW", +"MEDIA_RESOLUTION_MEDIUM", +"MEDIA_RESOLUTION_HIGH" +], +"enumDescriptions": [ +"Media resolution has not been set.", +"Media resolution set to low (64 tokens).", +"Media resolution set to medium (256 tokens).", +"Media resolution set to high (zoomed reframing with 256 tokens)." +], +"type": "string" +}, +"presencePenalty": { +"description": "Optional. Positive penalties.", +"format": "float", +"type": "number" +}, +"responseLogprobs": { +"description": "Optional. If true, export the logprobs results in response.", +"type": "boolean" +}, +"responseMimeType": { +"description": "Optional. Output response mimetype of the generated candidate text. Supported mimetype: - `text/plain`: (default) Text output. - `application/json`: JSON response in the candidates. The model needs to be prompted to output the appropriate response type, otherwise the behavior is undefined. This is a preview feature.", +"type": "string" +}, +"responseModalities": { +"description": "Optional. The modalities of the response.", +"items": { +"enum": [ +"MODALITY_UNSPECIFIED", +"TEXT", +"IMAGE", +"AUDIO" +], +"enumDescriptions": [ +"Unspecified modality. Will be processed as text.", +"Text modality.", +"Image modality.", +"Audio modality." +], +"type": "string" +}, +"type": "array" +}, +"responseSchema": { +"$ref": "GoogleCloudAiplatformV1beta1Schema", +"description": "Optional. The `Schema` object allows the definition of input and output data types. These types can be objects, but also primitives and arrays. Represents a select subset of an [OpenAPI 3.0 schema object](https://spec.openapis.org/oas/v3.0.3#schema). If set, a compatible response_mime_type must also be set. Compatible mimetypes: `application/json`: Schema for JSON response." +}, +"routingConfig": { +"$ref": "GoogleCloudAiplatformV1beta1GenerationConfigRoutingConfig", +"description": "Optional. Routing configuration." +}, +"seed": { +"description": "Optional. Seed.", +"format": "int32", +"type": "integer" +}, +"speechConfig": { +"$ref": "GoogleCloudAiplatformV1beta1SpeechConfig", +"description": "Optional. The speech generation config." +}, +"stopSequences": { +"description": "Optional. Stop sequences.", +"items": { +"type": "string" +}, +"type": "array" +}, +"temperature": { +"description": "Optional. Controls the randomness of predictions.", +"format": "float", +"type": "number" +}, +"topK": { +"description": "Optional. If specified, top-k sampling will be used.", +"format": "float", +"type": "number" +}, +"topP": { +"description": "Optional. If specified, nucleus sampling will be used.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudAiplatformV1beta1GenerationConfigRoutingConfig": { +"description": "The configuration for routing the request to a specific model.", +"id": "GoogleCloudAiplatformV1beta1GenerationConfigRoutingConfig", +"properties": { +"autoMode": { +"$ref": "GoogleCloudAiplatformV1beta1GenerationConfigRoutingConfigAutoRoutingMode", +"description": "Automated routing." +}, +"manualMode": { +"$ref": "GoogleCloudAiplatformV1beta1GenerationConfigRoutingConfigManualRoutingMode", +"description": "Manual routing." +} +}, +"type": "object" +}, +"GoogleCloudAiplatformV1beta1GenerationConfigRoutingConfigAutoRoutingMode": { +"description": "When automated routing is specified, the routing will be determined by the pretrained routing model and customer provided model routing preference.", +"id": "GoogleCloudAiplatformV1beta1GenerationConfigRoutingConfigAutoRoutingMode", +"properties": { +"modelRoutingPreference": { +"description": "The model routing preference.", +"enum": [ +"UNKNOWN", +"PRIORITIZE_QUALITY", +"BALANCED", +"PRIORITIZE_COST" +], +"enumDescriptions": [ +"Unspecified model routing preference.", +"Prefer higher quality over low cost.", +"Balanced model routing preference.", +"Prefer lower cost over higher quality." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudAiplatformV1beta1GenerationConfigRoutingConfigManualRoutingMode": { +"description": "When manual routing is set, the specified model will be used directly.", +"id": "GoogleCloudAiplatformV1beta1GenerationConfigRoutingConfigManualRoutingMode", +"properties": { +"modelName": { +"description": "The model name to use. Only the public LLM models are accepted. e.g. 'gemini-1.5-pro-001'.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudAiplatformV1beta1GoogleSearchRetrieval": { +"description": "Tool to retrieve public web data for grounding, powered by Google.", +"id": "GoogleCloudAiplatformV1beta1GoogleSearchRetrieval", +"properties": { +"dynamicRetrievalConfig": { +"$ref": "GoogleCloudAiplatformV1beta1DynamicRetrievalConfig", +"description": "Specifies the dynamic retrieval configuration for the given source." +} +}, +"type": "object" +}, +"GoogleCloudAiplatformV1beta1GroundingChunk": { +"description": "Grounding chunk.", +"id": "GoogleCloudAiplatformV1beta1GroundingChunk", +"properties": { +"retrievedContext": { +"$ref": "GoogleCloudAiplatformV1beta1GroundingChunkRetrievedContext", +"description": "Grounding chunk from context retrieved by the retrieval tools." +}, +"web": { +"$ref": "GoogleCloudAiplatformV1beta1GroundingChunkWeb", +"description": "Grounding chunk from the web." +} +}, +"type": "object" +}, +"GoogleCloudAiplatformV1beta1GroundingChunkRetrievedContext": { +"description": "Chunk from context retrieved by the retrieval tools.", +"id": "GoogleCloudAiplatformV1beta1GroundingChunkRetrievedContext", +"properties": { +"text": { +"description": "Text of the attribution.", +"type": "string" +}, +"title": { +"description": "Title of the attribution.", +"type": "string" +}, +"uri": { +"description": "URI reference of the attribution.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudAiplatformV1beta1GroundingChunkWeb": { +"description": "Chunk from the web.", +"id": "GoogleCloudAiplatformV1beta1GroundingChunkWeb", +"properties": { +"title": { +"description": "Title of the chunk.", +"type": "string" +}, +"uri": { +"description": "URI reference of the chunk.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudAiplatformV1beta1GroundingMetadata": { +"description": "Metadata returned to client when grounding is enabled.", +"id": "GoogleCloudAiplatformV1beta1GroundingMetadata", +"properties": { +"groundingChunks": { +"description": "List of supporting references retrieved from specified grounding source.", +"items": { +"$ref": "GoogleCloudAiplatformV1beta1GroundingChunk" +}, +"type": "array" +}, +"groundingSupports": { +"description": "Optional. List of grounding support.", +"items": { +"$ref": "GoogleCloudAiplatformV1beta1GroundingSupport" +}, +"type": "array" +}, +"retrievalMetadata": { +"$ref": "GoogleCloudAiplatformV1beta1RetrievalMetadata", +"description": "Optional. Output only. Retrieval metadata.", +"readOnly": true +}, +"retrievalQueries": { +"description": "Optional. Queries executed by the retrieval tools.", +"items": { +"type": "string" +}, +"type": "array" +}, +"searchEntryPoint": { +"$ref": "GoogleCloudAiplatformV1beta1SearchEntryPoint", +"description": "Optional. Google search entry for the following-up web searches." +}, +"webSearchQueries": { +"description": "Optional. Web search queries for the following-up web search.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudAiplatformV1beta1GroundingSupport": { +"description": "Grounding support.", +"id": "GoogleCloudAiplatformV1beta1GroundingSupport", +"properties": { +"confidenceScores": { +"description": "Confidence score of the support references. Ranges from 0 to 1. 1 is the most confident. This list must have the same size as the grounding_chunk_indices.", +"items": { +"format": "float", +"type": "number" +}, +"type": "array" +}, +"groundingChunkIndices": { +"description": "A list of indices (into 'grounding_chunk') specifying the citations associated with the claim. For instance [1,3,4] means that grounding_chunk[1], grounding_chunk[3], grounding_chunk[4] are the retrieved content attributed to the claim.", +"items": { +"format": "int32", +"type": "integer" +}, +"type": "array" +}, +"segment": { +"$ref": "GoogleCloudAiplatformV1beta1Segment", +"description": "Segment of the content this support belongs to." +} +}, +"type": "object" +}, +"GoogleCloudAiplatformV1beta1LogprobsResult": { +"description": "Logprobs Result", +"id": "GoogleCloudAiplatformV1beta1LogprobsResult", +"properties": { +"chosenCandidates": { +"description": "Length = total number of decoding steps. The chosen candidates may or may not be in top_candidates.", +"items": { +"$ref": "GoogleCloudAiplatformV1beta1LogprobsResultCandidate" +}, +"type": "array" +}, +"topCandidates": { +"description": "Length = total number of decoding steps.", +"items": { +"$ref": "GoogleCloudAiplatformV1beta1LogprobsResultTopCandidates" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudAiplatformV1beta1LogprobsResultCandidate": { +"description": "Candidate for the logprobs token and score.", +"id": "GoogleCloudAiplatformV1beta1LogprobsResultCandidate", +"properties": { +"logProbability": { +"description": "The candidate's log probability.", +"format": "float", +"type": "number" +}, +"token": { +"description": "The candidate's token string value.", +"type": "string" +}, +"tokenId": { +"description": "The candidate's token id value.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudAiplatformV1beta1LogprobsResultTopCandidates": { +"description": "Candidates with top log probabilities at each decoding step.", +"id": "GoogleCloudAiplatformV1beta1LogprobsResultTopCandidates", +"properties": { +"candidates": { +"description": "Sorted by log probability in descending order.", +"items": { +"$ref": "GoogleCloudAiplatformV1beta1LogprobsResultCandidate" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudAiplatformV1beta1Part": { +"description": "A datatype containing media that is part of a multi-part `Content` message. A `Part` consists of data which has an associated datatype. A `Part` can only contain one of the accepted types in `Part.data`. A `Part` must have a fixed IANA MIME type identifying the type and subtype of the media if `inline_data` or `file_data` field is filled with raw bytes.", +"id": "GoogleCloudAiplatformV1beta1Part", +"properties": { +"codeExecutionResult": { +"$ref": "GoogleCloudAiplatformV1beta1CodeExecutionResult", +"description": "Optional. Result of executing the [ExecutableCode]." +}, +"executableCode": { +"$ref": "GoogleCloudAiplatformV1beta1ExecutableCode", +"description": "Optional. Code generated by the model that is meant to be executed." +}, +"fileData": { +"$ref": "GoogleCloudAiplatformV1beta1FileData", +"description": "Optional. URI based data." +}, +"functionCall": { +"$ref": "GoogleCloudAiplatformV1beta1FunctionCall", +"description": "Optional. A predicted [FunctionCall] returned from the model that contains a string representing the [FunctionDeclaration.name] with the parameters and their values." +}, +"functionResponse": { +"$ref": "GoogleCloudAiplatformV1beta1FunctionResponse", +"description": "Optional. The result output of a [FunctionCall] that contains a string representing the [FunctionDeclaration.name] and a structured JSON object containing any output from the function call. It is used as context to the model." +}, +"inlineData": { +"$ref": "GoogleCloudAiplatformV1beta1Blob", +"description": "Optional. Inlined bytes data." +}, +"text": { +"description": "Optional. Text part (can be code).", +"type": "string" +}, +"thought": { +"description": "Output only. Indicates if the part is thought from the model.", +"readOnly": true, +"type": "boolean" +}, +"videoMetadata": { +"$ref": "GoogleCloudAiplatformV1beta1VideoMetadata", +"description": "Optional. Video metadata. The metadata should only be specified while the video data is presented in inline_data or file_data." +} +}, +"type": "object" +}, +"GoogleCloudAiplatformV1beta1PrebuiltVoiceConfig": { +"description": "The configuration for the prebuilt speaker to use.", +"id": "GoogleCloudAiplatformV1beta1PrebuiltVoiceConfig", +"properties": { +"voiceName": { +"description": "The name of the preset voice to use.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudAiplatformV1beta1RagRetrievalConfig": { +"description": "Specifies the context retrieval config.", +"id": "GoogleCloudAiplatformV1beta1RagRetrievalConfig", +"properties": { +"filter": { +"$ref": "GoogleCloudAiplatformV1beta1RagRetrievalConfigFilter", +"description": "Optional. Config for filters." +}, +"hybridSearch": { +"$ref": "GoogleCloudAiplatformV1beta1RagRetrievalConfigHybridSearch", +"description": "Optional. Config for Hybrid Search." +}, +"ranking": { +"$ref": "GoogleCloudAiplatformV1beta1RagRetrievalConfigRanking", +"description": "Optional. Config for ranking and reranking." +}, +"topK": { +"description": "Optional. The number of contexts to retrieve.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudAiplatformV1beta1RagRetrievalConfigFilter": { +"description": "Config for filters.", +"id": "GoogleCloudAiplatformV1beta1RagRetrievalConfigFilter", +"properties": { +"metadataFilter": { +"description": "Optional. String for metadata filtering.", +"type": "string" +}, +"vectorDistanceThreshold": { +"description": "Optional. Only returns contexts with vector distance smaller than the threshold.", +"format": "double", +"type": "number" +}, +"vectorSimilarityThreshold": { +"description": "Optional. Only returns contexts with vector similarity larger than the threshold.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudAiplatformV1beta1RagRetrievalConfigHybridSearch": { +"description": "Config for Hybrid Search.", +"id": "GoogleCloudAiplatformV1beta1RagRetrievalConfigHybridSearch", +"properties": { +"alpha": { +"description": "Optional. Alpha value controls the weight between dense and sparse vector search results. The range is [0, 1], while 0 means sparse vector search only and 1 means dense vector search only. The default value is 0.5 which balances sparse and dense vector search equally.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudAiplatformV1beta1RagRetrievalConfigRanking": { +"description": "Config for ranking and reranking.", +"id": "GoogleCloudAiplatformV1beta1RagRetrievalConfigRanking", +"properties": { +"llmRanker": { +"$ref": "GoogleCloudAiplatformV1beta1RagRetrievalConfigRankingLlmRanker", +"description": "Optional. Config for LlmRanker." +}, +"rankService": { +"$ref": "GoogleCloudAiplatformV1beta1RagRetrievalConfigRankingRankService", +"description": "Optional. Config for Rank Service." +} +}, +"type": "object" +}, +"GoogleCloudAiplatformV1beta1RagRetrievalConfigRankingLlmRanker": { +"description": "Config for LlmRanker.", +"id": "GoogleCloudAiplatformV1beta1RagRetrievalConfigRankingLlmRanker", +"properties": { +"modelName": { +"description": "Optional. The model name used for ranking. Format: `gemini-1.5-pro`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudAiplatformV1beta1RagRetrievalConfigRankingRankService": { +"description": "Config for Rank Service.", +"id": "GoogleCloudAiplatformV1beta1RagRetrievalConfigRankingRankService", +"properties": { +"modelName": { +"description": "Optional. The model name of the rank service. Format: `semantic-ranker-512@latest`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudAiplatformV1beta1Retrieval": { +"description": "Defines a retrieval tool that model can call to access external knowledge.", +"id": "GoogleCloudAiplatformV1beta1Retrieval", +"properties": { +"disableAttribution": { +"deprecated": true, +"description": "Optional. Deprecated. This option is no longer supported.", +"type": "boolean" +}, +"vertexAiSearch": { +"$ref": "GoogleCloudAiplatformV1beta1VertexAISearch", +"description": "Set to use data source powered by Vertex AI Search." +}, +"vertexRagStore": { +"$ref": "GoogleCloudAiplatformV1beta1VertexRagStore", +"description": "Set to use data source powered by Vertex RAG store. User data is uploaded via the VertexRagDataService." +} +}, +"type": "object" +}, +"GoogleCloudAiplatformV1beta1RetrievalConfig": { +"description": "Retrieval config.", +"id": "GoogleCloudAiplatformV1beta1RetrievalConfig", +"properties": { +"languageCode": { +"description": "The language code of the user.", +"type": "string" +}, +"latLng": { +"$ref": "LatLng", +"description": "The location of the user." +} +}, +"type": "object" +}, +"GoogleCloudAiplatformV1beta1RetrievalMetadata": { +"description": "Metadata related to retrieval in the grounding flow.", +"id": "GoogleCloudAiplatformV1beta1RetrievalMetadata", +"properties": { +"googleSearchDynamicRetrievalScore": { +"description": "Optional. Score indicating how likely information from Google Search could help answer the prompt. The score is in the range `[0, 1]`, where 0 is the least likely and 1 is the most likely. This score is only populated when Google Search grounding and dynamic retrieval is enabled. It will be compared to the threshold to determine whether to trigger Google Search.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudAiplatformV1beta1SafetyRating": { +"description": "Safety rating corresponding to the generated content.", +"id": "GoogleCloudAiplatformV1beta1SafetyRating", +"properties": { +"blocked": { +"description": "Output only. Indicates whether the content was filtered out because of this rating.", +"readOnly": true, +"type": "boolean" +}, +"category": { +"description": "Output only. Harm category.", +"enum": [ +"HARM_CATEGORY_UNSPECIFIED", +"HARM_CATEGORY_HATE_SPEECH", +"HARM_CATEGORY_DANGEROUS_CONTENT", +"HARM_CATEGORY_HARASSMENT", +"HARM_CATEGORY_SEXUALLY_EXPLICIT", +"HARM_CATEGORY_CIVIC_INTEGRITY" +], +"enumDescriptions": [ +"The harm category is unspecified.", +"The harm category is hate speech.", +"The harm category is dangerous content.", +"The harm category is harassment.", +"The harm category is sexually explicit content.", +"The harm category is civic integrity." +], +"readOnly": true, +"type": "string" +}, +"probability": { +"description": "Output only. Harm probability levels in the content.", +"enum": [ +"HARM_PROBABILITY_UNSPECIFIED", +"NEGLIGIBLE", +"LOW", +"MEDIUM", +"HIGH" +], +"enumDescriptions": [ +"Harm probability unspecified.", +"Negligible level of harm.", +"Low level of harm.", +"Medium level of harm.", +"High level of harm." +], +"readOnly": true, +"type": "string" +}, +"probabilityScore": { +"description": "Output only. Harm probability score.", +"format": "float", +"readOnly": true, +"type": "number" +}, +"severity": { +"description": "Output only. Harm severity levels in the content.", +"enum": [ +"HARM_SEVERITY_UNSPECIFIED", +"HARM_SEVERITY_NEGLIGIBLE", +"HARM_SEVERITY_LOW", +"HARM_SEVERITY_MEDIUM", +"HARM_SEVERITY_HIGH" +], +"enumDescriptions": [ +"Harm severity unspecified.", +"Negligible level of harm severity.", +"Low level of harm severity.", +"Medium level of harm severity.", +"High level of harm severity." +], +"readOnly": true, +"type": "string" +}, +"severityScore": { +"description": "Output only. Harm severity score.", +"format": "float", +"readOnly": true, +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudAiplatformV1beta1SafetySetting": { +"description": "Safety settings.", +"id": "GoogleCloudAiplatformV1beta1SafetySetting", +"properties": { +"category": { +"description": "Required. Harm category.", +"enum": [ +"HARM_CATEGORY_UNSPECIFIED", +"HARM_CATEGORY_HATE_SPEECH", +"HARM_CATEGORY_DANGEROUS_CONTENT", +"HARM_CATEGORY_HARASSMENT", +"HARM_CATEGORY_SEXUALLY_EXPLICIT", +"HARM_CATEGORY_CIVIC_INTEGRITY" +], +"enumDescriptions": [ +"The harm category is unspecified.", +"The harm category is hate speech.", +"The harm category is dangerous content.", +"The harm category is harassment.", +"The harm category is sexually explicit content.", +"The harm category is civic integrity." +], +"type": "string" +}, +"method": { +"description": "Optional. Specify if the threshold is used for probability or severity score. If not specified, the threshold is used for probability score.", +"enum": [ +"HARM_BLOCK_METHOD_UNSPECIFIED", +"SEVERITY", +"PROBABILITY" +], +"enumDescriptions": [ +"The harm block method is unspecified.", +"The harm block method uses both probability and severity scores.", +"The harm block method uses the probability score." +], +"type": "string" +}, +"threshold": { +"description": "Required. The harm block threshold.", +"enum": [ +"HARM_BLOCK_THRESHOLD_UNSPECIFIED", +"BLOCK_LOW_AND_ABOVE", +"BLOCK_MEDIUM_AND_ABOVE", +"BLOCK_ONLY_HIGH", +"BLOCK_NONE", +"OFF" +], +"enumDescriptions": [ +"Unspecified harm block threshold.", +"Block low threshold and above (i.e. block more).", +"Block medium threshold and above.", +"Block only high threshold (i.e. block less).", +"Block none.", +"Turn off the safety filter." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudAiplatformV1beta1Schema": { +"description": "Schema is used to define the format of input/output data. Represents a select subset of an [OpenAPI 3.0 schema object](https://spec.openapis.org/oas/v3.0.3#schema-object). More fields may be added in the future as needed.", +"id": "GoogleCloudAiplatformV1beta1Schema", +"properties": { +"anyOf": { +"description": "Optional. The value should be validated against any (one or more) of the subschemas in the list.", +"items": { +"$ref": "GoogleCloudAiplatformV1beta1Schema" +}, +"type": "array" +}, +"default": { +"description": "Optional. Default value of the data.", +"type": "any" +}, +"description": { +"description": "Optional. The description of the data.", +"type": "string" +}, +"enum": { +"description": "Optional. Possible values of the element of primitive type with enum format. Examples: 1. We can define direction as : {type:STRING, format:enum, enum:[\"EAST\", NORTH\", \"SOUTH\", \"WEST\"]} 2. We can define apartment number as : {type:INTEGER, format:enum, enum:[\"101\", \"201\", \"301\"]}", +"items": { +"type": "string" +}, +"type": "array" +}, +"example": { +"description": "Optional. Example of the object. Will only populated when the object is the root.", +"type": "any" +}, +"format": { +"description": "Optional. The format of the data. Supported formats: for NUMBER type: \"float\", \"double\" for INTEGER type: \"int32\", \"int64\" for STRING type: \"email\", \"byte\", etc", +"type": "string" +}, +"items": { +"$ref": "GoogleCloudAiplatformV1beta1Schema", +"description": "Optional. SCHEMA FIELDS FOR TYPE ARRAY Schema of the elements of Type.ARRAY." +}, +"maxItems": { +"description": "Optional. Maximum number of the elements for Type.ARRAY.", +"format": "int64", +"type": "string" +}, +"maxLength": { +"description": "Optional. Maximum length of the Type.STRING", +"format": "int64", +"type": "string" +}, +"maxProperties": { +"description": "Optional. Maximum number of the properties for Type.OBJECT.", +"format": "int64", +"type": "string" +}, +"maximum": { +"description": "Optional. Maximum value of the Type.INTEGER and Type.NUMBER", +"format": "double", +"type": "number" +}, +"minItems": { +"description": "Optional. Minimum number of the elements for Type.ARRAY.", +"format": "int64", +"type": "string" +}, +"minLength": { +"description": "Optional. SCHEMA FIELDS FOR TYPE STRING Minimum length of the Type.STRING", +"format": "int64", +"type": "string" +}, +"minProperties": { +"description": "Optional. Minimum number of the properties for Type.OBJECT.", +"format": "int64", +"type": "string" +}, +"minimum": { +"description": "Optional. SCHEMA FIELDS FOR TYPE INTEGER and NUMBER Minimum value of the Type.INTEGER and Type.NUMBER", +"format": "double", +"type": "number" +}, +"nullable": { +"description": "Optional. Indicates if the value may be null.", +"type": "boolean" +}, +"pattern": { +"description": "Optional. Pattern of the Type.STRING to restrict a string to a regular expression.", +"type": "string" +}, +"properties": { +"additionalProperties": { +"$ref": "GoogleCloudAiplatformV1beta1Schema" +}, +"description": "Optional. SCHEMA FIELDS FOR TYPE OBJECT Properties of Type.OBJECT.", +"type": "object" +}, +"propertyOrdering": { +"description": "Optional. The order of the properties. Not a standard field in open api spec. Only used to support the order of the properties.", +"items": { +"type": "string" +}, +"type": "array" +}, +"required": { +"description": "Optional. Required properties of Type.OBJECT.", +"items": { +"type": "string" +}, +"type": "array" +}, +"title": { +"description": "Optional. The title of the Schema.", +"type": "string" +}, +"type": { +"description": "Optional. The type of the data.", +"enum": [ +"TYPE_UNSPECIFIED", +"STRING", +"NUMBER", +"INTEGER", +"BOOLEAN", +"ARRAY", +"OBJECT" +], +"enumDescriptions": [ +"Not specified, should not be used.", +"OpenAPI string type", +"OpenAPI number type", +"OpenAPI integer type", +"OpenAPI boolean type", +"OpenAPI array type", +"OpenAPI object type" +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudAiplatformV1beta1SearchEntryPoint": { +"description": "Google search entry point.", +"id": "GoogleCloudAiplatformV1beta1SearchEntryPoint", +"properties": { +"renderedContent": { +"description": "Optional. Web content snippet that can be embedded in a web page or an app webview.", +"type": "string" +}, +"sdkBlob": { +"description": "Optional. Base64 encoded JSON representing array of tuple.", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudAiplatformV1beta1Segment": { +"description": "Segment of the content.", +"id": "GoogleCloudAiplatformV1beta1Segment", +"properties": { +"endIndex": { +"description": "Output only. End index in the given Part, measured in bytes. Offset from the start of the Part, exclusive, starting at zero.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"partIndex": { +"description": "Output only. The index of a Part object within its parent Content object.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"startIndex": { +"description": "Output only. Start index in the given Part, measured in bytes. Offset from the start of the Part, inclusive, starting at zero.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"text": { +"description": "Output only. The text corresponding to the segment from the response.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudAiplatformV1beta1SpeechConfig": { +"description": "The speech generation config.", +"id": "GoogleCloudAiplatformV1beta1SpeechConfig", +"properties": { +"voiceConfig": { +"$ref": "GoogleCloudAiplatformV1beta1VoiceConfig", +"description": "The configuration for the speaker to use." +} +}, +"type": "object" +}, +"GoogleCloudAiplatformV1beta1Tool": { +"description": "Tool details that the model may use to generate response. A `Tool` is a piece of code that enables the system to interact with external systems to perform an action, or set of actions, outside of knowledge and scope of the model. A Tool object should contain exactly one type of Tool (e.g FunctionDeclaration, Retrieval or GoogleSearchRetrieval).", +"id": "GoogleCloudAiplatformV1beta1Tool", +"properties": { +"codeExecution": { +"$ref": "GoogleCloudAiplatformV1beta1ToolCodeExecution", +"description": "Optional. CodeExecution tool type. Enables the model to execute code as part of generation. This field is only used by the Gemini Developer API services." +}, +"functionDeclarations": { +"description": "Optional. Function tool type. One or more function declarations to be passed to the model along with the current user query. Model may decide to call a subset of these functions by populating FunctionCall in the response. User should provide a FunctionResponse for each function call in the next turn. Based on the function responses, Model will generate the final response back to the user. Maximum 128 function declarations can be provided.", +"items": { +"$ref": "GoogleCloudAiplatformV1beta1FunctionDeclaration" +}, +"type": "array" +}, +"googleSearch": { +"$ref": "GoogleCloudAiplatformV1beta1ToolGoogleSearch", +"description": "Optional. GoogleSearch tool type. Tool to support Google Search in Model. Powered by Google." +}, +"googleSearchRetrieval": { +"$ref": "GoogleCloudAiplatformV1beta1GoogleSearchRetrieval", +"description": "Optional. GoogleSearchRetrieval tool type. Specialized retrieval tool that is powered by Google search." +}, +"retrieval": { +"$ref": "GoogleCloudAiplatformV1beta1Retrieval", +"description": "Optional. Retrieval tool type. System will always execute the provided retrieval tool(s) to get external knowledge to answer the prompt. Retrieval results are presented to the model for generation." +} +}, +"type": "object" +}, +"GoogleCloudAiplatformV1beta1ToolCodeExecution": { +"description": "Tool that executes code generated by the model, and automatically returns the result to the model. See also [ExecutableCode]and [CodeExecutionResult] which are input and output to this tool.", +"id": "GoogleCloudAiplatformV1beta1ToolCodeExecution", +"properties": {}, +"type": "object" +}, +"GoogleCloudAiplatformV1beta1ToolConfig": { +"description": "Tool config. This config is shared for all tools provided in the request.", +"id": "GoogleCloudAiplatformV1beta1ToolConfig", +"properties": { +"functionCallingConfig": { +"$ref": "GoogleCloudAiplatformV1beta1FunctionCallingConfig", +"description": "Optional. Function calling config." +}, +"retrievalConfig": { +"$ref": "GoogleCloudAiplatformV1beta1RetrievalConfig", +"description": "Optional. Retrieval config." +} +}, +"type": "object" +}, +"GoogleCloudAiplatformV1beta1ToolGoogleSearch": { +"description": "GoogleSearch tool type. Tool to support Google Search in Model. Powered by Google.", +"id": "GoogleCloudAiplatformV1beta1ToolGoogleSearch", +"properties": {}, +"type": "object" +}, +"GoogleCloudAiplatformV1beta1VertexAISearch": { +"description": "Retrieve from Vertex AI Search datastore for grounding. See https://cloud.google.com/products/agent-builder", +"id": "GoogleCloudAiplatformV1beta1VertexAISearch", +"properties": { +"datastore": { +"description": "Required. Fully-qualified Vertex AI Search data store resource ID. Format: `projects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore}`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudAiplatformV1beta1VertexRagStore": { +"description": "Retrieve from Vertex RAG Store for grounding.", +"id": "GoogleCloudAiplatformV1beta1VertexRagStore", +"properties": { +"ragCorpora": { +"deprecated": true, +"description": "Optional. Deprecated. Please use rag_resources instead.", +"items": { +"type": "string" +}, +"type": "array" +}, +"ragResources": { +"description": "Optional. The representation of the rag source. It can be used to specify corpus only or ragfiles. Currently only support one corpus or multiple files from one corpus. In the future we may open up multiple corpora support.", +"items": { +"$ref": "GoogleCloudAiplatformV1beta1VertexRagStoreRagResource" +}, +"type": "array" +}, +"ragRetrievalConfig": { +"$ref": "GoogleCloudAiplatformV1beta1RagRetrievalConfig", +"description": "Optional. The retrieval config for the Rag query." +}, +"similarityTopK": { +"deprecated": true, +"description": "Optional. Number of top k results to return from the selected corpora.", +"format": "int32", +"type": "integer" +}, +"vectorDistanceThreshold": { +"deprecated": true, +"description": "Optional. Only return results with vector distance smaller than the threshold.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudAiplatformV1beta1VertexRagStoreRagResource": { +"description": "The definition of the Rag resource.", +"id": "GoogleCloudAiplatformV1beta1VertexRagStoreRagResource", +"properties": { +"ragCorpus": { +"description": "Optional. RagCorpora resource name. Format: `projects/{project}/locations/{location}/ragCorpora/{rag_corpus}`", +"type": "string" +}, +"ragFileIds": { +"description": "Optional. rag_file_id. The files should be in the same rag_corpus set in rag_corpus field.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudAiplatformV1beta1VideoMetadata": { +"description": "Metadata describes the input video content.", +"id": "GoogleCloudAiplatformV1beta1VideoMetadata", +"properties": { +"endOffset": { +"description": "Optional. The end offset of the video.", +"format": "google-duration", +"type": "string" +}, +"startOffset": { +"description": "Optional. The start offset of the video.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudAiplatformV1beta1VoiceConfig": { +"description": "The configuration for the voice to use.", +"id": "GoogleCloudAiplatformV1beta1VoiceConfig", +"properties": { +"prebuiltVoiceConfig": { +"$ref": "GoogleCloudAiplatformV1beta1PrebuiltVoiceConfig", +"description": "The configuration for the prebuilt voice to use." +} +}, +"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" +}, +"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" +} +}, +"servicePath": "", +"title": "Firebase ML 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/firebaserules.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/firebaserules.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..a4d34afca121989f1165de66f483d7100768fd7f --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/firebaserules.v1.json @@ -0,0 +1,1063 @@ +{ +"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" +}, +"https://www.googleapis.com/auth/firebase.readonly": { +"description": "View all your Firebase data and settings" +} +} +} +}, +"basePath": "", +"baseUrl": "https://firebaserules.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Firebase Rules", +"description": "Creates and manages rules that determine when a Firebase Rules-enabled service should permit a request. ", +"discoveryVersion": "v1", +"documentationLink": "https://firebase.google.com/docs/storage/security", +"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": "firebaserules:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://firebaserules.mtls.googleapis.com/", +"name": "firebaserules", +"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": { +"test": { +"description": "Test `Source` for syntactic and semantic correctness. Issues present, if any, will be returned to the caller with a description, severity, and source location. The test method may be executed with `Source` or a `Ruleset` name. Passing `Source` is useful for unit testing new rules. Passing a `Ruleset` name is useful for regression testing an existing rule. The following is an example of `Source` that permits users to upload images to a bucket bearing their user id and matching the correct metadata: _*Example*_ // Users are allowed to subscribe and unsubscribe to the blog. service firebase.storage { match /users/{userId}/images/{imageName} { allow write: if userId == request.auth.uid && (imageName.matches('*.png$') || imageName.matches('*.jpg$')) && resource.mimeType.matches('^image/') } }", +"flatPath": "v1/projects/{projectsId}:test", +"httpMethod": "POST", +"id": "firebaserules.projects.test", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Tests may either provide `source` or a `Ruleset` resource name. For tests against `source`, the resource name must refer to the project: Format: `projects/{project_id}` For tests against a `Ruleset`, this must be the `Ruleset` resource name: Format: `projects/{project_id}/rulesets/{ruleset_id}`", +"location": "path", +"pattern": "^projects/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:test", +"request": { +"$ref": "TestRulesetRequest" +}, +"response": { +"$ref": "TestRulesetResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/firebase", +"https://www.googleapis.com/auth/firebase.readonly" +] +} +}, +"resources": { +"releases": { +"methods": { +"create": { +"description": "Create a `Release`. Release names should reflect the developer's deployment practices. For example, the release name may include the environment name, application name, application version, or any other name meaningful to the developer. Once a `Release` refers to a `Ruleset`, the rules can be enforced by Firebase Rules-enabled services. More than one `Release` may be 'live' concurrently. Consider the following three `Release` names for `projects/foo` and the `Ruleset` to which they refer. Release Name -> Ruleset Name * projects/foo/releases/prod -> projects/foo/rulesets/uuid123 * projects/foo/releases/prod/beta -> projects/foo/rulesets/uuid123 * projects/foo/releases/prod/v23 -> projects/foo/rulesets/uuid456 The relationships reflect a `Ruleset` rollout in progress. The `prod` and `prod/beta` releases refer to the same `Ruleset`. However, `prod/v23` refers to a new `Ruleset`. The `Ruleset` reference for a `Release` may be updated using the UpdateRelease method.", +"flatPath": "v1/projects/{projectsId}/releases", +"httpMethod": "POST", +"id": "firebaserules.projects.releases.create", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name for the project which owns this `Release`. Format: `projects/{project_id}`", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}/releases", +"request": { +"$ref": "Release" +}, +"response": { +"$ref": "Release" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/firebase" +] +}, +"delete": { +"description": "Delete a `Release` by resource name.", +"flatPath": "v1/projects/{projectsId}/releases/{releasesId}", +"httpMethod": "DELETE", +"id": "firebaserules.projects.releases.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name for the `Release` to delete. Format: `projects/{project_id}/releases/{release_id}`", +"location": "path", +"pattern": "^projects/[^/]+/releases/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/firebase" +] +}, +"get": { +"description": "Get a `Release` by name.", +"flatPath": "v1/projects/{projectsId}/releases/{releasesId}", +"httpMethod": "GET", +"id": "firebaserules.projects.releases.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the `Release`. Format: `projects/{project_id}/releases/{release_id}`", +"location": "path", +"pattern": "^projects/[^/]+/releases/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Release" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/firebase", +"https://www.googleapis.com/auth/firebase.readonly" +] +}, +"getExecutable": { +"description": "Get the `Release` executable to use when enforcing rules.", +"flatPath": "v1/projects/{projectsId}/releases/{releasesId}:getExecutable", +"httpMethod": "GET", +"id": "firebaserules.projects.releases.getExecutable", +"parameterOrder": [ +"name" +], +"parameters": { +"executableVersion": { +"description": "Optional. The requested runtime executable version. Defaults to FIREBASE_RULES_EXECUTABLE_V1.", +"enum": [ +"RELEASE_EXECUTABLE_VERSION_UNSPECIFIED", +"FIREBASE_RULES_EXECUTABLE_V1", +"FIREBASE_RULES_EXECUTABLE_V2" +], +"enumDescriptions": [ +"Executable format unspecified. Defaults to FIREBASE_RULES_EXECUTABLE_V1", +"Firebase Rules syntax 'rules2' executable versions: Custom AST for use with Java clients.", +"CEL-based executable for use with C++ clients." +], +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. Resource name of the `Release`. Format: `projects/{project_id}/releases/{release_id}`", +"location": "path", +"pattern": "^projects/[^/]+/releases/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:getExecutable", +"response": { +"$ref": "GetReleaseExecutableResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/firebase", +"https://www.googleapis.com/auth/firebase.readonly" +] +}, +"list": { +"description": "List the `Release` values for a project. This list may optionally be filtered by `Release` name, `Ruleset` name, `TestSuite` name, or any combination thereof.", +"flatPath": "v1/projects/{projectsId}/releases", +"httpMethod": "GET", +"id": "firebaserules.projects.releases.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "Optional. `Release` filter. The list method supports filters with restrictions on the `Release.name`, and `Release.ruleset_name`. Example 1: A filter of 'name=prod*' might return `Release`s with names within 'projects/foo' prefixed with 'prod': Name -> Ruleset Name: * projects/foo/releases/prod -> projects/foo/rulesets/uuid1234 * projects/foo/releases/prod/v1 -> projects/foo/rulesets/uuid1234 * projects/foo/releases/prod/v2 -> projects/foo/rulesets/uuid8888 Example 2: A filter of `name=prod* ruleset_name=uuid1234` would return only `Release` instances for 'projects/foo' with names prefixed with 'prod' referring to the same `Ruleset` name of 'uuid1234': Name -> Ruleset Name: * projects/foo/releases/prod -> projects/foo/rulesets/1234 * projects/foo/releases/prod/v1 -> projects/foo/rulesets/1234 In the examples, the filter parameters refer to the search filters are relative to the project. Fully qualified prefixed may also be used.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. Resource name for the project. Format: `projects/{project_id}`", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "Optional. Page size to load. Maximum of 100. Defaults to 10. Note: `page_size` is just a hint and the service may choose to load fewer than `page_size` results due to the size of the output. To traverse all of the releases, the caller should iterate until the `page_token` on the response is empty.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Next page token for the next batch of `Release` instances.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}/releases", +"response": { +"$ref": "ListReleasesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/firebase", +"https://www.googleapis.com/auth/firebase.readonly" +] +}, +"patch": { +"description": "Update a `Release` via PATCH. Only updates to `ruleset_name` will be honored. `Release` rename is not supported. To create a `Release` use the CreateRelease method.", +"flatPath": "v1/projects/{projectsId}/releases/{releasesId}", +"httpMethod": "PATCH", +"id": "firebaserules.projects.releases.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name for the project which owns this `Release`. Format: `projects/{project_id}`", +"location": "path", +"pattern": "^projects/[^/]+/releases/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "UpdateReleaseRequest" +}, +"response": { +"$ref": "Release" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/firebase" +] +} +} +}, +"rulesets": { +"methods": { +"create": { +"description": "Create a `Ruleset` from `Source`. The `Ruleset` is given a unique generated name which is returned to the caller. `Source` containing syntactic or semantics errors will result in an error response indicating the first error encountered. For a detailed view of `Source` issues, use TestRuleset.", +"flatPath": "v1/projects/{projectsId}/rulesets", +"httpMethod": "POST", +"id": "firebaserules.projects.rulesets.create", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name for Project which owns this `Ruleset`. Format: `projects/{project_id}`", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}/rulesets", +"request": { +"$ref": "Ruleset" +}, +"response": { +"$ref": "Ruleset" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/firebase" +] +}, +"delete": { +"description": "Delete a `Ruleset` by resource name. If the `Ruleset` is referenced by a `Release` the operation will fail.", +"flatPath": "v1/projects/{projectsId}/rulesets/{rulesetsId}", +"httpMethod": "DELETE", +"id": "firebaserules.projects.rulesets.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name for the ruleset to delete. Format: `projects/{project_id}/rulesets/{ruleset_id}`", +"location": "path", +"pattern": "^projects/[^/]+/rulesets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/firebase" +] +}, +"get": { +"description": "Get a `Ruleset` by name including the full `Source` contents.", +"flatPath": "v1/projects/{projectsId}/rulesets/{rulesetsId}", +"httpMethod": "GET", +"id": "firebaserules.projects.rulesets.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name for the ruleset to get. Format: `projects/{project_id}/rulesets/{ruleset_id}`", +"location": "path", +"pattern": "^projects/[^/]+/rulesets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Ruleset" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/firebase", +"https://www.googleapis.com/auth/firebase.readonly" +] +}, +"list": { +"description": "List `Ruleset` metadata only and optionally filter the results by `Ruleset` name. The full `Source` contents of a `Ruleset` may be retrieved with GetRuleset.", +"flatPath": "v1/projects/{projectsId}/rulesets", +"httpMethod": "GET", +"id": "firebaserules.projects.rulesets.list", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "Optional. `Ruleset` filter. The list method supports filters with restrictions on `Ruleset.name`. Filters on `Ruleset.create_time` should use the `date` function which parses strings that conform to the RFC 3339 date/time specifications. Example: `create_time > date(\"2017-01-01T00:00:00Z\") AND name=UUID-*`", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. Resource name for the project. Format: `projects/{project_id}`", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "Optional. Page size to load. Maximum of 100. Defaults to 10. Note: `page_size` is just a hint and the service may choose to load less than `page_size` due to the size of the output. To traverse all of the releases, caller should iterate until the `page_token` is empty.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Next page token for loading the next batch of `Ruleset` instances.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}/rulesets", +"response": { +"$ref": "ListRulesetsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/firebase", +"https://www.googleapis.com/auth/firebase.readonly" +] +} +} +} +} +} +}, +"revision": "20241125", +"rootUrl": "https://firebaserules.googleapis.com/", +"schemas": { +"Arg": { +"description": "Arg matchers for the mock function.", +"id": "Arg", +"properties": { +"anyValue": { +"$ref": "Empty", +"description": "Argument matches any value provided." +}, +"exactValue": { +"description": "Argument exactly matches value provided.", +"type": "any" +} +}, +"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" +}, +"ExpressionReport": { +"description": "Describes where in a file an expression is found and what it was evaluated to over the course of its use.", +"id": "ExpressionReport", +"properties": { +"children": { +"description": "Subexpressions", +"items": { +"$ref": "ExpressionReport" +}, +"type": "array" +}, +"sourcePosition": { +"$ref": "SourcePosition", +"description": "Position of expression in original rules source." +}, +"values": { +"description": "Values that this expression evaluated to when encountered.", +"items": { +"$ref": "ValueCount" +}, +"type": "array" +} +}, +"type": "object" +}, +"File": { +"description": "`File` containing source content.", +"id": "File", +"properties": { +"content": { +"description": "Required. Textual Content.", +"type": "string" +}, +"fingerprint": { +"description": "Fingerprint (e.g. github sha) associated with the `File`.", +"format": "byte", +"type": "string" +}, +"name": { +"description": "Required. File name.", +"type": "string" +} +}, +"type": "object" +}, +"FunctionCall": { +"description": "Represents a service-defined function call that was invoked during test execution.", +"id": "FunctionCall", +"properties": { +"args": { +"description": "The arguments that were provided to the function.", +"items": { +"type": "any" +}, +"type": "array" +}, +"function": { +"description": "Name of the function invoked.", +"type": "string" +} +}, +"type": "object" +}, +"FunctionMock": { +"description": "Mock function definition. Mocks must refer to a function declared by the target service. The type of the function args and result will be inferred at test time. If either the arg or result values are not compatible with function type declaration, the request will be considered invalid. More than one `FunctionMock` may be provided for a given function name so long as the `Arg` matchers are distinct. There may be only one function for a given overload where all `Arg` values are `Arg.any_value`.", +"id": "FunctionMock", +"properties": { +"args": { +"description": "The list of `Arg` values to match. The order in which the arguments are provided is the order in which they must appear in the function invocation.", +"items": { +"$ref": "Arg" +}, +"type": "array" +}, +"function": { +"description": "The name of the function. The function name must match one provided by a service declaration.", +"type": "string" +}, +"result": { +"$ref": "Result", +"description": "The mock result of the function call." +} +}, +"type": "object" +}, +"GetReleaseExecutableResponse": { +"description": "The response for FirebaseRulesService.GetReleaseExecutable", +"id": "GetReleaseExecutableResponse", +"properties": { +"executable": { +"description": "Executable view of the `Ruleset` referenced by the `Release`.", +"format": "byte", +"type": "string" +}, +"executableVersion": { +"description": "The Rules runtime version of the executable.", +"enum": [ +"RELEASE_EXECUTABLE_VERSION_UNSPECIFIED", +"FIREBASE_RULES_EXECUTABLE_V1", +"FIREBASE_RULES_EXECUTABLE_V2" +], +"enumDescriptions": [ +"Executable format unspecified. Defaults to FIREBASE_RULES_EXECUTABLE_V1", +"Firebase Rules syntax 'rules2' executable versions: Custom AST for use with Java clients.", +"CEL-based executable for use with C++ clients." +], +"type": "string" +}, +"language": { +"description": "`Language` used to generate the executable bytes.", +"enum": [ +"LANGUAGE_UNSPECIFIED", +"FIREBASE_RULES", +"EVENT_FLOW_TRIGGERS" +], +"enumDescriptions": [ +"Language unspecified. Defaults to FIREBASE_RULES.", +"Firebase Rules language.", +"Event Flow triggers." +], +"type": "string" +}, +"rulesetName": { +"description": "`Ruleset` name associated with the `Release` executable.", +"type": "string" +}, +"syncTime": { +"description": "Optional, indicates the freshness of the result. The response is guaranteed to be the latest within an interval up to the sync_time (inclusive).", +"format": "google-datetime", +"type": "string" +}, +"updateTime": { +"description": "Timestamp for the most recent `Release.update_time`.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"Issue": { +"description": "Issues include warnings, errors, and deprecation notices.", +"id": "Issue", +"properties": { +"description": { +"description": "Short error description.", +"type": "string" +}, +"severity": { +"description": "The severity of the issue.", +"enum": [ +"SEVERITY_UNSPECIFIED", +"DEPRECATION", +"WARNING", +"ERROR" +], +"enumDescriptions": [ +"An unspecified severity.", +"Deprecation issue for statements and method that may no longer be supported or maintained.", +"Warnings such as: unused variables.", +"Errors such as: unmatched curly braces or variable redefinition." +], +"type": "string" +}, +"sourcePosition": { +"$ref": "SourcePosition", +"description": "Position of the issue in the `Source`." +} +}, +"type": "object" +}, +"ListReleasesResponse": { +"description": "The response for FirebaseRulesService.ListReleases.", +"id": "ListReleasesResponse", +"properties": { +"nextPageToken": { +"description": "The pagination token to retrieve the next page of results. If the value is empty, no further results remain.", +"type": "string" +}, +"releases": { +"description": "List of `Release` instances.", +"items": { +"$ref": "Release" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListRulesetsResponse": { +"description": "The response for FirebaseRulesService.ListRulesets.", +"id": "ListRulesetsResponse", +"properties": { +"nextPageToken": { +"description": "The pagination token to retrieve the next page of results. If the value is empty, no further results remain.", +"type": "string" +}, +"rulesets": { +"description": "List of `Ruleset` instances.", +"items": { +"$ref": "Ruleset" +}, +"type": "array" +} +}, +"type": "object" +}, +"Metadata": { +"description": "Metadata for a Ruleset.", +"id": "Metadata", +"properties": { +"services": { +"description": "Services that this ruleset has declarations for (e.g., \"cloud.firestore\"). There may be 0+ of these.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Release": { +"description": "`Release` is a named reference to a `Ruleset`. Once a `Release` refers to a `Ruleset`, rules-enabled services will be able to enforce the `Ruleset`.", +"id": "Release", +"properties": { +"createTime": { +"description": "Output only. Time the release was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Required. Format: `projects/{project_id}/releases/{release_id}`", +"type": "string" +}, +"rulesetName": { +"description": "Required. Name of the `Ruleset` referred to by this `Release`. The `Ruleset` must exist for the `Release` to be created.", +"type": "string" +}, +"updateTime": { +"description": "Output only. Time the release was updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Result": { +"description": "Possible result values from the function mock invocation.", +"id": "Result", +"properties": { +"undefined": { +"$ref": "Empty", +"description": "The result is undefined, meaning the result could not be computed." +}, +"value": { +"description": "The result is an actual value. The type of the value must match that of the type declared by the service.", +"type": "any" +} +}, +"type": "object" +}, +"Ruleset": { +"description": "`Ruleset` is an immutable copy of `Source` with a globally unique identifier and a creation time.", +"id": "Ruleset", +"properties": { +"attachmentPoint": { +"description": "Immutable. Intended resource to which this Ruleset should be released. May be left blank to signify the resource associated with the default release. Expected format: firestore.googleapis.com/projects//databases/", +"type": "string" +}, +"createTime": { +"description": "Output only. Time the `Ruleset` was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"metadata": { +"$ref": "Metadata", +"description": "Output only. The metadata for this ruleset.", +"readOnly": true +}, +"name": { +"description": "Output only. Name of the `Ruleset`. The ruleset_id is auto generated by the service. Format: `projects/{project_id}/rulesets/{ruleset_id}`", +"readOnly": true, +"type": "string" +}, +"source": { +"$ref": "Source", +"description": "Required. `Source` for the `Ruleset`." +} +}, +"type": "object" +}, +"Source": { +"description": "`Source` is one or more `File` messages comprising a logical set of rules.", +"id": "Source", +"properties": { +"files": { +"description": "Required. `File` set constituting the `Source` bundle.", +"items": { +"$ref": "File" +}, +"type": "array" +} +}, +"type": "object" +}, +"SourcePosition": { +"description": "Position in the `Source` content including its line, column number, and an index of the `File` in the `Source` message. Used for debug purposes.", +"id": "SourcePosition", +"properties": { +"column": { +"description": "First column on the source line associated with the source fragment.", +"format": "int32", +"type": "integer" +}, +"currentOffset": { +"description": "Start position relative to the beginning of the file.", +"format": "int32", +"type": "integer" +}, +"endOffset": { +"description": "End position relative to the beginning of the file.", +"format": "int32", +"type": "integer" +}, +"fileName": { +"description": "Name of the `File`.", +"type": "string" +}, +"line": { +"description": "Line number of the source fragment. 1-based.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"TestCase": { +"description": "`TestCase` messages provide the request context and an expectation as to whether the given context will be allowed or denied. Test cases may specify the `request`, `resource`, and `function_mocks` to mock a function call to a service-provided function. The `request` object represents context present at request-time. The `resource` is the value of the target resource as it appears in persistent storage before the request is executed.", +"id": "TestCase", +"properties": { +"expectation": { +"description": "Test expectation.", +"enum": [ +"EXPECTATION_UNSPECIFIED", +"ALLOW", +"DENY" +], +"enumDescriptions": [ +"Unspecified expectation.", +"Expect an allowed result.", +"Expect a denied result." +], +"type": "string" +}, +"expressionReportLevel": { +"description": "Specifies what should be included in the response.", +"enum": [ +"LEVEL_UNSPECIFIED", +"NONE", +"FULL", +"VISITED" +], +"enumDescriptions": [ +"No level has been specified. Defaults to \"NONE\" behavior.", +"Do not include any additional information.", +"Include detailed reporting on expressions evaluated.", +"Only include the expressions that were visited during evaluation." +], +"type": "string" +}, +"functionMocks": { +"description": "Optional function mocks for service-defined functions. If not set, any service defined function is expected to return an error, which may or may not influence the test outcome.", +"items": { +"$ref": "FunctionMock" +}, +"type": "array" +}, +"pathEncoding": { +"description": "Specifies whether paths (such as request.path) are encoded and how.", +"enum": [ +"ENCODING_UNSPECIFIED", +"URL_ENCODED", +"PLAIN" +], +"enumDescriptions": [ +"No encoding has been specified. Defaults to \"URL_ENCODED\" behavior.", +"Treats path segments as URL encoded but with non-encoded separators (\"/\"). This is the default behavior.", +"Treats total path as non-URL encoded e.g. raw." +], +"type": "string" +}, +"request": { +"description": "Request context. The exact format of the request context is service-dependent. See the appropriate service documentation for information about the supported fields and types on the request. Minimally, all services support the following fields and types: Request field | Type ---------------|----------------- auth.uid | `string` auth.token | `map` headers | `map` method | `string` params | `map` path | `string` time | `google.protobuf.Timestamp` If the request value is not well-formed for the service, the request will be rejected as an invalid argument.", +"type": "any" +}, +"resource": { +"description": "Optional resource value as it appears in persistent storage before the request is fulfilled. The resource type depends on the `request.path` value.", +"type": "any" +} +}, +"type": "object" +}, +"TestResult": { +"description": "Test result message containing the state of the test as well as a description and source position for test failures.", +"id": "TestResult", +"properties": { +"debugMessages": { +"description": "Debug messages related to test execution issues encountered during evaluation. Debug messages may be related to too many or too few invocations of function mocks or to runtime errors that occur during evaluation. For example: ```Unable to read variable [name: \"resource\"]```", +"items": { +"type": "string" +}, +"type": "array" +}, +"errorPosition": { +"$ref": "SourcePosition", +"description": "Position in the `Source` or `Ruleset` where the principle runtime error occurs. Evaluation of an expression may result in an error. Rules are deny by default, so a `DENY` expectation when an error is generated is valid. When there is a `DENY` with an error, the `SourcePosition` is returned. E.g. `error_position { line: 19 column: 37 }`" +}, +"expressionReports": { +"description": "The mapping from expression in the ruleset AST to the values they were evaluated to. Partially-nested to mirror AST structure. Note that this field is actually tracking expressions and not permission statements in contrast to the \"visited_expressions\" field above. Literal expressions are omitted.", +"items": { +"$ref": "ExpressionReport" +}, +"type": "array" +}, +"functionCalls": { +"description": "The set of function calls made to service-defined methods. Function calls are included in the order in which they are encountered during evaluation, are provided for both mocked and unmocked functions, and included on the response regardless of the test `state`.", +"items": { +"$ref": "FunctionCall" +}, +"type": "array" +}, +"state": { +"description": "State of the test.", +"enum": [ +"STATE_UNSPECIFIED", +"SUCCESS", +"FAILURE" +], +"enumDescriptions": [ +"Test state is not set.", +"Test is a success.", +"Test is a failure." +], +"type": "string" +}, +"visitedExpressions": { +"description": "The set of visited permission expressions for a given test. This returns the positions and evaluation results of all visited permission expressions which were relevant to the test case, e.g. ``` match /path { allow read if: } ``` For a detailed report of the intermediate evaluation states, see the `expression_reports` field", +"items": { +"$ref": "VisitedExpression" +}, +"type": "array" +} +}, +"type": "object" +}, +"TestRulesetRequest": { +"description": "The request for FirebaseRulesService.TestRuleset.", +"id": "TestRulesetRequest", +"properties": { +"source": { +"$ref": "Source", +"description": "Optional. Optional `Source` to be checked for correctness. This field must not be set when the resource name refers to a `Ruleset`." +}, +"testSuite": { +"$ref": "TestSuite", +"description": "Required. The tests to execute against the `Source`. When `Source` is provided inline, the test cases will only be run if the `Source` is syntactically and semantically valid. Inline `TestSuite` to run." +} +}, +"type": "object" +}, +"TestRulesetResponse": { +"description": "The response for FirebaseRulesService.TestRuleset.", +"id": "TestRulesetResponse", +"properties": { +"issues": { +"description": "Syntactic and semantic `Source` issues of varying severity. Issues of `ERROR` severity will prevent tests from executing.", +"items": { +"$ref": "Issue" +}, +"type": "array" +}, +"testResults": { +"description": "The set of test results given the test cases in the `TestSuite`. The results will appear in the same order as the test cases appear in the `TestSuite`.", +"items": { +"$ref": "TestResult" +}, +"type": "array" +} +}, +"type": "object" +}, +"TestSuite": { +"description": "`TestSuite` is a collection of `TestCase` instances that validate the logical correctness of a `Ruleset`. The `TestSuite` may be referenced in-line within a `TestRuleset` invocation or as part of a `Release` object as a pre-release check.", +"id": "TestSuite", +"properties": { +"testCases": { +"description": "Collection of test cases associated with the `TestSuite`.", +"items": { +"$ref": "TestCase" +}, +"type": "array" +} +}, +"type": "object" +}, +"UpdateReleaseRequest": { +"description": "The request for FirebaseRulesService.UpdateRelease.", +"id": "UpdateReleaseRequest", +"properties": { +"release": { +"$ref": "Release", +"description": "Required. `Release` to update." +}, +"updateMask": { +"description": "Optional. Specifies which fields to update.", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"ValueCount": { +"description": "Tuple for how many times an Expression was evaluated to a particular ExpressionValue.", +"id": "ValueCount", +"properties": { +"count": { +"description": "The amount of times that expression returned.", +"format": "int32", +"type": "integer" +}, +"value": { +"description": "The return value of the expression", +"type": "any" +} +}, +"type": "object" +}, +"VisitedExpression": { +"description": "Store the position and access outcome for an expression visited in rules.", +"id": "VisitedExpression", +"properties": { +"sourcePosition": { +"$ref": "SourcePosition", +"description": "Position in the `Source` or `Ruleset` where an expression was visited." +}, +"value": { +"description": "The evaluated value for the visited expression, e.g. true/false", +"type": "any" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Firebase Rules 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/fitness.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/fitness.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..4304644f07270def3bad4989a15744eb882fa057 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/fitness.v1.json @@ -0,0 +1,1682 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/fitness.activity.read": { +"description": "Use Google Fit to see and store your physical activity data" +}, +"https://www.googleapis.com/auth/fitness.activity.write": { +"description": "Add to your Google Fit physical activity data" +}, +"https://www.googleapis.com/auth/fitness.blood_glucose.read": { +"description": "See info about your blood glucose in Google Fit. I consent to Google sharing my blood glucose information with this app." +}, +"https://www.googleapis.com/auth/fitness.blood_glucose.write": { +"description": "Add info about your blood glucose to Google Fit. I consent to Google using my blood glucose information with this app." +}, +"https://www.googleapis.com/auth/fitness.blood_pressure.read": { +"description": "See info about your blood pressure in Google Fit. I consent to Google sharing my blood pressure information with this app." +}, +"https://www.googleapis.com/auth/fitness.blood_pressure.write": { +"description": "Add info about your blood pressure in Google Fit. I consent to Google using my blood pressure information with this app." +}, +"https://www.googleapis.com/auth/fitness.body.read": { +"description": "See info about your body measurements in Google Fit" +}, +"https://www.googleapis.com/auth/fitness.body.write": { +"description": "Add info about your body measurements to Google Fit" +}, +"https://www.googleapis.com/auth/fitness.body_temperature.read": { +"description": "See info about your body temperature in Google Fit. I consent to Google sharing my body temperature information with this app." +}, +"https://www.googleapis.com/auth/fitness.body_temperature.write": { +"description": "Add to info about your body temperature in Google Fit. I consent to Google using my body temperature information with this app." +}, +"https://www.googleapis.com/auth/fitness.heart_rate.read": { +"description": "See your heart rate data in Google Fit. I consent to Google sharing my heart rate information with this app." +}, +"https://www.googleapis.com/auth/fitness.heart_rate.write": { +"description": "Add to your heart rate data in Google Fit. I consent to Google using my heart rate information with this app." +}, +"https://www.googleapis.com/auth/fitness.location.read": { +"description": "See your Google Fit speed and distance data" +}, +"https://www.googleapis.com/auth/fitness.location.write": { +"description": "Add to your Google Fit location data" +}, +"https://www.googleapis.com/auth/fitness.nutrition.read": { +"description": "See info about your nutrition in Google Fit" +}, +"https://www.googleapis.com/auth/fitness.nutrition.write": { +"description": "Add to info about your nutrition in Google Fit" +}, +"https://www.googleapis.com/auth/fitness.oxygen_saturation.read": { +"description": "See info about your oxygen saturation in Google Fit. I consent to Google sharing my oxygen saturation information with this app." +}, +"https://www.googleapis.com/auth/fitness.oxygen_saturation.write": { +"description": "Add info about your oxygen saturation in Google Fit. I consent to Google using my oxygen saturation information with this app." +}, +"https://www.googleapis.com/auth/fitness.reproductive_health.read": { +"description": "See info about your reproductive health in Google Fit. I consent to Google sharing my reproductive health information with this app." +}, +"https://www.googleapis.com/auth/fitness.reproductive_health.write": { +"description": "Add info about your reproductive health in Google Fit. I consent to Google using my reproductive health information with this app." +}, +"https://www.googleapis.com/auth/fitness.sleep.read": { +"description": "See your sleep data in Google Fit. I consent to Google sharing my sleep information with this app." +}, +"https://www.googleapis.com/auth/fitness.sleep.write": { +"description": "Add to your sleep data in Google Fit. I consent to Google using my sleep information with this app." +} +} +} +}, +"basePath": "/fitness/v1/users/", +"baseUrl": "https://fitness.googleapis.com/fitness/v1/users/", +"batchPath": "batch", +"description": "The Fitness API for managing users' fitness tracking data.", +"discoveryVersion": "v1", +"documentationLink": "https://developers.google.com/fit/rest/v1/get-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": "fitness:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://fitness.mtls.googleapis.com/", +"name": "fitness", +"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": { +"resources": { +"dataSources": { +"methods": { +"create": { +"description": "Creates a new data source that is unique across all data sources belonging to this user. A data source is a unique source of sensor data. Data sources can expose raw data coming from hardware sensors on local or companion devices. They can also expose derived data, created by transforming or merging other data sources. Multiple data sources can exist for the same data type. Every data point in every dataset inserted into or read from the Fitness API has an associated data source. Each data source produces a unique stream of dataset updates, with a unique data source identifier. Not all changes to data source affect the data stream ID, so that data collected by updated versions of the same application/device can still be considered to belong to the same data source. Data sources are identified using a string generated by the server, based on the contents of the source being created. The dataStreamId field should not be set when invoking this method. It will be automatically generated by the server with the correct format. If a dataStreamId is set, it must match the format that the server would generate. This format is a combination of some fields from the data source, and has a specific order. If it doesn't match, the request will fail with an error. Specifying a DataType which is not a known type (beginning with \"com.google.\") will create a DataSource with a *custom data type*. Custom data types are only readable by the application that created them. Custom data types are *deprecated*; use standard data types instead. In addition to the data source fields included in the data source ID, the developer project number that is authenticated when creating the data source is included. This developer project number is obfuscated when read by any other developer reading public data types.", +"flatPath": "{userId}/dataSources", +"httpMethod": "POST", +"id": "fitness.users.dataSources.create", +"parameterOrder": [ +"userId" +], +"parameters": { +"userId": { +"description": "Create the data source for the person identified. Use me to indicate the authenticated user. Only me is supported at this time.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{userId}/dataSources", +"request": { +"$ref": "DataSource" +}, +"response": { +"$ref": "DataSource" +}, +"scopes": [ +"https://www.googleapis.com/auth/fitness.activity.write", +"https://www.googleapis.com/auth/fitness.blood_glucose.write", +"https://www.googleapis.com/auth/fitness.blood_pressure.write", +"https://www.googleapis.com/auth/fitness.body.write", +"https://www.googleapis.com/auth/fitness.body_temperature.write", +"https://www.googleapis.com/auth/fitness.heart_rate.write", +"https://www.googleapis.com/auth/fitness.location.write", +"https://www.googleapis.com/auth/fitness.nutrition.write", +"https://www.googleapis.com/auth/fitness.oxygen_saturation.write", +"https://www.googleapis.com/auth/fitness.reproductive_health.write", +"https://www.googleapis.com/auth/fitness.sleep.write" +] +}, +"delete": { +"description": "Deletes the specified data source. The request will fail if the data source contains any data points.", +"flatPath": "{userId}/dataSources/{dataSourceId}", +"httpMethod": "DELETE", +"id": "fitness.users.dataSources.delete", +"parameterOrder": [ +"userId", +"dataSourceId" +], +"parameters": { +"dataSourceId": { +"description": "The data stream ID of the data source to delete.", +"location": "path", +"required": true, +"type": "string" +}, +"userId": { +"description": "Retrieve a data source for the person identified. Use me to indicate the authenticated user. Only me is supported at this time.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{userId}/dataSources/{dataSourceId}", +"response": { +"$ref": "DataSource" +}, +"scopes": [ +"https://www.googleapis.com/auth/fitness.activity.write", +"https://www.googleapis.com/auth/fitness.blood_glucose.write", +"https://www.googleapis.com/auth/fitness.blood_pressure.write", +"https://www.googleapis.com/auth/fitness.body.write", +"https://www.googleapis.com/auth/fitness.body_temperature.write", +"https://www.googleapis.com/auth/fitness.heart_rate.write", +"https://www.googleapis.com/auth/fitness.location.write", +"https://www.googleapis.com/auth/fitness.nutrition.write", +"https://www.googleapis.com/auth/fitness.oxygen_saturation.write", +"https://www.googleapis.com/auth/fitness.reproductive_health.write", +"https://www.googleapis.com/auth/fitness.sleep.write" +] +}, +"get": { +"description": "Returns the specified data source.", +"flatPath": "{userId}/dataSources/{dataSourceId}", +"httpMethod": "GET", +"id": "fitness.users.dataSources.get", +"parameterOrder": [ +"userId", +"dataSourceId" +], +"parameters": { +"dataSourceId": { +"description": "The data stream ID of the data source to retrieve.", +"location": "path", +"required": true, +"type": "string" +}, +"userId": { +"description": "Retrieve a data source for the person identified. Use me to indicate the authenticated user. Only me is supported at this time.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{userId}/dataSources/{dataSourceId}", +"response": { +"$ref": "DataSource" +}, +"scopes": [ +"https://www.googleapis.com/auth/fitness.activity.read", +"https://www.googleapis.com/auth/fitness.activity.write", +"https://www.googleapis.com/auth/fitness.blood_glucose.read", +"https://www.googleapis.com/auth/fitness.blood_glucose.write", +"https://www.googleapis.com/auth/fitness.blood_pressure.read", +"https://www.googleapis.com/auth/fitness.blood_pressure.write", +"https://www.googleapis.com/auth/fitness.body.read", +"https://www.googleapis.com/auth/fitness.body.write", +"https://www.googleapis.com/auth/fitness.body_temperature.read", +"https://www.googleapis.com/auth/fitness.body_temperature.write", +"https://www.googleapis.com/auth/fitness.heart_rate.read", +"https://www.googleapis.com/auth/fitness.heart_rate.write", +"https://www.googleapis.com/auth/fitness.location.read", +"https://www.googleapis.com/auth/fitness.location.write", +"https://www.googleapis.com/auth/fitness.nutrition.read", +"https://www.googleapis.com/auth/fitness.nutrition.write", +"https://www.googleapis.com/auth/fitness.oxygen_saturation.read", +"https://www.googleapis.com/auth/fitness.oxygen_saturation.write", +"https://www.googleapis.com/auth/fitness.reproductive_health.read", +"https://www.googleapis.com/auth/fitness.reproductive_health.write", +"https://www.googleapis.com/auth/fitness.sleep.read", +"https://www.googleapis.com/auth/fitness.sleep.write" +] +}, +"list": { +"description": "Lists all data sources that are visible to the developer, using the OAuth scopes provided. The list is not exhaustive; the user may have private data sources that are only visible to other developers, or calls using other scopes.", +"flatPath": "{userId}/dataSources", +"httpMethod": "GET", +"id": "fitness.users.dataSources.list", +"parameterOrder": [ +"userId" +], +"parameters": { +"dataTypeName": { +"description": "The names of data types to include in the list. If not specified, all data sources will be returned.", +"location": "query", +"repeated": true, +"type": "string" +}, +"userId": { +"description": "List data sources for the person identified. Use me to indicate the authenticated user. Only me is supported at this time.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{userId}/dataSources", +"response": { +"$ref": "ListDataSourcesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/fitness.activity.read", +"https://www.googleapis.com/auth/fitness.activity.write", +"https://www.googleapis.com/auth/fitness.blood_glucose.read", +"https://www.googleapis.com/auth/fitness.blood_glucose.write", +"https://www.googleapis.com/auth/fitness.blood_pressure.read", +"https://www.googleapis.com/auth/fitness.blood_pressure.write", +"https://www.googleapis.com/auth/fitness.body.read", +"https://www.googleapis.com/auth/fitness.body.write", +"https://www.googleapis.com/auth/fitness.body_temperature.read", +"https://www.googleapis.com/auth/fitness.body_temperature.write", +"https://www.googleapis.com/auth/fitness.heart_rate.read", +"https://www.googleapis.com/auth/fitness.heart_rate.write", +"https://www.googleapis.com/auth/fitness.location.read", +"https://www.googleapis.com/auth/fitness.location.write", +"https://www.googleapis.com/auth/fitness.nutrition.read", +"https://www.googleapis.com/auth/fitness.nutrition.write", +"https://www.googleapis.com/auth/fitness.oxygen_saturation.read", +"https://www.googleapis.com/auth/fitness.oxygen_saturation.write", +"https://www.googleapis.com/auth/fitness.reproductive_health.read", +"https://www.googleapis.com/auth/fitness.reproductive_health.write", +"https://www.googleapis.com/auth/fitness.sleep.read", +"https://www.googleapis.com/auth/fitness.sleep.write" +] +}, +"update": { +"description": "Updates the specified data source. The dataStreamId, dataType, type, dataStreamName, and device properties with the exception of version, cannot be modified. Data sources are identified by their dataStreamId.", +"flatPath": "{userId}/dataSources/{dataSourceId}", +"httpMethod": "PUT", +"id": "fitness.users.dataSources.update", +"parameterOrder": [ +"userId", +"dataSourceId" +], +"parameters": { +"dataSourceId": { +"description": "The data stream ID of the data source to update.", +"location": "path", +"required": true, +"type": "string" +}, +"userId": { +"description": "Update the data source for the person identified. Use me to indicate the authenticated user. Only me is supported at this time.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{userId}/dataSources/{dataSourceId}", +"request": { +"$ref": "DataSource" +}, +"response": { +"$ref": "DataSource" +}, +"scopes": [ +"https://www.googleapis.com/auth/fitness.activity.write", +"https://www.googleapis.com/auth/fitness.blood_glucose.write", +"https://www.googleapis.com/auth/fitness.blood_pressure.write", +"https://www.googleapis.com/auth/fitness.body.write", +"https://www.googleapis.com/auth/fitness.body_temperature.write", +"https://www.googleapis.com/auth/fitness.heart_rate.write", +"https://www.googleapis.com/auth/fitness.location.write", +"https://www.googleapis.com/auth/fitness.nutrition.write", +"https://www.googleapis.com/auth/fitness.oxygen_saturation.write", +"https://www.googleapis.com/auth/fitness.reproductive_health.write", +"https://www.googleapis.com/auth/fitness.sleep.write" +] +} +}, +"resources": { +"dataPointChanges": { +"methods": { +"list": { +"description": "Queries for user's data point changes for a particular data source.", +"flatPath": "{userId}/dataSources/{dataSourceId}/dataPointChanges", +"httpMethod": "GET", +"id": "fitness.users.dataSources.dataPointChanges.list", +"parameterOrder": [ +"userId", +"dataSourceId" +], +"parameters": { +"dataSourceId": { +"description": "The data stream ID of the data source that created the dataset.", +"location": "path", +"required": true, +"type": "string" +}, +"limit": { +"description": "If specified, no more than this many data point changes will be included in the response.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.", +"location": "query", +"type": "string" +}, +"userId": { +"description": "List data points for the person identified. Use me to indicate the authenticated user. Only me is supported at this time.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{userId}/dataSources/{dataSourceId}/dataPointChanges", +"response": { +"$ref": "ListDataPointChangesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/fitness.activity.read", +"https://www.googleapis.com/auth/fitness.activity.write", +"https://www.googleapis.com/auth/fitness.blood_glucose.read", +"https://www.googleapis.com/auth/fitness.blood_glucose.write", +"https://www.googleapis.com/auth/fitness.blood_pressure.read", +"https://www.googleapis.com/auth/fitness.blood_pressure.write", +"https://www.googleapis.com/auth/fitness.body.read", +"https://www.googleapis.com/auth/fitness.body.write", +"https://www.googleapis.com/auth/fitness.body_temperature.read", +"https://www.googleapis.com/auth/fitness.body_temperature.write", +"https://www.googleapis.com/auth/fitness.heart_rate.read", +"https://www.googleapis.com/auth/fitness.heart_rate.write", +"https://www.googleapis.com/auth/fitness.location.read", +"https://www.googleapis.com/auth/fitness.location.write", +"https://www.googleapis.com/auth/fitness.nutrition.read", +"https://www.googleapis.com/auth/fitness.nutrition.write", +"https://www.googleapis.com/auth/fitness.oxygen_saturation.read", +"https://www.googleapis.com/auth/fitness.oxygen_saturation.write", +"https://www.googleapis.com/auth/fitness.reproductive_health.read", +"https://www.googleapis.com/auth/fitness.reproductive_health.write", +"https://www.googleapis.com/auth/fitness.sleep.read", +"https://www.googleapis.com/auth/fitness.sleep.write" +] +} +} +}, +"datasets": { +"methods": { +"delete": { +"description": "Performs an inclusive delete of all data points whose start and end times have any overlap with the time range specified by the dataset ID. For most data types, the entire data point will be deleted. For data types where the time span represents a consistent value (such as com.google.activity.segment), and a data point straddles either end point of the dataset, only the overlapping portion of the data point will be deleted.", +"flatPath": "{userId}/dataSources/{dataSourceId}/datasets/{datasetId}", +"httpMethod": "DELETE", +"id": "fitness.users.dataSources.datasets.delete", +"parameterOrder": [ +"userId", +"dataSourceId", +"datasetId" +], +"parameters": { +"dataSourceId": { +"description": "The data stream ID of the data source that created the dataset.", +"location": "path", +"required": true, +"type": "string" +}, +"datasetId": { +"description": "Dataset identifier that is a composite of the minimum data point start time and maximum data point end time represented as nanoseconds from the epoch. The ID is formatted like: \"startTime-endTime\" where startTime and endTime are 64 bit integers.", +"location": "path", +"required": true, +"type": "string" +}, +"userId": { +"description": "Delete a dataset for the person identified. Use me to indicate the authenticated user. Only me is supported at this time.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{userId}/dataSources/{dataSourceId}/datasets/{datasetId}", +"scopes": [ +"https://www.googleapis.com/auth/fitness.activity.write", +"https://www.googleapis.com/auth/fitness.blood_glucose.write", +"https://www.googleapis.com/auth/fitness.blood_pressure.write", +"https://www.googleapis.com/auth/fitness.body.write", +"https://www.googleapis.com/auth/fitness.body_temperature.write", +"https://www.googleapis.com/auth/fitness.heart_rate.write", +"https://www.googleapis.com/auth/fitness.location.write", +"https://www.googleapis.com/auth/fitness.nutrition.write", +"https://www.googleapis.com/auth/fitness.oxygen_saturation.write", +"https://www.googleapis.com/auth/fitness.reproductive_health.write", +"https://www.googleapis.com/auth/fitness.sleep.write" +] +}, +"get": { +"description": "Returns a dataset containing all data points whose start and end times overlap with the specified range of the dataset minimum start time and maximum end time. Specifically, any data point whose start time is less than or equal to the dataset end time and whose end time is greater than or equal to the dataset start time.", +"flatPath": "{userId}/dataSources/{dataSourceId}/datasets/{datasetId}", +"httpMethod": "GET", +"id": "fitness.users.dataSources.datasets.get", +"parameterOrder": [ +"userId", +"dataSourceId", +"datasetId" +], +"parameters": { +"dataSourceId": { +"description": "The data stream ID of the data source that created the dataset.", +"location": "path", +"required": true, +"type": "string" +}, +"datasetId": { +"description": "Dataset identifier that is a composite of the minimum data point start time and maximum data point end time represented as nanoseconds from the epoch. The ID is formatted like: \"startTime-endTime\" where startTime and endTime are 64 bit integers.", +"location": "path", +"required": true, +"type": "string" +}, +"limit": { +"description": "If specified, no more than this many data points will be included in the dataset. If there are more data points in the dataset, nextPageToken will be set in the dataset response. The limit is applied from the end of the time range. That is, if pageToken is absent, the limit most recent data points will be returned.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The continuation token, which is used to page through large datasets. To get the next page of a dataset, set this parameter to the value of nextPageToken from the previous response. Each subsequent call will yield a partial dataset with data point end timestamps that are strictly smaller than those in the previous partial response.", +"location": "query", +"type": "string" +}, +"userId": { +"description": "Retrieve a dataset for the person identified. Use me to indicate the authenticated user. Only me is supported at this time.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{userId}/dataSources/{dataSourceId}/datasets/{datasetId}", +"response": { +"$ref": "Dataset" +}, +"scopes": [ +"https://www.googleapis.com/auth/fitness.activity.read", +"https://www.googleapis.com/auth/fitness.activity.write", +"https://www.googleapis.com/auth/fitness.blood_glucose.read", +"https://www.googleapis.com/auth/fitness.blood_glucose.write", +"https://www.googleapis.com/auth/fitness.blood_pressure.read", +"https://www.googleapis.com/auth/fitness.blood_pressure.write", +"https://www.googleapis.com/auth/fitness.body.read", +"https://www.googleapis.com/auth/fitness.body.write", +"https://www.googleapis.com/auth/fitness.body_temperature.read", +"https://www.googleapis.com/auth/fitness.body_temperature.write", +"https://www.googleapis.com/auth/fitness.heart_rate.read", +"https://www.googleapis.com/auth/fitness.heart_rate.write", +"https://www.googleapis.com/auth/fitness.location.read", +"https://www.googleapis.com/auth/fitness.location.write", +"https://www.googleapis.com/auth/fitness.nutrition.read", +"https://www.googleapis.com/auth/fitness.nutrition.write", +"https://www.googleapis.com/auth/fitness.oxygen_saturation.read", +"https://www.googleapis.com/auth/fitness.oxygen_saturation.write", +"https://www.googleapis.com/auth/fitness.reproductive_health.read", +"https://www.googleapis.com/auth/fitness.reproductive_health.write", +"https://www.googleapis.com/auth/fitness.sleep.read", +"https://www.googleapis.com/auth/fitness.sleep.write" +] +}, +"patch": { +"description": "Adds data points to a dataset. The dataset need not be previously created. All points within the given dataset will be returned with subsquent calls to retrieve this dataset. Data points can belong to more than one dataset. This method does not use patch semantics: the data points provided are merely inserted, with no existing data replaced.", +"flatPath": "{userId}/dataSources/{dataSourceId}/datasets/{datasetId}", +"httpMethod": "PATCH", +"id": "fitness.users.dataSources.datasets.patch", +"parameterOrder": [ +"userId", +"dataSourceId", +"datasetId" +], +"parameters": { +"dataSourceId": { +"description": "The data stream ID of the data source that created the dataset.", +"location": "path", +"required": true, +"type": "string" +}, +"datasetId": { +"description": "This field is not used, and can be safely omitted.", +"location": "path", +"required": true, +"type": "string" +}, +"userId": { +"description": "Patch a dataset for the person identified. Use me to indicate the authenticated user. Only me is supported at this time.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{userId}/dataSources/{dataSourceId}/datasets/{datasetId}", +"request": { +"$ref": "Dataset" +}, +"response": { +"$ref": "Dataset" +}, +"scopes": [ +"https://www.googleapis.com/auth/fitness.activity.write", +"https://www.googleapis.com/auth/fitness.blood_glucose.write", +"https://www.googleapis.com/auth/fitness.blood_pressure.write", +"https://www.googleapis.com/auth/fitness.body.write", +"https://www.googleapis.com/auth/fitness.body_temperature.write", +"https://www.googleapis.com/auth/fitness.heart_rate.write", +"https://www.googleapis.com/auth/fitness.location.write", +"https://www.googleapis.com/auth/fitness.nutrition.write", +"https://www.googleapis.com/auth/fitness.oxygen_saturation.write", +"https://www.googleapis.com/auth/fitness.reproductive_health.write", +"https://www.googleapis.com/auth/fitness.sleep.write" +] +} +} +} +} +}, +"dataset": { +"methods": { +"aggregate": { +"description": "Aggregates data of a certain type or stream into buckets divided by a given type of boundary. Multiple data sets of multiple types and from multiple sources can be aggregated into exactly one bucket type per request.", +"flatPath": "{userId}/dataset:aggregate", +"httpMethod": "POST", +"id": "fitness.users.dataset.aggregate", +"parameterOrder": [ +"userId" +], +"parameters": { +"userId": { +"description": "Aggregate data for the person identified. Use me to indicate the authenticated user. Only me is supported at this time.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{userId}/dataset:aggregate", +"request": { +"$ref": "AggregateRequest" +}, +"response": { +"$ref": "AggregateResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/fitness.activity.read", +"https://www.googleapis.com/auth/fitness.activity.write", +"https://www.googleapis.com/auth/fitness.blood_glucose.read", +"https://www.googleapis.com/auth/fitness.blood_glucose.write", +"https://www.googleapis.com/auth/fitness.blood_pressure.read", +"https://www.googleapis.com/auth/fitness.blood_pressure.write", +"https://www.googleapis.com/auth/fitness.body.read", +"https://www.googleapis.com/auth/fitness.body.write", +"https://www.googleapis.com/auth/fitness.body_temperature.read", +"https://www.googleapis.com/auth/fitness.body_temperature.write", +"https://www.googleapis.com/auth/fitness.heart_rate.read", +"https://www.googleapis.com/auth/fitness.heart_rate.write", +"https://www.googleapis.com/auth/fitness.location.read", +"https://www.googleapis.com/auth/fitness.location.write", +"https://www.googleapis.com/auth/fitness.nutrition.read", +"https://www.googleapis.com/auth/fitness.nutrition.write", +"https://www.googleapis.com/auth/fitness.oxygen_saturation.read", +"https://www.googleapis.com/auth/fitness.oxygen_saturation.write", +"https://www.googleapis.com/auth/fitness.reproductive_health.read", +"https://www.googleapis.com/auth/fitness.reproductive_health.write", +"https://www.googleapis.com/auth/fitness.sleep.read", +"https://www.googleapis.com/auth/fitness.sleep.write" +] +} +} +}, +"sessions": { +"methods": { +"delete": { +"description": "Deletes a session specified by the given session ID.", +"flatPath": "{userId}/sessions/{sessionId}", +"httpMethod": "DELETE", +"id": "fitness.users.sessions.delete", +"parameterOrder": [ +"userId", +"sessionId" +], +"parameters": { +"sessionId": { +"description": "The ID of the session to be deleted.", +"location": "path", +"required": true, +"type": "string" +}, +"userId": { +"description": "Delete a session for the person identified. Use me to indicate the authenticated user. Only me is supported at this time.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{userId}/sessions/{sessionId}", +"scopes": [ +"https://www.googleapis.com/auth/fitness.activity.write", +"https://www.googleapis.com/auth/fitness.sleep.write" +] +}, +"list": { +"description": "Lists sessions previously created.", +"flatPath": "{userId}/sessions", +"httpMethod": "GET", +"id": "fitness.users.sessions.list", +"parameterOrder": [ +"userId" +], +"parameters": { +"activityType": { +"description": "If non-empty, only sessions with these activity types should be returned.", +"format": "int32", +"location": "query", +"repeated": true, +"type": "integer" +}, +"endTime": { +"description": "An RFC3339 timestamp. Only sessions ending between the start and end times will be included in the response. If this time is omitted but startTime is specified, all sessions from startTime to the end of time will be returned.", +"location": "query", +"type": "string" +}, +"includeDeleted": { +"description": "If true, and if both startTime and endTime are omitted, session deletions will be returned.", +"location": "query", +"type": "boolean" +}, +"pageToken": { +"description": "The continuation token, which is used for incremental syncing. To get the next batch of changes, set this parameter to the value of nextPageToken from the previous response. The page token is ignored if either start or end time is specified. If none of start time, end time, and the page token is specified, sessions modified in the last 30 days are returned.", +"location": "query", +"type": "string" +}, +"startTime": { +"description": "An RFC3339 timestamp. Only sessions ending between the start and end times will be included in the response. If this time is omitted but endTime is specified, all sessions from the start of time up to endTime will be returned.", +"location": "query", +"type": "string" +}, +"userId": { +"description": "List sessions for the person identified. Use me to indicate the authenticated user. Only me is supported at this time.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{userId}/sessions", +"response": { +"$ref": "ListSessionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/fitness.activity.read", +"https://www.googleapis.com/auth/fitness.activity.write", +"https://www.googleapis.com/auth/fitness.blood_glucose.read", +"https://www.googleapis.com/auth/fitness.blood_glucose.write", +"https://www.googleapis.com/auth/fitness.blood_pressure.read", +"https://www.googleapis.com/auth/fitness.blood_pressure.write", +"https://www.googleapis.com/auth/fitness.body.read", +"https://www.googleapis.com/auth/fitness.body.write", +"https://www.googleapis.com/auth/fitness.body_temperature.read", +"https://www.googleapis.com/auth/fitness.body_temperature.write", +"https://www.googleapis.com/auth/fitness.heart_rate.read", +"https://www.googleapis.com/auth/fitness.heart_rate.write", +"https://www.googleapis.com/auth/fitness.location.read", +"https://www.googleapis.com/auth/fitness.location.write", +"https://www.googleapis.com/auth/fitness.nutrition.read", +"https://www.googleapis.com/auth/fitness.nutrition.write", +"https://www.googleapis.com/auth/fitness.oxygen_saturation.read", +"https://www.googleapis.com/auth/fitness.oxygen_saturation.write", +"https://www.googleapis.com/auth/fitness.reproductive_health.read", +"https://www.googleapis.com/auth/fitness.reproductive_health.write", +"https://www.googleapis.com/auth/fitness.sleep.read", +"https://www.googleapis.com/auth/fitness.sleep.write" +] +}, +"update": { +"description": "Updates or insert a given session.", +"flatPath": "{userId}/sessions/{sessionId}", +"httpMethod": "PUT", +"id": "fitness.users.sessions.update", +"parameterOrder": [ +"userId", +"sessionId" +], +"parameters": { +"sessionId": { +"description": "The ID of the session to be created.", +"location": "path", +"required": true, +"type": "string" +}, +"userId": { +"description": "Create sessions for the person identified. Use me to indicate the authenticated user. Only me is supported at this time.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "{userId}/sessions/{sessionId}", +"request": { +"$ref": "Session" +}, +"response": { +"$ref": "Session" +}, +"scopes": [ +"https://www.googleapis.com/auth/fitness.activity.write", +"https://www.googleapis.com/auth/fitness.sleep.write" +] +} +} +} +} +} +}, +"revision": "20240707", +"rootUrl": "https://fitness.googleapis.com/", +"schemas": { +"AggregateBucket": { +"id": "AggregateBucket", +"properties": { +"activity": { +"description": "Available for Bucket.Type.ACTIVITY_TYPE, Bucket.Type.ACTIVITY_SEGMENT", +"format": "int32", +"type": "integer" +}, +"dataset": { +"description": "There will be one dataset per AggregateBy in the request.", +"items": { +"$ref": "Dataset" +}, +"type": "array" +}, +"endTimeMillis": { +"description": "The end time for the aggregated data, in milliseconds since epoch, inclusive.", +"format": "int64", +"type": "string" +}, +"session": { +"$ref": "Session", +"description": "Available for Bucket.Type.SESSION" +}, +"startTimeMillis": { +"description": "The start time for the aggregated data, in milliseconds since epoch, inclusive.", +"format": "int64", +"type": "string" +}, +"type": { +"description": "The type of a bucket signifies how the data aggregation is performed in the bucket.", +"enum": [ +"unknown", +"time", +"session", +"activityType", +"activitySegment" +], +"enumDescriptions": [ +"", +"Denotes that bucketing by time is requested. When this is specified, the timeBucketDurationMillis field is used to determine how many buckets will be returned.", +"Denotes that bucketing by session is requested. When this is specified, only data that occurs within sessions that begin and end within the dataset time frame, is included in the results.", +"Denotes that bucketing by activity type is requested. When this is specified, there will be one bucket for each unique activity type that a user participated in, during the dataset time frame of interest.", +"Denotes that bucketing by individual activity segment is requested. This will aggregate data by the time boundaries specified by each activity segment occurring within the dataset time frame of interest." +], +"type": "string" +} +}, +"type": "object" +}, +"AggregateBy": { +"description": "The specification of which data to aggregate.", +"id": "AggregateBy", +"properties": { +"dataSourceId": { +"description": "A data source ID to aggregate. Only data from the specified data source ID will be included in the aggregation. If specified, this data source must exist; the OAuth scopes in the supplied credentials must grant read access to this data type. The dataset in the response will have the same data source ID. Note: Data can be aggregated by either the dataTypeName or the dataSourceId, not both.", +"type": "string" +}, +"dataTypeName": { +"description": "The data type to aggregate. All data sources providing this data type will contribute data to the aggregation. The response will contain a single dataset for this data type name. The dataset will have a data source ID of derived::com.google.android.gms:aggregated. If the user has no data for this data type, an empty data set will be returned. Note: Data can be aggregated by either the dataTypeName or the dataSourceId, not both.", +"type": "string" +} +}, +"type": "object" +}, +"AggregateRequest": { +"description": "Next id: 10", +"id": "AggregateRequest", +"properties": { +"aggregateBy": { +"annotations": { +"required": [ +"fitness.users.dataset.aggregate" +] +}, +"description": "The specification of data to be aggregated. At least one aggregateBy spec must be provided. All data that is specified will be aggregated using the same bucketing criteria. There will be one dataset in the response for every aggregateBy spec.", +"items": { +"$ref": "AggregateBy" +}, +"type": "array" +}, +"bucketByActivitySegment": { +"$ref": "BucketByActivity", +"description": "Specifies that data be aggregated each activity segment recorded for a user. Similar to bucketByActivitySegment, but bucketing is done for each activity segment rather than all segments of the same type. Mutually exclusive of other bucketing specifications." +}, +"bucketByActivityType": { +"$ref": "BucketByActivity", +"description": "Specifies that data be aggregated by the type of activity being performed when the data was recorded. All data that was recorded during a certain activity type (.for the given time range) will be aggregated into the same bucket. Data that was recorded while the user was not active will not be included in the response. Mutually exclusive of other bucketing specifications." +}, +"bucketBySession": { +"$ref": "BucketBySession", +"description": "Specifies that data be aggregated by user sessions. Data that does not fall within the time range of a session will not be included in the response. Mutually exclusive of other bucketing specifications." +}, +"bucketByTime": { +"$ref": "BucketByTime", +"description": "Specifies that data be aggregated by a single time interval. Mutually exclusive of other bucketing specifications." +}, +"endTimeMillis": { +"annotations": { +"required": [ +"fitness.users.dataset.aggregate" +] +}, +"description": "The end of a window of time. Data that intersects with this time window will be aggregated. The time is in milliseconds since epoch, inclusive. The maximum allowed difference between start_time_millis // and end_time_millis is 7776000000 (roughly 90 days).", +"format": "int64", +"type": "string" +}, +"filteredDataQualityStandard": { +"deprecated": true, +"description": "DO NOT POPULATE THIS FIELD. It is ignored.", +"items": { +"enum": [ +"dataQualityUnknown", +"dataQualityBloodPressureEsh2002", +"dataQualityBloodPressureEsh2010", +"dataQualityBloodPressureAami", +"dataQualityBloodPressureBhsAA", +"dataQualityBloodPressureBhsAB", +"dataQualityBloodPressureBhsBA", +"dataQualityBloodPressureBhsBB", +"dataQualityBloodGlucoseIso151972003", +"dataQualityBloodGlucoseIso151972013" +], +"enumDescriptions": [ +"", +"", +"", +"", +"", +"", +"", +"", +"", +"" +], +"type": "string" +}, +"type": "array" +}, +"startTimeMillis": { +"annotations": { +"required": [ +"fitness.users.dataset.aggregate" +] +}, +"description": "The start of a window of time. Data that intersects with this time window will be aggregated. The time is in milliseconds since epoch, inclusive.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"AggregateResponse": { +"id": "AggregateResponse", +"properties": { +"bucket": { +"description": "A list of buckets containing the aggregated data.", +"items": { +"$ref": "AggregateBucket" +}, +"type": "array" +} +}, +"type": "object" +}, +"Application": { +"id": "Application", +"properties": { +"detailsUrl": { +"description": "An optional URI that can be used to link back to the application.", +"type": "string" +}, +"name": { +"annotations": { +"required": [ +"fitness.users.dataSources.create", +"fitness.users.dataSources.update", +"fitness.users.sessions.update" +] +}, +"description": "The name of this application. This is required for REST clients, but we do not enforce uniqueness of this name. It is provided as a matter of convenience for other developers who would like to identify which REST created an Application or Data Source.", +"type": "string" +}, +"packageName": { +"description": "Package name for this application. This is used as a unique identifier when created by Android applications, but cannot be specified by REST clients. REST clients will have their developer project number reflected into the Data Source data stream IDs, instead of the packageName.", +"type": "string" +}, +"version": { +"description": "Version of the application. You should update this field whenever the application changes in a way that affects the computation of the data.", +"type": "string" +} +}, +"type": "object" +}, +"BucketByActivity": { +"id": "BucketByActivity", +"properties": { +"activityDataSourceId": { +"description": "The default activity stream will be used if a specific activityDataSourceId is not specified.", +"type": "string" +}, +"minDurationMillis": { +"description": "Specifies that only activity segments of duration longer than minDurationMillis are considered and used as a container for aggregated data.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"BucketBySession": { +"id": "BucketBySession", +"properties": { +"minDurationMillis": { +"description": "Specifies that only sessions of duration longer than minDurationMillis are considered and used as a container for aggregated data.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"BucketByTime": { +"id": "BucketByTime", +"properties": { +"durationMillis": { +"description": "Specifies that result buckets aggregate data by exactly durationMillis time frames. Time frames that contain no data will be included in the response with an empty dataset.", +"format": "int64", +"type": "string" +}, +"period": { +"$ref": "BucketByTimePeriod" +} +}, +"type": "object" +}, +"BucketByTimePeriod": { +"id": "BucketByTimePeriod", +"properties": { +"timeZoneId": { +"description": "org.joda.timezone.DateTimeZone", +"type": "string" +}, +"type": { +"enum": [ +"day", +"week", +"month" +], +"enumDescriptions": [ +"", +"", +"" +], +"type": "string" +}, +"value": { +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"DataPoint": { +"description": "Represents a single data point, generated by a particular data source. A data point holds a value for each field, an end timestamp and an optional start time. The exact semantics of each of these attributes are specified in the documentation for the particular data type. A data point can represent an instantaneous measurement, reading or input observation, as well as averages or aggregates over a time interval. Check the data type documentation to determine which is the case for a particular data type. Data points always contain one value for each field of the data type.", +"id": "DataPoint", +"properties": { +"computationTimeMillis": { +"deprecated": true, +"description": "DO NOT USE THIS FIELD. It is ignored, and not stored.", +"format": "int64", +"type": "string" +}, +"dataTypeName": { +"annotations": { +"required": [ +"fitness.users.dataSources.datasets.patch" +] +}, +"description": "The data type defining the format of the values in this data point.", +"type": "string" +}, +"endTimeNanos": { +"annotations": { +"required": [ +"fitness.users.dataSources.datasets.patch" +] +}, +"description": "The end time of the interval represented by this data point, in nanoseconds since epoch.", +"format": "int64", +"type": "string" +}, +"modifiedTimeMillis": { +"description": "Indicates the last time this data point was modified. Useful only in contexts where we are listing the data changes, rather than representing the current state of the data.", +"format": "int64", +"type": "string" +}, +"originDataSourceId": { +"description": "If the data point is contained in a dataset for a derived data source, this field will be populated with the data source stream ID that created the data point originally. WARNING: do not rely on this field for anything other than debugging. The value of this field, if it is set at all, is an implementation detail and is not guaranteed to remain consistent.", +"type": "string" +}, +"rawTimestampNanos": { +"description": "The raw timestamp from the original SensorEvent.", +"format": "int64", +"type": "string" +}, +"startTimeNanos": { +"annotations": { +"required": [ +"fitness.users.dataSources.datasets.patch" +] +}, +"description": "The start time of the interval represented by this data point, in nanoseconds since epoch.", +"format": "int64", +"type": "string" +}, +"value": { +"annotations": { +"required": [ +"fitness.users.dataSources.datasets.patch" +] +}, +"description": "Values of each data type field for the data point. It is expected that each value corresponding to a data type field will occur in the same order that the field is listed with in the data type specified in a data source. Only one of integer and floating point fields will be populated, depending on the format enum value within data source's type field.", +"items": { +"$ref": "Value" +}, +"type": "array" +} +}, +"type": "object" +}, +"DataSource": { +"description": "Definition of a unique source of sensor data. Data sources can expose raw data coming from hardware sensors on local or companion devices. They can also expose derived data, created by transforming or merging other data sources. Multiple data sources can exist for the same data type. Every data point inserted into or read from this service has an associated data source. The data source contains enough information to uniquely identify its data, including the hardware device and the application that collected and/or transformed the data. It also holds useful metadata, such as the hardware and application versions, and the device type. Each data source produces a unique stream of data, with a unique identifier. Not all changes to data source affect the stream identifier, so that data collected by updated versions of the same application/device can still be considered to belong to the same data stream.", +"id": "DataSource", +"properties": { +"application": { +"$ref": "Application", +"annotations": { +"required": [ +"fitness.users.dataSources.create", +"fitness.users.dataSources.update" +] +}, +"description": "Information about an application which feeds sensor data into the platform." +}, +"dataQualityStandard": { +"deprecated": true, +"description": "DO NOT POPULATE THIS FIELD. It is never populated in responses from the platform, and is ignored in queries. It will be removed in a future version entirely.", +"items": { +"enum": [ +"dataQualityUnknown", +"dataQualityBloodPressureEsh2002", +"dataQualityBloodPressureEsh2010", +"dataQualityBloodPressureAami", +"dataQualityBloodPressureBhsAA", +"dataQualityBloodPressureBhsAB", +"dataQualityBloodPressureBhsBA", +"dataQualityBloodPressureBhsBB", +"dataQualityBloodGlucoseIso151972003", +"dataQualityBloodGlucoseIso151972013" +], +"enumDescriptions": [ +"", +"", +"", +"", +"", +"", +"", +"", +"", +"" +], +"type": "string" +}, +"type": "array" +}, +"dataStreamId": { +"annotations": { +"required": [ +"fitness.users.dataSources.update" +] +}, +"description": "A unique identifier for the data stream produced by this data source. The identifier includes: - The physical device's manufacturer, model, and serial number (UID). - The application's package name or name. Package name is used when the data source was created by an Android application. The developer project number is used when the data source was created by a REST client. - The data source's type. - The data source's stream name. Note that not all attributes of the data source are used as part of the stream identifier. In particular, the version of the hardware/the application isn't used. This allows us to preserve the same stream through version updates. This also means that two DataSource objects may represent the same data stream even if they're not equal. The exact format of the data stream ID created by an Android application is: type:dataType.name:application.packageName:device.manufacturer:device.model:device.uid:dataStreamName The exact format of the data stream ID created by a REST client is: type:dataType.name:developer project number:device.manufacturer:device.model:device.uid:dataStreamName When any of the optional fields that make up the data stream ID are absent, they will be omitted from the data stream ID. The minimum viable data stream ID would be: type:dataType.name:developer project number Finally, the developer project number and device UID are obfuscated when read by any REST or Android client that did not create the data source. Only the data source creator will see the developer project number in clear and normal form. This means a client will see a different set of data_stream_ids than another client with different credentials.", +"type": "string" +}, +"dataStreamName": { +"description": "The stream name uniquely identifies this particular data source among other data sources of the same type from the same underlying producer. Setting the stream name is optional, but should be done whenever an application exposes two streams for the same data type, or when a device has two equivalent sensors.", +"type": "string" +}, +"dataType": { +"$ref": "DataType", +"annotations": { +"required": [ +"fitness.users.dataSources.create", +"fitness.users.dataSources.update" +] +}, +"description": "The data type defines the schema for a stream of data being collected by, inserted into, or queried from the Fitness API." +}, +"device": { +"$ref": "Device", +"annotations": { +"required": [ +"fitness.users.dataSources.create", +"fitness.users.dataSources.update" +] +}, +"description": "Representation of an integrated device (such as a phone or a wearable) that can hold sensors." +}, +"name": { +"deprecated": true, +"description": "An end-user visible name for this data source.", +"type": "string" +}, +"type": { +"annotations": { +"required": [ +"fitness.users.dataSources.create", +"fitness.users.dataSources.update" +] +}, +"description": "A constant describing the type of this data source. Indicates whether this data source produces raw or derived data.", +"enum": [ +"raw", +"derived" +], +"enumDescriptions": [ +"", +"" +], +"type": "string" +} +}, +"type": "object" +}, +"DataType": { +"id": "DataType", +"properties": { +"field": { +"annotations": { +"required": [ +"fitness.users.dataSources.create", +"fitness.users.dataSources.update" +] +}, +"description": "A field represents one dimension of a data type.", +"items": { +"$ref": "DataTypeField" +}, +"type": "array" +}, +"name": { +"annotations": { +"required": [ +"fitness.users.dataSources.create", +"fitness.users.dataSources.update" +] +}, +"description": "Each data type has a unique, namespaced, name. All data types in the com.google namespace are shared as part of the platform.", +"type": "string" +} +}, +"type": "object" +}, +"DataTypeField": { +"description": "In case of multi-dimensional data (such as an accelerometer with x, y, and z axes) each field represents one dimension. Each data type field has a unique name which identifies it. The field also defines the format of the data (int, float, etc.). This message is only instantiated in code and not used for wire comms or stored in any way.", +"id": "DataTypeField", +"properties": { +"format": { +"annotations": { +"required": [ +"fitness.users.dataSources.create", +"fitness.users.dataSources.update" +] +}, +"description": "The different supported formats for each field in a data type.", +"enum": [ +"integer", +"floatPoint", +"string", +"map", +"integerList", +"floatList", +"blob" +], +"enumDescriptions": [ +"", +"", +"", +"", +"", +"", +"" +], +"type": "string" +}, +"name": { +"annotations": { +"required": [ +"fitness.users.dataSources.create", +"fitness.users.dataSources.update" +] +}, +"description": "Defines the name and format of data. Unlike data type names, field names are not namespaced, and only need to be unique within the data type.", +"type": "string" +}, +"optional": { +"type": "boolean" +} +}, +"type": "object" +}, +"Dataset": { +"description": "A dataset represents a projection container for data points. They do not carry any info of their own. Datasets represent a set of data points from a particular data source. A data point can be found in more than one dataset.", +"id": "Dataset", +"properties": { +"dataSourceId": { +"annotations": { +"required": [ +"fitness.users.dataSources.datasets.patch" +] +}, +"description": "The data stream ID of the data source that created the points in this dataset.", +"type": "string" +}, +"maxEndTimeNs": { +"annotations": { +"required": [ +"fitness.users.dataSources.datasets.patch" +] +}, +"description": "The largest end time of all data points in this possibly partial representation of the dataset. Time is in nanoseconds from epoch. This should also match the second part of the dataset identifier.", +"format": "int64", +"type": "string" +}, +"minStartTimeNs": { +"annotations": { +"required": [ +"fitness.users.dataSources.datasets.patch" +] +}, +"description": "The smallest start time of all data points in this possibly partial representation of the dataset. Time is in nanoseconds from epoch. This should also match the first part of the dataset identifier.", +"format": "int64", +"type": "string" +}, +"nextPageToken": { +"description": "This token will be set when a dataset is received in response to a GET request and the dataset is too large to be included in a single response. Provide this value in a subsequent GET request to return the next page of data points within this dataset.", +"type": "string" +}, +"point": { +"annotations": { +"required": [ +"fitness.users.dataSources.datasets.patch" +] +}, +"description": "A partial list of data points contained in the dataset, ordered by endTimeNanos. This list is considered complete when retrieving a small dataset and partial when patching a dataset or retrieving a dataset that is too large to include in a single response.", +"items": { +"$ref": "DataPoint" +}, +"type": "array" +} +}, +"type": "object" +}, +"Device": { +"description": "Representation of an integrated device (such as a phone or a wearable) that can hold sensors. Each sensor is exposed as a data source. The main purpose of the device information contained in this class is to identify the hardware of a particular data source. This can be useful in different ways, including: - Distinguishing two similar sensors on different devices (the step counter on two nexus 5 phones, for instance) - Display the source of data to the user (by using the device make / model) - Treat data differently depending on sensor type (accelerometers on a watch may give different patterns than those on a phone) - Build different analysis models for each device/version. ", +"id": "Device", +"properties": { +"manufacturer": { +"annotations": { +"required": [ +"fitness.users.dataSources.create", +"fitness.users.dataSources.update" +] +}, +"description": "Manufacturer of the product/hardware.", +"type": "string" +}, +"model": { +"annotations": { +"required": [ +"fitness.users.dataSources.create", +"fitness.users.dataSources.update" +] +}, +"description": "End-user visible model name for the device.", +"type": "string" +}, +"type": { +"annotations": { +"required": [ +"fitness.users.dataSources.create", +"fitness.users.dataSources.update" +] +}, +"description": "A constant representing the type of the device.", +"enum": [ +"unknown", +"phone", +"tablet", +"watch", +"chestStrap", +"scale", +"headMounted", +"smartDisplay" +], +"enumDescriptions": [ +"Device type is not known.", +"An Android phone.", +"An Android tablet.", +"A watch or other wrist-mounted band.", +"A chest strap.", +"A scale.", +"Glass or other head-mounted device.", +"A smart display e.g. Nest device." +], +"type": "string" +}, +"uid": { +"annotations": { +"required": [ +"fitness.users.dataSources.create", +"fitness.users.dataSources.update" +] +}, +"description": "The serial number or other unique ID for the hardware. This field is obfuscated when read by any REST or Android client that did not create the data source. Only the data source creator will see the uid field in clear and normal form. The obfuscation preserves equality; that is, given two IDs, if id1 == id2, obfuscated(id1) == obfuscated(id2).", +"type": "string" +}, +"version": { +"annotations": { +"required": [ +"fitness.users.dataSources.create", +"fitness.users.dataSources.update" +] +}, +"description": "Version string for the device hardware/software.", +"type": "string" +} +}, +"type": "object" +}, +"ListDataPointChangesResponse": { +"id": "ListDataPointChangesResponse", +"properties": { +"dataSourceId": { +"description": "The data stream ID of the data source with data point changes.", +"type": "string" +}, +"deletedDataPoint": { +"description": "Deleted data points for the user. Note, for modifications this should be parsed before handling insertions.", +"items": { +"$ref": "DataPoint" +}, +"type": "array" +}, +"insertedDataPoint": { +"description": "Inserted data points for the user.", +"items": { +"$ref": "DataPoint" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListDataSourcesResponse": { +"id": "ListDataSourcesResponse", +"properties": { +"dataSource": { +"description": "A previously created data source.", +"items": { +"$ref": "DataSource" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListSessionsResponse": { +"id": "ListSessionsResponse", +"properties": { +"deletedSession": { +"description": "If includeDeleted is set to true in the request, and startTime and endTime are omitted, this will include sessions which were deleted since the last sync.", +"items": { +"$ref": "Session" +}, +"type": "array" +}, +"hasMoreData": { +"deprecated": true, +"description": "Flag to indicate server has more data to transfer. DO NOT USE THIS FIELD. It is never populated in responses from the server.", +"type": "boolean" +}, +"nextPageToken": { +"description": "The sync token which is used to sync further changes. This will only be provided if both startTime and endTime are omitted from the request.", +"type": "string" +}, +"session": { +"description": "Sessions with an end time that is between startTime and endTime of the request.", +"items": { +"$ref": "Session" +}, +"type": "array" +} +}, +"type": "object" +}, +"MapValue": { +"description": "Holder object for the value of an entry in a map field of a data point. A map value supports a subset of the formats that the regular Value supports.", +"id": "MapValue", +"properties": { +"fpVal": { +"description": "Floating point value.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"Session": { +"description": "Sessions contain metadata, such as a user-friendly name and time interval information.", +"id": "Session", +"properties": { +"activeTimeMillis": { +"description": "Session active time. While start_time_millis and end_time_millis define the full session time, the active time can be shorter and specified by active_time_millis. If the inactive time during the session is known, it should also be inserted via a com.google.activity.segment data point with a STILL activity value", +"format": "int64", +"type": "string" +}, +"activityType": { +"annotations": { +"required": [ +"fitness.users.sessions.update" +] +}, +"description": "The type of activity this session represents.", +"format": "int32", +"type": "integer" +}, +"application": { +"$ref": "Application", +"annotations": { +"required": [ +"fitness.users.sessions.update" +] +}, +"description": "The application that created the session." +}, +"description": { +"description": "A description for this session.", +"type": "string" +}, +"endTimeMillis": { +"annotations": { +"required": [ +"fitness.users.sessions.update" +] +}, +"description": "An end time, in milliseconds since epoch, inclusive.", +"format": "int64", +"type": "string" +}, +"id": { +"annotations": { +"required": [ +"fitness.users.sessions.update" +] +}, +"description": "A client-generated identifier that is unique across all sessions owned by this particular user.", +"type": "string" +}, +"modifiedTimeMillis": { +"description": "A timestamp that indicates when the session was last modified.", +"format": "int64", +"type": "string" +}, +"name": { +"annotations": { +"required": [ +"fitness.users.sessions.update" +] +}, +"description": "A human readable name of the session.", +"type": "string" +}, +"startTimeMillis": { +"annotations": { +"required": [ +"fitness.users.sessions.update" +] +}, +"description": "A start time, in milliseconds since epoch, inclusive.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"Value": { +"description": "Holder object for the value of a single field in a data point. A field value has a particular format and is only ever set to one of an integer or a floating point value.", +"id": "Value", +"properties": { +"fpVal": { +"description": "Floating point value. When this is set, other values must not be set.", +"format": "double", +"type": "number" +}, +"intVal": { +"description": "Integer value. When this is set, other values must not be set.", +"format": "int32", +"type": "integer" +}, +"mapVal": { +"description": "Map value. The valid key space and units for the corresponding value of each entry should be documented as part of the data type definition. Keys should be kept small whenever possible. Data streams with large keys and high data frequency may be down sampled.", +"items": { +"$ref": "ValueMapValEntry" +}, +"type": "array" +}, +"stringVal": { +"description": "String value. When this is set, other values must not be set. Strings should be kept small whenever possible. Data streams with large string values and high data frequency may be down sampled.", +"type": "string" +} +}, +"type": "object" +}, +"ValueMapValEntry": { +"id": "ValueMapValEntry", +"properties": { +"key": { +"type": "string" +}, +"value": { +"$ref": "MapValue" +} +}, +"type": "object" +} +}, +"servicePath": "fitness/v1/users/", +"title": "Fitness API", +"version": "v1" +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/gameservices.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/gameservices.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..f87bed8655570e4076952d51f774550614d8b655 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/gameservices.v1.json @@ -0,0 +1,1007 @@ +{ + "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://gameservices.googleapis.com/", + "batchPath": "batch", + "canonicalName": "Game Services", + "description": "Deploy and manage infrastructure for global multiplayer gaming experiences.", + "discoveryVersion": "v1", + "documentationLink": "https://cloud.google.com/solutions/gaming/", + "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": "gameservices:v1", + "kind": "discovery#restDescription", + "mtlsRootUrl": "https://gameservices.mtls.googleapis.com/", + "name": "gameservices", + "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": "gameservices.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": "gameservices.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" + }, + "includeUnrevealedLocations": { + "description": "If true, the returned list will include locations which are not yet revealed.", + "location": "query", + "type": "boolean" + }, + "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": { + "gameServerDeployments": { + "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}/gameServerDeployments/{gameServerDeploymentsId}:getIamPolicy", + "httpMethod": "GET", + "id": "gameservices.projects.locations.gameServerDeployments.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/[^/]+/gameServerDeployments/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:getIamPolicy", + "response": { + "$ref": "Policy" + }, + "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}/gameServerDeployments/{gameServerDeploymentsId}:setIamPolicy", + "httpMethod": "POST", + "id": "gameservices.projects.locations.gameServerDeployments.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/[^/]+/gameServerDeployments/[^/]+$", + "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 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}/gameServerDeployments/{gameServerDeploymentsId}:testIamPermissions", + "httpMethod": "POST", + "id": "gameservices.projects.locations.gameServerDeployments.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/[^/]+/gameServerDeployments/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+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": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel", + "httpMethod": "POST", + "id": "gameservices.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": "gameservices.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": "gameservices.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": "gameservices.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": "20230706", + "rootUrl": "https://gameservices.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" + }, + "ignoreChildExemptions": { + "type": "boolean" + }, + "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" + }, + "AuthorizationLoggingOptions": { + "description": "Authorization-related information used by Cloud Audit Logging.", + "id": "AuthorizationLoggingOptions", + "properties": { + "permissionType": { + "description": "The type of the permission that was checked.", + "enum": [ + "PERMISSION_TYPE_UNSPECIFIED", + "ADMIN_READ", + "ADMIN_WRITE", + "DATA_READ", + "DATA_WRITE" + ], + "enumDescriptions": [ + "Default. Should not be used.", + "A read of admin (meta) data.", + "A write of admin (meta) data.", + "A read of standard data.", + "A write of standard data." + ], + "type": "string" + } + }, + "type": "object" + }, + "Binding": { + "description": "Associates `members`, or principals, with a `role`.", + "id": "Binding", + "properties": { + "bindingId": { + "type": "string" + }, + "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`. * `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.", + "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`.", + "type": "string" + } + }, + "type": "object" + }, + "CancelOperationRequest": { + "description": "The request message for Operations.CancelOperation.", + "id": "CancelOperationRequest", + "properties": {}, + "type": "object" + }, + "CloudAuditOptions": { + "description": "Write a Cloud Audit log", + "id": "CloudAuditOptions", + "properties": { + "authorizationLoggingOptions": { + "$ref": "AuthorizationLoggingOptions", + "description": "Information used by the Cloud Audit Logging pipeline." + }, + "logName": { + "description": "The log_name to populate in the Cloud Audit Record.", + "enum": [ + "UNSPECIFIED_LOG_NAME", + "ADMIN_ACTIVITY", + "DATA_ACCESS" + ], + "enumDescriptions": [ + "Default. Should not be used.", + "Corresponds to \"cloudaudit.googleapis.com/activity\"", + "Corresponds to \"cloudaudit.googleapis.com/data_access\"" + ], + "type": "string" + } + }, + "type": "object" + }, + "Condition": { + "description": "A condition to be met.", + "id": "Condition", + "properties": { + "iam": { + "description": "Trusted attributes supplied by the IAM system.", + "enum": [ + "NO_ATTR", + "AUTHORITY", + "ATTRIBUTION", + "SECURITY_REALM", + "APPROVER", + "JUSTIFICATION_TYPE", + "CREDENTIALS_TYPE", + "CREDS_ASSERTION" + ], + "enumDescriptions": [ + "Default non-attribute.", + "Either principal or (if present) authority selector.", + "The principal (even if an authority selector is present), which must only be used for attribution, not authorization.", + "Any of the security realms in the IAMContext (go/security-realms). When used with IN, the condition indicates \"any of the request's realms match one of the given values; with NOT_IN, \"none of the realms match any of the given values\". Note that a value can be: - 'self:campus' (i.e., clients that are in the same campus) - 'self:metro' (i.e., clients that are in the same metro) - 'self:cloud-region' (i.e., allow connections from clients that are in the same cloud region) - 'self:prod-region' (i.e., allow connections from clients that are in the same prod region) - 'guardians' (i.e., allow connections from its guardian realms. See go/security-realms-glossary#guardian for more information.) - 'self' [DEPRECATED] (i.e., allow connections from clients that are in the same security realm, which is currently but not guaranteed to be campus-sized) - a realm (e.g., 'campus-abc') - a realm group (e.g., 'realms-for-borg-cell-xx', see: go/realm-groups) A match is determined by a realm group membership check performed by a RealmAclRep object (go/realm-acl-howto). It is not permitted to grant access based on the *absence* of a realm, so realm conditions can only be used in a \"positive\" context (e.g., ALLOW/IN or DENY/NOT_IN).", + "An approver (distinct from the requester) that has authorized this request. When used with IN, the condition indicates that one of the approvers associated with the request matches the specified principal, or is a member of the specified group. Approvers can only grant additional access, and are thus only used in a strictly positive context (e.g. ALLOW/IN or DENY/NOT_IN).", + "What types of justifications have been supplied with this request. String values should match enum names from security.credentials.JustificationType, e.g. \"MANUAL_STRING\". It is not permitted to grant access based on the *absence* of a justification, so justification conditions can only be used in a \"positive\" context (e.g., ALLOW/IN or DENY/NOT_IN). Multiple justifications, e.g., a Buganizer ID and a manually-entered reason, are normal and supported.", + "What type of credentials have been supplied with this request. String values should match enum names from security_loas_l2.CredentialsType - currently, only CREDS_TYPE_EMERGENCY is supported. It is not permitted to grant access based on the *absence* of a credentials type, so the conditions can only be used in a \"positive\" context (e.g., ALLOW/IN or DENY/NOT_IN).", + "EXPERIMENTAL -- DO NOT USE. The conditions can only be used in a \"positive\" context (e.g., ALLOW/IN or DENY/NOT_IN)." + ], + "type": "string" + }, + "op": { + "description": "An operator to apply the subject with.", + "enum": [ + "NO_OP", + "EQUALS", + "NOT_EQUALS", + "IN", + "NOT_IN", + "DISCHARGED" + ], + "enumDescriptions": [ + "Default no-op.", + "DEPRECATED. Use IN instead.", + "DEPRECATED. Use NOT_IN instead.", + "The condition is true if the subject (or any element of it if it is a set) matches any of the supplied values.", + "The condition is true if the subject (or every element of it if it is a set) matches none of the supplied values.", + "Subject is discharged" + ], + "type": "string" + }, + "svc": { + "description": "Trusted attributes discharged by the service.", + "type": "string" + }, + "sys": { + "description": "Trusted attributes supplied by any service that owns resources and uses the IAM system for access control.", + "enum": [ + "NO_ATTR", + "REGION", + "SERVICE", + "NAME", + "IP" + ], + "enumDescriptions": [ + "Default non-attribute type", + "Region of the resource", + "Service name", + "Resource name", + "IP address of the caller" + ], + "type": "string" + }, + "values": { + "description": "The objects of the condition.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "CounterOptions": { + "description": "Increment a streamz counter with the specified metric and field names. Metric names should start with a '/', generally be lowercase-only, and end in \"_count\". Field names should not contain an initial slash. The actual exported metric names will have \"/iam/policy\" prepended. Field names correspond to IAM request parameters and field values are their respective values. Supported field names: - \"authority\", which is \"[token]\" if IAMContext.token is present, otherwise the value of IAMContext.authority_selector if present, and otherwise a representation of IAMContext.principal; or - \"iam_principal\", a representation of IAMContext.principal even if a token or authority selector is present; or - \"\" (empty string), resulting in a counter with no fields. Examples: counter { metric: \"/debug_access_count\" field: \"iam_principal\" } ==> increment counter /iam/policy/debug_access_count {iam_principal=[value of IAMContext.principal]}", + "id": "CounterOptions", + "properties": { + "customFields": { + "description": "Custom fields.", + "items": { + "$ref": "CustomField" + }, + "type": "array" + }, + "field": { + "description": "The field value to attribute.", + "type": "string" + }, + "metric": { + "description": "The metric to update.", + "type": "string" + } + }, + "type": "object" + }, + "CustomField": { + "description": "Custom fields. These can be used to create a counter with arbitrary field/value pairs. See: go/rpcsp-custom-fields.", + "id": "CustomField", + "properties": { + "name": { + "description": "Name is the field name.", + "type": "string" + }, + "value": { + "description": "Value is the field value. It is important that in contrast to the CounterOptions.field, the value here is a constant that is not derived from the IAMContext.", + "type": "string" + } + }, + "type": "object" + }, + "DataAccessOptions": { + "description": "Write a Data Access (Gin) log", + "id": "DataAccessOptions", + "properties": { + "logMode": { + "enum": [ + "LOG_MODE_UNSPECIFIED", + "LOG_FAIL_CLOSED" + ], + "enumDescriptions": [ + "Client is not required to write a partial Gin log immediately after the authorization check. If client chooses to write one and it fails, client may either fail open (allow the operation to continue) or fail closed (handle as a DENY outcome).", + "The application's operation in the context of which this authorization check is being made may only be performed if it is successfully logged to Gin. For instance, the authorization library may satisfy this obligation by emitting a partial log entry at authorization check time and only returning ALLOW to the application if it succeeds. If a matching Rule has this directive, but the client has not indicated that it will honor such requirements, then the IAM check will result in authorization failure by setting CheckPolicyResponse.success=false." + ], + "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" + }, + "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" + }, + "LogConfig": { + "description": "Specifies what kind of log the caller must write", + "id": "LogConfig", + "properties": { + "cloudAudit": { + "$ref": "CloudAuditOptions", + "description": "Cloud audit options." + }, + "counter": { + "$ref": "CounterOptions", + "description": "Counter options." + }, + "dataAccess": { + "$ref": "DataAccessOptions", + "description": "Data access options." + } + }, + "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 response of the operation in case of success. 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" + }, + "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" + }, + "rules": { + "description": "If more than one rule is specified, the rules are applied in the following manner: - All matching LOG rules are always applied. - If any DENY/DENY_WITH_LOG rule matches, permission is denied. Logging will be applied if one or more matching rule requires logging. - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is granted. Logging will be applied if one or more matching rule requires logging. - Otherwise, if no rule applies, permission is denied.", + "items": { + "$ref": "Rule" + }, + "type": "array" + }, + "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" + }, + "Rule": { + "description": "A rule to be applied in a Policy.", + "id": "Rule", + "properties": { + "action": { + "description": "Required", + "enum": [ + "NO_ACTION", + "ALLOW", + "ALLOW_WITH_LOG", + "DENY", + "DENY_WITH_LOG", + "LOG" + ], + "enumDescriptions": [ + "Default no action.", + "Matching 'Entries' grant access.", + "Matching 'Entries' grant access and the caller promises to log the request per the returned log_configs.", + "Matching 'Entries' deny access.", + "Matching 'Entries' deny access and the caller promises to log the request per the returned log_configs.", + "Matching 'Entries' tell IAM.Check callers to generate logs." + ], + "type": "string" + }, + "conditions": { + "description": "Additional restrictions that must be met. All conditions must pass for the rule to match.", + "items": { + "$ref": "Condition" + }, + "type": "array" + }, + "description": { + "description": "Human-readable description of the rule.", + "type": "string" + }, + "in": { + "description": "If one or more 'in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.", + "items": { + "type": "string" + }, + "type": "array" + }, + "logConfig": { + "description": "The config returned to callers of CheckPolicy for any entries that match the LOG action.", + "items": { + "$ref": "LogConfig" + }, + "type": "array" + }, + "notIn": { + "description": "If one or more 'not_in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries. The format for in and not_in entries can be found at in the Local IAM documentation (see go/local-iam#features).", + "items": { + "type": "string" + }, + "type": "array" + }, + "permissions": { + "description": "A permission is a string of form '..' (e.g., 'storage.buckets.list'). A value of '*' matches all permissions, and a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "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" + } + }, + "servicePath": "", + "title": "Game Services 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/gkehub.v1beta.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/gkehub.v1beta.json new file mode 100644 index 0000000000000000000000000000000000000000..9252cf4b41df4af5da76d875be30e87c0c15a28f --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/gkehub.v1beta.json @@ -0,0 +1,6705 @@ +{ +"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://gkehub.googleapis.com/", +"batchPath": "batch", +"canonicalName": "GKE Hub", +"description": "", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/anthos/multicluster-management/connect/registering-a-cluster", +"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": "gkehub:v1beta", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://gkehub.mtls.googleapis.com/", +"name": "gkehub", +"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": { +"fleets": { +"methods": { +"list": { +"description": "Returns all fleets within an organization or a project that the caller has access to.", +"flatPath": "v1beta/organizations/{organizationsId}/locations/{locationsId}/fleets", +"httpMethod": "GET", +"id": "gkehub.organizations.locations.fleets.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of fleets to return. The service may return fewer than this value. If unspecified, at most 200 fleets 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 `ListFleets` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListFleets` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The organization or project to list for Fleets under, in the format `organizations/*/locations/*` or `projects/*/locations/*`.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+parent}/fleets", +"response": { +"$ref": "ListFleetsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +}, +"projects": { +"resources": { +"locations": { +"methods": { +"get": { +"description": "Gets information about a location.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}", +"httpMethod": "GET", +"id": "gkehub.projects.locations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Resource name for the location.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+name}", +"response": { +"$ref": "Location" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists information about the supported locations for this service.", +"flatPath": "v1beta/projects/{projectsId}/locations", +"httpMethod": "GET", +"id": "gkehub.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": "v1beta/{+name}/locations", +"response": { +"$ref": "ListLocationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"features": { +"methods": { +"create": { +"description": "Adds a new Feature.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/features", +"httpMethod": "POST", +"id": "gkehub.projects.locations.features.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"featureId": { +"description": "The ID of the feature to create.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent (project and location) where the Feature will be created. Specified in the format `projects/*/locations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "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": "v1beta/{+parent}/features", +"request": { +"$ref": "Feature" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Removes a Feature.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/features/{featuresId}", +"httpMethod": "DELETE", +"id": "gkehub.projects.locations.features.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"force": { +"description": "If set to true, the delete will ignore any outstanding resources for this Feature (that is, `FeatureState.has_resources` is set to true). These resources will NOT be cleaned up or modified in any way.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Required. The Feature resource name in the format `projects/*/locations/*/features/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/features/[^/]+$", +"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": "v1beta/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single Feature.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/features/{featuresId}", +"httpMethod": "GET", +"id": "gkehub.projects.locations.features.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The Feature resource name in the format `projects/*/locations/*/features/*`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/features/[^/]+$", +"required": true, +"type": "string" +}, +"returnPartialSuccess": { +"description": "Optional. If set to true, the response will return partial results when some regions are unreachable and the unreachable field in Feature proto will be populated. If set to false, the request will fail when some regions are unreachable.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1beta/{+name}", +"response": { +"$ref": "Feature" +}, +"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}/features/{featuresId}:getIamPolicy", +"httpMethod": "GET", +"id": "gkehub.projects.locations.features.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/[^/]+/features/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists Features in a given project and location.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/features", +"httpMethod": "GET", +"id": "gkehub.projects.locations.features.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Lists Features that match the filter expression, following the syntax outlined in https://google.aip.dev/160. Examples: - Feature with the name \"servicemesh\" in project \"foo-proj\": name = \"projects/foo-proj/locations/global/features/servicemesh\" - Features that have a label called `foo`: labels.foo:* - Features that have a label called `foo` whose value is `bar`: labels.foo = bar", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "One or more fields to compare and use to sort the output. See https://google.aip.dev/132#ordering.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "When requesting a 'page' of resources, `page_size` specifies number of resources to return. If unspecified or set to 0, all resources will be returned.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Token returned by previous call to `ListFeatures` which specifies the position in the list from where to continue listing the resources.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent (project and location) where the Features will be listed. Specified in the format `projects/*/locations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"returnPartialSuccess": { +"description": "Optional. If set to true, the response will return partial results when some regions are unreachable and the unreachable field in Feature proto will be populated. If set to false, the request will fail when some regions are unreachable.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1beta/{+parent}/features", +"response": { +"$ref": "ListFeaturesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates an existing Feature.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/features/{featuresId}", +"httpMethod": "PATCH", +"id": "gkehub.projects.locations.features.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The Feature resource name in the format `projects/*/locations/*/features/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/features/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "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" +}, +"updateMask": { +"description": "Mask of fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta/{+name}", +"request": { +"$ref": "Feature" +}, +"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}/features/{featuresId}:setIamPolicy", +"httpMethod": "POST", +"id": "gkehub.projects.locations.features.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/[^/]+/features/[^/]+$", +"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}/features/{featuresId}:testIamPermissions", +"httpMethod": "POST", +"id": "gkehub.projects.locations.features.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/[^/]+/features/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"fleets": { +"methods": { +"create": { +"description": "Creates a fleet.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/fleets", +"httpMethod": "POST", +"id": "gkehub.projects.locations.fleets.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent (project and location) where the Fleet will be created. Specified in the format `projects/*/locations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+parent}/fleets", +"request": { +"$ref": "Fleet" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Removes a Fleet. There must be no memberships remaining in the Fleet.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/fleets/{fleetsId}", +"httpMethod": "DELETE", +"id": "gkehub.projects.locations.fleets.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The Fleet resource name in the format `projects/*/locations/*/fleets/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/fleets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Returns the details of a fleet.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/fleets/{fleetsId}", +"httpMethod": "GET", +"id": "gkehub.projects.locations.fleets.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The Fleet resource name in the format `projects/*/locations/*/fleets/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/fleets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+name}", +"response": { +"$ref": "Fleet" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Returns all fleets within an organization or a project that the caller has access to.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/fleets", +"httpMethod": "GET", +"id": "gkehub.projects.locations.fleets.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of fleets to return. The service may return fewer than this value. If unspecified, at most 200 fleets 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 `ListFleets` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListFleets` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The organization or project to list for Fleets under, in the format `organizations/*/locations/*` or `projects/*/locations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+parent}/fleets", +"response": { +"$ref": "ListFleetsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a fleet.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/fleets/{fleetsId}", +"httpMethod": "PATCH", +"id": "gkehub.projects.locations.fleets.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. The full, unique resource name of this fleet in the format of `projects/{project}/locations/{location}/fleets/{fleet}`. Each Google Cloud project can have at most one fleet resource, named \"default\".", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/fleets/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The fields to be updated;", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta/{+name}", +"request": { +"$ref": "Fleet" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"memberships": { +"methods": { +"create": { +"description": "Creates a new Membership. **This is currently only supported for GKE clusters on Google Cloud**. To register other clusters, follow the instructions at https://cloud.google.com/anthos/multicluster-management/connect/registering-a-cluster.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/memberships", +"httpMethod": "POST", +"id": "gkehub.projects.locations.memberships.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"membershipId": { +"description": "Required. Client chosen ID for the membership. `membership_id` must be a valid RFC 1123 compliant DNS label: 1. At most 63 characters in length 2. It must consist of lower case alphanumeric characters or `-` 3. It must start and end with an alphanumeric character Which can be expressed as the regex: `[a-z0-9]([-a-z0-9]*[a-z0-9])?`, with a maximum length of 63 characters.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent (project and location) where the Memberships will be created. Specified in the format `projects/*/locations/*`.", +"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 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": "v1beta/{+parent}/memberships", +"request": { +"$ref": "Membership" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Removes a Membership. **This is currently only supported for GKE clusters on Google Cloud**. To unregister other clusters, follow the instructions at https://cloud.google.com/anthos/multicluster-management/connect/unregistering-a-cluster.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}", +"httpMethod": "DELETE", +"id": "gkehub.projects.locations.memberships.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"force": { +"description": "Optional. If set to true, any subresource from this Membership will also be deleted. Otherwise, the request will only work if the Membership has no subresource.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Required. The Membership resource name in the format `projects/*/locations/*/memberships/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+$", +"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": "v1beta/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"generateConnectManifest": { +"description": "Generates the manifest for deployment of the GKE connect agent. **This method is used internally by Google-provided libraries.** Most clients should not need to call this method directly.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}:generateConnectManifest", +"httpMethod": "GET", +"id": "gkehub.projects.locations.memberships.generateConnectManifest", +"parameterOrder": [ +"name" +], +"parameters": { +"imagePullSecretContent": { +"description": "Optional. The image pull secret content for the registry, if not public.", +"format": "byte", +"location": "query", +"type": "string" +}, +"isUpgrade": { +"description": "Optional. If true, generate the resources for upgrade only. Some resources generated only for installation (e.g. secrets) will be excluded.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Required. The Membership resource name the Agent will associate with, in the format `projects/*/locations/*/memberships/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+$", +"required": true, +"type": "string" +}, +"namespace": { +"description": "Optional. Namespace for GKE Connect agent resources. Defaults to `gke-connect`. The Connect Agent is authorized automatically when run in the default namespace. Otherwise, explicit authorization must be granted with an additional IAM binding.", +"location": "query", +"type": "string" +}, +"proxy": { +"description": "Optional. URI of a proxy if connectivity from the agent to gkeconnect.googleapis.com requires the use of a proxy. Format must be in the form `http(s)://{proxy_address}`, depending on the HTTP/HTTPS protocol supported by the proxy. This will direct the connect agent's outbound traffic through a HTTP(S) proxy.", +"format": "byte", +"location": "query", +"type": "string" +}, +"registry": { +"description": "Optional. The registry to fetch the connect agent image from. Defaults to gcr.io/gkeconnect.", +"location": "query", +"type": "string" +}, +"version": { +"description": "Optional. The Connect agent version to use. Defaults to the most current version.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta/{+name}:generateConnectManifest", +"response": { +"$ref": "GenerateConnectManifestResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the details of a Membership.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}", +"httpMethod": "GET", +"id": "gkehub.projects.locations.memberships.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The Membership resource name in the format `projects/*/locations/*/memberships/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+name}", +"response": { +"$ref": "Membership" +}, +"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}/memberships/{membershipsId}:getIamPolicy", +"httpMethod": "GET", +"id": "gkehub.projects.locations.memberships.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/[^/]+/memberships/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists Memberships in a given project and location.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/memberships", +"httpMethod": "GET", +"id": "gkehub.projects.locations.memberships.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Lists Memberships that match the filter expression, following the syntax outlined in https://google.aip.dev/160. Examples: - Name is `bar` in project `foo-proj` and location `global`: name = \"projects/foo-proj/locations/global/membership/bar\" - Memberships that have a label called `foo`: labels.foo:* - Memberships that have a label called `foo` whose value is `bar`: labels.foo = bar - Memberships in the CREATING state: state = CREATING", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. One or more fields to compare and use to sort the output. See https://google.aip.dev/132#ordering.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. When requesting a 'page' of resources, `page_size` specifies number of resources to return. If unspecified or set to 0, all resources will be returned.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Token returned by previous call to `ListMemberships` which specifies the position in the list from where to continue listing the resources.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent (project and location) where the Memberships will be listed. Specified in the format `projects/*/locations/*`. `projects/*/locations/-` list memberships in all the regions.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+parent}/memberships", +"response": { +"$ref": "ListMembershipsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates an existing Membership.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}", +"httpMethod": "PATCH", +"id": "gkehub.projects.locations.memberships.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The Membership resource name in the format `projects/*/locations/*/memberships/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+$", +"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" +}, +"updateMask": { +"description": "Required. Mask of fields to update.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta/{+name}", +"request": { +"$ref": "Membership" +}, +"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}/memberships/{membershipsId}:setIamPolicy", +"httpMethod": "POST", +"id": "gkehub.projects.locations.memberships.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/[^/]+/memberships/[^/]+$", +"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}/memberships/{membershipsId}:testIamPermissions", +"httpMethod": "POST", +"id": "gkehub.projects.locations.memberships.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/[^/]+/memberships/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"bindings": { +"methods": { +"create": { +"description": "Creates a MembershipBinding.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}/bindings", +"httpMethod": "POST", +"id": "gkehub.projects.locations.memberships.bindings.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"membershipBindingId": { +"description": "Required. The ID to use for the MembershipBinding.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent (project and location) where the MembershipBinding will be created. Specified in the format `projects/*/locations/*/memberships/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+parent}/bindings", +"request": { +"$ref": "MembershipBinding" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a MembershipBinding.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}/bindings/{bindingsId}", +"httpMethod": "DELETE", +"id": "gkehub.projects.locations.memberships.bindings.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The MembershipBinding resource name in the format `projects/*/locations/*/memberships/*/bindings/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+/bindings/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Returns the details of a MembershipBinding.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}/bindings/{bindingsId}", +"httpMethod": "GET", +"id": "gkehub.projects.locations.memberships.bindings.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The MembershipBinding resource name in the format `projects/*/locations/*/memberships/*/bindings/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+/bindings/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+name}", +"response": { +"$ref": "MembershipBinding" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists MembershipBindings.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}/bindings", +"httpMethod": "GET", +"id": "gkehub.projects.locations.memberships.bindings.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Lists MembershipBindings that match the filter expression, following the syntax outlined in https://google.aip.dev/160.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. When requesting a 'page' of resources, `page_size` specifies number of resources to return. If unspecified or set to 0, all resources will be returned.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Token returned by previous call to `ListMembershipBindings` which specifies the position in the list from where to continue listing the resources.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent Membership for which the MembershipBindings will be listed. Specified in the format `projects/*/locations/*/memberships/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+parent}/bindings", +"response": { +"$ref": "ListMembershipBindingsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a MembershipBinding.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}/bindings/{bindingsId}", +"httpMethod": "PATCH", +"id": "gkehub.projects.locations.memberships.bindings.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The resource name for the membershipbinding itself `projects/{project}/locations/{location}/memberships/{membership}/bindings/{membershipbinding}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+/bindings/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta/{+name}", +"request": { +"$ref": "MembershipBinding" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"rbacrolebindings": { +"methods": { +"create": { +"description": "Creates a Membership RBACRoleBinding.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}/rbacrolebindings", +"httpMethod": "POST", +"id": "gkehub.projects.locations.memberships.rbacrolebindings.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent (project and location) where the RBACRoleBinding will be created. Specified in the format `projects/*/locations/*/memberships/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+$", +"required": true, +"type": "string" +}, +"rbacrolebindingId": { +"description": "Required. Client chosen ID for the RBACRoleBinding. `rbacrolebinding_id` must be a valid RFC 1123 compliant DNS label: 1. At most 63 characters in length 2. It must consist of lower case alphanumeric characters or `-` 3. It must start and end with an alphanumeric character Which can be expressed as the regex: `[a-z0-9]([-a-z0-9]*[a-z0-9])?`, with a maximum length of 63 characters.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta/{+parent}/rbacrolebindings", +"request": { +"$ref": "RBACRoleBinding" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a Membership RBACRoleBinding.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}/rbacrolebindings/{rbacrolebindingsId}", +"httpMethod": "DELETE", +"id": "gkehub.projects.locations.memberships.rbacrolebindings.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The RBACRoleBinding resource name in the format `projects/*/locations/*/memberships/*/rbacrolebindings/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+/rbacrolebindings/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"generateMembershipRBACRoleBindingYAML": { +"description": "Generates a YAML of the RBAC policies for the specified RoleBinding and its associated impersonation resources.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}/rbacrolebindings:generateMembershipRBACRoleBindingYAML", +"httpMethod": "POST", +"id": "gkehub.projects.locations.memberships.rbacrolebindings.generateMembershipRBACRoleBindingYAML", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent (project and location) where the RBACRoleBinding will be created. Specified in the format `projects/*/locations/*/memberships/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+$", +"required": true, +"type": "string" +}, +"rbacrolebindingId": { +"description": "Required. Client chosen ID for the RBACRoleBinding. `rbacrolebinding_id` must be a valid RFC 1123 compliant DNS label: 1. At most 63 characters in length 2. It must consist of lower case alphanumeric characters or `-` 3. It must start and end with an alphanumeric character Which can be expressed as the regex: `[a-z0-9]([-a-z0-9]*[a-z0-9])?`, with a maximum length of 63 characters.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta/{+parent}/rbacrolebindings:generateMembershipRBACRoleBindingYAML", +"request": { +"$ref": "RBACRoleBinding" +}, +"response": { +"$ref": "GenerateMembershipRBACRoleBindingYAMLResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Returns the details of a Membership RBACRoleBinding.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}/rbacrolebindings/{rbacrolebindingsId}", +"httpMethod": "GET", +"id": "gkehub.projects.locations.memberships.rbacrolebindings.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The RBACRoleBinding resource name in the format `projects/*/locations/*/memberships/*/rbacrolebindings/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+/rbacrolebindings/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+name}", +"response": { +"$ref": "RBACRoleBinding" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all Membership RBACRoleBindings.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}/rbacrolebindings", +"httpMethod": "GET", +"id": "gkehub.projects.locations.memberships.rbacrolebindings.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. When requesting a 'page' of resources, `page_size` specifies number of resources to return. If unspecified or set to 0, all resources will be returned.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Token returned by previous call to `ListMembershipRBACRoleBindings` which specifies the position in the list from where to continue listing the resources.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent (project and location) where the Features will be listed. Specified in the format `projects/*/locations/*/memberships/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+parent}/rbacrolebindings", +"response": { +"$ref": "ListMembershipRBACRoleBindingsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a Membership RBACRoleBinding.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}/rbacrolebindings/{rbacrolebindingsId}", +"httpMethod": "PATCH", +"id": "gkehub.projects.locations.memberships.rbacrolebindings.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The resource name for the rbacrolebinding `projects/{project}/locations/{location}/scopes/{scope}/rbacrolebindings/{rbacrolebinding}` or `projects/{project}/locations/{location}/memberships/{membership}/rbacrolebindings/{rbacrolebinding}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+/rbacrolebindings/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta/{+name}", +"request": { +"$ref": "RBACRoleBinding" +}, +"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": "v1beta/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel", +"httpMethod": "POST", +"id": "gkehub.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": "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": "v1beta/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "DELETE", +"id": "gkehub.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": "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": "v1beta/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "gkehub.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": "gkehub.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" +] +} +} +}, +"scopes": { +"methods": { +"create": { +"description": "Creates a Scope.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/scopes", +"httpMethod": "POST", +"id": "gkehub.projects.locations.scopes.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent (project and location) where the Scope will be created. Specified in the format `projects/*/locations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"scopeId": { +"description": "Required. Client chosen ID for the Scope. `scope_id` must be a ????", +"location": "query", +"type": "string" +} +}, +"path": "v1beta/{+parent}/scopes", +"request": { +"$ref": "Scope" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a Scope.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}", +"httpMethod": "DELETE", +"id": "gkehub.projects.locations.scopes.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The Scope resource name in the format `projects/*/locations/*/scopes/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/scopes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Returns the details of a Scope.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}", +"httpMethod": "GET", +"id": "gkehub.projects.locations.scopes.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The Scope resource name in the format `projects/*/locations/*/scopes/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/scopes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+name}", +"response": { +"$ref": "Scope" +}, +"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}/scopes/{scopesId}:getIamPolicy", +"httpMethod": "GET", +"id": "gkehub.projects.locations.scopes.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/[^/]+/scopes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists Scopes.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/scopes", +"httpMethod": "GET", +"id": "gkehub.projects.locations.scopes.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. When requesting a 'page' of resources, `page_size` specifies number of resources to return. If unspecified or set to 0, all resources will be returned.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Token returned by previous call to `ListScopes` which specifies the position in the list from where to continue listing the resources.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent (project and location) where the Scope will be listed. Specified in the format `projects/*/locations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+parent}/scopes", +"response": { +"$ref": "ListScopesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"listMemberships": { +"description": "Lists Memberships bound to a Scope. The response includes relevant Memberships from all regions.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}:listMemberships", +"httpMethod": "GET", +"id": "gkehub.projects.locations.scopes.listMemberships", +"parameterOrder": [ +"scopeName" +], +"parameters": { +"filter": { +"description": "Optional. Lists Memberships that match the filter expression, following the syntax outlined in https://google.aip.dev/160. Currently, filtering can be done only based on Memberships's `name`, `labels`, `create_time`, `update_time`, and `unique_id`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. When requesting a 'page' of resources, `page_size` specifies number of resources to return. If unspecified or set to 0, all resources will be returned. Pagination is currently not supported; therefore, setting this field does not have any impact for now.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Token returned by previous call to `ListBoundMemberships` which specifies the position in the list from where to continue listing the resources.", +"location": "query", +"type": "string" +}, +"scopeName": { +"description": "Required. Name of the Scope, in the format `projects/*/locations/global/scopes/*`, to which the Memberships are bound.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/scopes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+scopeName}:listMemberships", +"response": { +"$ref": "ListBoundMembershipsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"listPermitted": { +"description": "Lists permitted Scopes.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/scopes:listPermitted", +"httpMethod": "GET", +"id": "gkehub.projects.locations.scopes.listPermitted", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. When requesting a 'page' of resources, `page_size` specifies number of resources to return. If unspecified or set to 0, all resources will be returned.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Token returned by previous call to `ListPermittedScopes` which specifies the position in the list from where to continue listing the resources.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent (project and location) where the Scope will be listed. Specified in the format `projects/*/locations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+parent}/scopes:listPermitted", +"response": { +"$ref": "ListPermittedScopesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a scopes.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}", +"httpMethod": "PATCH", +"id": "gkehub.projects.locations.scopes.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The resource name for the scope `projects/{project}/locations/{location}/scopes/{scope}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/scopes/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta/{+name}", +"request": { +"$ref": "Scope" +}, +"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}/scopes/{scopesId}:setIamPolicy", +"httpMethod": "POST", +"id": "gkehub.projects.locations.scopes.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/[^/]+/scopes/[^/]+$", +"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}/scopes/{scopesId}:testIamPermissions", +"httpMethod": "POST", +"id": "gkehub.projects.locations.scopes.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/[^/]+/scopes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"namespaces": { +"methods": { +"create": { +"description": "Creates a fleet namespace.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}/namespaces", +"httpMethod": "POST", +"id": "gkehub.projects.locations.scopes.namespaces.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent (project and location) where the Namespace will be created. Specified in the format `projects/*/locations/*/scopes/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/scopes/[^/]+$", +"required": true, +"type": "string" +}, +"scopeNamespaceId": { +"description": "Required. Client chosen ID for the Namespace. `namespace_id` must be a valid RFC 1123 compliant DNS label: 1. At most 63 characters in length 2. It must consist of lower case alphanumeric characters or `-` 3. It must start and end with an alphanumeric character Which can be expressed as the regex: `[a-z0-9]([-a-z0-9]*[a-z0-9])?`, with a maximum length of 63 characters.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta/{+parent}/namespaces", +"request": { +"$ref": "Namespace" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a fleet namespace.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}/namespaces/{namespacesId}", +"httpMethod": "DELETE", +"id": "gkehub.projects.locations.scopes.namespaces.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The Namespace resource name in the format `projects/*/locations/*/scopes/*/namespaces/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/scopes/[^/]+/namespaces/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Returns the details of a fleet namespace.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}/namespaces/{namespacesId}", +"httpMethod": "GET", +"id": "gkehub.projects.locations.scopes.namespaces.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The Namespace resource name in the format `projects/*/locations/*/scopes/*/namespaces/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/scopes/[^/]+/namespaces/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+name}", +"response": { +"$ref": "Namespace" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists fleet namespaces.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}/namespaces", +"httpMethod": "GET", +"id": "gkehub.projects.locations.scopes.namespaces.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. When requesting a 'page' of resources, `page_size` specifies number of resources to return. If unspecified or set to 0, all resources will be returned.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Token returned by previous call to `ListFeatures` which specifies the position in the list from where to continue listing the resources.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent (project and location) where the Features will be listed. Specified in the format `projects/*/locations/*/scopes/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/scopes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+parent}/namespaces", +"response": { +"$ref": "ListScopeNamespacesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a fleet namespace.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}/namespaces/{namespacesId}", +"httpMethod": "PATCH", +"id": "gkehub.projects.locations.scopes.namespaces.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The resource name for the namespace `projects/{project}/locations/{location}/namespaces/{namespace}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/scopes/[^/]+/namespaces/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta/{+name}", +"request": { +"$ref": "Namespace" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"rbacrolebindings": { +"methods": { +"create": { +"description": "Creates a Scope RBACRoleBinding.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}/rbacrolebindings", +"httpMethod": "POST", +"id": "gkehub.projects.locations.scopes.rbacrolebindings.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent (project and location) where the RBACRoleBinding will be created. Specified in the format `projects/*/locations/*/scopes/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/scopes/[^/]+$", +"required": true, +"type": "string" +}, +"rbacrolebindingId": { +"description": "Required. Client chosen ID for the RBACRoleBinding. `rbacrolebinding_id` must be a valid RFC 1123 compliant DNS label: 1. At most 63 characters in length 2. It must consist of lower case alphanumeric characters or `-` 3. It must start and end with an alphanumeric character Which can be expressed as the regex: `[a-z0-9]([-a-z0-9]*[a-z0-9])?`, with a maximum length of 63 characters.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta/{+parent}/rbacrolebindings", +"request": { +"$ref": "RBACRoleBinding" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a Scope RBACRoleBinding.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}/rbacrolebindings/{rbacrolebindingsId}", +"httpMethod": "DELETE", +"id": "gkehub.projects.locations.scopes.rbacrolebindings.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The RBACRoleBinding resource name in the format `projects/*/locations/*/scopes/*/rbacrolebindings/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/scopes/[^/]+/rbacrolebindings/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Returns the details of a Scope RBACRoleBinding.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}/rbacrolebindings/{rbacrolebindingsId}", +"httpMethod": "GET", +"id": "gkehub.projects.locations.scopes.rbacrolebindings.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The RBACRoleBinding resource name in the format `projects/*/locations/*/scopes/*/rbacrolebindings/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/scopes/[^/]+/rbacrolebindings/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+name}", +"response": { +"$ref": "RBACRoleBinding" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all Scope RBACRoleBindings.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}/rbacrolebindings", +"httpMethod": "GET", +"id": "gkehub.projects.locations.scopes.rbacrolebindings.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. When requesting a 'page' of resources, `page_size` specifies number of resources to return. If unspecified or set to 0, all resources will be returned.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Token returned by previous call to `ListScopeRBACRoleBindings` which specifies the position in the list from where to continue listing the resources.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent (project and location) where the Features will be listed. Specified in the format `projects/*/locations/*/scopes/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/scopes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+parent}/rbacrolebindings", +"response": { +"$ref": "ListScopeRBACRoleBindingsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a Scope RBACRoleBinding.", +"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}/rbacrolebindings/{rbacrolebindingsId}", +"httpMethod": "PATCH", +"id": "gkehub.projects.locations.scopes.rbacrolebindings.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The resource name for the rbacrolebinding `projects/{project}/locations/{location}/scopes/{scope}/rbacrolebindings/{rbacrolebinding}` or `projects/{project}/locations/{location}/memberships/{membership}/rbacrolebindings/{rbacrolebinding}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/scopes/[^/]+/rbacrolebindings/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta/{+name}", +"request": { +"$ref": "RBACRoleBinding" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +} +} +}, +"revision": "20250103", +"rootUrl": "https://gkehub.googleapis.com/", +"schemas": { +"AnthosObservabilityFeatureSpec": { +"description": "**Anthos Observability**: Spec", +"id": "AnthosObservabilityFeatureSpec", +"properties": { +"defaultMembershipSpec": { +"$ref": "AnthosObservabilityMembershipSpec", +"description": "Default membership spec for unconfigured memberships" +} +}, +"type": "object" +}, +"AnthosObservabilityMembershipSpec": { +"description": "**Anthosobservability**: Per-Membership Feature spec.", +"id": "AnthosObservabilityMembershipSpec", +"properties": { +"doNotOptimizeMetrics": { +"description": "Use full of metrics rather than optimized metrics. See https://cloud.google.com/anthos/clusters/docs/on-prem/1.8/concepts/logging-and-monitoring#optimized_metrics_default_metrics", +"type": "boolean" +}, +"enableStackdriverOnApplications": { +"description": "Enable collecting and reporting metrics and logs from user apps.", +"type": "boolean" +}, +"version": { +"description": "the version of stackdriver operator used by this feature", +"type": "string" +} +}, +"type": "object" +}, +"AppDevExperienceFeatureSpec": { +"description": "Spec for App Dev Experience Feature.", +"id": "AppDevExperienceFeatureSpec", +"properties": {}, +"type": "object" +}, +"AppDevExperienceFeatureState": { +"description": "State for App Dev Exp Feature.", +"id": "AppDevExperienceFeatureState", +"properties": { +"networkingInstallSucceeded": { +"$ref": "Status", +"description": "Status of subcomponent that detects configured Service Mesh resources." +} +}, +"type": "object" +}, +"ApplianceCluster": { +"description": "ApplianceCluster contains information specific to GDC Edge Appliance Clusters.", +"id": "ApplianceCluster", +"properties": { +"resourceLink": { +"description": "Immutable. Self-link of the Google Cloud resource for the Appliance Cluster. For example: //transferappliance.googleapis.com/projects/my-project/locations/us-west1-a/appliances/my-appliance", +"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" +}, +"Authority": { +"description": "Authority encodes how Google will recognize identities from this Membership. See the workload identity documentation for more details: https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity", +"id": "Authority", +"properties": { +"identityProvider": { +"description": "Output only. An identity provider that reflects the `issuer` in the workload identity pool.", +"readOnly": true, +"type": "string" +}, +"issuer": { +"description": "Optional. A JSON Web Token (JWT) issuer URI. `issuer` must start with `https://` and be a valid URL with length <2000 characters, it must use `location` rather than `zone` for GKE clusters. If set, then Google will allow valid OIDC tokens from this issuer to authenticate within the workload_identity_pool. OIDC discovery will be performed on this URI to validate tokens from the issuer. Clearing `issuer` disables Workload Identity. `issuer` cannot be directly modified; it must be cleared (and Workload Identity disabled) before using a new issuer (and re-enabling Workload Identity).", +"type": "string" +}, +"oidcJwks": { +"description": "Optional. OIDC verification keys for this Membership in JWKS format (RFC 7517). When this field is set, OIDC discovery will NOT be performed on `issuer`, and instead OIDC tokens will be validated using this field.", +"format": "byte", +"type": "string" +}, +"scopeTenancyIdentityProvider": { +"description": "Optional. Output only. The identity provider for the scope-tenancy workload identity pool.", +"readOnly": true, +"type": "string" +}, +"scopeTenancyWorkloadIdentityPool": { +"description": "Optional. Output only. The name of the scope-tenancy workload identity pool. This pool is set in the fleet-level feature.", +"readOnly": true, +"type": "string" +}, +"workloadIdentityPool": { +"description": "Output only. The name of the workload identity pool in which `issuer` will be recognized. There is a single Workload Identity Pool per Hub that is shared between all Memberships that belong to that Hub. For a Hub hosted in {PROJECT_ID}, the workload pool format is `{PROJECT_ID}.hub.id.goog`, although this is subject to change in newer versions of this API.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"BinaryAuthorizationConfig": { +"description": "BinaryAuthorizationConfig defines the fleet level configuration of binary authorization feature.", +"id": "BinaryAuthorizationConfig", +"properties": { +"evaluationMode": { +"description": "Optional. Mode of operation for binauthz policy evaluation.", +"enum": [ +"EVALUATION_MODE_UNSPECIFIED", +"DISABLED", +"POLICY_BINDINGS" +], +"enumDescriptions": [ +"Default value", +"Disable BinaryAuthorization", +"Use Binary Authorization with the policies specified in policy_bindings." +], +"type": "string" +}, +"policyBindings": { +"description": "Optional. Binauthz policies that apply to this cluster.", +"items": { +"$ref": "PolicyBinding" +}, +"type": "array" +} +}, +"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" +}, +"ClusterUpgradeFleetSpec": { +"description": "**ClusterUpgrade**: The configuration for the fleet-level ClusterUpgrade feature.", +"id": "ClusterUpgradeFleetSpec", +"properties": { +"gkeUpgradeOverrides": { +"description": "Allow users to override some properties of each GKE upgrade.", +"items": { +"$ref": "ClusterUpgradeGKEUpgradeOverride" +}, +"type": "array" +}, +"postConditions": { +"$ref": "ClusterUpgradePostConditions", +"description": "Required. Post conditions to evaluate to mark an upgrade COMPLETE. Required." +}, +"upstreamFleets": { +"description": "This fleet consumes upgrades that have COMPLETE status code in the upstream fleets. See UpgradeStatus.Code for code definitions. The fleet name should be either fleet project number or id. This is defined as repeated for future proof reasons. Initial implementation will enforce at most one upstream fleet.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ClusterUpgradeFleetState": { +"description": "**ClusterUpgrade**: The state for the fleet-level ClusterUpgrade feature.", +"id": "ClusterUpgradeFleetState", +"properties": { +"downstreamFleets": { +"description": "This fleets whose upstream_fleets contain the current fleet. The fleet name should be either fleet project number or id.", +"items": { +"type": "string" +}, +"type": "array" +}, +"gkeState": { +"$ref": "ClusterUpgradeGKEUpgradeFeatureState", +"description": "Feature state for GKE clusters." +}, +"ignored": { +"additionalProperties": { +"$ref": "ClusterUpgradeIgnoredMembership" +}, +"description": "A list of memberships ignored by the feature. For example, manually upgraded clusters can be ignored if they are newer than the default versions of its release channel. The membership resource is in the format: `projects/{p}/locations/{l}/membership/{m}`.", +"type": "object" +} +}, +"type": "object" +}, +"ClusterUpgradeGKEUpgrade": { +"description": "GKEUpgrade represents a GKE provided upgrade, e.g., control plane upgrade.", +"id": "ClusterUpgradeGKEUpgrade", +"properties": { +"name": { +"description": "Name of the upgrade, e.g., \"k8s_control_plane\". It should be a valid upgrade name. It must not exceet 99 characters.", +"type": "string" +}, +"version": { +"description": "Version of the upgrade, e.g., \"1.22.1-gke.100\". It should be a valid version. It must not exceet 99 characters.", +"type": "string" +} +}, +"type": "object" +}, +"ClusterUpgradeGKEUpgradeFeatureCondition": { +"description": "GKEUpgradeFeatureCondition describes the condition of the feature for GKE clusters at a certain point of time.", +"id": "ClusterUpgradeGKEUpgradeFeatureCondition", +"properties": { +"reason": { +"description": "Reason why the feature is in this status.", +"type": "string" +}, +"status": { +"description": "Status of the condition, one of True, False, Unknown.", +"type": "string" +}, +"type": { +"description": "Type of the condition, for example, \"ready\".", +"type": "string" +}, +"updateTime": { +"description": "Last timestamp the condition was updated.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"ClusterUpgradeGKEUpgradeFeatureState": { +"description": "GKEUpgradeFeatureState contains feature states for GKE clusters in the scope.", +"id": "ClusterUpgradeGKEUpgradeFeatureState", +"properties": { +"conditions": { +"description": "Current conditions of the feature.", +"items": { +"$ref": "ClusterUpgradeGKEUpgradeFeatureCondition" +}, +"type": "array" +}, +"upgradeState": { +"description": "Upgrade state. It will eventually replace `state`.", +"items": { +"$ref": "ClusterUpgradeGKEUpgradeState" +}, +"type": "array" +} +}, +"type": "object" +}, +"ClusterUpgradeGKEUpgradeOverride": { +"description": "Properties of a GKE upgrade that can be overridden by the user. For example, a user can skip soaking by overriding the soaking to 0.", +"id": "ClusterUpgradeGKEUpgradeOverride", +"properties": { +"postConditions": { +"$ref": "ClusterUpgradePostConditions", +"description": "Required. Post conditions to override for the specified upgrade (name + version). Required." +}, +"upgrade": { +"$ref": "ClusterUpgradeGKEUpgrade", +"description": "Required. Which upgrade to override. Required." +} +}, +"type": "object" +}, +"ClusterUpgradeGKEUpgradeState": { +"description": "GKEUpgradeState is a GKEUpgrade and its state at the scope and fleet level.", +"id": "ClusterUpgradeGKEUpgradeState", +"properties": { +"stats": { +"additionalProperties": { +"format": "int64", +"type": "string" +}, +"description": "Number of GKE clusters in each status code.", +"type": "object" +}, +"status": { +"$ref": "ClusterUpgradeUpgradeStatus", +"description": "Status of the upgrade." +}, +"upgrade": { +"$ref": "ClusterUpgradeGKEUpgrade", +"description": "Which upgrade to track the state." +} +}, +"type": "object" +}, +"ClusterUpgradeIgnoredMembership": { +"description": "IgnoredMembership represents a membership ignored by the feature. A membership can be ignored because it was manually upgraded to a newer version than RC default.", +"id": "ClusterUpgradeIgnoredMembership", +"properties": { +"ignoredTime": { +"description": "Time when the membership was first set to ignored.", +"format": "google-datetime", +"type": "string" +}, +"reason": { +"description": "Reason why the membership is ignored.", +"type": "string" +} +}, +"type": "object" +}, +"ClusterUpgradeMembershipGKEUpgradeState": { +"description": "ScopeGKEUpgradeState is a GKEUpgrade and its state per-membership.", +"id": "ClusterUpgradeMembershipGKEUpgradeState", +"properties": { +"status": { +"$ref": "ClusterUpgradeUpgradeStatus", +"description": "Status of the upgrade." +}, +"upgrade": { +"$ref": "ClusterUpgradeGKEUpgrade", +"description": "Which upgrade to track the state." +} +}, +"type": "object" +}, +"ClusterUpgradeMembershipState": { +"description": "Per-membership state for this feature.", +"id": "ClusterUpgradeMembershipState", +"properties": { +"ignored": { +"$ref": "ClusterUpgradeIgnoredMembership", +"description": "Whether this membership is ignored by the feature. For example, manually upgraded clusters can be ignored if they are newer than the default versions of its release channel." +}, +"upgrades": { +"description": "Actual upgrade state against desired.", +"items": { +"$ref": "ClusterUpgradeMembershipGKEUpgradeState" +}, +"type": "array" +} +}, +"type": "object" +}, +"ClusterUpgradePostConditions": { +"description": "Post conditional checks after an upgrade has been applied on all eligible clusters.", +"id": "ClusterUpgradePostConditions", +"properties": { +"soaking": { +"description": "Required. Amount of time to \"soak\" after a rollout has been finished before marking it COMPLETE. Cannot exceed 30 days. Required.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"ClusterUpgradeUpgradeStatus": { +"description": "UpgradeStatus provides status information for each upgrade.", +"id": "ClusterUpgradeUpgradeStatus", +"properties": { +"code": { +"description": "Status code of the upgrade.", +"enum": [ +"CODE_UNSPECIFIED", +"INELIGIBLE", +"PENDING", +"IN_PROGRESS", +"SOAKING", +"FORCED_SOAKING", +"COMPLETE" +], +"enumDescriptions": [ +"Required by https://linter.aip.dev/126/unspecified.", +"The upgrade is ineligible. At the scope level, this means the upgrade is ineligible for all the clusters in the scope.", +"The upgrade is pending. At the scope level, this means the upgrade is pending for all the clusters in the scope.", +"The upgrade is in progress. At the scope level, this means the upgrade is in progress for at least one cluster in the scope.", +"The upgrade has finished and is soaking until the soaking time is up. At the scope level, this means at least one cluster is in soaking while the rest are either soaking or complete.", +"A cluster will be forced to enter soaking if an upgrade doesn't finish within a certain limit, despite it's actual status.", +"The upgrade has passed all post conditions (soaking). At the scope level, this means all eligible clusters are in COMPLETE status." +], +"type": "string" +}, +"reason": { +"description": "Reason for this status.", +"type": "string" +}, +"updateTime": { +"description": "Last timestamp the status was updated.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"CommonFeatureSpec": { +"description": "CommonFeatureSpec contains Fleet-wide configuration information", +"id": "CommonFeatureSpec", +"properties": { +"anthosobservability": { +"$ref": "AnthosObservabilityFeatureSpec", +"description": "Anthos Observability spec" +}, +"appdevexperience": { +"$ref": "AppDevExperienceFeatureSpec", +"description": "Appdevexperience specific spec." +}, +"clusterupgrade": { +"$ref": "ClusterUpgradeFleetSpec", +"description": "ClusterUpgrade (fleet-based) feature spec." +}, +"dataplanev2": { +"$ref": "DataplaneV2FeatureSpec", +"description": "DataplaneV2 feature spec." +}, +"fleetobservability": { +"$ref": "FleetObservabilityFeatureSpec", +"description": "FleetObservability feature spec." +}, +"multiclusteringress": { +"$ref": "MultiClusterIngressFeatureSpec", +"description": "Multicluster Ingress-specific spec." +} +}, +"type": "object" +}, +"CommonFeatureState": { +"description": "CommonFeatureState contains Fleet-wide Feature status information.", +"id": "CommonFeatureState", +"properties": { +"appdevexperience": { +"$ref": "AppDevExperienceFeatureState", +"description": "Appdevexperience specific state." +}, +"clusterupgrade": { +"$ref": "ClusterUpgradeFleetState", +"description": "ClusterUpgrade fleet-level state." +}, +"fleetobservability": { +"$ref": "FleetObservabilityFeatureState", +"description": "FleetObservability feature state." +}, +"state": { +"$ref": "FeatureState", +"description": "Output only. The \"running state\" of the Feature in this Fleet.", +"readOnly": true +} +}, +"type": "object" +}, +"CommonFleetDefaultMemberConfigSpec": { +"description": "CommonFleetDefaultMemberConfigSpec contains default configuration information for memberships of a fleet", +"id": "CommonFleetDefaultMemberConfigSpec", +"properties": { +"configmanagement": { +"$ref": "ConfigManagementMembershipSpec", +"description": "Config Management-specific spec." +}, +"identityservice": { +"$ref": "IdentityServiceMembershipSpec", +"description": "Identity Service-specific spec." +}, +"mesh": { +"$ref": "ServiceMeshMembershipSpec", +"description": "Anthos Service Mesh-specific spec" +}, +"policycontroller": { +"$ref": "PolicyControllerMembershipSpec", +"description": "Policy Controller spec." +} +}, +"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": { +"id": "ComplianceStandard", +"properties": { +"standard": { +"description": "Name of the compliance standard.", +"type": "string" +} +}, +"type": "object" +}, +"ConfigManagementBinauthzConfig": { +"description": "Configuration for Binauthz", +"id": "ConfigManagementBinauthzConfig", +"properties": { +"enabled": { +"description": "Whether binauthz is enabled in this cluster.", +"type": "boolean" +} +}, +"type": "object" +}, +"ConfigManagementBinauthzState": { +"description": "State for Binauthz", +"id": "ConfigManagementBinauthzState", +"properties": { +"version": { +"$ref": "ConfigManagementBinauthzVersion", +"description": "The version of binauthz that is installed." +}, +"webhook": { +"description": "The state of the binauthz webhook.", +"enum": [ +"DEPLOYMENT_STATE_UNSPECIFIED", +"NOT_INSTALLED", +"INSTALLED", +"ERROR", +"PENDING" +], +"enumDescriptions": [ +"Deployment's state cannot be determined", +"Deployment is not installed", +"Deployment is installed", +"Deployment was attempted to be installed, but has errors", +"Deployment is installing or terminating" +], +"type": "string" +} +}, +"type": "object" +}, +"ConfigManagementBinauthzVersion": { +"description": "The version of binauthz.", +"id": "ConfigManagementBinauthzVersion", +"properties": { +"webhookVersion": { +"description": "The version of the binauthz webhook.", +"type": "string" +} +}, +"type": "object" +}, +"ConfigManagementConfigSync": { +"description": "Configuration for Config Sync", +"id": "ConfigManagementConfigSync", +"properties": { +"allowVerticalScale": { +"deprecated": true, +"description": "Optional. Set to true to allow the vertical scaling. Defaults to false which disallows vertical scaling. This field is deprecated.", +"type": "boolean" +}, +"enabled": { +"description": "Optional. Enables the installation of ConfigSync. If set to true, ConfigSync resources will be created and the other ConfigSync fields will be applied if exist. If set to false, all other ConfigSync fields will be ignored, ConfigSync resources will be deleted. If omitted, ConfigSync resources will be managed depends on the presence of the git or oci field.", +"type": "boolean" +}, +"git": { +"$ref": "ConfigManagementGitConfig", +"description": "Optional. Git repo configuration for the cluster." +}, +"metricsGcpServiceAccountEmail": { +"deprecated": true, +"description": "Optional. The Email of the Google Cloud Service Account (GSA) used for exporting Config Sync metrics to Cloud Monitoring and Cloud Monarch when Workload Identity is enabled. The GSA should have the Monitoring Metric Writer (roles/monitoring.metricWriter) IAM role. The Kubernetes ServiceAccount `default` in the namespace `config-management-monitoring` should be bound to the GSA. Deprecated: If Workload Identity Federation for GKE is enabled, Google Cloud Service Account is no longer needed for exporting Config Sync metrics: https://cloud.google.com/kubernetes-engine/enterprise/config-sync/docs/how-to/monitor-config-sync-cloud-monitoring#custom-monitoring.", +"type": "string" +}, +"oci": { +"$ref": "ConfigManagementOciConfig", +"description": "Optional. OCI repo configuration for the cluster" +}, +"preventDrift": { +"description": "Optional. Set to true to enable the Config Sync admission webhook to prevent drifts. If set to `false`, disables the Config Sync admission webhook and does not prevent drifts.", +"type": "boolean" +}, +"sourceFormat": { +"description": "Optional. Specifies whether the Config Sync Repo is in \"hierarchical\" or \"unstructured\" mode.", +"type": "string" +}, +"stopSyncing": { +"description": "Optional. Set to true to stop syncing configs for a single cluster. Default to false.", +"type": "boolean" +} +}, +"type": "object" +}, +"ConfigManagementConfigSyncDeploymentState": { +"description": "The state of ConfigSync's deployment on a cluster", +"id": "ConfigManagementConfigSyncDeploymentState", +"properties": { +"admissionWebhook": { +"description": "Deployment state of admission-webhook", +"enum": [ +"DEPLOYMENT_STATE_UNSPECIFIED", +"NOT_INSTALLED", +"INSTALLED", +"ERROR", +"PENDING" +], +"enumDescriptions": [ +"Deployment's state cannot be determined", +"Deployment is not installed", +"Deployment is installed", +"Deployment was attempted to be installed, but has errors", +"Deployment is installing or terminating" +], +"type": "string" +}, +"gitSync": { +"description": "Deployment state of the git-sync pod", +"enum": [ +"DEPLOYMENT_STATE_UNSPECIFIED", +"NOT_INSTALLED", +"INSTALLED", +"ERROR", +"PENDING" +], +"enumDescriptions": [ +"Deployment's state cannot be determined", +"Deployment is not installed", +"Deployment is installed", +"Deployment was attempted to be installed, but has errors", +"Deployment is installing or terminating" +], +"type": "string" +}, +"importer": { +"description": "Deployment state of the importer pod", +"enum": [ +"DEPLOYMENT_STATE_UNSPECIFIED", +"NOT_INSTALLED", +"INSTALLED", +"ERROR", +"PENDING" +], +"enumDescriptions": [ +"Deployment's state cannot be determined", +"Deployment is not installed", +"Deployment is installed", +"Deployment was attempted to be installed, but has errors", +"Deployment is installing or terminating" +], +"type": "string" +}, +"monitor": { +"description": "Deployment state of the monitor pod", +"enum": [ +"DEPLOYMENT_STATE_UNSPECIFIED", +"NOT_INSTALLED", +"INSTALLED", +"ERROR", +"PENDING" +], +"enumDescriptions": [ +"Deployment's state cannot be determined", +"Deployment is not installed", +"Deployment is installed", +"Deployment was attempted to be installed, but has errors", +"Deployment is installing or terminating" +], +"type": "string" +}, +"otelCollector": { +"description": "Deployment state of otel-collector", +"enum": [ +"DEPLOYMENT_STATE_UNSPECIFIED", +"NOT_INSTALLED", +"INSTALLED", +"ERROR", +"PENDING" +], +"enumDescriptions": [ +"Deployment's state cannot be determined", +"Deployment is not installed", +"Deployment is installed", +"Deployment was attempted to be installed, but has errors", +"Deployment is installing or terminating" +], +"type": "string" +}, +"reconcilerManager": { +"description": "Deployment state of reconciler-manager pod", +"enum": [ +"DEPLOYMENT_STATE_UNSPECIFIED", +"NOT_INSTALLED", +"INSTALLED", +"ERROR", +"PENDING" +], +"enumDescriptions": [ +"Deployment's state cannot be determined", +"Deployment is not installed", +"Deployment is installed", +"Deployment was attempted to be installed, but has errors", +"Deployment is installing or terminating" +], +"type": "string" +}, +"resourceGroupControllerManager": { +"description": "Deployment state of resource-group-controller-manager", +"enum": [ +"DEPLOYMENT_STATE_UNSPECIFIED", +"NOT_INSTALLED", +"INSTALLED", +"ERROR", +"PENDING" +], +"enumDescriptions": [ +"Deployment's state cannot be determined", +"Deployment is not installed", +"Deployment is installed", +"Deployment was attempted to be installed, but has errors", +"Deployment is installing or terminating" +], +"type": "string" +}, +"rootReconciler": { +"description": "Deployment state of root-reconciler", +"enum": [ +"DEPLOYMENT_STATE_UNSPECIFIED", +"NOT_INSTALLED", +"INSTALLED", +"ERROR", +"PENDING" +], +"enumDescriptions": [ +"Deployment's state cannot be determined", +"Deployment is not installed", +"Deployment is installed", +"Deployment was attempted to be installed, but has errors", +"Deployment is installing or terminating" +], +"type": "string" +}, +"syncer": { +"description": "Deployment state of the syncer pod", +"enum": [ +"DEPLOYMENT_STATE_UNSPECIFIED", +"NOT_INSTALLED", +"INSTALLED", +"ERROR", +"PENDING" +], +"enumDescriptions": [ +"Deployment's state cannot be determined", +"Deployment is not installed", +"Deployment is installed", +"Deployment was attempted to be installed, but has errors", +"Deployment is installing or terminating" +], +"type": "string" +} +}, +"type": "object" +}, +"ConfigManagementConfigSyncError": { +"description": "Errors pertaining to the installation of Config Sync", +"id": "ConfigManagementConfigSyncError", +"properties": { +"errorMessage": { +"description": "A string representing the user facing error message", +"type": "string" +} +}, +"type": "object" +}, +"ConfigManagementConfigSyncState": { +"description": "State information for ConfigSync", +"id": "ConfigManagementConfigSyncState", +"properties": { +"clusterLevelStopSyncingState": { +"description": "Output only. Whether syncing resources to the cluster is stopped at the cluster level.", +"enum": [ +"STOP_SYNCING_STATE_UNSPECIFIED", +"NOT_STOPPED", +"PENDING", +"STOPPED" +], +"enumDescriptions": [ +"State cannot be determined", +"Syncing resources to the cluster is not stopped at the cluster level.", +"Some reconcilers stop syncing resources to the cluster, while others are still syncing.", +"Syncing resources to the cluster is stopped at the cluster level." +], +"readOnly": true, +"type": "string" +}, +"crCount": { +"description": "Output only. The number of RootSync and RepoSync CRs in the cluster.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"deploymentState": { +"$ref": "ConfigManagementConfigSyncDeploymentState", +"description": "Output only. Information about the deployment of ConfigSync, including the version of the various Pods deployed", +"readOnly": true +}, +"errors": { +"description": "Output only. Errors pertaining to the installation of Config Sync.", +"items": { +"$ref": "ConfigManagementConfigSyncError" +}, +"readOnly": true, +"type": "array" +}, +"reposyncCrd": { +"description": "Output only. The state of the Reposync CRD", +"enum": [ +"CRD_STATE_UNSPECIFIED", +"NOT_INSTALLED", +"INSTALLED", +"TERMINATING", +"INSTALLING" +], +"enumDescriptions": [ +"CRD's state cannot be determined", +"CRD is not installed", +"CRD is installed", +"CRD is terminating (i.e., it has been deleted and is cleaning up)", +"CRD is installing" +], +"readOnly": true, +"type": "string" +}, +"rootsyncCrd": { +"description": "Output only. The state of the RootSync CRD", +"enum": [ +"CRD_STATE_UNSPECIFIED", +"NOT_INSTALLED", +"INSTALLED", +"TERMINATING", +"INSTALLING" +], +"enumDescriptions": [ +"CRD's state cannot be determined", +"CRD is not installed", +"CRD is installed", +"CRD is terminating (i.e., it has been deleted and is cleaning up)", +"CRD is installing" +], +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. The state of CS This field summarizes the other fields in this message.", +"enum": [ +"STATE_UNSPECIFIED", +"CONFIG_SYNC_NOT_INSTALLED", +"CONFIG_SYNC_INSTALLED", +"CONFIG_SYNC_ERROR", +"CONFIG_SYNC_PENDING" +], +"enumDescriptions": [ +"CS's state cannot be determined.", +"CS is not installed.", +"The expected CS version is installed successfully.", +"CS encounters errors.", +"CS is installing or terminating." +], +"readOnly": true, +"type": "string" +}, +"syncState": { +"$ref": "ConfigManagementSyncState", +"description": "Output only. The state of ConfigSync's process to sync configs to a cluster", +"readOnly": true +}, +"version": { +"$ref": "ConfigManagementConfigSyncVersion", +"description": "Output only. The version of ConfigSync deployed", +"readOnly": true +} +}, +"type": "object" +}, +"ConfigManagementConfigSyncVersion": { +"description": "Specific versioning information pertaining to ConfigSync's Pods", +"id": "ConfigManagementConfigSyncVersion", +"properties": { +"admissionWebhook": { +"description": "Version of the deployed admission-webhook pod", +"type": "string" +}, +"gitSync": { +"description": "Version of the deployed git-sync pod", +"type": "string" +}, +"importer": { +"description": "Version of the deployed importer pod", +"type": "string" +}, +"monitor": { +"description": "Version of the deployed monitor pod", +"type": "string" +}, +"otelCollector": { +"description": "Version of the deployed otel-collector pod", +"type": "string" +}, +"reconcilerManager": { +"description": "Version of the deployed reconciler-manager pod", +"type": "string" +}, +"resourceGroupControllerManager": { +"description": "Version of the deployed resource-group-controller-manager pod", +"type": "string" +}, +"rootReconciler": { +"description": "Version of the deployed reconciler container in root-reconciler pod", +"type": "string" +}, +"syncer": { +"description": "Version of the deployed syncer pod", +"type": "string" +} +}, +"type": "object" +}, +"ConfigManagementErrorResource": { +"description": "Model for a config file in the git repo with an associated Sync error", +"id": "ConfigManagementErrorResource", +"properties": { +"resourceGvk": { +"$ref": "ConfigManagementGroupVersionKind", +"description": "Group/version/kind of the resource that is causing an error" +}, +"resourceName": { +"description": "Metadata name of the resource that is causing an error", +"type": "string" +}, +"resourceNamespace": { +"description": "Namespace of the resource that is causing an error", +"type": "string" +}, +"sourcePath": { +"description": "Path in the git repo of the erroneous config", +"type": "string" +} +}, +"type": "object" +}, +"ConfigManagementGatekeeperDeploymentState": { +"description": "State of Policy Controller installation.", +"id": "ConfigManagementGatekeeperDeploymentState", +"properties": { +"gatekeeperAudit": { +"description": "Status of gatekeeper-audit deployment.", +"enum": [ +"DEPLOYMENT_STATE_UNSPECIFIED", +"NOT_INSTALLED", +"INSTALLED", +"ERROR", +"PENDING" +], +"enumDescriptions": [ +"Deployment's state cannot be determined", +"Deployment is not installed", +"Deployment is installed", +"Deployment was attempted to be installed, but has errors", +"Deployment is installing or terminating" +], +"type": "string" +}, +"gatekeeperControllerManagerState": { +"description": "Status of gatekeeper-controller-manager pod.", +"enum": [ +"DEPLOYMENT_STATE_UNSPECIFIED", +"NOT_INSTALLED", +"INSTALLED", +"ERROR", +"PENDING" +], +"enumDescriptions": [ +"Deployment's state cannot be determined", +"Deployment is not installed", +"Deployment is installed", +"Deployment was attempted to be installed, but has errors", +"Deployment is installing or terminating" +], +"type": "string" +}, +"gatekeeperMutation": { +"description": "Status of the pod serving the mutation webhook.", +"enum": [ +"DEPLOYMENT_STATE_UNSPECIFIED", +"NOT_INSTALLED", +"INSTALLED", +"ERROR", +"PENDING" +], +"enumDescriptions": [ +"Deployment's state cannot be determined", +"Deployment is not installed", +"Deployment is installed", +"Deployment was attempted to be installed, but has errors", +"Deployment is installing or terminating" +], +"type": "string" +} +}, +"type": "object" +}, +"ConfigManagementGitConfig": { +"description": "Git repo configuration for a single cluster.", +"id": "ConfigManagementGitConfig", +"properties": { +"gcpServiceAccountEmail": { +"description": "Optional. The Google Cloud Service Account Email used for auth when secret_type is gcpServiceAccount.", +"type": "string" +}, +"httpsProxy": { +"description": "Optional. URL for the HTTPS proxy to be used when communicating with the Git repo.", +"type": "string" +}, +"policyDir": { +"description": "Optional. The path within the Git repository that represents the top level of the repo to sync. Default: the root directory of the repository.", +"type": "string" +}, +"secretType": { +"description": "Required. Type of secret configured for access to the Git repo. Must be one of ssh, cookiefile, gcenode, token, gcpserviceaccount or none. The validation of this is case-sensitive. Required.", +"type": "string" +}, +"syncBranch": { +"description": "Optional. The branch of the repository to sync from. Default: master.", +"type": "string" +}, +"syncRepo": { +"description": "Optional. The URL of the Git repository to use as the source of truth.", +"type": "string" +}, +"syncRev": { +"description": "Optional. Git revision (tag or hash) to check out. Default HEAD.", +"type": "string" +}, +"syncWaitSecs": { +"description": "Optional. Period in seconds between consecutive syncs. Default: 15.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"ConfigManagementGroupVersionKind": { +"description": "A Kubernetes object's GVK", +"id": "ConfigManagementGroupVersionKind", +"properties": { +"group": { +"description": "Kubernetes Group", +"type": "string" +}, +"kind": { +"description": "Kubernetes Kind", +"type": "string" +}, +"version": { +"description": "Kubernetes Version", +"type": "string" +} +}, +"type": "object" +}, +"ConfigManagementHierarchyControllerConfig": { +"description": "Configuration for Hierarchy Controller", +"id": "ConfigManagementHierarchyControllerConfig", +"properties": { +"enableHierarchicalResourceQuota": { +"description": "Whether hierarchical resource quota is enabled in this cluster.", +"type": "boolean" +}, +"enablePodTreeLabels": { +"description": "Whether pod tree labels are enabled in this cluster.", +"type": "boolean" +}, +"enabled": { +"description": "Whether Hierarchy Controller is enabled in this cluster.", +"type": "boolean" +} +}, +"type": "object" +}, +"ConfigManagementHierarchyControllerDeploymentState": { +"description": "Deployment state for Hierarchy Controller", +"id": "ConfigManagementHierarchyControllerDeploymentState", +"properties": { +"extension": { +"description": "The deployment state for Hierarchy Controller extension (e.g. v0.7.0-hc.1)", +"enum": [ +"DEPLOYMENT_STATE_UNSPECIFIED", +"NOT_INSTALLED", +"INSTALLED", +"ERROR", +"PENDING" +], +"enumDescriptions": [ +"Deployment's state cannot be determined", +"Deployment is not installed", +"Deployment is installed", +"Deployment was attempted to be installed, but has errors", +"Deployment is installing or terminating" +], +"type": "string" +}, +"hnc": { +"description": "The deployment state for open source HNC (e.g. v0.7.0-hc.0)", +"enum": [ +"DEPLOYMENT_STATE_UNSPECIFIED", +"NOT_INSTALLED", +"INSTALLED", +"ERROR", +"PENDING" +], +"enumDescriptions": [ +"Deployment's state cannot be determined", +"Deployment is not installed", +"Deployment is installed", +"Deployment was attempted to be installed, but has errors", +"Deployment is installing or terminating" +], +"type": "string" +} +}, +"type": "object" +}, +"ConfigManagementHierarchyControllerState": { +"description": "State for Hierarchy Controller", +"id": "ConfigManagementHierarchyControllerState", +"properties": { +"state": { +"$ref": "ConfigManagementHierarchyControllerDeploymentState", +"description": "The deployment state for Hierarchy Controller" +}, +"version": { +"$ref": "ConfigManagementHierarchyControllerVersion", +"description": "The version for Hierarchy Controller" +} +}, +"type": "object" +}, +"ConfigManagementHierarchyControllerVersion": { +"description": "Version for Hierarchy Controller", +"id": "ConfigManagementHierarchyControllerVersion", +"properties": { +"extension": { +"description": "Version for Hierarchy Controller extension", +"type": "string" +}, +"hnc": { +"description": "Version for open source HNC", +"type": "string" +} +}, +"type": "object" +}, +"ConfigManagementInstallError": { +"description": "Errors pertaining to the installation of ACM", +"id": "ConfigManagementInstallError", +"properties": { +"errorMessage": { +"description": "A string representing the user facing error message", +"type": "string" +} +}, +"type": "object" +}, +"ConfigManagementMembershipSpec": { +"description": "**Anthos Config Management**: Configuration for a single cluster. Intended to parallel the ConfigManagement CR.", +"id": "ConfigManagementMembershipSpec", +"properties": { +"binauthz": { +"$ref": "ConfigManagementBinauthzConfig", +"deprecated": true, +"description": "Optional. Binauthz conifguration for the cluster. Deprecated: This field will be ignored and should not be set." +}, +"cluster": { +"description": "Optional. The user-specified cluster name used by Config Sync cluster-name-selector annotation or ClusterSelector, for applying configs to only a subset of clusters. Omit this field if the cluster's fleet membership name is used by Config Sync cluster-name-selector annotation or ClusterSelector. Set this field if a name different from the cluster's fleet membership name is used by Config Sync cluster-name-selector annotation or ClusterSelector.", +"type": "string" +}, +"configSync": { +"$ref": "ConfigManagementConfigSync", +"description": "Optional. Config Sync configuration for the cluster." +}, +"hierarchyController": { +"$ref": "ConfigManagementHierarchyControllerConfig", +"deprecated": true, +"description": "Optional. Hierarchy Controller configuration for the cluster. Deprecated: Configuring Hierarchy Controller through the configmanagement feature is no longer recommended. Use https://github.com/kubernetes-sigs/hierarchical-namespaces instead." +}, +"management": { +"description": "Optional. Enables automatic Feature management.", +"enum": [ +"MANAGEMENT_UNSPECIFIED", +"MANAGEMENT_AUTOMATIC", +"MANAGEMENT_MANUAL" +], +"enumDescriptions": [ +"Unspecified", +"Google will manage the Feature for the cluster.", +"User will manually manage the Feature for the cluster." +], +"type": "string" +}, +"policyController": { +"$ref": "ConfigManagementPolicyController", +"deprecated": true, +"description": "Optional. Policy Controller configuration for the cluster. Deprecated: Configuring Policy Controller through the configmanagement feature is no longer recommended. Use the policycontroller feature instead." +}, +"version": { +"description": "Optional. Version of ACM installed.", +"type": "string" +} +}, +"type": "object" +}, +"ConfigManagementMembershipState": { +"description": "**Anthos Config Management**: State for a single cluster.", +"id": "ConfigManagementMembershipState", +"properties": { +"binauthzState": { +"$ref": "ConfigManagementBinauthzState", +"description": "Output only. Binauthz status", +"readOnly": true +}, +"clusterName": { +"description": "Output only. This field is set to the `cluster_name` field of the Membership Spec if it is not empty. Otherwise, it is set to the cluster's fleet membership name.", +"readOnly": true, +"type": "string" +}, +"configSyncState": { +"$ref": "ConfigManagementConfigSyncState", +"description": "Output only. Current sync status", +"readOnly": true +}, +"hierarchyControllerState": { +"$ref": "ConfigManagementHierarchyControllerState", +"description": "Output only. Hierarchy Controller status", +"readOnly": true +}, +"membershipSpec": { +"$ref": "ConfigManagementMembershipSpec", +"description": "Output only. Membership configuration in the cluster. This represents the actual state in the cluster, while the MembershipSpec in the FeatureSpec represents the intended state", +"readOnly": true +}, +"operatorState": { +"$ref": "ConfigManagementOperatorState", +"description": "Output only. Current install status of ACM's Operator", +"readOnly": true +}, +"policyControllerState": { +"$ref": "ConfigManagementPolicyControllerState", +"description": "Output only. PolicyController status", +"readOnly": true +} +}, +"type": "object" +}, +"ConfigManagementOciConfig": { +"description": "OCI repo configuration for a single cluster", +"id": "ConfigManagementOciConfig", +"properties": { +"gcpServiceAccountEmail": { +"description": "Optional. The Google Cloud Service Account Email used for auth when secret_type is gcpServiceAccount.", +"type": "string" +}, +"policyDir": { +"description": "Optional. The absolute path of the directory that contains the local resources. Default: the root directory of the image.", +"type": "string" +}, +"secretType": { +"description": "Optional. Type of secret configured for access to the Git repo.", +"type": "string" +}, +"syncRepo": { +"description": "Optional. The OCI image repository URL for the package to sync from. e.g. `LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME`.", +"type": "string" +}, +"syncWaitSecs": { +"description": "Optional. Period in seconds between consecutive syncs. Default: 15.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"ConfigManagementOperatorState": { +"description": "State information for an ACM's Operator", +"id": "ConfigManagementOperatorState", +"properties": { +"deploymentState": { +"description": "The state of the Operator's deployment", +"enum": [ +"DEPLOYMENT_STATE_UNSPECIFIED", +"NOT_INSTALLED", +"INSTALLED", +"ERROR", +"PENDING" +], +"enumDescriptions": [ +"Deployment's state cannot be determined", +"Deployment is not installed", +"Deployment is installed", +"Deployment was attempted to be installed, but has errors", +"Deployment is installing or terminating" +], +"type": "string" +}, +"errors": { +"description": "Install errors.", +"items": { +"$ref": "ConfigManagementInstallError" +}, +"type": "array" +}, +"version": { +"description": "The semenatic version number of the operator", +"type": "string" +} +}, +"type": "object" +}, +"ConfigManagementPolicyController": { +"description": "Configuration for Policy Controller", +"id": "ConfigManagementPolicyController", +"properties": { +"auditIntervalSeconds": { +"description": "Sets the interval for Policy Controller Audit Scans (in seconds). When set to 0, this disables audit functionality altogether.", +"format": "int64", +"type": "string" +}, +"enabled": { +"description": "Enables the installation of Policy Controller. If false, the rest of PolicyController fields take no effect.", +"type": "boolean" +}, +"exemptableNamespaces": { +"description": "The set of namespaces that are excluded from Policy Controller checks. Namespaces do not need to currently exist on the cluster.", +"items": { +"type": "string" +}, +"type": "array" +}, +"logDeniesEnabled": { +"description": "Logs all denies and dry run failures.", +"type": "boolean" +}, +"monitoring": { +"$ref": "ConfigManagementPolicyControllerMonitoring", +"description": "Monitoring specifies the configuration of monitoring." +}, +"mutationEnabled": { +"description": "Enable or disable mutation in policy controller. If true, mutation CRDs, webhook and controller deployment will be deployed to the cluster.", +"type": "boolean" +}, +"referentialRulesEnabled": { +"description": "Enables the ability to use Constraint Templates that reference to objects other than the object currently being evaluated.", +"type": "boolean" +}, +"templateLibraryInstalled": { +"description": "Installs the default template library along with Policy Controller.", +"type": "boolean" +}, +"updateTime": { +"description": "Output only. Last time this membership spec was updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ConfigManagementPolicyControllerMigration": { +"description": "State for the migration of PolicyController from ACM -> PoCo Hub.", +"id": "ConfigManagementPolicyControllerMigration", +"properties": { +"copyTime": { +"description": "Last time this membership spec was copied to PoCo feature.", +"format": "google-datetime", +"type": "string" +}, +"stage": { +"description": "Stage of the migration.", +"enum": [ +"STAGE_UNSPECIFIED", +"ACM_MANAGED", +"POCO_MANAGED" +], +"enumDescriptions": [ +"Unknown state of migration.", +"ACM Hub/Operator manages policycontroller. No migration yet completed.", +"All migrations steps complete; Poco Hub now manages policycontroller." +], +"type": "string" +} +}, +"type": "object" +}, +"ConfigManagementPolicyControllerMonitoring": { +"description": "PolicyControllerMonitoring specifies the backends Policy Controller should export metrics to. For example, to specify metrics should be exported to Cloud Monitoring and Prometheus, specify backends: [\"cloudmonitoring\", \"prometheus\"]", +"id": "ConfigManagementPolicyControllerMonitoring", +"properties": { +"backends": { +"description": "Specifies the list of backends Policy Controller will export to. An empty list would effectively disable metrics export.", +"items": { +"enum": [ +"MONITORING_BACKEND_UNSPECIFIED", +"PROMETHEUS", +"CLOUD_MONITORING" +], +"enumDescriptions": [ +"Backend cannot be determined", +"Prometheus backend for monitoring", +"Stackdriver/Cloud Monitoring backend for monitoring" +], +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ConfigManagementPolicyControllerState": { +"description": "State for PolicyControllerState.", +"id": "ConfigManagementPolicyControllerState", +"properties": { +"deploymentState": { +"$ref": "ConfigManagementGatekeeperDeploymentState", +"description": "The state about the policy controller installation." +}, +"migration": { +"$ref": "ConfigManagementPolicyControllerMigration", +"description": "Record state of ACM -> PoCo Hub migration for this feature." +}, +"version": { +"$ref": "ConfigManagementPolicyControllerVersion", +"description": "The version of Gatekeeper Policy Controller deployed." +} +}, +"type": "object" +}, +"ConfigManagementPolicyControllerVersion": { +"description": "The build version of Gatekeeper Policy Controller is using.", +"id": "ConfigManagementPolicyControllerVersion", +"properties": { +"version": { +"description": "The gatekeeper image tag that is composed of ACM version, git tag, build number.", +"type": "string" +} +}, +"type": "object" +}, +"ConfigManagementSyncError": { +"description": "An ACM created error representing a problem syncing configurations", +"id": "ConfigManagementSyncError", +"properties": { +"code": { +"description": "An ACM defined error code", +"type": "string" +}, +"errorMessage": { +"description": "A description of the error", +"type": "string" +}, +"errorResources": { +"description": "A list of config(s) associated with the error, if any", +"items": { +"$ref": "ConfigManagementErrorResource" +}, +"type": "array" +} +}, +"type": "object" +}, +"ConfigManagementSyncState": { +"description": "State indicating an ACM's progress syncing configurations to a cluster", +"id": "ConfigManagementSyncState", +"properties": { +"code": { +"description": "Sync status code", +"enum": [ +"SYNC_CODE_UNSPECIFIED", +"SYNCED", +"PENDING", +"ERROR", +"NOT_CONFIGURED", +"NOT_INSTALLED", +"UNAUTHORIZED", +"UNREACHABLE" +], +"enumDescriptions": [ +"Config Sync cannot determine a sync code", +"Config Sync successfully synced the git Repo with the cluster", +"Config Sync is in the progress of syncing a new change", +"Indicates an error configuring Config Sync, and user action is required", +"Config Sync has been installed but not configured", +"Config Sync has not been installed", +"Error authorizing with the cluster", +"Cluster could not be reached" +], +"type": "string" +}, +"errors": { +"description": "A list of errors resulting from problematic configs. This list will be truncated after 100 errors, although it is unlikely for that many errors to simultaneously exist.", +"items": { +"$ref": "ConfigManagementSyncError" +}, +"type": "array" +}, +"importToken": { +"description": "Token indicating the state of the importer.", +"type": "string" +}, +"lastSync": { +"deprecated": true, +"description": "Deprecated: use last_sync_time instead. Timestamp of when ACM last successfully synced the repo The time format is specified in https://golang.org/pkg/time/#Time.String", +"type": "string" +}, +"lastSyncTime": { +"description": "Timestamp type of when ACM last successfully synced the repo", +"format": "google-datetime", +"type": "string" +}, +"sourceToken": { +"description": "Token indicating the state of the repo.", +"type": "string" +}, +"syncToken": { +"description": "Token indicating the state of the syncer.", +"type": "string" +} +}, +"type": "object" +}, +"ConnectAgentResource": { +"description": "ConnectAgentResource represents a Kubernetes resource manifest for Connect Agent deployment.", +"id": "ConnectAgentResource", +"properties": { +"manifest": { +"description": "YAML manifest of the resource.", +"type": "string" +}, +"type": { +"$ref": "TypeMeta", +"description": "Kubernetes type of the resource." +} +}, +"type": "object" +}, +"DataplaneV2FeatureSpec": { +"description": "**Dataplane V2**: Spec", +"id": "DataplaneV2FeatureSpec", +"properties": { +"enableEncryption": { +"description": "Enable dataplane-v2 based encryption for multiple clusters.", +"type": "boolean" +} +}, +"type": "object" +}, +"DefaultClusterConfig": { +"description": "DefaultClusterConfig describes the default cluster configurations to be applied to all clusters born-in-fleet.", +"id": "DefaultClusterConfig", +"properties": { +"binaryAuthorizationConfig": { +"$ref": "BinaryAuthorizationConfig", +"description": "Optional. Enable/Disable binary authorization features for the cluster." +}, +"compliancePostureConfig": { +"$ref": "CompliancePostureConfig", +"description": "Optional. Enable/Disable Compliance Posture features for the cluster. Note that on UpdateFleet, only full replacement of this field is allowed. Users are not allowed for partial updates through field mask." +}, +"securityPostureConfig": { +"$ref": "SecurityPostureConfig", +"description": "Enable/Disable Security Posture features for the cluster." +} +}, +"type": "object" +}, +"EdgeCluster": { +"description": "EdgeCluster contains information specific to Google Edge Clusters.", +"id": "EdgeCluster", +"properties": { +"resourceLink": { +"description": "Immutable. Self-link of the Google Cloud resource for the Edge Cluster. For example: //edgecontainer.googleapis.com/projects/my-project/locations/us-west1-a/clusters/my-cluster", +"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" +}, +"Feature": { +"description": "Feature represents the settings and status of any Fleet Feature.", +"id": "Feature", +"properties": { +"createTime": { +"description": "Output only. When the Feature resource was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"deleteTime": { +"description": "Output only. When the Feature resource was deleted.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"fleetDefaultMemberConfig": { +"$ref": "CommonFleetDefaultMemberConfigSpec", +"description": "Optional. Feature configuration applicable to all memberships of the fleet." +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Labels for this Feature.", +"type": "object" +}, +"membershipSpecs": { +"additionalProperties": { +"$ref": "MembershipFeatureSpec" +}, +"description": "Optional. Membership-specific configuration for this Feature. If this Feature does not support any per-Membership configuration, this field may be unused. The keys indicate which Membership the configuration is for, in the form: `projects/{p}/locations/{l}/memberships/{m}` Where {p} is the project, {l} is a valid location and {m} is a valid Membership in this project at that location. {p} WILL match the Feature's project. {p} will always be returned as the project number, but the project ID is also accepted during input. If the same Membership is specified in the map twice (using the project ID form, and the project number form), exactly ONE of the entries will be saved, with no guarantees as to which. For this reason, it is recommended the same format be used for all entries when mutating a Feature.", +"type": "object" +}, +"membershipStates": { +"additionalProperties": { +"$ref": "MembershipFeatureState" +}, +"description": "Output only. Membership-specific Feature status. If this Feature does report any per-Membership status, this field may be unused. The keys indicate which Membership the state is for, in the form: `projects/{p}/locations/{l}/memberships/{m}` Where {p} is the project number, {l} is a valid location and {m} is a valid Membership in this project at that location. {p} MUST match the Feature's project number.", +"readOnly": true, +"type": "object" +}, +"name": { +"description": "Output only. The full, unique name of this Feature resource in the format `projects/*/locations/*/features/*`.", +"readOnly": true, +"type": "string" +}, +"resourceState": { +"$ref": "FeatureResourceState", +"description": "Output only. State of the Feature resource itself.", +"readOnly": true +}, +"scopeSpecs": { +"additionalProperties": { +"$ref": "ScopeFeatureSpec" +}, +"description": "Optional. Scope-specific configuration for this Feature. If this Feature does not support any per-Scope configuration, this field may be unused. The keys indicate which Scope the configuration is for, in the form: `projects/{p}/locations/global/scopes/{s}` Where {p} is the project, {s} is a valid Scope in this project. {p} WILL match the Feature's project. {p} will always be returned as the project number, but the project ID is also accepted during input. If the same Scope is specified in the map twice (using the project ID form, and the project number form), exactly ONE of the entries will be saved, with no guarantees as to which. For this reason, it is recommended the same format be used for all entries when mutating a Feature.", +"type": "object" +}, +"scopeStates": { +"additionalProperties": { +"$ref": "ScopeFeatureState" +}, +"description": "Output only. Scope-specific Feature status. If this Feature does report any per-Scope status, this field may be unused. The keys indicate which Scope the state is for, in the form: `projects/{p}/locations/global/scopes/{s}` Where {p} is the project, {s} is a valid Scope in this project. {p} WILL match the Feature's project.", +"readOnly": true, +"type": "object" +}, +"spec": { +"$ref": "CommonFeatureSpec", +"description": "Optional. Fleet-wide Feature configuration. If this Feature does not support any Fleet-wide configuration, this field may be unused." +}, +"state": { +"$ref": "CommonFeatureState", +"description": "Output only. The Fleet-wide Feature state.", +"readOnly": true +}, +"unreachable": { +"description": "Output only. List of locations that could not be reached while fetching this feature.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"updateTime": { +"description": "Output only. When the Feature resource was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"FeatureResourceState": { +"description": "FeatureResourceState describes the state of a Feature *resource* in the GkeHub API. See `FeatureState` for the \"running state\" of the Feature in the Fleet and across Memberships.", +"id": "FeatureResourceState", +"properties": { +"state": { +"description": "The current state of the Feature resource in the Hub API.", +"enum": [ +"STATE_UNSPECIFIED", +"ENABLING", +"ACTIVE", +"DISABLING", +"UPDATING", +"SERVICE_UPDATING" +], +"enumDescriptions": [ +"State is unknown or not set.", +"The Feature is being enabled, and the Feature resource is being created. Once complete, the corresponding Feature will be enabled in this Fleet.", +"The Feature is enabled in this Fleet, and the Feature resource is fully available.", +"The Feature is being disabled in this Fleet, and the Feature resource is being deleted.", +"The Feature resource is being updated.", +"The Feature resource is being updated by the Hub Service." +], +"type": "string" +} +}, +"type": "object" +}, +"FeatureState": { +"description": "FeatureState describes the high-level state of a Feature. It may be used to describe a Feature's state at the environ-level, or per-membershop, depending on the context.", +"id": "FeatureState", +"properties": { +"code": { +"description": "The high-level, machine-readable status of this Feature.", +"enum": [ +"CODE_UNSPECIFIED", +"OK", +"WARNING", +"ERROR" +], +"enumDescriptions": [ +"Unknown or not set.", +"The Feature is operating normally.", +"The Feature has encountered an issue, and is operating in a degraded state. The Feature may need intervention to return to normal operation. See the description and any associated Feature-specific details for more information.", +"The Feature is not operating or is in a severely degraded state. The Feature may need intervention to return to normal operation. See the description and any associated Feature-specific details for more information." +], +"type": "string" +}, +"description": { +"description": "A human-readable description of the current status.", +"type": "string" +}, +"updateTime": { +"description": "The time this status and any related Feature-specific details were updated.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"Fleet": { +"description": "Fleet contains the Fleet-wide metadata and configuration.", +"id": "Fleet", +"properties": { +"createTime": { +"description": "Output only. When the Fleet was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"defaultClusterConfig": { +"$ref": "DefaultClusterConfig", +"description": "Optional. The default cluster configurations to apply across the fleet." +}, +"deleteTime": { +"description": "Output only. When the Fleet was deleted.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "Optional. A user-assigned display name of the Fleet. When present, it must be between 4 to 30 characters. Allowed characters are: lowercase and uppercase letters, numbers, hyphen, single-quote, double-quote, space, and exclamation point. Example: `Production Fleet`", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Labels for this Fleet.", +"type": "object" +}, +"name": { +"description": "Output only. The full, unique resource name of this fleet in the format of `projects/{project}/locations/{location}/fleets/{fleet}`. Each Google Cloud project can have at most one fleet resource, named \"default\".", +"readOnly": true, +"type": "string" +}, +"state": { +"$ref": "FleetLifecycleState", +"description": "Output only. State of the namespace resource.", +"readOnly": true +}, +"uid": { +"description": "Output only. Google-generated UUID for this resource. This is unique across all Fleet resources. If a Fleet resource is deleted and another resource with the same name is created, it gets a different uid.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. When the Fleet was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"FleetLifecycleState": { +"description": "FleetLifecycleState describes the state of a Fleet resource.", +"id": "FleetLifecycleState", +"properties": { +"code": { +"description": "Output only. The current state of the Fleet resource.", +"enum": [ +"CODE_UNSPECIFIED", +"CREATING", +"READY", +"DELETING", +"UPDATING" +], +"enumDescriptions": [ +"The code is not set.", +"The fleet is being created.", +"The fleet active.", +"The fleet is being deleted.", +"The fleet is being updated." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"FleetObservabilityFeatureError": { +"description": "All error details of the fleet observability feature.", +"id": "FleetObservabilityFeatureError", +"properties": { +"code": { +"description": "The code of the error.", +"type": "string" +}, +"description": { +"description": "A human-readable description of the current status.", +"type": "string" +} +}, +"type": "object" +}, +"FleetObservabilityFeatureSpec": { +"description": "**Fleet Observability**: The Hub-wide input for the FleetObservability feature.", +"id": "FleetObservabilityFeatureSpec", +"properties": { +"loggingConfig": { +"$ref": "FleetObservabilityLoggingConfig", +"description": "Specified if fleet logging feature is enabled for the entire fleet. If UNSPECIFIED, fleet logging feature is disabled for the entire fleet." +} +}, +"type": "object" +}, +"FleetObservabilityFeatureState": { +"description": "**FleetObservability**: Hub-wide Feature for FleetObservability feature. state.", +"id": "FleetObservabilityFeatureState", +"properties": { +"logging": { +"$ref": "FleetObservabilityFleetObservabilityLoggingState", +"description": "The feature state of default logging." +}, +"monitoring": { +"$ref": "FleetObservabilityFleetObservabilityMonitoringState", +"description": "The feature state of fleet monitoring." +} +}, +"type": "object" +}, +"FleetObservabilityFleetObservabilityBaseFeatureState": { +"description": "Base state for fleet observability feature.", +"id": "FleetObservabilityFleetObservabilityBaseFeatureState", +"properties": { +"code": { +"description": "The high-level, machine-readable status of this Feature.", +"enum": [ +"CODE_UNSPECIFIED", +"OK", +"ERROR" +], +"enumDescriptions": [ +"Unknown or not set.", +"The Feature is operating normally.", +"The Feature is encountering errors in the reconciliation. The Feature may need intervention to return to normal operation. See the description and any associated Feature-specific details for more information." +], +"type": "string" +}, +"errors": { +"description": "Errors after reconciling the monitoring and logging feature if the code is not OK.", +"items": { +"$ref": "FleetObservabilityFeatureError" +}, +"type": "array" +} +}, +"type": "object" +}, +"FleetObservabilityFleetObservabilityLoggingState": { +"description": "Feature state for logging feature.", +"id": "FleetObservabilityFleetObservabilityLoggingState", +"properties": { +"defaultLog": { +"$ref": "FleetObservabilityFleetObservabilityBaseFeatureState", +"description": "The base feature state of fleet default log." +}, +"scopeLog": { +"$ref": "FleetObservabilityFleetObservabilityBaseFeatureState", +"description": "The base feature state of fleet scope log." +} +}, +"type": "object" +}, +"FleetObservabilityFleetObservabilityMonitoringState": { +"description": "Feature state for monitoring feature.", +"id": "FleetObservabilityFleetObservabilityMonitoringState", +"properties": { +"state": { +"$ref": "FleetObservabilityFleetObservabilityBaseFeatureState", +"description": "The base feature state of fleet monitoring feature." +} +}, +"type": "object" +}, +"FleetObservabilityLoggingConfig": { +"description": "LoggingConfig defines the configuration for different types of logs.", +"id": "FleetObservabilityLoggingConfig", +"properties": { +"defaultConfig": { +"$ref": "FleetObservabilityRoutingConfig", +"description": "Specified if applying the default routing config to logs not specified in other configs." +}, +"fleetScopeLogsConfig": { +"$ref": "FleetObservabilityRoutingConfig", +"description": "Specified if applying the routing config to all logs for all fleet scopes." +} +}, +"type": "object" +}, +"FleetObservabilityMembershipSpec": { +"description": "**FleetObservability**: The membership-specific input for FleetObservability feature.", +"id": "FleetObservabilityMembershipSpec", +"properties": {}, +"type": "object" +}, +"FleetObservabilityMembershipState": { +"description": "**FleetObservability**: Membership-specific Feature state for fleetobservability.", +"id": "FleetObservabilityMembershipState", +"properties": {}, +"type": "object" +}, +"FleetObservabilityRoutingConfig": { +"description": "RoutingConfig configures the behaviour of fleet logging feature.", +"id": "FleetObservabilityRoutingConfig", +"properties": { +"mode": { +"description": "mode configures the logs routing mode.", +"enum": [ +"MODE_UNSPECIFIED", +"COPY", +"MOVE" +], +"enumDescriptions": [ +"If UNSPECIFIED, fleet logging feature is disabled.", +"logs will be copied to the destination project.", +"logs will be moved to the destination project." +], +"type": "string" +} +}, +"type": "object" +}, +"GenerateConnectManifestResponse": { +"description": "GenerateConnectManifestResponse contains manifest information for installing/upgrading a Connect agent.", +"id": "GenerateConnectManifestResponse", +"properties": { +"manifest": { +"description": "The ordered list of Kubernetes resources that need to be applied to the cluster for GKE Connect agent installation/upgrade.", +"items": { +"$ref": "ConnectAgentResource" +}, +"type": "array" +} +}, +"type": "object" +}, +"GenerateMembershipRBACRoleBindingYAMLResponse": { +"description": "Response for GenerateRBACRoleBindingYAML.", +"id": "GenerateMembershipRBACRoleBindingYAMLResponse", +"properties": { +"roleBindingsYaml": { +"description": "a yaml text blob including the RBAC policies.", +"type": "string" +} +}, +"type": "object" +}, +"GkeCluster": { +"description": "GkeCluster contains information specific to GKE clusters.", +"id": "GkeCluster", +"properties": { +"clusterMissing": { +"description": "Output only. If cluster_missing is set then it denotes that the GKE cluster no longer exists in the GKE Control Plane.", +"readOnly": true, +"type": "boolean" +}, +"resourceLink": { +"description": "Immutable. Self-link of the Google Cloud resource for the GKE cluster. For example: //container.googleapis.com/projects/my-project/locations/us-west1-a/clusters/my-cluster Zonal clusters are also supported.", +"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" +}, +"IdentityServiceAuthMethod": { +"description": "Configuration of an auth method for a member/cluster. Only one authentication method (e.g., OIDC and LDAP) can be set per AuthMethod.", +"id": "IdentityServiceAuthMethod", +"properties": { +"azureadConfig": { +"$ref": "IdentityServiceAzureADConfig", +"description": "AzureAD specific Configuration." +}, +"googleConfig": { +"$ref": "IdentityServiceGoogleConfig", +"description": "GoogleConfig specific configuration." +}, +"ldapConfig": { +"$ref": "IdentityServiceLdapConfig", +"description": "LDAP specific configuration." +}, +"name": { +"description": "Identifier for auth config.", +"type": "string" +}, +"oidcConfig": { +"$ref": "IdentityServiceOidcConfig", +"description": "OIDC specific configuration." +}, +"proxy": { +"description": "Proxy server address to use for auth method.", +"type": "string" +}, +"samlConfig": { +"$ref": "IdentityServiceSamlConfig", +"description": "SAML specific configuration." +} +}, +"type": "object" +}, +"IdentityServiceAzureADConfig": { +"description": "Configuration for the AzureAD Auth flow.", +"id": "IdentityServiceAzureADConfig", +"properties": { +"clientId": { +"description": "ID for the registered client application that makes authentication requests to the Azure AD identity provider.", +"type": "string" +}, +"clientSecret": { +"description": "Input only. Unencrypted AzureAD client secret will be passed to the GKE Hub CLH.", +"type": "string" +}, +"encryptedClientSecret": { +"description": "Output only. Encrypted AzureAD client secret.", +"format": "byte", +"readOnly": true, +"type": "string" +}, +"groupFormat": { +"description": "Optional. Format of the AzureAD groups that the client wants for auth.", +"type": "string" +}, +"kubectlRedirectUri": { +"description": "The redirect URL that kubectl uses for authorization.", +"type": "string" +}, +"tenant": { +"description": "Kind of Azure AD account to be authenticated. Supported values are or for accounts belonging to a specific tenant.", +"type": "string" +}, +"userClaim": { +"description": "Optional. Claim in the AzureAD ID Token that holds the user details.", +"type": "string" +} +}, +"type": "object" +}, +"IdentityServiceDiagnosticInterface": { +"description": "Configuration options for the AIS diagnostic interface.", +"id": "IdentityServiceDiagnosticInterface", +"properties": { +"enabled": { +"description": "Determines whether to enable the diagnostic interface.", +"type": "boolean" +}, +"expirationTime": { +"description": "Determines the expiration time of the diagnostic interface enablement. When reached, requests to the interface would be automatically rejected.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"IdentityServiceGoogleConfig": { +"description": "Configuration for the Google Plugin Auth flow.", +"id": "IdentityServiceGoogleConfig", +"properties": { +"disable": { +"description": "Disable automatic configuration of Google Plugin on supported platforms.", +"type": "boolean" +} +}, +"type": "object" +}, +"IdentityServiceGroupConfig": { +"description": "Contains the properties for locating and authenticating groups in the directory.", +"id": "IdentityServiceGroupConfig", +"properties": { +"baseDn": { +"description": "Required. The location of the subtree in the LDAP directory to search for group entries.", +"type": "string" +}, +"filter": { +"description": "Optional. Optional filter to be used when searching for groups a user belongs to. This can be used to explicitly match only certain groups in order to reduce the amount of groups returned for each user. This defaults to \"(objectClass=Group)\".", +"type": "string" +}, +"idAttribute": { +"description": "Optional. The identifying name of each group a user belongs to. For example, if this is set to \"distinguishedName\" then RBACs and other group expectations should be written as full DNs. This defaults to \"distinguishedName\".", +"type": "string" +} +}, +"type": "object" +}, +"IdentityServiceIdentityServiceOptions": { +"description": "Holds non-protocol-related configuration options.", +"id": "IdentityServiceIdentityServiceOptions", +"properties": { +"diagnosticInterface": { +"$ref": "IdentityServiceDiagnosticInterface", +"description": "Configuration options for the AIS diagnostic interface." +}, +"sessionDuration": { +"description": "Determines the lifespan of STS tokens issued by Anthos Identity Service.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"IdentityServiceLdapConfig": { +"description": "Configuration for the LDAP Auth flow.", +"id": "IdentityServiceLdapConfig", +"properties": { +"group": { +"$ref": "IdentityServiceGroupConfig", +"description": "Optional. Contains the properties for locating and authenticating groups in the directory." +}, +"server": { +"$ref": "IdentityServiceServerConfig", +"description": "Required. Server settings for the external LDAP server." +}, +"serviceAccount": { +"$ref": "IdentityServiceServiceAccountConfig", +"description": "Required. Contains the credentials of the service account which is authorized to perform the LDAP search in the directory. The credentials can be supplied by the combination of the DN and password or the client certificate." +}, +"user": { +"$ref": "IdentityServiceUserConfig", +"description": "Required. Defines where users exist in the LDAP directory." +} +}, +"type": "object" +}, +"IdentityServiceMembershipSpec": { +"description": "**Anthos Identity Service**: Configuration for a single Membership.", +"id": "IdentityServiceMembershipSpec", +"properties": { +"authMethods": { +"description": "A member may support multiple auth methods.", +"items": { +"$ref": "IdentityServiceAuthMethod" +}, +"type": "array" +}, +"identityServiceOptions": { +"$ref": "IdentityServiceIdentityServiceOptions", +"description": "Optional. non-protocol-related configuration options." +} +}, +"type": "object" +}, +"IdentityServiceMembershipState": { +"description": "**Anthos Identity Service**: State for a single Membership.", +"id": "IdentityServiceMembershipState", +"properties": { +"failureReason": { +"description": "The reason of the failure.", +"type": "string" +}, +"installedVersion": { +"description": "Installed AIS version. This is the AIS version installed on this member. The values makes sense iff state is OK.", +"type": "string" +}, +"memberConfig": { +"$ref": "IdentityServiceMembershipSpec", +"description": "Last reconciled membership configuration" +}, +"state": { +"description": "Deployment state on this member", +"enum": [ +"DEPLOYMENT_STATE_UNSPECIFIED", +"OK", +"ERROR" +], +"enumDescriptions": [ +"Unspecified state", +"deployment succeeds", +"Failure with error." +], +"type": "string" +} +}, +"type": "object" +}, +"IdentityServiceOidcConfig": { +"description": "Configuration for OIDC Auth flow.", +"id": "IdentityServiceOidcConfig", +"properties": { +"certificateAuthorityData": { +"description": "PEM-encoded CA for OIDC provider.", +"type": "string" +}, +"clientId": { +"description": "ID for OIDC client application.", +"type": "string" +}, +"clientSecret": { +"description": "Input only. Unencrypted OIDC client secret will be passed to the GKE Hub CLH.", +"type": "string" +}, +"deployCloudConsoleProxy": { +"description": "Flag to denote if reverse proxy is used to connect to auth provider. This flag should be set to true when provider is not reachable by Google Cloud Console.", +"type": "boolean" +}, +"enableAccessToken": { +"description": "Enable access token.", +"type": "boolean" +}, +"encryptedClientSecret": { +"description": "Output only. Encrypted OIDC Client secret", +"format": "byte", +"readOnly": true, +"type": "string" +}, +"extraParams": { +"description": "Comma-separated list of key-value pairs.", +"type": "string" +}, +"groupPrefix": { +"description": "Prefix to prepend to group name.", +"type": "string" +}, +"groupsClaim": { +"description": "Claim in OIDC ID token that holds group information.", +"type": "string" +}, +"issuerUri": { +"description": "URI for the OIDC provider. This should point to the level below .well-known/openid-configuration.", +"type": "string" +}, +"kubectlRedirectUri": { +"description": "Registered redirect uri to redirect users going through OAuth flow using kubectl plugin.", +"type": "string" +}, +"scopes": { +"description": "Comma-separated list of identifiers.", +"type": "string" +}, +"userClaim": { +"description": "Claim in OIDC ID token that holds username.", +"type": "string" +}, +"userPrefix": { +"description": "Prefix to prepend to user name.", +"type": "string" +} +}, +"type": "object" +}, +"IdentityServiceSamlConfig": { +"description": "Configuration for the SAML Auth flow.", +"id": "IdentityServiceSamlConfig", +"properties": { +"attributeMapping": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. The mapping of additional user attributes like nickname, birthday and address etc.. `key` is the name of this additional attribute. `value` is a string presenting as CEL(common expression language, go/cel) used for getting the value from the resources. Take nickname as an example, in this case, `key` is \"attribute.nickname\" and `value` is \"assertion.nickname\".", +"type": "object" +}, +"groupPrefix": { +"description": "Optional. Prefix to prepend to group name.", +"type": "string" +}, +"groupsAttribute": { +"description": "Optional. The SAML attribute to read groups from. This value is expected to be a string and will be passed along as-is (with the option of being prefixed by the `group_prefix`).", +"type": "string" +}, +"identityProviderCertificates": { +"description": "Required. The list of IdP certificates to validate the SAML response against.", +"items": { +"type": "string" +}, +"type": "array" +}, +"identityProviderId": { +"description": "Required. The entity ID of the SAML IdP.", +"type": "string" +}, +"identityProviderSsoUri": { +"description": "Required. The URI where the SAML IdP exposes the SSO service.", +"type": "string" +}, +"userAttribute": { +"description": "Optional. The SAML attribute to read username from. If unspecified, the username will be read from the NameID element of the assertion in SAML response. This value is expected to be a string and will be passed along as-is (with the option of being prefixed by the `user_prefix`).", +"type": "string" +}, +"userPrefix": { +"description": "Optional. Prefix to prepend to user name.", +"type": "string" +} +}, +"type": "object" +}, +"IdentityServiceServerConfig": { +"description": "Server settings for the external LDAP server.", +"id": "IdentityServiceServerConfig", +"properties": { +"certificateAuthorityData": { +"description": "Optional. Contains a Base64 encoded, PEM formatted certificate authority certificate for the LDAP server. This must be provided for the \"ldaps\" and \"startTLS\" connections.", +"format": "byte", +"type": "string" +}, +"connectionType": { +"description": "Optional. Defines the connection type to communicate with the LDAP server. If `starttls` or `ldaps` is specified, the certificate_authority_data should not be empty.", +"type": "string" +}, +"host": { +"description": "Required. Defines the hostname or IP of the LDAP server. Port is optional and will default to 389, if unspecified. For example, \"ldap.server.example\" or \"10.10.10.10:389\".", +"type": "string" +} +}, +"type": "object" +}, +"IdentityServiceServiceAccountConfig": { +"description": "Contains the credentials of the service account which is authorized to perform the LDAP search in the directory. The credentials can be supplied by the combination of the DN and password or the client certificate.", +"id": "IdentityServiceServiceAccountConfig", +"properties": { +"simpleBindCredentials": { +"$ref": "IdentityServiceSimpleBindCredentials", +"description": "Credentials for basic auth." +} +}, +"type": "object" +}, +"IdentityServiceSimpleBindCredentials": { +"description": "The structure holds the LDAP simple binding credential.", +"id": "IdentityServiceSimpleBindCredentials", +"properties": { +"dn": { +"description": "Required. The distinguished name(DN) of the service account object/user.", +"type": "string" +}, +"encryptedPassword": { +"description": "Output only. The encrypted password of the service account object/user.", +"format": "byte", +"readOnly": true, +"type": "string" +}, +"password": { +"description": "Required. Input only. The password of the service account object/user.", +"type": "string" +} +}, +"type": "object" +}, +"IdentityServiceUserConfig": { +"description": "Defines where users exist in the LDAP directory.", +"id": "IdentityServiceUserConfig", +"properties": { +"baseDn": { +"description": "Required. The location of the subtree in the LDAP directory to search for user entries.", +"type": "string" +}, +"filter": { +"description": "Optional. Filter to apply when searching for the user. This can be used to further restrict the user accounts which are allowed to login. This defaults to \"(objectClass=User)\".", +"type": "string" +}, +"idAttribute": { +"description": "Optional. Determines which attribute to use as the user's identity after they are authenticated. This is distinct from the loginAttribute field to allow users to login with a username, but then have their actual identifier be an email address or full Distinguished Name (DN). For example, setting loginAttribute to \"sAMAccountName\" and identifierAttribute to \"userPrincipalName\" would allow a user to login as \"bsmith\", but actual RBAC policies for the user would be written as \"bsmith@example.com\". Using \"userPrincipalName\" is recommended since this will be unique for each user. This defaults to \"userPrincipalName\".", +"type": "string" +}, +"loginAttribute": { +"description": "Optional. The name of the attribute which matches against the input username. This is used to find the user in the LDAP database e.g. \"(=)\" and is combined with the optional filter field. This defaults to \"userPrincipalName\".", +"type": "string" +} +}, +"type": "object" +}, +"KubernetesMetadata": { +"description": "KubernetesMetadata provides informational metadata for Memberships representing Kubernetes clusters.", +"id": "KubernetesMetadata", +"properties": { +"kubernetesApiServerVersion": { +"description": "Output only. Kubernetes API server version string as reported by `/version`.", +"readOnly": true, +"type": "string" +}, +"memoryMb": { +"description": "Output only. The total memory capacity as reported by the sum of all Kubernetes nodes resources, defined in MB.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"nodeCount": { +"description": "Output only. Node count as reported by Kubernetes nodes resources.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"nodeProviderId": { +"description": "Output only. Node providerID as reported by the first node in the list of nodes on the Kubernetes endpoint. On Kubernetes platforms that support zero-node clusters (like GKE-on-GCP), the node_count will be zero and the node_provider_id will be empty.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The time at which these details were last updated. This update_time is different from the Membership-level update_time since EndpointDetails are updated internally for API consumers.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"vcpuCount": { +"description": "Output only. vCPU count as reported by Kubernetes nodes resources.", +"format": "int32", +"readOnly": true, +"type": "integer" +} +}, +"type": "object" +}, +"KubernetesResource": { +"description": "KubernetesResource contains the YAML manifests and configuration for Membership Kubernetes resources in the cluster. After CreateMembership or UpdateMembership, these resources should be re-applied in the cluster.", +"id": "KubernetesResource", +"properties": { +"connectResources": { +"description": "Output only. The Kubernetes resources for installing the GKE Connect agent This field is only populated in the Membership returned from a successful long-running operation from CreateMembership or UpdateMembership. It is not populated during normal GetMembership or ListMemberships requests. To get the resource manifest after the initial registration, the caller should make a UpdateMembership call with an empty field mask.", +"items": { +"$ref": "ResourceManifest" +}, +"readOnly": true, +"type": "array" +}, +"membershipCrManifest": { +"description": "Input only. The YAML representation of the Membership CR. This field is ignored for GKE clusters where Hub can read the CR directly. Callers should provide the CR that is currently present in the cluster during CreateMembership or UpdateMembership, or leave this field empty if none exists. The CR manifest is used to validate the cluster has not been registered with another Membership.", +"type": "string" +}, +"membershipResources": { +"description": "Output only. Additional Kubernetes resources that need to be applied to the cluster after Membership creation, and after every update. This field is only populated in the Membership returned from a successful long-running operation from CreateMembership or UpdateMembership. It is not populated during normal GetMembership or ListMemberships requests. To get the resource manifest after the initial registration, the caller should make a UpdateMembership call with an empty field mask.", +"items": { +"$ref": "ResourceManifest" +}, +"readOnly": true, +"type": "array" +}, +"resourceOptions": { +"$ref": "ResourceOptions", +"description": "Optional. Options for Kubernetes resource generation." +} +}, +"type": "object" +}, +"ListBoundMembershipsResponse": { +"description": "List of Memberships bound to a Scope.", +"id": "ListBoundMembershipsResponse", +"properties": { +"memberships": { +"description": "The list of Memberships bound to the given Scope.", +"items": { +"$ref": "Membership" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to request the next page of resources from the `ListBoundMemberships` method. The value of an empty string means that there are no more resources to return.", +"type": "string" +}, +"unreachable": { +"description": "List of locations that could not be reached while fetching this list.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListFeaturesResponse": { +"description": "Response message for the `GkeHub.ListFeatures` method.", +"id": "ListFeaturesResponse", +"properties": { +"nextPageToken": { +"description": "A token to request the next page of resources from the `ListFeatures` method. The value of an empty string means that there are no more resources to return.", +"type": "string" +}, +"resources": { +"description": "The list of matching Features", +"items": { +"$ref": "Feature" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListFleetsResponse": { +"description": "Response message for the `GkeHub.ListFleetsResponse` method.", +"id": "ListFleetsResponse", +"properties": { +"fleets": { +"description": "The list of matching fleets.", +"items": { +"$ref": "Fleet" +}, +"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. The token is only valid for 1h.", +"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" +}, +"ListMembershipBindingsResponse": { +"description": "List of MembershipBindings.", +"id": "ListMembershipBindingsResponse", +"properties": { +"membershipBindings": { +"description": "The list of membership_bindings", +"items": { +"$ref": "MembershipBinding" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to request the next page of resources from the `ListMembershipBindings` method. The value of an empty string means that there are no more resources to return.", +"type": "string" +}, +"unreachable": { +"description": "List of locations that could not be reached while fetching this list.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListMembershipRBACRoleBindingsResponse": { +"description": "List of Membership RBACRoleBindings.", +"id": "ListMembershipRBACRoleBindingsResponse", +"properties": { +"nextPageToken": { +"description": "A token to request the next page of resources from the `ListMembershipRBACRoleBindings` method. The value of an empty string means that there are no more resources to return.", +"type": "string" +}, +"rbacrolebindings": { +"description": "The list of Membership RBACRoleBindings.", +"items": { +"$ref": "RBACRoleBinding" +}, +"type": "array" +}, +"unreachable": { +"description": "List of locations that could not be reached while fetching this list.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListMembershipsResponse": { +"description": "Response message for the `GkeHub.ListMemberships` method.", +"id": "ListMembershipsResponse", +"properties": { +"nextPageToken": { +"description": "A token to request the next page of resources from the `ListMemberships` method. The value of an empty string means that there are no more resources to return.", +"type": "string" +}, +"resources": { +"description": "The list of matching Memberships.", +"items": { +"$ref": "Membership" +}, +"type": "array" +}, +"unreachable": { +"description": "List of locations that could not be reached while fetching this list.", +"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" +}, +"ListPermittedScopesResponse": { +"description": "List of permitted Scopes.", +"id": "ListPermittedScopesResponse", +"properties": { +"nextPageToken": { +"description": "A token to request the next page of resources from the `ListPermittedScopes` method. The value of an empty string means that there are no more resources to return.", +"type": "string" +}, +"scopes": { +"description": "The list of permitted Scopes", +"items": { +"$ref": "Scope" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListScopeNamespacesResponse": { +"description": "List of fleet namespaces.", +"id": "ListScopeNamespacesResponse", +"properties": { +"nextPageToken": { +"description": "A token to request the next page of resources from the `ListNamespaces` method. The value of an empty string means that there are no more resources to return.", +"type": "string" +}, +"scopeNamespaces": { +"description": "The list of fleet namespaces", +"items": { +"$ref": "Namespace" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListScopeRBACRoleBindingsResponse": { +"description": "List of Scope RBACRoleBindings.", +"id": "ListScopeRBACRoleBindingsResponse", +"properties": { +"nextPageToken": { +"description": "A token to request the next page of resources from the `ListScopeRBACRoleBindings` method. The value of an empty string means that there are no more resources to return.", +"type": "string" +}, +"rbacrolebindings": { +"description": "The list of Scope RBACRoleBindings.", +"items": { +"$ref": "RBACRoleBinding" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListScopesResponse": { +"description": "List of Scopes.", +"id": "ListScopesResponse", +"properties": { +"nextPageToken": { +"description": "A token to request the next page of resources from the `ListScopes` method. The value of an empty string means that there are no more resources to return.", +"type": "string" +}, +"scopes": { +"description": "The list of Scopes", +"items": { +"$ref": "Scope" +}, +"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" +}, +"Membership": { +"description": "Membership contains information about a member cluster.", +"id": "Membership", +"properties": { +"authority": { +"$ref": "Authority", +"description": "Optional. How to identify workloads from this Membership. See the documentation on Workload Identity for more details: https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity" +}, +"clusterTier": { +"description": "Output only. The tier of the cluster.", +"enum": [ +"CLUSTER_TIER_UNSPECIFIED", +"STANDARD", +"ENTERPRISE" +], +"enumDescriptions": [ +"The ClusterTier is not set.", +"The ClusterTier is standard.", +"The ClusterTier is enterprise." +], +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. When the Membership was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"deleteTime": { +"description": "Output only. When the Membership was deleted.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Output only. Description of this membership, limited to 63 characters. Must match the regex: `a-zA-Z0-9*` This field is present for legacy purposes.", +"readOnly": true, +"type": "string" +}, +"endpoint": { +"$ref": "MembershipEndpoint", +"description": "Optional. Endpoint information to reach this member." +}, +"externalId": { +"description": "Optional. An externally-generated and managed ID for this Membership. This ID may be modified after creation, but this is not recommended. The ID must match the regex: `a-zA-Z0-9*` If this Membership represents a Kubernetes cluster, this value should be set to the UID of the `kube-system` namespace object.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Labels for this membership.", +"type": "object" +}, +"lastConnectionTime": { +"description": "Output only. For clusters using Connect, the timestamp of the most recent connection established with Google Cloud. This time is updated every several minutes, not continuously. For clusters that do not use GKE Connect, or that have never connected successfully, this field will be unset.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"monitoringConfig": { +"$ref": "MonitoringConfig", +"description": "Optional. The monitoring config information for this membership." +}, +"name": { +"description": "Output only. The full, unique name of this Membership resource in the format `projects/*/locations/*/memberships/{membership_id}`, set during creation. `membership_id` must be a valid RFC 1123 compliant DNS label: 1. At most 63 characters in length 2. It must consist of lower case alphanumeric characters or `-` 3. It must start and end with an alphanumeric character Which can be expressed as the regex: `[a-z0-9]([-a-z0-9]*[a-z0-9])?`, with a maximum length of 63 characters.", +"readOnly": true, +"type": "string" +}, +"state": { +"$ref": "MembershipState", +"description": "Output only. State of the Membership resource.", +"readOnly": true +}, +"uniqueId": { +"description": "Output only. Google-generated UUID for this resource. This is unique across all Membership resources. If a Membership resource is deleted and another resource with the same name is created, it gets a different unique_id.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. When the Membership was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"MembershipBinding": { +"description": "MembershipBinding is a subresource of a Membership, representing what Fleet Scopes (or other, future Fleet resources) a Membership is bound to.", +"id": "MembershipBinding", +"properties": { +"createTime": { +"description": "Output only. When the membership binding was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"deleteTime": { +"description": "Output only. When the membership binding was deleted.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Labels for this MembershipBinding.", +"type": "object" +}, +"name": { +"description": "The resource name for the membershipbinding itself `projects/{project}/locations/{location}/memberships/{membership}/bindings/{membershipbinding}`", +"type": "string" +}, +"scope": { +"description": "A Scope resource name in the format `projects/*/locations/*/scopes/*`.", +"type": "string" +}, +"state": { +"$ref": "MembershipBindingLifecycleState", +"description": "Output only. State of the membership binding resource.", +"readOnly": true +}, +"uid": { +"description": "Output only. Google-generated UUID for this resource. This is unique across all membershipbinding resources. If a membershipbinding resource is deleted and another resource with the same name is created, it gets a different uid.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. When the membership binding was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"MembershipBindingLifecycleState": { +"description": "MembershipBindingLifecycleState describes the state of a Binding resource.", +"id": "MembershipBindingLifecycleState", +"properties": { +"code": { +"description": "Output only. The current state of the MembershipBinding resource.", +"enum": [ +"CODE_UNSPECIFIED", +"CREATING", +"READY", +"DELETING", +"UPDATING" +], +"enumDescriptions": [ +"The code is not set.", +"The membershipbinding is being created.", +"The membershipbinding active.", +"The membershipbinding is being deleted.", +"The membershipbinding is being updated." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"MembershipEndpoint": { +"description": "MembershipEndpoint contains information needed to contact a Kubernetes API, endpoint and any additional Kubernetes metadata.", +"id": "MembershipEndpoint", +"properties": { +"applianceCluster": { +"$ref": "ApplianceCluster", +"description": "Optional. Specific information for a GDC Edge Appliance cluster." +}, +"edgeCluster": { +"$ref": "EdgeCluster", +"description": "Optional. Specific information for a Google Edge cluster." +}, +"gkeCluster": { +"$ref": "GkeCluster", +"description": "Optional. Specific information for a GKE-on-GCP cluster." +}, +"googleManaged": { +"description": "Output only. Whether the lifecycle of this membership is managed by a google cluster platform service.", +"readOnly": true, +"type": "boolean" +}, +"kubernetesMetadata": { +"$ref": "KubernetesMetadata", +"description": "Output only. Useful Kubernetes-specific metadata.", +"readOnly": true +}, +"kubernetesResource": { +"$ref": "KubernetesResource", +"description": "Optional. The in-cluster Kubernetes Resources that should be applied for a correctly registered cluster, in the steady state. These resources: * Ensure that the cluster is exclusively registered to one and only one Hub Membership. * Propagate Workload Pool Information available in the Membership Authority field. * Ensure proper initial configuration of default Hub Features." +}, +"multiCloudCluster": { +"$ref": "MultiCloudCluster", +"description": "Optional. Specific information for a GKE Multi-Cloud cluster." +}, +"onPremCluster": { +"$ref": "OnPremCluster", +"description": "Optional. Specific information for a GKE On-Prem cluster. An onprem user-cluster who has no resourceLink is not allowed to use this field, it should have a nil \"type\" instead." +} +}, +"type": "object" +}, +"MembershipFeatureSpec": { +"description": "MembershipFeatureSpec contains configuration information for a single Membership.", +"id": "MembershipFeatureSpec", +"properties": { +"anthosobservability": { +"$ref": "AnthosObservabilityMembershipSpec", +"description": "Anthos Observability-specific spec" +}, +"cloudbuild": { +"$ref": "MembershipSpec", +"description": "Cloud Build-specific spec" +}, +"configmanagement": { +"$ref": "ConfigManagementMembershipSpec", +"description": "Config Management-specific spec." +}, +"fleetobservability": { +"$ref": "FleetObservabilityMembershipSpec", +"description": "Fleet observability membership spec" +}, +"identityservice": { +"$ref": "IdentityServiceMembershipSpec", +"description": "Identity Service-specific spec." +}, +"mesh": { +"$ref": "ServiceMeshMembershipSpec", +"description": "Anthos Service Mesh-specific spec" +}, +"origin": { +"$ref": "Origin", +"description": "Whether this per-Membership spec was inherited from a fleet-level default. This field can be updated by users by either overriding a Membership config (updated to USER implicitly) or setting to FLEET explicitly." +}, +"policycontroller": { +"$ref": "PolicyControllerMembershipSpec", +"description": "Policy Controller spec." +} +}, +"type": "object" +}, +"MembershipFeatureState": { +"description": "MembershipFeatureState contains Feature status information for a single Membership.", +"id": "MembershipFeatureState", +"properties": { +"appdevexperience": { +"$ref": "AppDevExperienceFeatureState", +"description": "Appdevexperience specific state." +}, +"clusterupgrade": { +"$ref": "ClusterUpgradeMembershipState", +"description": "ClusterUpgrade state." +}, +"configmanagement": { +"$ref": "ConfigManagementMembershipState", +"description": "Config Management-specific state." +}, +"fleetobservability": { +"$ref": "FleetObservabilityMembershipState", +"description": "Fleet observability membership state." +}, +"identityservice": { +"$ref": "IdentityServiceMembershipState", +"description": "Identity Service-specific state." +}, +"metering": { +"$ref": "MeteringMembershipState", +"description": "Metering-specific state." +}, +"policycontroller": { +"$ref": "PolicyControllerMembershipState", +"description": "Policycontroller-specific state." +}, +"servicemesh": { +"$ref": "ServiceMeshMembershipState", +"description": "Service Mesh-specific state." +}, +"state": { +"$ref": "FeatureState", +"description": "The high-level state of this Feature for a single membership." +} +}, +"type": "object" +}, +"MembershipSpec": { +"description": "**Cloud Build**: Configurations for each Cloud Build enabled cluster.", +"id": "MembershipSpec", +"properties": { +"securityPolicy": { +"description": "Whether it is allowed to run the privileged builds on the cluster or not.", +"enum": [ +"SECURITY_POLICY_UNSPECIFIED", +"NON_PRIVILEGED", +"PRIVILEGED" +], +"enumDescriptions": [ +"Unspecified policy", +"Privileged build pods are disallowed", +"Privileged build pods are allowed" +], +"type": "string" +}, +"version": { +"description": "Version of the cloud build software on the cluster.", +"type": "string" +} +}, +"type": "object" +}, +"MembershipState": { +"description": "MembershipState describes the state of a Membership resource.", +"id": "MembershipState", +"properties": { +"code": { +"description": "Output only. The current state of the Membership resource.", +"enum": [ +"CODE_UNSPECIFIED", +"CREATING", +"READY", +"DELETING", +"UPDATING", +"SERVICE_UPDATING" +], +"enumDescriptions": [ +"The code is not set.", +"The cluster is being registered.", +"The cluster is registered.", +"The cluster is being unregistered.", +"The Membership is being updated.", +"The Membership is being updated by the Hub Service." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"MeteringMembershipState": { +"description": "**Metering**: Per-Membership Feature State.", +"id": "MeteringMembershipState", +"properties": { +"lastMeasurementTime": { +"description": "The time stamp of the most recent measurement of the number of vCPUs in the cluster.", +"format": "google-datetime", +"type": "string" +}, +"preciseLastMeasuredClusterVcpuCapacity": { +"description": "The vCPUs capacity in the cluster according to the most recent measurement (1/1000 precision).", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"MonitoringConfig": { +"description": "MonitoringConfig informs Fleet-based applications/services/UIs how the metrics for the underlying cluster is reported to cloud monitoring services. It can be set from empty to non-empty, but can't be mutated directly to prevent accidentally breaking the constinousty of metrics.", +"id": "MonitoringConfig", +"properties": { +"cluster": { +"description": "Optional. Cluster name used to report metrics. For Anthos on VMWare/Baremetal/MultiCloud clusters, it would be in format {cluster_type}/{cluster_name}, e.g., \"awsClusters/cluster_1\".", +"type": "string" +}, +"clusterHash": { +"description": "Optional. For GKE and Multicloud clusters, this is the UUID of the cluster resource. For VMWare and Baremetal clusters, this is the kube-system UID.", +"type": "string" +}, +"kubernetesMetricsPrefix": { +"description": "Optional. Kubernetes system metrics, if available, are written to this prefix. This defaults to kubernetes.io for GKE, and kubernetes.io/anthos for Anthos eventually. Noted: Anthos MultiCloud will have kubernetes.io prefix today but will migration to be under kubernetes.io/anthos.", +"type": "string" +}, +"location": { +"description": "Optional. Location used to report Metrics", +"type": "string" +}, +"projectId": { +"description": "Optional. Project used to report Metrics", +"type": "string" +} +}, +"type": "object" +}, +"MultiCloudCluster": { +"description": "MultiCloudCluster contains information specific to GKE Multi-Cloud clusters.", +"id": "MultiCloudCluster", +"properties": { +"clusterMissing": { +"description": "Output only. If cluster_missing is set then it denotes that API(gkemulticloud.googleapis.com) resource for this GKE Multi-Cloud cluster no longer exists.", +"readOnly": true, +"type": "boolean" +}, +"resourceLink": { +"description": "Immutable. Self-link of the Google Cloud resource for the GKE Multi-Cloud cluster. For example: //gkemulticloud.googleapis.com/projects/my-project/locations/us-west1-a/awsClusters/my-cluster //gkemulticloud.googleapis.com/projects/my-project/locations/us-west1-a/azureClusters/my-cluster //gkemulticloud.googleapis.com/projects/my-project/locations/us-west1-a/attachedClusters/my-cluster", +"type": "string" +} +}, +"type": "object" +}, +"MultiClusterIngressFeatureSpec": { +"description": "**Multi-cluster Ingress**: The configuration for the MultiClusterIngress feature.", +"id": "MultiClusterIngressFeatureSpec", +"properties": { +"billing": { +"deprecated": true, +"description": "Deprecated: This field will be ignored and should not be set. Customer's billing structure.", +"enum": [ +"BILLING_UNSPECIFIED", +"PAY_AS_YOU_GO", +"ANTHOS_LICENSE" +], +"enumDescriptions": [ +"Unknown", +"User pays a fee per-endpoint.", +"User is paying for Anthos as a whole." +], +"type": "string" +}, +"configMembership": { +"description": "Fully-qualified Membership name which hosts the MultiClusterIngress CRD. Example: `projects/foo-proj/locations/global/memberships/bar`", +"type": "string" +} +}, +"type": "object" +}, +"Namespace": { +"description": "Namespace represents a namespace across the Fleet", +"id": "Namespace", +"properties": { +"createTime": { +"description": "Output only. When the namespace was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"deleteTime": { +"description": "Output only. When the namespace was deleted.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Labels for this Namespace.", +"type": "object" +}, +"name": { +"description": "The resource name for the namespace `projects/{project}/locations/{location}/namespaces/{namespace}`", +"type": "string" +}, +"namespaceLabels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Namespace-level cluster namespace labels. These labels are applied to the related namespace of the member clusters bound to the parent Scope. Scope-level labels (`namespace_labels` in the Fleet Scope resource) take precedence over Namespace-level labels if they share a key. Keys and values must be Kubernetes-conformant.", +"type": "object" +}, +"scope": { +"description": "Required. Scope associated with the namespace", +"type": "string" +}, +"state": { +"$ref": "NamespaceLifecycleState", +"description": "Output only. State of the namespace resource.", +"readOnly": true +}, +"uid": { +"description": "Output only. Google-generated UUID for this resource. This is unique across all namespace resources. If a namespace resource is deleted and another resource with the same name is created, it gets a different uid.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. When the namespace was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"NamespaceLifecycleState": { +"description": "NamespaceLifecycleState describes the state of a Namespace resource.", +"id": "NamespaceLifecycleState", +"properties": { +"code": { +"description": "Output only. The current state of the Namespace resource.", +"enum": [ +"CODE_UNSPECIFIED", +"CREATING", +"READY", +"DELETING", +"UPDATING" +], +"enumDescriptions": [ +"The code is not set.", +"The namespace is being created.", +"The namespace active.", +"The namespace is being deleted.", +"The namespace is being updated." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"OnPremCluster": { +"description": "OnPremCluster contains information specific to GKE On-Prem clusters.", +"id": "OnPremCluster", +"properties": { +"adminCluster": { +"description": "Immutable. Whether the cluster is an admin cluster.", +"type": "boolean" +}, +"clusterMissing": { +"description": "Output only. If cluster_missing is set then it denotes that API(gkeonprem.googleapis.com) resource for this GKE On-Prem cluster no longer exists.", +"readOnly": true, +"type": "boolean" +}, +"clusterType": { +"description": "Immutable. The on prem cluster's type.", +"enum": [ +"CLUSTERTYPE_UNSPECIFIED", +"BOOTSTRAP", +"HYBRID", +"STANDALONE", +"USER" +], +"enumDescriptions": [ +"The ClusterType is not set.", +"The ClusterType is bootstrap cluster.", +"The ClusterType is baremetal hybrid cluster.", +"The ClusterType is baremetal standalone cluster.", +"The ClusterType is user cluster." +], +"type": "string" +}, +"resourceLink": { +"description": "Immutable. Self-link of the Google Cloud resource for the GKE On-Prem cluster. For example: //gkeonprem.googleapis.com/projects/my-project/locations/us-west1-a/vmwareClusters/my-cluster //gkeonprem.googleapis.com/projects/my-project/locations/us-west1-a/bareMetalClusters/my-cluster", +"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": "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" +}, +"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 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" +}, +"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" +}, +"Origin": { +"description": "Origin defines where this MembershipFeatureSpec originated from.", +"id": "Origin", +"properties": { +"type": { +"description": "Type specifies which type of origin is set.", +"enum": [ +"TYPE_UNSPECIFIED", +"FLEET", +"FLEET_OUT_OF_SYNC", +"USER" +], +"enumDescriptions": [ +"Type is unknown or not set.", +"Per-Membership spec was inherited from the fleet-level default.", +"Per-Membership spec was inherited from the fleet-level default but is now out of sync with the current default.", +"Per-Membership spec was inherited from a user specification." +], +"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" +}, +"PolicyBinding": { +"description": "Binauthz policy that applies to this cluster.", +"id": "PolicyBinding", +"properties": { +"name": { +"description": "The relative resource name of the binauthz platform policy to audit. GKE platform policies have the following format: `projects/{project_number}/platforms/gke/policies/{policy_id}`.", +"type": "string" +} +}, +"type": "object" +}, +"PolicyControllerBundleInstallSpec": { +"description": "BundleInstallSpec is the specification configuration for a single managed bundle.", +"id": "PolicyControllerBundleInstallSpec", +"properties": { +"exemptedNamespaces": { +"description": "The set of namespaces to be exempted from the bundle.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"PolicyControllerHubConfig": { +"description": "Configuration for Policy Controller", +"id": "PolicyControllerHubConfig", +"properties": { +"auditIntervalSeconds": { +"description": "Sets the interval for Policy Controller Audit Scans (in seconds). When set to 0, this disables audit functionality altogether.", +"format": "int64", +"type": "string" +}, +"constraintViolationLimit": { +"description": "The maximum number of audit violations to be stored in a constraint. If not set, the internal default (currently 20) will be used.", +"format": "int64", +"type": "string" +}, +"deploymentConfigs": { +"additionalProperties": { +"$ref": "PolicyControllerPolicyControllerDeploymentConfig" +}, +"description": "Map of deployment configs to deployments (\"admission\", \"audit\", \"mutation').", +"type": "object" +}, +"exemptableNamespaces": { +"description": "The set of namespaces that are excluded from Policy Controller checks. Namespaces do not need to currently exist on the cluster.", +"items": { +"type": "string" +}, +"type": "array" +}, +"installSpec": { +"description": "The install_spec represents the intended state specified by the latest request that mutated install_spec in the feature spec, not the lifecycle state of the feature observed by the Hub feature controller that is reported in the feature state.", +"enum": [ +"INSTALL_SPEC_UNSPECIFIED", +"INSTALL_SPEC_NOT_INSTALLED", +"INSTALL_SPEC_ENABLED", +"INSTALL_SPEC_SUSPENDED", +"INSTALL_SPEC_DETACHED" +], +"enumDescriptions": [ +"Spec is unknown.", +"Request to uninstall Policy Controller.", +"Request to install and enable Policy Controller.", +"Request to suspend Policy Controller i.e. its webhooks. If Policy Controller is not installed, it will be installed but suspended.", +"Request to stop all reconciliation actions by PoCo Hub controller. This is a breakglass mechanism to stop PoCo Hub from affecting cluster resources." +], +"type": "string" +}, +"logDeniesEnabled": { +"description": "Logs all denies and dry run failures.", +"type": "boolean" +}, +"monitoring": { +"$ref": "PolicyControllerMonitoringConfig", +"description": "Monitoring specifies the configuration of monitoring." +}, +"mutationEnabled": { +"description": "Enables the ability to mutate resources using Policy Controller.", +"type": "boolean" +}, +"policyContent": { +"$ref": "PolicyControllerPolicyContentSpec", +"description": "Specifies the desired policy content on the cluster" +}, +"referentialRulesEnabled": { +"description": "Enables the ability to use Constraint Templates that reference to objects other than the object currently being evaluated.", +"type": "boolean" +} +}, +"type": "object" +}, +"PolicyControllerMembershipSpec": { +"description": "**Policy Controller**: Configuration for a single cluster. Intended to parallel the PolicyController CR.", +"id": "PolicyControllerMembershipSpec", +"properties": { +"policyControllerHubConfig": { +"$ref": "PolicyControllerHubConfig", +"description": "Policy Controller configuration for the cluster." +}, +"version": { +"description": "Version of Policy Controller installed.", +"type": "string" +} +}, +"type": "object" +}, +"PolicyControllerMembershipState": { +"description": "**Policy Controller**: State for a single cluster.", +"id": "PolicyControllerMembershipState", +"properties": { +"componentStates": { +"additionalProperties": { +"$ref": "PolicyControllerOnClusterState" +}, +"description": "Currently these include (also serving as map keys): 1. \"admission\" 2. \"audit\" 3. \"mutation\"", +"type": "object" +}, +"policyContentState": { +"$ref": "PolicyControllerPolicyContentState", +"description": "The overall content state observed by the Hub Feature controller." +}, +"state": { +"description": "The overall Policy Controller lifecycle state observed by the Hub Feature controller.", +"enum": [ +"LIFECYCLE_STATE_UNSPECIFIED", +"NOT_INSTALLED", +"INSTALLING", +"ACTIVE", +"UPDATING", +"DECOMMISSIONING", +"CLUSTER_ERROR", +"HUB_ERROR", +"SUSPENDED", +"DETACHED" +], +"enumDescriptions": [ +"The lifecycle state is unspecified.", +"The PC does not exist on the given cluster, and no k8s resources of any type that are associated with the PC should exist there. The cluster does not possess a membership with the PCH.", +"The PCH possesses a Membership, however the PC is not fully installed on the cluster. In this state the hub can be expected to be taking actions to install the PC on the cluster.", +"The PC is fully installed on the cluster and in an operational mode. In this state PCH will be reconciling state with the PC, and the PC will be performing it's operational tasks per that software. Entering a READY state requires that the hub has confirmed the PC is installed and its pods are operational with the version of the PC the PCH expects.", +"The PC is fully installed, but in the process of changing the configuration (including changing the version of PC either up and down, or modifying the manifests of PC) of the resources running on the cluster. The PCH has a Membership, is aware of the version the cluster should be running in, but has not confirmed for itself that the PC is running with that version.", +"The PC may have resources on the cluster, but the PCH wishes to remove the Membership. The Membership still exists.", +"The PC is not operational, and the PCH is unable to act to make it operational. Entering a CLUSTER_ERROR state happens automatically when the PCH determines that a PC installed on the cluster is non-operative or that the cluster does not meet requirements set for the PCH to administer the cluster but has nevertheless been given an instruction to do so (such as 'install').", +"In this state, the PC may still be operational, and only the PCH is unable to act. The hub should not issue instructions to change the PC state, or otherwise interfere with the on-cluster resources. Entering a HUB_ERROR state happens automatically when the PCH determines the hub is in an unhealthy state and it wishes to 'take hands off' to avoid corrupting the PC or other data.", +"Policy Controller (PC) is installed but suspended. This means that the policies are not enforced, but violations are still recorded (through audit).", +"PoCo Hub is not taking any action to reconcile cluster objects. Changes to those objects will not be overwritten by PoCo Hub." +], +"type": "string" +} +}, +"type": "object" +}, +"PolicyControllerMonitoringConfig": { +"description": "MonitoringConfig specifies the backends Policy Controller should export metrics to. For example, to specify metrics should be exported to Cloud Monitoring and Prometheus, specify backends: [\"cloudmonitoring\", \"prometheus\"]", +"id": "PolicyControllerMonitoringConfig", +"properties": { +"backends": { +"description": "Specifies the list of backends Policy Controller will export to. An empty list would effectively disable metrics export.", +"items": { +"enum": [ +"MONITORING_BACKEND_UNSPECIFIED", +"PROMETHEUS", +"CLOUD_MONITORING" +], +"enumDescriptions": [ +"Backend cannot be determined", +"Prometheus backend for monitoring", +"Stackdriver/Cloud Monitoring backend for monitoring" +], +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"PolicyControllerOnClusterState": { +"description": "OnClusterState represents the state of a sub-component of Policy Controller.", +"id": "PolicyControllerOnClusterState", +"properties": { +"details": { +"description": "Surface potential errors or information logs.", +"type": "string" +}, +"state": { +"description": "The lifecycle state of this component.", +"enum": [ +"LIFECYCLE_STATE_UNSPECIFIED", +"NOT_INSTALLED", +"INSTALLING", +"ACTIVE", +"UPDATING", +"DECOMMISSIONING", +"CLUSTER_ERROR", +"HUB_ERROR", +"SUSPENDED", +"DETACHED" +], +"enumDescriptions": [ +"The lifecycle state is unspecified.", +"The PC does not exist on the given cluster, and no k8s resources of any type that are associated with the PC should exist there. The cluster does not possess a membership with the PCH.", +"The PCH possesses a Membership, however the PC is not fully installed on the cluster. In this state the hub can be expected to be taking actions to install the PC on the cluster.", +"The PC is fully installed on the cluster and in an operational mode. In this state PCH will be reconciling state with the PC, and the PC will be performing it's operational tasks per that software. Entering a READY state requires that the hub has confirmed the PC is installed and its pods are operational with the version of the PC the PCH expects.", +"The PC is fully installed, but in the process of changing the configuration (including changing the version of PC either up and down, or modifying the manifests of PC) of the resources running on the cluster. The PCH has a Membership, is aware of the version the cluster should be running in, but has not confirmed for itself that the PC is running with that version.", +"The PC may have resources on the cluster, but the PCH wishes to remove the Membership. The Membership still exists.", +"The PC is not operational, and the PCH is unable to act to make it operational. Entering a CLUSTER_ERROR state happens automatically when the PCH determines that a PC installed on the cluster is non-operative or that the cluster does not meet requirements set for the PCH to administer the cluster but has nevertheless been given an instruction to do so (such as 'install').", +"In this state, the PC may still be operational, and only the PCH is unable to act. The hub should not issue instructions to change the PC state, or otherwise interfere with the on-cluster resources. Entering a HUB_ERROR state happens automatically when the PCH determines the hub is in an unhealthy state and it wishes to 'take hands off' to avoid corrupting the PC or other data.", +"Policy Controller (PC) is installed but suspended. This means that the policies are not enforced, but violations are still recorded (through audit).", +"PoCo Hub is not taking any action to reconcile cluster objects. Changes to those objects will not be overwritten by PoCo Hub." +], +"type": "string" +} +}, +"type": "object" +}, +"PolicyControllerPolicyContentSpec": { +"description": "PolicyContentSpec defines the user's desired content configuration on the cluster.", +"id": "PolicyControllerPolicyContentSpec", +"properties": { +"bundles": { +"additionalProperties": { +"$ref": "PolicyControllerBundleInstallSpec" +}, +"description": "map of bundle name to BundleInstallSpec. The bundle name maps to the `bundleName` key in the `policycontroller.gke.io/constraintData` annotation on a constraint.", +"type": "object" +}, +"templateLibrary": { +"$ref": "PolicyControllerTemplateLibraryConfig", +"description": "Configures the installation of the Template Library." +} +}, +"type": "object" +}, +"PolicyControllerPolicyContentState": { +"description": "The state of the policy controller policy content", +"id": "PolicyControllerPolicyContentState", +"properties": { +"bundleStates": { +"additionalProperties": { +"$ref": "PolicyControllerOnClusterState" +}, +"description": "The state of the any bundles included in the chosen version of the manifest", +"type": "object" +}, +"referentialSyncConfigState": { +"$ref": "PolicyControllerOnClusterState", +"description": "The state of the referential data sync configuration. This could represent the state of either the syncSet object(s) or the config object, depending on the version of PoCo configured by the user." +}, +"templateLibraryState": { +"$ref": "PolicyControllerOnClusterState", +"description": "The state of the template library" +} +}, +"type": "object" +}, +"PolicyControllerPolicyControllerDeploymentConfig": { +"description": "Deployment-specific configuration.", +"id": "PolicyControllerPolicyControllerDeploymentConfig", +"properties": { +"containerResources": { +"$ref": "PolicyControllerResourceRequirements", +"description": "Container resource requirements." +}, +"podAffinity": { +"description": "Pod affinity configuration.", +"enum": [ +"AFFINITY_UNSPECIFIED", +"NO_AFFINITY", +"ANTI_AFFINITY" +], +"enumDescriptions": [ +"No affinity configuration has been specified.", +"Affinity configurations will be removed from the deployment.", +"Anti-affinity configuration will be applied to this deployment. Default for admissions deployment." +], +"type": "string" +}, +"podAntiAffinity": { +"deprecated": true, +"description": "Pod anti-affinity enablement. Deprecated: use `pod_affinity` instead.", +"type": "boolean" +}, +"podTolerations": { +"description": "Pod tolerations of node taints.", +"items": { +"$ref": "PolicyControllerToleration" +}, +"type": "array" +}, +"replicaCount": { +"description": "Pod replica count.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"PolicyControllerResourceList": { +"description": "ResourceList contains container resource requirements.", +"id": "PolicyControllerResourceList", +"properties": { +"cpu": { +"description": "CPU requirement expressed in Kubernetes resource units.", +"type": "string" +}, +"memory": { +"description": "Memory requirement expressed in Kubernetes resource units.", +"type": "string" +} +}, +"type": "object" +}, +"PolicyControllerResourceRequirements": { +"description": "ResourceRequirements describes the compute resource requirements.", +"id": "PolicyControllerResourceRequirements", +"properties": { +"limits": { +"$ref": "PolicyControllerResourceList", +"description": "Limits describes the maximum amount of compute resources allowed for use by the running container." +}, +"requests": { +"$ref": "PolicyControllerResourceList", +"description": "Requests describes the amount of compute resources reserved for the container by the kube-scheduler." +} +}, +"type": "object" +}, +"PolicyControllerTemplateLibraryConfig": { +"description": "The config specifying which default library templates to install.", +"id": "PolicyControllerTemplateLibraryConfig", +"properties": { +"installation": { +"description": "Configures the manner in which the template library is installed on the cluster.", +"enum": [ +"INSTALLATION_UNSPECIFIED", +"NOT_INSTALLED", +"ALL" +], +"enumDescriptions": [ +"No installation strategy has been specified.", +"Do not install the template library.", +"Install the entire template library." +], +"type": "string" +} +}, +"type": "object" +}, +"PolicyControllerToleration": { +"description": "Toleration of a node taint.", +"id": "PolicyControllerToleration", +"properties": { +"effect": { +"description": "Matches a taint effect.", +"type": "string" +}, +"key": { +"description": "Matches a taint key (not necessarily unique).", +"type": "string" +}, +"operator": { +"description": "Matches a taint operator.", +"type": "string" +}, +"value": { +"description": "Matches a taint value.", +"type": "string" +} +}, +"type": "object" +}, +"RBACRoleBinding": { +"description": "RBACRoleBinding represents a rbacrolebinding across the Fleet", +"id": "RBACRoleBinding", +"properties": { +"createTime": { +"description": "Output only. When the rbacrolebinding was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"deleteTime": { +"description": "Output only. When the rbacrolebinding was deleted.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"group": { +"description": "group is the group, as seen by the kubernetes cluster.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Labels for this RBACRolebinding.", +"type": "object" +}, +"name": { +"description": "The resource name for the rbacrolebinding `projects/{project}/locations/{location}/scopes/{scope}/rbacrolebindings/{rbacrolebinding}` or `projects/{project}/locations/{location}/memberships/{membership}/rbacrolebindings/{rbacrolebinding}`", +"type": "string" +}, +"role": { +"$ref": "Role", +"description": "Required. Role to bind to the principal" +}, +"state": { +"$ref": "RBACRoleBindingLifecycleState", +"description": "Output only. State of the rbacrolebinding resource.", +"readOnly": true +}, +"uid": { +"description": "Output only. Google-generated UUID for this resource. This is unique across all rbacrolebinding resources. If a rbacrolebinding resource is deleted and another resource with the same name is created, it gets a different uid.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. When the rbacrolebinding was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"user": { +"description": "user is the name of the user as seen by the kubernetes cluster, example \"alice\" or \"alice@domain.tld\"", +"type": "string" +} +}, +"type": "object" +}, +"RBACRoleBindingLifecycleState": { +"description": "RBACRoleBindingLifecycleState describes the state of a RbacRoleBinding resource.", +"id": "RBACRoleBindingLifecycleState", +"properties": { +"code": { +"description": "Output only. The current state of the rbacrolebinding resource.", +"enum": [ +"CODE_UNSPECIFIED", +"CREATING", +"READY", +"DELETING", +"UPDATING" +], +"enumDescriptions": [ +"The code is not set.", +"The rbacrolebinding is being created.", +"The rbacrolebinding active.", +"The rbacrolebinding is being deleted.", +"The rbacrolebinding is being updated." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ResourceManifest": { +"description": "ResourceManifest represents a single Kubernetes resource to be applied to the cluster.", +"id": "ResourceManifest", +"properties": { +"clusterScoped": { +"description": "Output only. Whether the resource provided in the manifest is `cluster_scoped`. If unset, the manifest is assumed to be namespace scoped. This field is used for REST mapping when applying the resource in a cluster.", +"readOnly": true, +"type": "boolean" +}, +"manifest": { +"description": "Output only. YAML manifest of the resource.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ResourceOptions": { +"description": "ResourceOptions represent options for Kubernetes resource generation.", +"id": "ResourceOptions", +"properties": { +"connectVersion": { +"description": "Optional. The Connect agent version to use for connect_resources. Defaults to the latest GKE Connect version. The version must be a currently supported version, obsolete versions will be rejected.", +"type": "string" +}, +"k8sVersion": { +"description": "Optional. Major version of the Kubernetes cluster. This is only used to determine which version to use for the CustomResourceDefinition resources, `apiextensions/v1beta1` or`apiextensions/v1`.", +"type": "string" +}, +"v1beta1Crd": { +"description": "Optional. Use `apiextensions/v1beta1` instead of `apiextensions/v1` for CustomResourceDefinition resources. This option should be set for clusters with Kubernetes apiserver versions <1.16.", +"type": "boolean" +} +}, +"type": "object" +}, +"Role": { +"description": "Role is the type for Kubernetes roles", +"id": "Role", +"properties": { +"predefinedRole": { +"description": "predefined_role is the Kubernetes default role to use", +"enum": [ +"UNKNOWN", +"ADMIN", +"EDIT", +"VIEW", +"ANTHOS_SUPPORT" +], +"enumDescriptions": [ +"UNKNOWN", +"ADMIN has EDIT and RBAC permissions", +"EDIT can edit all resources except RBAC", +"VIEW can only read resources", +"ANTHOS_SUPPORT gives Google Support read-only access to a number of cluster resources." +], +"type": "string" +} +}, +"type": "object" +}, +"Scope": { +"description": "Scope represents a Scope in a Fleet.", +"id": "Scope", +"properties": { +"createTime": { +"description": "Output only. When the scope was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"deleteTime": { +"description": "Output only. When the scope was deleted.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Labels for this Scope.", +"type": "object" +}, +"name": { +"description": "The resource name for the scope `projects/{project}/locations/{location}/scopes/{scope}`", +"type": "string" +}, +"namespaceLabels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Scope-level cluster namespace labels. For the member clusters bound to the Scope, these labels are applied to each namespace under the Scope. Scope-level labels take precedence over Namespace-level labels (`namespace_labels` in the Fleet Namespace resource) if they share a key. Keys and values must be Kubernetes-conformant.", +"type": "object" +}, +"state": { +"$ref": "ScopeLifecycleState", +"description": "Output only. State of the scope resource.", +"readOnly": true +}, +"uid": { +"description": "Output only. Google-generated UUID for this resource. This is unique across all scope resources. If a scope resource is deleted and another resource with the same name is created, it gets a different uid.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. When the scope was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ScopeFeatureSpec": { +"description": "ScopeFeatureSpec contains feature specs for a fleet scope.", +"id": "ScopeFeatureSpec", +"properties": {}, +"type": "object" +}, +"ScopeFeatureState": { +"description": "ScopeFeatureState contains Scope-wide Feature status information.", +"id": "ScopeFeatureState", +"properties": { +"state": { +"$ref": "FeatureState", +"description": "Output only. The \"running state\" of the Feature in this Scope.", +"readOnly": true +} +}, +"type": "object" +}, +"ScopeLifecycleState": { +"description": "ScopeLifecycleState describes the state of a Scope resource.", +"id": "ScopeLifecycleState", +"properties": { +"code": { +"description": "Output only. The current state of the scope resource.", +"enum": [ +"CODE_UNSPECIFIED", +"CREATING", +"READY", +"DELETING", +"UPDATING" +], +"enumDescriptions": [ +"The code is not set.", +"The scope is being created.", +"The scope active.", +"The scope is being deleted.", +"The scope is being updated." +], +"readOnly": true, +"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" +}, +"ServiceMeshCondition": { +"description": "Condition being reported.", +"id": "ServiceMeshCondition", +"properties": { +"code": { +"description": "Unique identifier of the condition which describes the condition recognizable to the user.", +"enum": [ +"CODE_UNSPECIFIED", +"MESH_IAM_PERMISSION_DENIED", +"MESH_IAM_CROSS_PROJECT_PERMISSION_DENIED", +"CNI_CONFIG_UNSUPPORTED", +"GKE_SANDBOX_UNSUPPORTED", +"NODEPOOL_WORKLOAD_IDENTITY_FEDERATION_REQUIRED", +"CNI_INSTALLATION_FAILED", +"CNI_POD_UNSCHEDULABLE", +"CLUSTER_HAS_ZERO_NODES", +"UNSUPPORTED_MULTIPLE_CONTROL_PLANES", +"VPCSC_GA_SUPPORTED", +"DEPRECATED_SPEC_CONTROL_PLANE_MANAGEMENT", +"DEPRECATED_SPEC_CONTROL_PLANE_MANAGEMENT_SAFE", +"CONFIG_APPLY_INTERNAL_ERROR", +"CONFIG_VALIDATION_ERROR", +"CONFIG_VALIDATION_WARNING", +"QUOTA_EXCEEDED_BACKEND_SERVICES", +"QUOTA_EXCEEDED_HEALTH_CHECKS", +"QUOTA_EXCEEDED_HTTP_ROUTES", +"QUOTA_EXCEEDED_TCP_ROUTES", +"QUOTA_EXCEEDED_TLS_ROUTES", +"QUOTA_EXCEEDED_TRAFFIC_POLICIES", +"QUOTA_EXCEEDED_ENDPOINT_POLICIES", +"QUOTA_EXCEEDED_GATEWAYS", +"QUOTA_EXCEEDED_MESHES", +"QUOTA_EXCEEDED_SERVER_TLS_POLICIES", +"QUOTA_EXCEEDED_CLIENT_TLS_POLICIES", +"QUOTA_EXCEEDED_SERVICE_LB_POLICIES", +"QUOTA_EXCEEDED_HTTP_FILTERS", +"QUOTA_EXCEEDED_TCP_FILTERS", +"QUOTA_EXCEEDED_NETWORK_ENDPOINT_GROUPS", +"MODERNIZATION_SCHEDULED", +"MODERNIZATION_IN_PROGRESS", +"MODERNIZATION_COMPLETED", +"MODERNIZATION_ABORTED" +], +"enumDescriptions": [ +"Default Unspecified code", +"Mesh IAM permission denied error code", +"Permission denied error code for cross-project", +"CNI config unsupported error code", +"GKE sandbox unsupported error code", +"Nodepool workload identity federation required error code", +"CNI installation failed error code", +"CNI pod unschedulable error code", +"Cluster has zero node code", +"Multiple control planes unsupported error code", +"VPC-SC GA is supported for this control plane.", +"User is using deprecated ControlPlaneManagement and they have not yet set Management.", +"User is using deprecated ControlPlaneManagement and they have already set Management.", +"Configuration (Istio/k8s resources) failed to apply due to internal error.", +"Configuration failed to be applied due to being invalid.", +"Encountered configuration(s) with possible unintended behavior or invalid configuration. These configs may not have been applied.", +"BackendService quota exceeded error code.", +"HealthCheck quota exceeded error code.", +"HTTPRoute quota exceeded error code.", +"TCPRoute quota exceeded error code.", +"TLS routes quota exceeded error code.", +"TrafficPolicy quota exceeded error code.", +"EndpointPolicy quota exceeded error code.", +"Gateway quota exceeded error code.", +"Mesh quota exceeded error code.", +"ServerTLSPolicy quota exceeded error code.", +"ClientTLSPolicy quota exceeded error code.", +"ServiceLBPolicy quota exceeded error code.", +"HTTPFilter quota exceeded error code.", +"TCPFilter quota exceeded error code.", +"NetworkEndpointGroup quota exceeded error code.", +"Modernization is scheduled for a cluster.", +"Modernization is in progress for a cluster.", +"Modernization is completed for a cluster.", +"Modernization is aborted for a cluster." +], +"type": "string" +}, +"details": { +"description": "A short summary about the issue.", +"type": "string" +}, +"documentationLink": { +"description": "Links contains actionable information.", +"type": "string" +}, +"severity": { +"description": "Severity level of the condition.", +"enum": [ +"SEVERITY_UNSPECIFIED", +"ERROR", +"WARNING", +"INFO" +], +"enumDescriptions": [ +"Unspecified severity", +"Indicates an issue that prevents the mesh from operating correctly", +"Indicates a setting is likely wrong, but the mesh is still able to operate", +"An informational message, not requiring any action" +], +"type": "string" +} +}, +"type": "object" +}, +"ServiceMeshControlPlaneManagement": { +"description": "Status of control plane management.", +"id": "ServiceMeshControlPlaneManagement", +"properties": { +"details": { +"description": "Explanation of state.", +"items": { +"$ref": "ServiceMeshStatusDetails" +}, +"type": "array" +}, +"implementation": { +"description": "Output only. Implementation of managed control plane.", +"enum": [ +"IMPLEMENTATION_UNSPECIFIED", +"ISTIOD", +"TRAFFIC_DIRECTOR", +"UPDATING" +], +"enumDescriptions": [ +"Unspecified", +"A Google build of istiod is used for the managed control plane.", +"Traffic director is used for the managed control plane.", +"The control plane implementation is being updated." +], +"readOnly": true, +"type": "string" +}, +"state": { +"description": "LifecycleState of control plane management.", +"enum": [ +"LIFECYCLE_STATE_UNSPECIFIED", +"DISABLED", +"FAILED_PRECONDITION", +"PROVISIONING", +"ACTIVE", +"STALLED", +"NEEDS_ATTENTION", +"DEGRADED" +], +"enumDescriptions": [ +"Unspecified", +"DISABLED means that the component is not enabled.", +"FAILED_PRECONDITION means that provisioning cannot proceed because of some characteristic of the member cluster.", +"PROVISIONING means that provisioning is in progress.", +"ACTIVE means that the component is ready for use.", +"STALLED means that provisioning could not be done.", +"NEEDS_ATTENTION means that the component is ready, but some user intervention is required. (For example that the user should migrate workloads to a new control plane revision.)", +"DEGRADED means that the component is ready, but operating in a degraded state." +], +"type": "string" +} +}, +"type": "object" +}, +"ServiceMeshDataPlaneManagement": { +"description": "Status of data plane management. Only reported per-member.", +"id": "ServiceMeshDataPlaneManagement", +"properties": { +"details": { +"description": "Explanation of the status.", +"items": { +"$ref": "ServiceMeshStatusDetails" +}, +"type": "array" +}, +"state": { +"description": "Lifecycle status of data plane management.", +"enum": [ +"LIFECYCLE_STATE_UNSPECIFIED", +"DISABLED", +"FAILED_PRECONDITION", +"PROVISIONING", +"ACTIVE", +"STALLED", +"NEEDS_ATTENTION", +"DEGRADED" +], +"enumDescriptions": [ +"Unspecified", +"DISABLED means that the component is not enabled.", +"FAILED_PRECONDITION means that provisioning cannot proceed because of some characteristic of the member cluster.", +"PROVISIONING means that provisioning is in progress.", +"ACTIVE means that the component is ready for use.", +"STALLED means that provisioning could not be done.", +"NEEDS_ATTENTION means that the component is ready, but some user intervention is required. (For example that the user should migrate workloads to a new control plane revision.)", +"DEGRADED means that the component is ready, but operating in a degraded state." +], +"type": "string" +} +}, +"type": "object" +}, +"ServiceMeshMembershipSpec": { +"description": "**Service Mesh**: Spec for a single Membership for the servicemesh feature", +"id": "ServiceMeshMembershipSpec", +"properties": { +"configApi": { +"description": "Optional. Specifies the API that will be used for configuring the mesh workloads.", +"enum": [ +"CONFIG_API_UNSPECIFIED", +"CONFIG_API_ISTIO", +"CONFIG_API_GATEWAY" +], +"enumDescriptions": [ +"Unspecified", +"Use the Istio API for configuration.", +"Use the K8s Gateway API for configuration." +], +"type": "string" +}, +"controlPlane": { +"deprecated": true, +"description": "Deprecated: use `management` instead Enables automatic control plane management.", +"enum": [ +"CONTROL_PLANE_MANAGEMENT_UNSPECIFIED", +"AUTOMATIC", +"MANUAL" +], +"enumDescriptions": [ +"Unspecified", +"Google should provision a control plane revision and make it available in the cluster. Google will enroll this revision in a release channel and keep it up to date. The control plane revision may be a managed service, or a managed install.", +"User will manually configure the control plane (e.g. via CLI, or via the ControlPlaneRevision KRM API)" +], +"type": "string" +}, +"management": { +"description": "Optional. Enables automatic Service Mesh management.", +"enum": [ +"MANAGEMENT_UNSPECIFIED", +"MANAGEMENT_AUTOMATIC", +"MANAGEMENT_MANUAL" +], +"enumDescriptions": [ +"Unspecified", +"Google should manage my Service Mesh for the cluster.", +"User will manually configure their service mesh components." +], +"type": "string" +} +}, +"type": "object" +}, +"ServiceMeshMembershipState": { +"description": "**Service Mesh**: State for a single Membership, as analyzed by the Service Mesh Hub Controller.", +"id": "ServiceMeshMembershipState", +"properties": { +"conditions": { +"description": "Output only. List of conditions reported for this membership.", +"items": { +"$ref": "ServiceMeshCondition" +}, +"readOnly": true, +"type": "array" +}, +"controlPlaneManagement": { +"$ref": "ServiceMeshControlPlaneManagement", +"description": "Output only. Status of control plane management", +"readOnly": true +}, +"dataPlaneManagement": { +"$ref": "ServiceMeshDataPlaneManagement", +"description": "Output only. Status of data plane management.", +"readOnly": true +} +}, +"type": "object" +}, +"ServiceMeshStatusDetails": { +"description": "Structured and human-readable details for a status.", +"id": "ServiceMeshStatusDetails", +"properties": { +"code": { +"description": "A machine-readable code that further describes a broad status.", +"type": "string" +}, +"details": { +"description": "Human-readable explanation of code.", +"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 specifies state for the subcomponent.", +"id": "Status", +"properties": { +"code": { +"description": "Code specifies AppDevExperienceFeature's subcomponent ready state.", +"enum": [ +"CODE_UNSPECIFIED", +"OK", +"FAILED", +"UNKNOWN" +], +"enumDescriptions": [ +"Not set.", +"AppDevExperienceFeature's specified subcomponent is ready.", +"AppDevExperienceFeature's specified subcomponent ready state is false. This means AppDevExperienceFeature has encountered an issue that blocks all, or a portion, of its normal operation. See the `description` for more details.", +"AppDevExperienceFeature's specified subcomponent has a pending or unknown state." +], +"type": "string" +}, +"description": { +"description": "Description is populated if Code is Failed, explaining why it has failed.", +"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" +}, +"TypeMeta": { +"description": "TypeMeta is the type information needed for content unmarshalling of Kubernetes resources in the manifest.", +"id": "TypeMeta", +"properties": { +"apiVersion": { +"description": "APIVersion of the resource (e.g. v1).", +"type": "string" +}, +"kind": { +"description": "Kind of the resource (e.g. Deployment).", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "GKE Hub API", +"version": "v1beta", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/gkehub.v1beta1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/gkehub.v1beta1.json new file mode 100644 index 0000000000000000000000000000000000000000..b5da67dd57f1336a51be382a9ad98855fd8e254a --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/gkehub.v1beta1.json @@ -0,0 +1,1597 @@ +{ +"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://gkehub.googleapis.com/", +"batchPath": "batch", +"canonicalName": "GKE Hub", +"description": "", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/anthos/multicluster-management/connect/registering-a-cluster", +"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": "gkehub:v1beta1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://gkehub.mtls.googleapis.com/", +"name": "gkehub", +"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": "gkehub.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": "gkehub.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": { +"memberships": { +"methods": { +"create": { +"description": "Creates a new Membership. **This is currently only supported for GKE clusters on Google Cloud**. To register other clusters, follow the instructions at https://cloud.google.com/anthos/multicluster-management/connect/registering-a-cluster.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/memberships", +"httpMethod": "POST", +"id": "gkehub.projects.locations.memberships.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"membershipId": { +"description": "Required. Client chosen ID for the membership. `membership_id` must be a valid RFC 1123 compliant DNS label: 1. At most 63 characters in length 2. It must consist of lower case alphanumeric characters or `-` 3. It must start and end with an alphanumeric character Which can be expressed as the regex: `[a-z0-9]([-a-z0-9]*[a-z0-9])?`, with a maximum length of 63 characters.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent (project and location) where the Memberships will be created. Specified in the format `projects/*/locations/*`.", +"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 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": "v1beta1/{+parent}/memberships", +"request": { +"$ref": "Membership" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Removes a Membership. **This is currently only supported for GKE clusters on Google Cloud**. To unregister other clusters, follow the instructions at https://cloud.google.com/anthos/multicluster-management/connect/unregistering-a-cluster.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}", +"httpMethod": "DELETE", +"id": "gkehub.projects.locations.memberships.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"force": { +"description": "Optional. If set to true, any subresource from this Membership will also be deleted. Otherwise, the request will only work if the Membership has no subresource.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Required. The Membership resource name in the format `projects/*/locations/*/memberships/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+$", +"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": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"generateConnectManifest": { +"description": "Generates the manifest for deployment of the GKE connect agent. **This method is used internally by Google-provided libraries.** Most clients should not need to call this method directly.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}:generateConnectManifest", +"httpMethod": "GET", +"id": "gkehub.projects.locations.memberships.generateConnectManifest", +"parameterOrder": [ +"name" +], +"parameters": { +"connectAgent.name": { +"deprecated": true, +"description": "Do not set.", +"location": "query", +"type": "string" +}, +"connectAgent.namespace": { +"description": "Optional. Namespace for GKE Connect agent resources. Defaults to `gke-connect`. The Connect Agent is authorized automatically when run in the default namespace. Otherwise, explicit authorization must be granted with an additional IAM binding.", +"location": "query", +"type": "string" +}, +"connectAgent.proxy": { +"description": "Optional. URI of a proxy if connectivity from the agent to gkeconnect.googleapis.com requires the use of a proxy. Format must be in the form `http(s)://{proxy_address}`, depending on the HTTP/HTTPS protocol supported by the proxy. This will direct the connect agent's outbound traffic through a HTTP(S) proxy.", +"format": "byte", +"location": "query", +"type": "string" +}, +"imagePullSecretContent": { +"description": "Optional. The image pull secret content for the registry, if not public.", +"format": "byte", +"location": "query", +"type": "string" +}, +"isUpgrade": { +"description": "Optional. If true, generate the resources for upgrade only. Some resources generated only for installation (e.g. secrets) will be excluded.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Required. The Membership resource name the Agent will associate with, in the format `projects/*/locations/*/memberships/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+$", +"required": true, +"type": "string" +}, +"registry": { +"description": "Optional. The registry to fetch the connect agent image from. Defaults to gcr.io/gkeconnect.", +"location": "query", +"type": "string" +}, +"version": { +"description": "Optional. The Connect agent version to use. Defaults to the most current version.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}:generateConnectManifest", +"response": { +"$ref": "GenerateConnectManifestResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"generateExclusivityManifest": { +"description": "GenerateExclusivityManifest generates the manifests to update the exclusivity artifacts in the cluster if needed. Exclusivity artifacts include the Membership custom resource definition (CRD) and the singleton Membership custom resource (CR). Combined with ValidateExclusivity, exclusivity artifacts guarantee that a Kubernetes cluster is only registered to a single GKE Hub. The Membership CRD is versioned, and may require conversion when the GKE Hub API server begins serving a newer version of the CRD and corresponding CR. The response will be the converted CRD and CR if there are any differences between the versions.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}:generateExclusivityManifest", +"httpMethod": "GET", +"id": "gkehub.projects.locations.memberships.generateExclusivityManifest", +"parameterOrder": [ +"name" +], +"parameters": { +"crManifest": { +"description": "Optional. The YAML manifest of the membership CR retrieved by `kubectl get memberships membership`. Leave empty if the resource does not exist.", +"location": "query", +"type": "string" +}, +"crdManifest": { +"description": "Optional. The YAML manifest of the membership CRD retrieved by `kubectl get customresourcedefinitions membership`. Leave empty if the resource does not exist.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. The Membership resource name in the format `projects/*/locations/*/memberships/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}:generateExclusivityManifest", +"response": { +"$ref": "GenerateExclusivityManifestResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the details of a Membership.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}", +"httpMethod": "GET", +"id": "gkehub.projects.locations.memberships.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The Membership resource name in the format `projects/*/locations/*/memberships/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Membership" +}, +"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}/memberships/{membershipsId}:getIamPolicy", +"httpMethod": "GET", +"id": "gkehub.projects.locations.memberships.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/[^/]+/memberships/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists Memberships in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/memberships", +"httpMethod": "GET", +"id": "gkehub.projects.locations.memberships.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Lists Memberships that match the filter expression, following the syntax outlined in https://google.aip.dev/160. Examples: - Name is `bar` in project `foo-proj` and location `global`: name = \"projects/foo-proj/locations/global/membership/bar\" - Memberships that have a label called `foo`: labels.foo:* - Memberships that have a label called `foo` whose value is `bar`: labels.foo = bar - Memberships in the CREATING state: state = CREATING", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. One or more fields to compare and use to sort the output. See https://google.aip.dev/132#ordering.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. When requesting a 'page' of resources, `page_size` specifies number of resources to return. If unspecified or set to 0, all resources will be returned.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Token returned by previous call to `ListMemberships` which specifies the position in the list from where to continue listing the resources.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent (project and location) where the Memberships will be listed. Specified in the format `projects/*/locations/*`. `projects/*/locations/-` list memberships in all the regions.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/memberships", +"response": { +"$ref": "ListMembershipsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates an existing Membership.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/memberships/{membershipsId}", +"httpMethod": "PATCH", +"id": "gkehub.projects.locations.memberships.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The membership resource name in the format: `projects/[project_id]/locations/global/memberships/[membership_id]`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/memberships/[^/]+$", +"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" +}, +"updateMask": { +"description": "Required. Mask of fields to update. At least one field path must be specified in this mask.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "Membership" +}, +"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}/memberships/{membershipsId}:setIamPolicy", +"httpMethod": "POST", +"id": "gkehub.projects.locations.memberships.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/[^/]+/memberships/[^/]+$", +"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}/memberships/{membershipsId}:testIamPermissions", +"httpMethod": "POST", +"id": "gkehub.projects.locations.memberships.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/[^/]+/memberships/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"validateExclusivity": { +"description": "ValidateExclusivity validates the state of exclusivity in the cluster. The validation does not depend on an existing Hub membership resource.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/memberships:validateExclusivity", +"httpMethod": "GET", +"id": "gkehub.projects.locations.memberships.validateExclusivity", +"parameterOrder": [ +"parent" +], +"parameters": { +"crManifest": { +"description": "Optional. The YAML of the membership CR in the cluster. Empty if the membership CR does not exist.", +"location": "query", +"type": "string" +}, +"intendedMembership": { +"description": "Required. The intended membership name under the `parent`. This method only does validation in anticipation of a CreateMembership call with the same name.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent (project and location) where the Memberships will be created. Specified in the format `projects/*/locations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/memberships:validateExclusivity", +"response": { +"$ref": "ValidateExclusivityResponse" +}, +"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": "gkehub.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": "gkehub.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": "gkehub.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": "gkehub.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": "20241206", +"rootUrl": "https://gkehub.googleapis.com/", +"schemas": { +"ApplianceCluster": { +"description": "ApplianceCluster contains information specific to GDC Edge Appliance Clusters.", +"id": "ApplianceCluster", +"properties": { +"resourceLink": { +"description": "Immutable. Self-link of the GCP resource for the Appliance Cluster. For example: //transferappliance.googleapis.com/projects/my-project/locations/us-west1-a/appliances/my-appliance", +"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" +}, +"Authority": { +"description": "Authority encodes how Google will recognize identities from this Membership. See the workload identity documentation for more details: https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity", +"id": "Authority", +"properties": { +"identityProvider": { +"description": "Output only. An identity provider that reflects the `issuer` in the workload identity pool.", +"readOnly": true, +"type": "string" +}, +"issuer": { +"description": "Optional. A JSON Web Token (JWT) issuer URI. `issuer` must start with `https://` and be a valid URL with length <2000 characters. If set, then Google will allow valid OIDC tokens from this issuer to authenticate within the workload_identity_pool. OIDC discovery will be performed on this URI to validate tokens from the issuer. Clearing `issuer` disables Workload Identity. `issuer` cannot be directly modified; it must be cleared (and Workload Identity disabled) before using a new issuer (and re-enabling Workload Identity).", +"type": "string" +}, +"oidcJwks": { +"description": "Optional. OIDC verification keys for this Membership in JWKS format (RFC 7517). When this field is set, OIDC discovery will NOT be performed on `issuer`, and instead OIDC tokens will be validated using this field.", +"format": "byte", +"type": "string" +}, +"scopeTenancyIdentityProvider": { +"description": "Optional. Output only. The identity provider for the scope-tenancy workload identity pool.", +"readOnly": true, +"type": "string" +}, +"scopeTenancyWorkloadIdentityPool": { +"description": "Optional. Output only. The name of the scope-tenancy workload identity pool. This pool is set in the fleet-level feature.", +"readOnly": true, +"type": "string" +}, +"workloadIdentityPool": { +"description": "Output only. The name of the workload identity pool in which `issuer` will be recognized. There is a single Workload Identity Pool per Hub that is shared between all Memberships that belong to that Hub. For a Hub hosted in {PROJECT_ID}, the workload pool format is `{PROJECT_ID}.hub.id.goog`, although this is subject to change in newer versions of this API.", +"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" +}, +"CancelOperationRequest": { +"description": "The request message for Operations.CancelOperation.", +"id": "CancelOperationRequest", +"properties": {}, +"type": "object" +}, +"ConnectAgentResource": { +"description": "ConnectAgentResource represents a Kubernetes resource manifest for Connect Agent deployment.", +"id": "ConnectAgentResource", +"properties": { +"manifest": { +"description": "YAML manifest of the resource.", +"type": "string" +}, +"type": { +"$ref": "TypeMeta", +"description": "Kubernetes type of the resource." +} +}, +"type": "object" +}, +"EdgeCluster": { +"description": "EdgeCluster contains information specific to Google Edge Clusters.", +"id": "EdgeCluster", +"properties": { +"resourceLink": { +"description": "Immutable. Self-link of the GCP resource for the Edge Cluster. For example: //edgecontainer.googleapis.com/projects/my-project/locations/us-west1-a/clusters/my-cluster", +"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" +}, +"GenerateConnectManifestResponse": { +"description": "GenerateConnectManifestResponse contains manifest information for installing/upgrading a Connect agent.", +"id": "GenerateConnectManifestResponse", +"properties": { +"manifest": { +"description": "The ordered list of Kubernetes resources that need to be applied to the cluster for GKE Connect agent installation/upgrade.", +"items": { +"$ref": "ConnectAgentResource" +}, +"type": "array" +} +}, +"type": "object" +}, +"GenerateExclusivityManifestResponse": { +"description": "The response of the exclusivity artifacts manifests for the client to apply.", +"id": "GenerateExclusivityManifestResponse", +"properties": { +"crManifest": { +"description": "The YAML manifest of the membership CR to apply if a new version of the CR is available. Empty if no update needs to be applied.", +"type": "string" +}, +"crdManifest": { +"description": "The YAML manifest of the membership CRD to apply if a newer version of the CRD is available. Empty if no update needs to be applied.", +"type": "string" +} +}, +"type": "object" +}, +"GkeCluster": { +"description": "GkeCluster contains information specific to GKE clusters.", +"id": "GkeCluster", +"properties": { +"clusterMissing": { +"description": "Output only. If cluster_missing is set then it denotes that the GKE cluster no longer exists in the GKE Control Plane.", +"readOnly": true, +"type": "boolean" +}, +"resourceLink": { +"description": "Immutable. Self-link of the GCP resource for the GKE cluster. For example: //container.googleapis.com/projects/my-project/locations/us-west1-a/clusters/my-cluster Zonal clusters are also supported.", +"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" +}, +"KubernetesMetadata": { +"description": "KubernetesMetadata provides informational metadata for Memberships representing Kubernetes clusters.", +"id": "KubernetesMetadata", +"properties": { +"kubernetesApiServerVersion": { +"description": "Output only. Kubernetes API server version string as reported by '/version'.", +"readOnly": true, +"type": "string" +}, +"memoryMb": { +"description": "Output only. The total memory capacity as reported by the sum of all Kubernetes nodes resources, defined in MB.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"nodeCount": { +"description": "Output only. Node count as reported by Kubernetes nodes resources.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"nodeProviderId": { +"description": "Output only. Node providerID as reported by the first node in the list of nodes on the Kubernetes endpoint. On Kubernetes platforms that support zero-node clusters (like GKE-on-GCP), the node_count will be zero and the node_provider_id will be empty.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The time at which these details were last updated. This update_time is different from the Membership-level update_time since EndpointDetails are updated internally for API consumers.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"vcpuCount": { +"description": "Output only. vCPU count as reported by Kubernetes nodes resources.", +"format": "int32", +"readOnly": true, +"type": "integer" +} +}, +"type": "object" +}, +"KubernetesResource": { +"description": "KubernetesResource contains the YAML manifests and configuration for Membership Kubernetes resources in the cluster. After CreateMembership or UpdateMembership, these resources should be re-applied in the cluster.", +"id": "KubernetesResource", +"properties": { +"connectResources": { +"description": "Output only. The Kubernetes resources for installing the GKE Connect agent This field is only populated in the Membership returned from a successful long-running operation from CreateMembership or UpdateMembership. It is not populated during normal GetMembership or ListMemberships requests. To get the resource manifest after the initial registration, the caller should make a UpdateMembership call with an empty field mask.", +"items": { +"$ref": "ResourceManifest" +}, +"readOnly": true, +"type": "array" +}, +"membershipCrManifest": { +"description": "Input only. The YAML representation of the Membership CR. This field is ignored for GKE clusters where Hub can read the CR directly. Callers should provide the CR that is currently present in the cluster during CreateMembership or UpdateMembership, or leave this field empty if none exists. The CR manifest is used to validate the cluster has not been registered with another Membership.", +"type": "string" +}, +"membershipResources": { +"description": "Output only. Additional Kubernetes resources that need to be applied to the cluster after Membership creation, and after every update. This field is only populated in the Membership returned from a successful long-running operation from CreateMembership or UpdateMembership. It is not populated during normal GetMembership or ListMemberships requests. To get the resource manifest after the initial registration, the caller should make a UpdateMembership call with an empty field mask.", +"items": { +"$ref": "ResourceManifest" +}, +"readOnly": true, +"type": "array" +}, +"resourceOptions": { +"$ref": "ResourceOptions", +"description": "Optional. Options for Kubernetes resource generation." +} +}, +"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" +}, +"ListMembershipsResponse": { +"description": "Response message for the `GkeHubMembershipService.ListMemberships` method.", +"id": "ListMembershipsResponse", +"properties": { +"nextPageToken": { +"description": "A token to request the next page of resources from the `ListMemberships` method. The value of an empty string means that there are no more resources to return.", +"type": "string" +}, +"resources": { +"description": "The list of matching Memberships.", +"items": { +"$ref": "Membership" +}, +"type": "array" +}, +"unreachable": { +"description": "List of locations that could not be reached while fetching this list.", +"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" +}, +"Membership": { +"description": "Membership contains information about a member cluster.", +"id": "Membership", +"properties": { +"authority": { +"$ref": "Authority", +"description": "Optional. How to identify workloads from this Membership. See the documentation on Workload Identity for more details: https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity" +}, +"createTime": { +"description": "Output only. When the Membership was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"deleteTime": { +"description": "Output only. When the Membership was deleted.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. Description of this membership, limited to 63 characters. Must match the regex: `a-zA-Z0-9*`", +"type": "string" +}, +"endpoint": { +"$ref": "MembershipEndpoint", +"description": "Optional. Endpoint information to reach this member." +}, +"externalId": { +"description": "Optional. An externally-generated and managed ID for this Membership. This ID may be modified after creation, but this is not recommended. For GKE clusters, external_id is managed by the Hub API and updates will be ignored. The ID must match the regex: `a-zA-Z0-9*` If this Membership represents a Kubernetes cluster, this value should be set to the UID of the `kube-system` namespace object.", +"type": "string" +}, +"infrastructureType": { +"description": "Optional. The infrastructure type this Membership is running on.", +"enum": [ +"INFRASTRUCTURE_TYPE_UNSPECIFIED", +"ON_PREM", +"MULTI_CLOUD" +], +"enumDescriptions": [ +"No type was specified. Some Hub functionality may require a type be specified, and will not support Memberships with this value.", +"Private infrastructure that is owned or operated by customer. This includes GKE distributions such as GKE-OnPrem and GKE-OnBareMetal.", +"Public cloud infrastructure." +], +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. GCP labels for this membership.", +"type": "object" +}, +"lastConnectionTime": { +"description": "Output only. For clusters using Connect, the timestamp of the most recent connection established with Google Cloud. This time is updated every several minutes, not continuously. For clusters that do not use GKE Connect, or that have never connected successfully, this field will be unset.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"monitoringConfig": { +"$ref": "MonitoringConfig", +"description": "Optional. The monitoring config information for this membership." +}, +"name": { +"description": "Output only. The full, unique name of this Membership resource in the format `projects/*/locations/*/memberships/{membership_id}`, set during creation. `membership_id` must be a valid RFC 1123 compliant DNS label: 1. At most 63 characters in length 2. It must consist of lower case alphanumeric characters or `-` 3. It must start and end with an alphanumeric character Which can be expressed as the regex: `[a-z0-9]([-a-z0-9]*[a-z0-9])?`, with a maximum length of 63 characters.", +"readOnly": true, +"type": "string" +}, +"state": { +"$ref": "MembershipState", +"description": "Output only. State of the Membership resource.", +"readOnly": true +}, +"uniqueId": { +"description": "Output only. Google-generated UUID for this resource. This is unique across all Membership resources. If a Membership resource is deleted and another resource with the same name is created, it gets a different unique_id.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. When the Membership was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"MembershipEndpoint": { +"description": "MembershipEndpoint contains information needed to contact a Kubernetes API, endpoint and any additional Kubernetes metadata.", +"id": "MembershipEndpoint", +"properties": { +"applianceCluster": { +"$ref": "ApplianceCluster", +"description": "Optional. Specific information for a GDC Edge Appliance cluster." +}, +"edgeCluster": { +"$ref": "EdgeCluster", +"description": "Optional. Specific information for a Google Edge cluster." +}, +"gkeCluster": { +"$ref": "GkeCluster", +"description": "Optional. Specific information for a GKE-on-GCP cluster." +}, +"kubernetesMetadata": { +"$ref": "KubernetesMetadata", +"description": "Output only. Useful Kubernetes-specific metadata.", +"readOnly": true +}, +"kubernetesResource": { +"$ref": "KubernetesResource", +"description": "Optional. The in-cluster Kubernetes Resources that should be applied for a correctly registered cluster, in the steady state. These resources: * Ensure that the cluster is exclusively registered to one and only one Hub Membership. * Propagate Workload Pool Information available in the Membership Authority field. * Ensure proper initial configuration of default Hub Features." +}, +"multiCloudCluster": { +"$ref": "MultiCloudCluster", +"description": "Optional. Specific information for a GKE Multi-Cloud cluster." +}, +"onPremCluster": { +"$ref": "OnPremCluster", +"description": "Optional. Specific information for a GKE On-Prem cluster. An onprem user-cluster who has no resourceLink is not allowed to use this field, it should have a nil \"type\" instead." +} +}, +"type": "object" +}, +"MembershipState": { +"description": "State of the Membership resource.", +"id": "MembershipState", +"properties": { +"code": { +"description": "Output only. The current state of the Membership resource.", +"enum": [ +"CODE_UNSPECIFIED", +"CREATING", +"READY", +"DELETING", +"UPDATING", +"SERVICE_UPDATING" +], +"enumDescriptions": [ +"The code is not set.", +"The cluster is being registered.", +"The cluster is registered.", +"The cluster is being unregistered.", +"The Membership is being updated.", +"The Membership is being updated by the Hub Service." +], +"readOnly": true, +"type": "string" +}, +"description": { +"deprecated": true, +"description": "This field is never set by the Hub Service.", +"type": "string" +}, +"updateTime": { +"deprecated": true, +"description": "This field is never set by the Hub Service.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"MonitoringConfig": { +"description": "MonitoringConfig informs Fleet-based applications/services/UIs how the metrics for the underlying cluster is reported to cloud monitoring services. It can be set from empty to non-empty, but can't be mutated directly to prevent accidentally breaking the constinousty of metrics.", +"id": "MonitoringConfig", +"properties": { +"cluster": { +"description": "Optional. Cluster name used to report metrics. For Anthos on VMWare/Baremetal/MultiCloud clusters, it would be in format {cluster_type}/{cluster_name}, e.g., \"awsClusters/cluster_1\".", +"type": "string" +}, +"clusterHash": { +"description": "Optional. For GKE and Multicloud clusters, this is the UUID of the cluster resource. For VMWare and Baremetal clusters, this is the kube-system UID.", +"type": "string" +}, +"kubernetesMetricsPrefix": { +"description": "Optional. Kubernetes system metrics, if available, are written to this prefix. This defaults to kubernetes.io for GKE, and kubernetes.io/anthos for Anthos eventually. Noted: Anthos MultiCloud will have kubernetes.io prefix today but will migration to be under kubernetes.io/anthos.", +"type": "string" +}, +"location": { +"description": "Optional. Location used to report Metrics", +"type": "string" +}, +"projectId": { +"description": "Optional. Project used to report Metrics", +"type": "string" +} +}, +"type": "object" +}, +"MultiCloudCluster": { +"description": "MultiCloudCluster contains information specific to GKE Multi-Cloud clusters.", +"id": "MultiCloudCluster", +"properties": { +"clusterMissing": { +"description": "Output only. If cluster_missing is set then it denotes that API(gkemulticloud.googleapis.com) resource for this GKE Multi-Cloud cluster no longer exists.", +"readOnly": true, +"type": "boolean" +}, +"resourceLink": { +"description": "Immutable. Self-link of the GCP resource for the GKE Multi-Cloud cluster. For example: //gkemulticloud.googleapis.com/projects/my-project/locations/us-west1-a/awsClusters/my-cluster //gkemulticloud.googleapis.com/projects/my-project/locations/us-west1-a/azureClusters/my-cluster //gkemulticloud.googleapis.com/projects/my-project/locations/us-west1-a/attachedClusters/my-cluster", +"type": "string" +} +}, +"type": "object" +}, +"OnPremCluster": { +"description": "OnPremCluster contains information specific to GKE On-Prem clusters.", +"id": "OnPremCluster", +"properties": { +"adminCluster": { +"description": "Immutable. Whether the cluster is an admin cluster.", +"type": "boolean" +}, +"clusterMissing": { +"description": "Output only. If cluster_missing is set then it denotes that API(gkeonprem.googleapis.com) resource for this GKE On-Prem cluster no longer exists.", +"readOnly": true, +"type": "boolean" +}, +"clusterType": { +"description": "Immutable. The on prem cluster's type.", +"enum": [ +"CLUSTERTYPE_UNSPECIFIED", +"BOOTSTRAP", +"HYBRID", +"STANDALONE", +"USER" +], +"enumDescriptions": [ +"The ClusterType is not set.", +"The ClusterType is bootstrap cluster.", +"The ClusterType is baremetal hybrid cluster.", +"The ClusterType is baremetal standalone cluster.", +"The ClusterType is user cluster." +], +"type": "string" +}, +"resourceLink": { +"description": "Immutable. Self-link of the GCP resource for the GKE On-Prem cluster. For example: //gkeonprem.googleapis.com/projects/my-project/locations/us-west1-a/vmwareClusters/my-cluster //gkeonprem.googleapis.com/projects/my-project/locations/us-west1-a/bareMetalClusters/my-cluster", +"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": "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" +}, +"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 successfully been cancelled have 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" +}, +"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" +}, +"ResourceManifest": { +"description": "ResourceManifest represents a single Kubernetes resource to be applied to the cluster.", +"id": "ResourceManifest", +"properties": { +"clusterScoped": { +"description": "Whether the resource provided in the manifest is `cluster_scoped`. If unset, the manifest is assumed to be namespace scoped. This field is used for REST mapping when applying the resource in a cluster.", +"type": "boolean" +}, +"manifest": { +"description": "YAML manifest of the resource.", +"type": "string" +} +}, +"type": "object" +}, +"ResourceOptions": { +"description": "ResourceOptions represent options for Kubernetes resource generation.", +"id": "ResourceOptions", +"properties": { +"connectVersion": { +"description": "Optional. The Connect agent version to use for connect_resources. Defaults to the latest GKE Connect version. The version must be a currently supported version, obsolete versions will be rejected.", +"type": "string" +}, +"k8sVersion": { +"description": "Optional. Major version of the Kubernetes cluster. This is only used to determine which version to use for the CustomResourceDefinition resources, `apiextensions/v1beta1` or`apiextensions/v1`.", +"type": "string" +}, +"v1beta1Crd": { +"description": "Optional. Use `apiextensions/v1beta1` instead of `apiextensions/v1` for CustomResourceDefinition resources. This option should be set for clusters with Kubernetes apiserver versions <1.16.", +"type": "boolean" +} +}, +"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" +}, +"TypeMeta": { +"description": "TypeMeta is the type information needed for content unmarshalling of Kubernetes resources in the manifest.", +"id": "TypeMeta", +"properties": { +"apiVersion": { +"description": "APIVersion of the resource (e.g. v1).", +"type": "string" +}, +"kind": { +"description": "Kind of the resource (e.g. Deployment).", +"type": "string" +} +}, +"type": "object" +}, +"ValidateExclusivityResponse": { +"description": "The response of exclusivity artifacts validation result status.", +"id": "ValidateExclusivityResponse", +"properties": { +"status": { +"$ref": "GoogleRpcStatus", +"description": "The validation result. * `OK` means that exclusivity is validated, assuming the manifest produced by GenerateExclusivityManifest is successfully applied. * `ALREADY_EXISTS` means that the Membership CRD is already owned by another Hub. See `status.message` for more information." +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "GKE Hub 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/gkeonprem.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/gkeonprem.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..73bcc0eb7147c01879a8ce49e93338d0408704b8 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/gkeonprem.v1.json @@ -0,0 +1,6884 @@ +{ +"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://gkeonprem.googleapis.com/", +"batchPath": "batch", +"canonicalName": "GKE On-Prem", +"description": "", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/anthos/clusters/docs/on-prem/", +"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": "gkeonprem:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://gkeonprem.mtls.googleapis.com/", +"name": "gkeonprem", +"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": "gkeonprem.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": "gkeonprem.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": { +"bareMetalAdminClusters": { +"methods": { +"create": { +"description": "Creates a new bare metal admin cluster in a given project and location. The API needs to be combined with creating a bootstrap cluster to work. See: https://cloud.google.com/anthos/clusters/docs/bare-metal/latest/installing/creating-clusters/create-admin-cluster-api#prepare_bootstrap_environment", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/bareMetalAdminClusters", +"httpMethod": "POST", +"id": "gkeonprem.projects.locations.bareMetalAdminClusters.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"allowPreflightFailure": { +"description": "Optional. If set to true, CLM will force CCFE to persist the cluster resource in RMS when the creation fails during standalone preflight checks. In that case the subsequent create call will fail with \"cluster already exists\" error and hence a update cluster is required to fix the cluster.", +"location": "query", +"type": "boolean" +}, +"bareMetalAdminClusterId": { +"description": "Required. User provided identifier that is used as part of the resource name; must conform to RFC-1034 and additionally restrict to lower-cased letters. This comes out roughly to: /^a-z+[a-z0-9]$/", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent of the project and location where the cluster is created in. Format: \"projects/{project}/locations/{location}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"validateOnly": { +"description": "Validate the request without actually doing any updates.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+parent}/bareMetalAdminClusters", +"request": { +"$ref": "BareMetalAdminCluster" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"enroll": { +"description": "Enrolls an existing bare metal admin cluster to the Anthos On-Prem API within a given project and location. Through enrollment, an existing admin cluster will become Anthos On-Prem API managed. The corresponding GCP resources will be created and all future modifications to the cluster will be expected to be performed through the API.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/bareMetalAdminClusters:enroll", +"httpMethod": "POST", +"id": "gkeonprem.projects.locations.bareMetalAdminClusters.enroll", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent of the project and location where the cluster is enrolled in. Format: \"projects/{project}/locations/{location}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/bareMetalAdminClusters:enroll", +"request": { +"$ref": "EnrollBareMetalAdminClusterRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single bare metal admin cluster.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/bareMetalAdminClusters/{bareMetalAdminClustersId}", +"httpMethod": "GET", +"id": "gkeonprem.projects.locations.bareMetalAdminClusters.get", +"parameterOrder": [ +"name" +], +"parameters": { +"allowMissing": { +"description": "Optional. If true, return BareMetal Admin Cluster including the one that only exists in RMS.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Required. Name of the bare metal admin cluster to get. Format: \"projects/{project}/locations/{location}/bareMetalAdminClusters/{bare_metal_admin_cluster}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/bareMetalAdminClusters/[^/]+$", +"required": true, +"type": "string" +}, +"view": { +"description": "View for bare metal admin cluster. When `BASIC` is specified, only the cluster resource name and membership are returned. The default/unset value `CLUSTER_VIEW_UNSPECIFIED` is the same as `FULL', which returns the complete cluster configuration details.", +"enum": [ +"CLUSTER_VIEW_UNSPECIFIED", +"BASIC", +"FULL" +], +"enumDescriptions": [ +"If the value is not set, the default `FULL` view is used.", +"Includes basic information of a cluster resource including cluster resource name and membership.", +"Includes the complete configuration for bare metal admin cluster resource. This is the default value for GetBareMetalAdminClusterRequest method." +], +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "BareMetalAdminCluster" +}, +"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}/bareMetalAdminClusters/{bareMetalAdminClustersId}:getIamPolicy", +"httpMethod": "GET", +"id": "gkeonprem.projects.locations.bareMetalAdminClusters.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/[^/]+/bareMetalAdminClusters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists bare metal admin clusters in a given project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/bareMetalAdminClusters", +"httpMethod": "GET", +"id": "gkeonprem.projects.locations.bareMetalAdminClusters.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"allowMissing": { +"description": "Optional. If true, return list of BareMetal Admin Clusters including the ones that only exists in RMS.", +"location": "query", +"type": "boolean" +}, +"pageSize": { +"description": "Requested page size. Server may return fewer items than requested. If unspecified, at most 50 clusters 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 token identifying a page of results the server should return.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent of the project and location where the clusters are listed in. Format: \"projects/{project}/locations/{location}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"view": { +"description": "View for bare metal admin clusters. When `BASIC` is specified, only the admin cluster resource name and membership are returned. The default/unset value `CLUSTER_VIEW_UNSPECIFIED` is the same as `FULL', which returns the complete admin cluster configuration details.", +"enum": [ +"CLUSTER_VIEW_UNSPECIFIED", +"BASIC", +"FULL" +], +"enumDescriptions": [ +"If the value is not set, the default `FULL` view is used.", +"Includes basic information of a admin cluster resource including admin cluster resource name and membership.", +"Includes the complete configuration for bare metal admin cluster resource. This is the default value for ListBareMetalAdminClustersRequest method." +], +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/bareMetalAdminClusters", +"response": { +"$ref": "ListBareMetalAdminClustersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the parameters of a single bare metal admin cluster.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/bareMetalAdminClusters/{bareMetalAdminClustersId}", +"httpMethod": "PATCH", +"id": "gkeonprem.projects.locations.bareMetalAdminClusters.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Immutable. The bare metal admin cluster resource name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/bareMetalAdminClusters/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. Field mask is used to specify the fields to be overwritten in the BareMetalAdminCluster 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 populated fields in the BareMetalAdminCluster message will be updated. Empty fields will be ignored unless a field mask is used.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Validate the request without actually doing any updates.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "BareMetalAdminCluster" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"queryVersionConfig": { +"description": "Queries the bare metal admin cluster version config.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/bareMetalAdminClusters:queryVersionConfig", +"httpMethod": "POST", +"id": "gkeonprem.projects.locations.bareMetalAdminClusters.queryVersionConfig", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent of the project and location to query for version config. Format: \"projects/{project}/locations/{location}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"upgradeConfig.clusterName": { +"description": "The admin cluster resource name. This is the full resource name of the admin cluster resource. Format: \"projects/{project}/locations/{location}/bareMetalAdminClusters/{bare_metal_admin_cluster}\"", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/bareMetalAdminClusters:queryVersionConfig", +"response": { +"$ref": "QueryBareMetalAdminVersionConfigResponse" +}, +"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}/bareMetalAdminClusters/{bareMetalAdminClustersId}:setIamPolicy", +"httpMethod": "POST", +"id": "gkeonprem.projects.locations.bareMetalAdminClusters.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/[^/]+/bareMetalAdminClusters/[^/]+$", +"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 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}/bareMetalAdminClusters/{bareMetalAdminClustersId}:testIamPermissions", +"httpMethod": "POST", +"id": "gkeonprem.projects.locations.bareMetalAdminClusters.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/[^/]+/bareMetalAdminClusters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"unenroll": { +"description": "Unenrolls an existing bare metal admin cluster from the Anthos On-Prem API within a given project and location. Unenrollment removes the Cloud reference to the cluster without modifying the underlying OnPrem Resources. Clusters will continue to run; however, they will no longer be accessible through the Anthos On-Prem API or its clients.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/bareMetalAdminClusters/{bareMetalAdminClustersId}:unenroll", +"httpMethod": "DELETE", +"id": "gkeonprem.projects.locations.bareMetalAdminClusters.unenroll", +"parameterOrder": [ +"name" +], +"parameters": { +"allowMissing": { +"description": "If set to true, and the bare metal admin cluster is not found, the request will succeed but no action will be taken on the server and return a completed LRO.", +"location": "query", +"type": "boolean" +}, +"etag": { +"description": "The current etag of the bare metal admin cluster. If an etag is provided and does not match the current etag of the cluster, deletion will be blocked and an ABORTED error will be returned.", +"location": "query", +"type": "string" +}, +"ignoreErrors": { +"description": "If set to true, the unenrollment of a bare metal admin cluster resource will succeed even if errors occur during unenrollment. This parameter can be used when you want to unenroll admin cluster resource and the on-prem admin cluster is disconnected / unreachable. WARNING: Using this parameter when your admin cluster still exists may result in a deleted GCP admin cluster but existing resourcelink in on-prem admin cluster and membership.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Required. Name of the bare metal admin cluster to be unenrolled. Format: \"projects/{project}/locations/{location}/bareMetalAdminClusters/{cluster}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/bareMetalAdminClusters/[^/]+$", +"required": true, +"type": "string" +}, +"validateOnly": { +"description": "Validate the request without actually doing any updates.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+name}:unenroll", +"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}/bareMetalAdminClusters/{bareMetalAdminClustersId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "gkeonprem.projects.locations.bareMetalAdminClusters.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/bareMetalAdminClusters/[^/]+/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}/bareMetalAdminClusters/{bareMetalAdminClustersId}/operations", +"httpMethod": "GET", +"id": "gkeonprem.projects.locations.bareMetalAdminClusters.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/[^/]+/bareMetalAdminClusters/[^/]+$", +"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" +] +} +} +} +} +}, +"bareMetalClusters": { +"methods": { +"create": { +"description": "Creates a new bare metal cluster in a given project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/bareMetalClusters", +"httpMethod": "POST", +"id": "gkeonprem.projects.locations.bareMetalClusters.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"allowPreflightFailure": { +"description": "Optional. If set to true, CLM will force CCFE to persist the cluster resource in RMS when the creation fails during standalone preflight checks. In that case the subsequent create call will fail with \"cluster already exists\" error and hence a update cluster is required to fix the cluster.", +"location": "query", +"type": "boolean" +}, +"bareMetalClusterId": { +"description": "Required. User provided identifier that is used as part of the resource name; must conform to RFC-1034 and additionally restrict to lower-cased letters. This comes out roughly to: /^a-z+[a-z0-9]$/", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent of the project and location where the cluster is created in. Format: \"projects/{project}/locations/{location}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"validateOnly": { +"description": "Validate the request without actually doing any updates.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+parent}/bareMetalClusters", +"request": { +"$ref": "BareMetalCluster" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single bare metal Cluster.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/bareMetalClusters/{bareMetalClustersId}", +"httpMethod": "DELETE", +"id": "gkeonprem.projects.locations.bareMetalClusters.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"allowMissing": { +"description": "If set to true, and the bare metal cluster is not found, the request will succeed but no action will be taken on the server and return a completed LRO.", +"location": "query", +"type": "boolean" +}, +"etag": { +"description": "The current etag of the bare metal Cluster. If an etag is provided and does not match the current etag of the cluster, deletion will be blocked and an ABORTED error will be returned.", +"location": "query", +"type": "string" +}, +"force": { +"description": "If set to true, any node pools from the cluster will also be deleted.", +"location": "query", +"type": "boolean" +}, +"ignoreErrors": { +"description": "If set to true, the deletion of a bare metal user cluster resource will succeed even if errors occur during deletion. This parameter can be used when you want to delete GCP's cluster resource and the on-prem admin cluster that hosts your user cluster is disconnected / unreachable or deleted. WARNING: Using this parameter when your user cluster still exists may result in a deleted GCP user cluster but an existing on-prem user cluster.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Required. Name of the bare metal user cluster to be deleted. Format: \"projects/{project}/locations/{location}/bareMetalClusters/{bare_metal_cluster}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/bareMetalClusters/[^/]+$", +"required": true, +"type": "string" +}, +"validateOnly": { +"description": "Validate the request without actually doing any updates.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"enroll": { +"description": "Enrolls an existing bare metal user cluster and its node pools to the Anthos On-Prem API within a given project and location. Through enrollment, an existing cluster will become Anthos On-Prem API managed. The corresponding GCP resources will be created and all future modifications to the cluster and/or its node pools will be expected to be performed through the API.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/bareMetalClusters:enroll", +"httpMethod": "POST", +"id": "gkeonprem.projects.locations.bareMetalClusters.enroll", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent of the project and location where the cluster is enrolled in. Format: \"projects/{project}/locations/{location}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/bareMetalClusters:enroll", +"request": { +"$ref": "EnrollBareMetalClusterRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single bare metal Cluster.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/bareMetalClusters/{bareMetalClustersId}", +"httpMethod": "GET", +"id": "gkeonprem.projects.locations.bareMetalClusters.get", +"parameterOrder": [ +"name" +], +"parameters": { +"allowMissing": { +"description": "Optional. If true, return BareMetal Cluster including the one that only exists in RMS.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Required. Name of the bare metal user cluster to get. Format: \"projects/{project}/locations/{location}/bareMetalClusters/{bare_metal_cluster}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/bareMetalClusters/[^/]+$", +"required": true, +"type": "string" +}, +"view": { +"description": "View for bare metal user cluster. When `BASIC` is specified, only the cluster resource name and admin cluster membership are returned. The default/unset value `CLUSTER_VIEW_UNSPECIFIED` is the same as `FULL', which returns the complete cluster configuration details.", +"enum": [ +"CLUSTER_VIEW_UNSPECIFIED", +"BASIC", +"FULL" +], +"enumDescriptions": [ +"If the value is not set, the default `FULL` view is used.", +"Includes basic information of a cluster resource including cluster resource name and admin cluster membership.", +"Includes the complete configuration for bare metal cluster resource. This is the default value for GetBareMetalClusterRequest method." +], +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "BareMetalCluster" +}, +"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}/bareMetalClusters/{bareMetalClustersId}:getIamPolicy", +"httpMethod": "GET", +"id": "gkeonprem.projects.locations.bareMetalClusters.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/[^/]+/bareMetalClusters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists bare metal clusters in a given project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/bareMetalClusters", +"httpMethod": "GET", +"id": "gkeonprem.projects.locations.bareMetalClusters.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"allowMissing": { +"description": "Optional. If true, return list of BareMetal Clusters including the ones that only exists in RMS.", +"location": "query", +"type": "boolean" +}, +"filter": { +"description": "A resource filtering expression following https://google.aip.dev/160. When non-empty, only resource's whose attributes field matches the filter are returned.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Server may return fewer items than requested. If unspecified, at most 50 clusters 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 token identifying a page of results the server should return.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent of the project and location where the clusters are listed in. Format: \"projects/{project}/locations/{location}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"view": { +"description": "View for bare metal Clusters. When `BASIC` is specified, only the cluster resource name and admin cluster membership are returned. The default/unset value `CLUSTER_VIEW_UNSPECIFIED` is the same as `FULL', which returns the complete cluster configuration details.", +"enum": [ +"CLUSTER_VIEW_UNSPECIFIED", +"BASIC", +"FULL" +], +"enumDescriptions": [ +"If the value is not set, the default `FULL` view is used.", +"Includes basic information of a cluster resource including cluster resource name and admin cluster membership.", +"Includes the complete configuration for bare metal cluster resource. This is the default value for ListBareMetalClustersRequest method." +], +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/bareMetalClusters", +"response": { +"$ref": "ListBareMetalClustersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the parameters of a single bare metal Cluster.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/bareMetalClusters/{bareMetalClustersId}", +"httpMethod": "PATCH", +"id": "gkeonprem.projects.locations.bareMetalClusters.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"allowMissing": { +"description": "If set to true, and the bare metal cluster is not found, the request will create a new bare metal cluster with the provided configuration. The user must have both create and update permission to call Update with allow_missing set to true.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Immutable. The bare metal user cluster resource name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/bareMetalClusters/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. Field mask is used to specify the fields to be overwritten in the BareMetalCluster 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 populated fields in the BareMetalCluster message will be updated. Empty fields will be ignored unless a field mask is used.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Validate the request without actually doing any updates.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "BareMetalCluster" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"queryVersionConfig": { +"description": "Queries the bare metal user cluster version config.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/bareMetalClusters:queryVersionConfig", +"httpMethod": "POST", +"id": "gkeonprem.projects.locations.bareMetalClusters.queryVersionConfig", +"parameterOrder": [ +"parent" +], +"parameters": { +"createConfig.adminClusterMembership": { +"description": "The admin cluster membership. This is the full resource name of the admin cluster's fleet membership. Format: \"projects/{project}/locations/{location}/memberships/{membership}\"", +"location": "query", +"type": "string" +}, +"createConfig.adminClusterName": { +"description": "The admin cluster resource name. This is the full resource name of the admin cluster resource. Format: \"projects/{project}/locations/{location}/bareMetalAdminClusters/{bare_metal_admin_cluster}\"", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent of the project and location to query for version config. Format: \"projects/{project}/locations/{location}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"upgradeConfig.clusterName": { +"description": "The user cluster resource name. This is the full resource name of the user cluster resource. Format: \"projects/{project}/locations/{location}/bareMetalClusters/{bare_metal_cluster}\"", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/bareMetalClusters:queryVersionConfig", +"response": { +"$ref": "QueryBareMetalVersionConfigResponse" +}, +"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}/bareMetalClusters/{bareMetalClustersId}:setIamPolicy", +"httpMethod": "POST", +"id": "gkeonprem.projects.locations.bareMetalClusters.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/[^/]+/bareMetalClusters/[^/]+$", +"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 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}/bareMetalClusters/{bareMetalClustersId}:testIamPermissions", +"httpMethod": "POST", +"id": "gkeonprem.projects.locations.bareMetalClusters.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/[^/]+/bareMetalClusters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"unenroll": { +"description": "Unenrolls an existing bare metal user cluster and its node pools from the Anthos On-Prem API within a given project and location. Unenrollment removes the Cloud reference to the cluster without modifying the underlying OnPrem Resources. Clusters and node pools will continue to run; however, they will no longer be accessible through the Anthos On-Prem API or its clients.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/bareMetalClusters/{bareMetalClustersId}:unenroll", +"httpMethod": "DELETE", +"id": "gkeonprem.projects.locations.bareMetalClusters.unenroll", +"parameterOrder": [ +"name" +], +"parameters": { +"allowMissing": { +"description": "If set to true, and the bare metal cluster is not found, the request will succeed but no action will be taken on the server and return a completed LRO.", +"location": "query", +"type": "boolean" +}, +"etag": { +"description": "The current etag of the bare metal Cluster. If an etag is provided and does not match the current etag of the cluster, deletion will be blocked and an ABORTED error will be returned.", +"location": "query", +"type": "string" +}, +"force": { +"description": "This is required if the cluster has any associated node pools. When set, any child node pools will also be unenrolled.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Required. Name of the bare metal user cluster to be unenrolled. Format: \"projects/{project}/locations/{location}/bareMetalClusters/{cluster}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/bareMetalClusters/[^/]+$", +"required": true, +"type": "string" +}, +"validateOnly": { +"description": "Validate the request without actually doing any updates.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+name}:unenroll", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"bareMetalNodePools": { +"methods": { +"create": { +"description": "Creates a new bare metal node pool in a given project, location and Bare Metal cluster.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/bareMetalClusters/{bareMetalClustersId}/bareMetalNodePools", +"httpMethod": "POST", +"id": "gkeonprem.projects.locations.bareMetalClusters.bareMetalNodePools.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"bareMetalNodePoolId": { +"description": "The ID to use for the node pool, which will become the final component of the node pool's resource name. This value must be up to 63 characters, and valid characters are /a-z-/. The value must not be permitted to be a UUID (or UUID-like: anything matching /^[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}$/i).", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource where this node pool will be created. projects/{project}/locations/{location}/bareMetalClusters/{cluster}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/bareMetalClusters/[^/]+$", +"required": true, +"type": "string" +}, +"validateOnly": { +"description": "If set, only validate the request, but do not actually create the node pool.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+parent}/bareMetalNodePools", +"request": { +"$ref": "BareMetalNodePool" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single bare metal node pool.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/bareMetalClusters/{bareMetalClustersId}/bareMetalNodePools/{bareMetalNodePoolsId}", +"httpMethod": "DELETE", +"id": "gkeonprem.projects.locations.bareMetalClusters.bareMetalNodePools.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"allowMissing": { +"description": "If set to true, and the bare metal node pool is not found, the request will succeed but no action will be taken on the server and return a completed LRO.", +"location": "query", +"type": "boolean" +}, +"etag": { +"description": "The current etag of the BareMetalNodePool. If an etag is provided and does not match the current etag of the node pool, deletion will be blocked and an ABORTED error will be returned.", +"location": "query", +"type": "string" +}, +"ignoreErrors": { +"description": "If set to true, the deletion of a bare metal node pool resource will succeed even if errors occur during deletion. This parameter can be used when you want to delete GCP's node pool resource and you've already deleted the on-prem admin cluster that hosted your node pool. WARNING: Using this parameter when your user cluster still exists may result in a deleted GCP node pool but an existing on-prem node pool.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Required. The name of the node pool to delete. Format: projects/{project}/locations/{location}/bareMetalClusters/{cluster}/bareMetalNodePools/{nodepool}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/bareMetalClusters/[^/]+/bareMetalNodePools/[^/]+$", +"required": true, +"type": "string" +}, +"validateOnly": { +"description": "If set, only validate the request, but do not actually delete the node pool.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"enroll": { +"description": "Enrolls an existing bare metal node pool to the Anthos On-Prem API within a given project and location. Through enrollment, an existing node pool will become Anthos On-Prem API managed. The corresponding GCP resources will be created.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/bareMetalClusters/{bareMetalClustersId}/bareMetalNodePools:enroll", +"httpMethod": "POST", +"id": "gkeonprem.projects.locations.bareMetalClusters.bareMetalNodePools.enroll", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource where this node pool will be created. projects/{project}/locations/{location}/bareMetalClusters/{cluster}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/bareMetalClusters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/bareMetalNodePools:enroll", +"request": { +"$ref": "EnrollBareMetalNodePoolRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single bare metal node pool.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/bareMetalClusters/{bareMetalClustersId}/bareMetalNodePools/{bareMetalNodePoolsId}", +"httpMethod": "GET", +"id": "gkeonprem.projects.locations.bareMetalClusters.bareMetalNodePools.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the node pool to retrieve. projects/{project}/locations/{location}/bareMetalClusters/{cluster}/bareMetalNodePools/{nodepool}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/bareMetalClusters/[^/]+/bareMetalNodePools/[^/]+$", +"required": true, +"type": "string" +}, +"view": { +"description": "View for bare metal node pool. When `BASIC` is specified, only the node pool resource name is returned. The default/unset value `NODE_POOL_VIEW_UNSPECIFIED` is the same as `FULL', which returns the complete node pool configuration details.", +"enum": [ +"NODE_POOL_VIEW_UNSPECIFIED", +"BASIC", +"FULL" +], +"enumDescriptions": [ +"If the value is not set, the default `FULL` view is used.", +"Includes basic information of a node pool resource including node pool resource name.", +"Includes the complete configuration for bare metal node pool resource. This is the default value for GetBareMetalNodePoolRequest method." +], +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "BareMetalNodePool" +}, +"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}/bareMetalClusters/{bareMetalClustersId}/bareMetalNodePools/{bareMetalNodePoolsId}:getIamPolicy", +"httpMethod": "GET", +"id": "gkeonprem.projects.locations.bareMetalClusters.bareMetalNodePools.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/[^/]+/bareMetalClusters/[^/]+/bareMetalNodePools/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists bare metal node pools in a given project, location and bare metal cluster.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/bareMetalClusters/{bareMetalClustersId}/bareMetalNodePools", +"httpMethod": "GET", +"id": "gkeonprem.projects.locations.bareMetalClusters.bareMetalNodePools.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of node pools to return. The service may return fewer than this value. If unspecified, at most 50 node pools 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 `ListBareMetalNodePools` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListBareMetalNodePools` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent, which owns this collection of node pools. Format: projects/{project}/locations/{location}/bareMetalClusters/{bareMetalCluster}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/bareMetalClusters/[^/]+$", +"required": true, +"type": "string" +}, +"view": { +"description": "View for bare metal node pools. When `BASIC` is specified, only the node pool resource name is returned. The default/unset value `NODE_POOL_VIEW_UNSPECIFIED` is the same as `FULL', which returns the complete node pool configuration details.", +"enum": [ +"NODE_POOL_VIEW_UNSPECIFIED", +"BASIC", +"FULL" +], +"enumDescriptions": [ +"If the value is not set, the default `FULL` view is used.", +"Includes basic information of a node pool resource including node pool resource name.", +"Includes the complete configuration for bare metal node pool resource. This is the default value for ListBareMetalNodePoolsRequest method." +], +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/bareMetalNodePools", +"response": { +"$ref": "ListBareMetalNodePoolsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the parameters of a single bare metal node pool.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/bareMetalClusters/{bareMetalClustersId}/bareMetalNodePools/{bareMetalNodePoolsId}", +"httpMethod": "PATCH", +"id": "gkeonprem.projects.locations.bareMetalClusters.bareMetalNodePools.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"allowMissing": { +"description": "If set to true, and the bare metal node pool is not found, the request will create a new bare metal node pool with the provided configuration. The user must have both create and update permission to call Update with allow_missing set to true.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Immutable. The bare metal node pool resource name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/bareMetalClusters/[^/]+/bareMetalNodePools/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. Field mask is used to specify the fields to be overwritten in the BareMetalNodePool 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 populated fields in the BareMetalNodePool message will be updated. Empty fields will be ignored unless a field mask is used.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Validate the request without actually doing any updates.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "BareMetalNodePool" +}, +"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": "v1/projects/{projectsId}/locations/{locationsId}/bareMetalClusters/{bareMetalClustersId}/bareMetalNodePools/{bareMetalNodePoolsId}:setIamPolicy", +"httpMethod": "POST", +"id": "gkeonprem.projects.locations.bareMetalClusters.bareMetalNodePools.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/[^/]+/bareMetalClusters/[^/]+/bareMetalNodePools/[^/]+$", +"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 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}/bareMetalClusters/{bareMetalClustersId}/bareMetalNodePools/{bareMetalNodePoolsId}:testIamPermissions", +"httpMethod": "POST", +"id": "gkeonprem.projects.locations.bareMetalClusters.bareMetalNodePools.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/[^/]+/bareMetalClusters/[^/]+/bareMetalNodePools/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"unenroll": { +"description": "Unenrolls a bare metal node pool from Anthos On-Prem API.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/bareMetalClusters/{bareMetalClustersId}/bareMetalNodePools/{bareMetalNodePoolsId}:unenroll", +"httpMethod": "DELETE", +"id": "gkeonprem.projects.locations.bareMetalClusters.bareMetalNodePools.unenroll", +"parameterOrder": [ +"name" +], +"parameters": { +"allowMissing": { +"description": "If set to true, and the bare metal node pool is not found, the request will succeed but no action will be taken on the server and return a completed LRO.", +"location": "query", +"type": "boolean" +}, +"etag": { +"description": "The current etag of the bare metal node pool. If an etag is provided and does not match the current etag of node pool, deletion will be blocked and an ABORTED error will be returned.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. The name of the node pool to unenroll. Format: projects/{project}/locations/{location}/bareMetalClusters/{cluster}/bareMetalNodePools/{nodepool}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/bareMetalClusters/[^/]+/bareMetalNodePools/[^/]+$", +"required": true, +"type": "string" +}, +"validateOnly": { +"description": "If set, only validate the request, but do not actually unenroll the node pool.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+name}:unenroll", +"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}/bareMetalClusters/{bareMetalClustersId}/bareMetalNodePools/{bareMetalNodePoolsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "gkeonprem.projects.locations.bareMetalClusters.bareMetalNodePools.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/bareMetalClusters/[^/]+/bareMetalNodePools/[^/]+/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}/bareMetalClusters/{bareMetalClustersId}/bareMetalNodePools/{bareMetalNodePoolsId}/operations", +"httpMethod": "GET", +"id": "gkeonprem.projects.locations.bareMetalClusters.bareMetalNodePools.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/[^/]+/bareMetalClusters/[^/]+/bareMetalNodePools/[^/]+$", +"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" +] +} +} +} +} +}, +"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}/bareMetalClusters/{bareMetalClustersId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "gkeonprem.projects.locations.bareMetalClusters.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/bareMetalClusters/[^/]+/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}/bareMetalClusters/{bareMetalClustersId}/operations", +"httpMethod": "GET", +"id": "gkeonprem.projects.locations.bareMetalClusters.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/[^/]+/bareMetalClusters/[^/]+$", +"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" +] +} +} +} +} +}, +"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": "gkeonprem.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": "gkeonprem.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": "gkeonprem.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": "gkeonprem.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" +] +} +} +}, +"vmwareAdminClusters": { +"methods": { +"create": { +"description": "Creates a new VMware admin cluster in a given project and location. The API needs to be combined with creating a bootstrap cluster to work.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/vmwareAdminClusters", +"httpMethod": "POST", +"id": "gkeonprem.projects.locations.vmwareAdminClusters.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"allowPreflightFailure": { +"description": "Optional. If set to true, CLM will force CCFE to persist the cluster resource in RMS when the creation fails during standalone preflight checks. In that case the subsequent create call will fail with \"cluster already exists\" error and hence a update cluster is required to fix the cluster.", +"location": "query", +"type": "boolean" +}, +"parent": { +"description": "Required. The parent of the project and location where the cluster is created in. Format: \"projects/{project}/locations/{location}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"validateOnly": { +"description": "Validate the request without actually doing any updates.", +"location": "query", +"type": "boolean" +}, +"vmwareAdminClusterId": { +"description": "Required. User provided identifier that is used as part of the resource name; must conform to RFC-1034 and additionally restrict to lower-cased letters. This comes out roughly to: /^a-z+[a-z0-9]$/", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/vmwareAdminClusters", +"request": { +"$ref": "VmwareAdminCluster" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"enroll": { +"description": "Enrolls an existing VMware admin cluster to the Anthos On-Prem API within a given project and location. Through enrollment, an existing admin cluster will become Anthos On-Prem API managed. The corresponding GCP resources will be created and all future modifications to the cluster will be expected to be performed through the API.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/vmwareAdminClusters:enroll", +"httpMethod": "POST", +"id": "gkeonprem.projects.locations.vmwareAdminClusters.enroll", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent of the project and location where the cluster is enrolled in. Format: \"projects/{project}/locations/{location}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/vmwareAdminClusters:enroll", +"request": { +"$ref": "EnrollVmwareAdminClusterRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single VMware admin cluster.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/vmwareAdminClusters/{vmwareAdminClustersId}", +"httpMethod": "GET", +"id": "gkeonprem.projects.locations.vmwareAdminClusters.get", +"parameterOrder": [ +"name" +], +"parameters": { +"allowMissing": { +"description": "Optional. If true, return Vmware Admin Cluster including the one that only exists in RMS.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Required. Name of the VMware admin cluster to be returned. Format: \"projects/{project}/locations/{location}/vmwareAdminClusters/{vmware_admin_cluster}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/vmwareAdminClusters/[^/]+$", +"required": true, +"type": "string" +}, +"view": { +"description": "View for VMware admin cluster. When `BASIC` is specified, only the cluster resource name and membership are returned. The default/unset value `CLUSTER_VIEW_UNSPECIFIED` is the same as `FULL', which returns the complete cluster configuration details.", +"enum": [ +"CLUSTER_VIEW_UNSPECIFIED", +"BASIC", +"FULL" +], +"enumDescriptions": [ +"If the value is not set, the default `FULL` view is used.", +"Includes basic information of a cluster resource including cluster resource name and membership.", +"Includes the complete configuration for VMware admin cluster resource. This is the default value for GetVmwareAdminClusterRequest method." +], +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "VmwareAdminCluster" +}, +"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}/vmwareAdminClusters/{vmwareAdminClustersId}:getIamPolicy", +"httpMethod": "GET", +"id": "gkeonprem.projects.locations.vmwareAdminClusters.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/[^/]+/vmwareAdminClusters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists VMware admin clusters in a given project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/vmwareAdminClusters", +"httpMethod": "GET", +"id": "gkeonprem.projects.locations.vmwareAdminClusters.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"allowMissing": { +"description": "Optional. If true, return list of Vmware Admin Clusters including the ones that only exists in RMS.", +"location": "query", +"type": "boolean" +}, +"pageSize": { +"description": "Requested page size. Server may return fewer items than requested. If unspecified, at most 50 clusters 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 token identifying a page of results the server should return.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent of the project and location where the clusters are listed in. Format: \"projects/{project}/locations/{location}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"view": { +"description": "View for VMware admin clusters. When `BASIC` is specified, only the admin cluster resource name and membership are returned. The default/unset value `CLUSTER_VIEW_UNSPECIFIED` is the same as `FULL', which returns the complete admin cluster configuration details.", +"enum": [ +"CLUSTER_VIEW_UNSPECIFIED", +"BASIC", +"FULL" +], +"enumDescriptions": [ +"If the value is not set, the default `FULL` view is used.", +"Includes basic information of a admin cluster resource including admin cluster resource name and membership.", +"Includes the complete configuration for bare metal admin cluster resource. This is the default value for ListVmwareAdminClustersRequest method." +], +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/vmwareAdminClusters", +"response": { +"$ref": "ListVmwareAdminClustersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the parameters of a single VMware admin cluster.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/vmwareAdminClusters/{vmwareAdminClustersId}", +"httpMethod": "PATCH", +"id": "gkeonprem.projects.locations.vmwareAdminClusters.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Immutable. The VMware admin cluster resource name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/vmwareAdminClusters/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. Field mask is used to specify the fields to be overwritten in the VMwareAdminCluster 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 populated fields in the VmwareAdminCluster message will be updated. Empty fields will be ignored unless a field mask is used.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Validate the request without actually doing any updates.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "VmwareAdminCluster" +}, +"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": "v1/projects/{projectsId}/locations/{locationsId}/vmwareAdminClusters/{vmwareAdminClustersId}:setIamPolicy", +"httpMethod": "POST", +"id": "gkeonprem.projects.locations.vmwareAdminClusters.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/[^/]+/vmwareAdminClusters/[^/]+$", +"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 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}/vmwareAdminClusters/{vmwareAdminClustersId}:testIamPermissions", +"httpMethod": "POST", +"id": "gkeonprem.projects.locations.vmwareAdminClusters.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/[^/]+/vmwareAdminClusters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"unenroll": { +"description": "Unenrolls an existing VMware admin cluster from the Anthos On-Prem API within a given project and location. Unenrollment removes the Cloud reference to the cluster without modifying the underlying OnPrem Resources. Clusters will continue to run; however, they will no longer be accessible through the Anthos On-Prem API or its clients.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/vmwareAdminClusters/{vmwareAdminClustersId}:unenroll", +"httpMethod": "DELETE", +"id": "gkeonprem.projects.locations.vmwareAdminClusters.unenroll", +"parameterOrder": [ +"name" +], +"parameters": { +"allowMissing": { +"description": "If set to true, and the VMware admin cluster is not found, the request will succeed but no action will be taken on the server and return a completed LRO.", +"location": "query", +"type": "boolean" +}, +"etag": { +"description": "The current etag of the VMware admin cluster. If an etag is provided and does not match the current etag of the cluster, deletion will be blocked and an ABORTED error will be returned.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. Name of the VMware admin cluster to be unenrolled. Format: \"projects/{project}/locations/{location}/vmwareAdminClusters/{cluster}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/vmwareAdminClusters/[^/]+$", +"required": true, +"type": "string" +}, +"validateOnly": { +"description": "Validate the request without actually doing any updates.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+name}:unenroll", +"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}/vmwareAdminClusters/{vmwareAdminClustersId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "gkeonprem.projects.locations.vmwareAdminClusters.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/vmwareAdminClusters/[^/]+/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}/vmwareAdminClusters/{vmwareAdminClustersId}/operations", +"httpMethod": "GET", +"id": "gkeonprem.projects.locations.vmwareAdminClusters.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/[^/]+/vmwareAdminClusters/[^/]+$", +"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" +] +} +} +} +} +}, +"vmwareClusters": { +"methods": { +"create": { +"description": "Creates a new VMware user cluster in a given project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/vmwareClusters", +"httpMethod": "POST", +"id": "gkeonprem.projects.locations.vmwareClusters.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"allowPreflightFailure": { +"description": "Optional. If set to true, CLM will force CCFE to persist the cluster resource in RMS when the creation fails during standalone preflight checks. In that case the subsequent create call will fail with \"cluster already exists\" error and hence a update cluster is required to fix the cluster.", +"location": "query", +"type": "boolean" +}, +"parent": { +"description": "Required. The parent of the project and location where this cluster is created in. Format: \"projects/{project}/locations/{location}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"validateOnly": { +"description": "Validate the request without actually doing any updates.", +"location": "query", +"type": "boolean" +}, +"vmwareClusterId": { +"description": "User provided identifier that is used as part of the resource name; This value must be up to 40 characters and follow RFC-1123 (https://tools.ietf.org/html/rfc1123) format.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/vmwareClusters", +"request": { +"$ref": "VmwareCluster" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single VMware Cluster.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/vmwareClusters/{vmwareClustersId}", +"httpMethod": "DELETE", +"id": "gkeonprem.projects.locations.vmwareClusters.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"allowMissing": { +"description": "If set to true, and the VMware cluster is not found, the request will succeed but no action will be taken on the server and return a completed LRO.", +"location": "query", +"type": "boolean" +}, +"etag": { +"description": "The current etag of the VMware cluster. If an etag is provided and does not match the current etag of the cluster, deletion will be blocked and an ABORTED error will be returned.", +"location": "query", +"type": "string" +}, +"force": { +"description": "If set to true, any node pools from the cluster will also be deleted.", +"location": "query", +"type": "boolean" +}, +"ignoreErrors": { +"description": "If set to true, the deletion of a VMware user cluster resource will succeed even if errors occur during deletion. This parameter can be used when you want to delete GCP's cluster resource and the on-prem admin cluster that hosts your user cluster is disconnected / unreachable or deleted. WARNING: Using this parameter when your user cluster still exists may result in a deleted GCP user cluster but an existing on-prem user cluster.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Required. Name of the VMware user cluster to be deleted. Format: \"projects/{project}/locations/{location}/vmwareClusters/{vmware_cluster}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/vmwareClusters/[^/]+$", +"required": true, +"type": "string" +}, +"validateOnly": { +"description": "Validate the request without actually doing any updates.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"enroll": { +"description": "Enrolls an existing VMware user cluster and its node pools to the Anthos On-Prem API within a given project and location. Through enrollment, an existing cluster will become Anthos On-Prem API managed. The corresponding GCP resources will be created and all future modifications to the cluster and/or its node pools will be expected to be performed through the API.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/vmwareClusters:enroll", +"httpMethod": "POST", +"id": "gkeonprem.projects.locations.vmwareClusters.enroll", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent of the project and location where the cluster is Enrolled in. Format: \"projects/{project}/locations/{location}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/vmwareClusters:enroll", +"request": { +"$ref": "EnrollVmwareClusterRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single VMware Cluster.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/vmwareClusters/{vmwareClustersId}", +"httpMethod": "GET", +"id": "gkeonprem.projects.locations.vmwareClusters.get", +"parameterOrder": [ +"name" +], +"parameters": { +"allowMissing": { +"description": "Optional. If true, return Vmware Cluster including the one that only exists in RMS.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Required. Name of the VMware user cluster to be returned. Format: \"projects/{project}/locations/{location}/vmwareClusters/{vmware_cluster}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/vmwareClusters/[^/]+$", +"required": true, +"type": "string" +}, +"view": { +"description": "View for VMware user cluster. When `BASIC` is specified, only the cluster resource name and admin cluster membership are returned. The default/unset value `CLUSTER_VIEW_UNSPECIFIED` is the same as `FULL', which returns the complete cluster configuration details.", +"enum": [ +"CLUSTER_VIEW_UNSPECIFIED", +"BASIC", +"FULL" +], +"enumDescriptions": [ +"If the value is not set, the default `FULL` view is used.", +"Includes basic information of a cluster resource including cluster resource name and admin cluster membership.", +"Includes the complete configuration for VMware cluster resource. This is the default value for GetVmwareClusterRequest method." +], +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "VmwareCluster" +}, +"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}/vmwareClusters/{vmwareClustersId}:getIamPolicy", +"httpMethod": "GET", +"id": "gkeonprem.projects.locations.vmwareClusters.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/[^/]+/vmwareClusters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists VMware Clusters in a given project and location.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/vmwareClusters", +"httpMethod": "GET", +"id": "gkeonprem.projects.locations.vmwareClusters.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"allowMissing": { +"description": "Optional. If true, return list of Vmware Clusters including the ones that only exists in RMS.", +"location": "query", +"type": "boolean" +}, +"filter": { +"description": "A resource filtering expression following https://google.aip.dev/160. When non-empty, only resource's whose attributes field matches the filter are returned.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Requested page size. Server may return fewer items than requested. If unspecified, at most 50 clusters 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 token identifying a page of results the server should return.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent of the project and location where the clusters are listed in. Format: \"projects/{project}/locations/{location}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"view": { +"description": "View for VMware clusters. When `BASIC` is specified, only the cluster resource name and admin cluster membership are returned. The default/unset value `CLUSTER_VIEW_UNSPECIFIED` is the same as `FULL', which returns the complete cluster configuration details.", +"enum": [ +"CLUSTER_VIEW_UNSPECIFIED", +"BASIC", +"FULL" +], +"enumDescriptions": [ +"If the value is not set, the default `FULL` view is used.", +"Includes basic information of a cluster resource including cluster resource name and admin cluster membership.", +"Includes the complete configuration for VMware cluster resource. This is the default value for ListVmwareClustersRequest method." +], +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/vmwareClusters", +"response": { +"$ref": "ListVmwareClustersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the parameters of a single VMware cluster.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/vmwareClusters/{vmwareClustersId}", +"httpMethod": "PATCH", +"id": "gkeonprem.projects.locations.vmwareClusters.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Immutable. The VMware user cluster resource name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/vmwareClusters/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. Field mask is used to specify the fields to be overwritten in the VMwareCluster 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 populated fields in the VmwareCluster message will be updated. Empty fields will be ignored unless a field mask is used.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Validate the request without actually doing any updates.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "VmwareCluster" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"queryVersionConfig": { +"description": "Queries the VMware user cluster version config.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/vmwareClusters:queryVersionConfig", +"httpMethod": "POST", +"id": "gkeonprem.projects.locations.vmwareClusters.queryVersionConfig", +"parameterOrder": [ +"parent" +], +"parameters": { +"createConfig.adminClusterMembership": { +"description": "The admin cluster membership. This is the full resource name of the admin cluster's fleet membership. Format: \"projects/{project}/locations/{location}/memberships/{membership}\"", +"location": "query", +"type": "string" +}, +"createConfig.adminClusterName": { +"description": "The admin cluster resource name. This is the full resource name of the admin cluster resource. Format: \"projects/{project}/locations/{location}/vmwareAdminClusters/{vmware_admin_cluster}\"", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent of the project and location to query for version config. Format: \"projects/{project}/locations/{location}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"upgradeConfig.clusterName": { +"description": "The user cluster resource name. This is the full resource name of the user cluster resource. Format: \"projects/{project}/locations/{location}/vmwareClusters/{vmware_cluster}\"", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/vmwareClusters:queryVersionConfig", +"response": { +"$ref": "QueryVmwareVersionConfigResponse" +}, +"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}/vmwareClusters/{vmwareClustersId}:setIamPolicy", +"httpMethod": "POST", +"id": "gkeonprem.projects.locations.vmwareClusters.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/[^/]+/vmwareClusters/[^/]+$", +"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 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}/vmwareClusters/{vmwareClustersId}:testIamPermissions", +"httpMethod": "POST", +"id": "gkeonprem.projects.locations.vmwareClusters.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/[^/]+/vmwareClusters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"unenroll": { +"description": "Unenrolls an existing VMware user cluster and its node pools from the Anthos On-Prem API within a given project and location. Unenrollment removes the Cloud reference to the cluster without modifying the underlying OnPrem Resources. Clusters and node pools will continue to run; however, they will no longer be accessible through the Anthos On-Prem API or UI.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/vmwareClusters/{vmwareClustersId}:unenroll", +"httpMethod": "DELETE", +"id": "gkeonprem.projects.locations.vmwareClusters.unenroll", +"parameterOrder": [ +"name" +], +"parameters": { +"allowMissing": { +"description": "If set to true, and the VMware cluster is not found, the request will succeed but no action will be taken on the server and return a completed LRO.", +"location": "query", +"type": "boolean" +}, +"etag": { +"description": "The current etag of the VMware Cluster. If an etag is provided and does not match the current etag of the cluster, deletion will be blocked and an ABORTED error will be returned.", +"location": "query", +"type": "string" +}, +"force": { +"description": "This is required if the cluster has any associated node pools. When set, any child node pools will also be unenrolled.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Required. Name of the VMware user cluster to be unenrolled. Format: \"projects/{project}/locations/{location}/vmwareClusters/{vmware_cluster}\"", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/vmwareClusters/[^/]+$", +"required": true, +"type": "string" +}, +"validateOnly": { +"description": "Validate the request without actually doing any updates.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+name}:unenroll", +"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}/vmwareClusters/{vmwareClustersId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "gkeonprem.projects.locations.vmwareClusters.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/vmwareClusters/[^/]+/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}/vmwareClusters/{vmwareClustersId}/operations", +"httpMethod": "GET", +"id": "gkeonprem.projects.locations.vmwareClusters.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/[^/]+/vmwareClusters/[^/]+$", +"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" +] +} +} +}, +"vmwareNodePools": { +"methods": { +"create": { +"description": "Creates a new VMware node pool in a given project, location and VMWare cluster.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/vmwareClusters/{vmwareClustersId}/vmwareNodePools", +"httpMethod": "POST", +"id": "gkeonprem.projects.locations.vmwareClusters.vmwareNodePools.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource where this node pool will be created. projects/{project}/locations/{location}/vmwareClusters/{cluster}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/vmwareClusters/[^/]+$", +"required": true, +"type": "string" +}, +"validateOnly": { +"description": "If set, only validate the request, but do not actually create the node pool.", +"location": "query", +"type": "boolean" +}, +"vmwareNodePoolId": { +"description": "The ID to use for the node pool, which will become the final component of the node pool's resource name. This value must be up to 40 characters and follow RFC-1123 (https://tools.ietf.org/html/rfc1123) format. The value must not be permitted to be a UUID (or UUID-like: anything matching /^[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}$/i).", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/vmwareNodePools", +"request": { +"$ref": "VmwareNodePool" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single VMware node pool.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/vmwareClusters/{vmwareClustersId}/vmwareNodePools/{vmwareNodePoolsId}", +"httpMethod": "DELETE", +"id": "gkeonprem.projects.locations.vmwareClusters.vmwareNodePools.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"allowMissing": { +"description": "If set to true, and the VMware node pool is not found, the request will succeed but no action will be taken on the server and return a completed LRO.", +"location": "query", +"type": "boolean" +}, +"etag": { +"description": "The current etag of the VmwareNodePool. If an etag is provided and does not match the current etag of the node pool, deletion will be blocked and an ABORTED error will be returned.", +"location": "query", +"type": "string" +}, +"ignoreErrors": { +"description": "If set to true, the deletion of a VMware node pool resource will succeed even if errors occur during deletion. This parameter can be used when you want to delete GCP's node pool resource and you've already deleted the on-prem admin cluster that hosted your node pool. WARNING: Using this parameter when your user cluster still exists may result in a deleted GCP node pool but an existing on-prem node pool.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Required. The name of the node pool to delete. Format: projects/{project}/locations/{location}/vmwareClusters/{cluster}/vmwareNodePools/{nodepool}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/vmwareClusters/[^/]+/vmwareNodePools/[^/]+$", +"required": true, +"type": "string" +}, +"validateOnly": { +"description": "If set, only validate the request, but do not actually delete the node pool.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"enroll": { +"description": "Enrolls a VMware node pool to Anthos On-Prem API", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/vmwareClusters/{vmwareClustersId}/vmwareNodePools:enroll", +"httpMethod": "POST", +"id": "gkeonprem.projects.locations.vmwareClusters.vmwareNodePools.enroll", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource where the node pool is enrolled in.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/vmwareClusters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/vmwareNodePools:enroll", +"request": { +"$ref": "EnrollVmwareNodePoolRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single VMware node pool.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/vmwareClusters/{vmwareClustersId}/vmwareNodePools/{vmwareNodePoolsId}", +"httpMethod": "GET", +"id": "gkeonprem.projects.locations.vmwareClusters.vmwareNodePools.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the node pool to retrieve. projects/{project}/locations/{location}/vmwareClusters/{cluster}/vmwareNodePools/{nodepool}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/vmwareClusters/[^/]+/vmwareNodePools/[^/]+$", +"required": true, +"type": "string" +}, +"view": { +"description": "View for VMware node pool. When `BASIC` is specified, only the node pool resource name is returned. The default/unset value `NODE_POOL_VIEW_UNSPECIFIED` is the same as `FULL', which returns the complete node pool configuration details.", +"enum": [ +"NODE_POOL_VIEW_UNSPECIFIED", +"BASIC", +"FULL" +], +"enumDescriptions": [ +"If the value is not set, the default `FULL` view is used.", +"Includes basic information of a node pool resource including node pool resource name.", +"Includes the complete configuration for VMware node pool resource. This is the default value for GetVmwareNodePoolRequest method." +], +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "VmwareNodePool" +}, +"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}/vmwareClusters/{vmwareClustersId}/vmwareNodePools/{vmwareNodePoolsId}:getIamPolicy", +"httpMethod": "GET", +"id": "gkeonprem.projects.locations.vmwareClusters.vmwareNodePools.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/[^/]+/vmwareClusters/[^/]+/vmwareNodePools/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists VMware node pools in a given project, location and VMWare cluster.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/vmwareClusters/{vmwareClustersId}/vmwareNodePools", +"httpMethod": "GET", +"id": "gkeonprem.projects.locations.vmwareClusters.vmwareNodePools.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of node pools to return. The service may return fewer than this value. If unspecified, at most 50 node pools 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 `ListVmwareNodePools` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListVmwareNodePools` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent, which owns this collection of node pools. Format: projects/{project}/locations/{location}/vmwareClusters/{vmwareCluster}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/vmwareClusters/[^/]+$", +"required": true, +"type": "string" +}, +"view": { +"description": "View for VMware node pools. When `BASIC` is specified, only the node pool resource name is returned. The default/unset value `NODE_POOL_VIEW_UNSPECIFIED` is the same as `FULL', which returns the complete node pool configuration details.", +"enum": [ +"NODE_POOL_VIEW_UNSPECIFIED", +"BASIC", +"FULL" +], +"enumDescriptions": [ +"If the value is not set, the default `FULL` view is used.", +"Includes basic information of a node pool resource including node pool resource name.", +"Includes the complete configuration for VMware node pool resource. This is the default value for ListVmwareNodePoolsRequest method." +], +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/vmwareNodePools", +"response": { +"$ref": "ListVmwareNodePoolsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the parameters of a single VMware node pool.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/vmwareClusters/{vmwareClustersId}/vmwareNodePools/{vmwareNodePoolsId}", +"httpMethod": "PATCH", +"id": "gkeonprem.projects.locations.vmwareClusters.vmwareNodePools.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Immutable. The resource name of this node pool.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/vmwareClusters/[^/]+/vmwareNodePools/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. Field mask is used to specify the fields to be overwritten in the VMwareNodePool 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 populated fields in the VMwareNodePool message will be updated. Empty fields will be ignored unless a field mask is used.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"validateOnly": { +"description": "Validate the request without actually doing any updates.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "VmwareNodePool" +}, +"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": "v1/projects/{projectsId}/locations/{locationsId}/vmwareClusters/{vmwareClustersId}/vmwareNodePools/{vmwareNodePoolsId}:setIamPolicy", +"httpMethod": "POST", +"id": "gkeonprem.projects.locations.vmwareClusters.vmwareNodePools.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/[^/]+/vmwareClusters/[^/]+/vmwareNodePools/[^/]+$", +"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 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}/vmwareClusters/{vmwareClustersId}/vmwareNodePools/{vmwareNodePoolsId}:testIamPermissions", +"httpMethod": "POST", +"id": "gkeonprem.projects.locations.vmwareClusters.vmwareNodePools.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/[^/]+/vmwareClusters/[^/]+/vmwareNodePools/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"unenroll": { +"description": "Unenrolls a VMware node pool to Anthos On-Prem API", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/vmwareClusters/{vmwareClustersId}/vmwareNodePools/{vmwareNodePoolsId}:unenroll", +"httpMethod": "DELETE", +"id": "gkeonprem.projects.locations.vmwareClusters.vmwareNodePools.unenroll", +"parameterOrder": [ +"name" +], +"parameters": { +"allowMissing": { +"description": "If set to true, and the VMware node pool is not found, the request will succeed but no action will be taken on the server and return a completed LRO.", +"location": "query", +"type": "boolean" +}, +"etag": { +"description": "The current etag of the VMware node pool. If an etag is provided and does not match the current etag of node pool, deletion will be blocked and an ABORTED error will be returned.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. The name of the node pool to unenroll. Format: projects/{project}/locations/{location}/vmwareClusters/{cluster}/vmwareNodePools/{nodepool}", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/vmwareClusters/[^/]+/vmwareNodePools/[^/]+$", +"required": true, +"type": "string" +}, +"validateOnly": { +"description": "If set, only validate the request, but do not actually unenroll the node pool.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+name}:unenroll", +"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}/vmwareClusters/{vmwareClustersId}/vmwareNodePools/{vmwareNodePoolsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "gkeonprem.projects.locations.vmwareClusters.vmwareNodePools.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/vmwareClusters/[^/]+/vmwareNodePools/[^/]+/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}/vmwareClusters/{vmwareClustersId}/vmwareNodePools/{vmwareNodePoolsId}/operations", +"httpMethod": "GET", +"id": "gkeonprem.projects.locations.vmwareClusters.vmwareNodePools.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/[^/]+/vmwareClusters/[^/]+/vmwareNodePools/[^/]+$", +"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": "20241204", +"rootUrl": "https://gkeonprem.googleapis.com/", +"schemas": { +"Authorization": { +"description": "Authorization defines the On-Prem cluster authorization configuration to bootstrap onto the admin cluster.", +"id": "Authorization", +"properties": { +"adminUsers": { +"description": "For VMware and bare metal user clusters, users will be granted the cluster-admin role on the cluster, which provides full administrative access to the cluster. For bare metal admin clusters, users will be granted the cluster-view role, which limits users to read-only access.", +"items": { +"$ref": "ClusterUser" +}, +"type": "array" +} +}, +"type": "object" +}, +"BareMetalAdminApiServerArgument": { +"description": "BareMetalAdminApiServerArgument represents an arg name->value pair. Only a subset of customized flags are supported. Please refer to the API server documentation below to know the exact format: https://kubernetes.io/docs/reference/command-line-tools-reference/kube-apiserver/", +"id": "BareMetalAdminApiServerArgument", +"properties": { +"argument": { +"description": "Required. The argument name as it appears on the API Server command line please make sure to remove the leading dashes.", +"type": "string" +}, +"value": { +"description": "Required. The value of the arg as it will be passed to the API Server command line.", +"type": "string" +} +}, +"type": "object" +}, +"BareMetalAdminCluster": { +"description": "Resource that represents a bare metal admin cluster.", +"id": "BareMetalAdminCluster", +"properties": { +"annotations": { +"additionalProperties": { +"type": "string" +}, +"description": "Annotations on the bare metal admin cluster. This field has the same restrictions as Kubernetes annotations. 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" +}, +"bareMetalVersion": { +"description": "The Anthos clusters on bare metal version for the bare metal admin cluster.", +"type": "string" +}, +"binaryAuthorization": { +"$ref": "BinaryAuthorization", +"description": "Binary Authorization related configurations." +}, +"clusterOperations": { +"$ref": "BareMetalAdminClusterOperationsConfig", +"description": "Cluster operations configuration." +}, +"controlPlane": { +"$ref": "BareMetalAdminControlPlaneConfig", +"description": "Control plane configuration." +}, +"createTime": { +"description": "Output only. The time at which this bare metal admin cluster was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"deleteTime": { +"description": "Output only. The time at which this bare metal admin cluster was deleted. If the resource is not deleted, this must be empty", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "A human readable description of this bare metal admin cluster.", +"type": "string" +}, +"endpoint": { +"description": "Output only. The IP address name of bare metal admin cluster's API server.", +"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. Allows clients to perform consistent read-modify-writes through optimistic concurrency control.", +"type": "string" +}, +"fleet": { +"$ref": "Fleet", +"description": "Output only. Fleet configuration for the cluster.", +"readOnly": true +}, +"loadBalancer": { +"$ref": "BareMetalAdminLoadBalancerConfig", +"description": "Load balancer configuration." +}, +"localName": { +"description": "Output only. The object name of the bare metal cluster custom resource. This field is used to support conflicting names when enrolling existing clusters to the API. When used as a part of cluster enrollment, this field will differ from the ID in the resource name. For new clusters, this field will match the user provided cluster name and be visible in the last component of the resource name. It is not modifiable. All users should use this name to access their cluster using gkectl or kubectl and should expect to see the local name when viewing admin cluster controller logs.", +"readOnly": true, +"type": "string" +}, +"maintenanceConfig": { +"$ref": "BareMetalAdminMaintenanceConfig", +"description": "Maintenance configuration." +}, +"maintenanceStatus": { +"$ref": "BareMetalAdminMaintenanceStatus", +"description": "Output only. MaintenanceStatus representing state of maintenance.", +"readOnly": true +}, +"name": { +"description": "Immutable. The bare metal admin cluster resource name.", +"type": "string" +}, +"networkConfig": { +"$ref": "BareMetalAdminNetworkConfig", +"description": "Network configuration." +}, +"nodeAccessConfig": { +"$ref": "BareMetalAdminNodeAccessConfig", +"description": "Node access related configurations." +}, +"nodeConfig": { +"$ref": "BareMetalAdminWorkloadNodeConfig", +"description": "Workload node configuration." +}, +"osEnvironmentConfig": { +"$ref": "BareMetalAdminOsEnvironmentConfig", +"description": "OS environment related configurations." +}, +"proxy": { +"$ref": "BareMetalAdminProxyConfig", +"description": "Proxy configuration." +}, +"reconciling": { +"description": "Output only. If set, there are currently changes in flight to the bare metal Admin Cluster.", +"readOnly": true, +"type": "boolean" +}, +"securityConfig": { +"$ref": "BareMetalAdminSecurityConfig", +"description": "Security related configuration." +}, +"state": { +"description": "Output only. The current state of the bare metal admin cluster.", +"enum": [ +"STATE_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 the cluster is being updated. It remains available, but potentially with degraded performance.", +"The STOPPING state indicates the cluster is being deleted.", +"The ERROR state indicates the cluster is in a broken unrecoverable state.", +"The DEGRADED state indicates the cluster requires user action to restore full functionality." +], +"readOnly": true, +"type": "string" +}, +"status": { +"$ref": "ResourceStatus", +"description": "Output only. ResourceStatus representing detailed cluster status.", +"readOnly": true +}, +"storage": { +"$ref": "BareMetalAdminStorageConfig", +"description": "Storage configuration." +}, +"uid": { +"description": "Output only. The unique identifier of the bare metal admin cluster.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The time at which this bare metal admin cluster was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"validationCheck": { +"$ref": "ValidationCheck", +"description": "Output only. ValidationCheck representing the result of the preflight check.", +"readOnly": true +} +}, +"type": "object" +}, +"BareMetalAdminClusterOperationsConfig": { +"description": "BareMetalAdminClusterOperationsConfig specifies the admin cluster's observability infrastructure.", +"id": "BareMetalAdminClusterOperationsConfig", +"properties": { +"enableApplicationLogs": { +"description": "Whether collection of application logs/metrics should be enabled (in addition to system logs/metrics).", +"type": "boolean" +} +}, +"type": "object" +}, +"BareMetalAdminControlPlaneConfig": { +"description": "BareMetalAdminControlPlaneConfig specifies the control plane configuration.", +"id": "BareMetalAdminControlPlaneConfig", +"properties": { +"apiServerArgs": { +"description": "Customizes the default API server args. Only a subset of customized flags are supported. Please refer to the API server documentation below to know the exact format: https://kubernetes.io/docs/reference/command-line-tools-reference/kube-apiserver/", +"items": { +"$ref": "BareMetalAdminApiServerArgument" +}, +"type": "array" +}, +"controlPlaneNodePoolConfig": { +"$ref": "BareMetalAdminControlPlaneNodePoolConfig", +"description": "Required. Configures the node pool running the control plane. If specified the corresponding NodePool will be created for the cluster's control plane. The NodePool will have the same name and namespace as the cluster." +} +}, +"type": "object" +}, +"BareMetalAdminControlPlaneNodePoolConfig": { +"description": "BareMetalAdminControlPlaneNodePoolConfig specifies the control plane node pool configuration. We have a control plane specific node pool config so that we can flexible about supporting control plane specific fields in the future.", +"id": "BareMetalAdminControlPlaneNodePoolConfig", +"properties": { +"nodePoolConfig": { +"$ref": "BareMetalNodePoolConfig", +"description": "Required. The generic configuration for a node pool running the control plane." +} +}, +"type": "object" +}, +"BareMetalAdminDrainedMachine": { +"description": "BareMetalAdminDrainedMachine represents the machines that are drained.", +"id": "BareMetalAdminDrainedMachine", +"properties": { +"nodeIp": { +"description": "Drained machine IP address.", +"type": "string" +} +}, +"type": "object" +}, +"BareMetalAdminDrainingMachine": { +"description": "BareMetalAdminDrainingMachine represents the machines that are currently draining.", +"id": "BareMetalAdminDrainingMachine", +"properties": { +"nodeIp": { +"description": "Draining machine IP address.", +"type": "string" +}, +"podCount": { +"description": "The count of pods yet to drain.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"BareMetalAdminIslandModeCidrConfig": { +"description": "BareMetalAdminIslandModeCidrConfig specifies the cluster CIDR configuration while running in island mode.", +"id": "BareMetalAdminIslandModeCidrConfig", +"properties": { +"podAddressCidrBlocks": { +"description": "Required. All pods in the cluster are assigned an RFC1918 IPv4 address from these ranges. This field cannot be changed after creation.", +"items": { +"type": "string" +}, +"type": "array" +}, +"serviceAddressCidrBlocks": { +"description": "Required. All services in the cluster are assigned an RFC1918 IPv4 address from these ranges. This field cannot be changed after creation.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"BareMetalAdminLoadBalancerConfig": { +"description": "BareMetalAdminLoadBalancerConfig specifies the load balancer configuration.", +"id": "BareMetalAdminLoadBalancerConfig", +"properties": { +"manualLbConfig": { +"$ref": "BareMetalAdminManualLbConfig", +"description": "Manually configured load balancers." +}, +"portConfig": { +"$ref": "BareMetalAdminPortConfig", +"description": "Configures the ports that the load balancer will listen on." +}, +"vipConfig": { +"$ref": "BareMetalAdminVipConfig", +"description": "The VIPs used by the load balancer." +} +}, +"type": "object" +}, +"BareMetalAdminMachineDrainStatus": { +"description": "BareMetalAdminMachineDrainStatus represents the status of bare metal node machines that are undergoing drain operations.", +"id": "BareMetalAdminMachineDrainStatus", +"properties": { +"drainedMachines": { +"description": "The list of drained machines.", +"items": { +"$ref": "BareMetalAdminDrainedMachine" +}, +"type": "array" +}, +"drainingMachines": { +"description": "The list of draning machines.", +"items": { +"$ref": "BareMetalAdminDrainingMachine" +}, +"type": "array" +} +}, +"type": "object" +}, +"BareMetalAdminMaintenanceConfig": { +"description": "BareMetalAdminMaintenanceConfig specifies configurations to put bare metal Admin cluster CRs nodes in and out of maintenance.", +"id": "BareMetalAdminMaintenanceConfig", +"properties": { +"maintenanceAddressCidrBlocks": { +"description": "Required. All IPv4 address from these ranges will be placed into maintenance mode. Nodes in maintenance mode will be cordoned and drained. When both of these are true, the \"baremetal.cluster.gke.io/maintenance\" annotation will be set on the node resource.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"BareMetalAdminMaintenanceStatus": { +"description": "BareMetalAdminMaintenanceStatus represents the maintenance status for bare metal Admin cluster CR's nodes.", +"id": "BareMetalAdminMaintenanceStatus", +"properties": { +"machineDrainStatus": { +"$ref": "BareMetalAdminMachineDrainStatus", +"description": "Represents the status of draining and drained machine nodes. This is used to show the progress of cluster upgrade." +} +}, +"type": "object" +}, +"BareMetalAdminManualLbConfig": { +"description": "BareMetalAdminManualLbConfig represents configuration parameters for a manual load balancer.", +"id": "BareMetalAdminManualLbConfig", +"properties": { +"enabled": { +"description": "Whether manual load balancing is enabled.", +"type": "boolean" +} +}, +"type": "object" +}, +"BareMetalAdminNetworkConfig": { +"description": "BareMetalAdminNetworkConfig specifies the cluster network configuration.", +"id": "BareMetalAdminNetworkConfig", +"properties": { +"islandModeCidr": { +"$ref": "BareMetalAdminIslandModeCidrConfig", +"description": "Configuration for Island mode CIDR." +} +}, +"type": "object" +}, +"BareMetalAdminNodeAccessConfig": { +"description": "Specifies the node access related settings for the bare metal admin cluster.", +"id": "BareMetalAdminNodeAccessConfig", +"properties": { +"loginUser": { +"description": "Required. LoginUser is the user name used to access node machines. It defaults to \"root\" if not set.", +"type": "string" +} +}, +"type": "object" +}, +"BareMetalAdminOsEnvironmentConfig": { +"description": "Specifies operating system operation settings for cluster provisioning.", +"id": "BareMetalAdminOsEnvironmentConfig", +"properties": { +"packageRepoExcluded": { +"description": "Whether the package repo should be added when initializing bare metal machines.", +"type": "boolean" +} +}, +"type": "object" +}, +"BareMetalAdminPortConfig": { +"description": "BareMetalAdminPortConfig is the specification of load balancer ports.", +"id": "BareMetalAdminPortConfig", +"properties": { +"controlPlaneLoadBalancerPort": { +"description": "The port that control plane hosted load balancers will listen on.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"BareMetalAdminProxyConfig": { +"description": "BareMetalAdminProxyConfig specifies the cluster proxy configuration.", +"id": "BareMetalAdminProxyConfig", +"properties": { +"noProxy": { +"description": "A list of IPs, hostnames, and domains that should skip the proxy. Examples: [\"127.0.0.1\", \"example.com\", \".corp\", \"localhost\"].", +"items": { +"type": "string" +}, +"type": "array" +}, +"uri": { +"description": "Required. Specifies the address of your proxy server. Examples: `http://domain` WARNING: Do not provide credentials in the format `http://(username:password@)domain` these will be rejected by the server.", +"type": "string" +} +}, +"type": "object" +}, +"BareMetalAdminSecurityConfig": { +"description": "Specifies the security related settings for the bare metal admin cluster.", +"id": "BareMetalAdminSecurityConfig", +"properties": { +"authorization": { +"$ref": "Authorization", +"description": "Configures user access to the admin cluster." +} +}, +"type": "object" +}, +"BareMetalAdminStorageConfig": { +"description": "BareMetalAdminStorageConfig specifies the cluster storage configuration.", +"id": "BareMetalAdminStorageConfig", +"properties": { +"lvpNodeMountsConfig": { +"$ref": "BareMetalLvpConfig", +"description": "Required. Specifies the config for local PersistentVolumes backed by mounted node disks. These disks need to be formatted and mounted by the user, which can be done before or after cluster creation." +}, +"lvpShareConfig": { +"$ref": "BareMetalLvpShareConfig", +"description": "Required. Specifies the config for local PersistentVolumes backed by subdirectories in a shared filesystem. These subdirectores are automatically created during cluster creation." +} +}, +"type": "object" +}, +"BareMetalAdminVipConfig": { +"description": "BareMetalAdminVipConfig for bare metal load balancer configurations.", +"id": "BareMetalAdminVipConfig", +"properties": { +"controlPlaneVip": { +"description": "The VIP which you previously set aside for the Kubernetes API of this bare metal admin cluster.", +"type": "string" +} +}, +"type": "object" +}, +"BareMetalAdminWorkloadNodeConfig": { +"description": "BareMetalAdminWorkloadNodeConfig specifies the workload node configurations.", +"id": "BareMetalAdminWorkloadNodeConfig", +"properties": { +"maxPodsPerNode": { +"description": "The maximum number of pods a node can run. The size of the CIDR range assigned to the node will be derived from this parameter. By default 110 Pods are created per Node. Upper bound is 250 for both HA and non-HA admin cluster. Lower bound is 64 for non-HA admin cluster and 32 for HA admin cluster.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"BareMetalApiServerArgument": { +"description": "Represents an arg name->value pair. Only a subset of customized flags are supported. For the exact format, refer to the [API server documentation](https://kubernetes.io/docs/reference/command-line-tools-reference/kube-apiserver/).", +"id": "BareMetalApiServerArgument", +"properties": { +"argument": { +"description": "Required. The argument name as it appears on the API Server command line, make sure to remove the leading dashes.", +"type": "string" +}, +"value": { +"description": "Required. The value of the arg as it will be passed to the API Server command line.", +"type": "string" +} +}, +"type": "object" +}, +"BareMetalBgpLbConfig": { +"description": "BareMetalBgpLbConfig represents configuration parameters for a Border Gateway Protocol (BGP) load balancer.", +"id": "BareMetalBgpLbConfig", +"properties": { +"addressPools": { +"description": "Required. AddressPools is a list of non-overlapping IP pools used by load balancer typed services. All addresses must be routable to load balancer nodes. IngressVIP must be included in the pools.", +"items": { +"$ref": "BareMetalLoadBalancerAddressPool" +}, +"type": "array" +}, +"asn": { +"description": "Required. BGP autonomous system number (ASN) of the cluster. This field can be updated after cluster creation.", +"format": "int64", +"type": "string" +}, +"bgpPeerConfigs": { +"description": "Required. The list of BGP peers that the cluster will connect to. At least one peer must be configured for each control plane node. Control plane nodes will connect to these peers to advertise the control plane VIP. The Services load balancer also uses these peers by default. This field can be updated after cluster creation.", +"items": { +"$ref": "BareMetalBgpPeerConfig" +}, +"type": "array" +}, +"loadBalancerNodePoolConfig": { +"$ref": "BareMetalLoadBalancerNodePoolConfig", +"description": "Specifies the node pool running data plane load balancing. L2 connectivity is required among nodes in this pool. If missing, the control plane node pool is used for data plane load balancing." +} +}, +"type": "object" +}, +"BareMetalBgpPeerConfig": { +"description": "BareMetalBgpPeerConfig represents configuration parameters for a Border Gateway Protocol (BGP) peer.", +"id": "BareMetalBgpPeerConfig", +"properties": { +"asn": { +"description": "Required. BGP autonomous system number (ASN) for the network that contains the external peer device.", +"format": "int64", +"type": "string" +}, +"controlPlaneNodes": { +"description": "The IP address of the control plane node that connects to the external peer. If you don't specify any control plane nodes, all control plane nodes can connect to the external peer. If you specify one or more IP addresses, only the nodes specified participate in peering sessions.", +"items": { +"type": "string" +}, +"type": "array" +}, +"ipAddress": { +"description": "Required. The IP address of the external peer device.", +"type": "string" +} +}, +"type": "object" +}, +"BareMetalCluster": { +"description": "Resource that represents a bare metal user cluster.", +"id": "BareMetalCluster", +"properties": { +"adminClusterMembership": { +"description": "Required. The admin cluster this bare metal user cluster belongs to. This is the full resource name of the admin cluster's fleet membership.", +"type": "string" +}, +"adminClusterName": { +"description": "Output only. The resource name of the bare metal admin cluster managing this user cluster.", +"readOnly": true, +"type": "string" +}, +"annotations": { +"additionalProperties": { +"type": "string" +}, +"description": "Annotations on the bare metal user cluster. This field has the same restrictions as Kubernetes annotations. 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" +}, +"bareMetalVersion": { +"description": "Required. The Anthos clusters on bare metal version for your user cluster.", +"type": "string" +}, +"binaryAuthorization": { +"$ref": "BinaryAuthorization", +"description": "Binary Authorization related configurations." +}, +"clusterOperations": { +"$ref": "BareMetalClusterOperationsConfig", +"description": "Cluster operations configuration." +}, +"controlPlane": { +"$ref": "BareMetalControlPlaneConfig", +"description": "Required. Control plane configuration." +}, +"createTime": { +"description": "Output only. The time when the bare metal user cluster was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"deleteTime": { +"description": "Output only. The time when the bare metal user cluster was deleted. If the resource is not deleted, this must be empty", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "A human readable description of this bare metal user cluster.", +"type": "string" +}, +"endpoint": { +"description": "Output only. The IP address of the bare metal user cluster's API server.", +"readOnly": true, +"type": "string" +}, +"etag": { +"description": "Output only. 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. Allows clients to perform consistent read-modify-writes through optimistic concurrency control.", +"readOnly": true, +"type": "string" +}, +"fleet": { +"$ref": "Fleet", +"description": "Output only. Fleet configuration for the cluster.", +"readOnly": true +}, +"loadBalancer": { +"$ref": "BareMetalLoadBalancerConfig", +"description": "Required. Load balancer configuration." +}, +"localName": { +"description": "Output only. The object name of the bare metal user cluster custom resource on the associated admin cluster. This field is used to support conflicting names when enrolling existing clusters to the API. When used as a part of cluster enrollment, this field will differ from the name in the resource name. For new clusters, this field will match the user provided cluster name and be visible in the last component of the resource name. It is not modifiable. When the local name and cluster name differ, the local name is used in the admin cluster controller logs. You use the cluster name when accessing the cluster using bmctl and kubectl.", +"readOnly": true, +"type": "string" +}, +"maintenanceConfig": { +"$ref": "BareMetalMaintenanceConfig", +"description": "Maintenance configuration." +}, +"maintenanceStatus": { +"$ref": "BareMetalMaintenanceStatus", +"description": "Output only. Status of on-going maintenance tasks.", +"readOnly": true +}, +"name": { +"description": "Immutable. The bare metal user cluster resource name.", +"type": "string" +}, +"networkConfig": { +"$ref": "BareMetalNetworkConfig", +"description": "Required. Network configuration." +}, +"nodeAccessConfig": { +"$ref": "BareMetalNodeAccessConfig", +"description": "Node access related configurations." +}, +"nodeConfig": { +"$ref": "BareMetalWorkloadNodeConfig", +"description": "Workload node configuration." +}, +"osEnvironmentConfig": { +"$ref": "BareMetalOsEnvironmentConfig", +"description": "OS environment related configurations." +}, +"proxy": { +"$ref": "BareMetalProxyConfig", +"description": "Proxy configuration." +}, +"reconciling": { +"description": "Output only. If set, there are currently changes in flight to the bare metal user cluster.", +"readOnly": true, +"type": "boolean" +}, +"securityConfig": { +"$ref": "BareMetalSecurityConfig", +"description": "Security related setting configuration." +}, +"state": { +"description": "Output only. The current state of the bare metal user cluster.", +"enum": [ +"STATE_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 the cluster is being updated. It remains available, but potentially with degraded performance.", +"The STOPPING state indicates the cluster is being deleted.", +"The ERROR state indicates the cluster is in a broken unrecoverable state.", +"The DEGRADED state indicates the cluster requires user action to restore full functionality." +], +"readOnly": true, +"type": "string" +}, +"status": { +"$ref": "ResourceStatus", +"description": "Output only. Detailed cluster status.", +"readOnly": true +}, +"storage": { +"$ref": "BareMetalStorageConfig", +"description": "Required. Storage configuration." +}, +"uid": { +"description": "Output only. The unique identifier of the bare metal user cluster.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The time when the bare metal user cluster was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"upgradePolicy": { +"$ref": "BareMetalClusterUpgradePolicy", +"description": "The cluster upgrade policy." +}, +"validationCheck": { +"$ref": "ValidationCheck", +"description": "Output only. The result of the preflight check.", +"readOnly": true +} +}, +"type": "object" +}, +"BareMetalClusterOperationsConfig": { +"description": "Specifies the bare metal user cluster's observability infrastructure.", +"id": "BareMetalClusterOperationsConfig", +"properties": { +"enableApplicationLogs": { +"description": "Whether collection of application logs/metrics should be enabled (in addition to system logs/metrics).", +"type": "boolean" +} +}, +"type": "object" +}, +"BareMetalClusterUpgradePolicy": { +"description": "BareMetalClusterUpgradePolicy defines the cluster upgrade policy.", +"id": "BareMetalClusterUpgradePolicy", +"properties": { +"pause": { +"description": "Output only. Pause is used to show the upgrade pause status. It's view only for now.", +"readOnly": true, +"type": "boolean" +}, +"policy": { +"description": "Specifies which upgrade policy to use.", +"enum": [ +"NODE_POOL_POLICY_UNSPECIFIED", +"SERIAL", +"CONCURRENT" +], +"enumDescriptions": [ +"No upgrade policy selected.", +"Upgrade worker node pools sequentially.", +"Upgrade all worker node pools in parallel." +], +"type": "string" +} +}, +"type": "object" +}, +"BareMetalControlPlaneConfig": { +"description": "Specifies the control plane configuration.", +"id": "BareMetalControlPlaneConfig", +"properties": { +"apiServerArgs": { +"description": "Customizes the default API server args. Only a subset of customized flags are supported. For the exact format, refer to the [API server documentation](https://kubernetes.io/docs/reference/command-line-tools-reference/kube-apiserver/).", +"items": { +"$ref": "BareMetalApiServerArgument" +}, +"type": "array" +}, +"controlPlaneNodePoolConfig": { +"$ref": "BareMetalControlPlaneNodePoolConfig", +"description": "Required. Configures the node pool running the control plane." +} +}, +"type": "object" +}, +"BareMetalControlPlaneNodePoolConfig": { +"description": "Specifies the control plane node pool configuration.", +"id": "BareMetalControlPlaneNodePoolConfig", +"properties": { +"nodePoolConfig": { +"$ref": "BareMetalNodePoolConfig", +"description": "Required. The generic configuration for a node pool running the control plane." +} +}, +"type": "object" +}, +"BareMetalDrainedMachine": { +"description": "Represents a machine that is currently drained.", +"id": "BareMetalDrainedMachine", +"properties": { +"nodeIp": { +"description": "Drained machine IP address.", +"type": "string" +} +}, +"type": "object" +}, +"BareMetalDrainingMachine": { +"description": "Represents a machine that is currently draining.", +"id": "BareMetalDrainingMachine", +"properties": { +"nodeIp": { +"description": "Draining machine IP address.", +"type": "string" +}, +"podCount": { +"description": "The count of pods yet to drain.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"BareMetalIslandModeCidrConfig": { +"description": "Specifies the cluster CIDR configuration while running in island mode.", +"id": "BareMetalIslandModeCidrConfig", +"properties": { +"podAddressCidrBlocks": { +"description": "Required. All pods in the cluster are assigned an RFC1918 IPv4 address from these ranges. This field cannot be changed after creation.", +"items": { +"type": "string" +}, +"type": "array" +}, +"serviceAddressCidrBlocks": { +"description": "Required. All services in the cluster are assigned an RFC1918 IPv4 address from these ranges. This field is mutable after creation starting with version 1.15.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"BareMetalKubeletConfig": { +"description": "KubeletConfig defines the modifiable kubelet configurations for bare metal machines. Note: this list includes fields supported in GKE (see https://cloud.google.com/kubernetes-engine/docs/how-to/node-system-config#kubelet-options).", +"id": "BareMetalKubeletConfig", +"properties": { +"registryBurst": { +"description": "The maximum size of bursty pulls, temporarily allows pulls to burst to this number, while still not exceeding registry_pull_qps. The value must not be a negative number. Updating this field may impact scalability by changing the amount of traffic produced by image pulls. Defaults to 10.", +"format": "int32", +"type": "integer" +}, +"registryPullQps": { +"description": "The limit of registry pulls per second. Setting this value to 0 means no limit. Updating this field may impact scalability by changing the amount of traffic produced by image pulls. Defaults to 5.", +"format": "int32", +"type": "integer" +}, +"serializeImagePullsDisabled": { +"description": "Prevents the Kubelet from pulling multiple images at a time. We recommend *not* changing the default value on nodes that run docker daemon with version < 1.9 or an Another Union File System (Aufs) storage backend. Issue https://github.com/kubernetes/kubernetes/issues/10959 has more details.", +"type": "boolean" +} +}, +"type": "object" +}, +"BareMetalLoadBalancerAddressPool": { +"description": "Represents an IP pool used by the load balancer.", +"id": "BareMetalLoadBalancerAddressPool", +"properties": { +"addresses": { +"description": "Required. The addresses that are part of this pool. Each address must be either in the CIDR form (1.2.3.0/24) or range form (1.2.3.1-1.2.3.5).", +"items": { +"type": "string" +}, +"type": "array" +}, +"avoidBuggyIps": { +"description": "If true, avoid using IPs ending in .0 or .255. This avoids buggy consumer devices mistakenly dropping IPv4 traffic for those special IP addresses.", +"type": "boolean" +}, +"manualAssign": { +"description": "If true, prevent IP addresses from being automatically assigned.", +"type": "boolean" +}, +"pool": { +"description": "Required. The name of the address pool.", +"type": "string" +} +}, +"type": "object" +}, +"BareMetalLoadBalancerConfig": { +"description": "Specifies the load balancer configuration.", +"id": "BareMetalLoadBalancerConfig", +"properties": { +"bgpLbConfig": { +"$ref": "BareMetalBgpLbConfig", +"description": "Configuration for BGP typed load balancers. When set network_config.advanced_networking is automatically set to true." +}, +"manualLbConfig": { +"$ref": "BareMetalManualLbConfig", +"description": "Manually configured load balancers." +}, +"metalLbConfig": { +"$ref": "BareMetalMetalLbConfig", +"description": "Configuration for MetalLB load balancers." +}, +"portConfig": { +"$ref": "BareMetalPortConfig", +"description": "Configures the ports that the load balancer will listen on." +}, +"vipConfig": { +"$ref": "BareMetalVipConfig", +"description": "The VIPs used by the load balancer." +} +}, +"type": "object" +}, +"BareMetalLoadBalancerNodePoolConfig": { +"description": "Specifies the load balancer's node pool configuration.", +"id": "BareMetalLoadBalancerNodePoolConfig", +"properties": { +"nodePoolConfig": { +"$ref": "BareMetalNodePoolConfig", +"description": "The generic configuration for a node pool running a load balancer." +} +}, +"type": "object" +}, +"BareMetalLvpConfig": { +"description": "Specifies the configs for local persistent volumes (PVs).", +"id": "BareMetalLvpConfig", +"properties": { +"path": { +"description": "Required. The host machine path.", +"type": "string" +}, +"storageClass": { +"description": "Required. The StorageClass name that PVs will be created with.", +"type": "string" +} +}, +"type": "object" +}, +"BareMetalLvpShareConfig": { +"description": "Specifies the configs for local persistent volumes under a shared file system.", +"id": "BareMetalLvpShareConfig", +"properties": { +"lvpConfig": { +"$ref": "BareMetalLvpConfig", +"description": "Required. Defines the machine path and storage class for the LVP Share." +}, +"sharedPathPvCount": { +"description": "The number of subdirectories to create under path.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"BareMetalMachineDrainStatus": { +"description": "Represents the status of node machines that are undergoing drain operations.", +"id": "BareMetalMachineDrainStatus", +"properties": { +"drainedMachines": { +"description": "The list of drained machines.", +"items": { +"$ref": "BareMetalDrainedMachine" +}, +"type": "array" +}, +"drainingMachines": { +"description": "The list of draning machines.", +"items": { +"$ref": "BareMetalDrainingMachine" +}, +"type": "array" +} +}, +"type": "object" +}, +"BareMetalMaintenanceConfig": { +"description": "Specifies configurations to put bare metal nodes in and out of maintenance.", +"id": "BareMetalMaintenanceConfig", +"properties": { +"maintenanceAddressCidrBlocks": { +"description": "Required. All IPv4 address from these ranges will be placed into maintenance mode. Nodes in maintenance mode will be cordoned and drained. When both of these are true, the \"baremetal.cluster.gke.io/maintenance\" annotation will be set on the node resource.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"BareMetalMaintenanceStatus": { +"description": "Represents the maintenance status of the bare metal user cluster.", +"id": "BareMetalMaintenanceStatus", +"properties": { +"machineDrainStatus": { +"$ref": "BareMetalMachineDrainStatus", +"description": "The maintenance status of node machines." +} +}, +"type": "object" +}, +"BareMetalManualLbConfig": { +"description": "Represents configuration parameters for a manual load balancer.", +"id": "BareMetalManualLbConfig", +"properties": { +"enabled": { +"description": "Whether manual load balancing is enabled.", +"type": "boolean" +} +}, +"type": "object" +}, +"BareMetalMetalLbConfig": { +"description": "Represents configuration parameters for a MetalLB load balancer.", +"id": "BareMetalMetalLbConfig", +"properties": { +"addressPools": { +"description": "Required. AddressPools is a list of non-overlapping IP pools used by load balancer typed services. All addresses must be routable to load balancer nodes. IngressVIP must be included in the pools.", +"items": { +"$ref": "BareMetalLoadBalancerAddressPool" +}, +"type": "array" +}, +"loadBalancerNodePoolConfig": { +"$ref": "BareMetalLoadBalancerNodePoolConfig", +"description": "Specifies the node pool running the load balancer. L2 connectivity is required among nodes in this pool. If missing, the control plane node pool is used as the load balancer pool." +} +}, +"type": "object" +}, +"BareMetalMultipleNetworkInterfacesConfig": { +"description": "Specifies the multiple networking interfaces cluster configuration.", +"id": "BareMetalMultipleNetworkInterfacesConfig", +"properties": { +"enabled": { +"description": "Whether to enable multiple network interfaces for your pods. When set network_config.advanced_networking is automatically set to true.", +"type": "boolean" +} +}, +"type": "object" +}, +"BareMetalNetworkConfig": { +"description": "Specifies the cluster network configuration.", +"id": "BareMetalNetworkConfig", +"properties": { +"advancedNetworking": { +"description": "Enables the use of advanced Anthos networking features, such as Bundled Load Balancing with BGP or the egress NAT gateway. Setting configuration for advanced networking features will automatically set this flag.", +"type": "boolean" +}, +"islandModeCidr": { +"$ref": "BareMetalIslandModeCidrConfig", +"description": "Configuration for island mode CIDR. In an island-mode network, nodes have unique IP addresses, but pods don't have unique addresses across clusters. This doesn't cause problems because pods in one cluster never directly communicate with pods in another cluster. Instead, there are gateways that mediate between a pod in one cluster and a pod in another cluster." +}, +"multipleNetworkInterfacesConfig": { +"$ref": "BareMetalMultipleNetworkInterfacesConfig", +"description": "Configuration for multiple network interfaces." +}, +"srIovConfig": { +"$ref": "BareMetalSrIovConfig", +"description": "Configuration for SR-IOV." +} +}, +"type": "object" +}, +"BareMetalNodeAccessConfig": { +"description": "Specifies the node access related settings for the bare metal user cluster.", +"id": "BareMetalNodeAccessConfig", +"properties": { +"loginUser": { +"description": "LoginUser is the user name used to access node machines. It defaults to \"root\" if not set.", +"type": "string" +} +}, +"type": "object" +}, +"BareMetalNodeConfig": { +"description": "BareMetalNodeConfig lists machine addresses to access Nodes.", +"id": "BareMetalNodeConfig", +"properties": { +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "The labels assigned to this node. An object containing a list of key/value pairs. The labels here, unioned with the labels set on BareMetalNodePoolConfig are the set of labels that will be applied to the node. If there are any conflicts, the BareMetalNodeConfig labels take precedence. Example: { \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.", +"type": "object" +}, +"nodeIp": { +"description": "The default IPv4 address for SSH access and Kubernetes node. Example: 192.168.0.1", +"type": "string" +} +}, +"type": "object" +}, +"BareMetalNodePool": { +"description": "Resource that represents a bare metal node pool.", +"id": "BareMetalNodePool", +"properties": { +"annotations": { +"additionalProperties": { +"type": "string" +}, +"description": "Annotations on the bare metal node pool. This field has the same restrictions as Kubernetes annotations. 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" +}, +"createTime": { +"description": "Output only. The time at which this bare metal node pool was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"deleteTime": { +"description": "Output only. The time at which this bare metal node pool was deleted. If the resource is not deleted, this must be empty", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "The display name for the bare metal node pool.", +"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. Allows clients to perform consistent read-modify-writes through optimistic concurrency control.", +"type": "string" +}, +"name": { +"description": "Immutable. The bare metal node pool resource name.", +"type": "string" +}, +"nodePoolConfig": { +"$ref": "BareMetalNodePoolConfig", +"description": "Required. Node pool configuration." +}, +"reconciling": { +"description": "Output only. If set, there are currently changes in flight to the bare metal node pool.", +"readOnly": true, +"type": "boolean" +}, +"state": { +"description": "Output only. The current state of the bare metal node pool.", +"enum": [ +"STATE_UNSPECIFIED", +"PROVISIONING", +"RUNNING", +"RECONCILING", +"STOPPING", +"ERROR", +"DEGRADED" +], +"enumDescriptions": [ +"Not set.", +"The PROVISIONING state indicates the bare metal node pool is being created.", +"The RUNNING state indicates the bare metal node pool has been created and is fully usable.", +"The RECONCILING state indicates that the bare metal node pool is being updated. It remains available, but potentially with degraded performance.", +"The STOPPING state indicates the bare metal node pool is being deleted.", +"The ERROR state indicates the bare metal node pool is in a broken unrecoverable state.", +"The DEGRADED state indicates the bare metal node pool requires user action to restore full functionality." +], +"readOnly": true, +"type": "string" +}, +"status": { +"$ref": "ResourceStatus", +"description": "Output only. ResourceStatus representing the detailed node pool status.", +"readOnly": true +}, +"uid": { +"description": "Output only. The unique identifier of the bare metal node pool.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The time at which this bare metal node pool was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"upgradePolicy": { +"$ref": "BareMetalNodePoolUpgradePolicy", +"description": "The worker node pool upgrade policy." +} +}, +"type": "object" +}, +"BareMetalNodePoolConfig": { +"description": "BareMetalNodePoolConfig describes the configuration of all nodes within a given bare metal node pool.", +"id": "BareMetalNodePoolConfig", +"properties": { +"kubeletConfig": { +"$ref": "BareMetalKubeletConfig", +"description": "The modifiable kubelet configurations for the bare metal machines." +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "The labels assigned to nodes of this node pool. An object containing a list of key/value pairs. Example: { \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.", +"type": "object" +}, +"nodeConfigs": { +"description": "Required. The list of machine addresses in the bare metal node pool.", +"items": { +"$ref": "BareMetalNodeConfig" +}, +"type": "array" +}, +"operatingSystem": { +"description": "Specifies the nodes operating system (default: LINUX).", +"enum": [ +"OPERATING_SYSTEM_UNSPECIFIED", +"LINUX" +], +"enumDescriptions": [ +"No operating system runtime selected.", +"Linux operating system." +], +"type": "string" +}, +"taints": { +"description": "The initial taints assigned to nodes of this node pool.", +"items": { +"$ref": "NodeTaint" +}, +"type": "array" +} +}, +"type": "object" +}, +"BareMetalNodePoolUpgradePolicy": { +"description": "BareMetalNodePoolUpgradePolicy defines the node pool upgrade policy.", +"id": "BareMetalNodePoolUpgradePolicy", +"properties": { +"parallelUpgradeConfig": { +"$ref": "BareMetalParallelUpgradeConfig", +"description": "The parallel upgrade settings for worker node pools." +} +}, +"type": "object" +}, +"BareMetalOsEnvironmentConfig": { +"description": "Specifies operating system settings for cluster provisioning.", +"id": "BareMetalOsEnvironmentConfig", +"properties": { +"packageRepoExcluded": { +"description": "Whether the package repo should not be included when initializing bare metal machines.", +"type": "boolean" +} +}, +"type": "object" +}, +"BareMetalParallelUpgradeConfig": { +"description": "BareMetalParallelUpgradeConfig defines the parallel upgrade settings for worker node pools.", +"id": "BareMetalParallelUpgradeConfig", +"properties": { +"concurrentNodes": { +"description": "The maximum number of nodes that can be upgraded at once.", +"format": "int32", +"type": "integer" +}, +"minimumAvailableNodes": { +"description": "The minimum number of nodes that should be healthy and available during an upgrade. If set to the default value of 0, it is possible that none of the nodes will be available during an upgrade.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"BareMetalPortConfig": { +"description": "Specifies load balancer ports for the bare metal user cluster.", +"id": "BareMetalPortConfig", +"properties": { +"controlPlaneLoadBalancerPort": { +"description": "The port that control plane hosted load balancers will listen on.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"BareMetalProxyConfig": { +"description": "Specifies the cluster proxy configuration.", +"id": "BareMetalProxyConfig", +"properties": { +"noProxy": { +"description": "A list of IPs, hostnames, and domains that should skip the proxy. Examples: [\"127.0.0.1\", \"example.com\", \".corp\", \"localhost\"].", +"items": { +"type": "string" +}, +"type": "array" +}, +"uri": { +"description": "Required. Specifies the address of your proxy server. Examples: `http://domain` Do not provide credentials in the format `http://(username:password@)domain` these will be rejected by the server.", +"type": "string" +} +}, +"type": "object" +}, +"BareMetalSecurityConfig": { +"description": "Specifies the security related settings for the bare metal user cluster.", +"id": "BareMetalSecurityConfig", +"properties": { +"authorization": { +"$ref": "Authorization", +"description": "Configures user access to the user cluster." +} +}, +"type": "object" +}, +"BareMetalSrIovConfig": { +"description": "Specifies the SR-IOV networking operator config.", +"id": "BareMetalSrIovConfig", +"properties": { +"enabled": { +"description": "Whether to install the SR-IOV operator.", +"type": "boolean" +} +}, +"type": "object" +}, +"BareMetalStorageConfig": { +"description": "BareMetalStorageConfig specifies the cluster storage configuration.", +"id": "BareMetalStorageConfig", +"properties": { +"lvpNodeMountsConfig": { +"$ref": "BareMetalLvpConfig", +"description": "Required. Specifies the config for local PersistentVolumes backed by mounted node disks. These disks need to be formatted and mounted by the user, which can be done before or after cluster creation." +}, +"lvpShareConfig": { +"$ref": "BareMetalLvpShareConfig", +"description": "Required. Specifies the config for local PersistentVolumes backed by subdirectories in a shared filesystem. These subdirectores are automatically created during cluster creation." +} +}, +"type": "object" +}, +"BareMetalVersionInfo": { +"description": "Contains information about a specific Anthos on bare metal version.", +"id": "BareMetalVersionInfo", +"properties": { +"dependencies": { +"description": "The list of upgrade dependencies for this version.", +"items": { +"$ref": "UpgradeDependency" +}, +"type": "array" +}, +"hasDependencies": { +"description": "If set, the cluster dependencies (e.g. the admin cluster, other user clusters managed by the same admin cluster, version skew policy, etc) must be upgraded before this version can be installed or upgraded to.", +"type": "boolean" +}, +"version": { +"description": "Version number e.g. 1.13.1.", +"type": "string" +} +}, +"type": "object" +}, +"BareMetalVipConfig": { +"description": "Specifies the VIP config for the bare metal load balancer.", +"id": "BareMetalVipConfig", +"properties": { +"controlPlaneVip": { +"description": "The VIP which you previously set aside for the Kubernetes API of this bare metal user cluster.", +"type": "string" +}, +"ingressVip": { +"description": "The VIP which you previously set aside for ingress traffic into this bare metal user cluster.", +"type": "string" +} +}, +"type": "object" +}, +"BareMetalWorkloadNodeConfig": { +"description": "Specifies the workload node configurations.", +"id": "BareMetalWorkloadNodeConfig", +"properties": { +"containerRuntime": { +"description": "Specifies which container runtime will be used.", +"enum": [ +"CONTAINER_RUNTIME_UNSPECIFIED", +"CONTAINERD" +], +"enumDescriptions": [ +"No container runtime selected.", +"Containerd runtime." +], +"type": "string" +}, +"maxPodsPerNode": { +"description": "The maximum number of pods a node can run. The size of the CIDR range assigned to the node will be derived from this parameter.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"BinaryAuthorization": { +"description": "Configuration for Binary Authorization.", +"id": "BinaryAuthorization", +"properties": { +"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." +], +"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" +}, +"ClusterUser": { +"description": "ClusterUser configures user principals for an RBAC policy.", +"id": "ClusterUser", +"properties": { +"username": { +"description": "Required. The name of the user, e.g. `my-gcp-id@gmail.com`.", +"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" +}, +"EnrollBareMetalAdminClusterRequest": { +"description": "Message for enrolling an existing bare metal admin cluster to the GKE on-prem API.", +"id": "EnrollBareMetalAdminClusterRequest", +"properties": { +"bareMetalAdminClusterId": { +"description": "User provided OnePlatform identifier that is used as part of the resource name. This must be unique among all GKE on-prem clusters within a project and location and will return a 409 if the cluster already exists. (https://tools.ietf.org/html/rfc1123) format.", +"type": "string" +}, +"membership": { +"description": "Required. This is the full resource name of this admin cluster's fleet membership.", +"type": "string" +} +}, +"type": "object" +}, +"EnrollBareMetalClusterRequest": { +"description": "Message for enrolling an existing bare metal cluster to the Anthos On-Prem API.", +"id": "EnrollBareMetalClusterRequest", +"properties": { +"adminClusterMembership": { +"description": "Required. The admin cluster this bare metal user cluster belongs to. This is the full resource name of the admin cluster's fleet membership. In the future, references to other resource types might be allowed if admin clusters are modeled as their own resources.", +"type": "string" +}, +"bareMetalClusterId": { +"description": "User provided OnePlatform identifier that is used as part of the resource name. This must be unique among all bare metal clusters within a project and location and will return a 409 if the cluster already exists. (https://tools.ietf.org/html/rfc1123) format.", +"type": "string" +}, +"localName": { +"description": "Optional. The object name of the bare metal cluster custom resource on the associated admin cluster. This field is used to support conflicting resource names when enrolling existing clusters to the API. When not provided, this field will resolve to the bare_metal_cluster_id. Otherwise, it must match the object name of the bare metal cluster custom resource. It is not modifiable outside / beyond the enrollment operation.", +"type": "string" +} +}, +"type": "object" +}, +"EnrollBareMetalNodePoolRequest": { +"description": "Message for enrolling an existing bare metal node pool to the GKE on-prem API.", +"id": "EnrollBareMetalNodePoolRequest", +"properties": { +"bareMetalNodePoolId": { +"description": "User provided OnePlatform identifier that is used as part of the resource name. (https://tools.ietf.org/html/rfc1123) format.", +"type": "string" +}, +"validateOnly": { +"description": "If set, only validate the request, but do not actually enroll the node pool.", +"type": "boolean" +} +}, +"type": "object" +}, +"EnrollVmwareAdminClusterRequest": { +"description": "Message for enrolling an existing VMware admin cluster to the GKE on-prem API.", +"id": "EnrollVmwareAdminClusterRequest", +"properties": { +"membership": { +"description": "Required. This is the full resource name of this admin cluster's fleet membership.", +"type": "string" +}, +"vmwareAdminClusterId": { +"description": "User provided OnePlatform identifier that is used as part of the resource name. This must be unique among all GKE on-prem clusters within a project and location and will return a 409 if the cluster already exists. (https://tools.ietf.org/html/rfc1123) format.", +"type": "string" +} +}, +"type": "object" +}, +"EnrollVmwareClusterRequest": { +"description": "Message for enrolling an existing VMware cluster to the Anthos On-Prem API.", +"id": "EnrollVmwareClusterRequest", +"properties": { +"adminClusterMembership": { +"description": "Required. The admin cluster this VMware user cluster belongs to. This is the full resource name of the admin cluster's fleet membership. In the future, references to other resource types might be allowed if admin clusters are modeled as their own resources.", +"type": "string" +}, +"localName": { +"description": "Optional. The object name of the VMware OnPremUserCluster custom resource on the associated admin cluster. This field is used to support conflicting resource names when enrolling existing clusters to the API. When not provided, this field will resolve to the vmware_cluster_id. Otherwise, it must match the object name of the VMware OnPremUserCluster custom resource. It is not modifiable outside / beyond the enrollment operation.", +"type": "string" +}, +"validateOnly": { +"description": "Validate the request without actually doing any updates.", +"type": "boolean" +}, +"vmwareClusterId": { +"description": "User provided OnePlatform identifier that is used as part of the resource name. This must be unique among all GKE on-prem clusters within a project and location and will return a 409 if the cluster already exists. (https://tools.ietf.org/html/rfc1123) format.", +"type": "string" +} +}, +"type": "object" +}, +"EnrollVmwareNodePoolRequest": { +"description": "Message for enrolling a VMware node pool.", +"id": "EnrollVmwareNodePoolRequest", +"properties": { +"vmwareNodePoolId": { +"description": "The target node pool id to be enrolled.", +"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" +}, +"Fleet": { +"description": "Fleet related configuration. Fleets are a Google Cloud concept for logically organizing clusters, letting you use and manage multi-cluster capabilities and apply consistent policies across your systems. See [Anthos Fleets](`https://cloud.google.com/anthos/multicluster-management/fleets`) for more details on Anthos multi-cluster capabilities using Fleets. ##", +"id": "Fleet", +"properties": { +"membership": { +"description": "Output only. The name of the managed fleet Membership resource associated to this cluster. Membership names are formatted as `projects//locations//memberships/`.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ListBareMetalAdminClustersResponse": { +"description": "Response message for listing bare metal admin clusters.", +"id": "ListBareMetalAdminClustersResponse", +"properties": { +"bareMetalAdminClusters": { +"description": "The list of bare metal admin cluster.", +"items": { +"$ref": "BareMetalAdminCluster" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token identifying a page of results the server should return. If the token is not empty this means that more results are available and should be retrieved by repeating the request with the provided page token.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListBareMetalClustersResponse": { +"description": "Response message for listing bare metal Clusters.", +"id": "ListBareMetalClustersResponse", +"properties": { +"bareMetalClusters": { +"description": "The list of bare metal Clusters.", +"items": { +"$ref": "BareMetalCluster" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token identifying a page of results the server should return. If the token is not empty this means that more results are available and should be retrieved by repeating the request with the provided page token.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListBareMetalNodePoolsResponse": { +"description": "Response message for listing bare metal node pools.", +"id": "ListBareMetalNodePoolsResponse", +"properties": { +"bareMetalNodePools": { +"description": "The node pools from the specified parent resource.", +"items": { +"$ref": "BareMetalNodePool" +}, +"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" +}, +"ListVmwareAdminClustersResponse": { +"description": "Response message for listing VMware admin clusters.", +"id": "ListVmwareAdminClustersResponse", +"properties": { +"nextPageToken": { +"description": "A token identifying a page of results the server should return. If the token is not empty this means that more results are available and should be retrieved by repeating the request with the provided page token.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +}, +"vmwareAdminClusters": { +"description": "The list of VMware admin cluster.", +"items": { +"$ref": "VmwareAdminCluster" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListVmwareClustersResponse": { +"description": "Response message for listing VMware Clusters.", +"id": "ListVmwareClustersResponse", +"properties": { +"nextPageToken": { +"description": "A token identifying a page of results the server should return. If the token is not empty this means that more results are available and should be retrieved by repeating the request with the provided page token.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +}, +"vmwareClusters": { +"description": "The list of VMware Cluster.", +"items": { +"$ref": "VmwareCluster" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListVmwareNodePoolsResponse": { +"description": "Response message for listing VMware node pools.", +"id": "ListVmwareNodePoolsResponse", +"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 that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +}, +"vmwareNodePools": { +"description": "The node pools from the specified parent resource.", +"items": { +"$ref": "VmwareNodePool" +}, +"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" +}, +"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" +}, +"metric": { +"description": "Required. The metric name.", +"enum": [ +"METRIC_ID_UNSPECIFIED", +"NODES_TOTAL", +"NODES_DRAINING", +"NODES_UPGRADING", +"NODES_PENDING_UPGRADE", +"NODES_UPGRADED", +"NODES_FAILED", +"NODES_HEALTHY", +"NODES_RECONCILING", +"NODES_IN_MAINTENANCE", +"PREFLIGHTS_COMPLETED", +"PREFLIGHTS_RUNNING", +"PREFLIGHTS_FAILED", +"PREFLIGHTS_TOTAL" +], +"enumDescriptions": [ +"Not set.", +"The total number of nodes being actuated.", +"The number of nodes draining.", +"The number of nodes actively upgrading.", +"The number of nodes to be upgraded.", +"The number of nodes upgraded.", +"The number of nodes to fail actuation.", +"The number of nodes healthy.", +"The number of nodes reconciling.", +"The number of nodes in maintenance mode.", +"The number of completed preflight checks.", +"The number of preflight checks running.", +"The number of preflight checks failed.", +"The total number of preflight checks." +], +"type": "string" +}, +"stringValue": { +"description": "For metrics with custom values (ratios, visual progress, etc.).", +"type": "string" +} +}, +"type": "object" +}, +"NodeTaint": { +"description": "NodeTaint applied to every Kubernetes node in a node pool. Kubernetes taints can be used together with tolerations to control how workloads are scheduled to your nodes. Node taints are permanent.", +"id": "NodeTaint", +"properties": { +"effect": { +"description": "The taint effect.", +"enum": [ +"EFFECT_UNSPECIFIED", +"NO_SCHEDULE", +"PREFER_NO_SCHEDULE", +"NO_EXECUTE" +], +"enumDescriptions": [ +"Not set.", +"Do not allow new pods to schedule onto the node unless they tolerate the taint, but allow all pods submitted to Kubelet without going through the scheduler to start, and allow all already-running pods to continue running. Enforced by the scheduler.", +"Like TaintEffectNoSchedule, but the scheduler tries not to schedule new pods onto the node, rather than prohibiting new pods from scheduling onto the node entirely. Enforced by the scheduler.", +"Evict any already-running pods that do not tolerate the taint. Currently enforced by NodeController." +], +"type": "string" +}, +"key": { +"description": "Key associated with the effect.", +"type": "string" +}, +"value": { +"description": "Value associated with the effect.", +"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" +}, +"controlPlaneDisconnected": { +"description": "Output only. Denotes if the local managing cluster's control plane is currently disconnected. This is expected to occur temporarily during self-managed cluster upgrades.", +"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" +}, +"progress": { +"$ref": "OperationProgress", +"description": "Output only. Detailed progress information for the operation.", +"readOnly": true +}, +"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" +}, +"type": { +"description": "Output only. Type of operation being executed.", +"enum": [ +"OPERATION_TYPE_UNSPECIFIED", +"CREATE", +"DELETE", +"UPDATE", +"UPGRADE", +"PLATFORM_UPGRADE" +], +"enumDescriptions": [ +"Not set.", +"The resource is being created.", +"The resource is being deleted.", +"The resource is being updated.", +"The resource is being upgraded.", +"The platform is being upgraded." +], +"readOnly": true, +"type": "string" +}, +"verb": { +"description": "Output only. Name of the verb executed by the operation.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"OperationProgress": { +"description": "Information about operation progress.", +"id": "OperationProgress", +"properties": { +"stages": { +"description": "The stages of the operation.", +"items": { +"$ref": "OperationStage" +}, +"type": "array" +} +}, +"type": "object" +}, +"OperationStage": { +"description": "Information about a particular stage of an operation.", +"id": "OperationStage", +"properties": { +"endTime": { +"description": "Time the stage ended.", +"format": "google-datetime", +"type": "string" +}, +"metrics": { +"description": "Progress metric bundle.", +"items": { +"$ref": "Metric" +}, +"type": "array" +}, +"stage": { +"description": "The high-level stage of the operation.", +"enum": [ +"STAGE_UNSPECIFIED", +"PREFLIGHT_CHECK", +"CONFIGURE", +"DEPLOY", +"HEALTH_CHECK", +"UPDATE" +], +"enumDescriptions": [ +"Not set.", +"Preflight checks are running.", +"Resource is being configured.", +"Resource is being deployed.", +"Waiting for the resource to become healthy.", +"Resource is being updated." +], +"type": "string" +}, +"startTime": { +"description": "Time the stage started.", +"format": "google-datetime", +"type": "string" +}, +"state": { +"description": "Output only. State of the stage.", +"enum": [ +"STATE_UNSPECIFIED", +"PENDING", +"RUNNING", +"SUCCEEDED", +"FAILED" +], +"enumDescriptions": [ +"Not set.", +"The stage is pending.", +"The stage is running", +"The stage has completed successfully.", +"The stage has failed." +], +"readOnly": true, +"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" +}, +"QueryBareMetalAdminVersionConfigResponse": { +"description": "Response message for querying bare metal admin cluster version config.", +"id": "QueryBareMetalAdminVersionConfigResponse", +"properties": { +"versions": { +"description": "List of available versions to install or to upgrade to.", +"items": { +"$ref": "BareMetalVersionInfo" +}, +"type": "array" +} +}, +"type": "object" +}, +"QueryBareMetalVersionConfigResponse": { +"description": "Response message for querying bare metal admin cluster version config.", +"id": "QueryBareMetalVersionConfigResponse", +"properties": { +"versions": { +"description": "List of available versions to install or to upgrade to.", +"items": { +"$ref": "BareMetalVersionInfo" +}, +"type": "array" +} +}, +"type": "object" +}, +"QueryVmwareVersionConfigResponse": { +"description": "Response message for querying VMware user cluster version config.", +"id": "QueryVmwareVersionConfigResponse", +"properties": { +"versions": { +"description": "List of available versions to install or to upgrade to.", +"items": { +"$ref": "VmwareVersionInfo" +}, +"type": "array" +} +}, +"type": "object" +}, +"ResourceCondition": { +"description": "ResourceCondition provides a standard mechanism for higher-level status reporting from controller.", +"id": "ResourceCondition", +"properties": { +"lastTransitionTime": { +"description": "Last time the condition transit from one status to another.", +"format": "google-datetime", +"type": "string" +}, +"message": { +"description": "Human-readable message indicating details about last transition.", +"type": "string" +}, +"reason": { +"description": "Machine-readable message indicating details about last transition.", +"type": "string" +}, +"state": { +"description": "state of the condition.", +"enum": [ +"STATE_UNSPECIFIED", +"STATE_TRUE", +"STATE_FALSE", +"STATE_UNKNOWN" +], +"enumDescriptions": [ +"Not set.", +"Resource is in the condition.", +"Resource is not in the condition.", +"Kubernetes controller can't decide if the resource is in the condition or not." +], +"type": "string" +}, +"type": { +"description": "Type of the condition. (e.g., ClusterRunning, NodePoolRunning or ServerSidePreflightReady)", +"type": "string" +} +}, +"type": "object" +}, +"ResourceStatus": { +"description": "ResourceStatus describes why a cluster or node pool has a certain status. (e.g., ERROR or DEGRADED).", +"id": "ResourceStatus", +"properties": { +"conditions": { +"description": "ResourceCondition provide a standard mechanism for higher-level status reporting from controller.", +"items": { +"$ref": "ResourceCondition" +}, +"type": "array" +}, +"errorMessage": { +"description": "Human-friendly representation of the error message from controller. The error message can be temporary as the controller controller creates a cluster or node pool. If the error message persists for a longer period of time, it can be used to surface error message to indicate real problems requiring user intervention.", +"type": "string" +}, +"version": { +"description": "Reflect current version of the resource.", +"type": "string" +}, +"versions": { +"$ref": "Versions", +"description": "Shows the mapping of a given version to the number of machines under this version." +} +}, +"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" +}, +"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" +}, +"UpgradeDependency": { +"description": "UpgradeDependency represents a dependency when upgrading a resource.", +"id": "UpgradeDependency", +"properties": { +"currentVersion": { +"description": "Current version of the dependency e.g. 1.15.0.", +"type": "string" +}, +"membership": { +"description": "Membership names are formatted as `projects//locations//memberships/`.", +"type": "string" +}, +"resourceName": { +"description": "Resource name of the dependency.", +"type": "string" +}, +"targetVersion": { +"description": "Target version of the dependency e.g. 1.16.1. This is the version the dependency needs to be upgraded to before a resource can be upgraded.", +"type": "string" +} +}, +"type": "object" +}, +"ValidationCheck": { +"description": "ValidationCheck represents the result of preflight check.", +"id": "ValidationCheck", +"properties": { +"option": { +"description": "Options used for the validation check", +"enum": [ +"OPTIONS_UNSPECIFIED", +"SKIP_VALIDATION_CHECK_BLOCKING", +"SKIP_VALIDATION_ALL" +], +"enumDescriptions": [ +"Default value. Standard preflight validation check will be used.", +"Prevent failed preflight checks from failing.", +"Skip all preflight check validations." +], +"type": "string" +}, +"scenario": { +"description": "Output only. The scenario when the preflight checks were run.", +"enum": [ +"SCENARIO_UNSPECIFIED", +"CREATE", +"UPDATE" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"The validation check occurred during a create flow.", +"The validation check occurred during an update flow." +], +"readOnly": true, +"type": "string" +}, +"status": { +"$ref": "ValidationCheckStatus", +"description": "Output only. The detailed validation check status.", +"readOnly": true +} +}, +"type": "object" +}, +"ValidationCheckResult": { +"description": "ValidationCheckResult defines the details about the validation check.", +"id": "ValidationCheckResult", +"properties": { +"category": { +"description": "The category of the validation.", +"type": "string" +}, +"description": { +"description": "The description of the validation check.", +"type": "string" +}, +"details": { +"description": "Detailed failure information, which might be unformatted.", +"type": "string" +}, +"reason": { +"description": "A human-readable message of the check failure.", +"type": "string" +}, +"state": { +"description": "The validation check state.", +"enum": [ +"STATE_UNKNOWN", +"STATE_FAILURE", +"STATE_SKIPPED", +"STATE_FATAL", +"STATE_WARNING" +], +"enumDescriptions": [ +"The default value. The check result is unknown.", +"The check failed.", +"The check was skipped.", +"The check itself failed to complete.", +"The check encountered a warning." +], +"type": "string" +} +}, +"type": "object" +}, +"ValidationCheckStatus": { +"description": "ValidationCheckStatus defines the detailed validation check status.", +"id": "ValidationCheckStatus", +"properties": { +"result": { +"description": "Individual checks which failed as part of the Preflight check execution.", +"items": { +"$ref": "ValidationCheckResult" +}, +"type": "array" +} +}, +"type": "object" +}, +"Version": { +"description": "Version describes the number of nodes at a given version under a resource.", +"id": "Version", +"properties": { +"count": { +"description": "Number of machines under the above version.", +"format": "int64", +"type": "string" +}, +"version": { +"description": "Resource version.", +"type": "string" +} +}, +"type": "object" +}, +"Versions": { +"description": "Versions describes the mapping of a given version to the number of machines under this version.", +"id": "Versions", +"properties": { +"versions": { +"description": "Shows the mapping of a given version to the number of machines under this version.", +"items": { +"$ref": "Version" +}, +"type": "array" +} +}, +"type": "object" +}, +"VmwareAAGConfig": { +"description": "Specifies anti affinity group config for the VMware user cluster.", +"id": "VmwareAAGConfig", +"properties": { +"aagConfigDisabled": { +"description": "Spread nodes across at least three physical hosts (requires at least three hosts). Enabled by default.", +"type": "boolean" +} +}, +"type": "object" +}, +"VmwareAddressPool": { +"description": "Represents an IP pool used by the load balancer.", +"id": "VmwareAddressPool", +"properties": { +"addresses": { +"description": "Required. The addresses that are part of this pool. Each address must be either in the CIDR form (1.2.3.0/24) or range form (1.2.3.1-1.2.3.5).", +"items": { +"type": "string" +}, +"type": "array" +}, +"avoidBuggyIps": { +"description": "If true, avoid using IPs ending in .0 or .255. This avoids buggy consumer devices mistakenly dropping IPv4 traffic for those special IP addresses.", +"type": "boolean" +}, +"manualAssign": { +"description": "If true, prevent IP addresses from being automatically assigned.", +"type": "boolean" +}, +"pool": { +"description": "Required. The name of the address pool.", +"type": "string" +} +}, +"type": "object" +}, +"VmwareAdminAddonNodeConfig": { +"description": "VmwareAdminAddonNodeConfig contains add-on node configurations for VMware admin cluster.", +"id": "VmwareAdminAddonNodeConfig", +"properties": { +"autoResizeConfig": { +"$ref": "VmwareAutoResizeConfig", +"description": "VmwareAutoResizeConfig config specifies auto resize config." +} +}, +"type": "object" +}, +"VmwareAdminAuthorizationConfig": { +"description": "VmwareAdminAuthorizationConfig represents configuration for admin cluster authorization.", +"id": "VmwareAdminAuthorizationConfig", +"properties": { +"viewerUsers": { +"description": "For VMware admin clusters, users will be granted the cluster-viewer role on the cluster.", +"items": { +"$ref": "ClusterUser" +}, +"type": "array" +} +}, +"type": "object" +}, +"VmwareAdminCluster": { +"description": "Resource that represents a VMware admin cluster.", +"id": "VmwareAdminCluster", +"properties": { +"addonNode": { +"$ref": "VmwareAdminAddonNodeConfig", +"description": "The VMware admin cluster addon node configuration." +}, +"annotations": { +"additionalProperties": { +"type": "string" +}, +"description": "Annotations on the VMware admin cluster. This field has the same restrictions as Kubernetes annotations. 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" +}, +"antiAffinityGroups": { +"$ref": "VmwareAAGConfig", +"description": "The VMware admin cluster anti affinity group configuration." +}, +"authorization": { +"$ref": "VmwareAdminAuthorizationConfig", +"description": "The VMware admin cluster authorization configuration." +}, +"autoRepairConfig": { +"$ref": "VmwareAutoRepairConfig", +"description": "The VMware admin cluster auto repair configuration." +}, +"bootstrapClusterMembership": { +"description": "The bootstrap cluster this VMware admin cluster belongs to.", +"type": "string" +}, +"controlPlaneNode": { +"$ref": "VmwareAdminControlPlaneNodeConfig", +"description": "The VMware admin cluster control plane node configuration." +}, +"createTime": { +"description": "Output only. The time at which VMware admin cluster was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "A human readable description of this VMware admin cluster.", +"type": "string" +}, +"endpoint": { +"description": "Output only. The DNS name of VMware admin cluster's API server.", +"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. Allows clients to perform consistent read-modify-writes through optimistic concurrency control.", +"type": "string" +}, +"fleet": { +"$ref": "Fleet", +"description": "Output only. Fleet configuration for the cluster.", +"readOnly": true +}, +"imageType": { +"description": "The OS image type for the VMware admin cluster.", +"type": "string" +}, +"loadBalancer": { +"$ref": "VmwareAdminLoadBalancerConfig", +"description": "The VMware admin cluster load balancer configuration." +}, +"localName": { +"description": "Output only. The object name of the VMware OnPremAdminCluster custom resource. This field is used to support conflicting names when enrolling existing clusters to the API. When used as a part of cluster enrollment, this field will differ from the ID in the resource name. For new clusters, this field will match the user provided cluster name and be visible in the last component of the resource name. It is not modifiable. All users should use this name to access their cluster using gkectl or kubectl and should expect to see the local name when viewing admin cluster controller logs.", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Immutable. The VMware admin cluster resource name.", +"type": "string" +}, +"networkConfig": { +"$ref": "VmwareAdminNetworkConfig", +"description": "The VMware admin cluster network configuration." +}, +"onPremVersion": { +"description": "The Anthos clusters on the VMware version for the admin cluster.", +"type": "string" +}, +"platformConfig": { +"$ref": "VmwarePlatformConfig", +"description": "The VMware platform configuration." +}, +"preparedSecrets": { +"$ref": "VmwareAdminPreparedSecretsConfig", +"description": "Output only. The VMware admin cluster prepared secrets configuration. It should always be enabled by the Central API, instead of letting users set it.", +"readOnly": true +}, +"reconciling": { +"description": "Output only. If set, there are currently changes in flight to the VMware admin cluster.", +"readOnly": true, +"type": "boolean" +}, +"state": { +"description": "Output only. The current state of VMware admin cluster.", +"enum": [ +"STATE_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 the cluster is being updated. It remains available, but potentially with degraded performance.", +"The STOPPING state indicates the cluster is being deleted.", +"The ERROR state indicates the cluster is in a broken unrecoverable state.", +"The DEGRADED state indicates the cluster requires user action to restore full functionality." +], +"readOnly": true, +"type": "string" +}, +"status": { +"$ref": "ResourceStatus", +"description": "Output only. ResourceStatus representing detailed cluster state.", +"readOnly": true +}, +"uid": { +"description": "Output only. The unique identifier of the VMware admin cluster.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The time at which VMware admin cluster was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"validationCheck": { +"$ref": "ValidationCheck", +"description": "Output only. ValidationCheck represents the result of the preflight check job.", +"readOnly": true +}, +"vcenter": { +"$ref": "VmwareAdminVCenterConfig", +"description": "The VMware admin cluster VCenter configuration." +} +}, +"type": "object" +}, +"VmwareAdminControlPlaneNodeConfig": { +"description": "VmwareAdminControlPlaneNodeConfig contains control plane node configuration for VMware admin cluster.", +"id": "VmwareAdminControlPlaneNodeConfig", +"properties": { +"cpus": { +"description": "The number of vCPUs for the control-plane node of the admin cluster.", +"format": "int64", +"type": "string" +}, +"memory": { +"description": "The number of mebibytes of memory for the control-plane node of the admin cluster.", +"format": "int64", +"type": "string" +}, +"replicas": { +"description": "The number of control plane nodes for this VMware admin cluster. (default: 1 replica).", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"VmwareAdminF5BigIpConfig": { +"description": "VmwareAdminF5BigIpConfig represents configuration parameters for an F5 BIG-IP load balancer.", +"id": "VmwareAdminF5BigIpConfig", +"properties": { +"address": { +"description": "The load balancer's IP address.", +"type": "string" +}, +"partition": { +"description": "The preexisting partition to be used by the load balancer. This partition is usually created for the admin cluster for example: 'my-f5-admin-partition'.", +"type": "string" +}, +"snatPool": { +"description": "The pool name. Only necessary, if using SNAT.", +"type": "string" +} +}, +"type": "object" +}, +"VmwareAdminHAControlPlaneConfig": { +"description": "Specifies HA admin control plane config.", +"id": "VmwareAdminHAControlPlaneConfig", +"properties": { +"controlPlaneIpBlock": { +"$ref": "VmwareIpBlock", +"description": "Static IP addresses for the admin control plane nodes." +} +}, +"type": "object" +}, +"VmwareAdminLoadBalancerConfig": { +"description": "VmwareAdminLoadBalancerConfig contains load balancer configuration for VMware admin cluster.", +"id": "VmwareAdminLoadBalancerConfig", +"properties": { +"f5Config": { +"$ref": "VmwareAdminF5BigIpConfig", +"description": "Configuration for F5 Big IP typed load balancers." +}, +"manualLbConfig": { +"$ref": "VmwareAdminManualLbConfig", +"description": "Manually configured load balancers." +}, +"metalLbConfig": { +"$ref": "VmwareAdminMetalLbConfig", +"description": "MetalLB load balancers." +}, +"seesawConfig": { +"$ref": "VmwareAdminSeesawConfig", +"description": "Output only. Configuration for Seesaw typed load balancers.", +"readOnly": true +}, +"vipConfig": { +"$ref": "VmwareAdminVipConfig", +"description": "The VIPs used by the load balancer." +} +}, +"type": "object" +}, +"VmwareAdminManualLbConfig": { +"id": "VmwareAdminManualLbConfig", +"properties": { +"addonsNodePort": { +"description": "NodePort for add-ons server in the admin cluster.", +"format": "int32", +"type": "integer" +}, +"controlPlaneNodePort": { +"description": "NodePort for control plane service. The Kubernetes API server in the admin cluster is implemented as a Service of type NodePort (ex. 30968).", +"format": "int32", +"type": "integer" +}, +"ingressHttpNodePort": { +"description": "NodePort for ingress service's http. The ingress service in the admin cluster is implemented as a Service of type NodePort (ex. 32527).", +"format": "int32", +"type": "integer" +}, +"ingressHttpsNodePort": { +"description": "NodePort for ingress service's https. The ingress service in the admin cluster is implemented as a Service of type NodePort (ex. 30139).", +"format": "int32", +"type": "integer" +}, +"konnectivityServerNodePort": { +"description": "NodePort for konnectivity server service running as a sidecar in each kube-apiserver pod (ex. 30564).", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"VmwareAdminMetalLbConfig": { +"description": "VmwareAdminMetalLbConfig represents configuration parameters for a MetalLB load balancer. For admin clusters, currently no configurations is needed.", +"id": "VmwareAdminMetalLbConfig", +"properties": { +"enabled": { +"description": "Whether MetalLB is enabled.", +"type": "boolean" +} +}, +"type": "object" +}, +"VmwareAdminNetworkConfig": { +"description": "VmwareAdminNetworkConfig contains network configuration for VMware admin cluster.", +"id": "VmwareAdminNetworkConfig", +"properties": { +"dhcpIpConfig": { +"$ref": "VmwareDhcpIpConfig", +"description": "Configuration settings for a DHCP IP configuration." +}, +"haControlPlaneConfig": { +"$ref": "VmwareAdminHAControlPlaneConfig", +"description": "Configuration for HA admin cluster control plane." +}, +"hostConfig": { +"$ref": "VmwareHostConfig", +"description": "Represents common network settings irrespective of the host's IP address." +}, +"podAddressCidrBlocks": { +"description": "Required. All pods in the cluster are assigned an RFC1918 IPv4 address from these ranges. Only a single range is supported. This field cannot be changed after creation.", +"items": { +"type": "string" +}, +"type": "array" +}, +"serviceAddressCidrBlocks": { +"description": "Required. All services in the cluster are assigned an RFC1918 IPv4 address from these ranges. Only a single range is supported. This field cannot be changed after creation.", +"items": { +"type": "string" +}, +"type": "array" +}, +"staticIpConfig": { +"$ref": "VmwareStaticIpConfig", +"description": "Configuration settings for a static IP configuration." +}, +"vcenterNetwork": { +"description": "vcenter_network specifies vCenter network name.", +"type": "string" +} +}, +"type": "object" +}, +"VmwareAdminPreparedSecretsConfig": { +"description": "VmwareAdminPreparedSecretsConfig represents configuration for admin cluster prepared secrets.", +"id": "VmwareAdminPreparedSecretsConfig", +"properties": { +"enabled": { +"description": "Whether prepared secrets is enabled.", +"type": "boolean" +} +}, +"type": "object" +}, +"VmwareAdminSeesawConfig": { +"description": "VmwareSeesawConfig represents configuration parameters for an already existing Seesaw load balancer. IMPORTANT: Please note that the Anthos On-Prem API will not generate or update Seesaw configurations it can only bind a pre-existing configuration to a new user cluster. IMPORTANT: When attempting to create a user cluster with a pre-existing Seesaw load balancer you will need to follow some preparation steps before calling the 'CreateVmwareCluster' API method. First you will need to create the user cluster's namespace via kubectl. The namespace will need to use the following naming convention : -gke-onprem-mgmt or -gke-onprem-mgmt depending on whether you used the 'VmwareCluster.local_name' to disambiguate collisions; for more context see the documentation of 'VmwareCluster.local_name'. Once the namespace is created you will need to create a secret resource via kubectl. This secret will contain copies of your Seesaw credentials. The Secret must be called 'user-cluster-creds' and contain Seesaw's SSH and Cert credentials. The credentials must be keyed with the following names: 'seesaw-ssh-private-key', 'seesaw-ssh-public-key', 'seesaw-ssh-ca-key', 'seesaw-ssh-ca-cert'.", +"id": "VmwareAdminSeesawConfig", +"properties": { +"enableHa": { +"description": "Enable two load balancer VMs to achieve a highly-available Seesaw load balancer.", +"type": "boolean" +}, +"group": { +"description": "In general the following format should be used for the Seesaw group name: seesaw-for-[cluster_name].", +"type": "string" +}, +"ipBlocks": { +"description": "The IP Blocks to be used by the Seesaw load balancer", +"items": { +"$ref": "VmwareIpBlock" +}, +"type": "array" +}, +"masterIp": { +"description": "MasterIP is the IP announced by the master of Seesaw group.", +"type": "string" +}, +"stackdriverName": { +"description": "Name to be used by Stackdriver.", +"type": "string" +}, +"vms": { +"description": "Names of the VMs created for this Seesaw group.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"VmwareAdminVCenterConfig": { +"description": "VmwareAdminVCenterConfig contains VCenter configuration for VMware admin cluster.", +"id": "VmwareAdminVCenterConfig", +"properties": { +"address": { +"description": "The vCenter IP address.", +"type": "string" +}, +"caCertData": { +"description": "Contains the vCenter CA certificate public key for SSL verification.", +"type": "string" +}, +"cluster": { +"description": "The name of the vCenter cluster for the admin cluster.", +"type": "string" +}, +"dataDisk": { +"description": "The name of the virtual machine disk (VMDK) for the admin cluster.", +"type": "string" +}, +"datacenter": { +"description": "The name of the vCenter datacenter for the admin cluster.", +"type": "string" +}, +"datastore": { +"description": "The name of the vCenter datastore for the admin cluster.", +"type": "string" +}, +"folder": { +"description": "The name of the vCenter folder for the admin cluster.", +"type": "string" +}, +"resourcePool": { +"description": "The name of the vCenter resource pool for the admin cluster.", +"type": "string" +}, +"storagePolicyName": { +"description": "The name of the vCenter storage policy for the user cluster.", +"type": "string" +} +}, +"type": "object" +}, +"VmwareAdminVipConfig": { +"description": "VmwareAdminVipConfig for VMware load balancer configurations.", +"id": "VmwareAdminVipConfig", +"properties": { +"addonsVip": { +"description": "The VIP to configure the load balancer for add-ons.", +"type": "string" +}, +"controlPlaneVip": { +"description": "The VIP which you previously set aside for the Kubernetes API of the admin cluster.", +"type": "string" +} +}, +"type": "object" +}, +"VmwareAutoRepairConfig": { +"description": "Specifies config to enable/disable auto repair. The cluster-health-controller is deployed only if Enabled is true.", +"id": "VmwareAutoRepairConfig", +"properties": { +"enabled": { +"description": "Whether auto repair is enabled.", +"type": "boolean" +} +}, +"type": "object" +}, +"VmwareAutoResizeConfig": { +"description": "Represents auto resizing configurations for the VMware user cluster.", +"id": "VmwareAutoResizeConfig", +"properties": { +"enabled": { +"description": "Whether to enable controle plane node auto resizing.", +"type": "boolean" +} +}, +"type": "object" +}, +"VmwareBundleConfig": { +"description": "VmwareBundleConfig represents configuration for the bundle.", +"id": "VmwareBundleConfig", +"properties": { +"status": { +"$ref": "ResourceStatus", +"description": "Output only. Resource status for the bundle.", +"readOnly": true +}, +"version": { +"description": "The version of the bundle.", +"type": "string" +} +}, +"type": "object" +}, +"VmwareCluster": { +"description": "Resource that represents a VMware user cluster. ##", +"id": "VmwareCluster", +"properties": { +"adminClusterMembership": { +"description": "Required. The admin cluster this VMware user cluster belongs to. This is the full resource name of the admin cluster's fleet membership. In the future, references to other resource types might be allowed if admin clusters are modeled as their own resources.", +"type": "string" +}, +"adminClusterName": { +"description": "Output only. The resource name of the VMware admin cluster hosting this user cluster.", +"readOnly": true, +"type": "string" +}, +"annotations": { +"additionalProperties": { +"type": "string" +}, +"description": "Annotations on the VMware user cluster. This field has the same restrictions as Kubernetes annotations. 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" +}, +"antiAffinityGroups": { +"$ref": "VmwareAAGConfig", +"description": "AAGConfig specifies whether to spread VMware user cluster nodes across at least three physical hosts in the datacenter." +}, +"authorization": { +"$ref": "Authorization", +"description": "RBAC policy that will be applied and managed by the Anthos On-Prem API." +}, +"autoRepairConfig": { +"$ref": "VmwareAutoRepairConfig", +"description": "Configuration for auto repairing." +}, +"binaryAuthorization": { +"$ref": "BinaryAuthorization", +"description": "Binary Authorization related configurations." +}, +"controlPlaneNode": { +"$ref": "VmwareControlPlaneNodeConfig", +"description": "VMware user cluster control plane nodes must have either 1 or 3 replicas." +}, +"createTime": { +"description": "Output only. The time at which VMware user cluster was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"dataplaneV2": { +"$ref": "VmwareDataplaneV2Config", +"description": "VmwareDataplaneV2Config specifies configuration for Dataplane V2." +}, +"deleteTime": { +"description": "Output only. The time at which VMware user cluster was deleted.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "A human readable description of this VMware user cluster.", +"type": "string" +}, +"disableBundledIngress": { +"description": "Disable bundled ingress.", +"type": "boolean" +}, +"enableControlPlaneV2": { +"description": "Enable control plane V2. Default to false.", +"type": "boolean" +}, +"endpoint": { +"description": "Output only. The DNS name of VMware user cluster's API server.", +"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. Allows clients to perform consistent read-modify-writes through optimistic concurrency control.", +"type": "string" +}, +"fleet": { +"$ref": "Fleet", +"description": "Output only. Fleet configuration for the cluster.", +"readOnly": true +}, +"loadBalancer": { +"$ref": "VmwareLoadBalancerConfig", +"description": "Load balancer configuration." +}, +"localName": { +"description": "Output only. The object name of the VMware OnPremUserCluster custom resource on the associated admin cluster. This field is used to support conflicting names when enrolling existing clusters to the API. When used as a part of cluster enrollment, this field will differ from the ID in the resource name. For new clusters, this field will match the user provided cluster name and be visible in the last component of the resource name. It is not modifiable. All users should use this name to access their cluster using gkectl or kubectl and should expect to see the local name when viewing admin cluster controller logs.", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Immutable. The VMware user cluster resource name.", +"type": "string" +}, +"networkConfig": { +"$ref": "VmwareNetworkConfig", +"description": "The VMware user cluster network configuration." +}, +"onPremVersion": { +"description": "Required. The Anthos clusters on the VMware version for your user cluster.", +"type": "string" +}, +"reconciling": { +"description": "Output only. If set, there are currently changes in flight to the VMware user cluster.", +"readOnly": true, +"type": "boolean" +}, +"state": { +"description": "Output only. The current state of VMware user cluster.", +"enum": [ +"STATE_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 the cluster is being updated. It remains available, but potentially with degraded performance.", +"The STOPPING state indicates the cluster is being deleted.", +"The ERROR state indicates the cluster is in a broken unrecoverable state.", +"The DEGRADED state indicates the cluster requires user action to restore full functionality." +], +"readOnly": true, +"type": "string" +}, +"status": { +"$ref": "ResourceStatus", +"description": "Output only. ResourceStatus representing detailed cluster state.", +"readOnly": true +}, +"storage": { +"$ref": "VmwareStorageConfig", +"description": "Storage configuration." +}, +"uid": { +"description": "Output only. The unique identifier of the VMware user cluster.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The time at which VMware user cluster was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"upgradePolicy": { +"$ref": "VmwareClusterUpgradePolicy", +"description": "Specifies upgrade policy for the cluster." +}, +"validationCheck": { +"$ref": "ValidationCheck", +"description": "Output only. ValidationCheck represents the result of the preflight check job.", +"readOnly": true +}, +"vcenter": { +"$ref": "VmwareVCenterConfig", +"description": "VmwareVCenterConfig specifies vCenter config for the user cluster. If unspecified, it is inherited from the admin cluster." +}, +"vmTrackingEnabled": { +"description": "Enable VM tracking.", +"type": "boolean" +} +}, +"type": "object" +}, +"VmwareClusterUpgradePolicy": { +"description": "VmwareClusterUpgradePolicy defines the cluster upgrade policy.", +"id": "VmwareClusterUpgradePolicy", +"properties": { +"controlPlaneOnly": { +"description": "Controls whether the upgrade applies to the control plane only.", +"type": "boolean" +} +}, +"type": "object" +}, +"VmwareControlPlaneNodeConfig": { +"description": "Specifies control plane node config for the VMware user cluster.", +"id": "VmwareControlPlaneNodeConfig", +"properties": { +"autoResizeConfig": { +"$ref": "VmwareAutoResizeConfig", +"description": "AutoResizeConfig provides auto resizing configurations." +}, +"cpus": { +"description": "The number of CPUs for each admin cluster node that serve as control planes for this VMware user cluster. (default: 4 CPUs)", +"format": "int64", +"type": "string" +}, +"memory": { +"description": "The megabytes of memory for each admin cluster node that serves as a control plane for this VMware user cluster (default: 8192 MB memory).", +"format": "int64", +"type": "string" +}, +"replicas": { +"description": "The number of control plane nodes for this VMware user cluster. (default: 1 replica).", +"format": "int64", +"type": "string" +}, +"vsphereConfig": { +"$ref": "VmwareControlPlaneVsphereConfig", +"description": "Vsphere-specific config." +} +}, +"type": "object" +}, +"VmwareControlPlaneV2Config": { +"description": "Specifies control plane V2 config.", +"id": "VmwareControlPlaneV2Config", +"properties": { +"controlPlaneIpBlock": { +"$ref": "VmwareIpBlock", +"description": "Static IP addresses for the control plane nodes." +} +}, +"type": "object" +}, +"VmwareControlPlaneVsphereConfig": { +"description": "Specifies control plane node config.", +"id": "VmwareControlPlaneVsphereConfig", +"properties": { +"datastore": { +"description": "The Vsphere datastore used by the control plane Node.", +"type": "string" +}, +"storagePolicyName": { +"description": "The Vsphere storage policy used by the control plane Node.", +"type": "string" +} +}, +"type": "object" +}, +"VmwareDataplaneV2Config": { +"description": "Contains configurations for Dataplane V2, which is optimized dataplane for Kubernetes networking. For more information, see: https://cloud.google.com/kubernetes-engine/docs/concepts/dataplane-v2", +"id": "VmwareDataplaneV2Config", +"properties": { +"advancedNetworking": { +"description": "Enable advanced networking which requires dataplane_v2_enabled to be set true.", +"type": "boolean" +}, +"dataplaneV2Enabled": { +"description": "Enables Dataplane V2.", +"type": "boolean" +}, +"forwardMode": { +"description": "Configure ForwardMode for Dataplane v2.", +"type": "string" +}, +"windowsDataplaneV2Enabled": { +"description": "Enable Dataplane V2 for clusters with Windows nodes.", +"type": "boolean" +} +}, +"type": "object" +}, +"VmwareDhcpIpConfig": { +"description": "Represents the network configuration required for the VMware user clusters with DHCP IP configurations.", +"id": "VmwareDhcpIpConfig", +"properties": { +"enabled": { +"description": "enabled is a flag to mark if DHCP IP allocation is used for VMware user clusters.", +"type": "boolean" +} +}, +"type": "object" +}, +"VmwareF5BigIpConfig": { +"description": "Represents configuration parameters for an F5 BIG-IP load balancer.", +"id": "VmwareF5BigIpConfig", +"properties": { +"address": { +"description": "The load balancer's IP address.", +"type": "string" +}, +"partition": { +"description": "The preexisting partition to be used by the load balancer. This partition is usually created for the admin cluster for example: 'my-f5-admin-partition'.", +"type": "string" +}, +"snatPool": { +"description": "The pool name. Only necessary, if using SNAT.", +"type": "string" +} +}, +"type": "object" +}, +"VmwareHostConfig": { +"description": "Represents the common parameters for all the hosts irrespective of their IP address.", +"id": "VmwareHostConfig", +"properties": { +"dnsSearchDomains": { +"description": "DNS search domains.", +"items": { +"type": "string" +}, +"type": "array" +}, +"dnsServers": { +"description": "DNS servers.", +"items": { +"type": "string" +}, +"type": "array" +}, +"ntpServers": { +"description": "NTP servers.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"VmwareHostIp": { +"description": "Represents VMware user cluster node's network configuration.", +"id": "VmwareHostIp", +"properties": { +"hostname": { +"description": "Hostname of the machine. VM's name will be used if this field is empty.", +"type": "string" +}, +"ip": { +"description": "IP could be an IP address (like 1.2.3.4) or a CIDR (like 1.2.3.0/24).", +"type": "string" +} +}, +"type": "object" +}, +"VmwareIpBlock": { +"description": "Represents a collection of IP addresses to assign to nodes.", +"id": "VmwareIpBlock", +"properties": { +"gateway": { +"description": "The network gateway used by the VMware user cluster.", +"type": "string" +}, +"ips": { +"description": "The node's network configurations used by the VMware user cluster.", +"items": { +"$ref": "VmwareHostIp" +}, +"type": "array" +}, +"netmask": { +"description": "The netmask used by the VMware user cluster.", +"type": "string" +} +}, +"type": "object" +}, +"VmwareLoadBalancerConfig": { +"description": "Specifies the locad balancer config for the VMware user cluster.", +"id": "VmwareLoadBalancerConfig", +"properties": { +"f5Config": { +"$ref": "VmwareF5BigIpConfig", +"description": "Configuration for F5 Big IP typed load balancers." +}, +"manualLbConfig": { +"$ref": "VmwareManualLbConfig", +"description": "Manually configured load balancers." +}, +"metalLbConfig": { +"$ref": "VmwareMetalLbConfig", +"description": "Configuration for MetalLB typed load balancers." +}, +"seesawConfig": { +"$ref": "VmwareSeesawConfig", +"description": "Output only. Configuration for Seesaw typed load balancers.", +"readOnly": true +}, +"vipConfig": { +"$ref": "VmwareVipConfig", +"description": "The VIPs used by the load balancer." +} +}, +"type": "object" +}, +"VmwareManualLbConfig": { +"description": "Represents configuration parameters for an already existing manual load balancer. Given the nature of manual load balancers it is expected that said load balancer will be fully managed by users. IMPORTANT: Please note that the Anthos On-Prem API will not generate or update ManualLB configurations it can only bind a pre-existing configuration to a new VMware user cluster.", +"id": "VmwareManualLbConfig", +"properties": { +"controlPlaneNodePort": { +"description": "NodePort for control plane service. The Kubernetes API server in the admin cluster is implemented as a Service of type NodePort (ex. 30968).", +"format": "int32", +"type": "integer" +}, +"ingressHttpNodePort": { +"description": "NodePort for ingress service's http. The ingress service in the admin cluster is implemented as a Service of type NodePort (ex. 32527).", +"format": "int32", +"type": "integer" +}, +"ingressHttpsNodePort": { +"description": "NodePort for ingress service's https. The ingress service in the admin cluster is implemented as a Service of type NodePort (ex. 30139).", +"format": "int32", +"type": "integer" +}, +"konnectivityServerNodePort": { +"description": "NodePort for konnectivity server service running as a sidecar in each kube-apiserver pod (ex. 30564).", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"VmwareMetalLbConfig": { +"description": "Represents configuration parameters for the MetalLB load balancer.", +"id": "VmwareMetalLbConfig", +"properties": { +"addressPools": { +"description": "Required. AddressPools is a list of non-overlapping IP pools used by load balancer typed services. All addresses must be routable to load balancer nodes. IngressVIP must be included in the pools.", +"items": { +"$ref": "VmwareAddressPool" +}, +"type": "array" +} +}, +"type": "object" +}, +"VmwareNetworkConfig": { +"description": "Specifies network config for the VMware user cluster.", +"id": "VmwareNetworkConfig", +"properties": { +"controlPlaneV2Config": { +"$ref": "VmwareControlPlaneV2Config", +"description": "Configuration for control plane V2 mode." +}, +"dhcpIpConfig": { +"$ref": "VmwareDhcpIpConfig", +"description": "Configuration settings for a DHCP IP configuration." +}, +"hostConfig": { +"$ref": "VmwareHostConfig", +"description": "Represents common network settings irrespective of the host's IP address." +}, +"podAddressCidrBlocks": { +"description": "Required. All pods in the cluster are assigned an RFC1918 IPv4 address from these ranges. Only a single range is supported. This field cannot be changed after creation.", +"items": { +"type": "string" +}, +"type": "array" +}, +"serviceAddressCidrBlocks": { +"description": "Required. All services in the cluster are assigned an RFC1918 IPv4 address from these ranges. Only a single range is supported. This field cannot be changed after creation.", +"items": { +"type": "string" +}, +"type": "array" +}, +"staticIpConfig": { +"$ref": "VmwareStaticIpConfig", +"description": "Configuration settings for a static IP configuration." +}, +"vcenterNetwork": { +"description": "vcenter_network specifies vCenter network name. Inherited from the admin cluster.", +"type": "string" +} +}, +"type": "object" +}, +"VmwareNodeConfig": { +"description": "Parameters that describe the configuration of all nodes within a given node pool.", +"id": "VmwareNodeConfig", +"properties": { +"bootDiskSizeGb": { +"description": "VMware disk size to be used during creation.", +"format": "int64", +"type": "string" +}, +"cpus": { +"description": "The number of CPUs for each node in the node pool.", +"format": "int64", +"type": "string" +}, +"enableLoadBalancer": { +"description": "Allow node pool traffic to be load balanced. Only works for clusters with MetalLB load balancers.", +"type": "boolean" +}, +"image": { +"description": "The OS image name in vCenter, only valid when using Windows.", +"type": "string" +}, +"imageType": { +"description": "Required. The OS image to be used for each node in a node pool. Currently `cos`, `cos_cgv2`, `ubuntu`, `ubuntu_cgv2`, `ubuntu_containerd` and `windows` are supported.", +"type": "string" +}, +"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" +}, +"memoryMb": { +"description": "The megabytes of memory for each node in the node pool.", +"format": "int64", +"type": "string" +}, +"replicas": { +"description": "The number of nodes in the node pool.", +"format": "int64", +"type": "string" +}, +"taints": { +"description": "The initial taints assigned to nodes of this node pool.", +"items": { +"$ref": "NodeTaint" +}, +"type": "array" +}, +"vsphereConfig": { +"$ref": "VmwareVsphereConfig", +"description": "Specifies the vSphere config for node pool." +} +}, +"type": "object" +}, +"VmwareNodePool": { +"description": "Resource VmwareNodePool represents a VMware node pool. ##", +"id": "VmwareNodePool", +"properties": { +"annotations": { +"additionalProperties": { +"type": "string" +}, +"description": "Annotations on the node pool. This field has the same restrictions as Kubernetes annotations. 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" +}, +"config": { +"$ref": "VmwareNodeConfig", +"description": "Required. The node configuration of the node pool." +}, +"createTime": { +"description": "Output only. The time at which this node pool was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"deleteTime": { +"description": "Output only. The time at which this node pool was deleted. If the resource is not deleted, this must be empty", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "The display name for the node pool.", +"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. Allows clients to perform consistent read-modify-writes through optimistic concurrency control.", +"type": "string" +}, +"name": { +"description": "Immutable. The resource name of this node pool.", +"type": "string" +}, +"nodePoolAutoscaling": { +"$ref": "VmwareNodePoolAutoscalingConfig", +"description": "Node pool autoscaling config for the node pool." +}, +"onPremVersion": { +"description": "Anthos version for the node pool. Defaults to the user cluster version.", +"type": "string" +}, +"reconciling": { +"description": "Output only. If set, there are currently changes in flight to the node pool.", +"readOnly": true, +"type": "boolean" +}, +"state": { +"description": "Output only. The current state of the node pool.", +"enum": [ +"STATE_UNSPECIFIED", +"PROVISIONING", +"RUNNING", +"RECONCILING", +"STOPPING", +"ERROR", +"DEGRADED" +], +"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 RECONCILING state indicates that the node pool is being updated. It remains available, but potentially with degraded performance.", +"The STOPPING state indicates the cluster is being deleted", +"The ERROR state indicates the node pool is in a broken unrecoverable state.", +"The DEGRADED state indicates the node pool requires user action to restore full functionality." +], +"readOnly": true, +"type": "string" +}, +"status": { +"$ref": "ResourceStatus", +"description": "Output only. ResourceStatus representing the detailed VMware node pool state.", +"readOnly": true +}, +"uid": { +"description": "Output only. The unique identifier of the node pool.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The time at which this node pool was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"VmwareNodePoolAutoscalingConfig": { +"description": "NodePoolAutoscaling config for the NodePool to allow for the kubernetes to scale NodePool.", +"id": "VmwareNodePoolAutoscalingConfig", +"properties": { +"maxReplicas": { +"description": "Maximum number of replicas in the NodePool.", +"format": "int32", +"type": "integer" +}, +"minReplicas": { +"description": "Minimum number of replicas in the NodePool.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"VmwarePlatformConfig": { +"description": "VmwarePlatformConfig represents configuration for the VMware platform.", +"id": "VmwarePlatformConfig", +"properties": { +"bundles": { +"description": "Output only. The list of bundles installed in the admin cluster.", +"items": { +"$ref": "VmwareBundleConfig" +}, +"readOnly": true, +"type": "array" +}, +"platformVersion": { +"description": "Output only. The platform version e.g. 1.13.2.", +"readOnly": true, +"type": "string" +}, +"requiredPlatformVersion": { +"description": "Input only. The required platform version e.g. 1.13.1. If the current platform version is lower than the target version, the platform version will be updated to the target version. If the target version is not installed in the platform (bundle versions), download the target version bundle.", +"type": "string" +}, +"status": { +"$ref": "ResourceStatus", +"description": "Output only. Resource status for the platform.", +"readOnly": true +} +}, +"type": "object" +}, +"VmwareSeesawConfig": { +"description": "VmwareSeesawConfig represents configuration parameters for an already existing Seesaw load balancer. IMPORTANT: Please note that the Anthos On-Prem API will not generate or update Seesaw configurations it can only bind a pre-existing configuration to a new user cluster. IMPORTANT: When attempting to create a user cluster with a pre-existing Seesaw load balancer you will need to follow some preparation steps before calling the 'CreateVmwareCluster' API method. First you will need to create the user cluster's namespace via kubectl. The namespace will need to use the following naming convention : -gke-onprem-mgmt or -gke-onprem-mgmt depending on whether you used the 'VmwareCluster.local_name' to disambiguate collisions; for more context see the documentation of 'VmwareCluster.local_name'. Once the namespace is created you will need to create a secret resource via kubectl. This secret will contain copies of your Seesaw credentials. The Secret must be called 'user-cluster-creds' and contain Seesaw's SSH and Cert credentials. The credentials must be keyed with the following names: 'seesaw-ssh-private-key', 'seesaw-ssh-public-key', 'seesaw-ssh-ca-key', 'seesaw-ssh-ca-cert'.", +"id": "VmwareSeesawConfig", +"properties": { +"enableHa": { +"description": "Enable two load balancer VMs to achieve a highly-available Seesaw load balancer.", +"type": "boolean" +}, +"group": { +"description": "Required. In general the following format should be used for the Seesaw group name: seesaw-for-[cluster_name].", +"type": "string" +}, +"ipBlocks": { +"description": "Required. The IP Blocks to be used by the Seesaw load balancer", +"items": { +"$ref": "VmwareIpBlock" +}, +"type": "array" +}, +"masterIp": { +"description": "Required. MasterIP is the IP announced by the master of Seesaw group.", +"type": "string" +}, +"stackdriverName": { +"description": "Name to be used by Stackdriver.", +"type": "string" +}, +"vms": { +"description": "Names of the VMs created for this Seesaw group.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"VmwareStaticIpConfig": { +"description": "Represents the network configuration required for the VMware user clusters with Static IP configurations.", +"id": "VmwareStaticIpConfig", +"properties": { +"ipBlocks": { +"description": "Represents the configuration values for static IP allocation to nodes.", +"items": { +"$ref": "VmwareIpBlock" +}, +"type": "array" +} +}, +"type": "object" +}, +"VmwareStorageConfig": { +"description": "Specifies vSphere CSI components deployment config in the VMware user cluster.", +"id": "VmwareStorageConfig", +"properties": { +"vsphereCsiDisabled": { +"description": "Whether or not to deploy vSphere CSI components in the VMware user cluster. Enabled by default.", +"type": "boolean" +} +}, +"type": "object" +}, +"VmwareVCenterConfig": { +"description": "Represents configuration for the VMware VCenter for the user cluster.", +"id": "VmwareVCenterConfig", +"properties": { +"address": { +"description": "Output only. The vCenter IP address.", +"readOnly": true, +"type": "string" +}, +"caCertData": { +"description": "Contains the vCenter CA certificate public key for SSL verification.", +"type": "string" +}, +"cluster": { +"description": "The name of the vCenter cluster for the user cluster.", +"type": "string" +}, +"datacenter": { +"description": "The name of the vCenter datacenter for the user cluster.", +"type": "string" +}, +"datastore": { +"description": "The name of the vCenter datastore for the user cluster.", +"type": "string" +}, +"folder": { +"description": "The name of the vCenter folder for the user cluster.", +"type": "string" +}, +"resourcePool": { +"description": "The name of the vCenter resource pool for the user cluster.", +"type": "string" +}, +"storagePolicyName": { +"description": "The name of the vCenter storage policy for the user cluster.", +"type": "string" +} +}, +"type": "object" +}, +"VmwareVersionInfo": { +"description": "Contains information about a specific Anthos on VMware version.", +"id": "VmwareVersionInfo", +"properties": { +"dependencies": { +"description": "The list of upgrade dependencies for this version.", +"items": { +"$ref": "UpgradeDependency" +}, +"type": "array" +}, +"hasDependencies": { +"description": "If set, the cluster dependencies (e.g. the admin cluster, other user clusters managed by the same admin cluster) must be upgraded before this version can be installed or upgraded to.", +"type": "boolean" +}, +"isInstalled": { +"description": "If set, the version is installed in the admin cluster. Otherwise, the version bundle must be downloaded and installed before a user cluster can be created at or upgraded to this version.", +"type": "boolean" +}, +"version": { +"description": "Version number e.g. 1.13.1-gke.1000.", +"type": "string" +} +}, +"type": "object" +}, +"VmwareVipConfig": { +"description": "Specifies the VIP config for the VMware user cluster load balancer.", +"id": "VmwareVipConfig", +"properties": { +"controlPlaneVip": { +"description": "The VIP which you previously set aside for the Kubernetes API of this cluster.", +"type": "string" +}, +"ingressVip": { +"description": "The VIP which you previously set aside for ingress traffic into this cluster.", +"type": "string" +} +}, +"type": "object" +}, +"VmwareVsphereConfig": { +"description": "VmwareVsphereConfig represents configuration for the VMware VCenter for node pool.", +"id": "VmwareVsphereConfig", +"properties": { +"datastore": { +"description": "The name of the vCenter datastore. Inherited from the user cluster.", +"type": "string" +}, +"hostGroups": { +"description": "Vsphere host groups to apply to all VMs in the node pool", +"items": { +"type": "string" +}, +"type": "array" +}, +"tags": { +"description": "Tags to apply to VMs.", +"items": { +"$ref": "VmwareVsphereTag" +}, +"type": "array" +} +}, +"type": "object" +}, +"VmwareVsphereTag": { +"description": "VmwareVsphereTag describes a vSphere tag to be placed on VMs in the node pool. For more information, see https://docs.vmware.com/en/VMware-vSphere/7.0/com.vmware.vsphere.vcenterhost.doc/GUID-E8E854DD-AA97-4E0C-8419-CE84F93C4058.html", +"id": "VmwareVsphereTag", +"properties": { +"category": { +"description": "The Vsphere tag category.", +"type": "string" +}, +"tag": { +"description": "The Vsphere tag name.", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "GDC Virtual 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/gmailpostmastertools.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/gmailpostmastertools.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..60efb0d4522c5cb0361fa15824fa0bf843d465af --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/gmailpostmastertools.v1.json @@ -0,0 +1,543 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/postmaster.readonly": { +"description": "See email traffic metrics for the domains you have registered in Gmail Postmaster Tools" +} +} +} +}, +"basePath": "", +"baseUrl": "https://gmailpostmastertools.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Postmaster Tools", +"description": "The Postmaster Tools API is a RESTful API that provides programmatic access to email traffic metrics (like spam reports, delivery errors etc) otherwise available through the Gmail Postmaster Tools UI currently.", +"discoveryVersion": "v1", +"documentationLink": "https://developers.google.com/gmail/postmaster", +"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": "gmailpostmastertools:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://gmailpostmastertools.mtls.googleapis.com/", +"name": "gmailpostmastertools", +"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": { +"domains": { +"methods": { +"get": { +"description": "Gets a specific domain registered by the client. Returns NOT_FOUND if the domain does not exist.", +"flatPath": "v1/domains/{domainsId}", +"httpMethod": "GET", +"id": "gmailpostmastertools.domains.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The resource name of the domain. It should have the form `domains/{domain_name}`, where domain_name is the fully qualified domain name.", +"location": "path", +"pattern": "^domains/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Domain" +}, +"scopes": [ +"https://www.googleapis.com/auth/postmaster.readonly" +] +}, +"list": { +"description": "Lists the domains that have been registered by the client. The order of domains in the response is unspecified and non-deterministic. Newly created domains will not necessarily be added to the end of this list.", +"flatPath": "v1/domains", +"httpMethod": "GET", +"id": "gmailpostmastertools.domains.list", +"parameterOrder": [], +"parameters": { +"pageSize": { +"description": "Requested page size. Server may return fewer domains than requested. If unspecified, server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value returned from a previous List request, if any. This is the value of ListDomainsResponse.next_page_token returned from the previous call to `ListDomains` method.", +"location": "query", +"type": "string" +} +}, +"path": "v1/domains", +"response": { +"$ref": "ListDomainsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/postmaster.readonly" +] +} +}, +"resources": { +"trafficStats": { +"methods": { +"get": { +"description": "Get traffic statistics for a domain on a specific date. Returns PERMISSION_DENIED if user does not have permission to access TrafficStats for the domain.", +"flatPath": "v1/domains/{domainsId}/trafficStats/{trafficStatsId}", +"httpMethod": "GET", +"id": "gmailpostmastertools.domains.trafficStats.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The resource name of the traffic statistics to get. E.g., domains/mymail.mydomain.com/trafficStats/20160807.", +"location": "path", +"pattern": "^domains/[^/]+/trafficStats/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "TrafficStats" +}, +"scopes": [ +"https://www.googleapis.com/auth/postmaster.readonly" +] +}, +"list": { +"description": "List traffic statistics for all available days. Returns PERMISSION_DENIED if user does not have permission to access TrafficStats for the domain.", +"flatPath": "v1/domains/{domainsId}/trafficStats", +"httpMethod": "GET", +"id": "gmailpostmastertools.domains.trafficStats.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"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" +}, +"pageSize": { +"description": "Requested page size. Server may return fewer TrafficStats than requested. If unspecified, server will pick an appropriate default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value returned from a previous List request, if any. This is the value of ListTrafficStatsResponse.next_page_token returned from the previous call to `ListTrafficStats` method.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "The resource name of the domain whose traffic statistics we'd like to list. It should have the form `domains/{domain_name}`, where domain_name is the fully qualified domain name.", +"location": "path", +"pattern": "^domains/[^/]+$", +"required": true, +"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": "v1/{+parent}/trafficStats", +"response": { +"$ref": "ListTrafficStatsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/postmaster.readonly" +] +} +} +} +} +} +}, +"revision": "20240707", +"rootUrl": "https://gmailpostmastertools.googleapis.com/", +"schemas": { +"DeliveryError": { +"description": "Metric on a particular delivery error type.", +"id": "DeliveryError", +"properties": { +"errorClass": { +"description": "The class of delivery error.", +"enum": [ +"DELIVERY_ERROR_CLASS_UNSPECIFIED", +"PERMANENT_ERROR", +"TEMPORARY_ERROR" +], +"enumDescriptions": [ +"The default value which should never be used explicitly.", +"Delivery of message has been rejected.", +"Temporary failure of message delivery to the recipient." +], +"type": "string" +}, +"errorRatio": { +"description": "The ratio of messages where the error occurred vs all authenticated traffic.", +"format": "double", +"type": "number" +}, +"errorType": { +"description": "The type of delivery error.", +"enum": [ +"DELIVERY_ERROR_TYPE_UNSPECIFIED", +"RATE_LIMIT_EXCEEDED", +"SUSPECTED_SPAM", +"CONTENT_SPAMMY", +"BAD_ATTACHMENT", +"BAD_DMARC_POLICY", +"LOW_IP_REPUTATION", +"LOW_DOMAIN_REPUTATION", +"IP_IN_RBL", +"DOMAIN_IN_RBL", +"BAD_PTR_RECORD" +], +"enumDescriptions": [ +"The default value which should never be used explicitly.", +"The Domain or IP is sending traffic at a suspiciously high rate, due to which temporary rate limits have been imposed. The limit will be lifted when Gmail is confident enough of the nature of the traffic.", +"The traffic is suspected to be spam, by Gmail, for various reasons.", +"The traffic is suspected to be spammy, specific to the content.", +"Traffic contains attachments not supported by Gmail.", +"The sender domain has set up a DMARC rejection policy.", +"The IP reputation of the sending IP is very low.", +"The Domain reputation of the sending domain is very low.", +"The IP is listed in one or more public [Real-time Blackhole Lists](http://en.wikipedia.org/wiki/DNSBL). Work with the RBL to get your IP delisted.", +"The Domain is listed in one or more public [Real-time Blackhole Lists](http://en.wikipedia.org/wiki/DNSBL). Work with the RBL to get your domain delisted.", +"The sending IP is missing a [PTR record](https://support.google.com/domains/answer/3251147#ptr)." +], +"type": "string" +} +}, +"type": "object" +}, +"Domain": { +"description": "A registered domain resource in the Postmaster API.", +"id": "Domain", +"properties": { +"createTime": { +"description": "Timestamp when the user registered this domain. Assigned by the server.", +"format": "google-datetime", +"type": "string" +}, +"name": { +"description": "The resource name of the Domain. Domain names have the form `domains/{domain_name}`, where domain_name is the fully qualified domain name (i.e., mymail.mydomain.com).", +"type": "string" +}, +"permission": { +"description": "User\u2019s permission for this domain. Assigned by the server.", +"enum": [ +"PERMISSION_UNSPECIFIED", +"OWNER", +"READER", +"NONE" +], +"enumDescriptions": [ +"The default value and should never be used explicitly.", +"User has read access to the domain and can share access with others.", +"User has read access to the domain.", +"User doesn't have permission to access information about the domain. User did not verify ownership of domain nor was access granted by other domain owners." +], +"type": "string" +} +}, +"type": "object" +}, +"FeedbackLoop": { +"description": "[Feedback loop](https://support.google.com/mail/answer/6254652) identifier information.", +"id": "FeedbackLoop", +"properties": { +"id": { +"description": "Feedback loop identifier that uniquely identifies individual campaigns.", +"type": "string" +}, +"spamRatio": { +"description": "The ratio of user marked spam messages with the identifier vs the total number of inboxed messages with that identifier.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"IpReputation": { +"description": "IP Reputation information for a set of IPs in a specific reputation category.", +"id": "IpReputation", +"properties": { +"ipCount": { +"description": "Total number of unique IPs in this reputation category. This metric only pertains to traffic that passed [SPF](http://www.openspf.org/) or [DKIM](http://www.dkim.org/).", +"format": "int64", +"type": "string" +}, +"reputation": { +"description": "The reputation category this IP reputation represents.", +"enum": [ +"REPUTATION_CATEGORY_UNSPECIFIED", +"HIGH", +"MEDIUM", +"LOW", +"BAD" +], +"enumDescriptions": [ +"The default value which should never be used explicitly. This represents the state where no reputation information is available.", +"Has a good track record of a very low spam rate, and complies with Gmail's sender guidelines. Mail will rarely be marked by the spam filter.", +"Known to send good mail, but is prone to sending a low volume of spam intermittently. Most of the email from this entity will have a fair deliverability rate, except when there is a notable increase in spam levels.", +"Known to send a considerable volume of spam regularly, and mail from this sender will likely be marked as spam.", +"History of sending an enormously high volume of spam. Mail coming from this entity will almost always be rejected at SMTP level or marked as spam." +], +"type": "string" +}, +"sampleIps": { +"description": "A sample of IPs in this reputation category.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListDomainsResponse": { +"description": "Response message for ListDomains.", +"id": "ListDomainsResponse", +"properties": { +"domains": { +"description": "The list of domains.", +"items": { +"$ref": "Domain" +}, +"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" +}, +"ListTrafficStatsResponse": { +"description": "Response message for ListTrafficStats.", +"id": "ListTrafficStatsResponse", +"properties": { +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +}, +"trafficStats": { +"description": "The list of TrafficStats.", +"items": { +"$ref": "TrafficStats" +}, +"type": "array" +} +}, +"type": "object" +}, +"TrafficStats": { +"description": "Email traffic statistics pertaining to a specific date.", +"id": "TrafficStats", +"properties": { +"deliveryErrors": { +"description": "Delivery errors for the domain. This metric only pertains to traffic that passed [SPF](http://www.openspf.org/) or [DKIM](http://www.dkim.org/).", +"items": { +"$ref": "DeliveryError" +}, +"type": "array" +}, +"dkimSuccessRatio": { +"description": "The ratio of mail that successfully authenticated with DKIM vs. all mail that attempted to authenticate with [DKIM](http://www.dkim.org/). Spoofed mail is excluded.", +"format": "double", +"type": "number" +}, +"dmarcSuccessRatio": { +"description": "The ratio of mail that passed [DMARC](https://dmarc.org/) alignment checks vs all mail received from the domain that successfully authenticated with either of [SPF](http://www.openspf.org/) or [DKIM](http://www.dkim.org/).", +"format": "double", +"type": "number" +}, +"domainReputation": { +"description": "Reputation of the domain.", +"enum": [ +"REPUTATION_CATEGORY_UNSPECIFIED", +"HIGH", +"MEDIUM", +"LOW", +"BAD" +], +"enumDescriptions": [ +"The default value which should never be used explicitly. This represents the state where no reputation information is available.", +"Has a good track record of a very low spam rate, and complies with Gmail's sender guidelines. Mail will rarely be marked by the spam filter.", +"Known to send good mail, but is prone to sending a low volume of spam intermittently. Most of the email from this entity will have a fair deliverability rate, except when there is a notable increase in spam levels.", +"Known to send a considerable volume of spam regularly, and mail from this sender will likely be marked as spam.", +"History of sending an enormously high volume of spam. Mail coming from this entity will almost always be rejected at SMTP level or marked as spam." +], +"type": "string" +}, +"inboundEncryptionRatio": { +"description": "The ratio of incoming mail (to Gmail), that passed secure transport (TLS) vs all mail received from that domain. This metric only pertains to traffic that passed [SPF](http://www.openspf.org/) or [DKIM](http://www.dkim.org/).", +"format": "double", +"type": "number" +}, +"ipReputations": { +"description": "Reputation information pertaining to the IP addresses of the email servers for the domain. There is exactly one entry for each reputation category except REPUTATION_CATEGORY_UNSPECIFIED.", +"items": { +"$ref": "IpReputation" +}, +"type": "array" +}, +"name": { +"description": "The resource name of the traffic statistics. Traffic statistic names have the form `domains/{domain}/trafficStats/{date}`, where domain_name is the fully qualified domain name (i.e., mymail.mydomain.com) of the domain this traffic statistics pertains to and date is the date in yyyymmdd format that these statistics corresponds to. For example: domains/mymail.mydomain.com/trafficStats/20160807", +"type": "string" +}, +"outboundEncryptionRatio": { +"description": "The ratio of outgoing mail (from Gmail) that was accepted over secure transport (TLS).", +"format": "double", +"type": "number" +}, +"spammyFeedbackLoops": { +"description": "Spammy [Feedback loop identifiers] (https://support.google.com/mail/answer/6254652) with their individual spam rates. This metric only pertains to traffic that is authenticated by [DKIM](http://www.dkim.org/).", +"items": { +"$ref": "FeedbackLoop" +}, +"type": "array" +}, +"spfSuccessRatio": { +"description": "The ratio of mail that successfully authenticated with SPF vs. all mail that attempted to authenticate with [SPF](http://www.openspf.org/). Spoofed mail is excluded.", +"format": "double", +"type": "number" +}, +"userReportedSpamRatio": { +"description": "The ratio of user-report spam vs. email that was sent to the inbox. This is potentially inexact -- users may want to refer to the description of the interval fields userReportedSpamRatioLowerBound and userReportedSpamRatioUpperBound for more explicit accuracy guarantees. This metric only pertains to emails authenticated by [DKIM](http://www.dkim.org/).", +"format": "double", +"type": "number" +}, +"userReportedSpamRatioLowerBound": { +"description": "The lower bound of the confidence interval for the user reported spam ratio. If this field is set, then the value of userReportedSpamRatio is set to the midpoint of this interval and is thus inexact. However, the true ratio is guaranteed to be in between this lower bound and the corresponding upper bound 95% of the time. This metric only pertains to emails authenticated by [DKIM](http://www.dkim.org/).", +"format": "double", +"type": "number" +}, +"userReportedSpamRatioUpperBound": { +"description": "The upper bound of the confidence interval for the user reported spam ratio. If this field is set, then the value of userReportedSpamRatio is set to the midpoint of this interval and is thus inexact. However, the true ratio is guaranteed to be in between this upper bound and the corresponding lower bound 95% of the time. This metric only pertains to emails authenticated by [DKIM](http://www.dkim.org/).", +"format": "double", +"type": "number" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Gmail Postmaster Tools 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/healthcare.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/healthcare.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..2d6ebd713ecd38d1a3116c92f0414c1d56da2f57 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/healthcare.v1.json @@ -0,0 +1,8723 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/cloud-healthcare": { +"description": "Read, write and manage healthcare data" +}, +"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://healthcare.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Cloud Healthcare", +"description": "Manage, store, and access healthcare data in Google Cloud Platform.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/healthcare", +"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": "healthcare:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://healthcare.mtls.googleapis.com/", +"name": "healthcare", +"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": "healthcare.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-healthcare", +"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": "healthcare.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-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"datasets": { +"methods": { +"create": { +"description": "Creates a new health dataset. Results are returned through the Operation interface which returns either an `Operation.response` which contains a Dataset or `Operation.error`. The metadata field type is OperationMetadata.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets", +"httpMethod": "POST", +"id": "healthcare.projects.locations.datasets.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"datasetId": { +"description": "Required. The ID of the dataset that is being created. The string must match the following regex: `[\\p{L}\\p{N}_\\-\\.]{1,256}`.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the project where the server creates the dataset. For example, `projects/{project_id}/locations/{location_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/datasets", +"request": { +"$ref": "Dataset" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"deidentify": { +"description": "Creates a new dataset containing de-identified data from the source dataset. The metadata field type is OperationMetadata. If the request is successful, the response field type is DeidentifySummary. If errors occur, error is set. The LRO result may still be successful if de-identification fails for some DICOM instances. The new de-identified dataset will not contain these failed resources. Failed resource totals are tracked in Operation.metadata. Error details are also logged to Cloud Logging. For more information, see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging).", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}:deidentify", +"httpMethod": "POST", +"id": "healthcare.projects.locations.datasets.deidentify", +"parameterOrder": [ +"sourceDataset" +], +"parameters": { +"sourceDataset": { +"description": "Required. Source dataset resource name. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+sourceDataset}:deidentify", +"request": { +"$ref": "DeidentifyDatasetRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes the specified health dataset and all data contained in the dataset. Deleting a dataset does not affect the sources from which the dataset was imported (if any).", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}", +"httpMethod": "DELETE", +"id": "healthcare.projects.locations.datasets.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the dataset to delete. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets any metadata associated with a dataset.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}", +"httpMethod": "GET", +"id": "healthcare.projects.locations.datasets.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the dataset to read. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Dataset" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"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}/datasets/{datasetsId}:getIamPolicy", +"httpMethod": "GET", +"id": "healthcare.projects.locations.datasets.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/[^/]+/datasets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists the health datasets in the current project.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets", +"httpMethod": "GET", +"id": "healthcare.projects.locations.datasets.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of items to return. If not specified, 100 is used. May not be larger than 1000.", +"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 project whose datasets should be listed. For example, `projects/{project_id}/locations/{location_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/datasets", +"response": { +"$ref": "ListDatasetsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates dataset metadata.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}", +"httpMethod": "PATCH", +"id": "healthcare.projects.locations.datasets.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. Resource name of the dataset, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. 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": "v1/{+name}", +"request": { +"$ref": "Dataset" +}, +"response": { +"$ref": "Dataset" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"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}/datasets/{datasetsId}:setIamPolicy", +"httpMethod": "POST", +"id": "healthcare.projects.locations.datasets.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/[^/]+/datasets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"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}/datasets/{datasetsId}:testIamPermissions", +"httpMethod": "POST", +"id": "healthcare.projects.locations.datasets.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/[^/]+/datasets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"consentStores": { +"methods": { +"checkDataAccess": { +"description": "Checks if a particular data_id of a User data mapping in the specified consent store is consented for the specified use.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}:checkDataAccess", +"httpMethod": "POST", +"id": "healthcare.projects.locations.datasets.consentStores.checkDataAccess", +"parameterOrder": [ +"consentStore" +], +"parameters": { +"consentStore": { +"description": "Required. Name of the consent store where the requested data_id is stored, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+consentStore}:checkDataAccess", +"request": { +"$ref": "CheckDataAccessRequest" +}, +"response": { +"$ref": "CheckDataAccessResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"create": { +"description": "Creates a new consent store in the parent dataset. Attempting to create a consent store with the same ID as an existing store fails with an ALREADY_EXISTS error.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores", +"httpMethod": "POST", +"id": "healthcare.projects.locations.datasets.consentStores.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"consentStoreId": { +"description": "Required. The ID of the consent store to create. The string must match the following regex: `[\\p{L}\\p{N}_\\-\\.]{1,256}`. Cannot be changed after creation.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the dataset this consent store belongs to.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/consentStores", +"request": { +"$ref": "ConsentStore" +}, +"response": { +"$ref": "ConsentStore" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes the specified consent store and removes all the consent store's data.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}", +"httpMethod": "DELETE", +"id": "healthcare.projects.locations.datasets.consentStores.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the consent store to delete.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"evaluateUserConsents": { +"description": "Evaluates the user's Consents for all matching User data mappings. Note: User data mappings are indexed asynchronously, which can cause a slight delay between the time mappings are created or updated and when they are included in EvaluateUserConsents results.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}:evaluateUserConsents", +"httpMethod": "POST", +"id": "healthcare.projects.locations.datasets.consentStores.evaluateUserConsents", +"parameterOrder": [ +"consentStore" +], +"parameters": { +"consentStore": { +"description": "Required. Name of the consent store to retrieve User data mappings from.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+consentStore}:evaluateUserConsents", +"request": { +"$ref": "EvaluateUserConsentsRequest" +}, +"response": { +"$ref": "EvaluateUserConsentsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the specified consent store.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}", +"httpMethod": "GET", +"id": "healthcare.projects.locations.datasets.consentStores.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the consent store to get.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "ConsentStore" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"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}/datasets/{datasetsId}/consentStores/{consentStoresId}:getIamPolicy", +"httpMethod": "GET", +"id": "healthcare.projects.locations.datasets.consentStores.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/[^/]+/datasets/[^/]+/consentStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists the consent stores in the specified dataset.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores", +"httpMethod": "GET", +"id": "healthcare.projects.locations.datasets.consentStores.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Restricts the stores returned to those matching a filter. Only filtering on labels is supported. For example, `filter=labels.key=value`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Limit on the number of consent stores to return in a single response. If not specified, 100 is used. May not be larger than 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Token to retrieve the next page of results, or empty to get the first page.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of the dataset.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/consentStores", +"response": { +"$ref": "ListConsentStoresResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the specified consent store.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}", +"httpMethod": "PATCH", +"id": "healthcare.projects.locations.datasets.consentStores.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. Resource name of the consent store, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}`. Cannot be changed after creation.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The update mask that applies to the resource. For the `FieldMask` definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask. Only the `labels`, `default_consent_ttl`, and `enable_consent_create_on_update` fields are allowed to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "ConsentStore" +}, +"response": { +"$ref": "ConsentStore" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"queryAccessibleData": { +"description": "Queries all data_ids that are consented for a specified use in the given consent store and writes them to a specified destination. The returned Operation includes a progress counter for the number of User data mappings processed. If the request is successful, a detailed response is returned of type QueryAccessibleDataResponse, contained in the response field when the operation finishes. The metadata field type is OperationMetadata. Errors are logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging)). For example, the following sample log entry shows a `failed to evaluate consent policy` error that occurred during a QueryAccessibleData call to consent store `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}`. ```json jsonPayload: { @type: \"type.googleapis.com/google.cloud.healthcare.logging.QueryAccessibleDataLogEntry\" error: { code: 9 message: \"failed to evaluate consent policy\" } resourceName: \"projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}/consents/{consent_id}\" } logName: \"projects/{project_id}/logs/healthcare.googleapis.com%2Fquery_accessible_data\" operation: { id: \"projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/operations/{operation_id}\" producer: \"healthcare.googleapis.com/QueryAccessibleData\" } receiveTimestamp: \"TIMESTAMP\" resource: { labels: { consent_store_id: \"{consent_store_id}\" dataset_id: \"{dataset_id}\" location: \"{location_id}\" project_id: \"{project_id}\" } type: \"healthcare_consent_store\" } severity: \"ERROR\" timestamp: \"TIMESTAMP\" ```", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}:queryAccessibleData", +"httpMethod": "POST", +"id": "healthcare.projects.locations.datasets.consentStores.queryAccessibleData", +"parameterOrder": [ +"consentStore" +], +"parameters": { +"consentStore": { +"description": "Required. Name of the consent store to retrieve User data mappings from.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+consentStore}:queryAccessibleData", +"request": { +"$ref": "QueryAccessibleDataRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"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}/datasets/{datasetsId}/consentStores/{consentStoresId}:setIamPolicy", +"httpMethod": "POST", +"id": "healthcare.projects.locations.datasets.consentStores.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/[^/]+/datasets/[^/]+/consentStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"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}/datasets/{datasetsId}/consentStores/{consentStoresId}:testIamPermissions", +"httpMethod": "POST", +"id": "healthcare.projects.locations.datasets.consentStores.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/[^/]+/datasets/[^/]+/consentStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"attributeDefinitions": { +"methods": { +"create": { +"description": "Creates a new Attribute definition in the parent consent store.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}/attributeDefinitions", +"httpMethod": "POST", +"id": "healthcare.projects.locations.datasets.consentStores.attributeDefinitions.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"attributeDefinitionId": { +"description": "Required. The ID of the Attribute definition to create. The string must match the following regex: `_a-zA-Z{0,255}` and must not be a reserved keyword within the Common Expression Language as listed on https://github.com/google/cel-spec/blob/master/doc/langdef.md.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the consent store that this Attribute definition belongs to.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/attributeDefinitions", +"request": { +"$ref": "AttributeDefinition" +}, +"response": { +"$ref": "AttributeDefinition" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes the specified Attribute definition. Fails if the Attribute definition is referenced by any User data mapping, or the latest revision of any Consent.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}/attributeDefinitions/{attributeDefinitionsId}", +"httpMethod": "DELETE", +"id": "healthcare.projects.locations.datasets.consentStores.attributeDefinitions.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the Attribute definition to delete. To preserve referential integrity, Attribute definitions referenced by a User data mapping or the latest revision of a Consent cannot be deleted.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+/attributeDefinitions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the specified Attribute definition.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}/attributeDefinitions/{attributeDefinitionsId}", +"httpMethod": "GET", +"id": "healthcare.projects.locations.datasets.consentStores.attributeDefinitions.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the Attribute definition to get.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+/attributeDefinitions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "AttributeDefinition" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists the Attribute definitions in the specified consent store.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}/attributeDefinitions", +"httpMethod": "GET", +"id": "healthcare.projects.locations.datasets.consentStores.attributeDefinitions.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Restricts the attributes returned to those matching a filter. The only field available for filtering is `category`. For example, `filter=category=\\\"REQUEST\\\"`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Limit on the number of Attribute definitions to return in a single response. If not specified, 100 is used. May not be larger than 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Token to retrieve the next page of results or empty to get the first page.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of the consent store to retrieve Attribute definitions from.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/attributeDefinitions", +"response": { +"$ref": "ListAttributeDefinitionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the specified Attribute definition.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}/attributeDefinitions/{attributeDefinitionsId}", +"httpMethod": "PATCH", +"id": "healthcare.projects.locations.datasets.consentStores.attributeDefinitions.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. Resource name of the Attribute definition, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}/attributeDefinitions/{attribute_definition_id}`. Cannot be changed after creation.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+/attributeDefinitions/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The update mask that applies to the resource. For the `FieldMask` definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask. Only the `description`, `allowed_values`, `consent_default_values` and `data_mapping_default_value` fields can be updated. The updated `allowed_values` must contain all values from the previous `allowed_values`.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "AttributeDefinition" +}, +"response": { +"$ref": "AttributeDefinition" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"consentArtifacts": { +"methods": { +"create": { +"description": "Creates a new Consent artifact in the parent consent store.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}/consentArtifacts", +"httpMethod": "POST", +"id": "healthcare.projects.locations.datasets.consentStores.consentArtifacts.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the consent store this Consent artifact belongs to.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/consentArtifacts", +"request": { +"$ref": "ConsentArtifact" +}, +"response": { +"$ref": "ConsentArtifact" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes the specified Consent artifact. Fails if the artifact is referenced by the latest revision of any Consent.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}/consentArtifacts/{consentArtifactsId}", +"httpMethod": "DELETE", +"id": "healthcare.projects.locations.datasets.consentStores.consentArtifacts.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the Consent artifact to delete. To preserve referential integrity, Consent artifacts referenced by the latest revision of a Consent cannot be deleted.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+/consentArtifacts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the specified Consent artifact.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}/consentArtifacts/{consentArtifactsId}", +"httpMethod": "GET", +"id": "healthcare.projects.locations.datasets.consentStores.consentArtifacts.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the Consent artifact to retrieve.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+/consentArtifacts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "ConsentArtifact" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists the Consent artifacts in the specified consent store.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}/consentArtifacts", +"httpMethod": "GET", +"id": "healthcare.projects.locations.datasets.consentStores.consentArtifacts.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Restricts the artifacts returned to those matching a filter. The following syntax is available: * A string field value can be written as text inside quotation marks, for example `\"query text\"`. The only valid relational operation for text fields is equality (`=`), where text is searched within the field, rather than having the field be equal to the text. For example, `\"Comment = great\"` returns messages with `great` in the comment field. * A number field value can be written as an integer, a decimal, or an exponential. The valid relational operators for number fields are the equality operator (`=`), along with the less than/greater than operators (`<`, `<=`, `>`, `>=`). Note that there is no inequality (`!=`) operator. You can prepend the `NOT` operator to an expression to negate it. * A date field value must be written in `yyyy-mm-dd` form. Fields with date and time use the RFC3339 time format. Leading zeros are required for one-digit months and days. The valid relational operators for date fields are the equality operator (`=`) , along with the less than/greater than operators (`<`, `<=`, `>`, `>=`). Note that there is no inequality (`!=`) operator. You can prepend the `NOT` operator to an expression to negate it. * Multiple field query expressions can be combined in one query by adding `AND` or `OR` operators between the expressions. If a boolean operator appears within a quoted string, it is not treated as special, it's just another part of the character string to be matched. You can prepend the `NOT` operator to an expression to negate it. The fields available for filtering are: - user_id. For example, `filter=user_id=\\\"user123\\\"`. - consent_content_version - metadata. For example, `filter=Metadata(\\\"testkey\\\")=\\\"value\\\"` or `filter=HasMetadata(\\\"testkey\\\")`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Limit on the number of consent artifacts to return in a single response. If not specified, 100 is used. May not be larger than 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The next_page_token value returned from the previous List request, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of the consent store to retrieve consent artifacts from.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/consentArtifacts", +"response": { +"$ref": "ListConsentArtifactsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"consents": { +"methods": { +"activate": { +"description": "Activates the latest revision of the specified Consent by committing a new revision with `state` updated to `ACTIVE`. If the latest revision of the specified Consent is in the `ACTIVE` state, no new revision is committed. A FAILED_PRECONDITION error occurs if the latest revision of the specified Consent is in the `REJECTED` or `REVOKED` state.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}/consents/{consentsId}:activate", +"httpMethod": "POST", +"id": "healthcare.projects.locations.datasets.consentStores.consents.activate", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the Consent to activate, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}/consents/{consent_id}`. An INVALID_ARGUMENT error occurs if `revision_id` is specified in the name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+/consents/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:activate", +"request": { +"$ref": "ActivateConsentRequest" +}, +"response": { +"$ref": "Consent" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"create": { +"description": "Creates a new Consent in the parent consent store.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}/consents", +"httpMethod": "POST", +"id": "healthcare.projects.locations.datasets.consentStores.consents.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Name of the consent store.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/consents", +"request": { +"$ref": "Consent" +}, +"response": { +"$ref": "Consent" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes the Consent and its revisions. To keep a record of the Consent but mark it inactive, see [RevokeConsent]. To delete a revision of a Consent, see [DeleteConsentRevision]. This operation does not delete the related Consent artifact.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}/consents/{consentsId}", +"httpMethod": "DELETE", +"id": "healthcare.projects.locations.datasets.consentStores.consents.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the Consent to delete, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}/consents/{consent_id}`. An INVALID_ARGUMENT error occurs if `revision_id` is specified in the name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+/consents/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"deleteRevision": { +"description": "Deletes the specified revision of a Consent. An INVALID_ARGUMENT error occurs if the specified revision is the latest revision.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}/consents/{consentsId}:deleteRevision", +"httpMethod": "DELETE", +"id": "healthcare.projects.locations.datasets.consentStores.consents.deleteRevision", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the Consent revision to delete, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}/consents/{consent_id}@{revision_id}`. An INVALID_ARGUMENT error occurs if `revision_id` is not specified in the name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+/consents/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:deleteRevision", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the specified revision of a Consent, or the latest revision if `revision_id` is not specified in the resource name.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}/consents/{consentsId}", +"httpMethod": "GET", +"id": "healthcare.projects.locations.datasets.consentStores.consents.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the Consent to retrieve, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}/consents/{consent_id}`. In order to retrieve a previous revision of the Consent, also provide the revision ID: `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}/consents/{consent_id}@{revision_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+/consents/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Consent" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists the Consent in the given consent store, returning each Consent's latest revision.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}/consents", +"httpMethod": "GET", +"id": "healthcare.projects.locations.datasets.consentStores.consents.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Restricts the Consents returned to those matching a filter. The following syntax is available: * A string field value can be written as text inside quotation marks, for example `\"query text\"`. The only valid relational operation for text fields is equality (`=`), where text is searched within the field, rather than having the field be equal to the text. For example, `\"Comment = great\"` returns messages with `great` in the comment field. * A number field value can be written as an integer, a decimal, or an exponential. The valid relational operators for number fields are the equality operator (`=`), along with the less than/greater than operators (`<`, `<=`, `>`, `>=`). Note that there is no inequality (`!=`) operator. You can prepend the `NOT` operator to an expression to negate it. * A date field value must be written in `yyyy-mm-dd` form. Fields with date and time use the RFC3339 time format. Leading zeros are required for one-digit months and days. The valid relational operators for date fields are the equality operator (`=`) , along with the less than/greater than operators (`<`, `<=`, `>`, `>=`). Note that there is no inequality (`!=`) operator. You can prepend the `NOT` operator to an expression to negate it. * Multiple field query expressions can be combined in one query by adding `AND` or `OR` operators between the expressions. If a boolean operator appears within a quoted string, it is not treated as special, it's just another part of the character string to be matched. You can prepend the `NOT` operator to an expression to negate it. The fields available for filtering are: - user_id. For example, `filter='user_id=\"user123\"'`. - consent_artifact - state - revision_create_time - metadata. For example, `filter=Metadata(\\\"testkey\\\")=\\\"value\\\"` or `filter=HasMetadata(\\\"testkey\\\")`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Limit on the number of Consents to return in a single response. If not specified, 100 is used. May not be larger than 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The next_page_token value returned from the previous List request, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of the consent store to retrieve Consents from.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/consents", +"response": { +"$ref": "ListConsentsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"listRevisions": { +"description": "Lists the revisions of the specified Consent in reverse chronological order.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}/consents/{consentsId}:listRevisions", +"httpMethod": "GET", +"id": "healthcare.projects.locations.datasets.consentStores.consents.listRevisions", +"parameterOrder": [ +"name" +], +"parameters": { +"filter": { +"description": "Optional. Restricts the revisions returned to those matching a filter. The following syntax is available: * A string field value can be written as text inside quotation marks, for example `\"query text\"`. The only valid relational operation for text fields is equality (`=`), where text is searched within the field, rather than having the field be equal to the text. For example, `\"Comment = great\"` returns messages with `great` in the comment field. * A number field value can be written as an integer, a decimal, or an exponential. The valid relational operators for number fields are the equality operator (`=`), along with the less than/greater than operators (`<`, `<=`, `>`, `>=`). Note that there is no inequality (`!=`) operator. You can prepend the `NOT` operator to an expression to negate it. * A date field value must be written in `yyyy-mm-dd` form. Fields with date and time use the RFC3339 time format. Leading zeros are required for one-digit months and days. The valid relational operators for date fields are the equality operator (`=`) , along with the less than/greater than operators (`<`, `<=`, `>`, `>=`). Note that there is no inequality (`!=`) operator. You can prepend the `NOT` operator to an expression to negate it. * Multiple field query expressions can be combined in one query by adding `AND` or `OR` operators between the expressions. If a boolean operator appears within a quoted string, it is not treated as special, it's just another part of the character string to be matched. You can prepend the `NOT` operator to an expression to negate it. Fields available for filtering are: - user_id. For example, `filter='user_id=\"user123\"'`. - consent_artifact - state - revision_create_time - metadata. For example, `filter=Metadata(\\\"testkey\\\")=\\\"value\\\"` or `filter=HasMetadata(\\\"testkey\\\")`.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. The resource name of the Consent to retrieve revisions for.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+/consents/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "Optional. Limit on the number of revisions to return in a single response. If not specified, 100 is used. May not be larger than 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Token to retrieve the next page of results or empty if there are no more results in the list.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}:listRevisions", +"response": { +"$ref": "ListConsentRevisionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the latest revision of the specified Consent by committing a new revision with the changes. A FAILED_PRECONDITION error occurs if the latest revision of the specified Consent is in the `REJECTED` or `REVOKED` state.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}/consents/{consentsId}", +"httpMethod": "PATCH", +"id": "healthcare.projects.locations.datasets.consentStores.consents.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. Resource name of the Consent, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}/consents/{consent_id}`. Cannot be changed after creation.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+/consents/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The update mask to apply to the resource. For the `FieldMask` definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask. Only the `user_id`, `policies`, `consent_artifact`, and `metadata` fields can be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "Consent" +}, +"response": { +"$ref": "Consent" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"reject": { +"description": "Rejects the latest revision of the specified Consent by committing a new revision with `state` updated to `REJECTED`. If the latest revision of the specified Consent is in the `REJECTED` state, no new revision is committed. A FAILED_PRECONDITION error occurs if the latest revision of the specified Consent is in the `ACTIVE` or `REVOKED` state.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}/consents/{consentsId}:reject", +"httpMethod": "POST", +"id": "healthcare.projects.locations.datasets.consentStores.consents.reject", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the Consent to reject, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}/consents/{consent_id}`. An INVALID_ARGUMENT error occurs if `revision_id` is specified in the name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+/consents/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:reject", +"request": { +"$ref": "RejectConsentRequest" +}, +"response": { +"$ref": "Consent" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"revoke": { +"description": "Revokes the latest revision of the specified Consent by committing a new revision with `state` updated to `REVOKED`. If the latest revision of the specified Consent is in the `REVOKED` state, no new revision is committed. A FAILED_PRECONDITION error occurs if the latest revision of the given consent is in `DRAFT` or `REJECTED` state.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}/consents/{consentsId}:revoke", +"httpMethod": "POST", +"id": "healthcare.projects.locations.datasets.consentStores.consents.revoke", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the Consent to revoke, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}/consents/{consent_id}`. An INVALID_ARGUMENT error occurs if `revision_id` is specified in the name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+/consents/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:revoke", +"request": { +"$ref": "RevokeConsentRequest" +}, +"response": { +"$ref": "Consent" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"userDataMappings": { +"methods": { +"archive": { +"description": "Archives the specified User data mapping.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}/userDataMappings/{userDataMappingsId}:archive", +"httpMethod": "POST", +"id": "healthcare.projects.locations.datasets.consentStores.userDataMappings.archive", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the User data mapping to archive.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+/userDataMappings/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:archive", +"request": { +"$ref": "ArchiveUserDataMappingRequest" +}, +"response": { +"$ref": "ArchiveUserDataMappingResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"create": { +"description": "Creates a new User data mapping in the parent consent store.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}/userDataMappings", +"httpMethod": "POST", +"id": "healthcare.projects.locations.datasets.consentStores.userDataMappings.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Name of the consent store.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/userDataMappings", +"request": { +"$ref": "UserDataMapping" +}, +"response": { +"$ref": "UserDataMapping" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes the specified User data mapping.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}/userDataMappings/{userDataMappingsId}", +"httpMethod": "DELETE", +"id": "healthcare.projects.locations.datasets.consentStores.userDataMappings.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the User data mapping to delete.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+/userDataMappings/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the specified User data mapping.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}/userDataMappings/{userDataMappingsId}", +"httpMethod": "GET", +"id": "healthcare.projects.locations.datasets.consentStores.userDataMappings.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the User data mapping to retrieve.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+/userDataMappings/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "UserDataMapping" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists the User data mappings in the specified consent store.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}/userDataMappings", +"httpMethod": "GET", +"id": "healthcare.projects.locations.datasets.consentStores.userDataMappings.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Restricts the User data mappings returned to those matching a filter. The following syntax is available: * A string field value can be written as text inside quotation marks, for example `\"query text\"`. The only valid relational operation for text fields is equality (`=`), where text is searched within the field, rather than having the field be equal to the text. For example, `\"Comment = great\"` returns messages with `great` in the comment field. * A number field value can be written as an integer, a decimal, or an exponential. The valid relational operators for number fields are the equality operator (`=`), along with the less than/greater than operators (`<`, `<=`, `>`, `>=`). Note that there is no inequality (`!=`) operator. You can prepend the `NOT` operator to an expression to negate it. * A date field value must be written in `yyyy-mm-dd` form. Fields with date and time use the RFC3339 time format. Leading zeros are required for one-digit months and days. The valid relational operators for date fields are the equality operator (`=`) , along with the less than/greater than operators (`<`, `<=`, `>`, `>=`). Note that there is no inequality (`!=`) operator. You can prepend the `NOT` operator to an expression to negate it. * Multiple field query expressions can be combined in one query by adding `AND` or `OR` operators between the expressions. If a boolean operator appears within a quoted string, it is not treated as special, it's just another part of the character string to be matched. You can prepend the `NOT` operator to an expression to negate it. The fields available for filtering are: - data_id - user_id. For example, `filter=user_id=\\\"user123\\\"`. - archived - archive_time", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Limit on the number of User data mappings to return in a single response. If not specified, 100 is used. May not be larger than 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Token to retrieve the next page of results, or empty to get the first page.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of the consent store to retrieve User data mappings from.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/userDataMappings", +"response": { +"$ref": "ListUserDataMappingsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the specified User data mapping.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}/userDataMappings/{userDataMappingsId}", +"httpMethod": "PATCH", +"id": "healthcare.projects.locations.datasets.consentStores.userDataMappings.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Resource name of the User data mapping, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}/userDataMappings/{user_data_mapping_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+/userDataMappings/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The update mask that applies to the resource. For the `FieldMask` definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask. Only the `data_id`, `user_id` and `resource_attributes` fields can be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "UserDataMapping" +}, +"response": { +"$ref": "UserDataMapping" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"dataMapperWorkspaces": { +"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}/datasets/{datasetsId}/dataMapperWorkspaces/{dataMapperWorkspacesId}:getIamPolicy", +"httpMethod": "GET", +"id": "healthcare.projects.locations.datasets.dataMapperWorkspaces.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/[^/]+/datasets/[^/]+/dataMapperWorkspaces/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"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}/datasets/{datasetsId}/dataMapperWorkspaces/{dataMapperWorkspacesId}:setIamPolicy", +"httpMethod": "POST", +"id": "healthcare.projects.locations.datasets.dataMapperWorkspaces.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/[^/]+/datasets/[^/]+/dataMapperWorkspaces/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"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}/datasets/{datasetsId}/dataMapperWorkspaces/{dataMapperWorkspacesId}:testIamPermissions", +"httpMethod": "POST", +"id": "healthcare.projects.locations.datasets.dataMapperWorkspaces.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/[^/]+/datasets/[^/]+/dataMapperWorkspaces/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"dicomStores": { +"methods": { +"create": { +"description": "Creates a new DICOM store within the parent dataset.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores", +"httpMethod": "POST", +"id": "healthcare.projects.locations.datasets.dicomStores.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"dicomStoreId": { +"description": "Required. The ID of the DICOM store that is being created. Any string value up to 256 characters in length.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the dataset this DICOM store belongs to.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/dicomStores", +"request": { +"$ref": "DicomStore" +}, +"response": { +"$ref": "DicomStore" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"deidentify": { +"description": "De-identifies data from the source store and writes it to the destination store. The metadata field type is OperationMetadata. If the request is successful, the response field type is DeidentifyDicomStoreSummary. If errors occur, error is set. The LRO result may still be successful if de-identification fails for some DICOM instances. The output DICOM store will not contain these failed resources. Failed resource totals are tracked in Operation.metadata. Error details are also logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging)).", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}:deidentify", +"httpMethod": "POST", +"id": "healthcare.projects.locations.datasets.dicomStores.deidentify", +"parameterOrder": [ +"sourceStore" +], +"parameters": { +"sourceStore": { +"description": "Required. Source DICOM store resource name. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+sourceStore}:deidentify", +"request": { +"$ref": "DeidentifyDicomStoreRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes the specified DICOM store and removes all images that are contained within it.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}", +"httpMethod": "DELETE", +"id": "healthcare.projects.locations.datasets.dicomStores.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the DICOM store to delete.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"export": { +"description": "Exports data to the specified destination by copying it from the DICOM store. Errors are also logged to Cloud Logging. For more information, see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging). The metadata field type is OperationMetadata.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}:export", +"httpMethod": "POST", +"id": "healthcare.projects.locations.datasets.dicomStores.export", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The DICOM store resource name from which to export the data. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:export", +"request": { +"$ref": "ExportDicomDataRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the specified DICOM store.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}", +"httpMethod": "GET", +"id": "healthcare.projects.locations.datasets.dicomStores.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the DICOM store to get.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "DicomStore" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getDICOMStoreMetrics": { +"description": "Gets metrics associated with the DICOM store.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}:getDICOMStoreMetrics", +"httpMethod": "GET", +"id": "healthcare.projects.locations.datasets.dicomStores.getDICOMStoreMetrics", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the DICOM store to get metrics for.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:getDICOMStoreMetrics", +"response": { +"$ref": "DicomStoreMetrics" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"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}/datasets/{datasetsId}/dicomStores/{dicomStoresId}:getIamPolicy", +"httpMethod": "GET", +"id": "healthcare.projects.locations.datasets.dicomStores.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/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"import": { +"description": "Imports data into the DICOM store by copying it from the specified source. Errors are logged to Cloud Logging. For more information, see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging). The metadata field type is OperationMetadata.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}:import", +"httpMethod": "POST", +"id": "healthcare.projects.locations.datasets.dicomStores.import", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the DICOM store resource into which the data is imported. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:import", +"request": { +"$ref": "ImportDicomDataRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists the DICOM stores in the given dataset.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores", +"httpMethod": "GET", +"id": "healthcare.projects.locations.datasets.dicomStores.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Restricts stores returned to those matching a filter. The following syntax is available: * A string field value can be written as text inside quotation marks, for example `\"query text\"`. The only valid relational operation for text fields is equality (`=`), where text is searched within the field, rather than having the field be equal to the text. For example, `\"Comment = great\"` returns messages with `great` in the comment field. * A number field value can be written as an integer, a decimal, or an exponential. The valid relational operators for number fields are the equality operator (`=`), along with the less than/greater than operators (`<`, `<=`, `>`, `>=`). Note that there is no inequality (`!=`) operator. You can prepend the `NOT` operator to an expression to negate it. * A date field value must be written in `yyyy-mm-dd` form. Fields with date and time use the RFC3339 time format. Leading zeros are required for one-digit months and days. The valid relational operators for date fields are the equality operator (`=`) , along with the less than/greater than operators (`<`, `<=`, `>`, `>=`). Note that there is no inequality (`!=`) operator. You can prepend the `NOT` operator to an expression to negate it. * Multiple field query expressions can be combined in one query by adding `AND` or `OR` operators between the expressions. If a boolean operator appears within a quoted string, it is not treated as special, it's just another part of the character string to be matched. You can prepend the `NOT` operator to an expression to negate it. Only filtering on labels is supported. For example, `labels.key=value`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Limit on the number of DICOM stores to return in a single response. If not specified, 100 is used. May not be larger than 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value returned from the previous List request, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of the dataset.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/dicomStores", +"response": { +"$ref": "ListDicomStoresResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the specified DICOM store.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}", +"httpMethod": "PATCH", +"id": "healthcare.projects.locations.datasets.dicomStores.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. Resource name of the DICOM store, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. 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": "v1/{+name}", +"request": { +"$ref": "DicomStore" +}, +"response": { +"$ref": "DicomStore" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"searchForInstances": { +"description": "SearchForInstances returns a list of matching instances. See [Search Transaction] (http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.6). For details on the implementation of SearchForInstances, see [Search transaction](https://cloud.google.com/healthcare/docs/dicom#search_transaction) in the Cloud Healthcare API conformance statement. For samples that show how to call SearchForInstances, see [Search for DICOM data](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#search-dicom).", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/instances", +"httpMethod": "GET", +"id": "healthcare.projects.locations.datasets.dicomStores.searchForInstances", +"parameterOrder": [ +"parent", +"dicomWebPath" +], +"parameters": { +"dicomWebPath": { +"description": "Required. The path of the SearchForInstancesRequest DICOMweb request. For example, `instances`, `series/{series_uid}/instances`, or `studies/{study_uid}/instances`.", +"location": "path", +"pattern": "^instances$", +"required": true, +"type": "string" +}, +"parent": { +"description": "Required. The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/dicomWeb/{+dicomWebPath}", +"response": { +"$ref": "HttpBody" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"searchForSeries": { +"description": "SearchForSeries returns a list of matching series. See [Search Transaction] (http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.6). For details on the implementation of SearchForSeries, see [Search transaction](https://cloud.google.com/healthcare/docs/dicom#search_transaction) in the Cloud Healthcare API conformance statement. For samples that show how to call SearchForSeries, see [Search for DICOM data](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#search-dicom).", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/series", +"httpMethod": "GET", +"id": "healthcare.projects.locations.datasets.dicomStores.searchForSeries", +"parameterOrder": [ +"parent", +"dicomWebPath" +], +"parameters": { +"dicomWebPath": { +"description": "Required. The path of the SearchForSeries DICOMweb request. For example, `series` or `studies/{study_uid}/series`.", +"location": "path", +"pattern": "^series$", +"required": true, +"type": "string" +}, +"parent": { +"description": "Required. The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/dicomWeb/{+dicomWebPath}", +"response": { +"$ref": "HttpBody" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"searchForStudies": { +"description": "SearchForStudies returns a list of matching studies. See [Search Transaction] (http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.6). For details on the implementation of SearchForStudies, see [Search transaction](https://cloud.google.com/healthcare/docs/dicom#search_transaction) in the Cloud Healthcare API conformance statement. For samples that show how to call SearchForStudies, see [Search for DICOM data](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#search-dicom).", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies", +"httpMethod": "GET", +"id": "healthcare.projects.locations.datasets.dicomStores.searchForStudies", +"parameterOrder": [ +"parent", +"dicomWebPath" +], +"parameters": { +"dicomWebPath": { +"description": "Required. The path of the SearchForStudies DICOMweb request. For example, `studies`.", +"location": "path", +"pattern": "^studies$", +"required": true, +"type": "string" +}, +"parent": { +"description": "Required. The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/dicomWeb/{+dicomWebPath}", +"response": { +"$ref": "HttpBody" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setBlobStorageSettings": { +"description": "SetBlobStorageSettings sets the blob storage settings of the specified resources.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}:setBlobStorageSettings", +"httpMethod": "POST", +"id": "healthcare.projects.locations.datasets.dicomStores.setBlobStorageSettings", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "Required. The path of the resource to update the blob storage settings in the format of `projects/{projectID}/locations/{locationID}/datasets/{datasetID}/dicomStores/{dicomStoreID}/dicomWeb/studies/{studyUID}`, `projects/{projectID}/locations/{locationID}/datasets/{datasetID}/dicomStores/{dicomStoreID}/dicomWeb/studies/{studyUID}/series/{seriesUID}/`, or `projects/{projectID}/locations/{locationID}/datasets/{datasetID}/dicomStores/{dicomStoreID}/dicomWeb/studies/{studyUID}/series/{seriesUID}/instances/{instanceUID}`. If `filter_config` is specified, set the value of `resource` to the resource name of a DICOM store in the format `projects/{projectID}/locations/{locationID}/datasets/{datasetID}/dicomStores/{dicomStoreID}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:setBlobStorageSettings", +"request": { +"$ref": "SetBlobStorageSettingsRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"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}/datasets/{datasetsId}/dicomStores/{dicomStoresId}:setIamPolicy", +"httpMethod": "POST", +"id": "healthcare.projects.locations.datasets.dicomStores.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/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"storeInstances": { +"description": "StoreInstances stores DICOM instances associated with study instance unique identifiers (SUID). See [Store Transaction] (http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.5). For details on the implementation of StoreInstances, see [Store transaction](https://cloud.google.com/healthcare/docs/dicom#store_transaction) in the Cloud Healthcare API conformance statement. For samples that show how to call StoreInstances, see [Store DICOM data](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#store-dicom).", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies", +"httpMethod": "POST", +"id": "healthcare.projects.locations.datasets.dicomStores.storeInstances", +"parameterOrder": [ +"parent", +"dicomWebPath" +], +"parameters": { +"dicomWebPath": { +"description": "Required. The path of the StoreInstances DICOMweb request. For example, `studies/[{study_uid}]`. Note that the `study_uid` is optional.", +"location": "path", +"pattern": "^studies$", +"required": true, +"type": "string" +}, +"parent": { +"description": "Required. The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/dicomWeb/{+dicomWebPath}", +"request": { +"$ref": "HttpBody" +}, +"response": { +"$ref": "HttpBody" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"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}/datasets/{datasetsId}/dicomStores/{dicomStoresId}:testIamPermissions", +"httpMethod": "POST", +"id": "healthcare.projects.locations.datasets.dicomStores.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/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"dicomWeb": { +"resources": { +"studies": { +"methods": { +"getStudyMetrics": { +"description": "GetStudyMetrics returns metrics for a study.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}:getStudyMetrics", +"httpMethod": "GET", +"id": "healthcare.projects.locations.datasets.dicomStores.dicomWeb.studies.getStudyMetrics", +"parameterOrder": [ +"study" +], +"parameters": { +"study": { +"description": "Required. The study resource path. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}/dicomWeb/studies/{study_uid}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+/dicomWeb/studies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+study}:getStudyMetrics", +"response": { +"$ref": "StudyMetrics" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"setBlobStorageSettings": { +"description": "SetBlobStorageSettings sets the blob storage settings of the specified resources.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}:setBlobStorageSettings", +"httpMethod": "POST", +"id": "healthcare.projects.locations.datasets.dicomStores.dicomWeb.studies.setBlobStorageSettings", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "Required. The path of the resource to update the blob storage settings in the format of `projects/{projectID}/locations/{locationID}/datasets/{datasetID}/dicomStores/{dicomStoreID}/dicomWeb/studies/{studyUID}`, `projects/{projectID}/locations/{locationID}/datasets/{datasetID}/dicomStores/{dicomStoreID}/dicomWeb/studies/{studyUID}/series/{seriesUID}/`, or `projects/{projectID}/locations/{locationID}/datasets/{datasetID}/dicomStores/{dicomStoreID}/dicomWeb/studies/{studyUID}/series/{seriesUID}/instances/{instanceUID}`. If `filter_config` is specified, set the value of `resource` to the resource name of a DICOM store in the format `projects/{projectID}/locations/{locationID}/datasets/{datasetID}/dicomStores/{dicomStoreID}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+/dicomWeb/studies/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:setBlobStorageSettings", +"request": { +"$ref": "SetBlobStorageSettingsRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"series": { +"methods": { +"getSeriesMetrics": { +"description": "GetSeriesMetrics returns metrics for a series.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/series/{seriesId}:getSeriesMetrics", +"httpMethod": "GET", +"id": "healthcare.projects.locations.datasets.dicomStores.dicomWeb.studies.series.getSeriesMetrics", +"parameterOrder": [ +"series" +], +"parameters": { +"series": { +"description": "Required. The series resource path. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}/dicomWeb/studies/{study_uid}/series/{series_uid}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+/dicomWeb/studies/[^/]+/series/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+series}:getSeriesMetrics", +"response": { +"$ref": "SeriesMetrics" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"instances": { +"methods": { +"getStorageInfo": { +"description": "GetStorageInfo returns the storage info of the specified resource.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/series/{seriesId}/instances/{instancesId}:getStorageInfo", +"httpMethod": "GET", +"id": "healthcare.projects.locations.datasets.dicomStores.dicomWeb.studies.series.instances.getStorageInfo", +"parameterOrder": [ +"resource" +], +"parameters": { +"resource": { +"description": "Required. The path of the instance to return storage info for, in the form: `projects/{projectID}/locations/{locationID}/datasets/{datasetID}/dicomStores/{dicomStoreID}/dicomWeb/studies/{studyUID}/series/{seriesUID}/instances/{instanceUID}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+/dicomWeb/studies/[^/]+/series/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getStorageInfo", +"response": { +"$ref": "StorageInfo" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +} +}, +"studies": { +"methods": { +"delete": { +"description": "DeleteStudy deletes all instances within the given study. Delete requests are equivalent to the GET requests specified in the Retrieve transaction. The method returns an Operation which will be marked successful when the deletion is complete. Warning: Instances cannot be inserted into a study that is being deleted by an operation until the operation completes. For samples that show how to call DeleteStudy, see [Delete a study, series, or instance](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#delete-dicom).", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}", +"httpMethod": "DELETE", +"id": "healthcare.projects.locations.datasets.dicomStores.studies.delete", +"parameterOrder": [ +"parent", +"dicomWebPath" +], +"parameters": { +"dicomWebPath": { +"description": "Required. The path of the DeleteStudy request. For example, `studies/{study_uid}`.", +"location": "path", +"pattern": "^studies/[^/]+$", +"required": true, +"type": "string" +}, +"parent": { +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/dicomWeb/{+dicomWebPath}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"retrieveMetadata": { +"description": "RetrieveStudyMetadata returns instance associated with the given study presented as metadata with the bulk data removed. See [RetrieveTransaction] (http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of RetrieveStudyMetadata, see [Metadata resources](https://cloud.google.com/healthcare/docs/dicom#metadata_resources) in the Cloud Healthcare API conformance statement. For samples that show how to call RetrieveStudyMetadata, see [Retrieve metadata](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#retrieve-metadata).", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/metadata", +"httpMethod": "GET", +"id": "healthcare.projects.locations.datasets.dicomStores.studies.retrieveMetadata", +"parameterOrder": [ +"parent", +"dicomWebPath" +], +"parameters": { +"dicomWebPath": { +"description": "Required. The path of the RetrieveStudyMetadata DICOMweb request. For example, `studies/{study_uid}/metadata`.", +"location": "path", +"pattern": "^studies/[^/]+/metadata$", +"required": true, +"type": "string" +}, +"parent": { +"description": "Required. The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/dicomWeb/{+dicomWebPath}", +"response": { +"$ref": "HttpBody" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"retrieveStudy": { +"description": "RetrieveStudy returns all instances within the given study. See [RetrieveTransaction] (http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of RetrieveStudy, see [DICOM study/series/instances](https://cloud.google.com/healthcare/docs/dicom#dicom_studyseriesinstances) in the Cloud Healthcare API conformance statement. For samples that show how to call RetrieveStudy, see [Retrieve DICOM data](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#retrieve-dicom).", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}", +"httpMethod": "GET", +"id": "healthcare.projects.locations.datasets.dicomStores.studies.retrieveStudy", +"parameterOrder": [ +"parent", +"dicomWebPath" +], +"parameters": { +"dicomWebPath": { +"description": "Required. The path of the RetrieveStudy DICOMweb request. For example, `studies/{study_uid}`.", +"location": "path", +"pattern": "^studies/[^/]+$", +"required": true, +"type": "string" +}, +"parent": { +"description": "Required. The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/dicomWeb/{+dicomWebPath}", +"response": { +"$ref": "HttpBody" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"searchForInstances": { +"description": "SearchForInstances returns a list of matching instances. See [Search Transaction] (http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.6). For details on the implementation of SearchForInstances, see [Search transaction](https://cloud.google.com/healthcare/docs/dicom#search_transaction) in the Cloud Healthcare API conformance statement. For samples that show how to call SearchForInstances, see [Search for DICOM data](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#search-dicom).", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/instances", +"httpMethod": "GET", +"id": "healthcare.projects.locations.datasets.dicomStores.studies.searchForInstances", +"parameterOrder": [ +"parent", +"dicomWebPath" +], +"parameters": { +"dicomWebPath": { +"description": "Required. The path of the SearchForInstancesRequest DICOMweb request. For example, `instances`, `series/{series_uid}/instances`, or `studies/{study_uid}/instances`.", +"location": "path", +"pattern": "^studies/[^/]+/instances$", +"required": true, +"type": "string" +}, +"parent": { +"description": "Required. The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/dicomWeb/{+dicomWebPath}", +"response": { +"$ref": "HttpBody" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"searchForSeries": { +"description": "SearchForSeries returns a list of matching series. See [Search Transaction] (http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.6). For details on the implementation of SearchForSeries, see [Search transaction](https://cloud.google.com/healthcare/docs/dicom#search_transaction) in the Cloud Healthcare API conformance statement. For samples that show how to call SearchForSeries, see [Search for DICOM data](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#search-dicom).", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/series", +"httpMethod": "GET", +"id": "healthcare.projects.locations.datasets.dicomStores.studies.searchForSeries", +"parameterOrder": [ +"parent", +"dicomWebPath" +], +"parameters": { +"dicomWebPath": { +"description": "Required. The path of the SearchForSeries DICOMweb request. For example, `series` or `studies/{study_uid}/series`.", +"location": "path", +"pattern": "^studies/[^/]+/series$", +"required": true, +"type": "string" +}, +"parent": { +"description": "Required. The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/dicomWeb/{+dicomWebPath}", +"response": { +"$ref": "HttpBody" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"storeInstances": { +"description": "StoreInstances stores DICOM instances associated with study instance unique identifiers (SUID). See [Store Transaction] (http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.5). For details on the implementation of StoreInstances, see [Store transaction](https://cloud.google.com/healthcare/docs/dicom#store_transaction) in the Cloud Healthcare API conformance statement. For samples that show how to call StoreInstances, see [Store DICOM data](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#store-dicom).", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}", +"httpMethod": "POST", +"id": "healthcare.projects.locations.datasets.dicomStores.studies.storeInstances", +"parameterOrder": [ +"parent", +"dicomWebPath" +], +"parameters": { +"dicomWebPath": { +"description": "Required. The path of the StoreInstances DICOMweb request. For example, `studies/[{study_uid}]`. Note that the `study_uid` is optional.", +"location": "path", +"pattern": "^studies/[^/]+$", +"required": true, +"type": "string" +}, +"parent": { +"description": "Required. The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/dicomWeb/{+dicomWebPath}", +"request": { +"$ref": "HttpBody" +}, +"response": { +"$ref": "HttpBody" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"series": { +"methods": { +"delete": { +"description": "DeleteSeries deletes all instances within the given study and series. Delete requests are equivalent to the GET requests specified in the Retrieve transaction. The method returns an Operation which will be marked successful when the deletion is complete. Warning: Instances cannot be inserted into a series that is being deleted by an operation until the operation completes. For samples that show how to call DeleteSeries, see [Delete a study, series, or instance](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#delete-dicom).", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/series/{seriesId}", +"httpMethod": "DELETE", +"id": "healthcare.projects.locations.datasets.dicomStores.studies.series.delete", +"parameterOrder": [ +"parent", +"dicomWebPath" +], +"parameters": { +"dicomWebPath": { +"description": "Required. The path of the DeleteSeries request. For example, `studies/{study_uid}/series/{series_uid}`.", +"location": "path", +"pattern": "^studies/[^/]+/series/[^/]+$", +"required": true, +"type": "string" +}, +"parent": { +"description": "Required. The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/dicomWeb/{+dicomWebPath}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"retrieveMetadata": { +"description": "RetrieveSeriesMetadata returns instance associated with the given study and series, presented as metadata with the bulk data removed. See [RetrieveTransaction] (http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of RetrieveSeriesMetadata, see [Metadata resources](https://cloud.google.com/healthcare/docs/dicom#metadata_resources) in the Cloud Healthcare API conformance statement. For samples that show how to call RetrieveSeriesMetadata, see [Retrieve metadata](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#retrieve-metadata).", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/series/{seriesId}/metadata", +"httpMethod": "GET", +"id": "healthcare.projects.locations.datasets.dicomStores.studies.series.retrieveMetadata", +"parameterOrder": [ +"parent", +"dicomWebPath" +], +"parameters": { +"dicomWebPath": { +"description": "Required. The path of the RetrieveSeriesMetadata DICOMweb request. For example, `studies/{study_uid}/series/{series_uid}/metadata`.", +"location": "path", +"pattern": "^studies/[^/]+/series/[^/]+/metadata$", +"required": true, +"type": "string" +}, +"parent": { +"description": "Required. The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/dicomWeb/{+dicomWebPath}", +"response": { +"$ref": "HttpBody" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"retrieveSeries": { +"description": "RetrieveSeries returns all instances within the given study and series. See [RetrieveTransaction] (http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of RetrieveSeries, see [DICOM study/series/instances](https://cloud.google.com/healthcare/docs/dicom#dicom_studyseriesinstances) in the Cloud Healthcare API conformance statement. For samples that show how to call RetrieveSeries, see [Retrieve DICOM data](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#retrieve-dicom).", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/series/{seriesId}", +"httpMethod": "GET", +"id": "healthcare.projects.locations.datasets.dicomStores.studies.series.retrieveSeries", +"parameterOrder": [ +"parent", +"dicomWebPath" +], +"parameters": { +"dicomWebPath": { +"description": "Required. The path of the RetrieveSeries DICOMweb request. For example, `studies/{study_uid}/series/{series_uid}`.", +"location": "path", +"pattern": "^studies/[^/]+/series/[^/]+$", +"required": true, +"type": "string" +}, +"parent": { +"description": "Required. The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/dicomWeb/{+dicomWebPath}", +"response": { +"$ref": "HttpBody" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"searchForInstances": { +"description": "SearchForInstances returns a list of matching instances. See [Search Transaction] (http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.6). For details on the implementation of SearchForInstances, see [Search transaction](https://cloud.google.com/healthcare/docs/dicom#search_transaction) in the Cloud Healthcare API conformance statement. For samples that show how to call SearchForInstances, see [Search for DICOM data](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#search-dicom).", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/series/{seriesId}/instances", +"httpMethod": "GET", +"id": "healthcare.projects.locations.datasets.dicomStores.studies.series.searchForInstances", +"parameterOrder": [ +"parent", +"dicomWebPath" +], +"parameters": { +"dicomWebPath": { +"description": "Required. The path of the SearchForInstancesRequest DICOMweb request. For example, `instances`, `series/{series_uid}/instances`, or `studies/{study_uid}/instances`.", +"location": "path", +"pattern": "^studies/[^/]+/series/[^/]+/instances$", +"required": true, +"type": "string" +}, +"parent": { +"description": "Required. The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/dicomWeb/{+dicomWebPath}", +"response": { +"$ref": "HttpBody" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"instances": { +"methods": { +"delete": { +"description": "DeleteInstance deletes an instance associated with the given study, series, and SOP Instance UID. Delete requests are equivalent to the GET requests specified in the Retrieve transaction. Study and series search results can take a few seconds to be updated after an instance is deleted using DeleteInstance. For samples that show how to call DeleteInstance, see [Delete a study, series, or instance](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#delete-dicom).", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/series/{seriesId}/instances/{instancesId}", +"httpMethod": "DELETE", +"id": "healthcare.projects.locations.datasets.dicomStores.studies.series.instances.delete", +"parameterOrder": [ +"parent", +"dicomWebPath" +], +"parameters": { +"dicomWebPath": { +"description": "Required. The path of the DeleteInstance request. For example, `studies/{study_uid}/series/{series_uid}/instances/{instance_uid}`.", +"location": "path", +"pattern": "^studies/[^/]+/series/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +}, +"parent": { +"description": "Required. The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/dicomWeb/{+dicomWebPath}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"retrieveInstance": { +"description": "RetrieveInstance returns instance associated with the given study, series, and SOP Instance UID. See [RetrieveTransaction] (http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of RetrieveInstance, see [DICOM study/series/instances](https://cloud.google.com/healthcare/docs/dicom#dicom_studyseriesinstances) and [DICOM instances](https://cloud.google.com/healthcare/docs/dicom#dicom_instances) in the Cloud Healthcare API conformance statement. For samples that show how to call RetrieveInstance, see [Retrieve an instance](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#retrieve-instance).", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/series/{seriesId}/instances/{instancesId}", +"httpMethod": "GET", +"id": "healthcare.projects.locations.datasets.dicomStores.studies.series.instances.retrieveInstance", +"parameterOrder": [ +"parent", +"dicomWebPath" +], +"parameters": { +"dicomWebPath": { +"description": "Required. The path of the RetrieveInstance DICOMweb request. For example, `studies/{study_uid}/series/{series_uid}/instances/{instance_uid}`.", +"location": "path", +"pattern": "^studies/[^/]+/series/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +}, +"parent": { +"description": "Required. The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/dicomWeb/{+dicomWebPath}", +"response": { +"$ref": "HttpBody" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"retrieveMetadata": { +"description": "RetrieveInstanceMetadata returns instance associated with the given study, series, and SOP Instance UID presented as metadata with the bulk data removed. See [RetrieveTransaction] (http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of RetrieveInstanceMetadata, see [Metadata resources](https://cloud.google.com/healthcare/docs/dicom#metadata_resources) in the Cloud Healthcare API conformance statement. For samples that show how to call RetrieveInstanceMetadata, see [Retrieve metadata](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#retrieve-metadata).", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/series/{seriesId}/instances/{instancesId}/metadata", +"httpMethod": "GET", +"id": "healthcare.projects.locations.datasets.dicomStores.studies.series.instances.retrieveMetadata", +"parameterOrder": [ +"parent", +"dicomWebPath" +], +"parameters": { +"dicomWebPath": { +"description": "Required. The path of the RetrieveInstanceMetadata DICOMweb request. For example, `studies/{study_uid}/series/{series_uid}/instances/{instance_uid}/metadata`.", +"location": "path", +"pattern": "^studies/[^/]+/series/[^/]+/instances/[^/]+/metadata$", +"required": true, +"type": "string" +}, +"parent": { +"description": "Required. The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/dicomWeb/{+dicomWebPath}", +"response": { +"$ref": "HttpBody" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"retrieveRendered": { +"description": "RetrieveRenderedInstance returns instance associated with the given study, series, and SOP Instance UID in an acceptable Rendered Media Type. See [RetrieveTransaction] (http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of RetrieveRenderedInstance, see [Rendered resources](https://cloud.google.com/healthcare/docs/dicom#rendered_resources) in the Cloud Healthcare API conformance statement. For samples that show how to call RetrieveRenderedInstance, see [Retrieve consumer image formats](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#retrieve-consumer).", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/series/{seriesId}/instances/{instancesId}/rendered", +"httpMethod": "GET", +"id": "healthcare.projects.locations.datasets.dicomStores.studies.series.instances.retrieveRendered", +"parameterOrder": [ +"parent", +"dicomWebPath" +], +"parameters": { +"dicomWebPath": { +"description": "Required. The path of the RetrieveRenderedInstance DICOMweb request. For example, `studies/{study_uid}/series/{series_uid}/instances/{instance_uid}/rendered`.", +"location": "path", +"pattern": "^studies/[^/]+/series/[^/]+/instances/[^/]+/rendered$", +"required": true, +"type": "string" +}, +"parent": { +"description": "Required. The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/dicomWeb/{+dicomWebPath}", +"response": { +"$ref": "HttpBody" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"frames": { +"methods": { +"retrieveFrames": { +"description": "RetrieveFrames returns instances associated with the given study, series, SOP Instance UID and frame numbers. See [RetrieveTransaction] (http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4}. For details on the implementation of RetrieveFrames, see [DICOM frames](https://cloud.google.com/healthcare/docs/dicom#dicom_frames) in the Cloud Healthcare API conformance statement. For samples that show how to call RetrieveFrames, see [Retrieve DICOM data](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#retrieve-dicom).", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/series/{seriesId}/instances/{instancesId}/frames/{framesId}", +"httpMethod": "GET", +"id": "healthcare.projects.locations.datasets.dicomStores.studies.series.instances.frames.retrieveFrames", +"parameterOrder": [ +"parent", +"dicomWebPath" +], +"parameters": { +"dicomWebPath": { +"description": "Required. The path of the RetrieveFrames DICOMweb request. For example, `studies/{study_uid}/series/{series_uid}/instances/{instance_uid}/frames/{frame_list}`.", +"location": "path", +"pattern": "^studies/[^/]+/series/[^/]+/instances/[^/]+/frames/[^/]+$", +"required": true, +"type": "string" +}, +"parent": { +"description": "Required. The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/dicomWeb/{+dicomWebPath}", +"response": { +"$ref": "HttpBody" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"retrieveRendered": { +"description": "RetrieveRenderedFrames returns instances associated with the given study, series, SOP Instance UID and frame numbers in an acceptable Rendered Media Type. See [RetrieveTransaction] (http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of RetrieveRenderedFrames, see [Rendered resources](https://cloud.google.com/healthcare/docs/dicom#rendered_resources) in the Cloud Healthcare API conformance statement. For samples that show how to call RetrieveRenderedFrames, see [Retrieve consumer image formats](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#retrieve-consumer).", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/series/{seriesId}/instances/{instancesId}/frames/{framesId}/rendered", +"httpMethod": "GET", +"id": "healthcare.projects.locations.datasets.dicomStores.studies.series.instances.frames.retrieveRendered", +"parameterOrder": [ +"parent", +"dicomWebPath" +], +"parameters": { +"dicomWebPath": { +"description": "Required. The path of the RetrieveRenderedFrames DICOMweb request. For example, `studies/{study_uid}/series/{series_uid}/instances/{instance_uid}/frames/{frame_list}/rendered`.", +"location": "path", +"pattern": "^studies/[^/]+/series/[^/]+/instances/[^/]+/frames/[^/]+/rendered$", +"required": true, +"type": "string" +}, +"parent": { +"description": "Required. The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/dicomWeb/{+dicomWebPath}", +"response": { +"$ref": "HttpBody" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +} +} +} +}, +"fhirStores": { +"methods": { +"applyAdminConsents": { +"description": "Applies the admin Consent resources for the FHIR store and reindexes the underlying resources in the FHIR store according to the aggregate consents. This method also updates the `consent_config.enforced_admin_consents` field of the FhirStore unless `validate_only=true` in ApplyAdminConsentsRequest. Any admin Consent resource change after this operation execution (including deletion) requires you to call ApplyAdminConsents again for the change to take effect. This method returns an Operation that can be used to track the progress of the resources that were reindexed, by calling GetOperation. Upon completion, the ApplyAdminConsentsResponse additionally contains the number of resources that were reindexed. If at least one Consent resource contains an error or fails be be enforced for any reason, the method returns an error instead of an Operation. No resources will be reindexed and the `consent_config.enforced_admin_consents` field will be unchanged. To enforce a consent check for data access, `consent_config.access_enforced` must be set to true for the FhirStore.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}:applyAdminConsents", +"httpMethod": "POST", +"id": "healthcare.projects.locations.datasets.fhirStores.applyAdminConsents", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the FHIR store to enforce, in the format `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:applyAdminConsents", +"request": { +"$ref": "ApplyAdminConsentsRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"applyConsents": { +"description": "Apply the Consent resources for the FHIR store and reindex the underlying resources in the FHIR store according to the aggregate consent. The aggregate consent of the patient in scope in this request replaces any previous call of this method. Any Consent resource change after this operation execution (including deletion) requires you to call ApplyConsents again to have effect. This method returns an Operation that can be used to track the progress of the consent resources that were processed by calling GetOperation. Upon completion, the ApplyConsentsResponse additionally contains the number of resources that was reindexed. Errors are logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging)). To enforce consent check for data access, `consent_config.access_enforced` must be set to true for the FhirStore.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}:applyConsents", +"httpMethod": "POST", +"id": "healthcare.projects.locations.datasets.fhirStores.applyConsents", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the FHIR store to enforce, in the format `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:applyConsents", +"request": { +"$ref": "ApplyConsentsRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"create": { +"description": "Creates a new FHIR store within the parent dataset.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores", +"httpMethod": "POST", +"id": "healthcare.projects.locations.datasets.fhirStores.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"fhirStoreId": { +"description": "Required. The ID of the FHIR store that is being created. The string must match the following regex: `[\\p{L}\\p{N}_\\-\\.]{1,256}`.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the dataset this FHIR store belongs to.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/fhirStores", +"request": { +"$ref": "FhirStore" +}, +"response": { +"$ref": "FhirStore" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"deidentify": { +"description": "De-identifies data from the source store and writes it to the destination store. The metadata field type is OperationMetadata. If the request is successful, the response field type is DeidentifyFhirStoreSummary. If errors occur, error is set. Error details are also logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging)).", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}:deidentify", +"httpMethod": "POST", +"id": "healthcare.projects.locations.datasets.fhirStores.deidentify", +"parameterOrder": [ +"sourceStore" +], +"parameters": { +"sourceStore": { +"description": "Required. Source FHIR store resource name. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+sourceStore}:deidentify", +"request": { +"$ref": "DeidentifyFhirStoreRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes the specified FHIR store and removes all resources within it.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}", +"httpMethod": "DELETE", +"id": "healthcare.projects.locations.datasets.fhirStores.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the FHIR store to delete.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"explainDataAccess": { +"description": "Explains all the permitted/denied actor, purpose and environment for a given resource.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}:explainDataAccess", +"httpMethod": "GET", +"id": "healthcare.projects.locations.datasets.fhirStores.explainDataAccess", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the FHIR store to enforce, in the format `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", +"required": true, +"type": "string" +}, +"resourceId": { +"description": "Required. The ID (`{resourceType}/{id}`) of the resource to explain data access on.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}:explainDataAccess", +"response": { +"$ref": "ExplainDataAccessResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"export": { +"description": "Export resources from the FHIR store to the specified destination. This method returns an Operation that can be used to track the status of the export by calling GetOperation. Immediate fatal errors appear in the error field, errors are also logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging)). Otherwise, when the operation finishes, a detailed response of type ExportResourcesResponse is returned in the response field. The metadata field type for this operation is OperationMetadata.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}:export", +"httpMethod": "POST", +"id": "healthcare.projects.locations.datasets.fhirStores.export", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the FHIR store to export resource from, in the format of `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:export", +"request": { +"$ref": "ExportResourcesRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the configuration of the specified FHIR store.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}", +"httpMethod": "GET", +"id": "healthcare.projects.locations.datasets.fhirStores.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the FHIR store to get.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "FhirStore" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getFHIRStoreMetrics": { +"description": "Gets metrics associated with the FHIR store.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}:getFHIRStoreMetrics", +"httpMethod": "GET", +"id": "healthcare.projects.locations.datasets.fhirStores.getFHIRStoreMetrics", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the FHIR store to get metrics for.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:getFHIRStoreMetrics", +"response": { +"$ref": "FhirStoreMetrics" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"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}/datasets/{datasetsId}/fhirStores/{fhirStoresId}:getIamPolicy", +"httpMethod": "GET", +"id": "healthcare.projects.locations.datasets.fhirStores.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/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"import": { +"description": "Imports resources to the FHIR store by loading data from the specified sources. This method is optimized to load large quantities of data using import semantics that ignore some FHIR store configuration options and are not suitable for all use cases. It is primarily intended to load data into an empty FHIR store that is not being used by other clients. In cases where this method is not appropriate, consider using ExecuteBundle to load data. Every resource in the input must contain a client-supplied ID. Each resource is stored using the supplied ID regardless of the enable_update_create setting on the FHIR store. It is strongly advised not to include or encode any sensitive data such as patient identifiers in client-specified resource IDs. Those IDs are part of the FHIR resource path recorded in Cloud Audit Logs and Cloud Pub/Sub notifications. Those IDs can also be contained in reference fields within other resources. The import process does not enforce referential integrity, regardless of the disable_referential_integrity setting on the FHIR store. This allows the import of resources with arbitrary interdependencies without considering grouping or ordering, but if the input data contains invalid references or if some resources fail to be imported, the FHIR store might be left in a state that violates referential integrity. The import process does not trigger Pub/Sub notification or BigQuery streaming update, regardless of how those are configured on the FHIR store. If a resource with the specified ID already exists, the most recent version of the resource is overwritten without creating a new historical version, regardless of the disable_resource_versioning setting on the FHIR store. If transient failures occur during the import, it's possible that successfully imported resources will be overwritten more than once. The import operation is idempotent unless the input data contains multiple valid resources with the same ID but different contents. In that case, after the import completes, the store contains exactly one resource with that ID but there is no ordering guarantee on which version of the contents it will have. The operation result counters do not count duplicate IDs as an error and count one success for each resource in the input, which might result in a success count larger than the number of resources in the FHIR store. This often occurs when importing data organized in bundles produced by Patient-everything where each bundle contains its own copy of a resource such as Practitioner that might be referred to by many patients. If some resources fail to import, for example due to parsing errors, successfully imported resources are not rolled back. The location and format of the input data is specified by the parameters in ImportResourcesRequest. Note that if no format is specified, this method assumes the `BUNDLE` format. When using the `BUNDLE` format this method ignores the `Bundle.type` field, except that `history` bundles are rejected, and does not apply any of the bundle processing semantics for batch or transaction bundles. Unlike in ExecuteBundle, transaction bundles are not executed as a single transaction and bundle-internal references are not rewritten. The bundle is treated as a collection of resources to be written as provided in `Bundle.entry.resource`, ignoring `Bundle.entry.request`. As an example, this allows the import of `searchset` bundles produced by a FHIR search or Patient-everything operation. This method returns an Operation that can be used to track the status of the import by calling GetOperation. Immediate fatal errors appear in the error field, errors are also logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging)). Otherwise, when the operation finishes, a detailed response of type ImportResourcesResponse is returned in the response field. The metadata field type for this operation is OperationMetadata.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}:import", +"httpMethod": "POST", +"id": "healthcare.projects.locations.datasets.fhirStores.import", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the FHIR store to import FHIR resources to, in the format of `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:import", +"request": { +"$ref": "ImportResourcesRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists the FHIR stores in the given dataset.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores", +"httpMethod": "GET", +"id": "healthcare.projects.locations.datasets.fhirStores.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Restricts stores returned to those matching a filter. The following syntax is available: * A string field value can be written as text inside quotation marks, for example `\"query text\"`. The only valid relational operation for text fields is equality (`=`), where text is searched within the field, rather than having the field be equal to the text. For example, `\"Comment = great\"` returns messages with `great` in the comment field. * A number field value can be written as an integer, a decimal, or an exponential. The valid relational operators for number fields are the equality operator (`=`), along with the less than/greater than operators (`<`, `<=`, `>`, `>=`). Note that there is no inequality (`!=`) operator. You can prepend the `NOT` operator to an expression to negate it. * A date field value must be written in `yyyy-mm-dd` form. Fields with date and time use the RFC3339 time format. Leading zeros are required for one-digit months and days. The valid relational operators for date fields are the equality operator (`=`) , along with the less than/greater than operators (`<`, `<=`, `>`, `>=`). Note that there is no inequality (`!=`) operator. You can prepend the `NOT` operator to an expression to negate it. * Multiple field query expressions can be combined in one query by adding `AND` or `OR` operators between the expressions. If a boolean operator appears within a quoted string, it is not treated as special, it's just another part of the character string to be matched. You can prepend the `NOT` operator to an expression to negate it. Only filtering on labels is supported, for example `labels.key=value`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Limit on the number of FHIR stores to return in a single response. If not specified, 100 is used. May not be larger than 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value returned from the previous List request, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of the dataset.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/fhirStores", +"response": { +"$ref": "ListFhirStoresResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the configuration of the specified FHIR store.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}", +"httpMethod": "PATCH", +"id": "healthcare.projects.locations.datasets.fhirStores.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. Identifier. Resource name of the FHIR store, of the form `projects/{project_id}/locations/{location}/datasets/{dataset_id}/fhirStores/{fhir_store_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. 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": "v1/{+name}", +"request": { +"$ref": "FhirStore" +}, +"response": { +"$ref": "FhirStore" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"rollback": { +"description": "Rolls back resources from the FHIR store to the specified time. This method returns an Operation that can be used to track the status of the rollback by calling GetOperation. Immediate fatal errors appear in the error field, errors are also logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging)). Otherwise, when the operation finishes, a detailed response of type RollbackFhirResourcesResponse is returned in the response field. The metadata field type for this operation is OperationMetadata.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}:rollback", +"httpMethod": "POST", +"id": "healthcare.projects.locations.datasets.fhirStores.rollback", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the FHIR store to rollback, in the format of \"projects/{project_id}/locations/{location_id}/datasets/{dataset_id} /fhirStores/{fhir_store_id}\".", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:rollback", +"request": { +"$ref": "RollbackFhirResourcesRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"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}/datasets/{datasetsId}/fhirStores/{fhirStoresId}:setIamPolicy", +"httpMethod": "POST", +"id": "healthcare.projects.locations.datasets.fhirStores.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/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"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}/datasets/{datasetsId}/fhirStores/{fhirStoresId}:testIamPermissions", +"httpMethod": "POST", +"id": "healthcare.projects.locations.datasets.fhirStores.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/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"fhir": { +"methods": { +"Binary-create": { +"description": "Creates a FHIR Binary resource. This method can be used to create a Binary resource either by using one of the accepted FHIR JSON content types, or as a raw data stream. If a resource is created with this method using the FHIR content type this method's behavior is the same as [`fhir.create`](https://cloud.google.com/healthcare-api/docs/reference/rest/v1/projects.locations.datasets.fhirStores.fhir/create). If a resource type other than Binary is used in the request it's treated in the same way as non-FHIR data (e.g., images, zip archives, pdf files, documents). When a non-FHIR content type is used in the request, a Binary resource will be generated, and the uploaded data will be stored in the `content` field (`DSTU2` and `STU3`), or the `data` field (`R4`). The Binary resource's `contentType` will be filled in using the value of the `Content-Type` header, and the `securityContext` field (not present in `DSTU2`) will be populated from the `X-Security-Context` header if it exists. At this time `securityContext` has no special behavior in the Cloud Healthcare API. Note: the limit on data ingested through this method is 1 GB. For best performance, use a non-FHIR data type instead of wrapping the data in a Binary resource. Some of the Healthcare API features, such as [exporting to BigQuery](https://cloud.google.com/healthcare-api/docs/how-tos/fhir-export-bigquery) or [Pub/Sub notifications](https://cloud.google.com/healthcare-api/docs/fhir-pubsub#behavior_when_a_fhir_resource_is_too_large_or_traffic_is_high) with full resource content, do not support Binary resources that are larger than 10 MB. In these cases the resource's `data` field will be omitted. Instead, the \"http://hl7.org/fhir/StructureDefinition/data-absent-reason\" extension will be present to indicate that including the data is `unsupported`. On success, an empty `201 Created` response is returned. The newly created resource's ID and version are returned in the Location header. Using `Prefer: representation=resource` is not allowed for this method. The definition of the Binary REST API can be found at https://hl7.org/fhir/binary.html#rest.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/Binary", +"httpMethod": "POST", +"id": "healthcare.projects.locations.datasets.fhirStores.fhir.Binary-create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the FHIR store this resource belongs to.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/fhir/Binary", +"request": { +"$ref": "HttpBody" +}, +"response": { +"$ref": "HttpBody" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"Binary-read": { +"description": "Gets the contents of a FHIR Binary resource. This method can be used to retrieve a Binary resource either by using the FHIR JSON mimetype as the value for the Accept header, or as a raw data stream. If the FHIR Accept type is used this method will return a Binary resource with the data base64-encoded, regardless of how the resource was created. The resource data can be retrieved in base64-decoded form if the Accept type of the request matches the value of the resource's `contentType` field. The definition of the Binary REST API can be found at https://hl7.org/fhir/binary.html#rest.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/Binary/{BinaryId}", +"httpMethod": "GET", +"id": "healthcare.projects.locations.datasets.fhirStores.fhir.Binary-read", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the Binary resource to retrieve.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+/fhir/Binary/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "HttpBody" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"Binary-update": { +"description": "Updates the entire contents of a Binary resource. If the specified resource does not exist and the FHIR store has enable_update_create set, creates the resource with the client-specified ID. It is strongly advised not to include or encode any sensitive data such as patient identifiers in client-specified resource IDs. Those IDs are part of the FHIR resource path recorded in Cloud Audit Logs and Pub/Sub notifications. Those IDs can also be contained in reference fields within other resources. This method can be used to update a Binary resource either by using one of the accepted FHIR JSON content types, or as a raw data stream. If a resource is updated with this method using the FHIR content type this method's behavior is the same as `update`. If a resource type other than Binary is used in the request it will be treated in the same way as non-FHIR data. When a non-FHIR content type is used in the request, a Binary resource will be generated using the ID from the resource path, and the uploaded data will be stored in the `content` field (`DSTU2` and `STU3`), or the `data` field (`R4`). The Binary resource's `contentType` will be filled in using the value of the `Content-Type` header, and the `securityContext` field (not present in `DSTU2`) will be populated from the `X-Security-Context` header if it exists. At this time `securityContext` has no special behavior in the Cloud Healthcare API. Note: the limit on data ingested through this method is 2 GB. For best performance, use a non-FHIR data type instead of wrapping the data in a Binary resource. Some of the Healthcare API features, such as [exporting to BigQuery](https://cloud.google.com/healthcare-api/docs/how-tos/fhir-export-bigquery) or [Pub/Sub notifications](https://cloud.google.com/healthcare-api/docs/fhir-pubsub#behavior_when_a_fhir_resource_is_too_large_or_traffic_is_high) with full resource content, do not support Binary resources that are larger than 10 MB. In these cases the resource's `data` field will be omitted. Instead, the \"http://hl7.org/fhir/StructureDefinition/data-absent-reason\" extension will be present to indicate that including the data is `unsupported`. On success, an empty 200 OK response will be returned, or a 201 Created if the resource did not exit. The resource's ID and version are returned in the Location header. Using `Prefer: representation=resource` is not allowed for this method. The definition of the Binary REST API can be found at https://hl7.org/fhir/binary.html#rest.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/Binary/{BinaryId}", +"httpMethod": "PUT", +"id": "healthcare.projects.locations.datasets.fhirStores.fhir.Binary-update", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the resource to update.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+/fhir/Binary/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "HttpBody" +}, +"response": { +"$ref": "HttpBody" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"Binary-vread": { +"description": "Gets the contents of a version (current or historical) of a FHIR Binary resource by version ID. This method can be used to retrieve a Binary resource version either by using the FHIR JSON mimetype as the value for the Accept header, or as a raw data stream. If the FHIR Accept type is used this method will return a Binary resource with the data base64-encoded, regardless of how the resource version was created. The resource data can be retrieved in base64-decoded form if the Accept type of the request matches the value of the resource version's `contentType` field. The definition of the Binary REST API can be found at https://hl7.org/fhir/binary.html#rest.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/Binary/{BinaryId}/_history/{_historyId}", +"httpMethod": "GET", +"id": "healthcare.projects.locations.datasets.fhirStores.fhir.Binary-vread", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the Binary resource version to retrieve.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+/fhir/Binary/[^/]+/_history/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "HttpBody" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"Consent-enforcement-status": { +"description": "Returns the consent enforcement status of a single consent resource. On success, the response body contains a JSON-encoded representation of a `Parameters` (http://hl7.org/fhir/parameters.html) FHIR resource, containing the current enforcement status. Does not support DSTU2.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/Consent/{ConsentId}/$consent-enforcement-status", +"httpMethod": "GET", +"id": "healthcare.projects.locations.datasets.fhirStores.fhir.Consent-enforcement-status", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the consent resource to find enforcement status, in the format `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}/fhir/Consent/{consent_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+/fhir/Consent/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}/$consent-enforcement-status", +"response": { +"$ref": "HttpBody" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"Patient-consent-enforcement-status": { +"description": "Returns the consent enforcement status of all consent resources for a patient. On success, the response body contains a JSON-encoded representation of a bundle of `Parameters` (http://hl7.org/fhir/parameters.html) FHIR resources, containing the current enforcement status for each consent resource of the patient. Does not support DSTU2.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/Patient/{PatientId}/$consent-enforcement-status", +"httpMethod": "GET", +"id": "healthcare.projects.locations.datasets.fhirStores.fhir.Patient-consent-enforcement-status", +"parameterOrder": [ +"name" +], +"parameters": { +"_count": { +"description": "Optional. The maximum number of results on a page. If not specified, 100 is used. May not be larger than 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"_page_token": { +"description": "Optional. Used to retrieve the first, previous, next, or last page of consent enforcement statuses when using pagination. Value should be set to the value of `_page_token` set in next or previous page links' URLs. Next and previous page are returned in the response bundle's links field, where `link.relation` is \"previous\" or \"next\". Omit `_page_token` if no previous request has been made.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. The name of the patient to find enforcement statuses, in the format `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}/fhir/Patient/{patient_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+/fhir/Patient/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}/$consent-enforcement-status", +"response": { +"$ref": "HttpBody" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"Patient-everything": { +"description": "Retrieves a Patient resource and resources related to that patient. Implements the FHIR extended operation Patient-everything ([DSTU2](http://hl7.org/implement/standards/fhir/DSTU2/patient-operations.html#everything), [STU3](http://hl7.org/implement/standards/fhir/STU3/patient-operations.html#everything), [R4](http://hl7.org/implement/standards/fhir/R4/patient-operations.html#everything)). On success, the response body contains a JSON-encoded representation of a `Bundle` resource of type `searchset`, containing the results of the operation. Errors generated by the FHIR store contain a JSON-encoded `OperationOutcome` resource describing the reason for the error. If the request cannot be mapped to a valid API method on a FHIR store, a generic GCP error might be returned instead. The resources in scope for the response are: * The patient resource itself. * All the resources directly referenced by the patient resource. * Resources directly referencing the patient resource that meet the inclusion criteria. The inclusion criteria are based on the membership rules in the patient compartment definition ([DSTU2](http://hl7.org/fhir/DSTU2/compartment-patient.html), [STU3](http://www.hl7.org/fhir/stu3/compartmentdefinition-patient.html), [R4](http://hl7.org/fhir/R4/compartmentdefinition-patient.html)), which details the eligible resource types and referencing search parameters. For samples that show how to call `Patient-everything`, see [Getting all patient compartment resources](https://cloud.google.com/healthcare/docs/how-tos/fhir-resources#getting_all_patient_compartment_resources).", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/Patient/{PatientId}/$everything", +"httpMethod": "GET", +"id": "healthcare.projects.locations.datasets.fhirStores.fhir.Patient-everything", +"parameterOrder": [ +"name" +], +"parameters": { +"_count": { +"description": "Optional. Maximum number of resources in a page. If not specified, 100 is used. May not be larger than 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"_page_token": { +"description": "Used to retrieve the next or previous page of results when using pagination. Set `_page_token` to the value of _page_token set in next or previous page links' url. Next and previous page are returned in the response bundle's links field, where `link.relation` is \"previous\" or \"next\". Omit `_page_token` if no previous request has been made.", +"location": "query", +"type": "string" +}, +"_since": { +"description": "Optional. If provided, only resources updated after this time are returned. The time uses the format YYYY-MM-DDThh:mm:ss.sss+zz:zz. For example, `2015-02-07T13:28:17.239+02:00` or `2017-01-01T00:00:00Z`. The time must be specified to the second and include a time zone.", +"location": "query", +"type": "string" +}, +"_type": { +"description": "Optional. String of comma-delimited FHIR resource types. If provided, only resources of the specified resource type(s) are returned. Specifying multiple `_type` parameters isn't supported. For example, the result of `_type=Observation&_type=Encounter` is undefined. Use `_type=Observation,Encounter` instead.", +"location": "query", +"type": "string" +}, +"end": { +"description": "Optional. The response includes records prior to the end date. The date uses the format YYYY-MM-DD. If no end date is provided, all records subsequent to the start date are in scope.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. Name of the `Patient` resource for which the information is required.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+/fhir/Patient/[^/]+$", +"required": true, +"type": "string" +}, +"start": { +"description": "Optional. The response includes records subsequent to the start date. The date uses the format YYYY-MM-DD. If no start date is provided, all records prior to the end date are in scope.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}/$everything", +"response": { +"$ref": "HttpBody" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"Resource-purge": { +"description": "Deletes all the historical versions of a resource (excluding the current version) from the FHIR store. To remove all versions of a resource, first delete the current version and then call this method. This is not a FHIR standard operation. For samples that show how to call `Resource-purge`, see [Deleting historical versions of a FHIR resource](https://cloud.google.com/healthcare/docs/how-tos/fhir-resources#deleting_historical_versions_of_a_fhir_resource).", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{fhirId}/{fhirId1}/$purge", +"httpMethod": "DELETE", +"id": "healthcare.projects.locations.datasets.fhirStores.fhir.Resource-purge", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the resource to purge.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+/fhir/[^/]+/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}/$purge", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"Resource-validate": { +"description": "Validates an input FHIR resource's conformance to its profiles and the profiles configured on the FHIR store. Implements the FHIR extended operation $validate ([DSTU2](http://hl7.org/implement/standards/fhir/DSTU2/resource-operations.html#validate), [STU3](http://hl7.org/implement/standards/fhir/STU3/resource-operations.html#validate), or [R4](http://hl7.org/implement/standards/fhir/R4/resource-operation-validate.html)). The request body must contain a JSON-encoded FHIR resource, and the request headers must contain `Content-Type: application/fhir+json`. The `Parameters` input syntax is not supported. The `profile` query parameter can be used to request that the resource only be validated against a specific profile. If a profile with the given URL cannot be found in the FHIR store then an error is returned. Errors generated by validation contain a JSON-encoded `OperationOutcome` resource describing the reason for the error. If the request cannot be mapped to a valid API method on a FHIR store, a generic GCP error might be returned instead.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{fhirId}/$validate", +"httpMethod": "POST", +"id": "healthcare.projects.locations.datasets.fhirStores.fhir.Resource-validate", +"parameterOrder": [ +"parent", +"type" +], +"parameters": { +"parent": { +"description": "Required. The name of the FHIR store that holds the profiles being used for validation.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", +"required": true, +"type": "string" +}, +"profile": { +"description": "Required. The canonical URL of a profile that this resource should be validated against. For example, to validate a Patient resource against the US Core Patient profile this parameter would be `http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient`. A StructureDefinition with this canonical URL must exist in the FHIR store.", +"location": "query", +"type": "string" +}, +"type": { +"description": "Required. The FHIR resource type of the resource being validated. For a complete list, see the FHIR Resource Index ([DSTU2](http://hl7.org/implement/standards/fhir/DSTU2/resourcelist.html), [STU3](http://hl7.org/implement/standards/fhir/STU3/resourcelist.html), or [R4](http://hl7.org/implement/standards/fhir/R4/resourcelist.html)). Must match the resource type in the provided content.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/fhir/{+type}/$validate", +"request": { +"$ref": "HttpBody" +}, +"response": { +"$ref": "HttpBody" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"capabilities": { +"description": "Gets the FHIR capability statement ([STU3](http://hl7.org/implement/standards/fhir/STU3/capabilitystatement.html), [R4](http://hl7.org/implement/standards/fhir/R4/capabilitystatement.html)), or the [conformance statement](http://hl7.org/implement/standards/fhir/DSTU2/conformance.html) in the DSTU2 case for the store, which contains a description of functionality supported by the server. Implements the FHIR standard capabilities interaction ([STU3](http://hl7.org/implement/standards/fhir/STU3/http.html#capabilities), [R4](http://hl7.org/implement/standards/fhir/R4/http.html#capabilities)), or the [conformance interaction](http://hl7.org/implement/standards/fhir/DSTU2/http.html#conformance) in the DSTU2 case. On success, the response body contains a JSON-encoded representation of a `CapabilityStatement` resource.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/metadata", +"httpMethod": "GET", +"id": "healthcare.projects.locations.datasets.fhirStores.fhir.capabilities", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the FHIR store to retrieve the capabilities for.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}/fhir/metadata", +"response": { +"$ref": "HttpBody" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"conditionalDelete": { +"description": "Deletes a FHIR resource that match an identifier search query. Implements the FHIR standard conditional delete interaction, limited to searching by resource identifier. If multiple resources match, 412 Precondition Failed error will be returned. Search term for identifier should be in the pattern `identifier=system|value` or `identifier=value` - similar to the `search` method on resources with a specific identifier. Note: Unless resource versioning is disabled by setting the disable_resource_versioning flag on the FHIR store, the deleted resource is moved to a history repository that can still be retrieved through vread and related methods, unless they are removed by the purge method. For samples that show how to call `conditionalDelete`, see [Conditionally deleting a FHIR resource](https://cloud.google.com/healthcare/docs/how-tos/fhir-resources#conditionally_deleting_a_fhir_resource).", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{fhirId}", +"httpMethod": "DELETE", +"id": "healthcare.projects.locations.datasets.fhirStores.fhir.conditionalDelete", +"parameterOrder": [ +"parent", +"type" +], +"parameters": { +"parent": { +"description": "Required. The name of the FHIR store this resource belongs to.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", +"required": true, +"type": "string" +}, +"type": { +"description": "Required. The FHIR resource type to delete, such as Patient or Observation. For a complete list, see the FHIR Resource Index ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/resourcelist.html), [STU3](https://hl7.org/implement/standards/fhir/STU3/resourcelist.html), [R4](https://hl7.org/implement/standards/fhir/R4/resourcelist.html)).", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/fhir/{+type}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"conditionalPatch": { +"description": "If a resource is found with the identifier specified in the query parameters, updates part of that resource by applying the operations specified in a [JSON Patch](http://jsonpatch.com/) document. Implements the FHIR standard conditional patch interaction, limited to searching by resource identifier. DSTU2 doesn't define a conditional patch method, but the server supports it in the same way it supports STU3. Search term for identifier should be in the pattern `identifier=system|value` or `identifier=value` - similar to the `search` method on resources with a specific identifier. If the search criteria identify more than one match, the request returns a `412 Precondition Failed` error. The request body must contain a JSON Patch document, and the request headers must contain `Content-Type: application/json-patch+json`. On success, the response body contains a JSON-encoded representation of the updated resource, including the server-assigned version ID. Errors generated by the FHIR store contain a JSON-encoded `OperationOutcome` resource describing the reason for the error. If the request cannot be mapped to a valid API method on a FHIR store, a generic GCP error might be returned instead. For samples that show how to call `conditionalPatch`, see [Conditionally patching a FHIR resource](https://cloud.google.com/healthcare/docs/how-tos/fhir-resources#conditionally_patching_a_fhir_resource).", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{fhirId}", +"httpMethod": "PATCH", +"id": "healthcare.projects.locations.datasets.fhirStores.fhir.conditionalPatch", +"parameterOrder": [ +"parent", +"type" +], +"parameters": { +"parent": { +"description": "Required. The name of the FHIR store this resource belongs to.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", +"required": true, +"type": "string" +}, +"type": { +"description": "Required. The FHIR resource type to update, such as Patient or Observation. For a complete list, see the FHIR Resource Index ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/resourcelist.html), [STU3](https://hl7.org/implement/standards/fhir/STU3/resourcelist.html), [R4](https://hl7.org/implement/standards/fhir/R4/resourcelist.html)).", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/fhir/{+type}", +"request": { +"$ref": "HttpBody" +}, +"response": { +"$ref": "HttpBody" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"conditionalUpdate": { +"description": "If a resource is found with the identifier specified in the query parameters, updates the entire contents of that resource. Implements the FHIR standard conditional update interaction, limited to searching by resource identifier. Search term for identifier should be in the pattern `identifier=system|value` or `identifier=value` - similar to the `search` method on resources with a specific identifier. If the search criteria identify more than one match, the request returns a `412 Precondition Failed` error. If the search criteria identify zero matches, and the supplied resource body contains an `id`, and the FHIR store has enable_update_create set, creates the resource with the client-specified ID. It is strongly advised not to include or encode any sensitive data such as patient identifiers in client-specified resource IDs. Those IDs are part of the FHIR resource path recorded in Cloud Audit Logs and Pub/Sub notifications. Those IDs can also be contained in reference fields within other resources. If the search criteria identify zero matches, and the supplied resource body does not contain an `id`, the resource is created with a server-assigned ID as per the create method. The request body must contain a JSON-encoded FHIR resource, and the request headers must contain `Content-Type: application/fhir+json`. On success, the response body contains a JSON-encoded representation of the updated resource, including the server-assigned version ID. Errors generated by the FHIR store contain a JSON-encoded `OperationOutcome` resource describing the reason for the error. If the request cannot be mapped to a valid API method on a FHIR store, a generic GCP error might be returned instead. For samples that show how to call `conditionalUpdate`, see [Conditionally updating a FHIR resource](https://cloud.google.com/healthcare/docs/how-tos/fhir-resources#conditionally_updating_a_fhir_resource).", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{fhirId}", +"httpMethod": "PUT", +"id": "healthcare.projects.locations.datasets.fhirStores.fhir.conditionalUpdate", +"parameterOrder": [ +"parent", +"type" +], +"parameters": { +"parent": { +"description": "Required. The name of the FHIR store this resource belongs to.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", +"required": true, +"type": "string" +}, +"type": { +"description": "Required. The FHIR resource type to update, such as Patient or Observation. For a complete list, see the FHIR Resource Index ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/resourcelist.html), [STU3](https://hl7.org/implement/standards/fhir/STU3/resourcelist.html), [R4](https://hl7.org/implement/standards/fhir/R4/resourcelist.html)). Must match the resource type in the provided content.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/fhir/{+type}", +"request": { +"$ref": "HttpBody" +}, +"response": { +"$ref": "HttpBody" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"create": { +"description": "Creates a FHIR resource. Implements the FHIR standard create interaction ([DSTU2](http://hl7.org/implement/standards/fhir/DSTU2/http.html#create), [STU3](http://hl7.org/implement/standards/fhir/STU3/http.html#create), [R4](http://hl7.org/implement/standards/fhir/R4/http.html#create)), which creates a new resource with a server-assigned resource ID. Also supports the FHIR standard conditional create interaction ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/http.html#ccreate), [STU3](https://hl7.org/implement/standards/fhir/STU3/http.html#ccreate), [R4](https://hl7.org/implement/standards/fhir/R4/http.html#ccreate)), specified by supplying an `If-None-Exist` header containing a FHIR search query, limited to searching by resource identifier. If no resources match this search query, the server processes the create operation as normal. When using conditional create, the search term for identifier should be in the pattern `identifier=system|value` or `identifier=value` - similar to the `search` method on resources with a specific identifier. The request body must contain a JSON-encoded FHIR resource, and the request headers must contain `Content-Type: application/fhir+json`. On success, the response body contains a JSON-encoded representation of the resource as it was created on the server, including the server-assigned resource ID and version ID. Errors generated by the FHIR store contain a JSON-encoded `OperationOutcome` resource describing the reason for the error. If the request cannot be mapped to a valid API method on a FHIR store, a generic GCP error might be returned instead. For samples that show how to call `create`, see [Creating a FHIR resource](https://cloud.google.com/healthcare/docs/how-tos/fhir-resources#creating_a_fhir_resource).", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{fhirId}", +"httpMethod": "POST", +"id": "healthcare.projects.locations.datasets.fhirStores.fhir.create", +"parameterOrder": [ +"parent", +"type" +], +"parameters": { +"parent": { +"description": "Required. The name of the FHIR store this resource belongs to.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", +"required": true, +"type": "string" +}, +"type": { +"description": "Required. The FHIR resource type to create, such as Patient or Observation. For a complete list, see the FHIR Resource Index ([DSTU2](http://hl7.org/implement/standards/fhir/DSTU2/resourcelist.html), [STU3](http://hl7.org/implement/standards/fhir/STU3/resourcelist.html), [R4](http://hl7.org/implement/standards/fhir/R4/resourcelist.html)). Must match the resource type in the provided content.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/fhir/{+type}", +"request": { +"$ref": "HttpBody" +}, +"response": { +"$ref": "HttpBody" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a FHIR resource. Implements the FHIR standard delete interaction ([DSTU2](http://hl7.org/implement/standards/fhir/DSTU2/http.html#delete), [STU3](http://hl7.org/implement/standards/fhir/STU3/http.html#delete), [R4](http://hl7.org/implement/standards/fhir/R4/http.html#delete)). Note: Unless resource versioning is disabled by setting the disable_resource_versioning flag on the FHIR store, the deleted resources will be moved to a history repository that can still be retrieved through vread and related methods, unless they are removed by the purge method. For samples that show how to call `delete`, see [Deleting a FHIR resource](https://cloud.google.com/healthcare/docs/how-tos/fhir-resources#deleting_a_fhir_resource).", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{fhirId}/{fhirId1}", +"httpMethod": "DELETE", +"id": "healthcare.projects.locations.datasets.fhirStores.fhir.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the resource to delete.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+/fhir/[^/]+/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "HttpBody" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"executeBundle": { +"description": "Executes all the requests in the given Bundle. Implements the FHIR standard batch/transaction interaction ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/http.html#transaction), [STU3](https://hl7.org/implement/standards/fhir/STU3/http.html#transaction), [R4](https://hl7.org/implement/standards/fhir/R4/http.html#transaction)). Supports all interactions within a bundle, except search. This method accepts Bundles of type `batch` and `transaction`, processing them according to the batch processing rules ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/http.html#2.1.0.16.1), [STU3](https://hl7.org/implement/standards/fhir/STU3/http.html#2.21.0.17.1), [R4](https://hl7.org/implement/standards/fhir/R4/http.html#brules)) and transaction processing rules ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/http.html#2.1.0.16.2), [STU3](https://hl7.org/implement/standards/fhir/STU3/http.html#2.21.0.17.2), [R4](https://hl7.org/implement/standards/fhir/R4/http.html#trules)). The request body must contain a JSON-encoded FHIR `Bundle` resource, and the request headers must contain `Content-Type: application/fhir+json`. For a batch bundle or a successful transaction, the response body contains a JSON-encoded representation of a `Bundle` resource of type `batch-response` or `transaction-response` containing one entry for each entry in the request, with the outcome of processing the entry. In the case of an error for a transaction bundle, the response body contains a JSON-encoded `OperationOutcome` resource describing the reason for the error. If the request cannot be mapped to a valid API method on a FHIR store, a generic GCP error might be returned instead. This method checks permissions for each request in the bundle. The `executeBundle` permission is required to call this method, but you must also grant sufficient permissions to execute the individual requests in the bundle. For example, if the bundle contains a request to create a FHIR resource, the caller must also have been granted the `healthcare.fhirResources.create` permission. You can use audit logs to view the permissions for `executeBundle` and each request in the bundle. For more information, see [Viewing Cloud Audit logs](https://cloud.google.com/healthcare-api/docs/how-tos/audit-logging). For samples that show how to call `executeBundle`, see [Managing FHIR resources using FHIR bundles](https://cloud.google.com/healthcare/docs/how-tos/fhir-bundles).", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir", +"httpMethod": "POST", +"id": "healthcare.projects.locations.datasets.fhirStores.fhir.executeBundle", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Name of the FHIR store in which this bundle will be executed.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/fhir", +"request": { +"$ref": "HttpBody" +}, +"response": { +"$ref": "HttpBody" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"history": { +"description": "Lists all the versions of a resource (including the current version and deleted versions) from the FHIR store. Implements the per-resource form of the FHIR standard history interaction ([DSTU2](http://hl7.org/implement/standards/fhir/DSTU2/http.html#history), [STU3](http://hl7.org/implement/standards/fhir/STU3/http.html#history), [R4](http://hl7.org/implement/standards/fhir/R4/http.html#history)). On success, the response body contains a JSON-encoded representation of a `Bundle` resource of type `history`, containing the version history sorted from most recent to oldest versions. Errors generated by the FHIR store contain a JSON-encoded `OperationOutcome` resource describing the reason for the error. If the request cannot be mapped to a valid API method on a FHIR store, a generic GCP error might be returned instead. For samples that show how to call `history`, see [Listing FHIR resource versions](https://cloud.google.com/healthcare/docs/how-tos/fhir-resources#listing_fhir_resource_versions).", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{fhirId}/{fhirId1}/_history", +"httpMethod": "GET", +"id": "healthcare.projects.locations.datasets.fhirStores.fhir.history", +"parameterOrder": [ +"name" +], +"parameters": { +"_at": { +"description": "Only include resource versions that were current at some point during the time period specified in the date time value. The date parameter format is yyyy-mm-ddThh:mm:ss[Z|(+|-)hh:mm] Clients may specify any of the following: * An entire year: `_at=2019` * An entire month: `_at=2019-01` * A specific day: `_at=2019-01-20` * A specific second: `_at=2018-12-31T23:59:58Z`", +"location": "query", +"type": "string" +}, +"_count": { +"description": "The maximum number of search results on a page. If not specified, 100 is used. May not be larger than 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"_page_token": { +"description": "Used to retrieve the first, previous, next, or last page of resource versions when using pagination. Value should be set to the value of `_page_token` set in next or previous page links' URLs. Next and previous page are returned in the response bundle's links field, where `link.relation` is \"previous\" or \"next\". Omit `_page_token` if no previous request has been made.", +"location": "query", +"type": "string" +}, +"_since": { +"description": "Only include resource versions that were created at or after the given instant in time. The instant in time uses the format YYYY-MM-DDThh:mm:ss.sss+zz:zz (for example 2015-02-07T13:28:17.239+02:00 or 2017-01-01T00:00:00Z). The time must be specified to the second and include a time zone.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. The name of the resource to retrieve.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+/fhir/[^/]+/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}/_history", +"response": { +"$ref": "HttpBody" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates part of an existing resource by applying the operations specified in a [JSON Patch](http://jsonpatch.com/) document. Implements the FHIR standard patch interaction ([STU3](http://hl7.org/implement/standards/fhir/STU3/http.html#patch), [R4](http://hl7.org/implement/standards/fhir/R4/http.html#patch)). DSTU2 doesn't define a patch method, but the server supports it in the same way it supports STU3. The request body must contain a JSON Patch document, and the request headers must contain `Content-Type: application/json-patch+json`. On success, the response body contains a JSON-encoded representation of the updated resource, including the server-assigned version ID. Errors generated by the FHIR store contain a JSON-encoded `OperationOutcome` resource describing the reason for the error. If the request cannot be mapped to a valid API method on a FHIR store, a generic GCP error might be returned instead. For samples that show how to call `patch`, see [Patching a FHIR resource](https://cloud.google.com/healthcare/docs/how-tos/fhir-resources#patching_a_fhir_resource).", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{fhirId}/{fhirId1}", +"httpMethod": "PATCH", +"id": "healthcare.projects.locations.datasets.fhirStores.fhir.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the resource to update.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+/fhir/[^/]+/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "HttpBody" +}, +"response": { +"$ref": "HttpBody" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"read": { +"description": "Gets the contents of a FHIR resource. Implements the FHIR standard read interaction ([DSTU2](http://hl7.org/implement/standards/fhir/DSTU2/http.html#read), [STU3](http://hl7.org/implement/standards/fhir/STU3/http.html#read), [R4](http://hl7.org/implement/standards/fhir/R4/http.html#read)). Also supports the FHIR standard conditional read interaction ([DSTU2](http://hl7.org/implement/standards/fhir/DSTU2/http.html#cread), [STU3](http://hl7.org/implement/standards/fhir/STU3/http.html#cread), [R4](http://hl7.org/implement/standards/fhir/R4/http.html#cread)) specified by supplying an `If-Modified-Since` header with a date/time value or an `If-None-Match` header with an ETag value. On success, the response body contains a JSON-encoded representation of the resource. Errors generated by the FHIR store contain a JSON-encoded `OperationOutcome` resource describing the reason for the error. If the request cannot be mapped to a valid API method on a FHIR store, a generic GCP error might be returned instead. For samples that show how to call `read`, see [Getting a FHIR resource](https://cloud.google.com/healthcare/docs/how-tos/fhir-resources#getting_a_fhir_resource).", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{fhirId}/{fhirId1}", +"httpMethod": "GET", +"id": "healthcare.projects.locations.datasets.fhirStores.fhir.read", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the resource to retrieve.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+/fhir/[^/]+/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "HttpBody" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"search": { +"description": "Searches for resources in the given FHIR store according to criteria specified as query parameters. Implements the FHIR standard search interaction ([DSTU2](http://hl7.org/implement/standards/fhir/DSTU2/http.html#search), [STU3](http://hl7.org/implement/standards/fhir/STU3/http.html#search), [R4](http://hl7.org/implement/standards/fhir/R4/http.html#search)) using the search semantics described in the FHIR Search specification ([DSTU2](http://hl7.org/implement/standards/fhir/DSTU2/search.html), [STU3](http://hl7.org/implement/standards/fhir/STU3/search.html), [R4](http://hl7.org/implement/standards/fhir/R4/search.html)). Supports four methods of search defined by the specification: * `GET [base]?[parameters]` to search across all resources. * `GET [base]/[type]?[parameters]` to search resources of a specified type. * `POST [base]/_search?[parameters]` as an alternate form having the same semantics as the `GET` method across all resources. * `POST [base]/[type]/_search?[parameters]` as an alternate form having the same semantics as the `GET` method for the specified type. The `GET` and `POST` methods do not support compartment searches. The `POST` method does not support `application/x-www-form-urlencoded` search parameters. On success, the response body contains a JSON-encoded representation of a `Bundle` resource of type `searchset`, containing the results of the search. Errors generated by the FHIR store contain a JSON-encoded `OperationOutcome` resource describing the reason for the error. If the request cannot be mapped to a valid API method on a FHIR store, a generic GCP error might be returned instead. The server's capability statement, retrieved through capabilities, indicates what search parameters are supported on each FHIR resource. A list of all search parameters defined by the specification can be found in the FHIR Search Parameter Registry ([STU3](http://hl7.org/implement/standards/fhir/STU3/searchparameter-registry.html), [R4](http://hl7.org/implement/standards/fhir/R4/searchparameter-registry.html)). FHIR search parameters for DSTU2 can be found on each resource's definition page. Supported search modifiers: `:missing`, `:exact`, `:contains`, `:text`, `:in`, `:not-in`, `:above`, `:below`, `:[type]`, `:not`, and `recurse` (DSTU2 and STU3) or `:iterate` (R4). Supported search result parameters: `_sort`, `_count`, `_include`, `_revinclude`, `_summary=text`, `_summary=data`, and `_elements`. The maximum number of search results returned defaults to 100, which can be overridden by the `_count` parameter up to a maximum limit of 1000. The server might return fewer resources than requested to prevent excessively large responses. If there are additional results, the returned `Bundle` contains a link of `relation` \"next\", which has a `_page_token` parameter for an opaque pagination token that can be used to retrieve the next page. Resources with a total size larger than 5MB or a field count larger than 50,000 might not be fully searchable as the server might trim its generated search index in those cases. Note: FHIR resources are indexed asynchronously, so there might be a slight delay between the time a resource is created or changed, and the time when the change reflects in search results. The only exception is resource identifier data, which is indexed synchronously as a special index. As a result, searching using resource identifier is not subject to indexing delay. To use the special synchronous index, the search term for identifier should be in the pattern `identifier=[system]|[value]` or `identifier=[value]`, and any of the following search result parameters can be used: * `_count` * `_include` * `_revinclude` * `_summary` * `_elements` If your query contains any other search parameters, the standard asynchronous index will be used instead. Note that searching against the special index is optimized for resolving a small number of matches. The search isn't optimized if your identifier search criteria matches a large number (i.e. more than 2,000) of resources. For a search query that will match a large number of resources, you can avoiding using the special synchronous index by including an additional `_sort` parameter in your query. Use `_sort=-_lastUpdated` if you want to keep the default sorting order. Note: The special synchronous identifier index are currently disabled for DocumentReference and DocumentManifest searches. For samples and detailed information, see [Searching for FHIR resources](https://cloud.google.com/healthcare/docs/how-tos/fhir-search) and [Advanced FHIR search features](https://cloud.google.com/healthcare/docs/how-tos/fhir-advanced-search).", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/_search", +"httpMethod": "POST", +"id": "healthcare.projects.locations.datasets.fhirStores.fhir.search", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Name of the FHIR store to retrieve resources from.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/fhir/_search", +"request": { +"$ref": "SearchResourcesRequest" +}, +"response": { +"$ref": "HttpBody" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"search-type": { +"description": "Searches for resources in the given FHIR store according to criteria specified as query parameters. Implements the FHIR standard search interaction ([DSTU2](http://hl7.org/implement/standards/fhir/DSTU2/http.html#search), [STU3](http://hl7.org/implement/standards/fhir/STU3/http.html#search), [R4](http://hl7.org/implement/standards/fhir/R4/http.html#search)) using the search semantics described in the FHIR Search specification ([DSTU2](http://hl7.org/implement/standards/fhir/DSTU2/search.html), [STU3](http://hl7.org/implement/standards/fhir/STU3/search.html), [R4](http://hl7.org/implement/standards/fhir/R4/search.html)). Supports four methods of search defined by the specification: * `GET [base]?[parameters]` to search across all resources. * `GET [base]/[type]?[parameters]` to search resources of a specified type. * `POST [base]/_search?[parameters]` as an alternate form having the same semantics as the `GET` method across all resources. * `POST [base]/[type]/_search?[parameters]` as an alternate form having the same semantics as the `GET` method for the specified type. The `GET` and `POST` methods do not support compartment searches. The `POST` method does not support `application/x-www-form-urlencoded` search parameters. On success, the response body contains a JSON-encoded representation of a `Bundle` resource of type `searchset`, containing the results of the search. Errors generated by the FHIR store contain a JSON-encoded `OperationOutcome` resource describing the reason for the error. If the request cannot be mapped to a valid API method on a FHIR store, a generic GCP error might be returned instead. The server's capability statement, retrieved through capabilities, indicates what search parameters are supported on each FHIR resource. A list of all search parameters defined by the specification can be found in the FHIR Search Parameter Registry ([STU3](http://hl7.org/implement/standards/fhir/STU3/searchparameter-registry.html), [R4](http://hl7.org/implement/standards/fhir/R4/searchparameter-registry.html)). FHIR search parameters for DSTU2 can be found on each resource's definition page. Supported search modifiers: `:missing`, `:exact`, `:contains`, `:text`, `:in`, `:not-in`, `:above`, `:below`, `:[type]`, `:not`, and `recurse` (DSTU2 and STU3) or `:iterate` (R4). Supported search result parameters: `_sort`, `_count`, `_include`, `_revinclude`, `_summary=text`, `_summary=data`, and `_elements`. The maximum number of search results returned defaults to 100, which can be overridden by the `_count` parameter up to a maximum limit of 1000. The server might return fewer resources than requested to prevent excessively large responses. If there are additional results, the returned `Bundle` contains a link of `relation` \"next\", which has a `_page_token` parameter for an opaque pagination token that can be used to retrieve the next page. Resources with a total size larger than 5MB or a field count larger than 50,000 might not be fully searchable as the server might trim its generated search index in those cases. Note: FHIR resources are indexed asynchronously, so there might be a slight delay between the time a resource is created or changed, and the time when the change reflects in search results. The only exception is resource identifier data, which is indexed synchronously as a special index. As a result, searching using resource identifier is not subject to indexing delay. To use the special synchronous index, the search term for identifier should be in the pattern `identifier=[system]|[value]` or `identifier=[value]`, and any of the following search result parameters can be used: * `_count` * `_include` * `_revinclude` * `_summary` * `_elements` If your query contains any other search parameters, the standard asynchronous index will be used instead. Note that searching against the special index is optimized for resolving a small number of matches. The search isn't optimized if your identifier search criteria matches a large number (i.e. more than 2,000) of resources. For a search query that will match a large number of resources, you can avoiding using the special synchronous index by including an additional `_sort` parameter in your query. Use `_sort=-_lastUpdated` if you want to keep the default sorting order. Note: The special synchronous identifier index are currently disabled for DocumentReference and DocumentManifest searches. For samples and detailed information, see [Searching for FHIR resources](https://cloud.google.com/healthcare/docs/how-tos/fhir-search) and [Advanced FHIR search features](https://cloud.google.com/healthcare/docs/how-tos/fhir-advanced-search).", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{resourceType}/_search", +"httpMethod": "POST", +"id": "healthcare.projects.locations.datasets.fhirStores.fhir.search-type", +"parameterOrder": [ +"parent", +"resourceType" +], +"parameters": { +"parent": { +"description": "Required. Name of the FHIR store to retrieve resources from.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", +"required": true, +"type": "string" +}, +"resourceType": { +"description": "Required. The FHIR resource type to search, such as Patient or Observation. For a complete list, see the FHIR Resource Index ([DSTU2](http://hl7.org/implement/standards/fhir/DSTU2/resourcelist.html), [STU3](http://hl7.org/implement/standards/fhir/STU3/resourcelist.html), [R4](http://hl7.org/implement/standards/fhir/R4/resourcelist.html)).", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/fhir/{resourceType}/_search", +"request": { +"$ref": "SearchResourcesRequest" +}, +"response": { +"$ref": "HttpBody" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"update": { +"description": "Updates the entire contents of a resource. Implements the FHIR standard update interaction ([DSTU2](http://hl7.org/implement/standards/fhir/DSTU2/http.html#update), [STU3](http://hl7.org/implement/standards/fhir/STU3/http.html#update), [R4](http://hl7.org/implement/standards/fhir/R4/http.html#update)). If the specified resource does not exist and the FHIR store has enable_update_create set, creates the resource with the client-specified ID. It is strongly advised not to include or encode any sensitive data such as patient identifiers in client-specified resource IDs. Those IDs are part of the FHIR resource path recorded in Cloud Audit Logs and Pub/Sub notifications. Those IDs can also be contained in reference fields within other resources. The request body must contain a JSON-encoded FHIR resource, and the request headers must contain `Content-Type: application/fhir+json`. The resource must contain an `id` element having an identical value to the ID in the REST path of the request. On success, the response body contains a JSON-encoded representation of the updated resource, including the server-assigned version ID. Errors generated by the FHIR store contain a JSON-encoded `OperationOutcome` resource describing the reason for the error. If the request cannot be mapped to a valid API method on a FHIR store, a generic GCP error might be returned instead. For samples that show how to call `update`, see [Updating a FHIR resource](https://cloud.google.com/healthcare/docs/how-tos/fhir-resources#updating_a_fhir_resource).", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{fhirId}/{fhirId1}", +"httpMethod": "PUT", +"id": "healthcare.projects.locations.datasets.fhirStores.fhir.update", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the resource to update.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+/fhir/[^/]+/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "HttpBody" +}, +"response": { +"$ref": "HttpBody" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"vread": { +"description": "Gets the contents of a version (current or historical) of a FHIR resource by version ID. Implements the FHIR standard vread interaction ([DSTU2](http://hl7.org/implement/standards/fhir/DSTU2/http.html#vread), [STU3](http://hl7.org/implement/standards/fhir/STU3/http.html#vread), [R4](http://hl7.org/implement/standards/fhir/R4/http.html#vread)). On success, the response body contains a JSON-encoded representation of the resource. Errors generated by the FHIR store contain a JSON-encoded `OperationOutcome` resource describing the reason for the error. If the request cannot be mapped to a valid API method on a FHIR store, a generic GCP error might be returned instead. For samples that show how to call `vread`, see [Retrieving a FHIR resource version](https://cloud.google.com/healthcare/docs/how-tos/fhir-resources#retrieving_a_fhir_resource_version).", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{fhirId}/{fhirId1}/_history/{_historyId}", +"httpMethod": "GET", +"id": "healthcare.projects.locations.datasets.fhirStores.fhir.vread", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the resource version to retrieve.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+/fhir/[^/]+/[^/]+/_history/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "HttpBody" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"hl7V2Stores": { +"methods": { +"create": { +"description": "Creates a new HL7v2 store within the parent dataset.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/hl7V2Stores", +"httpMethod": "POST", +"id": "healthcare.projects.locations.datasets.hl7V2Stores.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"hl7V2StoreId": { +"description": "Required. The ID of the HL7v2 store that is being created. The string must match the following regex: `[\\p{L}\\p{N}_\\-\\.]{1,256}`.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the dataset this HL7v2 store belongs to.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/hl7V2Stores", +"request": { +"$ref": "Hl7V2Store" +}, +"response": { +"$ref": "Hl7V2Store" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes the specified HL7v2 store and removes all messages that it contains.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/hl7V2Stores/{hl7V2StoresId}", +"httpMethod": "DELETE", +"id": "healthcare.projects.locations.datasets.hl7V2Stores.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the HL7v2 store to delete.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/hl7V2Stores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"export": { +"description": "Exports the messages to a destination. To filter messages to be exported, define a filter using the start and end time, relative to the message generation time (MSH.7). This API returns an Operation that can be used to track the status of the job by calling GetOperation. Immediate fatal errors appear in the error field. Otherwise, when the operation finishes, a detailed response of type ExportMessagesResponse is returned in the response field. The metadata field type for this operation is OperationMetadata.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/hl7V2Stores/{hl7V2StoresId}:export", +"httpMethod": "POST", +"id": "healthcare.projects.locations.datasets.hl7V2Stores.export", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the source HL7v2 store, in the format `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/hl7v2Stores/{hl7v2_store_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/hl7V2Stores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:export", +"request": { +"$ref": "ExportMessagesRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the specified HL7v2 store.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/hl7V2Stores/{hl7V2StoresId}", +"httpMethod": "GET", +"id": "healthcare.projects.locations.datasets.hl7V2Stores.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the HL7v2 store to get.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/hl7V2Stores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Hl7V2Store" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getHL7v2StoreMetrics": { +"description": "Gets metrics associated with the HL7v2 store.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/hl7V2Stores/{hl7V2StoresId}:getHL7v2StoreMetrics", +"httpMethod": "GET", +"id": "healthcare.projects.locations.datasets.hl7V2Stores.getHL7v2StoreMetrics", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the HL7v2 store to get metrics for, in the format `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/hl7V2Stores/{hl7v2_store_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/hl7V2Stores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:getHL7v2StoreMetrics", +"response": { +"$ref": "Hl7V2StoreMetrics" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"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}/datasets/{datasetsId}/hl7V2Stores/{hl7V2StoresId}:getIamPolicy", +"httpMethod": "GET", +"id": "healthcare.projects.locations.datasets.hl7V2Stores.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/[^/]+/datasets/[^/]+/hl7V2Stores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"import": { +"description": "Import messages to the HL7v2 store by loading data from the specified sources. This method is optimized to load large quantities of data using import semantics that ignore some HL7v2 store configuration options and are not suitable for all use cases. It is primarily intended to load data into an empty HL7v2 store that is not being used by other clients. An existing message will be overwritten if a duplicate message is imported. A duplicate message is a message with the same raw bytes as a message that already exists in this HL7v2 store. When a message is overwritten, its labels will also be overwritten. The import operation is idempotent unless the input data contains multiple valid messages with the same raw bytes but different labels. In that case, after the import completes, the store contains exactly one message with those raw bytes but there is no ordering guarantee on which version of the labels it has. The operation result counters do not count duplicated raw bytes as an error and count one success for each message in the input, which might result in a success count larger than the number of messages in the HL7v2 store. If some messages fail to import, for example due to parsing errors, successfully imported messages are not rolled back. This method returns an Operation that can be used to track the status of the import by calling GetOperation. Immediate fatal errors appear in the error field, errors are also logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging)). Otherwise, when the operation finishes, a response of type ImportMessagesResponse is returned in the response field. The metadata field type for this operation is OperationMetadata.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/hl7V2Stores/{hl7V2StoresId}:import", +"httpMethod": "POST", +"id": "healthcare.projects.locations.datasets.hl7V2Stores.import", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the target HL7v2 store, in the format `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/hl7v2Stores/{hl7v2_store_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/hl7V2Stores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:import", +"request": { +"$ref": "ImportMessagesRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists the HL7v2 stores in the given dataset.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/hl7V2Stores", +"httpMethod": "GET", +"id": "healthcare.projects.locations.datasets.hl7V2Stores.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Restricts stores returned to those matching a filter. The following syntax is available: * A string field value can be written as text inside quotation marks, for example `\"query text\"`. The only valid relational operation for text fields is equality (`=`), where text is searched within the field, rather than having the field be equal to the text. For example, `\"Comment = great\"` returns messages with `great` in the comment field. * A number field value can be written as an integer, a decimal, or an exponential. The valid relational operators for number fields are the equality operator (`=`), along with the less than/greater than operators (`<`, `<=`, `>`, `>=`). Note that there is no inequality (`!=`) operator. You can prepend the `NOT` operator to an expression to negate it. * A date field value must be written in `yyyy-mm-dd` form. Fields with date and time use the RFC3339 time format. Leading zeros are required for one-digit months and days. The valid relational operators for date fields are the equality operator (`=`) , along with the less than/greater than operators (`<`, `<=`, `>`, `>=`). Note that there is no inequality (`!=`) operator. You can prepend the `NOT` operator to an expression to negate it. * Multiple field query expressions can be combined in one query by adding `AND` or `OR` operators between the expressions. If a boolean operator appears within a quoted string, it is not treated as special, it's just another part of the character string to be matched. You can prepend the `NOT` operator to an expression to negate it. Only filtering on labels is supported. For example, `labels.key=value`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Limit on the number of HL7v2 stores to return in a single response. If not specified, 100 is used. May not be larger than 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value returned from the previous List request, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of the dataset.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/hl7V2Stores", +"response": { +"$ref": "ListHl7V2StoresResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the HL7v2 store.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/hl7V2Stores/{hl7V2StoresId}", +"httpMethod": "PATCH", +"id": "healthcare.projects.locations.datasets.hl7V2Stores.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. Resource name of the HL7v2 store, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/hl7V2Stores/{hl7v2_store_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/hl7V2Stores/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. 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": "v1/{+name}", +"request": { +"$ref": "Hl7V2Store" +}, +"response": { +"$ref": "Hl7V2Store" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"rollback": { +"description": "Rolls back messages from the HL7v2 store to the specified time. This method returns an Operation that can be used to track the status of the rollback by calling GetOperation. Immediate fatal errors appear in the error field, errors are also logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging)). Otherwise, when the operation finishes, a detailed response of type RollbackHl7V2MessagesResponse is returned in the response field. The metadata field type for this operation is OperationMetadata.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/hl7V2Stores/{hl7V2StoresId}:rollback", +"httpMethod": "POST", +"id": "healthcare.projects.locations.datasets.hl7V2Stores.rollback", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the HL7v2 store to rollback, in the format of \"projects/{project_id}/locations/{location_id}/datasets/{dataset_id} /hl7V2Stores/{hl7v2_store_id}\".", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/hl7V2Stores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:rollback", +"request": { +"$ref": "RollbackHl7V2MessagesRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"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}/datasets/{datasetsId}/hl7V2Stores/{hl7V2StoresId}:setIamPolicy", +"httpMethod": "POST", +"id": "healthcare.projects.locations.datasets.hl7V2Stores.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/[^/]+/datasets/[^/]+/hl7V2Stores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"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}/datasets/{datasetsId}/hl7V2Stores/{hl7V2StoresId}:testIamPermissions", +"httpMethod": "POST", +"id": "healthcare.projects.locations.datasets.hl7V2Stores.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/[^/]+/datasets/[^/]+/hl7V2Stores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"messages": { +"methods": { +"create": { +"description": "Parses and stores an HL7v2 message. This method triggers an asynchronous notification to any Pub/Sub topic configured in Hl7V2Store.Hl7V2NotificationConfig, if the filtering matches the message. If an MLLP adapter is configured to listen to a Pub/Sub topic, the adapter transmits the message when a notification is received.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/hl7V2Stores/{hl7V2StoresId}/messages", +"httpMethod": "POST", +"id": "healthcare.projects.locations.datasets.hl7V2Stores.messages.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the HL7v2 store this message belongs to.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/hl7V2Stores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/messages", +"request": { +"$ref": "CreateMessageRequest" +}, +"response": { +"$ref": "Message" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes an HL7v2 message.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/hl7V2Stores/{hl7V2StoresId}/messages/{messagesId}", +"httpMethod": "DELETE", +"id": "healthcare.projects.locations.datasets.hl7V2Stores.messages.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the HL7v2 message to delete.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/hl7V2Stores/[^/]+/messages/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets an HL7v2 message.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/hl7V2Stores/{hl7V2StoresId}/messages/{messagesId}", +"httpMethod": "GET", +"id": "healthcare.projects.locations.datasets.hl7V2Stores.messages.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the HL7v2 message to retrieve.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/hl7V2Stores/[^/]+/messages/[^/]+$", +"required": true, +"type": "string" +}, +"view": { +"description": "Specifies which parts of the Message resource to return in the response. When unspecified, equivalent to FULL.", +"enum": [ +"MESSAGE_VIEW_UNSPECIFIED", +"RAW_ONLY", +"PARSED_ONLY", +"FULL", +"SCHEMATIZED_ONLY", +"BASIC" +], +"enumDescriptions": [ +"Not specified, equivalent to FULL.", +"Server responses include all the message fields except parsed_data field, and schematized_data fields.", +"Server responses include all the message fields except data field, and schematized_data fields.", +"Server responses include all the message fields.", +"Server responses include all the message fields except data and parsed_data fields.", +"Server responses include only the name field." +], +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Message" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"ingest": { +"description": "Parses and stores an HL7v2 message. This method triggers an asynchronous notification to any Pub/Sub topic configured in Hl7V2Store.Hl7V2NotificationConfig, if the filtering matches the message. If an MLLP adapter is configured to listen to a Pub/Sub topic, the adapter transmits the message when a notification is received. If the method is successful, it generates a response containing an HL7v2 acknowledgment (`ACK`) message. If the method encounters an error, it returns a negative acknowledgment (`NACK`) message. This behavior is suitable for replying to HL7v2 interface systems that expect these acknowledgments.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/hl7V2Stores/{hl7V2StoresId}/messages:ingest", +"httpMethod": "POST", +"id": "healthcare.projects.locations.datasets.hl7V2Stores.messages.ingest", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the HL7v2 store this message belongs to.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/hl7V2Stores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/messages:ingest", +"request": { +"$ref": "IngestMessageRequest" +}, +"response": { +"$ref": "IngestMessageResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all the messages in the given HL7v2 store with support for filtering. Note: HL7v2 messages are indexed asynchronously, so there might be a slight delay between the time a message is created and when it can be found through a filter.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/hl7V2Stores/{hl7V2StoresId}/messages", +"httpMethod": "GET", +"id": "healthcare.projects.locations.datasets.hl7V2Stores.messages.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Restricts messages returned to those matching a filter. The following syntax is available: * A string field value can be written as text inside quotation marks, for example `\"query text\"`. The only valid relational operation for text fields is equality (`=`), where text is searched within the field, rather than having the field be equal to the text. For example, `\"Comment = great\"` returns messages with `great` in the comment field. * A number field value can be written as an integer, a decimal, or an exponential. The valid relational operators for number fields are the equality operator (`=`), along with the less than/greater than operators (`<`, `<=`, `>`, `>=`). Note that there is no inequality (`!=`) operator. You can prepend the `NOT` operator to an expression to negate it. * A date field value must be written in `yyyy-mm-dd` form. Fields with date and time use the RFC3339 time format. Leading zeros are required for one-digit months and days. The valid relational operators for date fields are the equality operator (`=`) , along with the less than/greater than operators (`<`, `<=`, `>`, `>=`). Note that there is no inequality (`!=`) operator. You can prepend the `NOT` operator to an expression to negate it. * Multiple field query expressions can be combined in one query by adding `AND` or `OR` operators between the expressions. If a boolean operator appears within a quoted string, it is not treated as special, it's just another part of the character string to be matched. You can prepend the `NOT` operator to an expression to negate it. Fields/functions available for filtering are: * `message_type`, from the MSH-9.1 field. For example, `NOT message_type = \"ADT\"`. * `send_date` or `sendDate`, the YYYY-MM-DD date the message was sent in the dataset's time_zone, from the MSH-7 segment. For example, `send_date < \"2017-01-02\"`. * `send_time`, the timestamp when the message was sent, using the RFC3339 time format for comparisons, from the MSH-7 segment. For example, `send_time < \"2017-01-02T00:00:00-05:00\"`. * `create_time`, the timestamp when the message was created in the HL7v2 store. Use the RFC3339 time format for comparisons. For example, `create_time < \"2017-01-02T00:00:00-05:00\"`. * `send_facility`, the care center that the message came from, from the MSH-4 segment. For example, `send_facility = \"ABC\"`. * `PatientId(value, type)`, which matches if the message lists a patient having an ID of the given value and type in the PID-2, PID-3, or PID-4 segments. For example, `PatientId(\"123456\", \"MRN\")`. * `labels.x`, a string value of the label with key `x` as set using the Message.labels map. For example, `labels.\"priority\"=\"high\"`. The operator `:*` can be used to assert the existence of a label. For example, `labels.\"priority\":*`.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Orders messages returned by the specified order_by clause. Syntax: https://cloud.google.com/apis/design/design_patterns#sorting_order Fields available for ordering are: * `send_time`", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Limit on the number of messages to return in a single response. If not specified, 100 is used. May not be larger than 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The next_page_token value returned from the previous List request, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of the HL7v2 store to retrieve messages from.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/hl7V2Stores/[^/]+$", +"required": true, +"type": "string" +}, +"view": { +"description": "Specifies the parts of the Message to return in the response. When unspecified, equivalent to BASIC. Setting this to anything other than BASIC with a `page_size` larger than the default can generate a large response, which impacts the performance of this method.", +"enum": [ +"MESSAGE_VIEW_UNSPECIFIED", +"RAW_ONLY", +"PARSED_ONLY", +"FULL", +"SCHEMATIZED_ONLY", +"BASIC" +], +"enumDescriptions": [ +"Not specified, equivalent to FULL.", +"Server responses include all the message fields except parsed_data field, and schematized_data fields.", +"Server responses include all the message fields except data field, and schematized_data fields.", +"Server responses include all the message fields.", +"Server responses include all the message fields except data and parsed_data fields.", +"Server responses include only the name field." +], +"location": "query", +"type": "string" +} +}, +"path": "v1/{+parent}/messages", +"response": { +"$ref": "ListMessagesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Update the message. The contents of the message in Message.data and data extracted from the contents such as Message.create_time cannot be altered. Only the Message.labels field is allowed to be updated. The labels in the request are merged with the existing set of labels. Existing labels with the same keys are updated.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/hl7V2Stores/{hl7V2StoresId}/messages/{messagesId}", +"httpMethod": "PATCH", +"id": "healthcare.projects.locations.datasets.hl7V2Stores.messages.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. Resource name of the Message, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/hl7V2Stores/{hl7_v2_store_id}/messages/{message_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/hl7V2Stores/[^/]+/messages/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. 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": "v1/{+name}", +"request": { +"$ref": "Message" +}, +"response": { +"$ref": "Message" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"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}/datasets/{datasetsId}/operations/{operationsId}:cancel", +"httpMethod": "POST", +"id": "healthcare.projects.locations.datasets.operations.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be cancelled.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:cancel", +"request": { +"$ref": "CancelOperationRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"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}/datasets/{datasetsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "healthcare.projects.locations.datasets.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"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}/datasets/{datasetsId}/operations", +"httpMethod": "GET", +"id": "healthcare.projects.locations.datasets.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/[^/]+/datasets/[^/]+$", +"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-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"services": { +"resources": { +"nlp": { +"methods": { +"analyzeEntities": { +"description": "Analyze heathcare entity in a document. Its response includes the recognized entity mentions and the relationships between them. AnalyzeEntities uses context aware models to detect entities.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/services/nlp:analyzeEntities", +"httpMethod": "POST", +"id": "healthcare.projects.locations.services.nlp.analyzeEntities", +"parameterOrder": [ +"nlpService" +], +"parameters": { +"nlpService": { +"description": "The resource name of the service of the form: \"projects/{project_id}/locations/{location_id}/services/nlp\".", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/services/nlp$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+nlpService}:analyzeEntities", +"request": { +"$ref": "AnalyzeEntitiesRequest" +}, +"response": { +"$ref": "AnalyzeEntitiesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-healthcare", +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +} +} +}, +"revision": "20241205", +"rootUrl": "https://healthcare.googleapis.com/", +"schemas": { +"AccessDeterminationLogConfig": { +"description": "Configures consent audit log config for FHIR create, read, update, and delete (CRUD) operations. Cloud audit log for healthcare API must be [enabled](https://cloud.google.com/logging/docs/audit/configure-data-access#config-console-enable). The consent-related logs are included as part of `protoPayload.metadata`.", +"id": "AccessDeterminationLogConfig", +"properties": { +"logLevel": { +"description": "Optional. Controls the amount of detail to include as part of the audit logs.", +"enum": [ +"LOG_LEVEL_UNSPECIFIED", +"DISABLED", +"MINIMUM", +"VERBOSE" +], +"enumDescriptions": [ +"No log level specified. This value is unused.", +"No additional consent-related logging is added to audit logs.", +"The following information is included: * One of the following [`consentMode`](https://cloud.google.com/healthcare-api/docs/fhir-consent#audit_logs) fields: (`off`|`emptyScope`|`enforced`|`btg`|`bypass`). * The accessor's request headers * The `log_level` of the AccessDeterminationLogConfig * The final consent evaluation (`PERMIT`, `DENY`, or `NO_CONSENT`) * A human-readable summary of the evaluation", +"Includes `MINIMUM` and, for each resource owner, returns: * The resource owner's name * Most specific part of the `X-Consent-Scope` resulting in consensual determination * Timestamp of the applied enforcement leading to the decision * Enforcement version at the time the applicable consents were applied * The Consent resource name * The timestamp of the Consent resource used for enforcement * Policy type (`PATIENT` or `ADMIN`) Note that this mode adds some overhead to CRUD operations." +], +"type": "string" +} +}, +"type": "object" +}, +"ActivateConsentRequest": { +"description": "Activates the latest revision of the specified Consent by committing a new revision with `state` updated to `ACTIVE`. If the latest revision of the given Consent is in the `ACTIVE` state, no new revision is committed. A FAILED_PRECONDITION error occurs if the latest revision of the given consent is in the `REJECTED` or `REVOKED` state.", +"id": "ActivateConsentRequest", +"properties": { +"consentArtifact": { +"description": "Required. The resource name of the Consent artifact that contains documentation of the user's consent, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}/consentArtifacts/{consent_artifact_id}`. If the draft Consent had a Consent artifact, this Consent artifact overwrites it.", +"type": "string" +}, +"expireTime": { +"description": "Timestamp in UTC of when this Consent is considered expired.", +"format": "google-datetime", +"type": "string" +}, +"ttl": { +"description": "The time to live for this Consent from when it is marked as active.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"AdminConsents": { +"description": "List of admin Consent resources to be applied.", +"id": "AdminConsents", +"properties": { +"names": { +"description": "Optional. The versioned names of the admin Consent resource(s), in the format `projects/{project_id}/locations/{location}/datasets/{dataset_id}/fhirStores/{fhir_store_id}/fhir/Consent/{resource_id}/_history/{version_id}`. For FHIR stores with `disable_resource_versioning=true`, the format is `projects/{project_id}/locations/{location}/datasets/{dataset_id}/fhirStores/{fhir_store_id}/fhir/Consent/{resource_id}`.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"AnalyzeEntitiesRequest": { +"description": "The request to analyze healthcare entities in a document.", +"id": "AnalyzeEntitiesRequest", +"properties": { +"alternativeOutputFormat": { +"description": "Optional. Alternative output format to be generated based on the results of analysis.", +"enum": [ +"ALTERNATIVE_OUTPUT_FORMAT_UNSPECIFIED", +"FHIR_BUNDLE" +], +"enumDescriptions": [ +"No alternative output format is specified.", +"FHIR bundle output." +], +"type": "string" +}, +"documentContent": { +"description": "document_content is a document to be annotated.", +"type": "string" +}, +"licensedVocabularies": { +"description": "A list of licensed vocabularies to use in the request, in addition to the default unlicensed vocabularies.", +"items": { +"enum": [ +"LICENSED_VOCABULARY_UNSPECIFIED", +"ICD10CM", +"SNOMEDCT_US" +], +"enumDescriptions": [ +"No licensed vocabulary specified.", +"ICD-10-CM vocabulary", +"SNOMED CT (US version) vocabulary" +], +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"AnalyzeEntitiesResponse": { +"description": "Includes recognized entity mentions and relationships between them.", +"id": "AnalyzeEntitiesResponse", +"properties": { +"entities": { +"description": "The union of all the candidate entities that the entity_mentions in this response could link to. These are UMLS concepts or normalized mention content.", +"items": { +"$ref": "Entity" +}, +"type": "array" +}, +"entityMentions": { +"description": "The `entity_mentions` field contains all the annotated medical entities that were mentioned in the provided document.", +"items": { +"$ref": "EntityMention" +}, +"type": "array" +}, +"fhirBundle": { +"description": "The FHIR bundle ([`R4`](http://hl7.org/fhir/R4/bundle.html)) that includes all the entities, the entity mentions, and the relationships in JSON format.", +"type": "string" +}, +"relationships": { +"description": "relationships contains all the binary relationships that were identified between entity mentions within the provided document.", +"items": { +"$ref": "EntityMentionRelationship" +}, +"type": "array" +} +}, +"type": "object" +}, +"ApplyAdminConsentsErrorDetail": { +"description": "Contains the error details of the unsupported admin Consent resources for when the ApplyAdminConsents method fails to apply one or more Consent resources.", +"id": "ApplyAdminConsentsErrorDetail", +"properties": { +"consentErrors": { +"description": "The list of Consent resources that are unsupported or cannot be applied and the error associated with each of them.", +"items": { +"$ref": "ConsentErrors" +}, +"type": "array" +}, +"existingOperationId": { +"description": "The currently in progress non-validate-only ApplyAdminConsents operation ID if exist.", +"format": "uint64", +"type": "string" +} +}, +"type": "object" +}, +"ApplyAdminConsentsRequest": { +"description": "Request to apply the admin Consent resources for the specified FHIR store.", +"id": "ApplyAdminConsentsRequest", +"properties": { +"newConsentsList": { +"$ref": "AdminConsents", +"description": "A new list of admin Consent resources to be applied. Any existing enforced Consents, which are specified in `consent_config.enforced_admin_consents` of the FhirStore, that are not part of this list will be disabled. An empty list is equivalent to clearing or disabling all Consents enforced on the FHIR store. When a FHIR store has `disable_resource_versioning=true` and this list contains a Consent resource that exists in `consent_config.enforced_admin_consents`, the method enforces any updates to the existing resource since the last enforcement. If the existing resource hasn't been updated since the last enforcement, the resource is unaffected. After the method finishes, the resulting consent enforcement model is determined by the contents of the Consent resource(s) when the method was called: * When `disable_resource_versioning=true`, the result is identical to the current resource(s) in the FHIR store. * When `disable_resource_versioning=false`, the result is based on the historical version(s) of the Consent resource(s) at the point in time when the method was called. At most 200 Consents can be specified." +}, +"validateOnly": { +"description": "Optional. If true, the method only validates Consent resources to make sure they are supported. Otherwise, the method applies the aggregate consent information to update the enforcement model and reindex the FHIR resources. If all Consent resources can be applied successfully, the ApplyAdminConsentsResponse is returned containing the following fields: * `consent_apply_success` to indicate the number of Consent resources applied. * `affected_resources` to indicate the number of resources that might have had their consent access changed. If, however, one or more Consent resources are unsupported or cannot be applied, the method fails and ApplyAdminConsentsErrorDetail is is returned with details about the unsupported Consent resources.", +"type": "boolean" +} +}, +"type": "object" +}, +"ApplyAdminConsentsResponse": { +"description": "Response when all admin Consent resources in scope were processed and all affected resources were reindexed successfully. This structure will be included in the response when the operation finishes successfully.", +"id": "ApplyAdminConsentsResponse", +"properties": { +"affectedResources": { +"description": "The number of resources (including the Consent resources) that may have consent access change.", +"format": "int64", +"type": "string" +}, +"consentApplySuccess": { +"description": "If `validate_only=false` in ApplyAdminConsentsRequest, this counter contains the number of Consent resources that were successfully applied. Otherwise, it is the number of Consent resources that are supported.", +"format": "int64", +"type": "string" +}, +"failedResources": { +"description": "The number of resources (including the Consent resources) that ApplyAdminConsents failed to re-index.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"ApplyConsentsRequest": { +"description": "Request to apply the Consent resources for the specified FHIR store.", +"id": "ApplyConsentsRequest", +"properties": { +"patientScope": { +"$ref": "PatientScope", +"description": "Optional. Scope down to a list of patients." +}, +"timeRange": { +"$ref": "TimeRange", +"description": "Optional. Scope down to patients whose most recent consent changes are in the time range. Can only be used with a versioning store (i.e. when disable_resource_versioning is set to false)." +}, +"validateOnly": { +"description": "Optional. If true, the method only validates Consent resources to make sure they are supported. When the operation completes, ApplyConsentsResponse is returned where `consent_apply_success` and `consent_apply_failure` indicate supported and unsupported (or invalid) Consent resources, respectively. Otherwise, the method propagates the aggregate consensual information to the patient's resources. Upon success, `affected_resources` in the ApplyConsentsResponse indicates the number of resources that may have consensual access changed.", +"type": "boolean" +} +}, +"type": "object" +}, +"ApplyConsentsResponse": { +"description": "Response when all Consent resources in scope were processed and all affected resources were reindexed successfully. This structure is included in the response when the operation finishes successfully.", +"id": "ApplyConsentsResponse", +"properties": { +"affectedResources": { +"description": "The number of resources (including the Consent resources) that may have consensual access change.", +"format": "int64", +"type": "string" +}, +"consentApplyFailure": { +"description": "If `validate_only = false` in ApplyConsentsRequest, this counter is the number of Consent resources that were failed to apply. Otherwise, it is the number of Consent resources that are not supported or invalid.", +"format": "int64", +"type": "string" +}, +"consentApplySuccess": { +"description": "If `validate_only = false` in ApplyConsentsRequest, this counter is the number of Consent resources that were successfully applied. Otherwise, it is the number of Consent resources that are supported.", +"format": "int64", +"type": "string" +}, +"failedResources": { +"description": "The number of resources (including the Consent resources) that ApplyConsents failed to re-index.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"ArchiveUserDataMappingRequest": { +"description": "Archives the specified User data mapping.", +"id": "ArchiveUserDataMappingRequest", +"properties": {}, +"type": "object" +}, +"ArchiveUserDataMappingResponse": { +"description": "Archives the specified User data mapping.", +"id": "ArchiveUserDataMappingResponse", +"properties": {}, +"type": "object" +}, +"Attribute": { +"description": "An attribute value for a Consent or User data mapping. Each Attribute must have a corresponding AttributeDefinition in the consent store that defines the default and allowed values.", +"id": "Attribute", +"properties": { +"attributeDefinitionId": { +"description": "Indicates the name of an attribute defined in the consent store.", +"type": "string" +}, +"values": { +"description": "Required. The value of the attribute. Must be an acceptable value as defined in the consent store. For example, if the consent store defines \"data type\" with acceptable values \"questionnaire\" and \"step-count\", when the attribute name is data type, this field must contain one of those values.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"AttributeDefinition": { +"description": "A client-defined consent attribute.", +"id": "AttributeDefinition", +"properties": { +"allowedValues": { +"description": "Required. Possible values for the attribute. The number of allowed values must not exceed 500. An empty list is invalid. The list can only be expanded after creation.", +"items": { +"type": "string" +}, +"type": "array" +}, +"category": { +"description": "Required. The category of the attribute. The value of this field cannot be changed after creation.", +"enum": [ +"CATEGORY_UNSPECIFIED", +"RESOURCE", +"REQUEST" +], +"enumDescriptions": [ +"No category specified. This option is invalid.", +"Specify this category when this attribute describes the properties of resources. For example, data anonymity or data type.", +"Specify this category when this attribute describes the properties of requests. For example, requester's role or requester's organization." +], +"type": "string" +}, +"consentDefaultValues": { +"description": "Optional. Default values of the attribute in Consents. If no default values are specified, it defaults to an empty value.", +"items": { +"type": "string" +}, +"type": "array" +}, +"dataMappingDefaultValue": { +"description": "Optional. Default value of the attribute in User data mappings. If no default value is specified, it defaults to an empty value. This field is only applicable to attributes of the category `RESOURCE`.", +"type": "string" +}, +"description": { +"description": "Optional. A description of the attribute.", +"type": "string" +}, +"name": { +"description": "Identifier. Resource name of the Attribute definition, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}/attributeDefinitions/{attribute_definition_id}`. Cannot be changed after creation.", +"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" +}, +"BlobStorageInfo": { +"description": "BlobStorageInfo contains details about the data stored in Blob Storage for the referenced resource. Note: Storage class is only valid for DICOM and hence will only be populated for DICOM resources.", +"id": "BlobStorageInfo", +"properties": { +"sizeBytes": { +"description": "Size in bytes of data stored in Blob Storage.", +"format": "int64", +"type": "string" +}, +"storageClass": { +"description": "The storage class in which the Blob data is stored.", +"enum": [ +"BLOB_STORAGE_CLASS_UNSPECIFIED", +"STANDARD", +"NEARLINE", +"COLDLINE", +"ARCHIVE" +], +"enumDescriptions": [ +"If unspecified in CreateDataset, the StorageClass defaults to STANDARD. If unspecified in UpdateDataset and the StorageClass is set in the field mask, an InvalidRequest error is thrown.", +"This stores the Object in Blob Standard Storage: https://cloud.google.com/storage/docs/storage-classes#standard", +"This stores the Object in Blob Nearline Storage: https://cloud.google.com/storage/docs/storage-classes#nearline", +"This stores the Object in Blob Coldline Storage: https://cloud.google.com/storage/docs/storage-classes#coldline", +"This stores the Object in Blob Archive Storage: https://cloud.google.com/storage/docs/storage-classes#archive" +], +"type": "string" +}, +"storageClassUpdateTime": { +"description": "The time at which the storage class was updated. This is used to compute early deletion fees of the resource.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"BlobStorageSettings": { +"description": "Settings for data stored in Blob storage.", +"id": "BlobStorageSettings", +"properties": { +"blobStorageClass": { +"description": "The Storage class in which the Blob data is stored.", +"enum": [ +"BLOB_STORAGE_CLASS_UNSPECIFIED", +"STANDARD", +"NEARLINE", +"COLDLINE", +"ARCHIVE" +], +"enumDescriptions": [ +"If unspecified in CreateDataset, the StorageClass defaults to STANDARD. If unspecified in UpdateDataset and the StorageClass is set in the field mask, an InvalidRequest error is thrown.", +"This stores the Object in Blob Standard Storage: https://cloud.google.com/storage/docs/storage-classes#standard", +"This stores the Object in Blob Nearline Storage: https://cloud.google.com/storage/docs/storage-classes#nearline", +"This stores the Object in Blob Coldline Storage: https://cloud.google.com/storage/docs/storage-classes#coldline", +"This stores the Object in Blob Archive Storage: https://cloud.google.com/storage/docs/storage-classes#archive" +], +"type": "string" +} +}, +"type": "object" +}, +"CancelOperationRequest": { +"description": "The request message for Operations.CancelOperation.", +"id": "CancelOperationRequest", +"properties": {}, +"type": "object" +}, +"CharacterMaskConfig": { +"description": "Mask a string by replacing its characters with a fixed character.", +"id": "CharacterMaskConfig", +"properties": { +"maskingCharacter": { +"description": "Optional. Character to mask the sensitive values. If not supplied, defaults to \"*\".", +"type": "string" +} +}, +"type": "object" +}, +"CheckDataAccessRequest": { +"description": "Checks if a particular data_id of a User data mapping in the given consent store is consented for a given use.", +"id": "CheckDataAccessRequest", +"properties": { +"consentList": { +"$ref": "ConsentList", +"description": "Optional. Specific Consents to evaluate the access request against. These Consents must have the same `user_id` as the evaluated User data mapping, must exist in the current `consent_store`, and have a `state` of either `ACTIVE` or `DRAFT`. A maximum of 100 Consents can be provided here. If no selection is specified, the access request is evaluated against all `ACTIVE` unexpired Consents with the same `user_id` as the evaluated User data mapping." +}, +"dataId": { +"description": "Required. The unique identifier of the resource to check access for. This identifier must correspond to a User data mapping in the given consent store.", +"type": "string" +}, +"requestAttributes": { +"additionalProperties": { +"type": "string" +}, +"description": "The values of request attributes associated with this access request.", +"type": "object" +}, +"responseView": { +"description": "Optional. The view for CheckDataAccessResponse. If unspecified, defaults to `BASIC` and returns `consented` as `TRUE` or `FALSE`.", +"enum": [ +"RESPONSE_VIEW_UNSPECIFIED", +"BASIC", +"FULL" +], +"enumDescriptions": [ +"No response view specified. The API will default to the BASIC view.", +"Only the `consented` field is populated in CheckDataAccessResponse.", +"All fields within CheckDataAccessResponse are populated. When set to `FULL`, all `ACTIVE` Consents are evaluated even if a matching policy is found during evaluation." +], +"type": "string" +} +}, +"type": "object" +}, +"CheckDataAccessResponse": { +"description": "Checks if a particular data_id of a User data mapping in the given consent store is consented for a given use.", +"id": "CheckDataAccessResponse", +"properties": { +"consentDetails": { +"additionalProperties": { +"$ref": "ConsentEvaluation" +}, +"description": "The resource names of all evaluated Consents mapped to their evaluation.", +"type": "object" +}, +"consented": { +"description": "Whether the requested resource is consented for the given use.", +"type": "boolean" +} +}, +"type": "object" +}, +"Consent": { +"description": "Represents a user's consent.", +"id": "Consent", +"properties": { +"consentArtifact": { +"description": "Required. The resource name of the Consent artifact that contains proof of the end user's consent, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}/consentArtifacts/{consent_artifact_id}`.", +"type": "string" +}, +"expireTime": { +"description": "Timestamp in UTC of when this Consent is considered expired.", +"format": "google-datetime", +"type": "string" +}, +"metadata": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. User-supplied key-value pairs used to organize Consent resources. Metadata keys must: - be between 1 and 63 characters long - have a UTF-8 encoding of maximum 128 bytes - begin with a letter - consist of up to 63 characters including lowercase letters, numeric characters, underscores, and dashes Metadata values must be: - be between 1 and 63 characters long - have a UTF-8 encoding of maximum 128 bytes - consist of up to 63 characters including lowercase letters, numeric characters, underscores, and dashes No more than 64 metadata entries can be associated with a given consent.", +"type": "object" +}, +"name": { +"description": "Identifier. Resource name of the Consent, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}/consents/{consent_id}`. Cannot be changed after creation.", +"type": "string" +}, +"policies": { +"description": "Optional. Represents a user's consent in terms of the resources that can be accessed and under what conditions.", +"items": { +"$ref": "GoogleCloudHealthcareV1ConsentPolicy" +}, +"type": "array" +}, +"revisionCreateTime": { +"description": "Output only. The timestamp that the revision was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"revisionId": { +"description": "Output only. The revision ID of the Consent. The format is an 8-character hexadecimal string. Refer to a specific revision of a Consent by appending `@{revision_id}` to the Consent's resource name.", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Required. Indicates the current state of this Consent.", +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"ARCHIVED", +"REVOKED", +"DRAFT", +"REJECTED" +], +"enumDescriptions": [ +"No state specified. Treated as ACTIVE only at the time of resource creation.", +"The Consent is active and is considered when evaluating a user's consent on resources.", +"The archived state is currently not being used.", +"A revoked Consent is not considered when evaluating a user's consent on resources.", +"A draft Consent is not considered when evaluating a user's consent on resources unless explicitly specified.", +"When a draft Consent is rejected by a user, it is set to a rejected state. A rejected Consent is not considered when evaluating a user's consent on resources." +], +"type": "string" +}, +"ttl": { +"description": "Input only. The time to live for this Consent from when it is created.", +"format": "google-duration", +"type": "string" +}, +"userId": { +"description": "Required. User's UUID provided by the client.", +"type": "string" +} +}, +"type": "object" +}, +"ConsentAccessorScope": { +"description": "The accessor scope that describes who can access, for what purpose, in which environment.", +"id": "ConsentAccessorScope", +"properties": { +"actor": { +"description": "An individual, group, or access role that identifies the accessor or a characteristic of the accessor. This can be a resource ID (such as `{resourceType}/{id}`) or an external URI. This value must be present.", +"type": "string" +}, +"environment": { +"description": "An abstract identifier that describes the environment or conditions under which the accessor is acting. Can be \"*\" if it applies to all environments.", +"type": "string" +}, +"purpose": { +"description": "The intent of data use. Can be \"*\" if it applies to all purposes.", +"type": "string" +} +}, +"type": "object" +}, +"ConsentArtifact": { +"description": "Documentation of a user's consent.", +"id": "ConsentArtifact", +"properties": { +"consentContentScreenshots": { +"description": "Optional. Screenshots, PDFs, or other binary information documenting the user's consent.", +"items": { +"$ref": "Image" +}, +"type": "array" +}, +"consentContentVersion": { +"description": "Optional. An string indicating the version of the consent information shown to the user.", +"type": "string" +}, +"guardianSignature": { +"$ref": "Signature", +"description": "Optional. A signature from a guardian." +}, +"metadata": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Metadata associated with the Consent artifact. For example, the consent locale or user agent version.", +"type": "object" +}, +"name": { +"description": "Identifier. Resource name of the Consent artifact, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}/consentArtifacts/{consent_artifact_id}`. Cannot be changed after creation.", +"type": "string" +}, +"userId": { +"description": "Required. User's UUID provided by the client.", +"type": "string" +}, +"userSignature": { +"$ref": "Signature", +"description": "Optional. User's signature." +}, +"witnessSignature": { +"$ref": "Signature", +"description": "Optional. A signature from a witness." +} +}, +"type": "object" +}, +"ConsentConfig": { +"description": "Configures whether to enforce consent for the FHIR store and which consent enforcement version is being used.", +"id": "ConsentConfig", +"properties": { +"accessDeterminationLogConfig": { +"$ref": "AccessDeterminationLogConfig", +"description": "Optional. Specifies how the server logs the consent-aware requests. If not specified, the `AccessDeterminationLogConfig.LogLevel.MINIMUM` option is used." +}, +"accessEnforced": { +"description": "Optional. The default value is false. If set to true, when accessing FHIR resources, the consent headers will be verified against consents given by patients. See the ConsentEnforcementVersion for the supported consent headers.", +"type": "boolean" +}, +"consentHeaderHandling": { +"$ref": "ConsentHeaderHandling", +"description": "Optional. Different options to configure the behaviour of the server when handling the `X-Consent-Scope` header." +}, +"enforcedAdminConsents": { +"description": "Output only. The versioned names of the enforced admin Consent resource(s), in the format `projects/{project_id}/locations/{location}/datasets/{dataset_id}/fhirStores/{fhir_store_id}/fhir/Consent/{resource_id}/_history/{version_id}`. For FHIR stores with `disable_resource_versioning=true`, the format is `projects/{project_id}/locations/{location}/datasets/{dataset_id}/fhirStores/{fhir_store_id}/fhir/Consent/{resource_id}`. This field can only be updated using ApplyAdminConsents.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"version": { +"description": "Required. Specifies which consent enforcement version is being used for this FHIR store. This field can only be set once by either CreateFhirStore or UpdateFhirStore. After that, you must call ApplyConsents to change the version.", +"enum": [ +"CONSENT_ENFORCEMENT_VERSION_UNSPECIFIED", +"V1" +], +"enumDescriptions": [ +"Users must specify an enforcement version or an error is returned.", +"Enforcement version 1. See the [FHIR Consent resources in the Cloud Healthcare API](https://cloud.google.com/healthcare-api/docs/fhir-consent) guide for more details." +], +"type": "string" +} +}, +"type": "object" +}, +"ConsentErrors": { +"description": "The Consent resource name and error.", +"id": "ConsentErrors", +"properties": { +"error": { +"$ref": "Status", +"description": "The error code and message." +}, +"name": { +"description": "The versioned name of the admin Consent resource, in the format `projects/{project_id}/locations/{location}/datasets/{dataset_id}/fhirStores/{fhir_store_id}/fhir/Consent/{resource_id}/_history/{version_id}`. For FHIR stores with `disable_resource_versioning=true`, the format is `projects/{project_id}/locations/{location}/datasets/{dataset_id}/fhirStores/{fhir_store_id}/fhir/Consent/{resource_id}`.", +"type": "string" +} +}, +"type": "object" +}, +"ConsentEvaluation": { +"description": "The detailed evaluation of a particular Consent.", +"id": "ConsentEvaluation", +"properties": { +"evaluationResult": { +"description": "The evaluation result.", +"enum": [ +"EVALUATION_RESULT_UNSPECIFIED", +"NOT_APPLICABLE", +"NO_MATCHING_POLICY", +"NO_SATISFIED_POLICY", +"HAS_SATISFIED_POLICY" +], +"enumDescriptions": [ +"No evaluation result specified. This option is invalid.", +"The Consent is not applicable to the requested access determination. For example, the Consent does not apply to the user for which the access determination is requested, or it has a `state` of `REVOKED`, or it has expired.", +"The Consent does not have a policy that matches the `resource_attributes` of the evaluated resource.", +"The Consent has at least one policy that matches the `resource_attributes` of the evaluated resource, but no `authorization_rule` was satisfied.", +"The Consent has at least one policy that matches the `resource_attributes` of the evaluated resource, and at least one `authorization_rule` was satisfied." +], +"type": "string" +} +}, +"type": "object" +}, +"ConsentHeaderHandling": { +"description": "How the server handles the consent header.", +"id": "ConsentHeaderHandling", +"properties": { +"profile": { +"description": "Optional. Specifies the default server behavior when the header is empty. If not specified, the `ScopeProfile.PERMIT_EMPTY_SCOPE` option is used.", +"enum": [ +"SCOPE_PROFILE_UNSPECIFIED", +"PERMIT_EMPTY_SCOPE", +"REQUIRED_ON_READ" +], +"enumDescriptions": [ +"If not specified, the default value `PERMIT_EMPTY_SCOPE` is used.", +"When no consent scopes are provided (for example, if there's an empty or missing header), then consent check is disabled, similar to when `access_enforced` is `false`. You can use audit logs to differentiate these two cases by looking at the value of `protopayload.metadata.consentMode`. If consents scopes are present, they must be valid and within the allowed limits, otherwise the request will be rejected with a `4xx` code.", +"The consent header must be non-empty when performing read and search operations, otherwise the request is rejected with a `4xx` code. Additionally, invalid consent scopes or scopes exceeding the allowed limits are rejected." +], +"type": "string" +} +}, +"type": "object" +}, +"ConsentList": { +"description": "List of resource names of Consent resources.", +"id": "ConsentList", +"properties": { +"consents": { +"description": "The resource names of the Consents to evaluate against, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}/consents/{consent_id}`.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ConsentStore": { +"description": "Represents a consent store.", +"id": "ConsentStore", +"properties": { +"defaultConsentTtl": { +"description": "Optional. Default time to live for Consents created in this store. Must be at least 24 hours. Updating this field will not affect the expiration time of existing consents.", +"format": "google-duration", +"type": "string" +}, +"enableConsentCreateOnUpdate": { +"description": "Optional. If `true`, UpdateConsent creates the Consent if it does not already exist. If unspecified, defaults to `false`.", +"type": "boolean" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. User-supplied key-value pairs used to organize consent stores. 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. For more information: https://cloud.google.com/healthcare/docs/how-tos/labeling-resources", +"type": "object" +}, +"name": { +"description": "Identifier. Resource name of the consent store, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}`. Cannot be changed after creation.", +"type": "string" +} +}, +"type": "object" +}, +"CreateMessageRequest": { +"description": "Creates a new message.", +"id": "CreateMessageRequest", +"properties": { +"message": { +"$ref": "Message", +"description": "Required. HL7v2 message." +} +}, +"type": "object" +}, +"CryptoHashConfig": { +"description": "Pseudonymization method that generates surrogates via cryptographic hashing. Uses SHA-256. Outputs a base64-encoded representation of the hashed output (for example, `L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=`).", +"id": "CryptoHashConfig", +"properties": { +"cryptoKey": { +"description": "An AES 128/192/256 bit key. Causes the hash to be computed based on this key. A default key is generated for each Deidentify operation and is used when neither `crypto_key` nor `kms_wrapped` is specified. Must not be set if `kms_wrapped` is set.", +"format": "byte", +"type": "string" +}, +"kmsWrapped": { +"$ref": "KmsWrappedCryptoKey", +"description": "KMS wrapped key. Must not be set if `crypto_key` is set." +} +}, +"type": "object" +}, +"Dataset": { +"description": "A message representing a health dataset. A health dataset represents a collection of healthcare data pertaining to one or more patients. This may include multiple modalities of healthcare data, such as electronic medical records or medical imaging data.", +"id": "Dataset", +"properties": { +"encryptionSpec": { +"$ref": "EncryptionSpec", +"description": "Optional. Customer-managed encryption key spec for a Dataset. If set, this Dataset and all of its sub-resources will be secured by this key. If empty, the Dataset is secured by the default Google encryption key." +}, +"name": { +"description": "Identifier. Resource name of the dataset, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}`.", +"type": "string" +}, +"timeZone": { +"description": "Optional. The default timezone used by this dataset. Must be a either a valid IANA time zone name such as \"America/New_York\" or empty, which defaults to UTC. This is used for parsing times in resources, such as HL7 messages, where no explicit timezone is specified.", +"type": "string" +} +}, +"type": "object" +}, +"DateShiftConfig": { +"description": "Shift a date forward or backward in time by a random amount which is consistent for a given patient and crypto key combination.", +"id": "DateShiftConfig", +"properties": { +"cryptoKey": { +"description": "An AES 128/192/256 bit key. The date shift is computed based on this key and the patient ID. If the patient ID is empty for a DICOM resource, the date shift is computed based on this key and the study instance UID. If `crypto_key` is not set, then `kms_wrapped` is used to calculate the date shift. If neither is set, a default key is generated for each de-identify operation. Must not be set if `kms_wrapped` is set.", +"format": "byte", +"type": "string" +}, +"kmsWrapped": { +"$ref": "KmsWrappedCryptoKey", +"description": "KMS wrapped key. If `kms_wrapped` is not set, then `crypto_key` is used to calculate the date shift. If neither is set, a default key is generated for each de-identify operation. Must not be set if `crypto_key` is set." +} +}, +"type": "object" +}, +"DeidentifiedStoreDestination": { +"description": "Contains configuration for streaming de-identified FHIR export.", +"id": "DeidentifiedStoreDestination", +"properties": { +"config": { +"$ref": "DeidentifyConfig", +"description": "Optional. The configuration to use when de-identifying resources that are added to this store." +}, +"store": { +"description": "Optional. The full resource name of a Cloud Healthcare FHIR store, for example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}`.", +"type": "string" +} +}, +"type": "object" +}, +"DeidentifyConfig": { +"description": "Configures de-id options specific to different types of content. Each submessage customizes the handling of an https://tools.ietf.org/html/rfc6838 media type or subtype. Configs are applied in a nested manner at runtime.", +"id": "DeidentifyConfig", +"properties": { +"dicom": { +"$ref": "DicomConfig", +"description": "Optional. Configures de-id of application/DICOM content." +}, +"fhir": { +"$ref": "FhirConfig", +"description": "Optional. Configures de-id of application/FHIR content." +}, +"image": { +"$ref": "ImageConfig", +"description": "Optional. Configures de-identification of image pixels wherever they are found in the source_dataset." +}, +"text": { +"$ref": "TextConfig", +"description": "Optional. Configures de-identification of text wherever it is found in the source_dataset." +}, +"useRegionalDataProcessing": { +"description": "Optional. Ensures in-flight data remains in the region of origin during de-identification. The default value is false. Using this option results in a significant reduction of throughput, and is not compatible with `LOCATION` or `ORGANIZATION_NAME` infoTypes. `LOCATION` must be excluded within TextConfig, and must also be excluded within ImageConfig if image redaction is required.", +"type": "boolean" +} +}, +"type": "object" +}, +"DeidentifyDatasetRequest": { +"description": "Redacts identifying information from the specified dataset.", +"id": "DeidentifyDatasetRequest", +"properties": { +"config": { +"$ref": "DeidentifyConfig", +"description": "Deidentify configuration. Only one of `config` and `gcs_config_uri` can be specified." +}, +"destinationDataset": { +"description": "Required. The name of the dataset resource to create and write the redacted data to. * The destination dataset must not exist. * The destination dataset must be in the same location as the source dataset. De-identifying data across multiple locations is not supported.", +"type": "string" +}, +"gcsConfigUri": { +"description": "Cloud Storage location to read the JSON cloud.healthcare.deidentify.DeidentifyConfig from, overriding the default config. Must be of the form `gs://{bucket_id}/path/to/object`. The Cloud Storage location must grant the Cloud IAM role `roles/storage.objectViewer` to the project's Cloud Healthcare Service Agent service account. Only one of `config` and `gcs_config_uri` can be specified.", +"type": "string" +} +}, +"type": "object" +}, +"DeidentifyDicomStoreRequest": { +"description": "Creates a new DICOM store with sensitive information de-identified.", +"id": "DeidentifyDicomStoreRequest", +"properties": { +"config": { +"$ref": "DeidentifyConfig", +"description": "Deidentify configuration. Only one of `config` and `gcs_config_uri` can be specified." +}, +"destinationStore": { +"description": "Required. The name of the DICOM store to create and write the redacted data to. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`. * The destination dataset must exist. * The source dataset and destination dataset must both reside in the same location. De-identifying data across multiple locations is not supported. * The destination DICOM store must not exist. * The caller must have the necessary permissions to create the destination DICOM store.", +"type": "string" +}, +"filterConfig": { +"$ref": "DicomFilterConfig", +"description": "Filter configuration." +}, +"gcsConfigUri": { +"description": "Cloud Storage location to read the JSON cloud.healthcare.deidentify.DeidentifyConfig from, overriding the default config. Must be of the form `gs://{bucket_id}/path/to/object`. The Cloud Storage location must grant the Cloud IAM role `roles/storage.objectViewer` to the project's Cloud Healthcare Service Agent service account. Only one of `config` and `gcs_config_uri` can be specified.", +"type": "string" +} +}, +"type": "object" +}, +"DeidentifyFhirStoreRequest": { +"description": "Creates a new FHIR store with sensitive information de-identified.", +"id": "DeidentifyFhirStoreRequest", +"properties": { +"config": { +"$ref": "DeidentifyConfig", +"description": "Deidentify configuration. Only one of `config` and `gcs_config_uri` can be specified." +}, +"destinationStore": { +"description": "Required. The name of the FHIR store to create and write the redacted data to. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}`. * The destination dataset must exist. * The source dataset and destination dataset must both reside in the same location. De-identifying data across multiple locations is not supported. * The destination FHIR store must exist. * The caller must have the healthcare.fhirResources.update permission to write to the destination FHIR store.", +"type": "string" +}, +"gcsConfigUri": { +"description": "Cloud Storage location to read the JSON cloud.healthcare.deidentify.DeidentifyConfig from, overriding the default config. Must be of the form `gs://{bucket_id}/path/to/object`. The Cloud Storage location must grant the Cloud IAM role `roles/storage.objectViewer` to the project's Cloud Healthcare Service Agent service account. Only one of `config` and `gcs_config_uri` can be specified.", +"type": "string" +}, +"resourceFilter": { +"$ref": "FhirFilter", +"description": "A filter specifying the resources to include in the output. If not specified, all resources are included in the output." +}, +"skipModifiedResources": { +"description": "If true, skips resources that are created or modified after the de-identify operation is created.", +"type": "boolean" +} +}, +"type": "object" +}, +"DeidentifySummary": { +"description": "Contains a summary of the Deidentify operation.", +"id": "DeidentifySummary", +"properties": {}, +"type": "object" +}, +"DicomConfig": { +"description": "Specifies the parameters needed for de-identification of DICOM stores.", +"id": "DicomConfig", +"properties": { +"filterProfile": { +"description": "Tag filtering profile that determines which tags to keep/remove.", +"enum": [ +"TAG_FILTER_PROFILE_UNSPECIFIED", +"MINIMAL_KEEP_LIST_PROFILE", +"ATTRIBUTE_CONFIDENTIALITY_BASIC_PROFILE", +"KEEP_ALL_PROFILE", +"DEIDENTIFY_TAG_CONTENTS" +], +"enumDescriptions": [ +"No tag filtration profile provided. Same as KEEP_ALL_PROFILE.", +"Keep only tags required to produce valid DICOM.", +"Remove tags based on DICOM Standard's Attribute Confidentiality Basic Profile (DICOM Standard Edition 2018e) http://dicom.nema.org/medical/dicom/2018e/output/chtml/part15/chapter_E.html.", +"Keep all tags.", +"Inspects within tag contents and replaces sensitive text. The process can be configured using the TextConfig. Applies to all tags with the following Value Representation names: AE, LO, LT, PN, SH, ST, UC, UT, DA, DT, AS" +], +"type": "string" +}, +"keepList": { +"$ref": "TagFilterList", +"description": "List of tags to keep. Remove all other tags." +}, +"removeList": { +"$ref": "TagFilterList", +"description": "List of tags to remove. Keep all other tags." +}, +"skipIdRedaction": { +"description": "Optional. If true, skip replacing StudyInstanceUID, SeriesInstanceUID, SOPInstanceUID, and MediaStorageSOPInstanceUID and leave them untouched. The Cloud Healthcare API regenerates these UIDs by default based on the DICOM Standard's reasoning: \"Whilst these UIDs cannot be mapped directly to an individual out of context, given access to the original images, or to a database of the original images containing the UIDs, it would be possible to recover the individual's identity.\" http://dicom.nema.org/medical/dicom/current/output/chtml/part15/sect_E.3.9.html", +"type": "boolean" +} +}, +"type": "object" +}, +"DicomFilterConfig": { +"description": "Specifies the filter configuration for DICOM resources.", +"id": "DicomFilterConfig", +"properties": { +"resourcePathsGcsUri": { +"description": "The Cloud Storage location of the filter configuration file. The `gcs_uri` must be in the format `gs://bucket/path/to/object`. The filter configuration file must contain a list of resource paths separated by newline characters (\\n or \\r\\n). Each resource path must be in the format \"/studies/{studyUID}[/series/{seriesUID}[/instances/{instanceUID}]]\" The Cloud Healthcare API service account must have the `roles/storage.objectViewer` Cloud IAM role for this Cloud Storage location.", +"type": "string" +} +}, +"type": "object" +}, +"DicomStore": { +"description": "Represents a DICOM store.", +"id": "DicomStore", +"properties": { +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "User-supplied key-value pairs used to organize DICOM stores. 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 are optional, 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": "Identifier. Resource name of the DICOM store, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", +"type": "string" +}, +"notificationConfig": { +"$ref": "NotificationConfig", +"description": "Optional. Notification destination for new DICOM instances. Supplied by the client." +}, +"streamConfigs": { +"description": "Optional. A list of streaming configs used to configure the destination of streaming exports for every DICOM instance insertion in this DICOM store. After a new config is added to `stream_configs`, DICOM instance insertions are streamed to the new destination. When a config is removed from `stream_configs`, the server stops streaming to that destination. Each config must contain a unique destination.", +"items": { +"$ref": "GoogleCloudHealthcareV1DicomStreamConfig" +}, +"type": "array" +} +}, +"type": "object" +}, +"DicomStoreMetrics": { +"description": "DicomStoreMetrics contains metrics describing a DICOM store.", +"id": "DicomStoreMetrics", +"properties": { +"blobStorageSizeBytes": { +"description": "Total blob storage bytes for all instances in the store.", +"format": "int64", +"type": "string" +}, +"instanceCount": { +"description": "Number of instances in the store.", +"format": "int64", +"type": "string" +}, +"name": { +"description": "Resource name of the DICOM store, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", +"type": "string" +}, +"seriesCount": { +"description": "Number of series in the store.", +"format": "int64", +"type": "string" +}, +"structuredStorageSizeBytes": { +"description": "Total structured storage bytes for all instances in the store.", +"format": "int64", +"type": "string" +}, +"studyCount": { +"description": "Number of studies in the store.", +"format": "int64", +"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" +}, +"EncryptionSpec": { +"description": "Represents a customer-managed encryption key spec that can be applied to a resource.", +"id": "EncryptionSpec", +"properties": { +"kmsKeyName": { +"description": "Required. The resource name of customer-managed encryption key that is used to secure a resource and its sub-resources. Only the key in the same location as this Dataset is allowed to be used for encryption. Format is: `projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{key}`", +"type": "string" +} +}, +"type": "object" +}, +"Entity": { +"description": "The candidate entities that an entity mention could link to.", +"id": "Entity", +"properties": { +"entityId": { +"description": "entity_id is a first class field entity_id uniquely identifies this concept and its meta-vocabulary. For example, \"UMLS/C0000970\".", +"type": "string" +}, +"preferredTerm": { +"description": "preferred_term is the preferred term for this concept. For example, \"Acetaminophen\". For ad hoc entities formed by normalization, this is the most popular unnormalized string.", +"type": "string" +}, +"vocabularyCodes": { +"description": "Vocabulary codes are first-class fields and differentiated from the concept unique identifier (entity_id). vocabulary_codes contains the representation of this concept in particular vocabularies, such as ICD-10, SNOMED-CT and RxNORM. These are prefixed by the name of the vocabulary, followed by the unique code within that vocabulary. For example, \"RXNORM/A10334543\".", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"EntityMention": { +"description": "An entity mention in the document.", +"id": "EntityMention", +"properties": { +"certaintyAssessment": { +"$ref": "Feature", +"description": "The certainty assessment of the entity mention. Its value is one of: LIKELY, SOMEWHAT_LIKELY, UNCERTAIN, SOMEWHAT_UNLIKELY, UNLIKELY, CONDITIONAL" +}, +"confidence": { +"description": "The model's confidence in this entity mention annotation. A number between 0 and 1.", +"format": "double", +"type": "number" +}, +"linkedEntities": { +"description": "linked_entities are candidate ontological concepts that this entity mention may refer to. They are sorted by decreasing confidence.", +"items": { +"$ref": "LinkedEntity" +}, +"type": "array" +}, +"mentionId": { +"description": "mention_id uniquely identifies each entity mention in a single response.", +"type": "string" +}, +"subject": { +"$ref": "Feature", +"description": "The subject this entity mention relates to. Its value is one of: PATIENT, FAMILY_MEMBER, OTHER" +}, +"temporalAssessment": { +"$ref": "Feature", +"description": "How this entity mention relates to the subject temporally. Its value is one of: CURRENT, CLINICAL_HISTORY, FAMILY_HISTORY, UPCOMING, ALLERGY" +}, +"text": { +"$ref": "TextSpan", +"description": "text is the location of the entity mention in the document." +}, +"type": { +"description": "The semantic type of the entity: UNKNOWN_ENTITY_TYPE, ALONE, ANATOMICAL_STRUCTURE, ASSISTED_LIVING, BF_RESULT, BM_RESULT, BM_UNIT, BM_VALUE, BODY_FUNCTION, BODY_MEASUREMENT, COMPLIANT, DOESNOT_FOLLOWUP, FAMILY, FOLLOWSUP, LABORATORY_DATA, LAB_RESULT, LAB_UNIT, LAB_VALUE, MEDICAL_DEVICE, MEDICINE, MED_DOSE, MED_DURATION, MED_FORM, MED_FREQUENCY, MED_ROUTE, MED_STATUS, MED_STRENGTH, MED_TOTALDOSE, MED_UNIT, NON_COMPLIANT, OTHER_LIVINGSTATUS, PROBLEM, PROCEDURE, PROCEDURE_RESULT, PROC_METHOD, REASON_FOR_NONCOMPLIANCE, SEVERITY, SUBSTANCE_ABUSE, UNCLEAR_FOLLOWUP.", +"type": "string" +} +}, +"type": "object" +}, +"EntityMentionRelationship": { +"description": "Defines directed relationship from one entity mention to another.", +"id": "EntityMentionRelationship", +"properties": { +"confidence": { +"description": "The model's confidence in this annotation. A number between 0 and 1.", +"format": "double", +"type": "number" +}, +"objectId": { +"description": "object_id is the id of the object entity mention.", +"type": "string" +}, +"subjectId": { +"description": "subject_id is the id of the subject entity mention.", +"type": "string" +} +}, +"type": "object" +}, +"EvaluateUserConsentsRequest": { +"description": "Evaluate a user's Consents for all matching User data mappings. Note: User data mappings are indexed asynchronously, causing slight delays between the time mappings are created or updated and when they are included in EvaluateUserConsents results.", +"id": "EvaluateUserConsentsRequest", +"properties": { +"consentList": { +"$ref": "ConsentList", +"description": "Optional. Specific Consents to evaluate the access request against. These Consents must have the same `user_id` as the User data mappings being evalauted, must exist in the current `consent_store`, and must have a `state` of either `ACTIVE` or `DRAFT`. A maximum of 100 Consents can be provided here. If unspecified, all `ACTIVE` unexpired Consents in the current `consent_store` will be evaluated." +}, +"pageSize": { +"description": "Optional. Limit on the number of User data mappings to return in a single response. If not specified, 100 is used. May not be larger than 1000.", +"format": "int32", +"type": "integer" +}, +"pageToken": { +"description": "Optional. Token to retrieve the next page of results, or empty to get the first page.", +"type": "string" +}, +"requestAttributes": { +"additionalProperties": { +"type": "string" +}, +"description": "Required. The values of request attributes associated with this access request.", +"type": "object" +}, +"resourceAttributes": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. The values of resource attributes associated with the resources being requested. If no values are specified, then all resources are queried.", +"type": "object" +}, +"responseView": { +"description": "Optional. The view for EvaluateUserConsentsResponse. If unspecified, defaults to `BASIC` and returns `consented` as `TRUE` or `FALSE`.", +"enum": [ +"RESPONSE_VIEW_UNSPECIFIED", +"BASIC", +"FULL" +], +"enumDescriptions": [ +"No response view specified. The API will default to the BASIC view.", +"Only the `data_id` and `consented` fields are populated in the response.", +"All fields within the response are populated. When set to `FULL`, all `ACTIVE` Consents are evaluated even if a matching policy is found during evaluation." +], +"type": "string" +}, +"userId": { +"description": "Required. User ID to evaluate consents for.", +"type": "string" +} +}, +"type": "object" +}, +"EvaluateUserConsentsResponse": { +"id": "EvaluateUserConsentsResponse", +"properties": { +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list. This token is valid for 72 hours after it is created.", +"type": "string" +}, +"results": { +"description": "The consent evaluation result for each `data_id`.", +"items": { +"$ref": "Result" +}, +"type": "array" +} +}, +"type": "object" +}, +"ExplainDataAccessConsentInfo": { +"description": "The enforcing consent's metadata.", +"id": "ExplainDataAccessConsentInfo", +"properties": { +"cascadeOrigins": { +"description": "The compartment base resources that matched a cascading policy. Each resource has the following format: `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}/fhir/{resource_type}/{resource_id}`", +"items": { +"type": "string" +}, +"type": "array" +}, +"consentResource": { +"description": "The resource name of this consent resource, in the format: `projects/{project_id}/locations/{location}/datasets/{dataset_id}/fhirStores/{fhir_store_id}/fhir/Consent/{resource_id}`.", +"type": "string" +}, +"enforcementTime": { +"description": "Last enforcement timestamp of this consent resource.", +"format": "google-datetime", +"type": "string" +}, +"matchingAccessorScopes": { +"description": "A list of all the matching accessor scopes of this consent policy that enforced ExplainDataAccessConsentScope.accessor_scope.", +"items": { +"$ref": "ConsentAccessorScope" +}, +"type": "array" +}, +"patientConsentOwner": { +"description": "The patient owning the consent (only applicable for patient consents), in the format: `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}/fhir/Patient/{patient_id}`", +"type": "string" +}, +"type": { +"description": "The policy type of consent resource (e.g. PATIENT, ADMIN).", +"enum": [ +"CONSENT_POLICY_TYPE_UNSPECIFIED", +"CONSENT_POLICY_TYPE_PATIENT", +"CONSENT_POLICY_TYPE_ADMIN" +], +"enumDescriptions": [ +"Unspecified policy type.", +"Consent represent a patient consent.", +"Consent represent an admin consent." +], +"type": "string" +}, +"variants": { +"description": "The consent's variant combinations. A single consent may have multiple variants.", +"items": { +"enum": [ +"CONSENT_VARIANT_UNSPECIFIED", +"CONSENT_VARIANT_STANDARD", +"CONSENT_VARIANT_CASCADE" +], +"enumDescriptions": [ +"Consent variant unspecified.", +"Consent is a standard patient or admin consent.", +"Consent is a cascading consent." +], +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ExplainDataAccessConsentScope": { +"description": "A single consent scope that provides info on who has access to the requested resource scope for a particular purpose and environment, enforced by which consent.", +"id": "ExplainDataAccessConsentScope", +"properties": { +"accessorScope": { +"$ref": "ConsentAccessorScope", +"description": "The accessor scope that describes who can access, for what purpose, and in which environment." +}, +"decision": { +"description": "Whether the current consent scope is permitted or denied access on the requested resource.", +"enum": [ +"CONSENT_DECISION_TYPE_UNSPECIFIED", +"CONSENT_DECISION_TYPE_PERMIT", +"CONSENT_DECISION_TYPE_DENY" +], +"enumDescriptions": [ +"Unspecified consent decision type.", +"Consent permitted access.", +"Consent denied access." +], +"type": "string" +}, +"enforcingConsents": { +"description": "Metadata of the consent resources that enforce the consent scope's access.", +"items": { +"$ref": "ExplainDataAccessConsentInfo" +}, +"type": "array" +}, +"exceptions": { +"description": "Other consent scopes that created exceptions within this scope.", +"items": { +"$ref": "ExplainDataAccessConsentScope" +}, +"type": "array" +} +}, +"type": "object" +}, +"ExplainDataAccessResponse": { +"description": "List of consent scopes that are applicable to the explained access on a given resource.", +"id": "ExplainDataAccessResponse", +"properties": { +"consentScopes": { +"description": "List of applicable consent scopes. Sorted in order of actor such that scopes belonging to the same actor will be adjacent to each other in the list.", +"items": { +"$ref": "ExplainDataAccessConsentScope" +}, +"type": "array" +}, +"warning": { +"description": "Warnings associated with this response. It inform user with exceeded scope limit errors.", +"type": "string" +} +}, +"type": "object" +}, +"ExportDicomDataRequest": { +"description": "Exports data from the specified DICOM store. If a given resource, such as a DICOM object with the same SOPInstance UID, already exists in the output, it is overwritten with the version in the source dataset. Exported DICOM data persists when the DICOM store from which it was exported is deleted.", +"id": "ExportDicomDataRequest", +"properties": { +"bigqueryDestination": { +"$ref": "GoogleCloudHealthcareV1DicomBigQueryDestination", +"description": "The BigQuery output destination. You can only export to a BigQuery dataset that's in the same project as the DICOM store you're exporting from. The Cloud Healthcare Service Agent requires two IAM roles on the BigQuery location: `roles/bigquery.dataEditor` and `roles/bigquery.jobUser`." +}, +"gcsDestination": { +"$ref": "GoogleCloudHealthcareV1DicomGcsDestination", +"description": "The Cloud Storage output destination. The Cloud Healthcare Service Agent requires the `roles/storage.objectAdmin` Cloud IAM roles on the Cloud Storage location." +} +}, +"type": "object" +}, +"ExportDicomDataResponse": { +"description": "Returns additional information in regards to a completed DICOM store export.", +"id": "ExportDicomDataResponse", +"properties": {}, +"type": "object" +}, +"ExportMessagesRequest": { +"description": "Request to schedule an export.", +"id": "ExportMessagesRequest", +"properties": { +"endTime": { +"description": "The end of the range in `send_time` (MSH.7, https://www.hl7.org/documentcenter/public_temp_2E58C1F9-1C23-BA17-0C6126475344DA9D/wg/conf/HL7MSH.htm) to process. If not specified, the time when the export is scheduled is used. This value has to come after the `start_time` defined below. Only messages whose `send_time` lies in the range `start_time` (inclusive) to `end_time` (exclusive) are exported.", +"format": "google-datetime", +"type": "string" +}, +"filter": { +"description": "Restricts messages exported to those matching a filter, only applicable to PubsubDestination and GcsDestination. The following syntax is available: * A string field value can be written as text inside quotation marks, for example `\"query text\"`. The only valid relational operation for text fields is equality (`=`), where text is searched within the field, rather than having the field be equal to the text. For example, `\"Comment = great\"` returns messages with `great` in the comment field. * A number field value can be written as an integer, a decimal, or an exponential. The valid relational operators for number fields are the equality operator (`=`), along with the less than/greater than operators (`<`, `<=`, `>`, `>=`). Note that there is no inequality (`!=`) operator. You can prepend the `NOT` operator to an expression to negate it. * A date field value must be written in the `yyyy-mm-dd` format. Fields with date and time use the RFC3339 time format. Leading zeros are required for one-digit months and days. The valid relational operators for date fields are the equality operator (`=`) , along with the less than/greater than operators (`<`, `<=`, `>`, `>=`). Note that there is no inequality (`!=`) operator. You can prepend the `NOT` operator to an expression to negate it. * Multiple field query expressions can be combined in one query by adding `AND` or `OR` operators between the expressions. If a boolean operator appears within a quoted string, it is not treated as special, and is just another part of the character string to be matched. You can prepend the `NOT` operator to an expression to negate it. The following fields and functions are available for filtering: * `message_type`, from the MSH-9.1 field. For example, `NOT message_type = \"ADT\"`. * `send_date` or `sendDate`, the `yyyy-mm-dd` date the message was sent in the dataset's time_zone, from the MSH-7 segment. For example, `send_date < \"2017-01-02\"`. * `send_time`, the timestamp when the message was sent, using the RFC3339 time format for comparisons, from the MSH-7 segment. For example, `send_time < \"2017-01-02T00:00:00-05:00\"`. * `create_time`, the timestamp when the message was created in the HL7v2 store. Use the RFC3339 time format for comparisons. For example, `create_time < \"2017-01-02T00:00:00-05:00\"`. * `send_facility`, the care center that the message came from, from the MSH-4 segment. For example, `send_facility = \"ABC\"`. Note: The filter will be applied to every message in the HL7v2 store whose `send_time` lies in the range defined by the `start_time` and the `end_time`. Even if the filter only matches a small set of messages, the export operation can still take a long time to finish when a lot of messages are between the specified `start_time` and `end_time` range.", +"type": "string" +}, +"gcsDestination": { +"$ref": "GcsDestination", +"description": "Export to a Cloud Storage destination." +}, +"pubsubDestination": { +"$ref": "PubsubDestination", +"description": "Export messages to a Pub/Sub topic." +}, +"startTime": { +"description": "The start of the range in `send_time` (MSH.7, https://www.hl7.org/documentcenter/public_temp_2E58C1F9-1C23-BA17-0C6126475344DA9D/wg/conf/HL7MSH.htm) to process. If not specified, the UNIX epoch (1970-01-01T00:00:00Z) is used. This value has to come before the `end_time` defined below. Only messages whose `send_time` lies in the range `start_time` (inclusive) to `end_time` (exclusive) are exported.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"ExportMessagesResponse": { +"description": "Final response for the export operation. This structure is included in the response to describe the detailed outcome.", +"id": "ExportMessagesResponse", +"properties": {}, +"type": "object" +}, +"ExportResourcesRequest": { +"description": "Request to export resources.", +"id": "ExportResourcesRequest", +"properties": { +"_since": { +"description": "If provided, only resources updated after this time are exported. The time uses the format YYYY-MM-DDThh:mm:ss.sss+zz:zz. For example, `2015-02-07T13:28:17.239+02:00` or `2017-01-01T00:00:00Z`. The time must be specified to the second and include a time zone.", +"type": "string" +}, +"_type": { +"description": "String of comma-delimited FHIR resource types. If provided, only resources of the specified resource type(s) are exported.", +"type": "string" +}, +"bigqueryDestination": { +"$ref": "GoogleCloudHealthcareV1FhirBigQueryDestination", +"description": "The BigQuery output destination. The Cloud Healthcare Service Agent requires two IAM roles on the BigQuery location: `roles/bigquery.dataEditor` and `roles/bigquery.jobUser`. The output is one BigQuery table per resource type. Unlike when setting `BigQueryDestination` for `StreamConfig`, `ExportResources` does not create BigQuery views." +}, +"gcsDestination": { +"$ref": "GoogleCloudHealthcareV1FhirGcsDestination", +"description": "The Cloud Storage output destination. The Healthcare Service Agent account requires the `roles/storage.objectAdmin` role on the Cloud Storage location. The exported outputs are organized by FHIR resource types. The server creates one object per resource type. Each object contains newline delimited JSON, and each line is a FHIR resource." +} +}, +"type": "object" +}, +"ExportResourcesResponse": { +"description": "Response when all resources export successfully. This structure is included in the response to describe the detailed outcome after the operation finishes successfully.", +"id": "ExportResourcesResponse", +"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" +}, +"Feature": { +"description": "A feature of an entity mention.", +"id": "Feature", +"properties": { +"confidence": { +"description": "The model's confidence in this feature annotation. A number between 0 and 1.", +"format": "double", +"type": "number" +}, +"value": { +"description": "The value of this feature annotation. Its range depends on the type of the feature.", +"type": "string" +} +}, +"type": "object" +}, +"FhirConfig": { +"description": "Specifies how to handle de-identification of a FHIR store.", +"id": "FhirConfig", +"properties": { +"defaultKeepExtensions": { +"description": "Optional. The behaviour for handling FHIR extensions that aren't otherwise specified for de-identification. If true, all extensions are preserved during de-identification by default. If false or unspecified, all extensions are removed during de-identification by default.", +"type": "boolean" +}, +"fieldMetadataList": { +"description": "Optional. Specifies FHIR paths to match and how to transform them. Any field that is not matched by a FieldMetadata is passed through to the output dataset unmodified. All extensions will be processed according to `default_keep_extensions`.", +"items": { +"$ref": "FieldMetadata" +}, +"type": "array" +} +}, +"type": "object" +}, +"FhirFilter": { +"description": "Filter configuration.", +"id": "FhirFilter", +"properties": { +"resources": { +"$ref": "Resources", +"description": "List of resources to include in the output. If this list is empty or not specified, all resources are included in the output." +} +}, +"type": "object" +}, +"FhirNotificationConfig": { +"description": "Contains the configuration for FHIR notifications.", +"id": "FhirNotificationConfig", +"properties": { +"pubsubTopic": { +"description": "Optional. The [Pub/Sub](https://cloud.google.com/pubsub/docs/) topic that notifications of changes are published on. Supplied by the client. The notification is a `PubsubMessage` with the following fields: * `PubsubMessage.Data` contains the resource name. * `PubsubMessage.MessageId` is the ID of this notification. It is guaranteed to be unique within the topic. * `PubsubMessage.PublishTime` is the time when the message was published. Note that notifications are only sent if the topic is non-empty. [Topic names](https://cloud.google.com/pubsub/docs/overview#names) must be scoped to a project. The Cloud Healthcare API service account, service-@gcp-sa-healthcare.iam.gserviceaccount.com, must have publisher permissions on the given Pub/Sub topic. Not having adequate permissions causes the calls that send notifications to fail (https://cloud.google.com/healthcare-api/docs/permissions-healthcare-api-gcp-products#dicom_fhir_and_hl7v2_store_cloud_pubsub_permissions). If a notification can't be published to Pub/Sub, errors are logged to Cloud Logging. For more information, see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare-api/docs/how-tos/logging).", +"type": "string" +}, +"sendFullResource": { +"description": "Optional. Whether to send full FHIR resource to this Pub/Sub topic. The default value is false.", +"type": "boolean" +}, +"sendPreviousResourceOnDelete": { +"description": "Optional. Whether to send full FHIR resource to this Pub/Sub topic for deleting FHIR resource. The default value is false. Note that setting this to true does not guarantee that all previous resources will be sent in the format of full FHIR resource. When a resource change is too large or during heavy traffic, only the resource name will be sent. Clients should always check the \"payloadType\" label from a Pub/Sub message to determine whether it needs to fetch the full previous resource as a separate operation.", +"type": "boolean" +} +}, +"type": "object" +}, +"FhirStore": { +"description": "Represents a FHIR store.", +"id": "FhirStore", +"properties": { +"complexDataTypeReferenceParsing": { +"description": "Optional. Enable parsing of references within complex FHIR data types such as Extensions. If this value is set to ENABLED, then features like referential integrity and Bundle reference rewriting apply to all references. If this flag has not been specified the behavior of the FHIR store will not change, references in complex data types will not be parsed. New stores will have this value set to ENABLED after a notification period. Warning: turning on this flag causes processing existing resources to fail if they contain references to non-existent resources.", +"enum": [ +"COMPLEX_DATA_TYPE_REFERENCE_PARSING_UNSPECIFIED", +"DISABLED", +"ENABLED" +], +"enumDescriptions": [ +"No parsing behavior specified. This is the same as DISABLED for backwards compatibility.", +"References in complex data types are ignored.", +"References in complex data types are parsed." +], +"type": "string" +}, +"consentConfig": { +"$ref": "ConsentConfig", +"description": "Optional. Specifies whether this store has consent enforcement. Not available for DSTU2 FHIR version due to absence of Consent resources." +}, +"defaultSearchHandlingStrict": { +"description": "Optional. If true, overrides the default search behavior for this FHIR store to `handling=strict` which returns an error for unrecognized search parameters. If false, uses the FHIR specification default `handling=lenient` which ignores unrecognized search parameters. The handling can always be changed from the default on an individual API call by setting the HTTP header `Prefer: handling=strict` or `Prefer: handling=lenient`. Defaults to false.", +"type": "boolean" +}, +"disableReferentialIntegrity": { +"description": "Immutable. Whether to disable referential integrity in this FHIR store. This field is immutable after FHIR store creation. The default value is false, meaning that the API enforces referential integrity and fails the requests that result in inconsistent state in the FHIR store. When this field is set to true, the API skips referential integrity checks. Consequently, operations that rely on references, such as GetPatientEverything, do not return all the results if broken references exist.", +"type": "boolean" +}, +"disableResourceVersioning": { +"description": "Immutable. Whether to disable resource versioning for this FHIR store. This field can not be changed after the creation of FHIR store. If set to false, all write operations cause historical versions to be recorded automatically. The historical versions can be fetched through the history APIs, but cannot be updated. If set to true, no historical versions are kept. The server sends errors for attempts to read the historical versions. Defaults to false.", +"type": "boolean" +}, +"enableUpdateCreate": { +"description": "Optional. Whether this FHIR store has the [updateCreate capability](https://www.hl7.org/fhir/capabilitystatement-definitions.html#CapabilityStatement.rest.resource.updateCreate). This determines if the client can use an Update operation to create a new resource with a client-specified ID. If false, all IDs are server-assigned through the Create operation and attempts to update a non-existent resource return errors. It is strongly advised not to include or encode any sensitive data such as patient identifiers in client-specified resource IDs. Those IDs are part of the FHIR resource path recorded in Cloud audit logs and Pub/Sub notifications. Those IDs can also be contained in reference fields within other resources. Defaults to false.", +"type": "boolean" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "User-supplied key-value pairs used to organize FHIR stores. 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 are optional, 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": "Output only. Identifier. Resource name of the FHIR store, of the form `projects/{project_id}/locations/{location}/datasets/{dataset_id}/fhirStores/{fhir_store_id}`.", +"type": "string" +}, +"notificationConfig": { +"$ref": "NotificationConfig", +"deprecated": true, +"description": "Deprecated. Use `notification_configs` instead. If non-empty, publish all resource modifications of this FHIR store to this destination. The Pub/Sub message attributes contain a map with a string describing the action that has triggered the notification. For example, \"action\":\"CreateResource\"." +}, +"notificationConfigs": { +"description": "Optional. Specifies where and whether to send notifications upon changes to a FHIR store.", +"items": { +"$ref": "FhirNotificationConfig" +}, +"type": "array" +}, +"streamConfigs": { +"description": "Optional. A list of streaming configs that configure the destinations of streaming export for every resource mutation in this FHIR store. Each store is allowed to have up to 10 streaming configs. After a new config is added, the next resource mutation is streamed to the new location in addition to the existing ones. When a location is removed from the list, the server stops streaming to that location. Before adding a new config, you must add the required [`bigquery.dataEditor`](https://cloud.google.com/bigquery/docs/access-control#bigquery.dataEditor) role to your project's **Cloud Healthcare Service Agent** [service account](https://cloud.google.com/iam/docs/service-accounts). Some lag (typically on the order of dozens of seconds) is expected before the results show up in the streaming destination.", +"items": { +"$ref": "StreamConfig" +}, +"type": "array" +}, +"validationConfig": { +"$ref": "ValidationConfig", +"description": "Optional. Configuration for how to validate incoming FHIR resources against configured profiles." +}, +"version": { +"description": "Required. Immutable. The FHIR specification version that this FHIR store supports natively. This field is immutable after store creation. Requests are rejected if they contain FHIR resources of a different version. Version is required for every FHIR store.", +"enum": [ +"VERSION_UNSPECIFIED", +"DSTU2", +"STU3", +"R4" +], +"enumDescriptions": [ +"Users must specify a version on store creation or an error is returned.", +"Draft Standard for Trial Use, [Release 2](https://www.hl7.org/fhir/DSTU2)", +"Standard for Trial Use, [Release 3](https://www.hl7.org/fhir/STU3)", +"[Release 4](https://www.hl7.org/fhir/R4)" +], +"type": "string" +} +}, +"type": "object" +}, +"FhirStoreMetric": { +"description": "Count of resources and total storage size by type for a given FHIR store.", +"id": "FhirStoreMetric", +"properties": { +"count": { +"description": "The total count of FHIR resources in the store of this resource type.", +"format": "int64", +"type": "string" +}, +"resourceType": { +"description": "The FHIR resource type this metric applies to.", +"type": "string" +}, +"structuredStorageSizeBytes": { +"description": "The total amount of structured storage used by FHIR resources of this resource type in the store.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"FhirStoreMetrics": { +"description": "List of metrics for a given FHIR store.", +"id": "FhirStoreMetrics", +"properties": { +"metrics": { +"description": "List of FhirStoreMetric by resource type.", +"items": { +"$ref": "FhirStoreMetric" +}, +"type": "array" +}, +"name": { +"description": "The resource name of the FHIR store to get metrics for, in the format `projects/{project_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}`.", +"type": "string" +} +}, +"type": "object" +}, +"Field": { +"description": "A (sub) field of a type.", +"id": "Field", +"properties": { +"maxOccurs": { +"description": "The maximum number of times this field can be repeated. 0 or -1 means unbounded.", +"format": "int32", +"type": "integer" +}, +"minOccurs": { +"description": "The minimum number of times this field must be present/repeated.", +"format": "int32", +"type": "integer" +}, +"name": { +"description": "The name of the field. For example, \"PID-1\" or just \"1\".", +"type": "string" +}, +"table": { +"description": "The HL7v2 table this field refers to. For example, PID-15 (Patient's Primary Language) usually refers to table \"0296\".", +"type": "string" +}, +"type": { +"description": "The type of this field. A Type with this name must be defined in an Hl7TypesConfig.", +"type": "string" +} +}, +"type": "object" +}, +"FieldMetadata": { +"description": "Specifies FHIR paths to match, and how to handle de-identification of matching fields.", +"id": "FieldMetadata", +"properties": { +"action": { +"description": "Optional. Deidentify action for one field.", +"enum": [ +"ACTION_UNSPECIFIED", +"TRANSFORM", +"INSPECT_AND_TRANSFORM", +"DO_NOT_TRANSFORM" +], +"enumDescriptions": [ +"No action specified. Defaults to DO_NOT_TRANSFORM.", +"Transform the entire field.", +"Inspect and transform any found PHI.", +"Do not transform." +], +"type": "string" +}, +"paths": { +"description": "Optional. List of paths to FHIR fields to be redacted. Each path is a period-separated list where each component is either a field name or FHIR type name, for example: Patient, HumanName. For \"choice\" types (those defined in the FHIR spec with the form: field[x]) we use two separate components. For example, \"deceasedAge.unit\" is matched by \"Deceased.Age.unit\". Supported types are: AdministrativeGenderCode, Base64Binary, Boolean, Code, Date, DateTime, Decimal, HumanName, Id, Instant, Integer, LanguageCode, Markdown, Oid, PositiveInt, String, UnsignedInt, Uri, Uuid, Xhtml.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GcsDestination": { +"description": "The Cloud Storage output destination. The Cloud Healthcare Service Agent requires the `roles/storage.objectAdmin` Cloud IAM roles on the Cloud Storage location.", +"id": "GcsDestination", +"properties": { +"contentStructure": { +"description": "The format of the exported HL7v2 message files.", +"enum": [ +"CONTENT_STRUCTURE_UNSPECIFIED", +"MESSAGE_JSON" +], +"enumDescriptions": [ +"If the content structure is not specified, the default value `MESSAGE_JSON` will be used.", +"Messages are printed using the JSON format returned from the `GetMessage` API. Messages are delimited with newlines." +], +"type": "string" +}, +"messageView": { +"description": "Specifies the parts of the Message resource to include in the export. If not specified, FULL is used.", +"enum": [ +"MESSAGE_VIEW_UNSPECIFIED", +"RAW_ONLY", +"PARSED_ONLY", +"FULL", +"SCHEMATIZED_ONLY", +"BASIC" +], +"enumDescriptions": [ +"Not specified, equivalent to FULL.", +"Server responses include all the message fields except parsed_data field, and schematized_data fields.", +"Server responses include all the message fields except data field, and schematized_data fields.", +"Server responses include all the message fields.", +"Server responses include all the message fields except data and parsed_data fields.", +"Server responses include only the name field." +], +"type": "string" +}, +"uriPrefix": { +"description": "URI of an existing Cloud Storage directory where the server writes result files, in the format `gs://{bucket-id}/{path/to/destination/dir}`. If there is no trailing slash, the service appends one when composing the object path.", +"type": "string" +} +}, +"type": "object" +}, +"GcsSource": { +"description": "Specifies the configuration for importing data from Cloud Storage.", +"id": "GcsSource", +"properties": { +"uri": { +"description": "Points to a Cloud Storage URI containing file(s) to import. The URI must be in the following format: `gs://{bucket_id}/{object_id}`. The URI can include wildcards in `object_id` and thus identify multiple files. Supported wildcards: * `*` to match 0 or more non-separator characters * `**` to match 0 or more characters (including separators). Must be used at the end of a path and with no other wildcards in the path. Can also be used with a file extension (such as .ndjson), which imports all files with the extension in the specified directory and its sub-directories. For example, `gs://my-bucket/my-directory/**.ndjson` imports all files with `.ndjson` extensions in `my-directory/` and its sub-directories. * `?` to match 1 character Files matching the wildcard are expected to contain content only, no metadata.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudHealthcareV1ConsentGcsDestination": { +"description": "The Cloud Storage location for export.", +"id": "GoogleCloudHealthcareV1ConsentGcsDestination", +"properties": { +"uriPrefix": { +"description": "URI for a Cloud Storage directory where the server writes result files, in the format `gs://{bucket-id}/{path/to/destination/dir}`. If there is no trailing slash, the service appends one when composing the object path. The user is responsible for creating the Cloud Storage bucket and directory referenced in `uri_prefix`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudHealthcareV1ConsentPolicy": { +"description": "Represents a user's consent in terms of the resources that can be accessed and under what conditions.", +"id": "GoogleCloudHealthcareV1ConsentPolicy", +"properties": { +"authorizationRule": { +"$ref": "Expr", +"description": "Required. The request conditions to meet to grant access. In addition to any supported comparison operators, authorization rules may have `IN` operator as well as at most 10 logical operators that are limited to `AND` (`&&`), `OR` (`||`)." +}, +"resourceAttributes": { +"description": "The resources that this policy applies to. A resource is a match if it matches all the attributes listed here. If empty, this policy applies to all User data mappings for the given user.", +"items": { +"$ref": "Attribute" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudHealthcareV1DeidentifyDeidentifyDicomStoreSummary": { +"description": "Contains a summary of the DeidentifyDicomStore operation.", +"id": "GoogleCloudHealthcareV1DeidentifyDeidentifyDicomStoreSummary", +"properties": {}, +"type": "object" +}, +"GoogleCloudHealthcareV1DeidentifyDeidentifyFhirStoreSummary": { +"description": "Contains a summary of the DeidentifyFhirStore operation.", +"id": "GoogleCloudHealthcareV1DeidentifyDeidentifyFhirStoreSummary", +"properties": {}, +"type": "object" +}, +"GoogleCloudHealthcareV1DicomBigQueryDestination": { +"description": "The BigQuery table where the server writes the output.", +"id": "GoogleCloudHealthcareV1DicomBigQueryDestination", +"properties": { +"force": { +"description": "Optional. Use `write_disposition` instead. If `write_disposition` is specified, this parameter is ignored. force=false is equivalent to write_disposition=WRITE_EMPTY and force=true is equivalent to write_disposition=WRITE_TRUNCATE.", +"type": "boolean" +}, +"tableUri": { +"description": "Optional. BigQuery URI to a table, up to 2000 characters long, in the format `bq://projectId.bqDatasetId.tableId`", +"type": "string" +}, +"writeDisposition": { +"description": "Optional. Determines whether the existing table in the destination is to be overwritten or appended to. If a write_disposition is specified, the `force` parameter is ignored.", +"enum": [ +"WRITE_DISPOSITION_UNSPECIFIED", +"WRITE_EMPTY", +"WRITE_TRUNCATE", +"WRITE_APPEND" +], +"enumDescriptions": [ +"Default behavior is the same as WRITE_EMPTY.", +"Only export data if the destination table is empty.", +"Erase all existing data in the destination table before writing the instances.", +"Append data to the destination table." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudHealthcareV1DicomGcsDestination": { +"description": "The Cloud Storage location where the server writes the output and the export configuration.", +"id": "GoogleCloudHealthcareV1DicomGcsDestination", +"properties": { +"mimeType": { +"description": "MIME types supported by DICOM spec. Each file is written in the following format: `.../{study_id}/{series_id}/{instance_id}[/{frame_number}].{extension}` The frame_number component exists only for multi-frame instances. Supported MIME types are consistent with supported formats in DICOMweb: https://cloud.google.com/healthcare/docs/dicom#retrieve_transaction. Specifically, the following are supported: - application/dicom; transfer-syntax=1.2.840.10008.1.2.1 (uncompressed DICOM) - application/dicom; transfer-syntax=1.2.840.10008.1.2.4.50 (DICOM with embedded JPEG Baseline) - application/dicom; transfer-syntax=1.2.840.10008.1.2.4.90 (DICOM with embedded JPEG 2000 Lossless Only) - application/dicom; transfer-syntax=1.2.840.10008.1.2.4.91 (DICOM with embedded JPEG 2000) - application/dicom; transfer-syntax=* (DICOM with no transcoding) - application/octet-stream; transfer-syntax=1.2.840.10008.1.2.1 (raw uncompressed PixelData) - application/octet-stream; transfer-syntax=* (raw PixelData in whatever format it was uploaded in) - image/jpeg; transfer-syntax=1.2.840.10008.1.2.4.50 (Consumer JPEG) - image/png The following extensions are used for output files: - application/dicom -> .dcm - image/jpeg -> .jpg - image/png -> .png - application/octet-stream -> no extension If unspecified, the instances are exported in the original DICOM format they were uploaded in.", +"type": "string" +}, +"uriPrefix": { +"description": "The Cloud Storage destination to export to. URI for a Cloud Storage directory where the server writes the result files, in the format `gs://{bucket-id}/{path/to/destination/dir}`). If there is no trailing slash, the service appends one when composing the object path. The user is responsible for creating the Cloud Storage bucket referenced in `uri_prefix`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudHealthcareV1DicomGcsSource": { +"description": "Specifies the configuration for importing data from Cloud Storage.", +"id": "GoogleCloudHealthcareV1DicomGcsSource", +"properties": { +"uri": { +"description": "Points to a Cloud Storage URI containing file(s) with content only. The URI must be in the following format: `gs://{bucket_id}/{object_id}`. The URI can include wildcards in `object_id` and thus identify multiple files. Supported wildcards: * '*' to match 0 or more non-separator characters * '**' to match 0 or more characters (including separators). Must be used at the end of a path and with no other wildcards in the path. Can also be used with a file extension (such as .dcm), which imports all files with the extension in the specified directory and its sub-directories. For example, `gs://my-bucket/my-directory/**.dcm` imports all files with .dcm extensions in `my-directory/` and its sub-directories. * '?' to match 1 character. All other URI formats are invalid. Files matching the wildcard are expected to contain content only, no metadata.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudHealthcareV1DicomStreamConfig": { +"description": "StreamConfig specifies configuration for a streaming DICOM export.", +"id": "GoogleCloudHealthcareV1DicomStreamConfig", +"properties": { +"bigqueryDestination": { +"$ref": "GoogleCloudHealthcareV1DicomBigQueryDestination", +"description": "Results are appended to this table. The server creates a new table in the given BigQuery dataset if the specified table does not exist. To enable the Cloud Healthcare API to write to your BigQuery table, you must give the Cloud Healthcare API service account the bigquery.dataEditor role. The service account is: `service-{PROJECT_NUMBER}@gcp-sa-healthcare.iam.gserviceaccount.com`. The PROJECT_NUMBER identifies the project that the DICOM store resides in. To get the project number, go to the Cloud Console Dashboard. It is recommended to not have a custom schema in the destination table which could conflict with the schema created by the Cloud Healthcare API. Instance deletions are not applied to the destination table. The destination's table schema will be automatically updated in case a new instance's data is incompatible with the current schema. The schema should not be updated manually as this can cause incompatibilies that cannot be resolved automatically. One resolution in this case is to delete the incompatible table and let the server recreate one, though the newly created table only contains data after the table recreation. BigQuery imposes a 1 MB limit on streaming insert row size, therefore any instance that generates more than 1 MB of BigQuery data will not be streamed. If an instance cannot be streamed to BigQuery, errors will be logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging))." +} +}, +"type": "object" +}, +"GoogleCloudHealthcareV1FhirBigQueryDestination": { +"description": "The configuration for exporting to BigQuery.", +"id": "GoogleCloudHealthcareV1FhirBigQueryDestination", +"properties": { +"datasetUri": { +"description": "Optional. BigQuery URI to an existing dataset, up to 2000 characters long, in the format `bq://projectId.bqDatasetId`.", +"type": "string" +}, +"force": { +"description": "Optional. The default value is false. If this flag is `TRUE`, all tables are deleted from the dataset before the new exported tables are written. If the flag is not set and the destination dataset contains tables, the export call returns an error. If `write_disposition` is specified, this parameter is ignored. force=false is equivalent to write_disposition=WRITE_EMPTY and force=true is equivalent to write_disposition=WRITE_TRUNCATE.", +"type": "boolean" +}, +"schemaConfig": { +"$ref": "SchemaConfig", +"description": "Optional. The configuration for the exported BigQuery schema." +}, +"writeDisposition": { +"description": "Optional. Determines if existing data in the destination dataset is overwritten, appended to, or not written if the tables contain data. If a write_disposition is specified, the `force` parameter is ignored.", +"enum": [ +"WRITE_DISPOSITION_UNSPECIFIED", +"WRITE_EMPTY", +"WRITE_TRUNCATE", +"WRITE_APPEND" +], +"enumDescriptions": [ +"Default behavior is the same as WRITE_EMPTY.", +"Only export data if the destination tables are empty.", +"Erase all existing data in the destination tables before writing the FHIR resources.", +"Append data to the destination tables." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudHealthcareV1FhirGcsDestination": { +"description": "The configuration for exporting to Cloud Storage.", +"id": "GoogleCloudHealthcareV1FhirGcsDestination", +"properties": { +"uriPrefix": { +"description": "URI for a Cloud Storage directory where result files should be written, in the format of `gs://{bucket-id}/{path/to/destination/dir}`. If there is no trailing slash, the service appends one when composing the object path. The user is responsible for creating the Cloud Storage bucket referenced in `uri_prefix`.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudHealthcareV1FhirGcsSource": { +"description": "Specifies the configuration for importing data from Cloud Storage.", +"id": "GoogleCloudHealthcareV1FhirGcsSource", +"properties": { +"uri": { +"description": "Points to a Cloud Storage URI containing file(s) to import. The URI must be in the following format: `gs://{bucket_id}/{object_id}`. The URI can include wildcards in `object_id` and thus identify multiple files. Supported wildcards: * `*` to match 0 or more non-separator characters * `**` to match 0 or more characters (including separators). Must be used at the end of a path and with no other wildcards in the path. Can also be used with a file extension (such as .ndjson), which imports all files with the extension in the specified directory and its sub-directories. For example, `gs://my-bucket/my-directory/**.ndjson` imports all files with `.ndjson` extensions in `my-directory/` and its sub-directories. * `?` to match 1 character Files matching the wildcard are expected to contain content only, no metadata.", +"type": "string" +} +}, +"type": "object" +}, +"GroupOrSegment": { +"description": "Construct representing a logical group or a segment.", +"id": "GroupOrSegment", +"properties": { +"group": { +"$ref": "SchemaGroup" +}, +"segment": { +"$ref": "SchemaSegment" +} +}, +"type": "object" +}, +"Hl7SchemaConfig": { +"description": "Root config message for HL7v2 schema. This contains a schema structure of groups and segments, and filters that determine which messages to apply the schema structure to.", +"id": "Hl7SchemaConfig", +"properties": { +"messageSchemaConfigs": { +"additionalProperties": { +"$ref": "SchemaGroup" +}, +"description": "Map from each HL7v2 message type and trigger event pair, such as ADT_A04, to its schema configuration root group.", +"type": "object" +}, +"version": { +"description": "Each VersionSource is tested and only if they all match is the schema used for the message.", +"items": { +"$ref": "VersionSource" +}, +"type": "array" +} +}, +"type": "object" +}, +"Hl7TypesConfig": { +"description": "Root config for HL7v2 datatype definitions for a specific HL7v2 version.", +"id": "Hl7TypesConfig", +"properties": { +"type": { +"description": "The HL7v2 type definitions.", +"items": { +"$ref": "Type" +}, +"type": "array" +}, +"version": { +"description": "The version selectors that this config applies to. A message must match ALL version sources to apply.", +"items": { +"$ref": "VersionSource" +}, +"type": "array" +} +}, +"type": "object" +}, +"Hl7V2NotificationConfig": { +"description": "Specifies where and whether to send notifications upon changes to a data store.", +"id": "Hl7V2NotificationConfig", +"properties": { +"filter": { +"description": "Optional. Restricts notifications sent for messages matching a filter. If this is empty, all messages are matched. The following syntax is available: * A string field value can be written as text inside quotation marks, for example `\"query text\"`. The only valid relational operation for text fields is equality (`=`), where text is searched within the field, rather than having the field be equal to the text. For example, `\"Comment = great\"` returns messages with `great` in the comment field. * A number field value can be written as an integer, a decimal, or an exponential. The valid relational operators for number fields are the equality operator (`=`), along with the less than/greater than operators (`<`, `<=`, `>`, `>=`). Note that there is no inequality (`!=`) operator. You can prepend the `NOT` operator to an expression to negate it. * A date field value must be written in `yyyy-mm-dd` form. Fields with date and time use the RFC3339 time format. Leading zeros are required for one-digit months and days. The valid relational operators for date fields are the equality operator (`=`) , along with the less than/greater than operators (`<`, `<=`, `>`, `>=`). Note that there is no inequality (`!=`) operator. You can prepend the `NOT` operator to an expression to negate it. * Multiple field query expressions can be combined in one query by adding `AND` or `OR` operators between the expressions. If a boolean operator appears within a quoted string, it is not treated as special, it's just another part of the character string to be matched. You can prepend the `NOT` operator to an expression to negate it. The following fields and functions are available for filtering: * `message_type`, from the MSH-9.1 field. For example, `NOT message_type = \"ADT\"`. * `send_date` or `sendDate`, the YYYY-MM-DD date the message was sent in the dataset's time_zone, from the MSH-7 segment. For example, `send_date < \"2017-01-02\"`. * `send_time`, the timestamp when the message was sent, using the RFC3339 time format for comparisons, from the MSH-7 segment. For example, `send_time < \"2017-01-02T00:00:00-05:00\"`. * `create_time`, the timestamp when the message was created in the HL7v2 store. Use the RFC3339 time format for comparisons. For example, `create_time < \"2017-01-02T00:00:00-05:00\"`. * `send_facility`, the care center that the message came from, from the MSH-4 segment. For example, `send_facility = \"ABC\"`. * `PatientId(value, type)`, which matches if the message lists a patient having an ID of the given value and type in the PID-2, PID-3, or PID-4 segments. For example, `PatientId(\"123456\", \"MRN\")`. * `labels.x`, a string value of the label with key `x` as set using the Message.labels map. For example, `labels.\"priority\"=\"high\"`. The operator `:*` can be used to assert the existence of a label. For example, `labels.\"priority\":*`.", +"type": "string" +}, +"pubsubTopic": { +"description": "The [Pub/Sub](https://cloud.google.com/pubsub/docs/) topic that notifications of changes are published on. Supplied by the client. The notification is a `PubsubMessage` with the following fields: * `PubsubMessage.Data` contains the resource name. * `PubsubMessage.MessageId` is the ID of this notification. It's guaranteed to be unique within the topic. * `PubsubMessage.PublishTime` is the time when the message was published. Note that notifications are only sent if the topic is non-empty. [Topic names](https://cloud.google.com/pubsub/docs/overview#names) must be scoped to a project. The Cloud Healthcare API service account, service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com, must have publisher permissions on the given Pub/Sub topic. Not having adequate permissions causes the calls that send notifications to fail. If a notification cannot be published to Pub/Sub, errors are logged to Cloud Logging. For more information, see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging)).", +"type": "string" +} +}, +"type": "object" +}, +"Hl7V2Store": { +"description": "Represents an HL7v2 store.", +"id": "Hl7V2Store", +"properties": { +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "User-supplied key-value pairs used to organize HL7v2 stores. 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 are optional, 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": "Identifier. Resource name of the HL7v2 store, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/hl7V2Stores/{hl7v2_store_id}`.", +"type": "string" +}, +"notificationConfigs": { +"description": "Optional. A list of notification configs. Each configuration uses a filter to determine whether to publish a message (both Ingest & Create) on the corresponding notification destination. Only the message name is sent as part of the notification. Supplied by the client.", +"items": { +"$ref": "Hl7V2NotificationConfig" +}, +"type": "array" +}, +"parserConfig": { +"$ref": "ParserConfig", +"description": "Optional. The configuration for the parser. It determines how the server parses the messages." +}, +"rejectDuplicateMessage": { +"description": "Optional. Determines whether to reject duplicate messages. A duplicate message is a message with the same raw bytes as a message that has already been ingested/created in this HL7v2 store. The default value is false, meaning that the store accepts the duplicate messages and it also returns the same ACK message in the IngestMessageResponse as has been returned previously. Note that only one resource is created in the store. When this field is set to true, CreateMessage/IngestMessage requests with a duplicate message will be rejected by the store, and IngestMessageErrorDetail returns a NACK message upon rejection.", +"type": "boolean" +} +}, +"type": "object" +}, +"Hl7V2StoreMetric": { +"description": "Count of messages and total storage size by type for a given HL7 store.", +"id": "Hl7V2StoreMetric", +"properties": { +"count": { +"description": "The total count of HL7v2 messages in the store for the given message type.", +"format": "int64", +"type": "string" +}, +"messageType": { +"description": "The Hl7v2 message type this metric applies to, such as `ADT` or `ORU`.", +"type": "string" +}, +"structuredStorageSizeBytes": { +"description": "The total amount of structured storage used by HL7v2 messages of this message type in the store.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"Hl7V2StoreMetrics": { +"description": "List of metrics for a given HL7v2 store.", +"id": "Hl7V2StoreMetrics", +"properties": { +"metrics": { +"description": "List of HL7v2 store metrics by message type.", +"items": { +"$ref": "Hl7V2StoreMetric" +}, +"type": "array" +}, +"name": { +"description": "The resource name of the HL7v2 store to get metrics for, in the format `projects/{project_id}/datasets/{dataset_id}/hl7V2Stores/{hl7v2_store_id}`.", +"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" +}, +"Image": { +"description": "Raw bytes representing consent artifact content.", +"id": "Image", +"properties": { +"gcsUri": { +"description": "Input only. Points to a Cloud Storage URI containing the consent artifact content. The URI must be in the following format: `gs://{bucket_id}/{object_id}`. The Cloud Healthcare API service account must have the `roles/storage.objectViewer` Cloud IAM role for this Cloud Storage location. The consent artifact content at this URI is copied to a Cloud Storage location managed by the Cloud Healthcare API. Responses to fetching requests return the consent artifact content in raw_bytes.", +"type": "string" +}, +"rawBytes": { +"description": "Consent artifact content represented as a stream of bytes. This field is populated when returned in GetConsentArtifact response, but not included in CreateConsentArtifact and ListConsentArtifact response.", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"ImageConfig": { +"description": "Specifies how to handle de-identification of image pixels.", +"id": "ImageConfig", +"properties": { +"textRedactionMode": { +"description": "Optional. Determines how to redact text from image.", +"enum": [ +"TEXT_REDACTION_MODE_UNSPECIFIED", +"REDACT_ALL_TEXT", +"REDACT_SENSITIVE_TEXT", +"REDACT_NO_TEXT" +], +"enumDescriptions": [ +"No text redaction specified. Same as REDACT_NO_TEXT.", +"Redact all text.", +"Redact sensitive text. Uses the set of [Default DICOM InfoTypes](https://cloud.google.com/healthcare-api/docs/how-tos/dicom-deidentify#default_dicom_infotypes).", +"Do not redact text." +], +"type": "string" +} +}, +"type": "object" +}, +"ImportDicomDataRequest": { +"description": "Imports data into the specified DICOM store. Returns an error if any of the files to import are not DICOM files. This API accepts duplicate DICOM instances by ignoring the newly-pushed instance. It does not overwrite.", +"id": "ImportDicomDataRequest", +"properties": { +"blobStorageSettings": { +"$ref": "BlobStorageSettings", +"description": "Optional. The blob storage settings for the data imported by this operation." +}, +"gcsSource": { +"$ref": "GoogleCloudHealthcareV1DicomGcsSource", +"description": "Cloud Storage source data location and import configuration. The Cloud Healthcare Service Agent requires the `roles/storage.objectViewer` Cloud IAM roles on the Cloud Storage location." +} +}, +"type": "object" +}, +"ImportDicomDataResponse": { +"description": "Returns additional information in regards to a completed DICOM store import.", +"id": "ImportDicomDataResponse", +"properties": {}, +"type": "object" +}, +"ImportMessagesRequest": { +"description": "Request to import messages.", +"id": "ImportMessagesRequest", +"properties": { +"gcsSource": { +"$ref": "GcsSource", +"description": "Cloud Storage source data location and import configuration. The Cloud Healthcare Service Agent requires the `roles/storage.objectViewer` Cloud IAM roles on the Cloud Storage location." +} +}, +"type": "object" +}, +"ImportMessagesResponse": { +"description": "Final response of importing messages. This structure is included in the response to describe the detailed outcome. It is only included when the operation finishes successfully.", +"id": "ImportMessagesResponse", +"properties": {}, +"type": "object" +}, +"ImportResourcesRequest": { +"description": "Request to import resources.", +"id": "ImportResourcesRequest", +"properties": { +"contentStructure": { +"description": "The content structure in the source location. If not specified, the server treats the input source files as BUNDLE.", +"enum": [ +"CONTENT_STRUCTURE_UNSPECIFIED", +"BUNDLE", +"RESOURCE", +"BUNDLE_PRETTY", +"RESOURCE_PRETTY" +], +"enumDescriptions": [ +"If the content structure is not specified, the default value `BUNDLE` is used.", +"The source file contains one or more lines of newline-delimited JSON (ndjson). Each line is a bundle that contains one or more resources.", +"The source file contains one or more lines of newline-delimited JSON (ndjson). Each line is a single resource.", +"The entire file is one JSON bundle. The JSON can span multiple lines.", +"The entire file is one JSON resource. The JSON can span multiple lines." +], +"type": "string" +}, +"gcsSource": { +"$ref": "GoogleCloudHealthcareV1FhirGcsSource", +"description": "Cloud Storage source data location and import configuration. The Healthcare Service Agent account requires the `roles/storage.objectAdmin` role on the Cloud Storage location. Each Cloud Storage object should be a text file that contains the format specified in ContentStructure." +} +}, +"type": "object" +}, +"ImportResourcesResponse": { +"description": "Final response of importing resources. This structure is included in the response to describe the detailed outcome after the operation finishes successfully.", +"id": "ImportResourcesResponse", +"properties": {}, +"type": "object" +}, +"InfoTypeTransformation": { +"description": "A transformation to apply to text that is identified as a specific info_type.", +"id": "InfoTypeTransformation", +"properties": { +"characterMaskConfig": { +"$ref": "CharacterMaskConfig", +"description": "Config for character mask." +}, +"cryptoHashConfig": { +"$ref": "CryptoHashConfig", +"description": "Config for crypto hash." +}, +"dateShiftConfig": { +"$ref": "DateShiftConfig", +"description": "Config for date shift." +}, +"infoTypes": { +"description": "Optional. InfoTypes to apply this transformation to. If this is not specified, the transformation applies to any info_type.", +"items": { +"type": "string" +}, +"type": "array" +}, +"redactConfig": { +"$ref": "RedactConfig", +"description": "Config for text redaction." +}, +"replaceWithInfoTypeConfig": { +"$ref": "ReplaceWithInfoTypeConfig", +"description": "Config for replace with InfoType." +} +}, +"type": "object" +}, +"IngestMessageRequest": { +"description": "Ingests a message into the specified HL7v2 store.", +"id": "IngestMessageRequest", +"properties": { +"message": { +"$ref": "Message", +"description": "Required. HL7v2 message to ingest." +} +}, +"type": "object" +}, +"IngestMessageResponse": { +"description": "Acknowledges that a message has been ingested into the specified HL7v2 store.", +"id": "IngestMessageResponse", +"properties": { +"hl7Ack": { +"description": "HL7v2 ACK message.", +"format": "byte", +"type": "string" +}, +"message": { +"$ref": "Message", +"description": "Created message resource." +} +}, +"type": "object" +}, +"KmsWrappedCryptoKey": { +"description": "Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128-, 192-, or 256-bit key. The key must grant the Cloud IAM permission `cloudkms.cryptoKeyVersions.useToDecrypt` to the project's Cloud Healthcare Service Agent service account. For more information, see [Creating a wrapped key] (https://cloud.google.com/dlp/docs/create-wrapped-key).", +"id": "KmsWrappedCryptoKey", +"properties": { +"cryptoKey": { +"description": "Required. The resource name of the KMS CryptoKey to use for unwrapping. For example, `projects/{project_id}/locations/{location_id}/keyRings/{keyring}/cryptoKeys/{key}`.", +"type": "string" +}, +"wrappedKey": { +"description": "Required. The wrapped data crypto key.", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"LinkedEntity": { +"description": "EntityMentions can be linked to multiple entities using a LinkedEntity message lets us add other fields, e.g. confidence.", +"id": "LinkedEntity", +"properties": { +"entityId": { +"description": "entity_id is a concept unique identifier. These are prefixed by a string that identifies the entity coding system, followed by the unique identifier within that system. For example, \"UMLS/C0000970\". This also supports ad hoc entities, which are formed by normalizing entity mention content.", +"type": "string" +} +}, +"type": "object" +}, +"ListAttributeDefinitionsResponse": { +"id": "ListAttributeDefinitionsResponse", +"properties": { +"attributeDefinitions": { +"description": "The returned Attribute definitions. The maximum number of attributes returned is determined by the value of page_size in the ListAttributeDefinitionsRequest.", +"items": { +"$ref": "AttributeDefinition" +}, +"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" +}, +"ListConsentArtifactsResponse": { +"id": "ListConsentArtifactsResponse", +"properties": { +"consentArtifacts": { +"description": "The returned Consent artifacts. The maximum number of artifacts returned is determined by the value of page_size in the ListConsentArtifactsRequest.", +"items": { +"$ref": "ConsentArtifact" +}, +"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" +}, +"ListConsentRevisionsResponse": { +"id": "ListConsentRevisionsResponse", +"properties": { +"consents": { +"description": "The returned Consent revisions. The maximum number of revisions returned is determined by the value of `page_size` in the ListConsentRevisionsRequest.", +"items": { +"$ref": "Consent" +}, +"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" +}, +"ListConsentStoresResponse": { +"id": "ListConsentStoresResponse", +"properties": { +"consentStores": { +"description": "The returned consent stores. The maximum number of stores returned is determined by the value of page_size in the ListConsentStoresRequest.", +"items": { +"$ref": "ConsentStore" +}, +"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" +}, +"ListConsentsResponse": { +"id": "ListConsentsResponse", +"properties": { +"consents": { +"description": "The returned Consents. The maximum number of Consents returned is determined by the value of page_size in the ListConsentsRequest.", +"items": { +"$ref": "Consent" +}, +"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" +}, +"ListDatasetsResponse": { +"description": "Lists the available datasets.", +"id": "ListDatasetsResponse", +"properties": { +"datasets": { +"description": "The first page of datasets.", +"items": { +"$ref": "Dataset" +}, +"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" +}, +"ListDicomStoresResponse": { +"description": "Lists the DICOM stores in the given dataset.", +"id": "ListDicomStoresResponse", +"properties": { +"dicomStores": { +"description": "The returned DICOM stores. Won't be more DICOM stores than the value of page_size in the request.", +"items": { +"$ref": "DicomStore" +}, +"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" +}, +"ListFhirStoresResponse": { +"description": "Lists the FHIR stores in the given dataset.", +"id": "ListFhirStoresResponse", +"properties": { +"fhirStores": { +"description": "The returned FHIR stores. Won't be more FHIR stores than the value of page_size in the request.", +"items": { +"$ref": "FhirStore" +}, +"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" +}, +"ListHl7V2StoresResponse": { +"description": "Lists the HL7v2 stores in the given dataset.", +"id": "ListHl7V2StoresResponse", +"properties": { +"hl7V2Stores": { +"description": "The returned HL7v2 stores. Won't be more HL7v2 stores than the value of page_size in the request.", +"items": { +"$ref": "Hl7V2Store" +}, +"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" +}, +"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" +}, +"ListMessagesResponse": { +"description": "Lists the messages in the specified HL7v2 store.", +"id": "ListMessagesResponse", +"properties": { +"hl7V2Messages": { +"description": "The returned Messages. Won't be more Messages than the value of page_size in the request. See view for populated fields.", +"items": { +"$ref": "Message" +}, +"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" +}, +"ListUserDataMappingsResponse": { +"id": "ListUserDataMappingsResponse", +"properties": { +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +}, +"userDataMappings": { +"description": "The returned User data mappings. The maximum number of User data mappings returned is determined by the value of page_size in the ListUserDataMappingsRequest.", +"items": { +"$ref": "UserDataMapping" +}, +"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" +}, +"Message": { +"description": "A complete HL7v2 message. See [Introduction to HL7 Standards] (https://www.hl7.org/implement/standards/index.cfm?ref=common) for details on the standard.", +"id": "Message", +"properties": { +"createTime": { +"description": "Output only. The datetime when the message was created. Set by the server.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"data": { +"description": "Required. Raw message bytes.", +"format": "byte", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "User-supplied key-value pairs used to organize HL7v2 stores. 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 are optional, 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" +}, +"messageType": { +"description": "Output only. The message type for this message. MSH-9.1.", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. Resource name of the Message, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/hl7V2Stores/{hl7_v2_store_id}/messages/{message_id}`.", +"readOnly": true, +"type": "string" +}, +"parsedData": { +"$ref": "ParsedData", +"description": "Output only. The parsed version of the raw message data.", +"readOnly": true +}, +"patientIds": { +"description": "Output only. All patient IDs listed in the PID-2, PID-3, and PID-4 segments of this message.", +"items": { +"$ref": "PatientId" +}, +"readOnly": true, +"type": "array" +}, +"schematizedData": { +"$ref": "SchematizedData", +"description": "Output only. The parsed version of the raw message data schematized according to this store's schemas and type definitions.", +"readOnly": true +}, +"sendFacility": { +"description": "Output only. The hospital that this message came from. MSH-4.", +"readOnly": true, +"type": "string" +}, +"sendTime": { +"description": "Output only. The datetime the sending application sent this message. MSH-7.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"NotificationConfig": { +"description": "Specifies where to send notifications upon changes to a data store.", +"id": "NotificationConfig", +"properties": { +"pubsubTopic": { +"description": "The [Pub/Sub](https://cloud.google.com/pubsub/docs/) topic that notifications of changes are published on. Supplied by the client. PubsubMessage.Data contains the resource name. PubsubMessage.MessageId is the ID of this message. It is guaranteed to be unique within the topic. PubsubMessage.PublishTime is the time at which the message was published. Notifications are only sent if the topic is non-empty. [Topic names](https://cloud.google.com/pubsub/docs/overview#names) must be scoped to a project. Cloud Healthcare API service account must have publisher permissions on the given Pub/Sub topic. Not having adequate permissions causes the calls that send notifications to fail. If a notification can't be published to Pub/Sub, errors are logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging)). If the number of errors exceeds a certain rate, some aren't submitted. Note that not all operations trigger notifications, see [Configuring Pub/Sub notifications](https://cloud.google.com/healthcare/docs/how-tos/pubsub) for specific details.", +"type": "string" +}, +"sendForBulkImport": { +"description": "Indicates whether or not to send Pub/Sub notifications on bulk import. Only supported for DICOM imports.", +"type": "boolean" +} +}, +"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": "OperationMetadata provides information about the operation execution. Returned in the long-running operation's metadata field.", +"id": "OperationMetadata", +"properties": { +"apiMethodName": { +"description": "The name of the API method that initiated the operation.", +"type": "string" +}, +"cancelRequested": { +"description": "Specifies if cancellation was requested for the operation.", +"type": "boolean" +}, +"counter": { +"$ref": "ProgressCounter" +}, +"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.", +"format": "google-datetime", +"type": "string" +}, +"logsUrl": { +"description": "A link to audit and error logs in the log viewer. Error logs are generated only by some operations, listed at [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging).", +"type": "string" +} +}, +"type": "object" +}, +"ParsedData": { +"description": "The content of a HL7v2 message in a structured format.", +"id": "ParsedData", +"properties": { +"segments": { +"items": { +"$ref": "Segment" +}, +"type": "array" +} +}, +"type": "object" +}, +"ParserConfig": { +"description": "The configuration for the parser. It determines how the server parses the messages.", +"id": "ParserConfig", +"properties": { +"allowNullHeader": { +"description": "Optional. Determines whether messages with no header are allowed.", +"type": "boolean" +}, +"schema": { +"$ref": "SchemaPackage", +"description": "Optional. Schemas used to parse messages in this store, if schematized parsing is desired." +}, +"segmentTerminator": { +"description": "Optional. Byte(s) to use as the segment terminator. If this is unset, '\\r' is used as segment terminator, matching the HL7 version 2 specification.", +"format": "byte", +"type": "string" +}, +"version": { +"description": "Immutable. Determines the version of both the default parser to be used when `schema` is not given, as well as the schematized parser used when `schema` is specified. This field is immutable after HL7v2 store creation.", +"enum": [ +"PARSER_VERSION_UNSPECIFIED", +"V1", +"V2", +"V3" +], +"enumDescriptions": [ +"Unspecified parser version, equivalent to V1.", +"The `parsed_data` includes every given non-empty message field except the Field Separator (MSH-1) field. As a result, the parsed MSH segment starts with the MSH-2 field and the field numbers are off-by-one with respect to the HL7 standard.", +"The `parsed_data` includes every given non-empty message field.", +"This version is the same as V2, with the following change. The `parsed_data` contains unescaped escaped field separators, component separators, sub-component separators, repetition separators, escape characters, and truncation characters. If `schema` is specified, the schematized parser uses improved parsing heuristics compared to previous versions." +], +"type": "string" +} +}, +"type": "object" +}, +"PatientId": { +"description": "A patient identifier and associated type.", +"id": "PatientId", +"properties": { +"type": { +"description": "ID type. For example, MRN or NHS.", +"type": "string" +}, +"value": { +"description": "The patient's unique identifier.", +"type": "string" +} +}, +"type": "object" +}, +"PatientScope": { +"description": "Apply consents given by a list of patients.", +"id": "PatientScope", +"properties": { +"patientIds": { +"description": "Optional. The list of patient IDs whose Consent resources will be enforced. At most 10,000 patients can be specified. An empty list is equivalent to all patients (meaning the entire FHIR store).", +"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" +}, +"ProgressCounter": { +"description": "ProgressCounter provides counters to describe an operation's progress.", +"id": "ProgressCounter", +"properties": { +"failure": { +"description": "The number of units that failed in the operation.", +"format": "int64", +"type": "string" +}, +"pending": { +"description": "The number of units that are pending in the operation.", +"format": "int64", +"type": "string" +}, +"success": { +"description": "The number of units that succeeded in the operation.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"PubsubDestination": { +"description": "The Pub/Sub output destination. The Cloud Healthcare Service Agent requires the `roles/pubsub.publisher` Cloud IAM role on the Pub/Sub topic.", +"id": "PubsubDestination", +"properties": { +"pubsubTopic": { +"description": "The [Pub/Sub](https://cloud.google.com/pubsub/docs/) topic that Pub/Sub messages are published on. Supplied by the client. The `PubsubMessage` contains the following fields: * `PubsubMessage.Data` contains the resource name. * `PubsubMessage.MessageId` is the ID of this notification. It is guaranteed to be unique within the topic. * `PubsubMessage.PublishTime` is the time when the message was published. [Topic names](https://cloud.google.com/pubsub/docs/overview#names) must be scoped to a project. The Cloud Healthcare API service account, service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com, must have publisher permissions on the given Pub/Sub topic. Not having adequate permissions causes the calls that send notifications to fail.", +"type": "string" +} +}, +"type": "object" +}, +"QueryAccessibleDataRequest": { +"description": "Queries all data_ids that are consented for a given use in the given consent store and writes them to a specified destination. The returned Operation includes a progress counter for the number of User data mappings processed. Errors are logged to Cloud Logging (see [Viewing error logs in Cloud Logging] (https://cloud.google.com/healthcare/docs/how-tos/logging) and [QueryAccessibleData] for a sample log entry).", +"id": "QueryAccessibleDataRequest", +"properties": { +"gcsDestination": { +"$ref": "GoogleCloudHealthcareV1ConsentGcsDestination", +"description": "The Cloud Storage destination. The Cloud Healthcare API service account must have the `roles/storage.objectAdmin` Cloud IAM role for this Cloud Storage location." +}, +"requestAttributes": { +"additionalProperties": { +"type": "string" +}, +"description": "The values of request attributes associated with this access request.", +"type": "object" +}, +"resourceAttributes": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. The values of resource attributes associated with the type of resources being requested. If no values are specified, then all resource types are included in the output.", +"type": "object" +} +}, +"type": "object" +}, +"QueryAccessibleDataResponse": { +"description": "Response for successful QueryAccessibleData operations. This structure is included in the response upon operation completion.", +"id": "QueryAccessibleDataResponse", +"properties": { +"gcsUris": { +"description": "List of files, each of which contains a list of data_id(s) that are consented for a specified use in the request.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"RedactConfig": { +"description": "Define how to redact sensitive values. Default behaviour is erase. For example, \"My name is Jane.\" becomes \"My name is .\"", +"id": "RedactConfig", +"properties": {}, +"type": "object" +}, +"RejectConsentRequest": { +"description": "Rejects the latest revision of the specified Consent by committing a new revision with `state` updated to `REJECTED`. If the latest revision of the given Consent is in the `REJECTED` state, no new revision is committed.", +"id": "RejectConsentRequest", +"properties": { +"consentArtifact": { +"description": "Optional. The resource name of the Consent artifact that contains documentation of the user's rejection of the draft Consent, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}/consentArtifacts/{consent_artifact_id}`. If the draft Consent had a Consent artifact, this Consent artifact overwrites it.", +"type": "string" +} +}, +"type": "object" +}, +"ReplaceWithInfoTypeConfig": { +"description": "When using the INSPECT_AND_TRANSFORM action, each match is replaced with the name of the info_type. For example, \"My name is Jane\" becomes \"My name is [PERSON_NAME].\" The TRANSFORM action is equivalent to redacting.", +"id": "ReplaceWithInfoTypeConfig", +"properties": {}, +"type": "object" +}, +"Resources": { +"description": "A list of FHIR resources.", +"id": "Resources", +"properties": { +"resources": { +"description": "List of resources IDs. For example, \"Patient/1234\".", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Result": { +"description": "The consent evaluation result for a single `data_id`.", +"id": "Result", +"properties": { +"consentDetails": { +"additionalProperties": { +"$ref": "ConsentEvaluation" +}, +"description": "The resource names of all evaluated Consents mapped to their evaluation.", +"type": "object" +}, +"consented": { +"description": "Whether the resource is consented for the given use.", +"type": "boolean" +}, +"dataId": { +"description": "The unique identifier of the evaluated resource.", +"type": "string" +} +}, +"type": "object" +}, +"RevokeConsentRequest": { +"description": "Revokes the latest revision of the specified Consent by committing a new revision with `state` updated to `REVOKED`. If the latest revision of the given Consent is in the `REVOKED` state, no new revision is committed.", +"id": "RevokeConsentRequest", +"properties": { +"consentArtifact": { +"description": "Optional. The resource name of the Consent artifact that contains proof of the user's revocation of the Consent, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}/consentArtifacts/{consent_artifact_id}`.", +"type": "string" +} +}, +"type": "object" +}, +"RollbackFhirResourceFilteringFields": { +"id": "RollbackFhirResourceFilteringFields", +"properties": { +"metadataFilter": { +"description": "Optional. A filter expression that matches data in the `Resource.meta` element. Supports all filters in [AIP-160](https://google.aip.dev/160) except the \"has\" (`:`) operator. Supports the following custom functions: * `tag(\"\") = \"\"` for tag filtering. * `extension_value_ts(\"\") = ` for filtering extensions with a timestamp, where `` is a Unix timestamp. Supports the `>`, `<`, `<=`, `>=`, and `!=` comparison operators.", +"type": "string" +}, +"operationIds": { +"description": "Optional. A list of operation IDs to roll back.", +"items": { +"format": "uint64", +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"RollbackFhirResourcesRequest": { +"id": "RollbackFhirResourcesRequest", +"properties": { +"changeType": { +"description": "Optional. CREATE/UPDATE/DELETE/ALL for reverting all txns of a certain type.", +"enum": [ +"CHANGE_TYPE_UNSPECIFIED", +"ALL", +"CREATE", +"UPDATE", +"DELETE" +], +"enumDescriptions": [ +"When unspecified, revert all transactions", +"All transactions", +"Revert only CREATE transactions", +"Revert only Update transactions", +"Revert only Delete transactions" +], +"type": "string" +}, +"excludeRollbacks": { +"description": "Optional. Specifies whether to exclude earlier rollbacks.", +"type": "boolean" +}, +"filteringFields": { +"$ref": "RollbackFhirResourceFilteringFields", +"description": "Optional. Parameters for filtering resources" +}, +"force": { +"description": "Optional. When enabled, changes will be reverted without explicit confirmation", +"type": "boolean" +}, +"inputGcsObject": { +"description": "Optional. Cloud Storage object containing list of {resourceType}/{resourceId} lines, identifying resources to be reverted", +"type": "string" +}, +"resultGcsBucket": { +"description": "Required. Bucket to deposit result", +"type": "string" +}, +"rollbackTime": { +"description": "Required. Time point to rollback to.", +"format": "google-datetime", +"type": "string" +}, +"type": { +"description": "Optional. If specified, revert only resources of these types", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"RollbackFhirResourcesResponse": { +"description": "Final response of rollback FIHR resources request.", +"id": "RollbackFhirResourcesResponse", +"properties": { +"fhirStore": { +"description": "The name of the FHIR store to rollback, in the format of \"projects/{project_id}/locations/{location_id}/datasets/{dataset_id} /fhirStores/{fhir_store_id}\".", +"type": "string" +} +}, +"type": "object" +}, +"RollbackHL7MessagesFilteringFields": { +"description": "Filtering fields for an HL7v2 rollback. Currently only supports a list of operation ids to roll back.", +"id": "RollbackHL7MessagesFilteringFields", +"properties": { +"operationIds": { +"description": "Optional. A list of operation IDs to roll back.", +"items": { +"format": "uint64", +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"RollbackHl7V2MessagesRequest": { +"description": "Point in time recovery rollback request.", +"id": "RollbackHl7V2MessagesRequest", +"properties": { +"changeType": { +"description": "Optional. CREATE/UPDATE/DELETE/ALL for reverting all txns of a certain type.", +"enum": [ +"CHANGE_TYPE_UNSPECIFIED", +"ALL", +"CREATE", +"UPDATE", +"DELETE" +], +"enumDescriptions": [ +"When unspecified, revert all transactions", +"All transactions", +"Revert only CREATE transactions", +"Revert only Update transactions", +"Revert only Delete transactions" +], +"type": "string" +}, +"excludeRollbacks": { +"description": "Optional. Specifies whether to exclude earlier rollbacks.", +"type": "boolean" +}, +"filteringFields": { +"$ref": "RollbackHL7MessagesFilteringFields", +"description": "Optional. Parameters for filtering." +}, +"force": { +"description": "Optional. When enabled, changes will be reverted without explicit confirmation.", +"type": "boolean" +}, +"inputGcsObject": { +"description": "Optional. Cloud storage object containing list of {resourceId} lines, identifying resources to be reverted", +"type": "string" +}, +"resultGcsBucket": { +"description": "Required. Bucket to deposit result", +"type": "string" +}, +"rollbackTime": { +"description": "Required. Times point to rollback to.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"RollbackHl7V2MessagesResponse": { +"description": "Final response of rollback HL7v2 messages request.", +"id": "RollbackHl7V2MessagesResponse", +"properties": { +"hl7v2Store": { +"description": "The name of the HL7v2 store to rollback, in the format of \"projects/{project_id}/locations/{location_id}/datasets/{dataset_id} /hl7v2Stores/{hl7v2_store_id}\".", +"type": "string" +} +}, +"type": "object" +}, +"SchemaConfig": { +"description": "Configuration for the FHIR BigQuery schema. Determines how the server generates the schema.", +"id": "SchemaConfig", +"properties": { +"lastUpdatedPartitionConfig": { +"$ref": "TimePartitioning", +"description": "The configuration for exported BigQuery tables to be partitioned by FHIR resource's last updated time column." +}, +"recursiveStructureDepth": { +"description": "The depth for all recursive structures in the output analytics schema. For example, `concept` in the CodeSystem resource is a recursive structure; when the depth is 2, the CodeSystem table will have a column called `concept.concept` but not `concept.concept.concept`. If not specified or set to 0, the server will use the default value 2. The maximum depth allowed is 5.", +"format": "int64", +"type": "string" +}, +"schemaType": { +"description": "Specifies the output schema type. Schema type is required.", +"enum": [ +"SCHEMA_TYPE_UNSPECIFIED", +"ANALYTICS", +"ANALYTICS_V2" +], +"enumDescriptions": [ +"No schema type specified. This type is unsupported.", +"Analytics schema defined by the FHIR community. See https://github.com/FHIR/sql-on-fhir/blob/master/sql-on-fhir.md. BigQuery only allows a maximum of 10,000 columns per table. Due to this limitation, the server will not generate schemas for fields of type `Resource`, which can hold any resource type. The affected fields are `Parameters.parameter.resource`, `Bundle.entry.resource`, and `Bundle.entry.response.outcome`. Analytics schema does not gracefully handle extensions with one or more occurrences, anaytics schema also does not handle contained resource. Additionally, extensions with a URL ending in \"/{existing_resource_field_name}\" may cause undefined behavior.", +"Analytics V2, similar to schema defined by the FHIR community, with added support for extensions with one or more occurrences and contained resources in stringified JSON. Extensions with a URL ending in \"/{existing_resource_field_name}\" will cause conflict and prevent the resource from being sent to BigQuery. Analytics V2 uses more space in the destination table than Analytics V1. It is generally recommended to use Analytics V2 over Analytics." +], +"type": "string" +} +}, +"type": "object" +}, +"SchemaGroup": { +"description": "An HL7v2 logical group construct.", +"id": "SchemaGroup", +"properties": { +"choice": { +"description": "True indicates that this is a choice group, meaning that only one of its segments can exist in a given message.", +"type": "boolean" +}, +"maxOccurs": { +"description": "The maximum number of times this group can be repeated. 0 or -1 means unbounded.", +"format": "int32", +"type": "integer" +}, +"members": { +"description": "Nested groups and/or segments.", +"items": { +"$ref": "GroupOrSegment" +}, +"type": "array" +}, +"minOccurs": { +"description": "The minimum number of times this group must be present/repeated.", +"format": "int32", +"type": "integer" +}, +"name": { +"description": "The name of this group. For example, \"ORDER_DETAIL\".", +"type": "string" +} +}, +"type": "object" +}, +"SchemaPackage": { +"description": "A schema package contains a set of schemas and type definitions.", +"id": "SchemaPackage", +"properties": { +"ignoreMinOccurs": { +"description": "Optional. Flag to ignore all min_occurs restrictions in the schema. This means that incoming messages can omit any group, segment, field, component, or subcomponent.", +"type": "boolean" +}, +"schemas": { +"description": "Optional. Schema configs that are layered based on their VersionSources that match the incoming message. Schema configs present in higher indices override those in lower indices with the same message type and trigger event if their VersionSources all match an incoming message.", +"items": { +"$ref": "Hl7SchemaConfig" +}, +"type": "array" +}, +"schematizedParsingType": { +"description": "Optional. Determines how messages that fail to parse are handled.", +"enum": [ +"SCHEMATIZED_PARSING_TYPE_UNSPECIFIED", +"SOFT_FAIL", +"HARD_FAIL" +], +"enumDescriptions": [ +"Unspecified schematized parsing type, equivalent to `SOFT_FAIL`.", +"Messages that fail to parse are still stored and ACKed but a parser error is stored in place of the schematized data.", +"Messages that fail to parse are rejected from ingestion/insertion and return an error code." +], +"type": "string" +}, +"types": { +"description": "Optional. Schema type definitions that are layered based on their VersionSources that match the incoming message. Type definitions present in higher indices override those in lower indices with the same type name if their VersionSources all match an incoming message.", +"items": { +"$ref": "Hl7TypesConfig" +}, +"type": "array" +}, +"unexpectedSegmentHandling": { +"description": "Optional. Determines how unexpected segments (segments not matched to the schema) are handled.", +"enum": [ +"UNEXPECTED_SEGMENT_HANDLING_MODE_UNSPECIFIED", +"FAIL", +"SKIP", +"PARSE" +], +"enumDescriptions": [ +"Unspecified handling mode, equivalent to FAIL.", +"Unexpected segments fail to parse and return an error.", +"Unexpected segments do not fail, but are omitted from the output.", +"Unexpected segments do not fail, but are parsed in place and added to the current group. If a segment has a type definition, it is used, otherwise it is parsed as VARIES." +], +"type": "string" +} +}, +"type": "object" +}, +"SchemaSegment": { +"description": "An HL7v2 Segment.", +"id": "SchemaSegment", +"properties": { +"maxOccurs": { +"description": "The maximum number of times this segment can be present in this group. 0 or -1 means unbounded.", +"format": "int32", +"type": "integer" +}, +"minOccurs": { +"description": "The minimum number of times this segment can be present in this group.", +"format": "int32", +"type": "integer" +}, +"type": { +"description": "The Segment type. For example, \"PID\".", +"type": "string" +} +}, +"type": "object" +}, +"SchematizedData": { +"description": "The content of an HL7v2 message in a structured format as specified by a schema.", +"id": "SchematizedData", +"properties": { +"data": { +"description": "JSON output of the parser.", +"type": "string" +}, +"error": { +"description": "The error output of the parser.", +"type": "string" +} +}, +"type": "object" +}, +"SearchResourcesRequest": { +"description": "Request to search the resources in the specified FHIR store.", +"id": "SearchResourcesRequest", +"properties": { +"resourceType": { +"description": "Required. The FHIR resource type to search, such as Patient or Observation. For a complete list, see the FHIR Resource Index ([DSTU2](http://hl7.org/implement/standards/fhir/DSTU2/resourcelist.html), [STU3](http://hl7.org/implement/standards/fhir/STU3/resourcelist.html), [R4](http://hl7.org/implement/standards/fhir/R4/resourcelist.html)).", +"type": "string" +} +}, +"type": "object" +}, +"Segment": { +"description": "A segment in a structured format.", +"id": "Segment", +"properties": { +"fields": { +"additionalProperties": { +"type": "string" +}, +"description": "A mapping from the positional location to the value. The key string uses zero-based indexes separated by dots to identify Fields, components and sub-components. A bracket notation is also used to identify different instances of a repeated field. Regex for key: (\\d+)(\\[\\d+\\])?(.\\d+)?(.\\d+)? Examples of (key, value) pairs: * (0.1, \"hemoglobin\") denotes that the first component of Field 0 has the value \"hemoglobin\". * (1.1.2, \"CBC\") denotes that the second sub-component of the first component of Field 1 has the value \"CBC\". * (1[0].1, \"HbA1c\") denotes that the first component of the first Instance of Field 1, which is repeated, has the value \"HbA1c\".", +"type": "object" +}, +"segmentId": { +"description": "A string that indicates the type of segment. For example, EVN or PID.", +"type": "string" +}, +"setId": { +"description": "Set ID for segments that can be in a set. This can be empty if it's missing or isn't applicable.", +"type": "string" +} +}, +"type": "object" +}, +"SeriesMetrics": { +"description": "SeriesMetrics contains metrics describing a DICOM series.", +"id": "SeriesMetrics", +"properties": { +"blobStorageSizeBytes": { +"description": "Total blob storage bytes for all instances in the series.", +"format": "int64", +"type": "string" +}, +"instanceCount": { +"description": "Number of instances in the series.", +"format": "int64", +"type": "string" +}, +"series": { +"description": "The series resource path. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}/dicomWeb/studies/{study_uid}/series/{series_uid}`.", +"type": "string" +}, +"structuredStorageSizeBytes": { +"description": "Total structured storage bytes for all instances in the series.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"SetBlobStorageSettingsRequest": { +"description": "Request message for `SetBlobStorageSettings` method.", +"id": "SetBlobStorageSettingsRequest", +"properties": { +"blobStorageSettings": { +"$ref": "BlobStorageSettings", +"description": "The blob storage settings to update for the specified resources. Only fields listed in `update_mask` are applied." +}, +"filterConfig": { +"$ref": "DicomFilterConfig", +"description": "Optional. A filter configuration. If `filter_config` is specified, set the value of `resource` to the resource name of a DICOM store in the format `projects/{projectID}/locations/{locationID}/datasets/{datasetID}/dicomStores/{dicomStoreID}`." +} +}, +"type": "object" +}, +"SetBlobStorageSettingsResponse": { +"description": "Returns additional info in regards to a completed set blob storage settings API.", +"id": "SetBlobStorageSettingsResponse", +"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" +}, +"Signature": { +"description": "User signature.", +"id": "Signature", +"properties": { +"image": { +"$ref": "Image", +"description": "Optional. An image of the user's signature." +}, +"metadata": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Metadata associated with the user's signature. For example, the user's name or the user's title.", +"type": "object" +}, +"signatureTime": { +"description": "Optional. Timestamp of the signature.", +"format": "google-datetime", +"type": "string" +}, +"userId": { +"description": "Required. User's UUID provided by the client.", +"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" +}, +"StorageInfo": { +"description": "StorageInfo encapsulates all the storage info of a resource.", +"id": "StorageInfo", +"properties": { +"blobStorageInfo": { +"$ref": "BlobStorageInfo", +"description": "Info about the data stored in blob storage for the resource." +}, +"referencedResource": { +"description": "The resource whose storage info is returned. For example: `projects/{projectID}/locations/{locationID}/datasets/{datasetID}/dicomStores/{dicomStoreID}/dicomWeb/studies/{studyUID}/series/{seriesUID}/instances/{instanceUID}`", +"type": "string" +}, +"structuredStorageInfo": { +"$ref": "StructuredStorageInfo", +"description": "Info about the data stored in structured storage for the resource." +} +}, +"type": "object" +}, +"StreamConfig": { +"description": "Contains configuration for streaming FHIR export.", +"id": "StreamConfig", +"properties": { +"bigqueryDestination": { +"$ref": "GoogleCloudHealthcareV1FhirBigQueryDestination", +"description": "Optional. The destination BigQuery structure that contains both the dataset location and corresponding schema config. The output is organized in one table per resource type. The server reuses the existing tables (if any) that are named after the resource types. For example, \"Patient\", \"Observation\". When there is no existing table for a given resource type, the server attempts to create one. When a table schema doesn't align with the schema config, either because of existing incompatible schema or out of band incompatible modification, the server does not stream in new data. BigQuery imposes a 1 MB limit on streaming insert row size, therefore any resource mutation that generates more than 1 MB of BigQuery data is not streamed. One resolution in this case is to delete the incompatible table and let the server recreate one, though the newly created table only contains data after the table recreation. Results are written to BigQuery tables according to the parameters in BigQueryDestination.WriteDisposition. Different versions of the same resource are distinguishable by the meta.versionId and meta.lastUpdated columns. The operation (CREATE/UPDATE/DELETE) that results in the new version is recorded in the meta.tag. The tables contain all historical resource versions since streaming was enabled. For query convenience, the server also creates one view per table of the same name containing only the current resource version. The streamed data in the BigQuery dataset is not guaranteed to be completely unique. The combination of the id and meta.versionId columns should ideally identify a single unique row. But in rare cases, duplicates may exist. At query time, users may use the SQL select statement to keep only one of the duplicate rows given an id and meta.versionId pair. Alternatively, the server created view mentioned above also filters out duplicates. If a resource mutation cannot be streamed to BigQuery, errors are logged to Cloud Logging. For more information, see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging))." +}, +"deidentifiedStoreDestination": { +"$ref": "DeidentifiedStoreDestination", +"description": "The destination FHIR store for de-identified resources. After this field is added, all subsequent creates/updates/patches to the source store will be de-identified using the provided configuration and applied to the destination store. Resources deleted from the source store will be deleted from the destination store. Importing resources to the source store will not trigger the streaming. If the source store already contains resources when this option is enabled, those resources will not be copied to the destination store unless they are subsequently updated. This may result in invalid references in the destination store. Before adding this config, you must grant the healthcare.fhirResources.update permission on the destination store to your project's **Cloud Healthcare Service Agent** [service account](https://cloud.google.com/healthcare/docs/how-tos/permissions-healthcare-api-gcp-products#the_cloud_healthcare_service_agent). The destination store must set enable_update_create to true. The destination store must have disable_referential_integrity set to true. If a resource cannot be de-identified, errors will be logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging))." +}, +"resourceTypes": { +"description": "Optional. Supply a FHIR resource type (such as \"Patient\" or \"Observation\"). See https://www.hl7.org/fhir/valueset-resource-types.html for a list of all FHIR resource types. The server treats an empty list as an intent to stream all the supported resource types in this FHIR store.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"StructuredStorageInfo": { +"description": "StructuredStorageInfo contains details about the data stored in Structured Storage for the referenced resource.", +"id": "StructuredStorageInfo", +"properties": { +"sizeBytes": { +"description": "Size in bytes of data stored in structured storage.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"StudyMetrics": { +"description": "StudyMetrics contains metrics describing a DICOM study.", +"id": "StudyMetrics", +"properties": { +"blobStorageSizeBytes": { +"description": "Total blob storage bytes for all instances in the study.", +"format": "int64", +"type": "string" +}, +"instanceCount": { +"description": "Number of instances in the study.", +"format": "int64", +"type": "string" +}, +"seriesCount": { +"description": "Number of series in the study.", +"format": "int64", +"type": "string" +}, +"structuredStorageSizeBytes": { +"description": "Total structured storage bytes for all instances in the study.", +"format": "int64", +"type": "string" +}, +"study": { +"description": "The study resource path. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}/dicomWeb/studies/{study_uid}`.", +"type": "string" +} +}, +"type": "object" +}, +"TagFilterList": { +"description": "List of tags to be filtered.", +"id": "TagFilterList", +"properties": { +"tags": { +"description": "Optional. Tags to be filtered. Tags must be DICOM Data Elements, File Meta Elements, or Directory Structuring Elements, as defined at: http://dicom.nema.org/medical/dicom/current/output/html/part06.html#table_6-1,. They may be provided by \"Keyword\" or \"Tag\". For example \"PatientID\", \"00100010\".", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"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" +}, +"TextConfig": { +"id": "TextConfig", +"properties": { +"additionalTransformations": { +"description": "Optional. Transformations to apply to the detected data, overridden by `exclude_info_types`.", +"items": { +"$ref": "InfoTypeTransformation" +}, +"type": "array" +}, +"excludeInfoTypes": { +"description": "Optional. InfoTypes to skip transforming, overriding `additional_transformations`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"transformations": { +"description": "Optional. The transformations to apply to the detected data. Deprecated. Use `additional_transformations` instead.", +"items": { +"$ref": "InfoTypeTransformation" +}, +"type": "array" +} +}, +"type": "object" +}, +"TextSpan": { +"description": "A span of text in the provided document.", +"id": "TextSpan", +"properties": { +"beginOffset": { +"description": "The unicode codepoint index of the beginning of this span.", +"format": "int32", +"type": "integer" +}, +"content": { +"description": "The original text contained in this span.", +"type": "string" +} +}, +"type": "object" +}, +"TimePartitioning": { +"description": "Configuration for FHIR BigQuery time-partitioned tables.", +"id": "TimePartitioning", +"properties": { +"expirationMs": { +"description": "Number of milliseconds for which to keep the storage for a partition.", +"format": "int64", +"type": "string" +}, +"type": { +"description": "Type of partitioning.", +"enum": [ +"PARTITION_TYPE_UNSPECIFIED", +"HOUR", +"DAY", +"MONTH", +"YEAR" +], +"enumDescriptions": [ +"Default unknown time.", +"Data partitioned by hour.", +"Data partitioned by day.", +"Data partitioned by month.", +"Data partitioned by year." +], +"type": "string" +} +}, +"type": "object" +}, +"TimeRange": { +"description": "Apply consents given by patients whose most recent consent changes are in the time range. Note that after identifying these patients, the server applies all Consent resources given by those patients, not just the Consent resources within the timestamp in the range.", +"id": "TimeRange", +"properties": { +"end": { +"description": "Optional. The latest consent change time, in format YYYY-MM-DDThh:mm:ss.sss+zz:zz If not specified, the system uses the time when ApplyConsents was called.", +"type": "string" +}, +"start": { +"description": "Optional. The earliest consent change time, in format YYYY-MM-DDThh:mm:ss.sss+zz:zz If not specified, the system uses the FHIR store creation time.", +"type": "string" +} +}, +"type": "object" +}, +"Type": { +"description": "A type definition for some HL7v2 type (incl. Segments and Datatypes).", +"id": "Type", +"properties": { +"fields": { +"description": "The (sub) fields this type has (if not primitive).", +"items": { +"$ref": "Field" +}, +"type": "array" +}, +"name": { +"description": "The name of this type. This would be the segment or datatype name. For example, \"PID\" or \"XPN\".", +"type": "string" +}, +"primitive": { +"description": "If this is a primitive type then this field is the type of the primitive For example, STRING. Leave unspecified for composite types.", +"enum": [ +"PRIMITIVE_UNSPECIFIED", +"STRING", +"VARIES", +"UNESCAPED_STRING" +], +"enumDescriptions": [ +"Not a primitive.", +"String primitive.", +"Element that can have unschematized children.", +"Like STRING, but all delimiters below this element are ignored." +], +"type": "string" +} +}, +"type": "object" +}, +"UserDataMapping": { +"description": "Maps a resource to the associated user and Attributes.", +"id": "UserDataMapping", +"properties": { +"archiveTime": { +"description": "Output only. Indicates the time when this mapping was archived.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"archived": { +"description": "Output only. Indicates whether this mapping is archived.", +"readOnly": true, +"type": "boolean" +}, +"dataId": { +"description": "Required. A unique identifier for the mapped resource.", +"type": "string" +}, +"name": { +"description": "Resource name of the User data mapping, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}/userDataMappings/{user_data_mapping_id}`.", +"type": "string" +}, +"resourceAttributes": { +"description": "Attributes of the resource. Only explicitly set attributes are displayed here. Attribute definitions with defaults set implicitly apply to these User data mappings. Attributes listed here must be single valued, that is, exactly one value is specified for the field \"values\" in each Attribute.", +"items": { +"$ref": "Attribute" +}, +"type": "array" +}, +"userId": { +"description": "Required. User's UUID provided by the client.", +"type": "string" +} +}, +"type": "object" +}, +"ValidationConfig": { +"description": "Contains the configuration for FHIR profiles and validation.", +"id": "ValidationConfig", +"properties": { +"disableFhirpathValidation": { +"description": "Optional. Whether to disable FHIRPath validation for incoming resources. The default value is false. Set this to true to disable checking incoming resources for conformance against FHIRPath requirement defined in the FHIR specification. This property only affects resource types that do not have profiles configured for them, any rules in enabled implementation guides will still be enforced.", +"type": "boolean" +}, +"disableProfileValidation": { +"description": "Optional. Whether to disable profile validation for this FHIR store. The default value is false. Set this to true to disable checking incoming resources for conformance against structure definitions in this FHIR store.", +"type": "boolean" +}, +"disableReferenceTypeValidation": { +"description": "Optional. Whether to disable reference type validation for incoming resources. The default value is false. Set this to true to disable checking incoming resources for conformance against reference type requirement defined in the FHIR specification. This property only affects resource types that do not have profiles configured for them, any rules in enabled implementation guides will still be enforced.", +"type": "boolean" +}, +"disableRequiredFieldValidation": { +"description": "Optional. Whether to disable required fields validation for incoming resources. The default value is false. Set this to true to disable checking incoming resources for conformance against required fields requirement defined in the FHIR specification. This property only affects resource types that do not have profiles configured for them, any rules in enabled implementation guides will still be enforced.", +"type": "boolean" +}, +"enabledImplementationGuides": { +"description": "Optional. A list of implementation guide URLs in this FHIR store that are used to configure the profiles to use for validation. For example, to use the US Core profiles for validation, set `enabled_implementation_guides` to `[\"http://hl7.org/fhir/us/core/ImplementationGuide/ig\"]`. If `enabled_implementation_guides` is empty or omitted, then incoming resources are only required to conform to the base FHIR profiles. Otherwise, a resource must conform to at least one profile listed in the `global` property of one of the enabled ImplementationGuides. The Cloud Healthcare API does not currently enforce all of the rules in a StructureDefinition. The following rules are supported: - min/max - minValue/maxValue - maxLength - type - fixed[x] - pattern[x] on simple types - slicing, when using \"value\" as the discriminator type When a URL cannot be resolved (for example, in a type assertion), the server does not return an error.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"VersionSource": { +"description": "Describes a selector for extracting and matching an MSH field to a value.", +"id": "VersionSource", +"properties": { +"mshField": { +"description": "The field to extract from the MSH segment. For example, \"3.1\" or \"18[1].1\".", +"type": "string" +}, +"value": { +"description": "The value to match with the field. For example, \"My Application Name\" or \"2.3\".", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Cloud Healthcare 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/homegraph.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/homegraph.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..3dd6e83c20a87abfac33218b7b2cffc4442b4d5b --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/homegraph.v1.json @@ -0,0 +1,598 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/homegraph": { +"description": "Private Service: https://www.googleapis.com/auth/homegraph" +} +} +} +}, +"basePath": "", +"baseUrl": "https://homegraph.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Home Graph Service", +"description": "", +"discoveryVersion": "v1", +"documentationLink": "https://developers.home.google.com/cloud-to-cloud/get-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": "homegraph:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://homegraph.mtls.googleapis.com/", +"name": "homegraph", +"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": { +"agentUsers": { +"methods": { +"delete": { +"description": "Unlinks the given third-party user from your smart home Action. All data related to this user will be deleted. For more details on how users link their accounts, see [fulfillment and authentication](https://developers.home.google.com/cloud-to-cloud/primer/fulfillment). The third-party user's identity is passed in via the `agent_user_id` (see DeleteAgentUserRequest). This request must be authorized using service account credentials from your Actions console project.", +"flatPath": "v1/agentUsers/{agentUsersId}", +"httpMethod": "DELETE", +"id": "homegraph.agentUsers.delete", +"parameterOrder": [ +"agentUserId" +], +"parameters": { +"agentUserId": { +"description": "Required. Third-party user ID.", +"location": "path", +"pattern": "^agentUsers/.*$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Request ID used for debugging.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+agentUserId}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/homegraph" +] +} +} +}, +"devices": { +"methods": { +"query": { +"description": "Gets the current states in Home Graph for the given set of the third-party user's devices. The third-party user's identity is passed in via the `agent_user_id` (see QueryRequest). This request must be authorized using service account credentials from your Actions console project.", +"flatPath": "v1/devices:query", +"httpMethod": "POST", +"id": "homegraph.devices.query", +"parameterOrder": [], +"parameters": {}, +"path": "v1/devices:query", +"request": { +"$ref": "QueryRequest" +}, +"response": { +"$ref": "QueryResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/homegraph" +] +}, +"reportStateAndNotification": { +"description": "Reports device state and optionally sends device notifications. Called by your smart home Action when the state of a third-party device changes or you need to send a notification about the device. See [Implement Report State](https://developers.home.google.com/cloud-to-cloud/integration/report-state) for more information. This method updates the device state according to its declared [traits](https://developers.home.google.com/cloud-to-cloud/primer/device-types-and-traits). Publishing a new state value outside of these traits will result in an `INVALID_ARGUMENT` error response. The third-party user's identity is passed in via the `agent_user_id` (see ReportStateAndNotificationRequest). This request must be authorized using service account credentials from your Actions console project.", +"flatPath": "v1/devices:reportStateAndNotification", +"httpMethod": "POST", +"id": "homegraph.devices.reportStateAndNotification", +"parameterOrder": [], +"parameters": {}, +"path": "v1/devices:reportStateAndNotification", +"request": { +"$ref": "ReportStateAndNotificationRequest" +}, +"response": { +"$ref": "ReportStateAndNotificationResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/homegraph" +] +}, +"requestSync": { +"description": "Requests Google to send an `action.devices.SYNC` [intent](https://developers.home.google.com/cloud-to-cloud/intents/sync) to your smart home Action to update device metadata for the given user. The third-party user's identity is passed via the `agent_user_id` (see RequestSyncDevicesRequest). This request must be authorized using service account credentials from your Actions console project.", +"flatPath": "v1/devices:requestSync", +"httpMethod": "POST", +"id": "homegraph.devices.requestSync", +"parameterOrder": [], +"parameters": {}, +"path": "v1/devices:requestSync", +"request": { +"$ref": "RequestSyncDevicesRequest" +}, +"response": { +"$ref": "RequestSyncDevicesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/homegraph" +] +}, +"sync": { +"description": "Gets all the devices associated with the given third-party user. The third-party user's identity is passed in via the `agent_user_id` (see SyncRequest). This request must be authorized using service account credentials from your Actions console project.", +"flatPath": "v1/devices:sync", +"httpMethod": "POST", +"id": "homegraph.devices.sync", +"parameterOrder": [], +"parameters": {}, +"path": "v1/devices:sync", +"request": { +"$ref": "SyncRequest" +}, +"response": { +"$ref": "SyncResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/homegraph" +] +} +} +} +}, +"revision": "20240621", +"rootUrl": "https://homegraph.googleapis.com/", +"schemas": { +"AgentDeviceId": { +"description": "Third-party device ID for one device.", +"id": "AgentDeviceId", +"properties": { +"id": { +"description": "Third-party device ID.", +"type": "string" +} +}, +"type": "object" +}, +"AgentOtherDeviceId": { +"description": "Alternate third-party device ID.", +"id": "AgentOtherDeviceId", +"properties": { +"agentId": { +"description": "Project ID for your smart home Action.", +"type": "string" +}, +"deviceId": { +"description": "Unique third-party device ID.", +"type": "string" +} +}, +"type": "object" +}, +"Device": { +"description": "Third-party device definition.", +"id": "Device", +"properties": { +"attributes": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Attributes for the traits supported by the device.", +"type": "object" +}, +"customData": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Custom device attributes stored in Home Graph and provided to your smart home Action in each [QUERY](https://developers.home.google.com/cloud-to-cloud/intents/query) and [EXECUTE](https://developers.home.google.com/cloud-to-cloud/intents/execute) intent. Data in this object has a few constraints: No sensitive information, including but not limited to Personally Identifiable Information.", +"type": "object" +}, +"deviceInfo": { +"$ref": "DeviceInfo", +"description": "Device manufacturer, model, hardware version, and software version." +}, +"id": { +"description": "Third-party device ID.", +"type": "string" +}, +"name": { +"$ref": "DeviceNames", +"description": "Names given to this device by your smart home Action." +}, +"notificationSupportedByAgent": { +"description": "Indicates whether your smart home Action will report notifications to Google for this device via ReportStateAndNotification. If your smart home Action enables users to control device notifications, you should update this field and call RequestSyncDevices.", +"type": "boolean" +}, +"otherDeviceIds": { +"description": "Alternate IDs associated with this device. This is used to identify cloud synced devices enabled for [local fulfillment](https://developers.home.google.com/local-home/overview).", +"items": { +"$ref": "AgentOtherDeviceId" +}, +"type": "array" +}, +"roomHint": { +"description": "Suggested name for the room where this device is installed. Google attempts to use this value during user setup.", +"type": "string" +}, +"structureHint": { +"description": "Suggested name for the structure where this device is installed. Google attempts to use this value during user setup.", +"type": "string" +}, +"traits": { +"description": "Traits supported by the device. See [device traits](https://developers.home.google.com/cloud-to-cloud/traits).", +"items": { +"type": "string" +}, +"type": "array" +}, +"type": { +"description": "Hardware type of the device. See [device types](https://developers.home.google.com/cloud-to-cloud/guides).", +"type": "string" +}, +"willReportState": { +"description": "Indicates whether your smart home Action will report state of this device to Google via ReportStateAndNotification.", +"type": "boolean" +} +}, +"type": "object" +}, +"DeviceInfo": { +"description": "Device information.", +"id": "DeviceInfo", +"properties": { +"hwVersion": { +"description": "Device hardware version.", +"type": "string" +}, +"manufacturer": { +"description": "Device manufacturer.", +"type": "string" +}, +"model": { +"description": "Device model.", +"type": "string" +}, +"swVersion": { +"description": "Device software version.", +"type": "string" +} +}, +"type": "object" +}, +"DeviceNames": { +"description": "Identifiers used to describe the device.", +"id": "DeviceNames", +"properties": { +"defaultNames": { +"description": "List of names provided by the manufacturer rather than the user, such as serial numbers, SKUs, etc.", +"items": { +"type": "string" +}, +"type": "array" +}, +"name": { +"description": "Primary name of the device, generally provided by the user.", +"type": "string" +}, +"nicknames": { +"description": "Additional names provided by the user for the device.", +"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" +}, +"QueryRequest": { +"description": "Request type for the [`Query`](#google.home.graph.v1.HomeGraphApiService.Query) call.", +"id": "QueryRequest", +"properties": { +"agentUserId": { +"description": "Required. Third-party user ID.", +"type": "string" +}, +"inputs": { +"description": "Required. Inputs containing third-party device IDs for which to get the device states.", +"items": { +"$ref": "QueryRequestInput" +}, +"type": "array" +}, +"requestId": { +"description": "Request ID used for debugging.", +"type": "string" +} +}, +"type": "object" +}, +"QueryRequestInput": { +"description": "Device ID inputs to QueryRequest.", +"id": "QueryRequestInput", +"properties": { +"payload": { +"$ref": "QueryRequestPayload", +"description": "Payload containing third-party device IDs." +} +}, +"type": "object" +}, +"QueryRequestPayload": { +"description": "Payload containing device IDs.", +"id": "QueryRequestPayload", +"properties": { +"devices": { +"description": "Third-party device IDs for which to get the device states.", +"items": { +"$ref": "AgentDeviceId" +}, +"type": "array" +} +}, +"type": "object" +}, +"QueryResponse": { +"description": "Response type for the [`Query`](#google.home.graph.v1.HomeGraphApiService.Query) call. This should follow the same format as the Google smart home `action.devices.QUERY` [response](https://developers.home.google.com/cloud-to-cloud/intents/query). Example: ```json { \"requestId\": \"ff36a3cc-ec34-11e6-b1a0-64510650abcf\", \"payload\": { \"devices\": { \"123\": { \"on\": true, \"online\": true }, \"456\": { \"on\": true, \"online\": true, \"brightness\": 80, \"color\": { \"name\": \"cerulean\", \"spectrumRGB\": 31655 } } } } } ```", +"id": "QueryResponse", +"properties": { +"payload": { +"$ref": "QueryResponsePayload", +"description": "Device states for the devices given in the request." +}, +"requestId": { +"description": "Request ID used for debugging. Copied from the request.", +"type": "string" +} +}, +"type": "object" +}, +"QueryResponsePayload": { +"description": "Payload containing device states information.", +"id": "QueryResponsePayload", +"properties": { +"devices": { +"additionalProperties": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"type": "object" +}, +"description": "States of the devices. Map of third-party device ID to struct of device states.", +"type": "object" +} +}, +"type": "object" +}, +"ReportStateAndNotificationDevice": { +"description": "The states and notifications specific to a device.", +"id": "ReportStateAndNotificationDevice", +"properties": { +"notifications": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Notifications metadata for devices. See the **Device NOTIFICATIONS** section of the individual trait [reference guides](https://developers.home.google.com/cloud-to-cloud/traits).", +"type": "object" +}, +"states": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "States of devices to update. See the **Device STATES** section of the individual trait [reference guides](https://developers.home.google.com/cloud-to-cloud/traits).", +"type": "object" +} +}, +"type": "object" +}, +"ReportStateAndNotificationRequest": { +"description": "Request type for the [`ReportStateAndNotification`](#google.home.graph.v1.HomeGraphApiService.ReportStateAndNotification) call. It may include states, notifications, or both. States and notifications are defined per `device_id` (for example, \"123\" and \"456\" in the following example). Example: ```json { \"requestId\": \"ff36a3cc-ec34-11e6-b1a0-64510650abcf\", \"agentUserId\": \"1234\", \"payload\": { \"devices\": { \"states\": { \"123\": { \"on\": true }, \"456\": { \"on\": true, \"brightness\": 10 } }, } } } ```", +"id": "ReportStateAndNotificationRequest", +"properties": { +"agentUserId": { +"description": "Required. Third-party user ID.", +"type": "string" +}, +"eventId": { +"description": "Unique identifier per event (for example, a doorbell press).", +"type": "string" +}, +"followUpToken": { +"deprecated": true, +"description": "Deprecated.", +"type": "string" +}, +"payload": { +"$ref": "StateAndNotificationPayload", +"description": "Required. State of devices to update and notification metadata for devices." +}, +"requestId": { +"description": "Request ID used for debugging.", +"type": "string" +} +}, +"type": "object" +}, +"ReportStateAndNotificationResponse": { +"description": "Response type for the [`ReportStateAndNotification`](#google.home.graph.v1.HomeGraphApiService.ReportStateAndNotification) call.", +"id": "ReportStateAndNotificationResponse", +"properties": { +"requestId": { +"description": "Request ID copied from ReportStateAndNotificationRequest.", +"type": "string" +} +}, +"type": "object" +}, +"RequestSyncDevicesRequest": { +"description": "Request type for the [`RequestSyncDevices`](#google.home.graph.v1.HomeGraphApiService.RequestSyncDevices) call.", +"id": "RequestSyncDevicesRequest", +"properties": { +"agentUserId": { +"description": "Required. Third-party user ID.", +"type": "string" +}, +"async": { +"description": "Optional. If set, the request will be added to a queue and a response will be returned immediately. This enables concurrent requests for the given `agent_user_id`, but the caller will not receive any error responses.", +"type": "boolean" +} +}, +"type": "object" +}, +"RequestSyncDevicesResponse": { +"description": "Response type for the [`RequestSyncDevices`](#google.home.graph.v1.HomeGraphApiService.RequestSyncDevices) call. Intentionally empty upon success. An HTTP response code is returned with more details upon failure.", +"id": "RequestSyncDevicesResponse", +"properties": {}, +"type": "object" +}, +"StateAndNotificationPayload": { +"description": "Payload containing the state and notification information for devices.", +"id": "StateAndNotificationPayload", +"properties": { +"devices": { +"$ref": "ReportStateAndNotificationDevice", +"description": "The devices for updating state and sending notifications." +} +}, +"type": "object" +}, +"SyncRequest": { +"description": "Request type for the [`Sync`](#google.home.graph.v1.HomeGraphApiService.Sync) call.", +"id": "SyncRequest", +"properties": { +"agentUserId": { +"description": "Required. Third-party user ID.", +"type": "string" +}, +"requestId": { +"description": "Request ID used for debugging.", +"type": "string" +} +}, +"type": "object" +}, +"SyncResponse": { +"description": "Response type for the [`Sync`](#google.home.graph.v1.HomeGraphApiService.Sync) call. This should follow the same format as the Google smart home `action.devices.SYNC` [response](https://developers.home.google.com/cloud-to-cloud/intents/sync). Example: ```json { \"requestId\": \"ff36a3cc-ec34-11e6-b1a0-64510650abcf\", \"payload\": { \"agentUserId\": \"1836.15267389\", \"devices\": [{ \"id\": \"123\", \"type\": \"action.devices.types.OUTLET\", \"traits\": [ \"action.devices.traits.OnOff\" ], \"name\": { \"defaultNames\": [\"My Outlet 1234\"], \"name\": \"Night light\", \"nicknames\": [\"wall plug\"] }, \"willReportState\": false, \"deviceInfo\": { \"manufacturer\": \"lights-out-inc\", \"model\": \"hs1234\", \"hwVersion\": \"3.2\", \"swVersion\": \"11.4\" }, \"customData\": { \"fooValue\": 74, \"barValue\": true, \"bazValue\": \"foo\" } }] } } ```", +"id": "SyncResponse", +"properties": { +"payload": { +"$ref": "SyncResponsePayload", +"description": "Devices associated with the third-party user." +}, +"requestId": { +"description": "Request ID used for debugging. Copied from the request.", +"type": "string" +} +}, +"type": "object" +}, +"SyncResponsePayload": { +"description": "Payload containing device information.", +"id": "SyncResponsePayload", +"properties": { +"agentUserId": { +"description": "Third-party user ID", +"type": "string" +}, +"devices": { +"description": "Devices associated with the third-party user.", +"items": { +"$ref": "Device" +}, +"type": "array" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "HomeGraph 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/index.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/index.json new file mode 100644 index 0000000000000000000000000000000000000000..12c5bff7756cce8c6cba182a3f30b1742a03192b --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/index.json @@ -0,0 +1,4574 @@ +{ + "kind": "discovery#directoryList", + "discoveryVersion": "v1", + "items": [ + { + "kind": "discovery#directoryItem", + "id": "abusiveexperiencereport:v1", + "name": "abusiveexperiencereport", + "version": "v1", + "title": "Abusive Experience Report API", + "description": "Views Abusive Experience Report data, and gets a list of sites that have a significant number of abusive experiences.", + "discoveryRestUrl": "https://abusiveexperiencereport.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/abusive-experience-report/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "acceleratedmobilepageurl:v1", + "name": "acceleratedmobilepageurl", + "version": "v1", + "title": "Accelerated Mobile Pages (AMP) URL API", + "description": "Retrieves the list of AMP URLs (and equivalent AMP Cache URLs) for a given list of public URL(s).", + "discoveryRestUrl": "https://acceleratedmobilepageurl.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/amp/cache/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "accessapproval:v1", + "name": "accessapproval", + "version": "v1", + "title": "Access Approval API", + "description": "An API for controlling access to data by Google personnel.", + "discoveryRestUrl": "https://accessapproval.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/access-approval/docs", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "accesscontextmanager:v1beta", + "name": "accesscontextmanager", + "version": "v1beta", + "title": "Access Context Manager API", + "description": "An API for setting attribute based access control to requests to GCP services.", + "discoveryRestUrl": "https://accesscontextmanager.googleapis.com/$discovery/rest?version=v1beta", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/access-context-manager/docs/reference/rest/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "accesscontextmanager:v1", + "name": "accesscontextmanager", + "version": "v1", + "title": "Access Context Manager API", + "description": "An API for setting attribute based access control to requests to GCP services.", + "discoveryRestUrl": "https://accesscontextmanager.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/access-context-manager/docs/reference/rest/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "adexchangebuyer:v1.2", + "name": "adexchangebuyer", + "version": "v1.2", + "title": "Ad Exchange Buyer API", + "description": "Accesses your bidding-account information, submits creatives for validation, finds available direct deals, and retrieves performance reports.", + "discoveryRestUrl": "https://www.googleapis.com/discovery/v1/apis/adexchangebuyer/v1.2/rest", + "discoveryLink": "./apis/adexchangebuyer/v1.2/rest", + "icons": { + "x16": "https://www.google.com/images/icons/product/doubleclick-16.gif", + "x32": "https://www.google.com/images/icons/product/doubleclick-32.gif" + }, + "documentationLink": "https://developers.google.com/ad-exchange/buyer-rest", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "adexchangebuyer:v1.3", + "name": "adexchangebuyer", + "version": "v1.3", + "title": "Ad Exchange Buyer API", + "description": "Accesses your bidding-account information, submits creatives for validation, finds available direct deals, and retrieves performance reports.", + "discoveryRestUrl": "https://www.googleapis.com/discovery/v1/apis/adexchangebuyer/v1.3/rest", + "discoveryLink": "./apis/adexchangebuyer/v1.3/rest", + "icons": { + "x16": "https://www.google.com/images/icons/product/doubleclick-16.gif", + "x32": "https://www.google.com/images/icons/product/doubleclick-32.gif" + }, + "documentationLink": "https://developers.google.com/ad-exchange/buyer-rest", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "adexchangebuyer:v1.4", + "name": "adexchangebuyer", + "version": "v1.4", + "title": "Ad Exchange Buyer API", + "description": "Accesses your bidding-account information, submits creatives for validation, finds available direct deals, and retrieves performance reports.", + "discoveryRestUrl": "https://www.googleapis.com/discovery/v1/apis/adexchangebuyer/v1.4/rest", + "discoveryLink": "./apis/adexchangebuyer/v1.4/rest", + "icons": { + "x16": "https://www.google.com/images/icons/product/doubleclick-16.gif", + "x32": "https://www.google.com/images/icons/product/doubleclick-32.gif" + }, + "documentationLink": "https://developers.google.com/ad-exchange/buyer-rest", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "adexchangebuyer2:v2beta1", + "name": "adexchangebuyer2", + "version": "v2beta1", + "title": "Ad Exchange Buyer API II", + "description": "Accesses the latest features for managing Authorized Buyers accounts, Real-Time Bidding configurations and auction metrics, and Marketplace programmatic deals.", + "discoveryRestUrl": "https://adexchangebuyer.googleapis.com/$discovery/rest?version=v2beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/authorized-buyers/apis/reference/rest/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "adexperiencereport:v1", + "name": "adexperiencereport", + "version": "v1", + "title": "Ad Experience Report API", + "description": "Views Ad Experience Report data, and gets a list of sites that have a significant number of annoying ads.", + "discoveryRestUrl": "https://adexperiencereport.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/ad-experience-report/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "admin:datatransfer_v1", + "name": "admin", + "version": "datatransfer_v1", + "title": "Admin SDK API", + "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.", + "discoveryRestUrl": "https://admin.googleapis.com/$discovery/rest?version=datatransfer_v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "http://developers.google.com/admin-sdk/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "admin:directory_v1", + "name": "admin", + "version": "directory_v1", + "title": "Admin SDK API", + "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.", + "discoveryRestUrl": "https://admin.googleapis.com/$discovery/rest?version=directory_v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "http://developers.google.com/admin-sdk/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "admin:reports_v1", + "name": "admin", + "version": "reports_v1", + "title": "Admin SDK API", + "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.", + "discoveryRestUrl": "https://admin.googleapis.com/$discovery/rest?version=reports_v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "http://developers.google.com/admin-sdk/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "admob:v1beta", + "name": "admob", + "version": "v1beta", + "title": "AdMob API", + "description": "The AdMob API allows publishers to programmatically get information about their AdMob account.", + "discoveryRestUrl": "https://admob.googleapis.com/$discovery/rest?version=v1beta", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/admob/api/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "admob:v1", + "name": "admob", + "version": "v1", + "title": "AdMob API", + "description": "The AdMob API allows publishers to programmatically get information about their AdMob account.", + "discoveryRestUrl": "https://admob.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/admob/api/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "adsense:v1.4", + "name": "adsense", + "version": "v1.4", + "title": "AdSense Management API", + "description": "The AdSense Management API allows publishers to access their inventory and run earnings and performance reports.", + "discoveryRestUrl": "https://adsense.googleapis.com/$discovery/rest?version=v1.4", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "http://code.google.com/apis/adsense/management/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "adsensehost:v4.1", + "name": "adsensehost", + "version": "v4.1", + "title": "AdSense Host API", + "description": "The AdSense Host API gives AdSense Hosts access to report generation, ad code generation, and publisher management capabilities.", + "discoveryRestUrl": "https://adsensehost.googleapis.com/$discovery/rest?version=v4.1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/adsense/host/index", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "alertcenter:v1beta1", + "name": "alertcenter", + "version": "v1beta1", + "title": "G Suite Alert Center API", + "description": "Manages alerts on issues affecting your domain.", + "discoveryRestUrl": "https://alertcenter.googleapis.com/$discovery/rest?version=v1beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/admin-sdk/alertcenter/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "analytics:v3", + "name": "analytics", + "version": "v3", + "title": "Google Analytics API", + "description": "The Analytics API provides access to Analytics configuration and report data.", + "discoveryRestUrl": "https://analytics.googleapis.com/$discovery/rest?version=v3", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "http://code.google.com/apis/analytics/docs/mgmt/home.html", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "analyticsadmin:v1alpha", + "name": "analyticsadmin", + "version": "v1alpha", + "title": "Google Analytics Admin API", + "description": "", + "discoveryRestUrl": "https://analyticsadmin.googleapis.com/$discovery/rest?version=v1alpha", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "http://code.google.com/apis/analytics/docs/mgmt/home.html", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "analyticsdata:v1alpha", + "name": "analyticsdata", + "version": "v1alpha", + "title": "Google Analytics Data API", + "description": "Accesses report data in Google Analytics.", + "discoveryRestUrl": "https://analyticsdata.googleapis.com/$discovery/rest?version=v1alpha", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/analytics/trusted-testing/analytics-data/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "analyticsreporting:v4", + "name": "analyticsreporting", + "version": "v4", + "title": "Analytics Reporting API", + "description": "Accesses Analytics report data.", + "discoveryRestUrl": "https://analyticsreporting.googleapis.com/$discovery/rest?version=v4", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/analytics/devguides/reporting/core/v4/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "androiddeviceprovisioning:v1", + "name": "androiddeviceprovisioning", + "version": "v1", + "title": "Android Device Provisioning Partner API", + "description": "Automates Android zero-touch enrollment for device resellers, customers, and EMMs.", + "discoveryRestUrl": "https://androiddeviceprovisioning.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/zero-touch/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "androidenterprise:v1", + "name": "androidenterprise", + "version": "v1", + "title": "Google Play EMM API", + "description": "Manages the deployment of apps to Android Enterprise devices.", + "discoveryRestUrl": "https://androidenterprise.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "androidmanagement:v1", + "name": "androidmanagement", + "version": "v1", + "title": "Android Management API", + "description": "The Android Management API provides remote enterprise management of Android devices and apps.", + "discoveryRestUrl": "https://androidmanagement.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/android/management", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "androidpublisher:v3", + "name": "androidpublisher", + "version": "v3", + "title": "Google Play Android Developer API", + "description": "Lets Android application developers access their Google Play accounts.", + "discoveryRestUrl": "https://androidpublisher.googleapis.com/$discovery/rest?version=v3", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/android-publisher", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "apigateway:v1beta", + "name": "apigateway", + "version": "v1beta", + "title": "API Gateway API", + "description": "", + "discoveryRestUrl": "https://apigateway.googleapis.com/$discovery/rest?version=v1beta", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": " https://cloud.google.com/api-gateway/docs", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "apigee:v1", + "name": "apigee", + "version": "v1", + "title": "Apigee API", + "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. Get started using the APIs \u003chttps://cloud.google.com/apigee/docs/api-platform/get-started/api-get-started\u003e. *Note:* This product is available as a free trial for a time period of 60 days.", + "discoveryRestUrl": "https://apigee.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/apigee-api-management/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "appengine:v1alpha", + "name": "appengine", + "version": "v1alpha", + "title": "App Engine Admin API", + "description": "Provisions and manages developers' App Engine applications.", + "discoveryRestUrl": "https://appengine.googleapis.com/$discovery/rest?version=v1alpha", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/appengine/docs/admin-api/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "appengine:v1beta", + "name": "appengine", + "version": "v1beta", + "title": "App Engine Admin API", + "description": "Provisions and manages developers' App Engine applications.", + "discoveryRestUrl": "https://appengine.googleapis.com/$discovery/rest?version=v1beta", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/appengine/docs/admin-api/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "appengine:v1beta4", + "name": "appengine", + "version": "v1beta4", + "title": "App Engine Admin API", + "description": "Provisions and manages developers' App Engine applications.", + "discoveryRestUrl": "https://appengine.googleapis.com/$discovery/rest?version=v1beta4", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/appengine/docs/admin-api/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "appengine:v1beta5", + "name": "appengine", + "version": "v1beta5", + "title": "App Engine Admin API", + "description": "Provisions and manages developers' App Engine applications.", + "discoveryRestUrl": "https://appengine.googleapis.com/$discovery/rest?version=v1beta5", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/appengine/docs/admin-api/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "appengine:v1", + "name": "appengine", + "version": "v1", + "title": "App Engine Admin API", + "description": "Provisions and manages developers' App Engine applications.", + "discoveryRestUrl": "https://appengine.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/appengine/docs/admin-api/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "area120tables:v1alpha1", + "name": "area120tables", + "version": "v1alpha1", + "title": "Area120 Tables API", + "description": "", + "discoveryRestUrl": "https://area120tables.googleapis.com/$discovery/rest?version=v1alpha1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://tables.area120.google.com", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "artifactregistry:v1beta1", + "name": "artifactregistry", + "version": "v1beta1", + "title": "Artifact Registry API", + "description": "Store and manage build artifacts in a scalable and integrated service built on Google infrastructure.", + "discoveryRestUrl": "https://artifactregistry.googleapis.com/$discovery/rest?version=v1beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/artifacts/docs/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "artifactregistry:v1beta2", + "name": "artifactregistry", + "version": "v1beta2", + "title": "Artifact Registry API", + "description": "Store and manage build artifacts in a scalable and integrated service built on Google infrastructure.", + "discoveryRestUrl": "https://artifactregistry.googleapis.com/$discovery/rest?version=v1beta2", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/artifacts/docs/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "assuredworkloads:v1", + "name": "assuredworkloads", + "version": "v1", + "title": "Assured Workloads API", + "description": "", + "discoveryRestUrl": "https://assuredworkloads.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "bigquery:v2", + "name": "bigquery", + "version": "v2", + "title": "BigQuery API", + "description": "A data platform for customers to create, manage, share and query data.", + "discoveryRestUrl": "https://bigquery.googleapis.com/$discovery/rest?version=v2", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/bigquery/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "bigqueryconnection:v1beta1", + "name": "bigqueryconnection", + "version": "v1beta1", + "title": "BigQuery Connection API", + "description": "Allows users to manage BigQuery connections to external data sources.", + "discoveryRestUrl": "https://bigqueryconnection.googleapis.com/$discovery/rest?version=v1beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/bigquery/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "bigquerydatatransfer:v1", + "name": "bigquerydatatransfer", + "version": "v1", + "title": "BigQuery Data Transfer API", + "description": "Schedule queries or transfer external data from SaaS applications to Google BigQuery on a regular basis.", + "discoveryRestUrl": "https://bigquerydatatransfer.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/bigquery/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "bigqueryreservation:v1alpha2", + "name": "bigqueryreservation", + "version": "v1alpha2", + "title": "BigQuery Reservation API", + "description": "A service to modify your BigQuery flat-rate reservations.", + "discoveryRestUrl": "https://bigqueryreservation.googleapis.com/$discovery/rest?version=v1alpha2", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/bigquery/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "bigqueryreservation:v1beta1", + "name": "bigqueryreservation", + "version": "v1beta1", + "title": "BigQuery Reservation API", + "description": "A service to modify your BigQuery flat-rate reservations.", + "discoveryRestUrl": "https://bigqueryreservation.googleapis.com/$discovery/rest?version=v1beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/bigquery/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "bigqueryreservation:v1", + "name": "bigqueryreservation", + "version": "v1", + "title": "BigQuery Reservation API", + "description": "A service to modify your BigQuery flat-rate reservations.", + "discoveryRestUrl": "https://bigqueryreservation.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/bigquery/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "bigtableadmin:v1", + "name": "bigtableadmin", + "version": "v1", + "title": "Cloud Bigtable Admin API", + "description": "Administer your Cloud Bigtable tables and instances.", + "discoveryRestUrl": "https://bigtableadmin.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/bigtable/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "bigtableadmin:v2", + "name": "bigtableadmin", + "version": "v2", + "title": "Cloud Bigtable Admin API", + "description": "Administer your Cloud Bigtable tables and instances.", + "discoveryRestUrl": "https://bigtableadmin.googleapis.com/$discovery/rest?version=v2", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/bigtable/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "billingbudgets:v1beta1", + "name": "billingbudgets", + "version": "v1beta1", + "title": "Cloud Billing Budget API", + "description": "The Cloud Billing Budget API stores Cloud Billing budgets, which define a budget plan and the rules to execute as spend is tracked against that plan.", + "discoveryRestUrl": "https://billingbudgets.googleapis.com/$discovery/rest?version=v1beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/billing/docs/how-to/budget-api-overview", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "billingbudgets:v1", + "name": "billingbudgets", + "version": "v1", + "title": "Cloud Billing Budget API", + "description": "The Cloud Billing Budget API stores Cloud Billing budgets, which define a budget plan and the rules to execute as spend is tracked against that plan.", + "discoveryRestUrl": "https://billingbudgets.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/billing/docs/how-to/budget-api-overview", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "binaryauthorization:v1beta1", + "name": "binaryauthorization", + "version": "v1beta1", + "title": "Binary Authorization API", + "description": "The management interface for Binary Authorization, a system providing policy control for images deployed to Kubernetes Engine clusters.", + "discoveryRestUrl": "https://binaryauthorization.googleapis.com/$discovery/rest?version=v1beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/binary-authorization/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "binaryauthorization:v1", + "name": "binaryauthorization", + "version": "v1", + "title": "Binary Authorization API", + "description": "The management interface for Binary Authorization, a system providing policy control for images deployed to Kubernetes Engine clusters.", + "discoveryRestUrl": "https://binaryauthorization.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/binary-authorization/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "blogger:v2", + "name": "blogger", + "version": "v2", + "title": "Blogger API v3", + "description": "The Blogger API provides access to posts, comments and pages of a Blogger blog.", + "discoveryRestUrl": "https://blogger.googleapis.com/$discovery/rest?version=v2", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/blogger/docs/3.0/getting_started", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "blogger:v3", + "name": "blogger", + "version": "v3", + "title": "Blogger API v3", + "description": "The Blogger API provides access to posts, comments and pages of a Blogger blog.", + "discoveryRestUrl": "https://blogger.googleapis.com/$discovery/rest?version=v3", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/blogger/docs/3.0/getting_started", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "books:v1", + "name": "books", + "version": "v1", + "title": "Books API", + "description": "The Google Books API allows clients to access the Google Books repository.", + "discoveryRestUrl": "https://books.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://code.google.com/apis/books/docs/v1/getting_started.html", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "calendar:v3", + "name": "calendar", + "version": "v3", + "title": "Google Calendar API", + "description": "The Google Calendar API lets you manage your calendars and events.", + "discoveryRestUrl": "https://calendar-json.googleapis.com/$discovery/rest?version=v3", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "http://code.google.com/apis/calendar/v3/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "chat:v1", + "name": "chat", + "version": "v1", + "title": "Hangouts Chat API", + "description": "Enables bots to fetch information and perform actions in Hangouts Chat.", + "discoveryRestUrl": "https://chat.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/hangouts/chat", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "chromeuxreport:v1", + "name": "chromeuxreport", + "version": "v1", + "title": "Chrome UX Report API", + "description": "The Chrome UX Report API lets you view real user experience data for millions of websites.", + "discoveryRestUrl": "https://chromeuxreport.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/web/tools/chrome-user-experience-report/api/reference", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "civicinfo:v2", + "name": "civicinfo", + "version": "v2", + "title": "Google Civic Information API", + "description": "Provides polling places, early vote locations, contest data, election officials, and government representatives for U.S. residential addresses.", + "discoveryRestUrl": "https://civicinfo.googleapis.com/$discovery/rest?version=v2", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/civic-information/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "classroom:v1", + "name": "classroom", + "version": "v1", + "title": "Google Classroom API", + "description": "Manages classes, rosters, and invitations in Google Classroom.", + "discoveryRestUrl": "https://classroom.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/classroom", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "cloudasset:v1p1beta1", + "name": "cloudasset", + "version": "v1p1beta1", + "title": "Cloud Asset API", + "description": "The cloud asset API manages the history and inventory of cloud resources.", + "discoveryRestUrl": "https://cloudasset.googleapis.com/$discovery/rest?version=v1p1beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/asset-inventory/docs/quickstart", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "cloudasset:v1p4beta1", + "name": "cloudasset", + "version": "v1p4beta1", + "title": "Cloud Asset API", + "description": "The cloud asset API manages the history and inventory of cloud resources.", + "discoveryRestUrl": "https://cloudasset.googleapis.com/$discovery/rest?version=v1p4beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/asset-inventory/docs/quickstart", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "cloudasset:v1p5beta1", + "name": "cloudasset", + "version": "v1p5beta1", + "title": "Cloud Asset API", + "description": "The cloud asset API manages the history and inventory of cloud resources.", + "discoveryRestUrl": "https://cloudasset.googleapis.com/$discovery/rest?version=v1p5beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/asset-inventory/docs/quickstart", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "cloudasset:v1beta1", + "name": "cloudasset", + "version": "v1beta1", + "title": "Cloud Asset API", + "description": "The cloud asset API manages the history and inventory of cloud resources.", + "discoveryRestUrl": "https://cloudasset.googleapis.com/$discovery/rest?version=v1beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/asset-inventory/docs/quickstart", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "cloudasset:v1", + "name": "cloudasset", + "version": "v1", + "title": "Cloud Asset API", + "description": "The cloud asset API manages the history and inventory of cloud resources.", + "discoveryRestUrl": "https://cloudasset.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/asset-inventory/docs/quickstart", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "cloudbilling:v1", + "name": "cloudbilling", + "version": "v1", + "title": "Cloud Billing API", + "description": "Allows developers to manage billing for their Google Cloud Platform projects programmatically.", + "discoveryRestUrl": "https://cloudbilling.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/billing/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "cloudbuild:v1alpha1", + "name": "cloudbuild", + "version": "v1alpha1", + "title": "Cloud Build API", + "description": "Creates and manages builds on Google Cloud Platform.", + "discoveryRestUrl": "https://cloudbuild.googleapis.com/$discovery/rest?version=v1alpha1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/cloud-build/docs/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "cloudbuild:v1alpha2", + "name": "cloudbuild", + "version": "v1alpha2", + "title": "Cloud Build API", + "description": "Creates and manages builds on Google Cloud Platform.", + "discoveryRestUrl": "https://cloudbuild.googleapis.com/$discovery/rest?version=v1alpha2", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/cloud-build/docs/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "cloudbuild:v1", + "name": "cloudbuild", + "version": "v1", + "title": "Cloud Build API", + "description": "Creates and manages builds on Google Cloud Platform.", + "discoveryRestUrl": "https://cloudbuild.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/cloud-build/docs/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "clouddebugger:v2", + "name": "clouddebugger", + "version": "v2", + "title": "Cloud Debugger API", + "description": "Examines the call stack and variables of a running application without stopping or slowing it down.", + "discoveryRestUrl": "https://clouddebugger.googleapis.com/$discovery/rest?version=v2", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/debugger", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "clouderrorreporting:v1beta1", + "name": "clouderrorreporting", + "version": "v1beta1", + "title": "Error Reporting API", + "description": "Groups and counts similar errors from cloud services and applications, reports new errors, and provides access to error groups and their associated errors.", + "discoveryRestUrl": "https://clouderrorreporting.googleapis.com/$discovery/rest?version=v1beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/error-reporting/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "cloudfunctions:v1", + "name": "cloudfunctions", + "version": "v1", + "title": "Cloud Functions API", + "description": "Manages lightweight user-provided functions executed in response to events.", + "discoveryRestUrl": "https://cloudfunctions.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/functions", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "cloudidentity:v1beta1", + "name": "cloudidentity", + "version": "v1beta1", + "title": "Cloud Identity API", + "description": "API for provisioning and managing identity resources.", + "discoveryRestUrl": "https://cloudidentity.googleapis.com/$discovery/rest?version=v1beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/identity/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "cloudidentity:v1", + "name": "cloudidentity", + "version": "v1", + "title": "Cloud Identity API", + "description": "API for provisioning and managing identity resources.", + "discoveryRestUrl": "https://cloudidentity.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/identity/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "cloudiot:v1", + "name": "cloudiot", + "version": "v1", + "title": "Cloud IoT API", + "description": "Registers and manages IoT (Internet of Things) devices that connect to the Google Cloud Platform.", + "discoveryRestUrl": "https://cloudiot.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/iot", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "cloudkms:v1", + "name": "cloudkms", + "version": "v1", + "title": "Cloud Key Management Service (KMS) API", + "description": "Manages keys and performs cryptographic operations in a central cloud service, for direct use by other cloud resources and applications.", + "discoveryRestUrl": "https://cloudkms.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/kms/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "cloudprofiler:v2", + "name": "cloudprofiler", + "version": "v2", + "title": "Stackdriver Profiler API", + "description": "Manages continuous profiling information.", + "discoveryRestUrl": "https://cloudprofiler.googleapis.com/$discovery/rest?version=v2", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/profiler/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "cloudresourcemanager:v1beta1", + "name": "cloudresourcemanager", + "version": "v1beta1", + "title": "Cloud Resource Manager API", + "description": "Creates, reads, and updates metadata for Google Cloud Platform resource containers.", + "discoveryRestUrl": "https://cloudresourcemanager.googleapis.com/$discovery/rest?version=v1beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/resource-manager", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "cloudresourcemanager:v2beta1", + "name": "cloudresourcemanager", + "version": "v2beta1", + "title": "Cloud Resource Manager API", + "description": "Creates, reads, and updates metadata for Google Cloud Platform resource containers.", + "discoveryRestUrl": "https://cloudresourcemanager.googleapis.com/$discovery/rest?version=v2beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/resource-manager", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "cloudresourcemanager:v1", + "name": "cloudresourcemanager", + "version": "v1", + "title": "Cloud Resource Manager API", + "description": "Creates, reads, and updates metadata for Google Cloud Platform resource containers.", + "discoveryRestUrl": "https://cloudresourcemanager.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/resource-manager", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "cloudresourcemanager:v2", + "name": "cloudresourcemanager", + "version": "v2", + "title": "Cloud Resource Manager API", + "description": "Creates, reads, and updates metadata for Google Cloud Platform resource containers.", + "discoveryRestUrl": "https://cloudresourcemanager.googleapis.com/$discovery/rest?version=v2", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/resource-manager", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "cloudscheduler:v1beta1", + "name": "cloudscheduler", + "version": "v1beta1", + "title": "Cloud Scheduler API", + "description": "Creates and manages jobs run on a regular recurring schedule.", + "discoveryRestUrl": "https://cloudscheduler.googleapis.com/$discovery/rest?version=v1beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/scheduler/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "cloudscheduler:v1", + "name": "cloudscheduler", + "version": "v1", + "title": "Cloud Scheduler API", + "description": "Creates and manages jobs run on a regular recurring schedule.", + "discoveryRestUrl": "https://cloudscheduler.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/scheduler/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "cloudsearch:v1", + "name": "cloudsearch", + "version": "v1", + "title": "Cloud Search API", + "description": "Cloud Search provides cloud-based search capabilities over G Suite data. The Cloud Search API allows indexing of non-G Suite data into Cloud Search.", + "discoveryRestUrl": "https://cloudsearch.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/cloud-search/docs/guides/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "cloudshell:v1alpha1", + "name": "cloudshell", + "version": "v1alpha1", + "title": "Cloud Shell API", + "description": "Allows users to start, configure, and connect to interactive shell sessions running in the cloud.", + "discoveryRestUrl": "https://cloudshell.googleapis.com/$discovery/rest?version=v1alpha1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/shell/docs/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "cloudshell:v1", + "name": "cloudshell", + "version": "v1", + "title": "Cloud Shell API", + "description": "Allows users to start, configure, and connect to interactive shell sessions running in the cloud.", + "discoveryRestUrl": "https://cloudshell.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/shell/docs/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "cloudtasks:v2beta2", + "name": "cloudtasks", + "version": "v2beta2", + "title": "Cloud Tasks API", + "description": "Manages the execution of large numbers of distributed requests.", + "discoveryRestUrl": "https://cloudtasks.googleapis.com/$discovery/rest?version=v2beta2", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/tasks/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "cloudtasks:v2beta3", + "name": "cloudtasks", + "version": "v2beta3", + "title": "Cloud Tasks API", + "description": "Manages the execution of large numbers of distributed requests.", + "discoveryRestUrl": "https://cloudtasks.googleapis.com/$discovery/rest?version=v2beta3", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/tasks/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "cloudtasks:v2", + "name": "cloudtasks", + "version": "v2", + "title": "Cloud Tasks API", + "description": "Manages the execution of large numbers of distributed requests.", + "discoveryRestUrl": "https://cloudtasks.googleapis.com/$discovery/rest?version=v2", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/tasks/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "cloudtrace:v2beta1", + "name": "cloudtrace", + "version": "v2beta1", + "title": "Cloud Trace API", + "description": "Sends application trace data to Cloud Trace for viewing. Trace data is collected for all App Engine applications by default. Trace data from other applications can be provided using this API. This library is used to interact with the Cloud Trace API directly. If you are looking to instrument your application for Cloud Trace, we recommend using OpenCensus.", + "discoveryRestUrl": "https://cloudtrace.googleapis.com/$discovery/rest?version=v2beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/trace", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "cloudtrace:v1", + "name": "cloudtrace", + "version": "v1", + "title": "Cloud Trace API", + "description": "Sends application trace data to Cloud Trace for viewing. Trace data is collected for all App Engine applications by default. Trace data from other applications can be provided using this API. This library is used to interact with the Cloud Trace API directly. If you are looking to instrument your application for Cloud Trace, we recommend using OpenCensus.", + "discoveryRestUrl": "https://cloudtrace.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/trace", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "cloudtrace:v2", + "name": "cloudtrace", + "version": "v2", + "title": "Cloud Trace API", + "description": "Sends application trace data to Cloud Trace for viewing. Trace data is collected for all App Engine applications by default. Trace data from other applications can be provided using this API. This library is used to interact with the Cloud Trace API directly. If you are looking to instrument your application for Cloud Trace, we recommend using OpenCensus.", + "discoveryRestUrl": "https://cloudtrace.googleapis.com/$discovery/rest?version=v2", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/trace", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "composer:v1beta1", + "name": "composer", + "version": "v1beta1", + "title": "Cloud Composer API", + "description": "Manages Apache Airflow environments on Google Cloud Platform.", + "discoveryRestUrl": "https://composer.googleapis.com/$discovery/rest?version=v1beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/composer/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "composer:v1", + "name": "composer", + "version": "v1", + "title": "Cloud Composer API", + "description": "Manages Apache Airflow environments on Google Cloud Platform.", + "discoveryRestUrl": "https://composer.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/composer/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "compute:alpha", + "name": "compute", + "version": "alpha", + "title": "Compute Engine API", + "description": "Creates and runs virtual machines on Google Cloud Platform.", + "discoveryRestUrl": "https://www.googleapis.com/discovery/v1/apis/compute/alpha/rest", + "discoveryLink": "./apis/compute/alpha/rest", + "icons": { + "x16": "https://www.google.com/images/icons/product/compute_engine-16.png", + "x32": "https://www.google.com/images/icons/product/compute_engine-32.png" + }, + "documentationLink": "https://developers.google.com/compute/docs/reference/latest/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "compute:beta", + "name": "compute", + "version": "beta", + "title": "Compute Engine API", + "description": "Creates and runs virtual machines on Google Cloud Platform.", + "discoveryRestUrl": "https://www.googleapis.com/discovery/v1/apis/compute/beta/rest", + "discoveryLink": "./apis/compute/beta/rest", + "icons": { + "x16": "https://www.google.com/images/icons/product/compute_engine-16.png", + "x32": "https://www.google.com/images/icons/product/compute_engine-32.png" + }, + "documentationLink": "https://developers.google.com/compute/docs/reference/latest/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "compute:v1", + "name": "compute", + "version": "v1", + "title": "Compute Engine API", + "description": "Creates and runs virtual machines on Google Cloud Platform.", + "discoveryRestUrl": "https://www.googleapis.com/discovery/v1/apis/compute/v1/rest", + "discoveryLink": "./apis/compute/v1/rest", + "icons": { + "x16": "https://www.google.com/images/icons/product/compute_engine-16.png", + "x32": "https://www.google.com/images/icons/product/compute_engine-32.png" + }, + "documentationLink": "https://developers.google.com/compute/docs/reference/latest/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "container:v1beta1", + "name": "container", + "version": "v1beta1", + "title": "Kubernetes Engine API", + "description": "Builds and manages container-based applications, powered by the open source Kubernetes technology.", + "discoveryRestUrl": "https://container.googleapis.com/$discovery/rest?version=v1beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/container-engine/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "container:v1", + "name": "container", + "version": "v1", + "title": "Kubernetes Engine API", + "description": "Builds and manages container-based applications, powered by the open source Kubernetes technology.", + "discoveryRestUrl": "https://container.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/container-engine/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "containeranalysis:v1alpha1", + "name": "containeranalysis", + "version": "v1alpha1", + "title": "Container Analysis API", + "description": "An implementation of the Grafeas API, which stores, and enables querying and retrieval of critical metadata about all of your software artifacts.", + "discoveryRestUrl": "https://containeranalysis.googleapis.com/$discovery/rest?version=v1alpha1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/container-analysis/api/reference/rest/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "containeranalysis:v1beta1", + "name": "containeranalysis", + "version": "v1beta1", + "title": "Container Analysis API", + "description": "An implementation of the Grafeas API, which stores, and enables querying and retrieval of critical metadata about all of your software artifacts.", + "discoveryRestUrl": "https://containeranalysis.googleapis.com/$discovery/rest?version=v1beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/container-analysis/api/reference/rest/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "content:v2", + "name": "content", + "version": "v2", + "title": "Content API for Shopping", + "description": "Manage your product listings and accounts for Google Shopping", + "discoveryRestUrl": "https://shoppingcontent.googleapis.com/$discovery/rest?version=v2", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/shopping-content/v2/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "content:v2.1", + "name": "content", + "version": "v2.1", + "title": "Content API for Shopping", + "description": "Manage your product listings and accounts for Google Shopping", + "discoveryRestUrl": "https://shoppingcontent.googleapis.com/$discovery/rest?version=v2.1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/shopping-content/v2/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "customsearch:v1", + "name": "customsearch", + "version": "v1", + "title": "Custom Search API", + "description": "Searches over a website or collection of websites", + "discoveryRestUrl": "https://customsearch.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/custom-search/v1/introduction", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "datacatalog:v1beta1", + "name": "datacatalog", + "version": "v1beta1", + "title": "Google Cloud Data Catalog API", + "description": "A fully managed and highly scalable data discovery and metadata management service.", + "discoveryRestUrl": "https://datacatalog.googleapis.com/$discovery/rest?version=v1beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/data-catalog/docs/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "dataflow:v1b3", + "name": "dataflow", + "version": "v1b3", + "title": "Dataflow API", + "description": "Manages Google Cloud Dataflow projects on Google Cloud Platform.", + "discoveryRestUrl": "https://dataflow.googleapis.com/$discovery/rest?version=v1b3", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/dataflow", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "datafusion:v1beta1", + "name": "datafusion", + "version": "v1beta1", + "title": "Cloud Data Fusion API", + "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.", + "discoveryRestUrl": "https://datafusion.googleapis.com/$discovery/rest?version=v1beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/data-fusion/docs", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "datafusion:v1", + "name": "datafusion", + "version": "v1", + "title": "Cloud Data Fusion API", + "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.", + "discoveryRestUrl": "https://datafusion.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/data-fusion/docs", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "datalabeling:v1beta1", + "name": "datalabeling", + "version": "v1beta1", + "title": "Data Labeling API", + "description": "Public API for Google Cloud AI Data Labeling Service.", + "discoveryRestUrl": "https://datalabeling.googleapis.com/$discovery/rest?version=v1beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/data-labeling/docs/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "datamigration:v1beta1", + "name": "datamigration", + "version": "v1beta1", + "title": "Database Migration API", + "description": "Manage Cloud Database Migration Service resources on Google Cloud Platform.", + "discoveryRestUrl": "https://datamigration.googleapis.com/$discovery/rest?version=v1beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/datamigration/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "dataproc:v1beta2", + "name": "dataproc", + "version": "v1beta2", + "title": "Cloud Dataproc API", + "description": "Manages Hadoop-based clusters and jobs on Google Cloud Platform.", + "discoveryRestUrl": "https://dataproc.googleapis.com/$discovery/rest?version=v1beta2", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/dataproc/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "dataproc:v1", + "name": "dataproc", + "version": "v1", + "title": "Cloud Dataproc API", + "description": "Manages Hadoop-based clusters and jobs on Google Cloud Platform.", + "discoveryRestUrl": "https://dataproc.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/dataproc/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "datastore:v1beta1", + "name": "datastore", + "version": "v1beta1", + "title": "Cloud Datastore API", + "description": "Accesses the schemaless NoSQL database to provide fully managed, robust, scalable storage for your application.", + "discoveryRestUrl": "https://datastore.googleapis.com/$discovery/rest?version=v1beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/datastore/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "datastore:v1beta3", + "name": "datastore", + "version": "v1beta3", + "title": "Cloud Datastore API", + "description": "Accesses the schemaless NoSQL database to provide fully managed, robust, scalable storage for your application.", + "discoveryRestUrl": "https://datastore.googleapis.com/$discovery/rest?version=v1beta3", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/datastore/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "datastore:v1", + "name": "datastore", + "version": "v1", + "title": "Cloud Datastore API", + "description": "Accesses the schemaless NoSQL database to provide fully managed, robust, scalable storage for your application.", + "discoveryRestUrl": "https://datastore.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/datastore/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "deploymentmanager:alpha", + "name": "deploymentmanager", + "version": "alpha", + "title": "Cloud Deployment Manager V2 API", + "description": "The Google Cloud Deployment Manager v2 API provides services for configuring, deploying, and viewing Google Cloud services and APIs via templates which specify deployments of Cloud resources.", + "discoveryRestUrl": "https://deploymentmanager.googleapis.com/$discovery/rest?version=alpha", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/deployment-manager", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "deploymentmanager:v2beta", + "name": "deploymentmanager", + "version": "v2beta", + "title": "Cloud Deployment Manager V2 API", + "description": "The Google Cloud Deployment Manager v2 API provides services for configuring, deploying, and viewing Google Cloud services and APIs via templates which specify deployments of Cloud resources.", + "discoveryRestUrl": "https://deploymentmanager.googleapis.com/$discovery/rest?version=v2beta", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/deployment-manager", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "deploymentmanager:v2", + "name": "deploymentmanager", + "version": "v2", + "title": "Cloud Deployment Manager V2 API", + "description": "The Google Cloud Deployment Manager v2 API provides services for configuring, deploying, and viewing Google Cloud services and APIs via templates which specify deployments of Cloud resources.", + "discoveryRestUrl": "https://deploymentmanager.googleapis.com/$discovery/rest?version=v2", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/deployment-manager", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "dfareporting:v3.3", + "name": "dfareporting", + "version": "v3.3", + "title": "Campaign Manager 360 API", + "description": "Manage your DoubleClick Campaign Manager ad campaigns and reports.", + "discoveryRestUrl": "https://dfareporting.googleapis.com/$discovery/rest?version=v3.3", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/doubleclick-advertisers/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "dfareporting:v3.4", + "name": "dfareporting", + "version": "v3.4", + "title": "Campaign Manager 360 API", + "description": "Manage your DoubleClick Campaign Manager ad campaigns and reports.", + "discoveryRestUrl": "https://dfareporting.googleapis.com/$discovery/rest?version=v3.4", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/doubleclick-advertisers/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "dialogflow:v2beta1", + "name": "dialogflow", + "version": "v2beta1", + "title": "Dialogflow API", + "description": "Builds conversational interfaces (for example, chatbots, and voice-powered apps and devices).", + "discoveryRestUrl": "https://dialogflow.googleapis.com/$discovery/rest?version=v2beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/dialogflow/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "dialogflow:v3beta1", + "name": "dialogflow", + "version": "v3beta1", + "title": "Dialogflow API", + "description": "Builds conversational interfaces (for example, chatbots, and voice-powered apps and devices).", + "discoveryRestUrl": "https://dialogflow.googleapis.com/$discovery/rest?version=v3beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/dialogflow/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "dialogflow:v2", + "name": "dialogflow", + "version": "v2", + "title": "Dialogflow API", + "description": "Builds conversational interfaces (for example, chatbots, and voice-powered apps and devices).", + "discoveryRestUrl": "https://dialogflow.googleapis.com/$discovery/rest?version=v2", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/dialogflow/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "digitalassetlinks:v1", + "name": "digitalassetlinks", + "version": "v1", + "title": "Digital Asset Links API", + "description": "Discovers relationships between online assets such as websites or mobile apps.", + "discoveryRestUrl": "https://digitalassetlinks.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/digital-asset-links/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "discovery:v1", + "name": "discovery", + "version": "v1", + "title": "API Discovery Service", + "description": "Google API Discovery Service allows service consumers to list the discovery metadata of all public APIs managed by the API Platform.", + "discoveryRestUrl": "https://discovery.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/discovery", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "displayvideo:v1", + "name": "displayvideo", + "version": "v1", + "title": "Display & Video 360 API", + "description": "Display & Video 360 API allows users to manage and create campaigns and reports.", + "discoveryRestUrl": "https://displayvideo.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/display-video/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "dlp:v2", + "name": "dlp", + "version": "v2", + "title": "Cloud Data Loss Prevention (DLP) API", + "description": "Provides methods for detection, risk analysis, and de-identification of privacy-sensitive fragments in text, images, and Google Cloud Platform storage repositories.", + "discoveryRestUrl": "https://dlp.googleapis.com/$discovery/rest?version=v2", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/dlp/docs/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "dns:v1beta2", + "name": "dns", + "version": "v1beta2", + "title": "Cloud DNS API", + "description": "", + "discoveryRestUrl": "https://dns.googleapis.com/$discovery/rest?version=v1beta2", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/dns/docs", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "dns:v1", + "name": "dns", + "version": "v1", + "title": "Cloud DNS API", + "description": "", + "discoveryRestUrl": "https://dns.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/dns/docs", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "docs:v1", + "name": "docs", + "version": "v1", + "title": "Google Docs API", + "description": "Reads and writes Google Docs documents.", + "discoveryRestUrl": "https://docs.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/docs/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "documentai:v1beta2", + "name": "documentai", + "version": "v1beta2", + "title": "Cloud Document AI API", + "description": "Service to parse structured information from unstructured or semi-structured documents using state-of-the-art Google AI such as natural language, computer vision, translation, and AutoML.", + "discoveryRestUrl": "https://documentai.googleapis.com/$discovery/rest?version=v1beta2", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/document-ai/docs/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "documentai:v1beta3", + "name": "documentai", + "version": "v1beta3", + "title": "Cloud Document AI API", + "description": "Service to parse structured information from unstructured or semi-structured documents using state-of-the-art Google AI such as natural language, computer vision, translation, and AutoML.", + "discoveryRestUrl": "https://documentai.googleapis.com/$discovery/rest?version=v1beta3", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/document-ai/docs/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "domains:v1alpha2", + "name": "domains", + "version": "v1alpha2", + "title": "Cloud Domains API", + "description": "Enables management and configuration of domain names.", + "discoveryRestUrl": "https://domains.googleapis.com/$discovery/rest?version=v1alpha2", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/domains/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "domains:v1beta1", + "name": "domains", + "version": "v1beta1", + "title": "Cloud Domains API", + "description": "Enables management and configuration of domain names.", + "discoveryRestUrl": "https://domains.googleapis.com/$discovery/rest?version=v1beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/domains/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "domainsrdap:v1", + "name": "domainsrdap", + "version": "v1", + "title": "Domains RDAP API", + "description": "Read-only public API that lets users search for information about domain names.", + "discoveryRestUrl": "https://domainsrdap.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/domains/rdap/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "doubleclickbidmanager:v1", + "name": "doubleclickbidmanager", + "version": "v1", + "title": "DoubleClick Bid Manager API", + "description": "DoubleClick Bid Manager API allows users to manage and create campaigns and reports.", + "discoveryRestUrl": "https://doubleclickbidmanager.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/bid-manager/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "doubleclickbidmanager:v1.1", + "name": "doubleclickbidmanager", + "version": "v1.1", + "title": "DoubleClick Bid Manager API", + "description": "DoubleClick Bid Manager API allows users to manage and create campaigns and reports.", + "discoveryRestUrl": "https://doubleclickbidmanager.googleapis.com/$discovery/rest?version=v1.1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/bid-manager/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "doubleclicksearch:v2", + "name": "doubleclicksearch", + "version": "v2", + "title": "Search Ads 360 API", + "description": "The Search Ads 360 API allows developers to automate uploading conversions and downloading reports from Search Ads 360.", + "discoveryRestUrl": "https://doubleclicksearch.googleapis.com/$discovery/rest?version=v2", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/search-ads", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "drive:v2", + "name": "drive", + "version": "v2", + "title": "Drive API", + "description": "Manages files in Drive including uploading, downloading, searching, detecting changes, and updating sharing permissions.", + "discoveryRestUrl": "https://www.googleapis.com/discovery/v1/apis/drive/v2/rest", + "discoveryLink": "./apis/drive/v2/rest", + "icons": { + "x16": "https://ssl.gstatic.com/docs/doclist/images/drive_icon_16.png", + "x32": "https://ssl.gstatic.com/docs/doclist/images/drive_icon_32.png" + }, + "documentationLink": "https://developers.google.com/drive/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "drive:v3", + "name": "drive", + "version": "v3", + "title": "Drive API", + "description": "Manages files in Drive including uploading, downloading, searching, detecting changes, and updating sharing permissions.", + "discoveryRestUrl": "https://www.googleapis.com/discovery/v1/apis/drive/v3/rest", + "discoveryLink": "./apis/drive/v3/rest", + "icons": { + "x16": "https://ssl.gstatic.com/docs/doclist/images/drive_icon_16.png", + "x32": "https://ssl.gstatic.com/docs/doclist/images/drive_icon_32.png" + }, + "documentationLink": "https://developers.google.com/drive/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "driveactivity:v2", + "name": "driveactivity", + "version": "v2", + "title": "Drive Activity API", + "description": "Provides a historical view of activity in Google Drive.", + "discoveryRestUrl": "https://driveactivity.googleapis.com/$discovery/rest?version=v2", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/drive/activity/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "eventarc:v1beta1", + "name": "eventarc", + "version": "v1beta1", + "title": "Eventarc API", + "description": "", + "discoveryRestUrl": "https://eventarc.googleapis.com/$discovery/rest?version=v1beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/eventarc", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "factchecktools:v1alpha1", + "name": "factchecktools", + "version": "v1alpha1", + "title": "Fact Check Tools API", + "description": "", + "discoveryRestUrl": "https://factchecktools.googleapis.com/$discovery/rest?version=v1alpha1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/fact-check/tools/api/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "fcm:v1", + "name": "fcm", + "version": "v1", + "title": "Firebase Cloud Messaging API", + "description": "FCM send API that provides a cross-platform messaging solution to reliably deliver messages at no cost.", + "discoveryRestUrl": "https://fcm.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://firebase.google.com/docs/cloud-messaging", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "file:v1beta1", + "name": "file", + "version": "v1beta1", + "title": "Cloud Filestore API", + "description": "The Cloud Filestore API is used for creating and managing cloud file servers.", + "discoveryRestUrl": "https://file.googleapis.com/$discovery/rest?version=v1beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/filestore/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "file:v1", + "name": "file", + "version": "v1", + "title": "Cloud Filestore API", + "description": "The Cloud Filestore API is used for creating and managing cloud file servers.", + "discoveryRestUrl": "https://file.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/filestore/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "firebase:v1beta1", + "name": "firebase", + "version": "v1beta1", + "title": "Firebase Management API", + "description": "The Firebase Management API enables programmatic setup and management of Firebase projects, including a project's Firebase resources and Firebase apps.", + "discoveryRestUrl": "https://firebase.googleapis.com/$discovery/rest?version=v1beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://firebase.google.com", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "firebasedatabase:v1beta", + "name": "firebasedatabase", + "version": "v1beta", + "title": "Firebase Realtime Database Management API", + "description": "The Firebase Realtime Database Management API enables programmatic provisioning and management of Realtime Database instances.", + "discoveryRestUrl": "https://firebasedatabase.googleapis.com/$discovery/rest?version=v1beta", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://firebase.google.com/docs/reference/rest/database/database-management/rest/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "firebasedynamiclinks:v1", + "name": "firebasedynamiclinks", + "version": "v1", + "title": "Firebase Dynamic Links API", + "description": "Programmatically creates and manages Firebase Dynamic Links.", + "discoveryRestUrl": "https://firebasedynamiclinks.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://firebase.google.com/docs/dynamic-links/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "firebasehosting:v1beta1", + "name": "firebasehosting", + "version": "v1beta1", + "title": "Firebase Hosting API", + "description": "The Firebase Hosting REST API enables programmatic and customizable deployments to your Firebase-hosted sites. Use this REST API to deploy new or updated hosting configurations and content files.", + "discoveryRestUrl": "https://firebasehosting.googleapis.com/$discovery/rest?version=v1beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://firebase.google.com/docs/hosting/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "firebasehosting:v1", + "name": "firebasehosting", + "version": "v1", + "title": "Firebase Hosting API", + "description": "The Firebase Hosting REST API enables programmatic and customizable deployments to your Firebase-hosted sites. Use this REST API to deploy new or updated hosting configurations and content files.", + "discoveryRestUrl": "https://firebasehosting.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://firebase.google.com/docs/hosting/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "firebaseml:v1beta2", + "name": "firebaseml", + "version": "v1beta2", + "title": "Firebase ML API", + "description": "Access custom machine learning models hosted via Firebase ML.", + "discoveryRestUrl": "https://firebaseml.googleapis.com/$discovery/rest?version=v1beta2", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://firebase.google.com", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "firebaseml:v1", + "name": "firebaseml", + "version": "v1", + "title": "Firebase ML API", + "description": "Access custom machine learning models hosted via Firebase ML.", + "discoveryRestUrl": "https://firebaseml.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://firebase.google.com", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "firebaserules:v1", + "name": "firebaserules", + "version": "v1", + "title": "Firebase Rules API", + "description": "Creates and manages rules that determine when a Firebase Rules-enabled service should permit a request.", + "discoveryRestUrl": "https://firebaserules.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://firebase.google.com/docs/storage/security", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "firestore:v1beta1", + "name": "firestore", + "version": "v1beta1", + "title": "Cloud Firestore API", + "description": "Accesses the NoSQL document database built for automatic scaling, high performance, and ease of application development.", + "discoveryRestUrl": "https://firestore.googleapis.com/$discovery/rest?version=v1beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/firestore", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "firestore:v1beta2", + "name": "firestore", + "version": "v1beta2", + "title": "Cloud Firestore API", + "description": "Accesses the NoSQL document database built for automatic scaling, high performance, and ease of application development.", + "discoveryRestUrl": "https://firestore.googleapis.com/$discovery/rest?version=v1beta2", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/firestore", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "firestore:v1", + "name": "firestore", + "version": "v1", + "title": "Cloud Firestore API", + "description": "Accesses the NoSQL document database built for automatic scaling, high performance, and ease of application development.", + "discoveryRestUrl": "https://firestore.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/firestore", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "fitness:v1", + "name": "fitness", + "version": "v1", + "title": "Fitness API", + "description": "The Fitness API for managing users' fitness tracking data.", + "discoveryRestUrl": "https://fitness.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/fit/rest/v1/get-started", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "games:v1", + "name": "games", + "version": "v1", + "title": "Google Play Game Services", + "description": "The Google Play games service allows developers to enhance games with social leaderboards, achievements, game state, sign-in with Google, and more.", + "discoveryRestUrl": "https://games.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/games/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "gamesConfiguration:v1configuration", + "name": "gamesConfiguration", + "version": "v1configuration", + "title": "Google Play Game Services Publishing API", + "description": "The Google Play Game Services Publishing API allows developers to configure their games in Game Services.", + "discoveryRestUrl": "https://gamesconfiguration.googleapis.com/$discovery/rest?version=v1configuration", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/games/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "gamesManagement:v1management", + "name": "gamesManagement", + "version": "v1management", + "title": "Google Play Game Management", + "description": "The Google Play Game Management API allows developers to manage resources from the Google Play Game service.", + "discoveryRestUrl": "https://gamesmanagement.googleapis.com/$discovery/rest?version=v1management", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/games/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "gameservices:v1beta", + "name": "gameservices", + "version": "v1beta", + "title": "Game Services API", + "description": "Deploy and manage infrastructure for global multiplayer gaming experiences.", + "discoveryRestUrl": "https://gameservices.googleapis.com/$discovery/rest?version=v1beta", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/solutions/gaming/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "gameservices:v1", + "name": "gameservices", + "version": "v1", + "title": "Game Services API", + "description": "Deploy and manage infrastructure for global multiplayer gaming experiences.", + "discoveryRestUrl": "https://gameservices.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/solutions/gaming/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "genomics:v1alpha2", + "name": "genomics", + "version": "v1alpha2", + "title": "Genomics API", + "description": "Uploads, processes, queries, and searches Genomics data in the cloud.", + "discoveryRestUrl": "https://genomics.googleapis.com/$discovery/rest?version=v1alpha2", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/genomics", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "genomics:v2alpha1", + "name": "genomics", + "version": "v2alpha1", + "title": "Genomics API", + "description": "Uploads, processes, queries, and searches Genomics data in the cloud.", + "discoveryRestUrl": "https://genomics.googleapis.com/$discovery/rest?version=v2alpha1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/genomics", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "genomics:v1", + "name": "genomics", + "version": "v1", + "title": "Genomics API", + "description": "Uploads, processes, queries, and searches Genomics data in the cloud.", + "discoveryRestUrl": "https://genomics.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/genomics", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "gmail:v1", + "name": "gmail", + "version": "v1", + "title": "Gmail API", + "description": "The Gmail API lets you view and manage Gmail mailbox data like threads, messages, and labels.", + "discoveryRestUrl": "https://gmail.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/gmail/api/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "gmailpostmastertools:v1beta1", + "name": "gmailpostmastertools", + "version": "v1beta1", + "title": "Gmail Postmaster Tools API", + "description": "The Postmaster Tools API is a RESTful API that provides programmatic access to email traffic metrics (like spam reports, delivery errors etc) otherwise available through the Gmail Postmaster Tools UI currently.", + "discoveryRestUrl": "https://gmailpostmastertools.googleapis.com/$discovery/rest?version=v1beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/gmail/postmaster", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "groupsmigration:v1", + "name": "groupsmigration", + "version": "v1", + "title": "Groups Migration API", + "description": "The Groups Migration API allows domain administrators to archive emails into Google groups.", + "discoveryRestUrl": "https://groupsmigration.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/google-apps/groups-migration/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "groupssettings:v1", + "name": "groupssettings", + "version": "v1", + "title": "Groups Settings API", + "description": "The Groups Settings API allows domain administrators to view and manage access levels and advanced settings for a group.", + "discoveryRestUrl": "https://groupssettings.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/admin-sdk/groups-settings", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "healthcare:v1beta1", + "name": "healthcare", + "version": "v1beta1", + "title": "Cloud Healthcare API", + "description": "Manage, store, and access healthcare data in Google Cloud Platform.", + "discoveryRestUrl": "https://healthcare.googleapis.com/$discovery/rest?version=v1beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/healthcare", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "healthcare:v1", + "name": "healthcare", + "version": "v1", + "title": "Cloud Healthcare API", + "description": "Manage, store, and access healthcare data in Google Cloud Platform.", + "discoveryRestUrl": "https://healthcare.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/healthcare", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "homegraph:v1", + "name": "homegraph", + "version": "v1", + "title": "HomeGraph API", + "description": "", + "discoveryRestUrl": "https://homegraph.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/actions/smarthome/create-app#request-sync", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "iam:v1", + "name": "iam", + "version": "v1", + "title": "Identity and Access Management (IAM) API", + "description": "Manages identity and access control for Google Cloud Platform resources, including the creation of service accounts, which you can use to authenticate to Google and make API calls.", + "discoveryRestUrl": "https://iam.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/iam/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "iamcredentials:v1", + "name": "iamcredentials", + "version": "v1", + "title": "IAM Service Account Credentials API", + "description": "Creates short-lived credentials for impersonating IAM service accounts. To enable this API, you must enable the IAM API (iam.googleapis.com).", + "discoveryRestUrl": "https://iamcredentials.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/iam/docs/creating-short-lived-service-account-credentials", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "iap:v1beta1", + "name": "iap", + "version": "v1beta1", + "title": "Cloud Identity-Aware Proxy API", + "description": "Controls access to cloud applications running on Google Cloud Platform.", + "discoveryRestUrl": "https://iap.googleapis.com/$discovery/rest?version=v1beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/iap", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "iap:v1", + "name": "iap", + "version": "v1", + "title": "Cloud Identity-Aware Proxy API", + "description": "Controls access to cloud applications running on Google Cloud Platform.", + "discoveryRestUrl": "https://iap.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/iap", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "identitytoolkit:v3", + "name": "identitytoolkit", + "version": "v3", + "title": "Identity Toolkit API", + "description": "The Google Identity Toolkit API lets you use open standards to verify a user's identity.", + "discoveryRestUrl": "https://identitytoolkit.googleapis.com/$discovery/rest?version=v3", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://firebase.google.com/docs/auth/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "indexing:v3", + "name": "indexing", + "version": "v3", + "title": "Indexing API", + "description": "Notifies Google when your web pages change.", + "discoveryRestUrl": "https://indexing.googleapis.com/$discovery/rest?version=v3", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/search/apis/indexing-api/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "jobs:v3p1beta1", + "name": "jobs", + "version": "v3p1beta1", + "title": "Cloud Talent Solution API", + "description": "Cloud Talent Solution provides the capability to create, read, update, and delete job postings, as well as search jobs based on keywords and filters.", + "discoveryRestUrl": "https://jobs.googleapis.com/$discovery/rest?version=v3p1beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/talent-solution/job-search/docs/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "jobs:v2", + "name": "jobs", + "version": "v2", + "title": "Cloud Talent Solution API", + "description": "Cloud Talent Solution provides the capability to create, read, update, and delete job postings, as well as search jobs based on keywords and filters.", + "discoveryRestUrl": "https://jobs.googleapis.com/$discovery/rest?version=v2", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/talent-solution/job-search/docs/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "jobs:v3", + "name": "jobs", + "version": "v3", + "title": "Cloud Talent Solution API", + "description": "Cloud Talent Solution provides the capability to create, read, update, and delete job postings, as well as search jobs based on keywords and filters.", + "discoveryRestUrl": "https://jobs.googleapis.com/$discovery/rest?version=v3", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/talent-solution/job-search/docs/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "kgsearch:v1", + "name": "kgsearch", + "version": "v1", + "title": "Knowledge Graph Search API", + "description": "Searches the Google Knowledge Graph for entities.", + "discoveryRestUrl": "https://kgsearch.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/knowledge-graph/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "language:v1beta1", + "name": "language", + "version": "v1beta1", + "title": "Cloud Natural Language API", + "description": "Provides natural language understanding technologies, such as sentiment analysis, entity recognition, entity sentiment analysis, and other text annotations, to developers.", + "discoveryRestUrl": "https://language.googleapis.com/$discovery/rest?version=v1beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/natural-language/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "language:v1beta2", + "name": "language", + "version": "v1beta2", + "title": "Cloud Natural Language API", + "description": "Provides natural language understanding technologies, such as sentiment analysis, entity recognition, entity sentiment analysis, and other text annotations, to developers.", + "discoveryRestUrl": "https://language.googleapis.com/$discovery/rest?version=v1beta2", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/natural-language/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "language:v1", + "name": "language", + "version": "v1", + "title": "Cloud Natural Language API", + "description": "Provides natural language understanding technologies, such as sentiment analysis, entity recognition, entity sentiment analysis, and other text annotations, to developers.", + "discoveryRestUrl": "https://language.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/natural-language/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "libraryagent:v1", + "name": "libraryagent", + "version": "v1", + "title": "Library Agent API", + "description": "A simple Google Example Library API.", + "discoveryRestUrl": "https://libraryagent.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/docs/quota", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "licensing:v1", + "name": "licensing", + "version": "v1", + "title": "Enterprise License Manager API", + "description": "The Google Enterprise License Manager API's allows you to license apps for all the users of a domain managed by you.", + "discoveryRestUrl": "https://licensing.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/admin-sdk/licensing/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "lifesciences:v2beta", + "name": "lifesciences", + "version": "v2beta", + "title": "Cloud Life Sciences API", + "description": "Cloud Life Sciences is a suite of services and tools for managing, processing, and transforming life sciences data.", + "discoveryRestUrl": "https://lifesciences.googleapis.com/$discovery/rest?version=v2beta", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/life-sciences", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "localservices:v1", + "name": "localservices", + "version": "v1", + "title": "Local Services API", + "description": "", + "discoveryRestUrl": "https://localservices.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://ads.google.com/local-services-ads/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "logging:v2", + "name": "logging", + "version": "v2", + "title": "Cloud Logging API", + "description": "Writes log entries and manages your Cloud Logging configuration. The table entries below are presented in alphabetical order, not in order of common use. For explanations of the concepts found in the table entries, read the documentation at https://cloud.google.com/logging/docs.", + "discoveryRestUrl": "https://logging.googleapis.com/$discovery/rest?version=v2", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/logging/docs/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "managedidentities:v1alpha1", + "name": "managedidentities", + "version": "v1alpha1", + "title": "Managed Service for Microsoft Active Directory API", + "description": "The Managed Service for Microsoft Active Directory API is used for managing a highly available, hardened service running Microsoft Active Directory (AD).", + "discoveryRestUrl": "https://managedidentities.googleapis.com/$discovery/rest?version=v1alpha1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/managed-microsoft-ad/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "managedidentities:v1beta1", + "name": "managedidentities", + "version": "v1beta1", + "title": "Managed Service for Microsoft Active Directory API", + "description": "The Managed Service for Microsoft Active Directory API is used for managing a highly available, hardened service running Microsoft Active Directory (AD).", + "discoveryRestUrl": "https://managedidentities.googleapis.com/$discovery/rest?version=v1beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/managed-microsoft-ad/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "managedidentities:v1", + "name": "managedidentities", + "version": "v1", + "title": "Managed Service for Microsoft Active Directory API", + "description": "The Managed Service for Microsoft Active Directory API is used for managing a highly available, hardened service running Microsoft Active Directory (AD).", + "discoveryRestUrl": "https://managedidentities.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/managed-microsoft-ad/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "manufacturers:v1", + "name": "manufacturers", + "version": "v1", + "title": "Manufacturer Center API", + "description": "Public API for managing Manufacturer Center related data.", + "discoveryRestUrl": "https://manufacturers.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/manufacturers/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "memcache:v1beta2", + "name": "memcache", + "version": "v1beta2", + "title": "Cloud Memorystore for Memcached API", + "description": "Google Cloud Memorystore for Memcached API is used for creating and managing Memcached instances in GCP.", + "discoveryRestUrl": "https://memcache.googleapis.com/$discovery/rest?version=v1beta2", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/memorystore/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "ml:v1", + "name": "ml", + "version": "v1", + "title": "AI Platform Training & Prediction API", + "description": "An API to enable creating and using machine learning models.", + "discoveryRestUrl": "https://ml.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/ml/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "monitoring:v1", + "name": "monitoring", + "version": "v1", + "title": "Cloud Monitoring API", + "description": "Manages your Cloud Monitoring data and configurations. Most projects must be associated with a Workspace, with a few exceptions as noted on the individual method pages. The table entries below are presented in alphabetical order, not in order of common use. For explanations of the concepts found in the table entries, read the [Cloud Monitoring documentation](/monitoring/docs).", + "discoveryRestUrl": "https://monitoring.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/monitoring/api/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "monitoring:v3", + "name": "monitoring", + "version": "v3", + "title": "Cloud Monitoring API", + "description": "Manages your Cloud Monitoring data and configurations. Most projects must be associated with a Workspace, with a few exceptions as noted on the individual method pages. The table entries below are presented in alphabetical order, not in order of common use. For explanations of the concepts found in the table entries, read the [Cloud Monitoring documentation](/monitoring/docs).", + "discoveryRestUrl": "https://monitoring.googleapis.com/$discovery/rest?version=v3", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/monitoring/api/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "networkmanagement:v1beta1", + "name": "networkmanagement", + "version": "v1beta1", + "title": "Network Management API", + "description": "The Network Management API provides a collection of network performance monitoring and diagnostic capabilities.", + "discoveryRestUrl": "https://networkmanagement.googleapis.com/$discovery/rest?version=v1beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "networkmanagement:v1", + "name": "networkmanagement", + "version": "v1", + "title": "Network Management API", + "description": "The Network Management API provides a collection of network performance monitoring and diagnostic capabilities.", + "discoveryRestUrl": "https://networkmanagement.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "notebooks:v1", + "name": "notebooks", + "version": "v1", + "title": "Notebooks API", + "description": "AI Platform Notebooks API is used to manage notebook resources in Google Cloud.", + "discoveryRestUrl": "https://notebooks.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/ai-platform/notebooks/docs/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "oauth2:v2", + "name": "oauth2", + "version": "v2", + "title": "Google OAuth2 API", + "description": "[Deprecated] Obtains end-user authorization grants for use with other Google APIs.", + "discoveryRestUrl": "https://www.googleapis.com/discovery/v1/apis/oauth2/v2/rest", + "discoveryLink": "./apis/oauth2/v2/rest", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/accounts/docs/OAuth2", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "osconfig:v1alpha2", + "name": "osconfig", + "version": "v1alpha2", + "title": "OS Config API", + "description": "OS management tools that can be used for patch management, patch compliance, and configuration management on VM instances.", + "discoveryRestUrl": "https://osconfig.googleapis.com/$discovery/rest?version=v1alpha2", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/compute/docs/manage-os", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "osconfig:v1beta", + "name": "osconfig", + "version": "v1beta", + "title": "OS Config API", + "description": "OS management tools that can be used for patch management, patch compliance, and configuration management on VM instances.", + "discoveryRestUrl": "https://osconfig.googleapis.com/$discovery/rest?version=v1beta", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/compute/docs/manage-os", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "osconfig:v1", + "name": "osconfig", + "version": "v1", + "title": "OS Config API", + "description": "OS management tools that can be used for patch management, patch compliance, and configuration management on VM instances.", + "discoveryRestUrl": "https://osconfig.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/compute/docs/manage-os", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "oslogin:v1alpha", + "name": "oslogin", + "version": "v1alpha", + "title": "Cloud OS Login API", + "description": "You can use OS Login to manage access to your VM instances using IAM roles.", + "discoveryRestUrl": "https://oslogin.googleapis.com/$discovery/rest?version=v1alpha", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/compute/docs/oslogin/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "oslogin:v1beta", + "name": "oslogin", + "version": "v1beta", + "title": "Cloud OS Login API", + "description": "You can use OS Login to manage access to your VM instances using IAM roles.", + "discoveryRestUrl": "https://oslogin.googleapis.com/$discovery/rest?version=v1beta", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/compute/docs/oslogin/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "oslogin:v1", + "name": "oslogin", + "version": "v1", + "title": "Cloud OS Login API", + "description": "You can use OS Login to manage access to your VM instances using IAM roles.", + "discoveryRestUrl": "https://oslogin.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/compute/docs/oslogin/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "pagespeedonline:v5", + "name": "pagespeedonline", + "version": "v5", + "title": "PageSpeed Insights API", + "description": "The PageSpeed Insights API lets you analyze the performance of your website with a simple API. It offers tailored suggestions for how you can optimize your site, and lets you easily integrate PageSpeed Insights analysis into your development tools and workflow.", + "discoveryRestUrl": "https://pagespeedonline.googleapis.com/$discovery/rest?version=v5", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/speed/docs/insights/v5/about", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "people:v1", + "name": "people", + "version": "v1", + "title": "People API", + "description": "Provides access to information about profiles and contacts.", + "discoveryRestUrl": "https://people.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/people/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "playablelocations:v3", + "name": "playablelocations", + "version": "v3", + "title": "Playable Locations API", + "description": "", + "discoveryRestUrl": "https://playablelocations.googleapis.com/$discovery/rest?version=v3", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/maps/contact-sales/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "playcustomapp:v1", + "name": "playcustomapp", + "version": "v1", + "title": "Google Play Custom App Publishing API", + "description": "API to create and publish custom Android apps", + "discoveryRestUrl": "https://playcustomapp.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/android/work/play/custom-app-api/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "policytroubleshooter:v1beta", + "name": "policytroubleshooter", + "version": "v1beta", + "title": "Policy Troubleshooter API", + "description": "", + "discoveryRestUrl": "https://policytroubleshooter.googleapis.com/$discovery/rest?version=v1beta", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/iam/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "policytroubleshooter:v1", + "name": "policytroubleshooter", + "version": "v1", + "title": "Policy Troubleshooter API", + "description": "", + "discoveryRestUrl": "https://policytroubleshooter.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/iam/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "poly:v1", + "name": "poly", + "version": "v1", + "title": "Poly API", + "description": "The Poly API provides read access to assets hosted on poly.google.com to all, and upload access to poly.google.com for whitelisted accounts.", + "discoveryRestUrl": "https://poly.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/poly/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "privateca:v1beta1", + "name": "privateca", + "version": "v1beta1", + "title": "Certificate Authority API", + "description": "The Certificate Authority Service API is a highly-available, scalable service that enables you to simplify and automate the management of private certificate authorities (CAs) while staying in control of your private keys.\"", + "discoveryRestUrl": "https://privateca.googleapis.com/$discovery/rest?version=v1beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "prod_tt_sasportal:v1alpha1", + "name": "prod_tt_sasportal", + "version": "v1alpha1", + "title": "SAS Portal API (Testing)", + "description": "", + "discoveryRestUrl": "https://prod-tt-sasportal.googleapis.com/$discovery/rest?version=v1alpha1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/spectrum-access-system/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "pubsub:v1beta1a", + "name": "pubsub", + "version": "v1beta1a", + "title": "Cloud Pub/Sub API", + "description": "Provides reliable, many-to-many, asynchronous messaging between applications.", + "discoveryRestUrl": "https://pubsub.googleapis.com/$discovery/rest?version=v1beta1a", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/pubsub/docs", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "pubsub:v1beta2", + "name": "pubsub", + "version": "v1beta2", + "title": "Cloud Pub/Sub API", + "description": "Provides reliable, many-to-many, asynchronous messaging between applications.", + "discoveryRestUrl": "https://pubsub.googleapis.com/$discovery/rest?version=v1beta2", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/pubsub/docs", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "pubsub:v1", + "name": "pubsub", + "version": "v1", + "title": "Cloud Pub/Sub API", + "description": "Provides reliable, many-to-many, asynchronous messaging between applications.", + "discoveryRestUrl": "https://pubsub.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/pubsub/docs", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "pubsublite:v1", + "name": "pubsublite", + "version": "v1", + "title": "Pub/Sub Lite API", + "description": "", + "discoveryRestUrl": "https://pubsublite.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/pubsub/lite/docs", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "realtimebidding:v1", + "name": "realtimebidding", + "version": "v1", + "title": "Real-time Bidding API", + "description": "Allows external bidders to manage their RTB integration with Google. This includes managing bidder endpoints, QPS quotas, configuring what ad inventory to receive via pretargeting, submitting creatives for verification, and accessing creative metadata such as approval status.", + "discoveryRestUrl": "https://realtimebidding.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/authorized-buyers/apis/realtimebidding/reference/rest/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "recommendationengine:v1beta1", + "name": "recommendationengine", + "version": "v1beta1", + "title": "Recommendations AI", + "description": "Recommendations AI service enables customers to build end-to-end personalized recommendation systems without requiring a high level of expertise in machine learning, recommendation system, or Google Cloud.", + "discoveryRestUrl": "https://recommendationengine.googleapis.com/$discovery/rest?version=v1beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/recommendations-ai/docs", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "recommender:v1beta1", + "name": "recommender", + "version": "v1beta1", + "title": "Recommender API", + "description": "", + "discoveryRestUrl": "https://recommender.googleapis.com/$discovery/rest?version=v1beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/recommender/docs/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "recommender:v1", + "name": "recommender", + "version": "v1", + "title": "Recommender API", + "description": "", + "discoveryRestUrl": "https://recommender.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/recommender/docs/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "redis:v1beta1", + "name": "redis", + "version": "v1beta1", + "title": "Google Cloud Memorystore for Redis API", + "description": "Creates and manages Redis instances on the Google Cloud Platform.", + "discoveryRestUrl": "https://redis.googleapis.com/$discovery/rest?version=v1beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/memorystore/docs/redis/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "redis:v1", + "name": "redis", + "version": "v1", + "title": "Google Cloud Memorystore for Redis API", + "description": "Creates and manages Redis instances on the Google Cloud Platform.", + "discoveryRestUrl": "https://redis.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/memorystore/docs/redis/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "remotebuildexecution:v1alpha", + "name": "remotebuildexecution", + "version": "v1alpha", + "title": "Remote Build Execution API", + "description": "Supplies a Remote Execution API service for tools such as bazel.", + "discoveryRestUrl": "https://remotebuildexecution.googleapis.com/$discovery/rest?version=v1alpha", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/remote-build-execution/docs/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "remotebuildexecution:v1", + "name": "remotebuildexecution", + "version": "v1", + "title": "Remote Build Execution API", + "description": "Supplies a Remote Execution API service for tools such as bazel.", + "discoveryRestUrl": "https://remotebuildexecution.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/remote-build-execution/docs/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "remotebuildexecution:v2", + "name": "remotebuildexecution", + "version": "v2", + "title": "Remote Build Execution API", + "description": "Supplies a Remote Execution API service for tools such as bazel.", + "discoveryRestUrl": "https://remotebuildexecution.googleapis.com/$discovery/rest?version=v2", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/remote-build-execution/docs/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "reseller:v1", + "name": "reseller", + "version": "v1", + "title": "Google Workspace Reseller API", + "description": "Perform common functions that are available on the Google Apps Reseller Console at scale like placing orders and viewing customer information", + "discoveryRestUrl": "https://reseller.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/google-apps/reseller/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "run:v1alpha1", + "name": "run", + "version": "v1alpha1", + "title": "Cloud Run Admin API", + "description": "Deploy and manage user provided container images that scale automatically based on HTTP traffic.", + "discoveryRestUrl": "https://run.googleapis.com/$discovery/rest?version=v1alpha1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/run/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "run:v1beta1", + "name": "run", + "version": "v1beta1", + "title": "Cloud Run Admin API", + "description": "Deploy and manage user provided container images that scale automatically based on HTTP traffic.", + "discoveryRestUrl": "https://run.googleapis.com/$discovery/rest?version=v1beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/run/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "run:v1", + "name": "run", + "version": "v1", + "title": "Cloud Run Admin API", + "description": "Deploy and manage user provided container images that scale automatically based on HTTP traffic.", + "discoveryRestUrl": "https://run.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/run/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "runtimeconfig:v1beta1", + "name": "runtimeconfig", + "version": "v1beta1", + "title": "Cloud Runtime Configuration API", + "description": "The Runtime Configurator allows you to dynamically configure and expose variables through Google Cloud Platform. In addition, you can also set Watchers and Waiters that will watch for changes to your data and return based on certain conditions.", + "discoveryRestUrl": "https://runtimeconfig.googleapis.com/$discovery/rest?version=v1beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/deployment-manager/runtime-configurator/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "runtimeconfig:v1", + "name": "runtimeconfig", + "version": "v1", + "title": "Cloud Runtime Configuration API", + "description": "The Runtime Configurator allows you to dynamically configure and expose variables through Google Cloud Platform. In addition, you can also set Watchers and Waiters that will watch for changes to your data and return based on certain conditions.", + "discoveryRestUrl": "https://runtimeconfig.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/deployment-manager/runtime-configurator/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "safebrowsing:v4", + "name": "safebrowsing", + "version": "v4", + "title": "Safe Browsing API", + "description": "Enables client applications to check web resources (most commonly URLs) against Google-generated lists of unsafe web resources. The Safe Browsing APIs are for non-commercial use only. If you need to use APIs to detect malicious URLs for commercial purposes – meaning “for sale or revenue-generating purposes” – please refer to the Web Risk API.", + "discoveryRestUrl": "https://safebrowsing.googleapis.com/$discovery/rest?version=v4", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/safe-browsing/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "sasportal:v1alpha1", + "name": "sasportal", + "version": "v1alpha1", + "title": "SAS Portal API", + "description": "", + "discoveryRestUrl": "https://sasportal.googleapis.com/$discovery/rest?version=v1alpha1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/spectrum-access-system/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "script:v1", + "name": "script", + "version": "v1", + "title": "Apps Script API", + "description": "Manages and executes Google Apps Script projects.", + "discoveryRestUrl": "https://script.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/apps-script/api/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "searchconsole:v1", + "name": "searchconsole", + "version": "v1", + "title": "Google Search Console API", + "description": "The Search Console API provides access to both Search Console data (verified users only) and to public information on an URL basis (anyone)", + "discoveryRestUrl": "https://searchconsole.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/webmaster-tools/search-console-api/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "secretmanager:v1beta1", + "name": "secretmanager", + "version": "v1beta1", + "title": "Secret Manager API", + "description": "Stores sensitive data such as API keys, passwords, and certificates. Provides convenience while improving security.", + "discoveryRestUrl": "https://secretmanager.googleapis.com/$discovery/rest?version=v1beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/secret-manager/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "secretmanager:v1", + "name": "secretmanager", + "version": "v1", + "title": "Secret Manager API", + "description": "Stores sensitive data such as API keys, passwords, and certificates. Provides convenience while improving security.", + "discoveryRestUrl": "https://secretmanager.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/secret-manager/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "securitycenter:v1beta1", + "name": "securitycenter", + "version": "v1beta1", + "title": "Security Command Center API", + "description": "Security Command Center API provides access to temporal views of assets and findings within an organization.", + "discoveryRestUrl": "https://securitycenter.googleapis.com/$discovery/rest?version=v1beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://console.cloud.google.com/apis/api/securitycenter.googleapis.com/overview", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "securitycenter:v1beta2", + "name": "securitycenter", + "version": "v1beta2", + "title": "Security Command Center API", + "description": "Security Command Center API provides access to temporal views of assets and findings within an organization.", + "discoveryRestUrl": "https://securitycenter.googleapis.com/$discovery/rest?version=v1beta2", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://console.cloud.google.com/apis/api/securitycenter.googleapis.com/overview", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "securitycenter:v1", + "name": "securitycenter", + "version": "v1", + "title": "Security Command Center API", + "description": "Security Command Center API provides access to temporal views of assets and findings within an organization.", + "discoveryRestUrl": "https://securitycenter.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://console.cloud.google.com/apis/api/securitycenter.googleapis.com/overview", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "serviceconsumermanagement:v1beta1", + "name": "serviceconsumermanagement", + "version": "v1beta1", + "title": "Service Consumer Management API", + "description": "Manages the service consumers of a Service Infrastructure service.", + "discoveryRestUrl": "https://serviceconsumermanagement.googleapis.com/$discovery/rest?version=v1beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/service-consumer-management/docs/overview", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "serviceconsumermanagement:v1", + "name": "serviceconsumermanagement", + "version": "v1", + "title": "Service Consumer Management API", + "description": "Manages the service consumers of a Service Infrastructure service.", + "discoveryRestUrl": "https://serviceconsumermanagement.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/service-consumer-management/docs/overview", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "servicecontrol:v1", + "name": "servicecontrol", + "version": "v1", + "title": "Service Control API", + "description": "Provides control plane functionality to managed services, such as logging, monitoring, and status checks.", + "discoveryRestUrl": "https://servicecontrol.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/service-control/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "servicecontrol:v2", + "name": "servicecontrol", + "version": "v2", + "title": "Service Control API", + "description": "Provides control plane functionality to managed services, such as logging, monitoring, and status checks.", + "discoveryRestUrl": "https://servicecontrol.googleapis.com/$discovery/rest?version=v2", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/service-control/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "servicedirectory:v1beta1", + "name": "servicedirectory", + "version": "v1beta1", + "title": "Service Directory API", + "description": "Service Directory is a platform for discovering, publishing, and connecting services.", + "discoveryRestUrl": "https://servicedirectory.googleapis.com/$discovery/rest?version=v1beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/service-directory", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "servicemanagement:v1", + "name": "servicemanagement", + "version": "v1", + "title": "Service Management API", + "description": "Google Service Management allows service producers to publish their services on Google Cloud Platform so that they can be discovered and used by service consumers.", + "discoveryRestUrl": "https://servicemanagement.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/service-management/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "servicenetworking:v1beta", + "name": "servicenetworking", + "version": "v1beta", + "title": "Service Networking API", + "description": "Provides automatic management of network configurations necessary for certain services.", + "discoveryRestUrl": "https://servicenetworking.googleapis.com/$discovery/rest?version=v1beta", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/service-infrastructure/docs/service-networking/getting-started", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "servicenetworking:v1", + "name": "servicenetworking", + "version": "v1", + "title": "Service Networking API", + "description": "Provides automatic management of network configurations necessary for certain services.", + "discoveryRestUrl": "https://servicenetworking.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/service-infrastructure/docs/service-networking/getting-started", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "serviceusage:v1beta1", + "name": "serviceusage", + "version": "v1beta1", + "title": "Service Usage API", + "description": "Enables services that service consumers want to use on Google Cloud Platform, lists the available or enabled services, or disables services that service consumers no longer use.", + "discoveryRestUrl": "https://serviceusage.googleapis.com/$discovery/rest?version=v1beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/service-usage/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "serviceusage:v1", + "name": "serviceusage", + "version": "v1", + "title": "Service Usage API", + "description": "Enables services that service consumers want to use on Google Cloud Platform, lists the available or enabled services, or disables services that service consumers no longer use.", + "discoveryRestUrl": "https://serviceusage.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/service-usage/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "sheets:v4", + "name": "sheets", + "version": "v4", + "title": "Google Sheets API", + "description": "Reads and writes Google Sheets.", + "discoveryRestUrl": "https://sheets.googleapis.com/$discovery/rest?version=v4", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/sheets/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "siteVerification:v1", + "name": "siteVerification", + "version": "v1", + "title": "Site Verification API", + "description": "The Google Site Verification API lets applications automate the process of managing ownership records for websites and domains.", + "discoveryRestUrl": "https://siteverification.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://code.google.com/apis/siteverification/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "slides:v1", + "name": "slides", + "version": "v1", + "title": "Google Slides API", + "description": "Reads and writes Google Slides presentations.", + "discoveryRestUrl": "https://slides.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/slides/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "smartdevicemanagement:v1", + "name": "smartdevicemanagement", + "version": "v1", + "title": "Smart Device Management API", + "description": "Allow select enterprise partners to access, control, and manage Google and Nest devices programmatically.", + "discoveryRestUrl": "https://smartdevicemanagement.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/nest/device-access", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "sourcerepo:v1", + "name": "sourcerepo", + "version": "v1", + "title": "Cloud Source Repositories API", + "description": "Accesses source code repositories hosted by Google.", + "discoveryRestUrl": "https://sourcerepo.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/source-repositories/docs/apis", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "spanner:v1", + "name": "spanner", + "version": "v1", + "title": "Cloud Spanner API", + "description": "Cloud Spanner is a managed, mission-critical, globally consistent and scalable relational database service.", + "discoveryRestUrl": "https://spanner.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/spanner/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "speech:v1p1beta1", + "name": "speech", + "version": "v1p1beta1", + "title": "Cloud Speech-to-Text API", + "description": "Converts audio to text by applying powerful neural network models.", + "discoveryRestUrl": "https://speech.googleapis.com/$discovery/rest?version=v1p1beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/speech-to-text/docs/quickstart-protocol", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "speech:v2beta1", + "name": "speech", + "version": "v2beta1", + "title": "Cloud Speech-to-Text API", + "description": "Converts audio to text by applying powerful neural network models.", + "discoveryRestUrl": "https://speech.googleapis.com/$discovery/rest?version=v2beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/speech-to-text/docs/quickstart-protocol", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "speech:v1", + "name": "speech", + "version": "v1", + "title": "Cloud Speech-to-Text API", + "description": "Converts audio to text by applying powerful neural network models.", + "discoveryRestUrl": "https://speech.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/speech-to-text/docs/quickstart-protocol", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "sqladmin:v1beta4", + "name": "sqladmin", + "version": "v1beta4", + "title": "Cloud SQL Admin API", + "description": "API for Cloud SQL database instance management", + "discoveryRestUrl": "https://sqladmin.googleapis.com/$discovery/rest?version=v1beta4", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/cloud-sql/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "storage:v1", + "name": "storage", + "version": "v1", + "title": "Cloud Storage API", + "description": "Lets you store and retrieve potentially-large, immutable data objects.", + "discoveryRestUrl": "https://storage.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/storage/docs/json_api/v1/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "storagetransfer:v1", + "name": "storagetransfer", + "version": "v1", + "title": "Storage Transfer API", + "description": "Transfers data from external data sources to a Google Cloud Storage bucket or between Google Cloud Storage buckets.", + "discoveryRestUrl": "https://storagetransfer.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/storage-transfer/docs", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "streetviewpublish:v1", + "name": "streetviewpublish", + "version": "v1", + "title": "Street View Publish API", + "description": "Publishes 360 photos to Google Maps, along with position, orientation, and connectivity metadata. Apps can offer an interface for positioning, connecting, and uploading user-generated Street View images.", + "discoveryRestUrl": "https://streetviewpublish.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/streetview/publish/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "sts:v1beta", + "name": "sts", + "version": "v1beta", + "title": "Security Token Service API", + "description": "The Security Token Service exchanges Google or third-party credentials for a short-lived access token to Google Cloud resources.", + "discoveryRestUrl": "https://sts.googleapis.com/$discovery/rest?version=v1beta", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "http://cloud.google.com/iam/docs/workload-identity-federation", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "sts:v1", + "name": "sts", + "version": "v1", + "title": "Security Token Service API", + "description": "The Security Token Service exchanges Google or third-party credentials for a short-lived access token to Google Cloud resources.", + "discoveryRestUrl": "https://sts.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "http://cloud.google.com/iam/docs/workload-identity-federation", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "tagmanager:v1", + "name": "tagmanager", + "version": "v1", + "title": "Tag Manager API", + "description": "This API allows clients to access and modify container and tag configuration.", + "discoveryRestUrl": "https://tagmanager.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/tag-manager", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "tagmanager:v2", + "name": "tagmanager", + "version": "v2", + "title": "Tag Manager API", + "description": "This API allows clients to access and modify container and tag configuration.", + "discoveryRestUrl": "https://tagmanager.googleapis.com/$discovery/rest?version=v2", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/tag-manager", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "tasks:v1", + "name": "tasks", + "version": "v1", + "title": "Tasks API", + "description": "The Google Tasks API lets you manage your tasks and task lists.", + "discoveryRestUrl": "https://tasks.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "testing:v1", + "name": "testing", + "version": "v1", + "title": "Cloud Testing API", + "description": "Allows developers to run automated tests for their mobile applications on Google infrastructure.", + "discoveryRestUrl": "https://testing.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/cloud-test-lab/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "texttospeech:v1beta1", + "name": "texttospeech", + "version": "v1beta1", + "title": "Cloud Text-to-Speech API", + "description": "Synthesizes natural-sounding speech by applying powerful neural network models.", + "discoveryRestUrl": "https://texttospeech.googleapis.com/$discovery/rest?version=v1beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/text-to-speech/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "texttospeech:v1", + "name": "texttospeech", + "version": "v1", + "title": "Cloud Text-to-Speech API", + "description": "Synthesizes natural-sounding speech by applying powerful neural network models.", + "discoveryRestUrl": "https://texttospeech.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/text-to-speech/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "toolresults:v1beta3", + "name": "toolresults", + "version": "v1beta3", + "title": "Cloud Tool Results API", + "description": "API to publish and access results from developer tools.", + "discoveryRestUrl": "https://toolresults.googleapis.com/$discovery/rest?version=v1beta3", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://firebase.google.com/docs/test-lab/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "tpu:v1alpha1", + "name": "tpu", + "version": "v1alpha1", + "title": "Cloud TPU API", + "description": "TPU API provides customers with access to Google TPU technology.", + "discoveryRestUrl": "https://tpu.googleapis.com/$discovery/rest?version=v1alpha1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/tpu/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "tpu:v1", + "name": "tpu", + "version": "v1", + "title": "Cloud TPU API", + "description": "TPU API provides customers with access to Google TPU technology.", + "discoveryRestUrl": "https://tpu.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/tpu/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "trafficdirector:v2", + "name": "trafficdirector", + "version": "v2", + "title": "Traffic Director API", + "description": "", + "discoveryRestUrl": "https://trafficdirector.googleapis.com/$discovery/rest?version=v2", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/traffic-director", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "transcoder:v1beta1", + "name": "transcoder", + "version": "v1beta1", + "title": "Transcoder API", + "description": "This API converts video files into formats suitable for consumer distribution.", + "discoveryRestUrl": "https://transcoder.googleapis.com/$discovery/rest?version=v1beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/transcoder/docs/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "translate:v3beta1", + "name": "translate", + "version": "v3beta1", + "title": "Cloud Translation API", + "description": "Integrates text translation into your website or application.", + "discoveryRestUrl": "https://translation.googleapis.com/$discovery/rest?version=v3beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/translate/docs/quickstarts", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "translate:v2", + "name": "translate", + "version": "v2", + "title": "Cloud Translation API", + "description": "Integrates text translation into your website or application.", + "discoveryRestUrl": "https://translation.googleapis.com/$discovery/rest?version=v2", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/translate/docs/quickstarts", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "translate:v3", + "name": "translate", + "version": "v3", + "title": "Cloud Translation API", + "description": "Integrates text translation into your website or application.", + "discoveryRestUrl": "https://translation.googleapis.com/$discovery/rest?version=v3", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/translate/docs/quickstarts", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "vault:v1", + "name": "vault", + "version": "v1", + "title": "G Suite Vault API", + "description": "Archiving and eDiscovery for G Suite.", + "discoveryRestUrl": "https://vault.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/vault", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "vectortile:v1", + "name": "vectortile", + "version": "v1", + "title": "Semantic Tile API", + "description": "Serves vector tiles containing geospatial data.", + "discoveryRestUrl": "https://vectortile.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/maps/contact-sales/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "verifiedaccess:v1", + "name": "verifiedaccess", + "version": "v1", + "title": "Chrome Verified Access API", + "description": "API for Verified Access chrome extension to provide credential verification for chrome devices connecting to an enterprise network", + "discoveryRestUrl": "https://verifiedaccess.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/chrome/verified-access", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "videointelligence:v1p1beta1", + "name": "videointelligence", + "version": "v1p1beta1", + "title": "Cloud Video Intelligence API", + "description": "Detects objects, explicit content, and scene changes in videos. It also specifies the region for annotation and transcribes speech to text. Supports both asynchronous API and streaming API.", + "discoveryRestUrl": "https://videointelligence.googleapis.com/$discovery/rest?version=v1p1beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/video-intelligence/docs/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "videointelligence:v1p2beta1", + "name": "videointelligence", + "version": "v1p2beta1", + "title": "Cloud Video Intelligence API", + "description": "Detects objects, explicit content, and scene changes in videos. It also specifies the region for annotation and transcribes speech to text. Supports both asynchronous API and streaming API.", + "discoveryRestUrl": "https://videointelligence.googleapis.com/$discovery/rest?version=v1p2beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/video-intelligence/docs/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "videointelligence:v1p3beta1", + "name": "videointelligence", + "version": "v1p3beta1", + "title": "Cloud Video Intelligence API", + "description": "Detects objects, explicit content, and scene changes in videos. It also specifies the region for annotation and transcribes speech to text. Supports both asynchronous API and streaming API.", + "discoveryRestUrl": "https://videointelligence.googleapis.com/$discovery/rest?version=v1p3beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/video-intelligence/docs/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "videointelligence:v1beta2", + "name": "videointelligence", + "version": "v1beta2", + "title": "Cloud Video Intelligence API", + "description": "Detects objects, explicit content, and scene changes in videos. It also specifies the region for annotation and transcribes speech to text. Supports both asynchronous API and streaming API.", + "discoveryRestUrl": "https://videointelligence.googleapis.com/$discovery/rest?version=v1beta2", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/video-intelligence/docs/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "videointelligence:v1", + "name": "videointelligence", + "version": "v1", + "title": "Cloud Video Intelligence API", + "description": "Detects objects, explicit content, and scene changes in videos. It also specifies the region for annotation and transcribes speech to text. Supports both asynchronous API and streaming API.", + "discoveryRestUrl": "https://videointelligence.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/video-intelligence/docs/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "vision:v1p1beta1", + "name": "vision", + "version": "v1p1beta1", + "title": "Cloud Vision API", + "description": "Integrates Google Vision features, including image labeling, face, logo, and landmark detection, optical character recognition (OCR), and detection of explicit content, into applications.", + "discoveryRestUrl": "https://vision.googleapis.com/$discovery/rest?version=v1p1beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/vision/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "vision:v1p2beta1", + "name": "vision", + "version": "v1p2beta1", + "title": "Cloud Vision API", + "description": "Integrates Google Vision features, including image labeling, face, logo, and landmark detection, optical character recognition (OCR), and detection of explicit content, into applications.", + "discoveryRestUrl": "https://vision.googleapis.com/$discovery/rest?version=v1p2beta1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/vision/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "vision:v1", + "name": "vision", + "version": "v1", + "title": "Cloud Vision API", + "description": "Integrates Google Vision features, including image labeling, face, logo, and landmark detection, optical character recognition (OCR), and detection of explicit content, into applications.", + "discoveryRestUrl": "https://vision.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/vision/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "webfonts:v1", + "name": "webfonts", + "version": "v1", + "title": "Web Fonts Developer API", + "description": "The Google Web Fonts Developer API lets you retrieve information about web fonts served by Google.", + "discoveryRestUrl": "https://webfonts.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/fonts/docs/developer_api", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "webmasters:v3", + "name": "webmasters", + "version": "v3", + "title": "Search Console API", + "description": "[Deprecated] View Google Search Console data for your verified sites.", + "discoveryRestUrl": "https://www.googleapis.com/discovery/v1/apis/webmasters/v3/rest", + "discoveryLink": "./apis/webmasters/v3/rest", + "icons": { + "x16": "https://www.google.com/images/icons/product/webmaster_tools-16.png", + "x32": "https://www.google.com/images/icons/product/webmaster_tools-32.png" + }, + "documentationLink": "https://developers.google.com/webmaster-tools/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "websecurityscanner:v1alpha", + "name": "websecurityscanner", + "version": "v1alpha", + "title": "Web Security Scanner API", + "description": "Scans your Compute and App Engine apps for common web vulnerabilities.", + "discoveryRestUrl": "https://websecurityscanner.googleapis.com/$discovery/rest?version=v1alpha", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/security-command-center/docs/concepts-web-security-scanner-overview/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "websecurityscanner:v1beta", + "name": "websecurityscanner", + "version": "v1beta", + "title": "Web Security Scanner API", + "description": "Scans your Compute and App Engine apps for common web vulnerabilities.", + "discoveryRestUrl": "https://websecurityscanner.googleapis.com/$discovery/rest?version=v1beta", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/security-command-center/docs/concepts-web-security-scanner-overview/", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "websecurityscanner:v1", + "name": "websecurityscanner", + "version": "v1", + "title": "Web Security Scanner API", + "description": "Scans your Compute and App Engine apps for common web vulnerabilities.", + "discoveryRestUrl": "https://websecurityscanner.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/security-command-center/docs/concepts-web-security-scanner-overview/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "workflowexecutions:v1beta", + "name": "workflowexecutions", + "version": "v1beta", + "title": "Workflow Executions API", + "description": "Execute workflows created with Workflows API.", + "discoveryRestUrl": "https://workflowexecutions.googleapis.com/$discovery/rest?version=v1beta", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/workflows", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "workflows:v1beta", + "name": "workflows", + "version": "v1beta", + "title": "Workflows API", + "description": "Orchestrate Workflows consisting of Google Cloud APIs, SaaS APIs or private API endpoints.", + "discoveryRestUrl": "https://workflows.googleapis.com/$discovery/rest?version=v1beta", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://cloud.google.com/workflows", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "youtube:v3", + "name": "youtube", + "version": "v3", + "title": "YouTube Data API v3", + "description": "The YouTube Data API v3 is an API that provides access to YouTube data, such as videos, playlists, and channels.", + "discoveryRestUrl": "https://youtube.googleapis.com/$discovery/rest?version=v3", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/youtube/", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "youtubeAnalytics:v1", + "name": "youtubeAnalytics", + "version": "v1", + "title": "YouTube Analytics API", + "description": "Retrieves your YouTube Analytics data.", + "discoveryRestUrl": "https://youtubeanalytics.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/youtube/analytics", + "preferred": false + }, + { + "kind": "discovery#directoryItem", + "id": "youtubeAnalytics:v2", + "name": "youtubeAnalytics", + "version": "v2", + "title": "YouTube Analytics API", + "description": "Retrieves your YouTube Analytics data.", + "discoveryRestUrl": "https://youtubeanalytics.googleapis.com/$discovery/rest?version=v2", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/youtube/analytics", + "preferred": true + }, + { + "kind": "discovery#directoryItem", + "id": "youtubereporting:v1", + "name": "youtubereporting", + "version": "v1", + "title": "YouTube Reporting API", + "description": "Schedules reporting jobs containing your YouTube Analytics data and downloads the resulting bulk data reports in the form of CSV files.", + "discoveryRestUrl": "https://youtubereporting.googleapis.com/$discovery/rest?version=v1", + "icons": { + "x16": "https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png", + "x32": "https://www.gstatic.com/images/branding/product/1x/googleg_32dp.png" + }, + "documentationLink": "https://developers.google.com/youtube/reporting/v1/reports/", + "preferred": true + } + ] +} diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/jobs.v3.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/jobs.v3.json new file mode 100644 index 0000000000000000000000000000000000000000..867bda5daa2de1a4ef72ec2e150ef1543cd3f228 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/jobs.v3.json @@ -0,0 +1,2676 @@ +{ +"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/jobs": { +"description": "Manage job postings" +} +} +} +}, +"basePath": "", +"baseUrl": "https://jobs.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Cloud Talent Solution", +"description": "Cloud Talent Solution provides the capability to create, read, update, and delete job postings, as well as search jobs based on keywords and filters. ", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/talent-solution/job-search/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": "jobs:v3", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://jobs.mtls.googleapis.com/", +"name": "jobs", +"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": { +"complete": { +"description": "Completes the specified prefix with keyword suggestions. Intended for use by a job search auto-complete search box.", +"flatPath": "v3/projects/{projectsId}:complete", +"httpMethod": "GET", +"id": "jobs.projects.complete", +"parameterOrder": [ +"name" +], +"parameters": { +"companyName": { +"description": "Optional. If provided, restricts completion to specified company. The format is \"projects/{project_id}/companies/{company_id}\", for example, \"projects/api-test-project/companies/foo\".", +"location": "query", +"type": "string" +}, +"languageCode": { +"deprecated": true, +"description": "Deprecated. Use language_codes instead. Optional. The language of the query. 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). For CompletionType.JOB_TITLE type, only open jobs with the same language_code are returned. For CompletionType.COMPANY_NAME type, only companies having open jobs with the same language_code are returned. For CompletionType.COMBINED type, only open jobs with the same language_code or companies having open jobs with the same language_code are returned. The maximum number of allowed characters is 255.", +"location": "query", +"type": "string" +}, +"languageCodes": { +"description": "Optional. The list of languages of the query. 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). For CompletionType.JOB_TITLE type, only open jobs with the same language_codes are returned. For CompletionType.COMPANY_NAME type, only companies having open jobs with the same language_codes are returned. For CompletionType.COMBINED type, only open jobs with the same language_codes or companies having open jobs with the same language_codes are returned. The maximum number of allowed characters is 255.", +"location": "query", +"repeated": true, +"type": "string" +}, +"name": { +"description": "Required. Resource name of project the completion is performed within. The format is \"projects/{project_id}\", for example, \"projects/api-test-project\".", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"pageSize": { +"description": "Required. Completion result count. The maximum allowed page size is 10.", +"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" +}, +"scope": { +"description": "Optional. The scope of the completion. The defaults is CompletionScope.PUBLIC.", +"enum": [ +"COMPLETION_SCOPE_UNSPECIFIED", +"TENANT", +"PUBLIC" +], +"enumDescriptions": [ +"Default value.", +"Suggestions are based only on the data provided by the client.", +"Suggestions are based on all jobs data in the system that's visible to the client" +], +"location": "query", +"type": "string" +}, +"type": { +"description": "Optional. The completion topic. The default is CompletionType.COMBINED.", +"enum": [ +"COMPLETION_TYPE_UNSPECIFIED", +"JOB_TITLE", +"COMPANY_NAME", +"COMBINED" +], +"enumDescriptions": [ +"Default value.", +"Only suggest job titles.", +"Only suggest company names.", +"Suggest both job titles and company names." +], +"location": "query", +"type": "string" +} +}, +"path": "v3/{+name}:complete", +"response": { +"$ref": "CompleteQueryResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/jobs" +] +} +}, +"resources": { +"clientEvents": { +"methods": { +"create": { +"description": "Report events issued when end user interacts with customer's application that uses Cloud Talent Solution. You may inspect the created events in [self service tools](https://console.cloud.google.com/talent-solution/overview). [Learn more](https://cloud.google.com/talent-solution/docs/management-tools) about self service tools.", +"flatPath": "v3/projects/{projectsId}/clientEvents", +"httpMethod": "POST", +"id": "jobs.projects.clientEvents.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Parent project name.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/clientEvents", +"request": { +"$ref": "CreateClientEventRequest" +}, +"response": { +"$ref": "ClientEvent" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/jobs" +] +} +} +}, +"companies": { +"methods": { +"create": { +"description": "Creates a new company entity.", +"flatPath": "v3/projects/{projectsId}/companies", +"httpMethod": "POST", +"id": "jobs.projects.companies.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Resource name of the project under which the company is created. The format is \"projects/{project_id}\", for example, \"projects/api-test-project\".", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/companies", +"request": { +"$ref": "CreateCompanyRequest" +}, +"response": { +"$ref": "Company" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/jobs" +] +}, +"delete": { +"description": "Deletes specified company. Prerequisite: The company has no jobs associated with it.", +"flatPath": "v3/projects/{projectsId}/companies/{companiesId}", +"httpMethod": "DELETE", +"id": "jobs.projects.companies.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the company to be deleted. The format is \"projects/{project_id}/companies/{company_id}\", for example, \"projects/api-test-project/companies/foo\".", +"location": "path", +"pattern": "^projects/[^/]+/companies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/jobs" +] +}, +"get": { +"description": "Retrieves specified company.", +"flatPath": "v3/projects/{projectsId}/companies/{companiesId}", +"httpMethod": "GET", +"id": "jobs.projects.companies.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the company to be retrieved. The format is \"projects/{project_id}/companies/{company_id}\", for example, \"projects/api-test-project/companies/foo\".", +"location": "path", +"pattern": "^projects/[^/]+/companies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "Company" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/jobs" +] +}, +"list": { +"description": "Lists all companies associated with the service account.", +"flatPath": "v3/projects/{projectsId}/companies", +"httpMethod": "GET", +"id": "jobs.projects.companies.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of companies to be returned, at most 100. Default is 100 if a non-positive number is provided.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The starting indicator from which to return results.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Resource name of the project under which the company is created. The format is \"projects/{project_id}\", for example, \"projects/api-test-project\".", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"requireOpenJobs": { +"description": "Optional. Set to true if the companies requested must have open jobs. Defaults to false. If true, at most page_size of companies are fetched, among which only those with open jobs are returned.", +"location": "query", +"type": "boolean" +} +}, +"path": "v3/{+parent}/companies", +"response": { +"$ref": "ListCompaniesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/jobs" +] +}, +"patch": { +"description": "Updates specified company. Company names can't be updated. To update a company name, delete the company and all jobs associated with it, and only then re-create them.", +"flatPath": "v3/projects/{projectsId}/companies/{companiesId}", +"httpMethod": "PATCH", +"id": "jobs.projects.companies.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required during company update. The resource name for a company. This is generated by the service when a company is created. The format is \"projects/{project_id}/companies/{company_id}\", for example, \"projects/api-test-project/companies/foo\".", +"location": "path", +"pattern": "^projects/[^/]+/companies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"request": { +"$ref": "UpdateCompanyRequest" +}, +"response": { +"$ref": "Company" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/jobs" +] +} +} +}, +"jobs": { +"methods": { +"batchDelete": { +"description": "Deletes a list of Jobs by filter.", +"flatPath": "v3/projects/{projectsId}/jobs:batchDelete", +"httpMethod": "POST", +"id": "jobs.projects.jobs.batchDelete", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The resource name of the project under which the job is created. The format is \"projects/{project_id}\", for example, \"projects/api-test-project\".", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/jobs:batchDelete", +"request": { +"$ref": "BatchDeleteJobsRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/jobs" +] +}, +"create": { +"description": "Creates a new job. Typically, the job becomes searchable within 10 seconds, but it may take up to 5 minutes.", +"flatPath": "v3/projects/{projectsId}/jobs", +"httpMethod": "POST", +"id": "jobs.projects.jobs.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The resource name of the project under which the job is created. The format is \"projects/{project_id}\", for example, \"projects/api-test-project\".", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/jobs", +"request": { +"$ref": "CreateJobRequest" +}, +"response": { +"$ref": "Job" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/jobs" +] +}, +"delete": { +"description": "Deletes the specified job. Typically, the job becomes unsearchable within 10 seconds, but it may take up to 5 minutes.", +"flatPath": "v3/projects/{projectsId}/jobs/{jobsId}", +"httpMethod": "DELETE", +"id": "jobs.projects.jobs.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the job to be deleted. The format is \"projects/{project_id}/jobs/{job_id}\", for example, \"projects/api-test-project/jobs/1234\".", +"location": "path", +"pattern": "^projects/[^/]+/jobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/jobs" +] +}, +"get": { +"description": "Retrieves the specified job, whose status is OPEN or recently EXPIRED within the last 90 days.", +"flatPath": "v3/projects/{projectsId}/jobs/{jobsId}", +"httpMethod": "GET", +"id": "jobs.projects.jobs.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the job to retrieve. The format is \"projects/{project_id}/jobs/{job_id}\", for example, \"projects/api-test-project/jobs/1234\".", +"location": "path", +"pattern": "^projects/[^/]+/jobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "Job" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/jobs" +] +}, +"list": { +"description": "Lists jobs by filter.", +"flatPath": "v3/projects/{projectsId}/jobs", +"httpMethod": "GET", +"id": "jobs.projects.jobs.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Required. The filter string specifies the jobs to be enumerated. Supported operator: =, AND The fields eligible for filtering are: * `companyName` * `requisitionId` * `status` Available values: OPEN, EXPIRED, ALL. Defaults to OPEN if no value is specified. At least one of `companyName` and `requisitionId` must present or an INVALID_ARGUMENT error is thrown. Sample Query: * companyName = \"projects/api-test-project/companies/123\" * companyName = \"projects/api-test-project/companies/123\" AND requisitionId = \"req-1\" * companyName = \"projects/api-test-project/companies/123\" AND status = \"EXPIRED\" * requisitionId = \"req-1\" * requisitionId = \"req-1\" AND status = \"EXPIRED\"", +"location": "query", +"type": "string" +}, +"jobView": { +"description": "Optional. The desired job attributes returned for jobs in the search response. Defaults to JobView.JOB_VIEW_FULL if no value is specified.", +"enum": [ +"JOB_VIEW_UNSPECIFIED", +"JOB_VIEW_ID_ONLY", +"JOB_VIEW_MINIMAL", +"JOB_VIEW_SMALL", +"JOB_VIEW_FULL" +], +"enumDescriptions": [ +"Default value.", +"A ID only view of job, with following attributes: Job.name, Job.requisition_id, Job.language_code.", +"A minimal view of the job, with the following attributes: Job.name, Job.requisition_id, Job.title, Job.company_name, Job.DerivedInfo.locations, Job.language_code.", +"A small view of the job, with the following attributes in the search results: Job.name, Job.requisition_id, Job.title, Job.company_name, Job.DerivedInfo.locations, Job.visibility, Job.language_code, Job.description.", +"All available attributes are included in the search results." +], +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of jobs to be returned per page of results. If job_view is set to JobView.JOB_VIEW_ID_ONLY, the maximum allowed page size is 1000. Otherwise, the maximum allowed page size is 100. Default is 100 if empty or a number < 1 is specified.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The starting point of a query result.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the project under which the job is created. The format is \"projects/{project_id}\", for example, \"projects/api-test-project\".", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/jobs", +"response": { +"$ref": "ListJobsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/jobs" +] +}, +"patch": { +"description": "Updates specified job. Typically, updated contents become visible in search results within 10 seconds, but it may take up to 5 minutes.", +"flatPath": "v3/projects/{projectsId}/jobs/{jobsId}", +"httpMethod": "PATCH", +"id": "jobs.projects.jobs.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required during job update. The resource name for the job. This is generated by the service when a job is created. The format is \"projects/{project_id}/jobs/{job_id}\", for example, \"projects/api-test-project/jobs/1234\". Use of this field in job queries and API calls is preferred over the use of requisition_id since this value is unique.", +"location": "path", +"pattern": "^projects/[^/]+/jobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"request": { +"$ref": "UpdateJobRequest" +}, +"response": { +"$ref": "Job" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/jobs" +] +}, +"search": { +"description": "Searches for jobs using the provided SearchJobsRequest. This call constrains the visibility of jobs present in the database, and only returns jobs that the caller has permission to search against.", +"flatPath": "v3/projects/{projectsId}/jobs:search", +"httpMethod": "POST", +"id": "jobs.projects.jobs.search", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The resource name of the project to search within. The format is \"projects/{project_id}\", for example, \"projects/api-test-project\".", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/jobs:search", +"request": { +"$ref": "SearchJobsRequest" +}, +"response": { +"$ref": "SearchJobsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/jobs" +] +}, +"searchForAlert": { +"description": "Searches for jobs using the provided SearchJobsRequest. This API call is intended for the use case of targeting passive job seekers (for example, job seekers who have signed up to receive email alerts about potential job opportunities), and has different algorithmic adjustments that are targeted to passive job seekers. This call constrains the visibility of jobs present in the database, and only returns jobs the caller has permission to search against.", +"flatPath": "v3/projects/{projectsId}/jobs:searchForAlert", +"httpMethod": "POST", +"id": "jobs.projects.jobs.searchForAlert", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The resource name of the project to search within. The format is \"projects/{project_id}\", for example, \"projects/api-test-project\".", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/jobs:searchForAlert", +"request": { +"$ref": "SearchJobsRequest" +}, +"response": { +"$ref": "SearchJobsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/jobs" +] +} +} +} +} +} +}, +"revision": "20241217", +"rootUrl": "https://jobs.googleapis.com/", +"schemas": { +"ApplicationInfo": { +"description": "Application related details of a job posting.", +"id": "ApplicationInfo", +"properties": { +"emails": { +"description": "Optional but at least one of uris, emails or instruction must be specified. Use this field to specify email address(es) to which resumes or applications can be sent. The maximum number of allowed characters for each entry is 255.", +"items": { +"type": "string" +}, +"type": "array" +}, +"instruction": { +"description": "Optional but at least one of uris, emails or instruction must be specified. Use this field to provide instructions, such as \"Mail your application to ...\", that a candidate can follow to apply for the job. This field accepts and sanitizes HTML input, and also accepts bold, italic, ordered list, and unordered list markup tags. The maximum number of allowed characters is 3,000.", +"type": "string" +}, +"uris": { +"description": "Optional but at least one of uris, emails or instruction must be specified. Use this URI field to direct an applicant to a website, for example to link to an online application form. The maximum number of allowed characters for each entry is 2,000.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"BatchDeleteJobsRequest": { +"description": "Input only. Batch delete jobs request.", +"id": "BatchDeleteJobsRequest", +"properties": { +"filter": { +"description": "Required. The filter string specifies the jobs to be deleted. Supported operator: =, AND The fields eligible for filtering are: * `companyName` (Required) * `requisitionId` (Required) Sample Query: companyName = \"projects/api-test-project/companies/123\" AND requisitionId = \"req-1\"", +"type": "string" +} +}, +"type": "object" +}, +"BucketRange": { +"description": "Represents starting and ending value of a range in double.", +"id": "BucketRange", +"properties": { +"from": { +"description": "Starting value of the bucket range.", +"format": "double", +"type": "number" +}, +"to": { +"description": "Ending value of the bucket range.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"BucketizedCount": { +"description": "Represents count of jobs within one bucket.", +"id": "BucketizedCount", +"properties": { +"count": { +"description": "Number of jobs whose numeric field value fall into `range`.", +"format": "int32", +"type": "integer" +}, +"range": { +"$ref": "BucketRange", +"description": "Bucket range on which histogram was performed for the numeric field, that is, the count represents number of jobs in this range." +} +}, +"type": "object" +}, +"ClientEvent": { +"description": "An event issued when an end user interacts with the application that implements Cloud Talent Solution. Providing this information improves the quality of search and recommendation for the API clients, enabling the service to perform optimally. The number of events sent must be consistent with other calls, such as job searches, issued to the service by the client.", +"id": "ClientEvent", +"properties": { +"createTime": { +"description": "Required. The timestamp of the event.", +"format": "google-datetime", +"type": "string" +}, +"eventId": { +"description": "Required. A unique identifier, generated by the client application. This `event_id` is used to establish the relationship between different events (see parent_event_id).", +"type": "string" +}, +"extraInfo": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Extra information about this event. Used for storing information with no matching field in event payload, for example, user application specific context or details. At most 20 keys are supported. The maximum total size of all keys and values is 2 KB.", +"type": "object" +}, +"jobEvent": { +"$ref": "JobEvent", +"description": "A event issued when a job seeker interacts with the application that implements Cloud Talent Solution." +}, +"parentEventId": { +"description": "Optional. The event_id of an event that resulted in the current event. For example, a Job view event usually follows a parent impression event: A job seeker first does a search where a list of jobs appears (impression). The job seeker then selects a result and views the description of a particular job (Job view).", +"type": "string" +}, +"requestId": { +"description": "Required. A unique ID generated in the API responses. It can be found in ResponseMetadata.request_id.", +"type": "string" +} +}, +"type": "object" +}, +"CommuteFilter": { +"description": "Input only. Parameters needed for commute search.", +"id": "CommuteFilter", +"properties": { +"allowImpreciseAddresses": { +"description": "Optional. If true, jobs without \"precise\" addresses (street level addresses or GPS coordinates) might also be returned. For city and coarser level addresses, text matching is used. If this field is set to false or is not specified, only jobs that include precise addresses are returned by Commute Search. Note: If `allow_imprecise_addresses` is set to true, Commute Search is not able to calculate accurate commute times to jobs with city level and coarser address information. Jobs with imprecise addresses will return a `travel_duration` time of 0 regardless of distance from the job seeker.", +"type": "boolean" +}, +"commuteMethod": { +"description": "Required. The method of transportation for which to calculate the commute time.", +"enum": [ +"COMMUTE_METHOD_UNSPECIFIED", +"DRIVING", +"TRANSIT" +], +"enumDescriptions": [ +"Commute method is not specified.", +"Commute time is calculated based on driving time.", +"Commute time is calculated based on public transit including bus, metro, subway, etc." +], +"type": "string" +}, +"departureTime": { +"$ref": "TimeOfDay", +"description": "Optional. The departure time used to calculate traffic impact, represented as google.type.TimeOfDay in local time zone. Currently traffic model is restricted to hour level resolution." +}, +"roadTraffic": { +"description": "Optional. Specifies the traffic density to use when calculating commute time.", +"enum": [ +"ROAD_TRAFFIC_UNSPECIFIED", +"TRAFFIC_FREE", +"BUSY_HOUR" +], +"enumDescriptions": [ +"Road traffic situation is not specified.", +"Optimal commute time without considering any traffic impact.", +"Commute time calculation takes in account the peak traffic impact." +], +"type": "string" +}, +"startCoordinates": { +"$ref": "LatLng", +"description": "Required. The latitude and longitude of the location from which to calculate the commute time." +}, +"travelDuration": { +"description": "Required. The maximum travel time in seconds. The maximum allowed value is `3600s` (one hour). Format is `123s`.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"CommuteInfo": { +"description": "Output only. Commute details related to this job.", +"id": "CommuteInfo", +"properties": { +"jobLocation": { +"$ref": "Location", +"description": "Location used as the destination in the commute calculation." +}, +"travelDuration": { +"description": "The number of seconds required to travel to the job location from the query location. A duration of 0 seconds indicates that the job is not reachable within the requested duration, but was returned as part of an expanded query.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"Company": { +"description": "A Company resource represents a company in the service. A company is the entity that owns job postings, that is, the hiring entity responsible for employing applicants for the job position.", +"id": "Company", +"properties": { +"careerSiteUri": { +"description": "Optional. The URI to employer's career site or careers page on the employer's web site, for example, \"https://careers.google.com\".", +"type": "string" +}, +"derivedInfo": { +"$ref": "CompanyDerivedInfo", +"description": "Output only. Derived details about the company." +}, +"displayName": { +"description": "Required. The display name of the company, for example, \"Google LLC\".", +"type": "string" +}, +"eeoText": { +"description": "Optional. Equal Employment Opportunity legal disclaimer text to be associated with all jobs, and typically to be displayed in all roles. The maximum number of allowed characters is 500.", +"type": "string" +}, +"externalId": { +"description": "Required. Client side company identifier, used to uniquely identify the company. The maximum number of allowed characters is 255.", +"type": "string" +}, +"headquartersAddress": { +"description": "Optional. The street address of the company's main headquarters, which may be different from the job location. The service attempts to geolocate the provided address, and populates a more specific location wherever possible in DerivedInfo.headquarters_location.", +"type": "string" +}, +"hiringAgency": { +"description": "Optional. Set to true if it is the hiring agency that post jobs for other employers. Defaults to false if not provided.", +"type": "boolean" +}, +"imageUri": { +"description": "Optional. A URI that hosts the employer's company logo.", +"type": "string" +}, +"keywordSearchableJobCustomAttributes": { +"deprecated": true, +"description": "Optional. This field is deprecated. Please set the searchability of the custom attribute in the Job.custom_attributes going forward. A list of keys of filterable Job.custom_attributes, whose corresponding `string_values` are used in keyword search. Jobs with `string_values` under these specified field keys are returned if any of the values matches the search keyword. Custom field values with parenthesis, brackets and special symbols won't be properly searchable, and those keyword queries need to be surrounded by quotes.", +"items": { +"type": "string" +}, +"type": "array" +}, +"name": { +"description": "Required during company update. The resource name for a company. This is generated by the service when a company is created. The format is \"projects/{project_id}/companies/{company_id}\", for example, \"projects/api-test-project/companies/foo\".", +"type": "string" +}, +"size": { +"description": "Optional. The employer's company size.", +"enum": [ +"COMPANY_SIZE_UNSPECIFIED", +"MINI", +"SMALL", +"SMEDIUM", +"MEDIUM", +"BIG", +"BIGGER", +"GIANT" +], +"enumDescriptions": [ +"Default value if the size is not specified.", +"The company has less than 50 employees.", +"The company has between 50 and 99 employees.", +"The company has between 100 and 499 employees.", +"The company has between 500 and 999 employees.", +"The company has between 1,000 and 4,999 employees.", +"The company has between 5,000 and 9,999 employees.", +"The company has 10,000 or more employees." +], +"type": "string" +}, +"suspended": { +"description": "Output only. Indicates whether a company is flagged to be suspended from public availability by the service when job content appears suspicious, abusive, or spammy.", +"type": "boolean" +}, +"websiteUri": { +"description": "Optional. The URI representing the company's primary web site or home page, for example, \"https://www.google.com\". The maximum number of allowed characters is 255.", +"type": "string" +} +}, +"type": "object" +}, +"CompanyDerivedInfo": { +"description": "Derived details about the company.", +"id": "CompanyDerivedInfo", +"properties": { +"headquartersLocation": { +"$ref": "Location", +"description": "A structured headquarters location of the company, resolved from Company.hq_location if provided." +} +}, +"type": "object" +}, +"CompensationEntry": { +"description": "A compensation entry that represents one component of compensation, such as base pay, bonus, or other compensation type. Annualization: One compensation entry can be annualized if - it contains valid amount or range. - and its expected_units_per_year is set or can be derived. Its annualized range is determined as (amount or range) times expected_units_per_year.", +"id": "CompensationEntry", +"properties": { +"amount": { +"$ref": "Money", +"description": "Optional. Compensation amount." +}, +"description": { +"description": "Optional. Compensation description. For example, could indicate equity terms or provide additional context to an estimated bonus.", +"type": "string" +}, +"expectedUnitsPerYear": { +"description": "Optional. Expected number of units paid each year. If not specified, when Job.employment_types is FULLTIME, a default value is inferred based on unit. Default values: - HOURLY: 2080 - DAILY: 260 - WEEKLY: 52 - MONTHLY: 12 - ANNUAL: 1", +"format": "double", +"type": "number" +}, +"range": { +"$ref": "CompensationRange", +"description": "Optional. Compensation range." +}, +"type": { +"description": "Optional. Compensation type. Default is CompensationUnit.COMPENSATION_TYPE_UNSPECIFIED.", +"enum": [ +"COMPENSATION_TYPE_UNSPECIFIED", +"BASE", +"BONUS", +"SIGNING_BONUS", +"EQUITY", +"PROFIT_SHARING", +"COMMISSIONS", +"TIPS", +"OTHER_COMPENSATION_TYPE" +], +"enumDescriptions": [ +"Default value.", +"Base compensation: Refers to the fixed amount of money paid to an employee by an employer in return for work performed. Base compensation does not include benefits, bonuses or any other potential compensation from an employer.", +"Bonus.", +"Signing bonus.", +"Equity.", +"Profit sharing.", +"Commission.", +"Tips.", +"Other compensation type." +], +"type": "string" +}, +"unit": { +"description": "Optional. Frequency of the specified amount. Default is CompensationUnit.COMPENSATION_UNIT_UNSPECIFIED.", +"enum": [ +"COMPENSATION_UNIT_UNSPECIFIED", +"HOURLY", +"DAILY", +"WEEKLY", +"MONTHLY", +"YEARLY", +"ONE_TIME", +"OTHER_COMPENSATION_UNIT" +], +"enumDescriptions": [ +"Default value.", +"Hourly.", +"Daily.", +"Weekly", +"Monthly.", +"Yearly.", +"One time.", +"Other compensation units." +], +"type": "string" +} +}, +"type": "object" +}, +"CompensationFilter": { +"description": "Input only. Filter on job compensation type and amount.", +"id": "CompensationFilter", +"properties": { +"includeJobsWithUnspecifiedCompensationRange": { +"description": "Optional. If set to true, jobs with unspecified compensation range fields are included.", +"type": "boolean" +}, +"range": { +"$ref": "CompensationRange", +"description": "Optional. Compensation range." +}, +"type": { +"description": "Required. Type of filter.", +"enum": [ +"FILTER_TYPE_UNSPECIFIED", +"UNIT_ONLY", +"UNIT_AND_AMOUNT", +"ANNUALIZED_BASE_AMOUNT", +"ANNUALIZED_TOTAL_AMOUNT" +], +"enumDescriptions": [ +"Filter type unspecified. Position holder, INVALID, should never be used.", +"Filter by `base compensation entry's` unit. A job is a match if and only if the job contains a base CompensationEntry and the base CompensationEntry's unit matches provided units. Populate one or more units. See CompensationInfo.CompensationEntry for definition of base compensation entry.", +"Filter by `base compensation entry's` unit and amount / range. A job is a match if and only if the job contains a base CompensationEntry, and the base entry's unit matches provided compensation_units and amount or range overlaps with provided compensation_range. See CompensationInfo.CompensationEntry for definition of base compensation entry. Set exactly one units and populate range.", +"Filter by annualized base compensation amount and `base compensation entry's` unit. Populate range and zero or more units.", +"Filter by annualized total compensation amount and `base compensation entry's` unit . Populate range and zero or more units." +], +"type": "string" +}, +"units": { +"description": "Required. Specify desired `base compensation entry's` CompensationInfo.CompensationUnit.", +"items": { +"enum": [ +"COMPENSATION_UNIT_UNSPECIFIED", +"HOURLY", +"DAILY", +"WEEKLY", +"MONTHLY", +"YEARLY", +"ONE_TIME", +"OTHER_COMPENSATION_UNIT" +], +"enumDescriptions": [ +"Default value.", +"Hourly.", +"Daily.", +"Weekly", +"Monthly.", +"Yearly.", +"One time.", +"Other compensation units." +], +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"CompensationHistogramRequest": { +"description": "Input only. Compensation based histogram request.", +"id": "CompensationHistogramRequest", +"properties": { +"bucketingOption": { +"$ref": "NumericBucketingOption", +"description": "Required. Numeric histogram options, like buckets, whether include min or max value." +}, +"type": { +"description": "Required. Type of the request, representing which field the histogramming should be performed over. A single request can only specify one histogram of each `CompensationHistogramRequestType`.", +"enum": [ +"COMPENSATION_HISTOGRAM_REQUEST_TYPE_UNSPECIFIED", +"BASE", +"ANNUALIZED_BASE", +"ANNUALIZED_TOTAL" +], +"enumDescriptions": [ +"Default value. Invalid.", +"Histogram by job's base compensation. See CompensationEntry for definition of base compensation.", +"Histogram by job's annualized base compensation. See CompensationEntry for definition of annualized base compensation.", +"Histogram by job's annualized total compensation. See CompensationEntry for definition of annualized total compensation." +], +"type": "string" +} +}, +"type": "object" +}, +"CompensationHistogramResult": { +"description": "Output only. Compensation based histogram result.", +"id": "CompensationHistogramResult", +"properties": { +"result": { +"$ref": "NumericBucketingResult", +"description": "Histogram result." +}, +"type": { +"description": "Type of the request, corresponding to CompensationHistogramRequest.type.", +"enum": [ +"COMPENSATION_HISTOGRAM_REQUEST_TYPE_UNSPECIFIED", +"BASE", +"ANNUALIZED_BASE", +"ANNUALIZED_TOTAL" +], +"enumDescriptions": [ +"Default value. Invalid.", +"Histogram by job's base compensation. See CompensationEntry for definition of base compensation.", +"Histogram by job's annualized base compensation. See CompensationEntry for definition of annualized base compensation.", +"Histogram by job's annualized total compensation. See CompensationEntry for definition of annualized total compensation." +], +"type": "string" +} +}, +"type": "object" +}, +"CompensationInfo": { +"description": "Job compensation details.", +"id": "CompensationInfo", +"properties": { +"annualizedBaseCompensationRange": { +"$ref": "CompensationRange", +"description": "Output only. Annualized base compensation range. Computed as base compensation entry's CompensationEntry.compensation times CompensationEntry.expected_units_per_year. See CompensationEntry for explanation on compensation annualization." +}, +"annualizedTotalCompensationRange": { +"$ref": "CompensationRange", +"description": "Output only. Annualized total compensation range. Computed as all compensation entries' CompensationEntry.compensation times CompensationEntry.expected_units_per_year. See CompensationEntry for explanation on compensation annualization." +}, +"entries": { +"description": "Optional. Job compensation information. At most one entry can be of type CompensationInfo.CompensationType.BASE, which is referred as ** base compensation entry ** for the job.", +"items": { +"$ref": "CompensationEntry" +}, +"type": "array" +} +}, +"type": "object" +}, +"CompensationRange": { +"description": "Compensation range.", +"id": "CompensationRange", +"properties": { +"maxCompensation": { +"$ref": "Money", +"description": "Optional. The maximum amount of compensation. If left empty, the value is set to a maximal compensation value and the currency code is set to match the currency code of min_compensation." +}, +"minCompensation": { +"$ref": "Money", +"description": "Optional. The minimum amount of compensation. If left empty, the value is set to zero and the currency code is set to match the currency code of max_compensation." +} +}, +"type": "object" +}, +"CompleteQueryResponse": { +"description": "Output only. Response of auto-complete query.", +"id": "CompleteQueryResponse", +"properties": { +"completionResults": { +"description": "Results of the matching job/company candidates.", +"items": { +"$ref": "CompletionResult" +}, +"type": "array" +}, +"metadata": { +"$ref": "ResponseMetadata", +"description": "Additional information for the API invocation, such as the request tracking id." +} +}, +"type": "object" +}, +"CompletionResult": { +"description": "Output only. Resource that represents completion results.", +"id": "CompletionResult", +"properties": { +"imageUri": { +"description": "The URI of the company image for CompletionType.COMPANY_NAME.", +"type": "string" +}, +"suggestion": { +"description": "The suggestion for the query.", +"type": "string" +}, +"type": { +"description": "The completion topic.", +"enum": [ +"COMPLETION_TYPE_UNSPECIFIED", +"JOB_TITLE", +"COMPANY_NAME", +"COMBINED" +], +"enumDescriptions": [ +"Default value.", +"Only suggest job titles.", +"Only suggest company names.", +"Suggest both job titles and company names." +], +"type": "string" +} +}, +"type": "object" +}, +"CreateClientEventRequest": { +"description": "The report event request.", +"id": "CreateClientEventRequest", +"properties": { +"clientEvent": { +"$ref": "ClientEvent", +"description": "Required. Events issued when end user interacts with customer's application that uses Cloud Talent Solution." +} +}, +"type": "object" +}, +"CreateCompanyRequest": { +"description": "Input only. The Request of the CreateCompany method.", +"id": "CreateCompanyRequest", +"properties": { +"company": { +"$ref": "Company", +"description": "Required. The company to be created." +} +}, +"type": "object" +}, +"CreateJobRequest": { +"description": "Input only. Create job request.", +"id": "CreateJobRequest", +"properties": { +"job": { +"$ref": "Job", +"description": "Required. The Job to be created." +} +}, +"type": "object" +}, +"CustomAttribute": { +"description": "Custom attribute values that are either filterable or non-filterable.", +"id": "CustomAttribute", +"properties": { +"filterable": { +"description": "Optional. If the `filterable` flag is true, the custom field values may be used for custom attribute filters JobQuery.custom_attribute_filter. If false, these values may not be used for custom attribute filters. Default is false.", +"type": "boolean" +}, +"longValues": { +"description": "Optional but exactly one of string_values or long_values must be specified. This field is used to perform number range search. (`EQ`, `GT`, `GE`, `LE`, `LT`) over filterable `long_value`. Currently at most 1 long_values is supported.", +"items": { +"format": "int64", +"type": "string" +}, +"type": "array" +}, +"stringValues": { +"description": "Optional but exactly one of string_values or long_values must be specified. This field is used to perform a string match (`CASE_SENSITIVE_MATCH` or `CASE_INSENSITIVE_MATCH`) search. For filterable `string_value`s, a maximum total number of 200 values is allowed, with each `string_value` has a byte size of no more than 500B. For unfilterable `string_values`, the maximum total byte size of unfilterable `string_values` is 50KB. Empty string is not allowed.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"CustomAttributeHistogramRequest": { +"description": "Custom attributes histogram request. An error is thrown if neither string_value_histogram or long_value_histogram_bucketing_option has been defined.", +"id": "CustomAttributeHistogramRequest", +"properties": { +"key": { +"description": "Required. Specifies the custom field key to perform a histogram on. If specified without `long_value_histogram_bucketing_option`, histogram on string values of the given `key` is triggered, otherwise histogram is performed on long values.", +"type": "string" +}, +"longValueHistogramBucketingOption": { +"$ref": "NumericBucketingOption", +"description": "Optional. Specifies buckets used to perform a range histogram on Job's filterable long custom field values, or min/max value requirements." +}, +"stringValueHistogram": { +"description": "Optional. If set to true, the response includes the histogram value for each key as a string.", +"type": "boolean" +} +}, +"type": "object" +}, +"CustomAttributeHistogramResult": { +"description": "Output only. Custom attribute histogram result.", +"id": "CustomAttributeHistogramResult", +"properties": { +"key": { +"description": "Stores the key of custom attribute the histogram is performed on.", +"type": "string" +}, +"longValueHistogramResult": { +"$ref": "NumericBucketingResult", +"description": "Stores bucketed histogram counting result or min/max values for custom attribute long values associated with `key`." +}, +"stringValueHistogramResult": { +"additionalProperties": { +"format": "int32", +"type": "integer" +}, +"description": "Stores a map from the values of string custom field associated with `key` to the number of jobs with that value in this histogram result.", +"type": "object" +} +}, +"type": "object" +}, +"DeviceInfo": { +"description": "Device information collected from the job seeker, candidate, or other entity conducting the job search. Providing this information improves the quality of the search results across devices.", +"id": "DeviceInfo", +"properties": { +"deviceType": { +"description": "Optional. Type of the device.", +"enum": [ +"DEVICE_TYPE_UNSPECIFIED", +"WEB", +"MOBILE_WEB", +"ANDROID", +"IOS", +"BOT", +"OTHER" +], +"enumDescriptions": [ +"The device type isn't specified.", +"A desktop web browser, such as, Chrome, Firefox, Safari, or Internet Explorer)", +"A mobile device web browser, such as a phone or tablet with a Chrome browser.", +"An Android device native application.", +"An iOS device native application.", +"A bot, as opposed to a device operated by human beings, such as a web crawler.", +"Other devices types." +], +"type": "string" +}, +"id": { +"description": "Optional. A device-specific ID. The ID must be a unique identifier that distinguishes the device from other devices.", +"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" +}, +"HistogramFacets": { +"description": "Input only. Histogram facets to be specified in SearchJobsRequest.", +"id": "HistogramFacets", +"properties": { +"compensationHistogramFacets": { +"description": "Optional. Specifies compensation field-based histogram requests. Duplicate values of CompensationHistogramRequest.type are not allowed.", +"items": { +"$ref": "CompensationHistogramRequest" +}, +"type": "array" +}, +"customAttributeHistogramFacets": { +"description": "Optional. Specifies the custom attributes histogram requests. Duplicate values of CustomAttributeHistogramRequest.key are not allowed.", +"items": { +"$ref": "CustomAttributeHistogramRequest" +}, +"type": "array" +}, +"simpleHistogramFacets": { +"description": "Optional. Specifies the simple type of histogram facets, for example, `COMPANY_SIZE`, `EMPLOYMENT_TYPE` etc.", +"items": { +"enum": [ +"SEARCH_TYPE_UNSPECIFIED", +"COMPANY_ID", +"EMPLOYMENT_TYPE", +"COMPANY_SIZE", +"DATE_PUBLISHED", +"EDUCATION_LEVEL", +"EXPERIENCE_LEVEL", +"ADMIN_1", +"COUNTRY", +"CITY", +"LOCALE", +"LANGUAGE", +"CATEGORY", +"CITY_COORDINATE", +"ADMIN_1_COUNTRY", +"COMPANY_DISPLAY_NAME", +"BASE_COMPENSATION_UNIT" +], +"enumDescriptions": [ +"The default value if search type is not specified.", +"Filter by the company id field.", +"Filter by the employment type field, such as `FULL_TIME` or `PART_TIME`.", +"Filter by the company size type field, such as `BIG`, `SMALL` or `BIGGER`.", +"Filter by the date published field. Possible return values are: * PAST_24_HOURS (The past 24 hours) * PAST_3_DAYS (The past 3 days) * PAST_WEEK (The past 7 days) * PAST_MONTH (The past 30 days) * PAST_YEAR (The past 365 days)", +"Filter by the required education level of the job.", +"Filter by the required experience level of the job.", +"Filter by Admin1, which is a global placeholder for referring to state, province, or the particular term a country uses to define the geographic structure below the country level. Examples include states codes such as \"CA\", \"IL\", \"NY\", and provinces, such as \"BC\".", +"Filter by the country code of job, such as US, JP, FR.", +"Filter by the \"city name\", \"Admin1 code\", for example, \"Mountain View, CA\" or \"New York, NY\".", +"Filter by the locale field of a job, such as \"en-US\", \"fr-FR\". 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).", +"Filter by the language code portion of the locale field, such as \"en\" or \"fr\".", +"Filter by the Category.", +"Filter by the city center GPS coordinate (latitude and longitude), for example, 37.4038522,-122.0987765. Since the coordinates of a city center can change, clients may need to refresh them periodically.", +"A combination of state or province code with a country code. This field differs from `JOB_ADMIN1`, which can be used in multiple countries.", +"Company display name.", +"Base compensation unit." +], +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"HistogramResult": { +"description": "Output only. Result of a histogram call. The response contains the histogram map for the search type specified by HistogramResult.field. The response is a map of each filter value to the corresponding count of jobs for that filter.", +"id": "HistogramResult", +"properties": { +"searchType": { +"description": "The Histogram search filters.", +"enum": [ +"SEARCH_TYPE_UNSPECIFIED", +"COMPANY_ID", +"EMPLOYMENT_TYPE", +"COMPANY_SIZE", +"DATE_PUBLISHED", +"EDUCATION_LEVEL", +"EXPERIENCE_LEVEL", +"ADMIN_1", +"COUNTRY", +"CITY", +"LOCALE", +"LANGUAGE", +"CATEGORY", +"CITY_COORDINATE", +"ADMIN_1_COUNTRY", +"COMPANY_DISPLAY_NAME", +"BASE_COMPENSATION_UNIT" +], +"enumDescriptions": [ +"The default value if search type is not specified.", +"Filter by the company id field.", +"Filter by the employment type field, such as `FULL_TIME` or `PART_TIME`.", +"Filter by the company size type field, such as `BIG`, `SMALL` or `BIGGER`.", +"Filter by the date published field. Possible return values are: * PAST_24_HOURS (The past 24 hours) * PAST_3_DAYS (The past 3 days) * PAST_WEEK (The past 7 days) * PAST_MONTH (The past 30 days) * PAST_YEAR (The past 365 days)", +"Filter by the required education level of the job.", +"Filter by the required experience level of the job.", +"Filter by Admin1, which is a global placeholder for referring to state, province, or the particular term a country uses to define the geographic structure below the country level. Examples include states codes such as \"CA\", \"IL\", \"NY\", and provinces, such as \"BC\".", +"Filter by the country code of job, such as US, JP, FR.", +"Filter by the \"city name\", \"Admin1 code\", for example, \"Mountain View, CA\" or \"New York, NY\".", +"Filter by the locale field of a job, such as \"en-US\", \"fr-FR\". 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).", +"Filter by the language code portion of the locale field, such as \"en\" or \"fr\".", +"Filter by the Category.", +"Filter by the city center GPS coordinate (latitude and longitude), for example, 37.4038522,-122.0987765. Since the coordinates of a city center can change, clients may need to refresh them periodically.", +"A combination of state or province code with a country code. This field differs from `JOB_ADMIN1`, which can be used in multiple countries.", +"Company display name.", +"Base compensation unit." +], +"type": "string" +}, +"values": { +"additionalProperties": { +"format": "int32", +"type": "integer" +}, +"description": "A map from the values of field to the number of jobs with that value in this search result. Key: search type (filter names, such as the companyName). Values: the count of jobs that match the filter for this search.", +"type": "object" +} +}, +"type": "object" +}, +"HistogramResults": { +"description": "Output only. Histogram results that match HistogramFacets specified in SearchJobsRequest.", +"id": "HistogramResults", +"properties": { +"compensationHistogramResults": { +"description": "Specifies compensation field-based histogram results that match HistogramFacets.compensation_histogram_requests.", +"items": { +"$ref": "CompensationHistogramResult" +}, +"type": "array" +}, +"customAttributeHistogramResults": { +"description": "Specifies histogram results for custom attributes that match HistogramFacets.custom_attribute_histogram_facets.", +"items": { +"$ref": "CustomAttributeHistogramResult" +}, +"type": "array" +}, +"simpleHistogramResults": { +"description": "Specifies histogram results that matches HistogramFacets.simple_histogram_facets.", +"items": { +"$ref": "HistogramResult" +}, +"type": "array" +} +}, +"type": "object" +}, +"Job": { +"description": "A Job resource represents a job posting (also referred to as a \"job listing\" or \"job requisition\"). A job belongs to a Company, which is the hiring entity responsible for the job.", +"id": "Job", +"properties": { +"addresses": { +"description": "Optional but strongly recommended for the best service experience. Location(s) where the employer is looking to hire for this job posting. Specifying the full street address(es) of the hiring location enables better API results, especially job searches by commute time. At most 50 locations are allowed for best search performance. If a job has more locations, it is suggested to split it into multiple jobs with unique requisition_ids (e.g. 'ReqA' becomes 'ReqA-1', 'ReqA-2', etc.) as multiple jobs with the same company_name, language_code and requisition_id are not allowed. If the original requisition_id must be preserved, a custom field should be used for storage. It is also suggested to group the locations that close to each other in the same job for better search experience. Jobs with multiple addresses must have their addresses with the same LocationType to allow location filtering to work properly. (For example, a Job with addresses \"1600 Amphitheatre Parkway, Mountain View, CA, USA\" and \"London, UK\" may not have location filters applied correctly at search time since the first is a LocationType.STREET_ADDRESS and the second is a LocationType.LOCALITY.) If a job needs to have multiple addresses, it is suggested to split it into multiple jobs with same LocationTypes. The maximum number of allowed characters is 500.", +"items": { +"type": "string" +}, +"type": "array" +}, +"applicationInfo": { +"$ref": "ApplicationInfo", +"description": "Required. At least one field within ApplicationInfo must be specified. Job application information." +}, +"companyDisplayName": { +"description": "Output only. Display name of the company listing the job.", +"type": "string" +}, +"companyName": { +"description": "Required. The resource name of the company listing the job, such as \"projects/api-test-project/companies/foo\".", +"type": "string" +}, +"compensationInfo": { +"$ref": "CompensationInfo", +"description": "Optional. Job compensation information." +}, +"customAttributes": { +"additionalProperties": { +"$ref": "CustomAttribute" +}, +"description": "Optional. A map of fields to hold both filterable and non-filterable custom job attributes that are not covered by the provided structured fields. The keys of the map are strings up to 64 bytes and must match the pattern: a-zA-Z*. For example, key0LikeThis or KEY_1_LIKE_THIS. At most 100 filterable and at most 100 unfilterable keys are supported. For filterable `string_values`, across all keys at most 200 values are allowed, with each string no more than 255 characters. For unfilterable `string_values`, the maximum total size of `string_values` across all keys is 50KB.", +"type": "object" +}, +"degreeTypes": { +"description": "Optional. The desired education degrees for the job, such as Bachelors, Masters.", +"items": { +"enum": [ +"DEGREE_TYPE_UNSPECIFIED", +"PRIMARY_EDUCATION", +"LOWER_SECONDARY_EDUCATION", +"UPPER_SECONDARY_EDUCATION", +"ADULT_REMEDIAL_EDUCATION", +"ASSOCIATES_OR_EQUIVALENT", +"BACHELORS_OR_EQUIVALENT", +"MASTERS_OR_EQUIVALENT", +"DOCTORAL_OR_EQUIVALENT" +], +"enumDescriptions": [ +"Default value. Represents no degree, or early childhood education. Maps to ISCED code 0. Ex) Kindergarten", +"Primary education which is typically the first stage of compulsory education. ISCED code 1. Ex) Elementary school", +"Lower secondary education; First stage of secondary education building on primary education, typically with a more subject-oriented curriculum. ISCED code 2. Ex) Middle school", +"Middle education; Second/final stage of secondary education preparing for tertiary education and/or providing skills relevant to employment. Usually with an increased range of subject options and streams. ISCED code 3. Ex) High school", +"Adult Remedial Education; Programmes providing learning experiences that build on secondary education and prepare for labour market entry and/or tertiary education. The content is broader than secondary but not as complex as tertiary education. ISCED code 4.", +"Associate's or equivalent; Short first tertiary programmes that are typically practically-based, occupationally-specific and prepare for labour market entry. These programmes may also provide a pathway to other tertiary programmes. ISCED code 5.", +"Bachelor's or equivalent; Programmes designed to provide intermediate academic and/or professional knowledge, skills and competencies leading to a first tertiary degree or equivalent qualification. ISCED code 6.", +"Master's or equivalent; Programmes designed to provide advanced academic and/or professional knowledge, skills and competencies leading to a second tertiary degree or equivalent qualification. ISCED code 7.", +"Doctoral or equivalent; Programmes designed primarily to lead to an advanced research qualification, usually concluding with the submission and defense of a substantive dissertation of publishable quality based on original research. ISCED code 8." +], +"type": "string" +}, +"type": "array" +}, +"department": { +"description": "Optional. The department or functional area within the company with the open position. The maximum number of allowed characters is 255.", +"type": "string" +}, +"derivedInfo": { +"$ref": "JobDerivedInfo", +"description": "Output only. Derived details about the job posting." +}, +"description": { +"description": "Required. The description of the job, which typically includes a multi-paragraph description of the company and related information. Separate fields are provided on the job object for responsibilities, qualifications, and other job characteristics. Use of these separate job fields is recommended. This field accepts and sanitizes HTML input, and also accepts bold, italic, ordered list, and unordered list markup tags. The maximum number of allowed characters is 100,000.", +"type": "string" +}, +"employmentTypes": { +"description": "Optional. The employment type(s) of a job, for example, full time or part time.", +"items": { +"enum": [ +"EMPLOYMENT_TYPE_UNSPECIFIED", +"FULL_TIME", +"PART_TIME", +"CONTRACTOR", +"CONTRACT_TO_HIRE", +"TEMPORARY", +"INTERN", +"VOLUNTEER", +"PER_DIEM", +"FLY_IN_FLY_OUT", +"OTHER_EMPLOYMENT_TYPE" +], +"enumDescriptions": [ +"The default value if the employment type is not specified.", +"The job requires working a number of hours that constitute full time employment, typically 40 or more hours per week.", +"The job entails working fewer hours than a full time job, typically less than 40 hours a week.", +"The job is offered as a contracted, as opposed to a salaried employee, position.", +"The job is offered as a contracted position with the understanding that it's converted into a full-time position at the end of the contract. Jobs of this type are also returned by a search for EmploymentType.CONTRACTOR jobs.", +"The job is offered as a temporary employment opportunity, usually a short-term engagement.", +"The job is a fixed-term opportunity for students or entry-level job seekers to obtain on-the-job training, typically offered as a summer position.", +"The is an opportunity for an individual to volunteer, where there's no expectation of compensation for the provided services.", +"The job requires an employee to work on an as-needed basis with a flexible schedule.", +"The job involves employing people in remote areas and flying them temporarily to the work site instead of relocating employees and their families permanently.", +"The job does not fit any of the other listed types." +], +"type": "string" +}, +"type": "array" +}, +"incentives": { +"description": "Optional. A description of bonus, commission, and other compensation incentives associated with the job not including salary or pay. The maximum number of allowed characters is 10,000.", +"type": "string" +}, +"jobBenefits": { +"description": "Optional. The benefits included with the job.", +"items": { +"enum": [ +"JOB_BENEFIT_UNSPECIFIED", +"CHILD_CARE", +"DENTAL", +"DOMESTIC_PARTNER", +"FLEXIBLE_HOURS", +"MEDICAL", +"LIFE_INSURANCE", +"PARENTAL_LEAVE", +"RETIREMENT_PLAN", +"SICK_DAYS", +"VACATION", +"VISION" +], +"enumDescriptions": [ +"Default value if the type is not specified.", +"The job includes access to programs that support child care, such as daycare.", +"The job includes dental services covered by a dental insurance plan.", +"The job offers specific benefits to domestic partners.", +"The job allows for a flexible work schedule.", +"The job includes health services covered by a medical insurance plan.", +"The job includes a life insurance plan provided by the employer or available for purchase by the employee.", +"The job allows for a leave of absence to a parent to care for a newborn child.", +"The job includes a workplace retirement plan provided by the employer or available for purchase by the employee.", +"The job allows for paid time off due to illness.", +"The job includes paid time off for vacation.", +"The job includes vision services covered by a vision insurance plan." +], +"type": "string" +}, +"type": "array" +}, +"jobEndTime": { +"description": "Optional. The end timestamp of the job. Typically this field is used for contracting engagements. Invalid timestamps are ignored.", +"format": "google-datetime", +"type": "string" +}, +"jobLevel": { +"description": "Optional. The experience level associated with the job, such as \"Entry Level\".", +"enum": [ +"JOB_LEVEL_UNSPECIFIED", +"ENTRY_LEVEL", +"EXPERIENCED", +"MANAGER", +"DIRECTOR", +"EXECUTIVE" +], +"enumDescriptions": [ +"The default value if the level is not specified.", +"Entry-level individual contributors, typically with less than 2 years of experience in a similar role. Includes interns.", +"Experienced individual contributors, typically with 2+ years of experience in a similar role.", +"Entry- to mid-level managers responsible for managing a team of people.", +"Senior-level managers responsible for managing teams of managers.", +"Executive-level managers and above, including C-level positions." +], +"type": "string" +}, +"jobStartTime": { +"description": "Optional. The start timestamp of the job in UTC time zone. Typically this field is used for contracting engagements. Invalid timestamps are ignored.", +"format": "google-datetime", +"type": "string" +}, +"languageCode": { +"description": "Optional. The language of the posting. This field is distinct from any requirements for fluency that are associated with the job. Language codes must be in BCP-47 format, such as \"en-US\" or \"sr-Latn\". For more information, see [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47){: class=\"external\" target=\"_blank\" }. If this field is unspecified and Job.description is present, detected language code based on Job.description is assigned, otherwise defaults to 'en_US'.", +"type": "string" +}, +"name": { +"description": "Required during job update. The resource name for the job. This is generated by the service when a job is created. The format is \"projects/{project_id}/jobs/{job_id}\", for example, \"projects/api-test-project/jobs/1234\". Use of this field in job queries and API calls is preferred over the use of requisition_id since this value is unique.", +"type": "string" +}, +"postingCreateTime": { +"description": "Output only. The timestamp when this job posting was created.", +"format": "google-datetime", +"type": "string" +}, +"postingExpireTime": { +"description": "Optional but strongly recommended for the best service experience. The expiration timestamp of the job. After this timestamp, the job is marked as expired, and it no longer appears in search results. The expired job can't be deleted or listed by the DeleteJob and ListJobs APIs, but it can be retrieved with the GetJob API or updated with the UpdateJob API. An expired job can be updated and opened again by using a future expiration timestamp. Updating an expired job fails if there is another existing open job with same company_name, language_code and requisition_id. The expired jobs are retained in our system for 90 days. However, the overall expired job count cannot exceed 3 times the maximum of open jobs count over the past week, otherwise jobs with earlier expire time are cleaned first. Expired jobs are no longer accessible after they are cleaned out. Invalid timestamps are ignored, and treated as expire time not provided. Timestamp before the instant request is made is considered valid, the job will be treated as expired immediately. If this value is not provided at the time of job creation or is invalid, the job posting expires after 30 days from the job's creation time. For example, if the job was created on 2017/01/01 13:00AM UTC with an unspecified expiration date, the job expires after 2017/01/31 13:00AM UTC. If this value is not provided on job update, it depends on the field masks set by UpdateJobRequest.update_mask. If the field masks include expiry_time, or the masks are empty meaning that every field is updated, the job posting expires after 30 days from the job's last update time. Otherwise the expiration date isn't updated.", +"format": "google-datetime", +"type": "string" +}, +"postingPublishTime": { +"description": "Optional. The timestamp this job posting was most recently published. The default value is the time the request arrives at the server. Invalid timestamps are ignored.", +"format": "google-datetime", +"type": "string" +}, +"postingRegion": { +"description": "Optional. The job PostingRegion (for example, state, country) throughout which the job is available. If this field is set, a LocationFilter in a search query within the job region finds this job posting if an exact location match isn't specified. If this field is set to PostingRegion.NATION or PostingRegion.ADMINISTRATIVE_AREA, setting job Job.addresses to the same location level as this field is strongly recommended.", +"enum": [ +"POSTING_REGION_UNSPECIFIED", +"ADMINISTRATIVE_AREA", +"NATION", +"TELECOMMUTE" +], +"enumDescriptions": [ +"If the region is unspecified, the job is only returned if it matches the LocationFilter.", +"In addition to exact location matching, job posting is returned when the LocationFilter in the search query is in the same administrative area as the returned job posting. For example, if a `ADMINISTRATIVE_AREA` job is posted in \"CA, USA\", it's returned if LocationFilter has \"Mountain View\". Administrative area refers to top-level administrative subdivision of this country. For example, US state, IT region, UK constituent nation and JP prefecture.", +"In addition to exact location matching, job is returned when LocationFilter in search query is in the same country as this job. For example, if a `NATION_WIDE` job is posted in \"USA\", it's returned if LocationFilter has 'Mountain View'.", +"Job allows employees to work remotely (telecommute). If locations are provided with this value, the job is considered as having a location, but telecommuting is allowed." +], +"type": "string" +}, +"postingUpdateTime": { +"description": "Output only. The timestamp when this job posting was last updated.", +"format": "google-datetime", +"type": "string" +}, +"processingOptions": { +"$ref": "ProcessingOptions", +"description": "Optional. Options for job processing." +}, +"promotionValue": { +"description": "Optional. A promotion value of the job, as determined by the client. The value determines the sort order of the jobs returned when searching for jobs using the featured jobs search call, with higher promotional values being returned first and ties being resolved by relevance sort. Only the jobs with a promotionValue >0 are returned in a FEATURED_JOB_SEARCH. Default value is 0, and negative values are treated as 0.", +"format": "int32", +"type": "integer" +}, +"qualifications": { +"description": "Optional. A description of the qualifications required to perform the job. The use of this field is recommended as an alternative to using the more general description field. This field accepts and sanitizes HTML input, and also accepts bold, italic, ordered list, and unordered list markup tags. The maximum number of allowed characters is 10,000.", +"type": "string" +}, +"requisitionId": { +"description": "Required. The requisition ID, also referred to as the posting ID, assigned by the client to identify a job. This field is intended to be used by clients for client identification and tracking of postings. A job is not allowed to be created if there is another job with the same [company_name], language_code and requisition_id. The maximum number of allowed characters is 255.", +"type": "string" +}, +"responsibilities": { +"description": "Optional. A description of job responsibilities. The use of this field is recommended as an alternative to using the more general description field. This field accepts and sanitizes HTML input, and also accepts bold, italic, ordered list, and unordered list markup tags. The maximum number of allowed characters is 10,000.", +"type": "string" +}, +"title": { +"description": "Required. The title of the job, such as \"Software Engineer\" The maximum number of allowed characters is 500.", +"type": "string" +}, +"visibility": { +"deprecated": true, +"description": "Deprecated. The job is only visible to the owner. The visibility of the job. Defaults to Visibility.ACCOUNT_ONLY if not specified.", +"enum": [ +"VISIBILITY_UNSPECIFIED", +"ACCOUNT_ONLY", +"SHARED_WITH_GOOGLE", +"SHARED_WITH_PUBLIC" +], +"enumDescriptions": [ +"Default value.", +"The resource is only visible to the GCP account who owns it.", +"The resource is visible to the owner and may be visible to other applications and processes at Google.", +"The resource is visible to the owner and may be visible to all other API clients." +], +"type": "string" +} +}, +"type": "object" +}, +"JobDerivedInfo": { +"description": "Output only. Derived details about the job posting.", +"id": "JobDerivedInfo", +"properties": { +"jobCategories": { +"description": "Job categories derived from Job.title and Job.description.", +"items": { +"enum": [ +"JOB_CATEGORY_UNSPECIFIED", +"ACCOUNTING_AND_FINANCE", +"ADMINISTRATIVE_AND_OFFICE", +"ADVERTISING_AND_MARKETING", +"ANIMAL_CARE", +"ART_FASHION_AND_DESIGN", +"BUSINESS_OPERATIONS", +"CLEANING_AND_FACILITIES", +"COMPUTER_AND_IT", +"CONSTRUCTION", +"CUSTOMER_SERVICE", +"EDUCATION", +"ENTERTAINMENT_AND_TRAVEL", +"FARMING_AND_OUTDOORS", +"HEALTHCARE", +"HUMAN_RESOURCES", +"INSTALLATION_MAINTENANCE_AND_REPAIR", +"LEGAL", +"MANAGEMENT", +"MANUFACTURING_AND_WAREHOUSE", +"MEDIA_COMMUNICATIONS_AND_WRITING", +"OIL_GAS_AND_MINING", +"PERSONAL_CARE_AND_SERVICES", +"PROTECTIVE_SERVICES", +"REAL_ESTATE", +"RESTAURANT_AND_HOSPITALITY", +"SALES_AND_RETAIL", +"SCIENCE_AND_ENGINEERING", +"SOCIAL_SERVICES_AND_NON_PROFIT", +"SPORTS_FITNESS_AND_RECREATION", +"TRANSPORTATION_AND_LOGISTICS" +], +"enumDescriptions": [ +"The default value if the category isn't specified.", +"An accounting and finance job, such as an Accountant.", +"An administrative and office job, such as an Administrative Assistant.", +"An advertising and marketing job, such as Marketing Manager.", +"An animal care job, such as Veterinarian.", +"An art, fashion, or design job, such as Designer.", +"A business operations job, such as Business Operations Manager.", +"A cleaning and facilities job, such as Custodial Staff.", +"A computer and IT job, such as Systems Administrator.", +"A construction job, such as General Laborer.", +"A customer service job, such s Cashier.", +"An education job, such as School Teacher.", +"An entertainment and travel job, such as Flight Attendant.", +"A farming or outdoor job, such as Park Ranger.", +"A healthcare job, such as Registered Nurse.", +"A human resources job, such as Human Resources Director.", +"An installation, maintenance, or repair job, such as Electrician.", +"A legal job, such as Law Clerk.", +"A management job, often used in conjunction with another category, such as Store Manager.", +"A manufacturing or warehouse job, such as Assembly Technician.", +"A media, communications, or writing job, such as Media Relations.", +"An oil, gas or mining job, such as Offshore Driller.", +"A personal care and services job, such as Hair Stylist.", +"A protective services job, such as Security Guard.", +"A real estate job, such as Buyer's Agent.", +"A restaurant and hospitality job, such as Restaurant Server.", +"A sales and/or retail job, such Sales Associate.", +"A science and engineering job, such as Lab Technician.", +"A social services or non-profit job, such as Case Worker.", +"A sports, fitness, or recreation job, such as Personal Trainer.", +"A transportation or logistics job, such as Truck Driver." +], +"type": "string" +}, +"type": "array" +}, +"locations": { +"description": "Structured locations of the job, resolved from Job.addresses. locations are exactly matched to Job.addresses in the same order.", +"items": { +"$ref": "Location" +}, +"type": "array" +} +}, +"type": "object" +}, +"JobEvent": { +"description": "An event issued when a job seeker interacts with the application that implements Cloud Talent Solution.", +"id": "JobEvent", +"properties": { +"jobs": { +"description": "Required. The job name(s) associated with this event. For example, if this is an impression event, this field contains the identifiers of all jobs shown to the job seeker. If this was a view event, this field contains the identifier of the viewed job.", +"items": { +"type": "string" +}, +"type": "array" +}, +"type": { +"description": "Required. The type of the event (see JobEventType).", +"enum": [ +"JOB_EVENT_TYPE_UNSPECIFIED", +"IMPRESSION", +"VIEW", +"VIEW_REDIRECT", +"APPLICATION_START", +"APPLICATION_FINISH", +"APPLICATION_QUICK_SUBMISSION", +"APPLICATION_REDIRECT", +"APPLICATION_START_FROM_SEARCH", +"APPLICATION_REDIRECT_FROM_SEARCH", +"APPLICATION_COMPANY_SUBMIT", +"BOOKMARK", +"NOTIFICATION", +"HIRED", +"SENT_CV", +"INTERVIEW_GRANTED", +"NOT_INTERESTED" +], +"enumDescriptions": [ +"The event is unspecified by other provided values.", +"The job seeker or other entity interacting with the service has had a job rendered in their view, such as in a list of search results in a compressed or clipped format. This event is typically associated with the viewing of a jobs list on a single page by a job seeker.", +"The job seeker, or other entity interacting with the service, has viewed the details of a job, including the full description. This event doesn't apply to the viewing a snippet of a job appearing as a part of the job search results. Viewing a snippet is associated with an impression).", +"The job seeker or other entity interacting with the service performed an action to view a job and was redirected to a different website for job.", +"The job seeker or other entity interacting with the service began the process or demonstrated the intention of applying for a job.", +"The job seeker or other entity interacting with the service submitted an application for a job.", +"The job seeker or other entity interacting with the service submitted an application for a job with a single click without entering information. If a job seeker performs this action, send only this event to the service. Do not also send JobEventType.APPLICATION_START or JobEventType.APPLICATION_FINISH events.", +"The job seeker or other entity interacting with the service performed an action to apply to a job and was redirected to a different website to complete the application.", +"The job seeker or other entity interacting with the service began the process or demonstrated the intention of applying for a job from the search results page without viewing the details of the job posting. If sending this event, JobEventType.VIEW event shouldn't be sent.", +"The job seeker, or other entity interacting with the service, performs an action with a single click from the search results page to apply to a job (without viewing the details of the job posting), and is redirected to a different website to complete the application. If a candidate performs this action, send only this event to the service. Do not also send JobEventType.APPLICATION_START, JobEventType.APPLICATION_FINISH or JobEventType.VIEW events.", +"This event should be used when a company submits an application on behalf of a job seeker. This event is intended for use by staffing agencies attempting to place candidates.", +"The job seeker or other entity interacting with the service demonstrated an interest in a job by bookmarking or saving it.", +"The job seeker or other entity interacting with the service was sent a notification, such as an email alert or device notification, containing one or more jobs listings generated by the service.", +"The job seeker or other entity interacting with the service was employed by the hiring entity (employer). Send this event only if the job seeker was hired through an application that was initiated by a search conducted through the Cloud Talent Solution service.", +"A recruiter or staffing agency submitted an application on behalf of the candidate after interacting with the service to identify a suitable job posting.", +"The entity interacting with the service (for example, the job seeker), was granted an initial interview by the hiring entity (employer). This event should only be sent if the job seeker was granted an interview as part of an application that was initiated by a search conducted through / recommendation provided by the Cloud Talent Solution service.", +"The job seeker or other entity interacting with the service showed no interest in the job." +], +"type": "string" +} +}, +"type": "object" +}, +"JobQuery": { +"description": "Input only. The query required to perform a search query.", +"id": "JobQuery", +"properties": { +"commuteFilter": { +"$ref": "CommuteFilter", +"description": "Optional. Allows filtering jobs by commute time with different travel methods (for example, driving or public transit). Note: This only works with COMMUTE MODE. When specified, [JobQuery.location_filters] is ignored. Currently we don't support sorting by commute time." +}, +"companyDisplayNames": { +"description": "Optional. This filter specifies the company Company.display_name of the jobs to search against. The company name must match the value exactly. Alternatively, the value being searched for can be wrapped in different match operators. `SUBSTRING_MATCH([value])` The company name must contain a case insensitive substring match of the value. Using this function may increase latency. Sample Value: `SUBSTRING_MATCH(google)` `MULTI_WORD_TOKEN_MATCH([value])` The value will be treated as a multi word token and the company name must contain a case insensitive match of the value. Using this function may increase latency. Sample Value: `MULTI_WORD_TOKEN_MATCH(google)` If a value isn't specified, jobs within the search results are associated with any company. If multiple values are specified, jobs within the search results may be associated with any of the specified companies. At most 20 company display name filters are allowed.", +"items": { +"type": "string" +}, +"type": "array" +}, +"companyNames": { +"description": "Optional. This filter specifies the company entities to search against. If a value isn't specified, jobs are searched for against all companies. If multiple values are specified, jobs are searched against the companies specified. The format is \"projects/{project_id}/companies/{company_id}\", for example, \"projects/api-test-project/companies/foo\". At most 20 company filters are allowed.", +"items": { +"type": "string" +}, +"type": "array" +}, +"compensationFilter": { +"$ref": "CompensationFilter", +"description": "Optional. This search filter is applied only to Job.compensation_info. For example, if the filter is specified as \"Hourly job with per-hour compensation > $15\", only jobs meeting these criteria are searched. If a filter isn't defined, all open jobs are searched." +}, +"customAttributeFilter": { +"description": "Optional. This filter specifies a structured syntax to match against the Job.custom_attributes marked as `filterable`. The syntax for this expression is a subset of SQL syntax. Supported operators are: `=`, `!=`, `<`, `<=`, `>`, and `>=` where the left of the operator is a custom field key and the right of the operator is a number or a quoted string. You must escape backslash (\\\\) and quote (\\\") characters. Supported functions are `LOWER([field_name])` to perform a case insensitive match and `EMPTY([field_name])` to filter on the existence of a key. Boolean expressions (AND/OR/NOT) are supported up to 3 levels of nesting (for example, \"((A AND B AND C) OR NOT D) AND E\"), a maximum of 100 comparisons or functions are allowed in the expression. The expression must be < 10000 bytes in length. Sample Query: `(LOWER(driving_license)=\"class \\\"a\\\"\" OR EMPTY(driving_license)) AND driving_years > 10`", +"type": "string" +}, +"disableSpellCheck": { +"description": "Optional. This flag controls the spell-check feature. If false, the service attempts to correct a misspelled query, for example, \"enginee\" is corrected to \"engineer\". Defaults to false: a spell check is performed.", +"type": "boolean" +}, +"employmentTypes": { +"description": "Optional. The employment type filter specifies the employment type of jobs to search against, such as EmploymentType.FULL_TIME. If a value is not specified, jobs in the search results includes any employment type. If multiple values are specified, jobs in the search results include any of the specified employment types.", +"items": { +"enum": [ +"EMPLOYMENT_TYPE_UNSPECIFIED", +"FULL_TIME", +"PART_TIME", +"CONTRACTOR", +"CONTRACT_TO_HIRE", +"TEMPORARY", +"INTERN", +"VOLUNTEER", +"PER_DIEM", +"FLY_IN_FLY_OUT", +"OTHER_EMPLOYMENT_TYPE" +], +"enumDescriptions": [ +"The default value if the employment type is not specified.", +"The job requires working a number of hours that constitute full time employment, typically 40 or more hours per week.", +"The job entails working fewer hours than a full time job, typically less than 40 hours a week.", +"The job is offered as a contracted, as opposed to a salaried employee, position.", +"The job is offered as a contracted position with the understanding that it's converted into a full-time position at the end of the contract. Jobs of this type are also returned by a search for EmploymentType.CONTRACTOR jobs.", +"The job is offered as a temporary employment opportunity, usually a short-term engagement.", +"The job is a fixed-term opportunity for students or entry-level job seekers to obtain on-the-job training, typically offered as a summer position.", +"The is an opportunity for an individual to volunteer, where there's no expectation of compensation for the provided services.", +"The job requires an employee to work on an as-needed basis with a flexible schedule.", +"The job involves employing people in remote areas and flying them temporarily to the work site instead of relocating employees and their families permanently.", +"The job does not fit any of the other listed types." +], +"type": "string" +}, +"type": "array" +}, +"jobCategories": { +"description": "Optional. The category filter specifies the categories of jobs to search against. See Category for more information. If a value is not specified, jobs from any category are searched against. If multiple values are specified, jobs from any of the specified categories are searched against.", +"items": { +"enum": [ +"JOB_CATEGORY_UNSPECIFIED", +"ACCOUNTING_AND_FINANCE", +"ADMINISTRATIVE_AND_OFFICE", +"ADVERTISING_AND_MARKETING", +"ANIMAL_CARE", +"ART_FASHION_AND_DESIGN", +"BUSINESS_OPERATIONS", +"CLEANING_AND_FACILITIES", +"COMPUTER_AND_IT", +"CONSTRUCTION", +"CUSTOMER_SERVICE", +"EDUCATION", +"ENTERTAINMENT_AND_TRAVEL", +"FARMING_AND_OUTDOORS", +"HEALTHCARE", +"HUMAN_RESOURCES", +"INSTALLATION_MAINTENANCE_AND_REPAIR", +"LEGAL", +"MANAGEMENT", +"MANUFACTURING_AND_WAREHOUSE", +"MEDIA_COMMUNICATIONS_AND_WRITING", +"OIL_GAS_AND_MINING", +"PERSONAL_CARE_AND_SERVICES", +"PROTECTIVE_SERVICES", +"REAL_ESTATE", +"RESTAURANT_AND_HOSPITALITY", +"SALES_AND_RETAIL", +"SCIENCE_AND_ENGINEERING", +"SOCIAL_SERVICES_AND_NON_PROFIT", +"SPORTS_FITNESS_AND_RECREATION", +"TRANSPORTATION_AND_LOGISTICS" +], +"enumDescriptions": [ +"The default value if the category isn't specified.", +"An accounting and finance job, such as an Accountant.", +"An administrative and office job, such as an Administrative Assistant.", +"An advertising and marketing job, such as Marketing Manager.", +"An animal care job, such as Veterinarian.", +"An art, fashion, or design job, such as Designer.", +"A business operations job, such as Business Operations Manager.", +"A cleaning and facilities job, such as Custodial Staff.", +"A computer and IT job, such as Systems Administrator.", +"A construction job, such as General Laborer.", +"A customer service job, such s Cashier.", +"An education job, such as School Teacher.", +"An entertainment and travel job, such as Flight Attendant.", +"A farming or outdoor job, such as Park Ranger.", +"A healthcare job, such as Registered Nurse.", +"A human resources job, such as Human Resources Director.", +"An installation, maintenance, or repair job, such as Electrician.", +"A legal job, such as Law Clerk.", +"A management job, often used in conjunction with another category, such as Store Manager.", +"A manufacturing or warehouse job, such as Assembly Technician.", +"A media, communications, or writing job, such as Media Relations.", +"An oil, gas or mining job, such as Offshore Driller.", +"A personal care and services job, such as Hair Stylist.", +"A protective services job, such as Security Guard.", +"A real estate job, such as Buyer's Agent.", +"A restaurant and hospitality job, such as Restaurant Server.", +"A sales and/or retail job, such Sales Associate.", +"A science and engineering job, such as Lab Technician.", +"A social services or non-profit job, such as Case Worker.", +"A sports, fitness, or recreation job, such as Personal Trainer.", +"A transportation or logistics job, such as Truck Driver." +], +"type": "string" +}, +"type": "array" +}, +"languageCodes": { +"description": "Optional. This filter specifies the locale of jobs to search against, for example, \"en-US\". If a value isn't specified, the search results can contain jobs in any locale. Language codes should be in BCP-47 format, such as \"en-US\" or \"sr-Latn\". For more information, see [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47). At most 10 language code filters are allowed.", +"items": { +"type": "string" +}, +"type": "array" +}, +"locationFilters": { +"description": "Optional. The location filter specifies geo-regions containing the jobs to search against. See LocationFilter for more information. If a location value isn't specified, jobs fitting the other search criteria are retrieved regardless of where they're located. If multiple values are specified, jobs are retrieved from any of the specified locations. If different values are specified for the LocationFilter.distance_in_miles parameter, the maximum provided distance is used for all locations. At most 5 location filters are allowed.", +"items": { +"$ref": "LocationFilter" +}, +"type": "array" +}, +"publishTimeRange": { +"$ref": "TimestampRange", +"description": "Optional. Jobs published within a range specified by this filter are searched against." +}, +"query": { +"description": "Optional. The query string that matches against the job title, description, and location fields. The maximum number of allowed characters is 255.", +"type": "string" +}, +"queryLanguageCode": { +"description": "The language code of query. For example, \"en-US\". This field helps to better interpret the query. If a value isn't specified, the query language code is automatically detected, which may not be accurate. Language code should be in BCP-47 format, such as \"en-US\" or \"sr-Latn\". For more information, see [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).", +"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" +}, +"ListCompaniesResponse": { +"description": "Output only. The List companies response object.", +"id": "ListCompaniesResponse", +"properties": { +"companies": { +"description": "Companies for the current client.", +"items": { +"$ref": "Company" +}, +"type": "array" +}, +"metadata": { +"$ref": "ResponseMetadata", +"description": "Additional information for the API invocation, such as the request tracking id." +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListJobsResponse": { +"description": "Output only. List jobs response.", +"id": "ListJobsResponse", +"properties": { +"jobs": { +"description": "The Jobs for a given company. The maximum number of items returned is based on the limit field provided in the request.", +"items": { +"$ref": "Job" +}, +"type": "array" +}, +"metadata": { +"$ref": "ResponseMetadata", +"description": "Additional information for the API invocation, such as the request tracking id." +}, +"nextPageToken": { +"description": "A token to retrieve the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"Location": { +"description": "Output only. A resource that represents a location with full geographic information.", +"id": "Location", +"properties": { +"latLng": { +"$ref": "LatLng", +"description": "An object representing a latitude/longitude pair." +}, +"locationType": { +"description": "The type of a location, which corresponds to the address lines field of PostalAddress. For example, \"Downtown, Atlanta, GA, USA\" has a type of LocationType#NEIGHBORHOOD, and \"Kansas City, KS, USA\" has a type of LocationType#LOCALITY.", +"enum": [ +"LOCATION_TYPE_UNSPECIFIED", +"COUNTRY", +"ADMINISTRATIVE_AREA", +"SUB_ADMINISTRATIVE_AREA", +"LOCALITY", +"POSTAL_CODE", +"SUB_LOCALITY", +"SUB_LOCALITY_1", +"SUB_LOCALITY_2", +"NEIGHBORHOOD", +"STREET_ADDRESS" +], +"enumDescriptions": [ +"Default value if the type is not specified.", +"A country level location.", +"A state or equivalent level location.", +"A county or equivalent level location.", +"A city or equivalent level location.", +"A postal code level location.", +"A sublocality is a subdivision of a locality, for example a city borough, ward, or arrondissement. Sublocalities are usually recognized by a local political authority. For example, Manhattan and Brooklyn are recognized as boroughs by the City of New York, and are therefore modeled as sublocalities.", +"A district or equivalent level location.", +"A smaller district or equivalent level display.", +"A neighborhood level location.", +"A street address level location." +], +"type": "string" +}, +"postalAddress": { +"$ref": "PostalAddress", +"description": "Postal address of the location that includes human readable information, such as postal delivery and payments addresses. Given a postal address, a postal service can deliver items to a premises, P.O. Box, or other delivery location." +}, +"radiusInMiles": { +"description": "Radius in miles of the job location. This value is derived from the location bounding box in which a circle with the specified radius centered from LatLng covers the area associated with the job location. For example, currently, \"Mountain View, CA, USA\" has a radius of 6.17 miles.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"LocationFilter": { +"description": "Input only. Geographic region of the search.", +"id": "LocationFilter", +"properties": { +"address": { +"description": "Optional. The address name, such as \"Mountain View\" or \"Bay Area\".", +"type": "string" +}, +"distanceInMiles": { +"description": "Optional. The distance_in_miles is applied when the location being searched for is identified as a city or smaller. When the location being searched for is a state or larger, this field is ignored.", +"format": "double", +"type": "number" +}, +"latLng": { +"$ref": "LatLng", +"description": "Optional. The latitude and longitude of the geographic center from which to search. This field's ignored if `address` is provided." +}, +"regionCode": { +"description": "Optional. CLDR region code of the country/region. This field may be used in two ways: 1) If telecommute preference is not set, this field is used address ambiguity of the user-input address. For example, \"Liverpool\" may refer to \"Liverpool, NY, US\" or \"Liverpool, UK\". This region code biases the address resolution toward a specific country or territory. If this field is not set, address resolution is biased toward the United States by default. 2) If telecommute preference is set to TELECOMMUTE_ALLOWED, the telecommute location filter will be limited to the region specified in this field. If this field is not set, the telecommute job locations will not be limited. See https://unicode-org.github.io/cldr-staging/charts/latest/supplemental/territory_information.html for details. Example: \"CH\" for Switzerland.", +"type": "string" +}, +"telecommutePreference": { +"description": "Optional. Allows the client to return jobs without a set location, specifically, telecommuting jobs (telecommuting is considered by the service as a special location). Job.posting_region indicates if a job permits telecommuting. If this field is set to TelecommutePreference.TELECOMMUTE_ALLOWED, telecommuting jobs are searched, and address and lat_lng are ignored. If not set or set to TelecommutePreference.TELECOMMUTE_EXCLUDED, the telecommute status of the jobs is ignored. Jobs that have PostingRegion.TELECOMMUTE and have additional Job.addresses may still be matched based on other location filters using address or latlng. This filter can be used by itself to search exclusively for telecommuting jobs, or it can be combined with another location filter to search for a combination of job locations, such as \"Mountain View\" or \"telecommuting\" jobs. However, when used in combination with other location filters, telecommuting jobs can be treated as less relevant than other jobs in the search response.", +"enum": [ +"TELECOMMUTE_PREFERENCE_UNSPECIFIED", +"TELECOMMUTE_EXCLUDED", +"TELECOMMUTE_ALLOWED", +"TELECOMMUTE_JOBS_EXCLUDED" +], +"enumDeprecated": [ +false, +true, +false, +false +], +"enumDescriptions": [ +"Default value if the telecommute preference is not specified.", +"Deprecated: Ignore telecommute status of jobs. Use TELECOMMUTE_JOBS_EXCLUDED if want to exclude telecommute jobs.", +"Allow telecommute jobs.", +"Exclude telecommute jobs." +], +"type": "string" +} +}, +"type": "object" +}, +"MatchingJob": { +"description": "Output only. Job entry with metadata inside SearchJobsResponse.", +"id": "MatchingJob", +"properties": { +"commuteInfo": { +"$ref": "CommuteInfo", +"description": "Commute information which is generated based on specified CommuteFilter." +}, +"job": { +"$ref": "Job", +"description": "Job resource that matches the specified SearchJobsRequest." +}, +"jobSummary": { +"description": "A summary of the job with core information that's displayed on the search results listing page.", +"type": "string" +}, +"jobTitleSnippet": { +"description": "Contains snippets of text from the Job.job_title field most closely matching a search query's keywords, if available. The matching query keywords are enclosed in HTML bold tags.", +"type": "string" +}, +"searchTextSnippet": { +"description": "Contains snippets of text from the Job.description and similar fields that most closely match a search query's keywords, if available. All HTML tags in the original fields are stripped when returned in this field, and matching query keywords are enclosed in HTML bold tags.", +"type": "string" +} +}, +"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" +}, +"NumericBucketingOption": { +"description": "Input only. Use this field to specify bucketing option for the histogram search response.", +"id": "NumericBucketingOption", +"properties": { +"bucketBounds": { +"description": "Required. Two adjacent values form a histogram bucket. Values should be in ascending order. For example, if [5, 10, 15] are provided, four buckets are created: (-inf, 5), 5, 10), [10, 15), [15, inf). At most 20 [buckets_bound is supported.", +"items": { +"format": "double", +"type": "number" +}, +"type": "array" +}, +"requiresMinMax": { +"description": "Optional. If set to true, the histogram result includes minimum/maximum value of the numeric field.", +"type": "boolean" +} +}, +"type": "object" +}, +"NumericBucketingResult": { +"description": "Output only. Custom numeric bucketing result.", +"id": "NumericBucketingResult", +"properties": { +"counts": { +"description": "Count within each bucket. Its size is the length of NumericBucketingOption.bucket_bounds plus 1.", +"items": { +"$ref": "BucketizedCount" +}, +"type": "array" +}, +"maxValue": { +"description": "Stores the maximum value of the numeric field. Is populated only if [NumericBucketingOption.requires_min_max] is set to true.", +"format": "double", +"type": "number" +}, +"minValue": { +"description": "Stores the minimum value of the numeric field. Will be populated only if [NumericBucketingOption.requires_min_max] is set to true.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"PostalAddress": { +"description": "Represents a postal address. For example for postal delivery or payments addresses. Given a postal address, a postal service can deliver items to a premise, P.O. Box or similar. It is not intended to model geographical locations (roads, towns, mountains). In typical usage an address would be created by user input or from importing existing data, depending on the type of process. Advice on address input / editing: - Use an internationalization-ready address widget such as https://github.com/google/libaddressinput) - Users should not be presented with UI elements for input or editing of fields outside countries where that field is used. For more guidance on how to use this schema, see: https://support.google.com/business/answer/6397478", +"id": "PostalAddress", +"properties": { +"addressLines": { +"description": "Unstructured address lines describing the lower levels of an address. Because values in address_lines do not have type information and may sometimes contain multiple values in a single field (For example \"Austin, TX\"), it is important that the line order is clear. The order of address lines should be \"envelope order\" for the country/region of the address. In places where this can vary (For example Japan), address_language is used to make it explicit (For example \"ja\" for large-to-small ordering and \"ja-Latn\" or \"en\" for small-to-large). This way, the most specific line of an address can be selected based on the language. The minimum permitted structural representation of an address consists of a region_code with all remaining information placed in the address_lines. It would be possible to format such an address very approximately without geocoding, but no semantic reasoning could be made about any of the address components until it was at least partially resolved. Creating an address only containing a region_code and address_lines, and then geocoding is the recommended way to handle completely unstructured addresses (as opposed to guessing which parts of the address should be localities or administrative areas).", +"items": { +"type": "string" +}, +"type": "array" +}, +"administrativeArea": { +"description": "Optional. Highest administrative subdivision which is used for postal addresses of a country or region. For example, this can be a state, a province, an oblast, or a prefecture. Specifically, for Spain this is the province and not the autonomous community (For example \"Barcelona\" and not \"Catalonia\"). Many countries don't use an administrative area in postal addresses. For example in Switzerland this should be left unpopulated.", +"type": "string" +}, +"languageCode": { +"description": "Optional. BCP-47 language code of the contents of this address (if known). This is often the UI language of the input form or is expected to match one of the languages used in the address' country/region, or their transliterated equivalents. This can affect formatting in certain countries, but is not critical to the correctness of the data and will never affect any validation or other non-formatting related operations. If this value is not known, it should be omitted (rather than specifying a possibly incorrect default). Examples: \"zh-Hant\", \"ja\", \"ja-Latn\", \"en\".", +"type": "string" +}, +"locality": { +"description": "Optional. Generally refers to the city/town portion of the address. Examples: US city, IT comune, UK post town. In regions of the world where localities are not well defined or do not fit into this structure well, leave locality empty and use address_lines.", +"type": "string" +}, +"organization": { +"description": "Optional. The name of the organization at the address.", +"type": "string" +}, +"postalCode": { +"description": "Optional. Postal code of the address. Not all countries use or require postal codes to be present, but where they are used, they may trigger additional validation with other parts of the address (For example state/zip validation in the U.S.A.).", +"type": "string" +}, +"recipients": { +"description": "Optional. The recipient at the address. This field may, under certain circumstances, contain multiline information. For example, it might contain \"care of\" information.", +"items": { +"type": "string" +}, +"type": "array" +}, +"regionCode": { +"description": "Required. CLDR region code of the country/region of the address. This is never inferred and it is up to the user to ensure the value is correct. See https://cldr.unicode.org/ and https://www.unicode.org/cldr/charts/30/supplemental/territory_information.html for details. Example: \"CH\" for Switzerland.", +"type": "string" +}, +"revision": { +"description": "The schema revision of the `PostalAddress`. This must be set to 0, which is the latest revision. All new revisions **must** be backward compatible with old revisions.", +"format": "int32", +"type": "integer" +}, +"sortingCode": { +"description": "Optional. Additional, country-specific, sorting code. This is not used in most regions. Where it is used, the value is either a string like \"CEDEX\", optionally followed by a number (For example \"CEDEX 7\"), or just a number alone, representing the \"sector code\" (Jamaica), \"delivery area indicator\" (Malawi) or \"post office indicator\" (For example C\u00f4te d'Ivoire).", +"type": "string" +}, +"sublocality": { +"description": "Optional. Sublocality of the address. For example, this can be neighborhoods, boroughs, districts.", +"type": "string" +} +}, +"type": "object" +}, +"ProcessingOptions": { +"description": "Input only. Options for job processing.", +"id": "ProcessingOptions", +"properties": { +"disableStreetAddressResolution": { +"description": "Optional. If set to `true`, the service does not attempt to resolve a more precise address for the job.", +"type": "boolean" +}, +"htmlSanitization": { +"description": "Optional. Option for job HTML content sanitization. Applied fields are: * description * applicationInfo.instruction * incentives * qualifications * responsibilities HTML tags in these fields may be stripped if sanitiazation is not disabled. Defaults to HtmlSanitization.SIMPLE_FORMATTING_ONLY.", +"enum": [ +"HTML_SANITIZATION_UNSPECIFIED", +"HTML_SANITIZATION_DISABLED", +"SIMPLE_FORMATTING_ONLY" +], +"enumDescriptions": [ +"Default value.", +"Disables sanitization on HTML input.", +"Sanitizes HTML input, only accepts bold, italic, ordered list, and unordered list markup tags." +], +"type": "string" +} +}, +"type": "object" +}, +"RequestMetadata": { +"description": "Input only. Meta information related to the job searcher or entity conducting the job search. This information is used to improve the performance of the service.", +"id": "RequestMetadata", +"properties": { +"deviceInfo": { +"$ref": "DeviceInfo", +"description": "Optional. The type of device used by the job seeker at the time of the call to the service." +}, +"domain": { +"description": "Required. The client-defined scope or source of the service call, which typically is the domain on which the service has been implemented and is currently being run. For example, if the service is being run by client *Foo, Inc.*, on job board www.foo.com and career site www.bar.com, then this field is set to \"foo.com\" for use on the job board, and \"bar.com\" for use on the career site. If this field isn't available for some reason, send \"UNKNOWN\". Any improvements to the model for a particular tenant site rely on this field being set correctly to a domain. The maximum number of allowed characters is 255.", +"type": "string" +}, +"sessionId": { +"description": "Required. A unique session identification string. A session is defined as the duration of an end user's interaction with the service over a certain period. Obfuscate this field for privacy concerns before providing it to the service. If this field is not available for some reason, send \"UNKNOWN\". Note that any improvements to the model for a particular tenant site, rely on this field being set correctly to some unique session_id. The maximum number of allowed characters is 255.", +"type": "string" +}, +"userId": { +"description": "Required. A unique user identification string, as determined by the client. To have the strongest positive impact on search quality make sure the client-level is unique. Obfuscate this field for privacy concerns before providing it to the service. If this field is not available for some reason, send \"UNKNOWN\". Note that any improvements to the model for a particular tenant site, rely on this field being set correctly to a unique user_id. The maximum number of allowed characters is 255.", +"type": "string" +} +}, +"type": "object" +}, +"ResponseMetadata": { +"description": "Output only. Additional information returned to client, such as debugging information.", +"id": "ResponseMetadata", +"properties": { +"requestId": { +"description": "A unique id associated with this call. This id is logged for tracking purposes.", +"type": "string" +} +}, +"type": "object" +}, +"SearchJobsRequest": { +"description": "Input only. The Request body of the `SearchJobs` call.", +"id": "SearchJobsRequest", +"properties": { +"disableKeywordMatch": { +"description": "Optional. Controls whether to disable exact keyword match on Job.job_title, Job.description, Job.company_display_name, Job.locations, Job.qualifications. When disable keyword match is turned off, a keyword match returns jobs that do not match given category filters when there are matching keywords. For example, the query \"program manager,\" a result is returned even if the job posting has the title \"software developer,\" which does not fall into \"program manager\" ontology, but does have \"program manager\" appearing in its description. For queries like \"cloud\" that does not contain title or location specific ontology, jobs with \"cloud\" keyword matches are returned regardless of this flag's value. Please use Company.keyword_searchable_custom_fields or Company.keyword_searchable_custom_attributes if company specific globally matched custom field/attribute string values is needed. Enabling keyword match improves recall of subsequent search requests. Defaults to false.", +"type": "boolean" +}, +"diversificationLevel": { +"description": "Optional. Controls whether highly similar jobs are returned next to each other in the search results. Jobs are identified as highly similar based on their titles, job categories, and locations. Highly similar results are clustered so that only one representative job of the cluster is displayed to the job seeker higher up in the results, with the other jobs being displayed lower down in the results. Defaults to DiversificationLevel.SIMPLE if no value is specified.", +"enum": [ +"DIVERSIFICATION_LEVEL_UNSPECIFIED", +"DISABLED", +"SIMPLE" +], +"enumDescriptions": [ +"The diversification level isn't specified. By default, jobs with this enum are ordered according to SIMPLE diversifying behavior.", +"Disables diversification. Jobs that would normally be pushed to the last page would not have their positions altered. This may result in highly similar jobs appearing in sequence in the search results.", +"Default diversifying behavior. The result list is ordered so that highly similar results are pushed to the end of the last page of search results." +], +"type": "string" +}, +"enableBroadening": { +"description": "Optional. Controls whether to broaden the search when it produces sparse results. Broadened queries append results to the end of the matching results list. Defaults to false.", +"type": "boolean" +}, +"histogramFacets": { +"$ref": "HistogramFacets", +"description": "Optional. Histogram requests for jobs matching JobQuery." +}, +"jobQuery": { +"$ref": "JobQuery", +"description": "Optional. Query used to search against jobs, such as keyword, location filters, etc." +}, +"jobView": { +"description": "Optional. The desired job attributes returned for jobs in the search response. Defaults to JobView.SMALL if no value is specified.", +"enum": [ +"JOB_VIEW_UNSPECIFIED", +"JOB_VIEW_ID_ONLY", +"JOB_VIEW_MINIMAL", +"JOB_VIEW_SMALL", +"JOB_VIEW_FULL" +], +"enumDescriptions": [ +"Default value.", +"A ID only view of job, with following attributes: Job.name, Job.requisition_id, Job.language_code.", +"A minimal view of the job, with the following attributes: Job.name, Job.requisition_id, Job.title, Job.company_name, Job.DerivedInfo.locations, Job.language_code.", +"A small view of the job, with the following attributes in the search results: Job.name, Job.requisition_id, Job.title, Job.company_name, Job.DerivedInfo.locations, Job.visibility, Job.language_code, Job.description.", +"All available attributes are included in the search results." +], +"type": "string" +}, +"offset": { +"description": "Optional. An integer that specifies the current offset (that is, starting result location, amongst the jobs deemed by the API as relevant) in search results. This field is only considered if page_token is unset. The maximum allowed value is 5000. Otherwise an error is thrown. For example, 0 means to return results starting from the first matching job, and 10 means to return from the 11th job. This can be used for pagination, (for example, pageSize = 10 and offset = 10 means to return from the second page).", +"format": "int32", +"type": "integer" +}, +"orderBy": { +"description": "Optional. The criteria determining how search results are sorted. Default is \"relevance desc\". Supported options are: * `\"relevance desc\"`: By relevance descending, as determined by the API algorithms. Relevance thresholding of query results is only available with this ordering. * `\"posting_publish_time desc\"`: By Job.posting_publish_time descending. * `\"posting_update_time desc\"`: By Job.posting_update_time descending. * `\"title\"`: By Job.title ascending. * `\"title desc\"`: By Job.title descending. * `\"annualized_base_compensation\"`: By job's CompensationInfo.annualized_base_compensation_range ascending. Jobs whose annualized base compensation is unspecified are put at the end of search results. * `\"annualized_base_compensation desc\"`: By job's CompensationInfo.annualized_base_compensation_range descending. Jobs whose annualized base compensation is unspecified are put at the end of search results. * `\"annualized_total_compensation\"`: By job's CompensationInfo.annualized_total_compensation_range ascending. Jobs whose annualized base compensation is unspecified are put at the end of search results. * `\"annualized_total_compensation desc\"`: By job's CompensationInfo.annualized_total_compensation_range descending. Jobs whose annualized base compensation is unspecified are put at the end of search results.", +"type": "string" +}, +"pageSize": { +"description": "Optional. A limit on the number of jobs returned in the search results. Increasing this value above the default value of 10 can increase search response time. The value can be between 1 and 100.", +"format": "int32", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The token specifying the current offset within search results. See SearchJobsResponse.next_page_token for an explanation of how to obtain the next set of query results.", +"type": "string" +}, +"requestMetadata": { +"$ref": "RequestMetadata", +"description": "Required. The meta information collected about the job searcher, used to improve the search quality of the service. The identifiers (such as `user_id`) are provided by users, and must be unique and consistent." +}, +"requirePreciseResultSize": { +"deprecated": true, +"description": "This field is deprecated.", +"type": "boolean" +}, +"searchMode": { +"description": "Optional. Mode of a search. Defaults to SearchMode.JOB_SEARCH.", +"enum": [ +"SEARCH_MODE_UNSPECIFIED", +"JOB_SEARCH", +"FEATURED_JOB_SEARCH" +], +"enumDescriptions": [ +"The mode of the search method isn't specified. The default search behavior is identical to JOB_SEARCH search behavior.", +"The job search matches against all jobs, and featured jobs (jobs with promotionValue > 0) are not specially handled.", +"The job search matches only against featured jobs (jobs with a promotionValue > 0). This method doesn't return any jobs having a promotionValue <= 0. The search results order is determined by the promotionValue (jobs with a higher promotionValue are returned higher up in the search results), with relevance being used as a tiebreaker." +], +"type": "string" +} +}, +"type": "object" +}, +"SearchJobsResponse": { +"description": "Output only. Response for SearchJob method.", +"id": "SearchJobsResponse", +"properties": { +"broadenedQueryJobsCount": { +"description": "If query broadening is enabled, we may append additional results from the broadened query. This number indicates how many of the jobs returned in the jobs field are from the broadened query. These results are always at the end of the jobs list. In particular, a value of 0, or if the field isn't set, all the jobs in the jobs list are from the original (without broadening) query. If this field is non-zero, subsequent requests with offset after this result set should contain all broadened results.", +"format": "int32", +"type": "integer" +}, +"estimatedTotalSize": { +"description": "An estimation of the number of jobs that match the specified query. This number is not guaranteed to be accurate. For accurate results, see SearchJobsResponse.total_size.", +"format": "int32", +"type": "integer" +}, +"histogramResults": { +"$ref": "HistogramResults", +"description": "The histogram results that match specified SearchJobsRequest.histogram_facets." +}, +"locationFilters": { +"description": "The location filters that the service applied to the specified query. If any filters are lat-lng based, the JobLocation.location_type is JobLocation.LocationType#LOCATION_TYPE_UNSPECIFIED.", +"items": { +"$ref": "Location" +}, +"type": "array" +}, +"matchingJobs": { +"description": "The Job entities that match the specified SearchJobsRequest.", +"items": { +"$ref": "MatchingJob" +}, +"type": "array" +}, +"metadata": { +"$ref": "ResponseMetadata", +"description": "Additional information for the API invocation, such as the request tracking id." +}, +"nextPageToken": { +"description": "The token that specifies the starting position of the next page of results. This field is empty if there are no more results.", +"type": "string" +}, +"spellCorrection": { +"$ref": "SpellingCorrection", +"description": "The spell checking result, and correction." +}, +"totalSize": { +"description": "The precise result count with limit 100,000.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"SpellingCorrection": { +"description": "Output only. Spell check result.", +"id": "SpellingCorrection", +"properties": { +"corrected": { +"description": "Indicates if the query was corrected by the spell checker.", +"type": "boolean" +}, +"correctedText": { +"description": "Correction output consisting of the corrected keyword string.", +"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" +}, +"TimestampRange": { +"description": "Message representing a period of time between two timestamps.", +"id": "TimestampRange", +"properties": { +"endTime": { +"description": "End of the period.", +"format": "google-datetime", +"type": "string" +}, +"startTime": { +"description": "Begin of the period.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"UpdateCompanyRequest": { +"description": "Input only. Request for updating a specified company.", +"id": "UpdateCompanyRequest", +"properties": { +"company": { +"$ref": "Company", +"description": "Required. The company resource to replace the current resource in the system." +}, +"updateMask": { +"description": "Optional but strongly recommended for the best service experience. If update_mask is provided, only the specified fields in company are updated. Otherwise all the fields are updated. A field mask to specify the company fields to be updated. Only top level fields of Company are supported.", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"UpdateJobRequest": { +"description": "Input only. Update job request.", +"id": "UpdateJobRequest", +"properties": { +"job": { +"$ref": "Job", +"description": "Required. The Job to be updated." +}, +"updateMask": { +"description": "Optional but strongly recommended to be provided for the best service experience. If update_mask is provided, only the specified fields in job are updated. Otherwise all the fields are updated. A field mask to restrict the fields that are updated. Only top level fields of Job are supported.", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Cloud Talent Solution 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/localservices.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/localservices.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..8ece640c72e61c2ed40df7958e781132abae42af --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/localservices.v1.json @@ -0,0 +1,586 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/adwords": { +"description": "See, edit, create, and delete your Google Ads accounts and data." +} +} +} +}, +"basePath": "", +"baseUrl": "https://localservices.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Localservices", +"description": "", +"discoveryVersion": "v1", +"documentationLink": "https://ads.google.com/local-services-ads/", +"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": "localservices:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://localservices.mtls.googleapis.com/", +"name": "localservices", +"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": { +"accountReports": { +"methods": { +"search": { +"description": "Get account reports containing aggregate account data of all linked GLS accounts. Caller needs to provide their manager customer id and the associated auth credential that allows them read permissions on their linked accounts.", +"flatPath": "v1/accountReports:search", +"httpMethod": "GET", +"id": "localservices.accountReports.search", +"parameterOrder": [], +"parameters": { +"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" +}, +"pageSize": { +"description": "The maximum number of accounts to return. If the page size is unset, page size will default to 1000. Maximum page_size is 10000. Optional.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The `next_page_token` value returned from a previous request to SearchAccountReports that indicates where listing should continue. Optional.", +"location": "query", +"type": "string" +}, +"query": { +"description": "A query string for searching for account reports. Caller must provide a customer id of their MCC account with an associated Gaia Mint that allows read permission on their linked accounts. Search expressions are case insensitive. Example query: | Query | Description | |-------------------------|-----------------------------------------------| | manager_customer_id:123 | Get Account Report for Manager with id 123. | Required.", +"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": "v1/accountReports:search", +"response": { +"$ref": "GoogleAdsHomeservicesLocalservicesV1SearchAccountReportsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/adwords" +] +} +} +}, +"detailedLeadReports": { +"methods": { +"search": { +"description": "Get detailed lead reports containing leads that have been received by all linked GLS accounts. Caller needs to provide their manager customer id and the associated auth credential that allows them read permissions on their linked accounts.", +"flatPath": "v1/detailedLeadReports:search", +"httpMethod": "GET", +"id": "localservices.detailedLeadReports.search", +"parameterOrder": [], +"parameters": { +"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" +}, +"pageSize": { +"description": "The maximum number of accounts to return. If the page size is unset, page size will default to 1000. Maximum page_size is 10000. Optional.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The `next_page_token` value returned from a previous request to SearchDetailedLeadReports that indicates where listing should continue. Optional.", +"location": "query", +"type": "string" +}, +"query": { +"description": "A query string for searching for account reports. Caller must provide a customer id of their MCC account with an associated Gaia Mint that allows read permission on their linked accounts. Search expressions are case insensitive. Example query: | Query | Description | |-------------------------|-----------------------------------------------| | manager_customer_id:123 | Get Detailed Lead Report for Manager with id | | | 123. | Required.", +"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": "v1/detailedLeadReports:search", +"response": { +"$ref": "GoogleAdsHomeservicesLocalservicesV1SearchDetailedLeadReportsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/adwords" +] +} +} +} +}, +"revision": "20241202", +"rootUrl": "https://localservices.googleapis.com/", +"schemas": { +"GoogleAdsHomeservicesLocalservicesV1AccountReport": { +"description": "An Account Report of a GLS account identified by their account id containing aggregate data gathered from a particular date range. Next ID: 18", +"id": "GoogleAdsHomeservicesLocalservicesV1AccountReport", +"properties": { +"accountId": { +"description": "Unique identifier of the GLS account.", +"format": "int64", +"type": "string" +}, +"aggregatorInfo": { +"$ref": "GoogleAdsHomeservicesLocalservicesV1AggregatorInfo", +"description": "Aggregator specific information related to the account." +}, +"averageFiveStarRating": { +"description": "Average review rating score from 1-5 stars.", +"format": "double", +"type": "number" +}, +"averageWeeklyBudget": { +"description": "Average weekly budget in the currency code of the account.", +"format": "double", +"type": "number" +}, +"businessName": { +"description": "Business name of the account.", +"type": "string" +}, +"currencyCode": { +"description": "Currency code of the account.", +"type": "string" +}, +"currentPeriodChargedLeads": { +"description": "Number of charged leads the account received in current specified period.", +"format": "int64", +"type": "string" +}, +"currentPeriodConnectedPhoneCalls": { +"description": "Number of connected phone calls (duration over 30s) in current specified period.", +"format": "int64", +"type": "string" +}, +"currentPeriodPhoneCalls": { +"description": "Number of phone calls in current specified period, including both connected and unconnected calls.", +"format": "int64", +"type": "string" +}, +"currentPeriodTotalCost": { +"description": "Total cost of the account in current specified period in the account's specified currency.", +"format": "double", +"type": "number" +}, +"impressionsLastTwoDays": { +"description": "Number of impressions that customers have had in the past 2 days.", +"format": "int64", +"type": "string" +}, +"phoneLeadResponsiveness": { +"description": "Phone lead responsiveness of the account for the past 90 days from current date. This is computed by taking the total number of connected calls from charged phone leads and dividing by the total number of calls received.", +"format": "double", +"type": "number" +}, +"previousPeriodChargedLeads": { +"description": "Number of charged leads the account received in previous specified period.", +"format": "int64", +"type": "string" +}, +"previousPeriodConnectedPhoneCalls": { +"description": "Number of connected phone calls (duration over 30s) in previous specified period.", +"format": "int64", +"type": "string" +}, +"previousPeriodPhoneCalls": { +"description": "Number of phone calls in previous specified period, including both connected and unconnected calls.", +"format": "int64", +"type": "string" +}, +"previousPeriodTotalCost": { +"description": "Total cost of the account in previous specified period in the account's specified currency.", +"format": "double", +"type": "number" +}, +"totalReview": { +"description": "Total number of reviews the account has up to current date.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleAdsHomeservicesLocalservicesV1AggregatorInfo": { +"description": "Conatiner for aggregator specific information if lead is for an aggregator GLS account.", +"id": "GoogleAdsHomeservicesLocalservicesV1AggregatorInfo", +"properties": { +"aggregatorProviderId": { +"description": "Provider id (listed in aggregator system) which maps to a account id in GLS system.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsHomeservicesLocalservicesV1BookingLead": { +"description": "Container for booking lead specific information.", +"id": "GoogleAdsHomeservicesLocalservicesV1BookingLead", +"properties": { +"bookingAppointmentTimestamp": { +"description": "Timestamp of when service is provided by advertiser.", +"format": "google-datetime", +"type": "string" +}, +"consumerEmail": { +"description": "Consumer email associated with the booking lead.", +"type": "string" +}, +"consumerPhoneNumber": { +"description": "Consumer phone number associated with the booking lead.", +"type": "string" +}, +"customerName": { +"description": "Name of the customer who created the lead.", +"type": "string" +}, +"jobType": { +"description": "The job type of the specified lead.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsHomeservicesLocalservicesV1DetailedLeadReport": { +"description": "A Detailed Lead Report of a lead identified by their lead id and contains consumer, account, monetization, and lead data.", +"id": "GoogleAdsHomeservicesLocalservicesV1DetailedLeadReport", +"properties": { +"accountId": { +"description": "Identifies account that received the lead.", +"format": "int64", +"type": "string" +}, +"aggregatorInfo": { +"$ref": "GoogleAdsHomeservicesLocalservicesV1AggregatorInfo", +"description": "Aggregator specific information related to the lead." +}, +"bookingLead": { +"$ref": "GoogleAdsHomeservicesLocalservicesV1BookingLead", +"description": "More information associated to only booking leads." +}, +"businessName": { +"description": "Business name associated to the account.", +"type": "string" +}, +"chargeStatus": { +"description": "Whether the lead has been charged.", +"enum": [ +"CHARGE_STATUS_UNSPECIFIED", +"CHARGED", +"NOT_CHARGED" +], +"enumDescriptions": [ +"Not specified.", +"Charged.", +"Not charged." +], +"type": "string" +}, +"currencyCode": { +"description": "Currency code.", +"type": "string" +}, +"disputeStatus": { +"description": "Dispute status related to the lead.", +"type": "string" +}, +"geo": { +"description": "Location of the associated account's home city.", +"type": "string" +}, +"googleAdsLeadId": { +"description": "Unique identifier of a Detailed Lead Report.", +"format": "int64", +"type": "string" +}, +"leadCategory": { +"description": "Lead category (e.g. hvac, plumber)", +"type": "string" +}, +"leadCreationTimestamp": { +"description": "Timestamp of when the lead was created.", +"format": "google-datetime", +"type": "string" +}, +"leadId": { +"description": "Deprecated in favor of google_ads_lead_id. Unique identifier of a Detailed Lead Report.", +"format": "int64", +"type": "string" +}, +"leadPrice": { +"description": "Price of the lead (available only after it has been charged).", +"format": "double", +"type": "number" +}, +"leadType": { +"description": "Lead type.", +"enum": [ +"LEAD_TYPE_UNSPECIFIED", +"MESSAGE", +"PHONE_CALL", +"BOOKING" +], +"enumDescriptions": [ +"Not specified.", +"Message lead.", +"Phone call lead.", +"Booking lead." +], +"type": "string" +}, +"messageLead": { +"$ref": "GoogleAdsHomeservicesLocalservicesV1MessageLead", +"description": "More information associated to only message leads." +}, +"phoneLead": { +"$ref": "GoogleAdsHomeservicesLocalservicesV1PhoneLead", +"description": "More information associated to only phone leads." +}, +"timezone": { +"$ref": "GoogleTypeTimeZone", +"description": "Timezone of the particular provider associated to a lead." +} +}, +"type": "object" +}, +"GoogleAdsHomeservicesLocalservicesV1MessageLead": { +"description": "Container for message lead specific information.", +"id": "GoogleAdsHomeservicesLocalservicesV1MessageLead", +"properties": { +"consumerPhoneNumber": { +"description": "Consumer phone number associated with the message lead.", +"type": "string" +}, +"customerName": { +"description": "Name of the customer who created the lead.", +"type": "string" +}, +"jobType": { +"description": "The job type of the specified lead.", +"type": "string" +}, +"postalCode": { +"description": "The postal code of the customer who created the lead.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsHomeservicesLocalservicesV1PhoneLead": { +"description": "Container for phone lead specific information.", +"id": "GoogleAdsHomeservicesLocalservicesV1PhoneLead", +"properties": { +"chargedCallTimestamp": { +"description": "Timestamp of the phone call which resulted in a charged phone lead.", +"format": "google-datetime", +"type": "string" +}, +"chargedConnectedCallDurationSeconds": { +"description": "Duration of the charged phone call in seconds.", +"format": "google-duration", +"type": "string" +}, +"consumerPhoneNumber": { +"description": "Consumer phone number associated with the phone lead.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsHomeservicesLocalservicesV1SearchAccountReportsResponse": { +"description": "A page of the response received from the SearchAccountReports method. A paginated response where more pages are available has `next_page_token` set. This token can be used in a subsequent request to retrieve the next request page.", +"id": "GoogleAdsHomeservicesLocalservicesV1SearchAccountReportsResponse", +"properties": { +"accountReports": { +"description": "List of account reports which maps 1:1 to a particular linked GLS account.", +"items": { +"$ref": "GoogleAdsHomeservicesLocalservicesV1AccountReport" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Pagination token to retrieve the next page of results. When `next_page_token` is not filled in, there is no next page and the list returned is the last page in the result set.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsHomeservicesLocalservicesV1SearchDetailedLeadReportsResponse": { +"description": "A page of the response received from the SearchDetailedLeadReports method. A paginated response where more pages are available has `next_page_token` set. This token can be used in a subsequent request to retrieve the next request page.", +"id": "GoogleAdsHomeservicesLocalservicesV1SearchDetailedLeadReportsResponse", +"properties": { +"detailedLeadReports": { +"description": "List of detailed lead reports uniquely identified by external lead id.", +"items": { +"$ref": "GoogleAdsHomeservicesLocalservicesV1DetailedLeadReport" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Pagination token to retrieve the next page of results. When `next_page_token` is not filled in, there is no next page and the list returned is the last page in the result set.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleTypeTimeZone": { +"description": "Represents a time zone from the [IANA Time Zone Database](https://www.iana.org/time-zones).", +"id": "GoogleTypeTimeZone", +"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" +} +}, +"servicePath": "", +"title": "Local Services 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/managedidentities.v1alpha1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/managedidentities.v1alpha1.json new file mode 100644 index 0000000000000000000000000000000000000000..ee1f7f93558e84965eb089edff6bb5baa85fa4a7 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/managedidentities.v1alpha1.json @@ -0,0 +1,3221 @@ +{ +"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://managedidentities.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Managed Service for Microsoft Active Directory Consumer API", +"description": "The Managed Service for Microsoft Active Directory API is used for managing a highly available, hardened service running Microsoft Active Directory (AD).", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/managed-microsoft-ad/", +"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": "managedidentities:v1alpha1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://managedidentities.mtls.googleapis.com/", +"name": "managedidentities", +"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": "v1alpha1/projects/{projectsId}/locations/{locationsId}", +"httpMethod": "GET", +"id": "managedidentities.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": "managedidentities.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": { +"global": { +"resources": { +"domains": { +"methods": { +"attachTrust": { +"description": "Adds AD trust in a given domain. Operation", +"flatPath": "v1alpha1/projects/{projectsId}/locations/global/domains/{domainsId}:attachTrust", +"httpMethod": "POST", +"id": "managedidentities.projects.locations.global.domains.attachTrust", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The resource domain name, project name and location using the form: `projects/{project_id}/locations/global/domains/{domain_name}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/global/domains/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}:attachTrust", +"request": { +"$ref": "AttachTrustRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"checkMigrationPermission": { +"description": "AuditMigration API gets the current state of DomainMigration", +"flatPath": "v1alpha1/projects/{projectsId}/locations/global/domains/{domainsId}:checkMigrationPermission", +"httpMethod": "POST", +"id": "managedidentities.projects.locations.global.domains.checkMigrationPermission", +"parameterOrder": [ +"domain" +], +"parameters": { +"domain": { +"description": "Required. The domain resource name using the form: `projects/{project_id}/locations/global/domains/{domain_name}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/global/domains/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+domain}:checkMigrationPermission", +"request": { +"$ref": "CheckMigrationPermissionRequest" +}, +"response": { +"$ref": "CheckMigrationPermissionResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"create": { +"description": "Creates a Microsoft AD Domain in a given project. Operation", +"flatPath": "v1alpha1/projects/{projectsId}/locations/global/domains", +"httpMethod": "POST", +"id": "managedidentities.projects.locations.global.domains.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"domainName": { +"description": "The fully qualified domain name. e.g. mydomain.myorganization.com, with the following restrictions: * Must contain only lowercase letters, numbers, periods and hyphens. * Must start with a letter. * Must contain between 2-64 characters. * Must end with a number or a letter. * Must not start with period. * Must be unique within the project. * First segment length (mydomain form example above) shouldn't exceed 15 chars. * The last segment cannot be fully numeric.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Resource project name and location using the form: `projects/{project_id}/locations/global`", +"location": "path", +"pattern": "^projects/[^/]+/locations/global$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+parent}/domains", +"request": { +"$ref": "Domain" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes identified domain. Operation", +"flatPath": "v1alpha1/projects/{projectsId}/locations/global/domains/{domainsId}", +"httpMethod": "DELETE", +"id": "managedidentities.projects.locations.global.domains.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Domain resource name using the form: `projects/{project_id}/locations/global/domains/{domain_name}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/global/domains/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"detachTrust": { +"description": "Removes identified trust. Operation", +"flatPath": "v1alpha1/projects/{projectsId}/locations/global/domains/{domainsId}:detachTrust", +"httpMethod": "POST", +"id": "managedidentities.projects.locations.global.domains.detachTrust", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The resource domain name, project name, and location using the form: `projects/{project_id}/locations/global/domains/{domain_name}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/global/domains/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}:detachTrust", +"request": { +"$ref": "DetachTrustRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"disableMigration": { +"description": "Disable Domain Migration", +"flatPath": "v1alpha1/projects/{projectsId}/locations/global/domains/{domainsId}:disableMigration", +"httpMethod": "POST", +"id": "managedidentities.projects.locations.global.domains.disableMigration", +"parameterOrder": [ +"domain" +], +"parameters": { +"domain": { +"description": "Required. The domain resource name using the form: `projects/{project_id}/locations/global/domains/{domain_name}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/global/domains/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+domain}:disableMigration", +"request": { +"$ref": "DisableMigrationRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"domainJoinMachine": { +"description": "DomainJoinMachine API joins a Compute Engine VM to the domain", +"flatPath": "v1alpha1/projects/{projectsId}/locations/global/domains/{domainsId}:domainJoinMachine", +"httpMethod": "POST", +"id": "managedidentities.projects.locations.global.domains.domainJoinMachine", +"parameterOrder": [ +"domain" +], +"parameters": { +"domain": { +"description": "Required. The domain resource name using the form: projects/{project_id}/locations/global/domains/{domain_name}", +"location": "path", +"pattern": "^projects/[^/]+/locations/global/domains/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+domain}:domainJoinMachine", +"request": { +"$ref": "DomainJoinMachineRequest" +}, +"response": { +"$ref": "DomainJoinMachineResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"enableMigration": { +"description": "Enable Domain Migration", +"flatPath": "v1alpha1/projects/{projectsId}/locations/global/domains/{domainsId}:enableMigration", +"httpMethod": "POST", +"id": "managedidentities.projects.locations.global.domains.enableMigration", +"parameterOrder": [ +"domain" +], +"parameters": { +"domain": { +"description": "Required. The domain resource name using the form: `projects/{project_id}/locations/global/domains/{domain_name}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/global/domains/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+domain}:enableMigration", +"request": { +"$ref": "EnableMigrationRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"extendSchema": { +"description": "Extend Schema for Domain", +"flatPath": "v1alpha1/projects/{projectsId}/locations/global/domains/{domainsId}:extendSchema", +"httpMethod": "POST", +"id": "managedidentities.projects.locations.global.domains.extendSchema", +"parameterOrder": [ +"domain" +], +"parameters": { +"domain": { +"description": "Required. The domain resource name using the form: `projects/{project_id}/locations/global/domains/{domain_name}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/global/domains/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+domain}:extendSchema", +"request": { +"$ref": "ExtendSchemaRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single Domain.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/global/domains/{domainsId}", +"httpMethod": "GET", +"id": "managedidentities.projects.locations.global.domains.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Domain resource name using the form: `projects/{project_id}/locations/global/domains/{domain_name}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/global/domains/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"response": { +"$ref": "Domain" +}, +"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": "v1alpha1/projects/{projectsId}/locations/global/domains/{domainsId}:getIamPolicy", +"httpMethod": "GET", +"id": "managedidentities.projects.locations.global.domains.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/domains/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getLdapssettings": { +"description": "Gets the domain ldaps settings.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/global/domains/{domainsId}/ldapssettings", +"httpMethod": "GET", +"id": "managedidentities.projects.locations.global.domains.getLdapssettings", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The domain resource name using the form: `projects/{project_id}/locations/global/domains/{domain_name}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/global/domains/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}/ldapssettings", +"response": { +"$ref": "LDAPSSettings" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists Domains in a given project.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/global/domains", +"httpMethod": "GET", +"id": "managedidentities.projects.locations.global.domains.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filter specifying constraints of a list operation. For example, `Domain.fqdn=\"mydomain.myorginization\"`.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Specifies the ordering of results following syntax at https://cloud.google.com/apis/design/design_patterns#sorting_order.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "If not specified, a default value of 1000 will be used by the service. Regardless of the page_size value, the response may include a partial list and a caller should only rely on response's next_page_token to determine if there are more instances left to be queried.", +"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 resource name of the domain location using the form: `projects/{project_id}/locations/global`", +"location": "path", +"pattern": "^projects/[^/]+/locations/global$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+parent}/domains", +"response": { +"$ref": "ListDomainsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the metadata and configuration of a specified domain. Operation", +"flatPath": "v1alpha1/projects/{projectsId}/locations/global/domains/{domainsId}", +"httpMethod": "PATCH", +"id": "managedidentities.projects.locations.global.domains.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. Unique name of the domain in this scope including projects and location using the form: `projects/{project_id}/locations/global/domains/{domain_name}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/global/domains/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Mask of fields to update. At least one path must be supplied in this field. The elements of the repeated paths field may only include these fields from Domain: * `labels` * `locations` * `authorized_networks` * `audit_logs_enabled`", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"request": { +"$ref": "Domain" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"reconfigureTrust": { +"description": "Updates the dns conditional forwarder. Operation", +"flatPath": "v1alpha1/projects/{projectsId}/locations/global/domains/{domainsId}:reconfigureTrust", +"httpMethod": "POST", +"id": "managedidentities.projects.locations.global.domains.reconfigureTrust", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The resource domain name, project name and location using the form: `projects/{project_id}/locations/global/domains/{domain_name}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/global/domains/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}:reconfigureTrust", +"request": { +"$ref": "ReconfigureTrustRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"resetAdminPassword": { +"description": "Resets managed identities admin password identified by managed_identities_admin_name", +"flatPath": "v1alpha1/projects/{projectsId}/locations/global/domains/{domainsId}:resetAdminPassword", +"httpMethod": "POST", +"id": "managedidentities.projects.locations.global.domains.resetAdminPassword", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The domain resource name using the form: `projects/{project_id}/locations/global/domains/{domain_name}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/global/domains/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}:resetAdminPassword", +"request": { +"$ref": "ResetAdminPasswordRequest" +}, +"response": { +"$ref": "ResetAdminPasswordResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"restore": { +"description": "RestoreDomain restores domain backup mentioned in the RestoreDomainRequest", +"flatPath": "v1alpha1/projects/{projectsId}/locations/global/domains/{domainsId}:restore", +"httpMethod": "POST", +"id": "managedidentities.projects.locations.global.domains.restore", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. resource name for the domain to which the backup belongs", +"location": "path", +"pattern": "^projects/[^/]+/locations/global/domains/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}:restore", +"request": { +"$ref": "RestoreDomainRequest" +}, +"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": "v1alpha1/projects/{projectsId}/locations/global/domains/{domainsId}:setIamPolicy", +"httpMethod": "POST", +"id": "managedidentities.projects.locations.global.domains.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/domains/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+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": "v1alpha1/projects/{projectsId}/locations/global/domains/{domainsId}:testIamPermissions", +"httpMethod": "POST", +"id": "managedidentities.projects.locations.global.domains.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/domains/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateLdapssettings": { +"description": "Patches a single ldaps settings.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/global/domains/{domainsId}/ldapssettings", +"httpMethod": "PATCH", +"id": "managedidentities.projects.locations.global.domains.updateLdapssettings", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The resource name of the LDAPS settings. Uses the form: `projects/{project}/locations/{location}/domains/{domain}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/global/domains/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. Mask of fields to update. At least one path must be supplied in this field. For the `FieldMask` definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha1/{+name}/ldapssettings", +"request": { +"$ref": "LDAPSSettings" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"validateTrust": { +"description": "Validate the trust state Operation", +"flatPath": "v1alpha1/projects/{projectsId}/locations/global/domains/{domainsId}:validateTrust", +"httpMethod": "POST", +"id": "managedidentities.projects.locations.global.domains.validateTrust", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The resource domain name, project name, and location using the form: `projects/{project_id}/locations/global/domains/{domain_name}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/global/domains/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}:validateTrust", +"request": { +"$ref": "ValidateTrustRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"backups": { +"methods": { +"create": { +"description": "Creates a Backup for a domain.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/global/domains/{domainsId}/backups", +"httpMethod": "POST", +"id": "managedidentities.projects.locations.global.domains.backups.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"backupId": { +"description": "Required. Backup Id, unique name to identify the backups with the following restrictions: * Must be lowercase letters, numbers, and hyphens * Must start with a letter. * Must contain between 1-63 characters. * Must end with a number or a letter. * Must be unique within the domain.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The domain resource name using the form: `projects/{project_id}/locations/global/domains/{domain_name}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/global/domains/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+parent}/backups", +"request": { +"$ref": "Backup" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes identified Backup.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/global/domains/{domainsId}/backups/{backupsId}", +"httpMethod": "DELETE", +"id": "managedidentities.projects.locations.global.domains.backups.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The backup resource name using the form: `projects/{project_id}/locations/global/domains/{domain_name}/backups/{backup_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/global/domains/[^/]+/backups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single Backup.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/global/domains/{domainsId}/backups/{backupsId}", +"httpMethod": "GET", +"id": "managedidentities.projects.locations.global.domains.backups.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The backup resource name using the form: `projects/{project_id}/locations/global/domains/{domain_name}/backups/{backup_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/global/domains/[^/]+/backups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"response": { +"$ref": "Backup" +}, +"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": "v1alpha1/projects/{projectsId}/locations/global/domains/{domainsId}/backups/{backupsId}:getIamPolicy", +"httpMethod": "GET", +"id": "managedidentities.projects.locations.global.domains.backups.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/domains/[^/]+/backups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists Backup in a given project.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/global/domains/{domainsId}/backups", +"httpMethod": "GET", +"id": "managedidentities.projects.locations.global.domains.backups.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filter specifying constraints of a list operation.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Specifies the ordering of results following syntax at https://cloud.google.com/apis/design/design_patterns#sorting_order.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of items to return. If not specified, a default value of 1000 will be used by the service. Regardless of the page_size value, the response may include a partial list and a caller should only rely on response's next_page_token to determine if there are more instances left to be queried.", +"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 domain resource name using the form: `projects/{project_id}/locations/global/domains/{domain_name}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/global/domains/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+parent}/backups", +"response": { +"$ref": "ListBackupsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the labels for specified Backup.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/global/domains/{domainsId}/backups/{backupsId}", +"httpMethod": "PATCH", +"id": "managedidentities.projects.locations.global.domains.backups.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. The unique name of the Backup in the form of projects/{project_id}/locations/global/domains/{domain_name}/backups/{name}", +"location": "path", +"pattern": "^projects/[^/]+/locations/global/domains/[^/]+/backups/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. Mask of fields to update. At least one path must be supplied in this field. The elements of the repeated paths field may only include these fields from Backup: * `labels`", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"request": { +"$ref": "Backup" +}, +"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": "v1alpha1/projects/{projectsId}/locations/global/domains/{domainsId}/backups/{backupsId}:setIamPolicy", +"httpMethod": "POST", +"id": "managedidentities.projects.locations.global.domains.backups.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/domains/[^/]+/backups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+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": "v1alpha1/projects/{projectsId}/locations/global/domains/{domainsId}/backups/{backupsId}:testIamPermissions", +"httpMethod": "POST", +"id": "managedidentities.projects.locations.global.domains.backups.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/domains/[^/]+/backups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"sqlIntegrations": { +"methods": { +"get": { +"description": "Gets details of a single sqlIntegration.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/global/domains/{domainsId}/sqlIntegrations/{sqlIntegrationsId}", +"httpMethod": "GET", +"id": "managedidentities.projects.locations.global.domains.sqlIntegrations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. MangedOU resource name using the form: `projects/{project_id}/locations/global/domains/*/sqlIntegrations/{name}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/global/domains/[^/]+/sqlIntegrations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"response": { +"$ref": "SQLIntegration" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists SQLIntegrations in a given domain.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/global/domains/{domainsId}/sqlIntegrations", +"httpMethod": "GET", +"id": "managedidentities.projects.locations.global.domains.sqlIntegrations.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filter specifying constraints of a list operation. For example, `SqlIntegration.name=\"sql\"`.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Specifies the ordering of results following syntax at https://cloud.google.com/apis/design/design_patterns#sorting_order.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of items to return. If not specified, a default value of 1000 will be used by the service. Regardless of the page_size value, the response may include a partial list and a caller should only rely on response'ANIZATIONs next_page_token to determine if there are more instances left to be queried.", +"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 resource name of the SqlIntegrations using the form: `projects/{project_id}/locations/global/domains/*`", +"location": "path", +"pattern": "^projects/[^/]+/locations/global/domains/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+parent}/sqlIntegrations", +"response": { +"$ref": "ListSQLIntegrationsResponse" +}, +"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/global/operations/{operationsId}:cancel", +"httpMethod": "POST", +"id": "managedidentities.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": "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/global/operations/{operationsId}", +"httpMethod": "DELETE", +"id": "managedidentities.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": "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/global/operations/{operationsId}", +"httpMethod": "GET", +"id": "managedidentities.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": "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/global/operations", +"httpMethod": "GET", +"id": "managedidentities.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": "v1alpha1/{+name}/operations", +"response": { +"$ref": "ListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"peerings": { +"methods": { +"create": { +"description": "Creates a Peering for Managed AD instance.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/global/peerings", +"httpMethod": "POST", +"id": "managedidentities.projects.locations.global.peerings.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Resource project name and location using the form: `projects/{project_id}/locations/global`", +"location": "path", +"pattern": "^projects/[^/]+/locations/global$", +"required": true, +"type": "string" +}, +"peeringId": { +"description": "Required. Peering Id, unique name to identify peering.", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha1/{+parent}/peerings", +"request": { +"$ref": "Peering" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes identified Peering.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/global/peerings/{peeringsId}", +"httpMethod": "DELETE", +"id": "managedidentities.projects.locations.global.peerings.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Peering resource name using the form: `projects/{project_id}/locations/global/peerings/{peering_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/global/peerings/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single Peering.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/global/peerings/{peeringsId}", +"httpMethod": "GET", +"id": "managedidentities.projects.locations.global.peerings.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Peering resource name using the form: `projects/{project_id}/locations/global/peerings/{peering_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/global/peerings/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"response": { +"$ref": "Peering" +}, +"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": "v1alpha1/projects/{projectsId}/locations/global/peerings/{peeringsId}:getIamPolicy", +"httpMethod": "GET", +"id": "managedidentities.projects.locations.global.peerings.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/peerings/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists Peerings in a given project.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/global/peerings", +"httpMethod": "GET", +"id": "managedidentities.projects.locations.global.peerings.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filter specifying constraints of a list operation. For example, `peering.authoized_network =\"/projects/myprojectid\"`.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Optional. Specifies the ordering of results following syntax at https://cloud.google.com/apis/design/design_patterns#sorting_order.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of items to return. If not specified, a default value of 1000 will be used by the service. Regardless of the page_size value, the response may include a partial list and a caller should only rely on response's next_page_token to determine if there are more instances left to be queried.", +"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 resource name of the domain location using the form: `projects/{project_id}/locations/global`", +"location": "path", +"pattern": "^projects/[^/]+/locations/global$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+parent}/peerings", +"response": { +"$ref": "ListPeeringsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the labels for specified Peering.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/global/peerings/{peeringsId}", +"httpMethod": "PATCH", +"id": "managedidentities.projects.locations.global.peerings.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. Unique name of the peering in this scope including projects and location using the form: `projects/{project_id}/locations/global/peerings/{peering_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/global/peerings/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. Mask of fields to update. At least one path must be supplied in this field. The elements of the repeated paths field may only include these fields from Peering: * `labels`", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"request": { +"$ref": "Peering" +}, +"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": "v1alpha1/projects/{projectsId}/locations/global/peerings/{peeringsId}:setIamPolicy", +"httpMethod": "POST", +"id": "managedidentities.projects.locations.global.peerings.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/peerings/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+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": "v1alpha1/projects/{projectsId}/locations/global/peerings/{peeringsId}:testIamPermissions", +"httpMethod": "POST", +"id": "managedidentities.projects.locations.global.peerings.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/peerings/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +} +} +}, +"revision": "20240530", +"rootUrl": "https://managedidentities.googleapis.com/", +"schemas": { +"AttachTrustRequest": { +"id": "AttachTrustRequest", +"properties": { +"trust": { +"$ref": "Trust", +"description": "The domain trust resource." +} +}, +"type": "object" +}, +"Backup": { +"description": "Represents a Managed Microsoft Identities backup.", +"id": "Backup", +"properties": { +"createTime": { +"description": "Output only. The time the backups was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. A short description of the backup.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Resource labels to represent user provided metadata.", +"type": "object" +}, +"name": { +"description": "Output only. The unique name of the Backup in the form of projects/{project_id}/locations/global/domains/{domain_name}/backups/{name}", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. The current state of the backup.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"ACTIVE", +"FAILED", +"DELETING" +], +"enumDescriptions": [ +"Not set.", +"Backup is being created.", +"Backup has been created and validated.", +"Backup has been created but failed validation.", +"Backup is being deleted." +], +"readOnly": true, +"type": "string" +}, +"statusMessage": { +"description": "Output only. Additional information about the current status of this backup, if available.", +"readOnly": true, +"type": "string" +}, +"type": { +"description": "Output only. Indicates whether it\u2019s an on-demand backup or scheduled.", +"enum": [ +"TYPE_UNSPECIFIED", +"ON_DEMAND", +"SCHEDULED", +"SCHEMA_EXTENSION" +], +"enumDescriptions": [ +"Backup type not specified.", +"Backup was manually created.", +"Backup was automatically created.", +"Backup was taken as part of Schema Extension request." +], +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. Last update time.", +"format": "google-datetime", +"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" +}, +"CancelOperationRequest": { +"description": "The request message for Operations.CancelOperation.", +"id": "CancelOperationRequest", +"properties": {}, +"type": "object" +}, +"Certificate": { +"description": "Certificate used to configure LDAPS.", +"id": "Certificate", +"properties": { +"expireTime": { +"description": "The certificate expire time.", +"format": "google-datetime", +"type": "string" +}, +"issuingCertificate": { +"$ref": "Certificate", +"description": "The issuer of this certificate." +}, +"subject": { +"description": "The certificate subject.", +"type": "string" +}, +"subjectAlternativeName": { +"description": "The additional hostnames for the domain.", +"items": { +"type": "string" +}, +"type": "array" +}, +"thumbprint": { +"description": "The certificate thumbprint which uniquely identifies the certificate.", +"type": "string" +} +}, +"type": "object" +}, +"CheckMigrationPermissionRequest": { +"description": "CheckMigrationPermissionRequest is the request message for CheckMigrationPermission method.", +"id": "CheckMigrationPermissionRequest", +"properties": {}, +"type": "object" +}, +"CheckMigrationPermissionResponse": { +"description": "CheckMigrationPermissionResponse is the response message for CheckMigrationPermission method.", +"id": "CheckMigrationPermissionResponse", +"properties": { +"onpremDomains": { +"description": "The state of SID filtering of all the domains which has trust established.", +"items": { +"$ref": "OnPremDomainSIDDetails" +}, +"type": "array" +}, +"state": { +"description": "The state of DomainMigration.", +"enum": [ +"STATE_UNSPECIFIED", +"DISABLED", +"ENABLED", +"NEEDS_MAINTENANCE" +], +"enumDescriptions": [ +"DomainMigration is in unspecified state.", +"Domain Migration is Disabled.", +"Domain Migration is Enabled.", +"Domain Migration is not in valid state." +], +"type": "string" +} +}, +"type": "object" +}, +"DailyCycle": { +"description": "Time window specified for daily operations.", +"id": "DailyCycle", +"properties": { +"duration": { +"description": "Output only. Duration of the time window, set by service producer.", +"format": "google-duration", +"type": "string" +}, +"startTime": { +"$ref": "TimeOfDay", +"description": "Time within the day to start the operations." +} +}, +"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" +}, +"DenyMaintenancePeriod": { +"description": "DenyMaintenancePeriod definition. Maintenance is forbidden within the deny period. The start_date must be less than the end_date.", +"id": "DenyMaintenancePeriod", +"properties": { +"endDate": { +"$ref": "Date", +"description": "Deny period end date. This can be: * A full date, with non-zero year, month and day values. * A month and day value, with a zero year. Allows recurring deny periods each year. Date matching this period will have to be before the end." +}, +"startDate": { +"$ref": "Date", +"description": "Deny period start date. This can be: * A full date, with non-zero year, month and day values. * A month and day value, with a zero year. Allows recurring deny periods each year. Date matching this period will have to be the same or after the start." +}, +"time": { +"$ref": "TimeOfDay", +"description": "Time in UTC when the Blackout period starts on start_date and ends on end_date. This can be: * Full time. * All zeros for 00:00:00 UTC" +} +}, +"type": "object" +}, +"DetachTrustRequest": { +"id": "DetachTrustRequest", +"properties": { +"trust": { +"$ref": "Trust", +"description": "The domain trust resource to removed." +} +}, +"type": "object" +}, +"DisableMigrationRequest": { +"description": "DisableMigrationRequest is the request message for DisableMigration method.", +"id": "DisableMigrationRequest", +"properties": {}, +"type": "object" +}, +"Domain": { +"description": "If the domain is being changed, it will be placed into the UPDATING state, which indicates that the resource is being reconciled. At this point, Get will reflect an intermediate state.", +"id": "Domain", +"properties": { +"auditLogsEnabled": { +"description": "Optional. Configuration for audit logs. True if audit logs are enabled, else false. Default is audit logs disabled.", +"type": "boolean" +}, +"authorizedNetworks": { +"description": "Optional. The full names of the Google Compute Engine [networks](/compute/docs/networks-and-firewalls#networks) to which the instance is connected. Network can be added using UpdateDomain later. Domain is only available on network part of authorized_networks. Caller needs to make sure that CIDR subnets do not overlap between networks, else domain creation will fail.", +"items": { +"type": "string" +}, +"type": "array" +}, +"createTime": { +"description": "Output only. The time the instance was created. Synthetic field is populated automatically by CCFE. go/ccfe-synthetic-field-user-guide", +"format": "google-datetime", +"type": "string" +}, +"fqdn": { +"description": "Output only. Fully-qualified domain name of the exposed domain used by clients to connect to the service. Similar to what would be chosen for an Active Directory that is set up on an internal network.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Resource labels to represent user provided metadata", +"type": "object" +}, +"locations": { +"description": "Required. Locations where domain needs to be provisioned. regions e.g. us-west1 or us-east4 Service supports up to 4 locations at once. Each location will use a /26 block.", +"items": { +"type": "string" +}, +"type": "array" +}, +"managedIdentitiesAdminName": { +"description": "Optional. Name of customer-visible admin used to perform Active Directory operations. If not specified `setupadmin` would be used.", +"type": "string" +}, +"name": { +"description": "Output only. Unique name of the domain in this scope including projects and location using the form: `projects/{project_id}/locations/global/domains/{domain_name}`.", +"type": "string" +}, +"reservedIpRange": { +"description": "Required. The CIDR range of internal addresses that are reserved for this domain. Reserved networks must be /24 or larger. Ranges must be unique and non-overlapping with existing subnets in [Domain].[authorized_networks].", +"type": "string" +}, +"state": { +"description": "Output only. The current state of this domain.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"READY", +"UPDATING", +"DELETING", +"REPAIRING", +"PERFORMING_MAINTENANCE", +"DOWN" +], +"enumDescriptions": [ +"Not set.", +"ManagedIdentities domain is being created.", +"ManagedIdentities domain has been created and is fully usable.", +"ManagedIdentities domain configuration is being updated.", +"ManagedIdentities domain is being deleted.", +"ManagedIdentities domain is being repaired and may be unusable. Details can be found in the `status_message` field.", +"ManagedIdentities domain is undergoing maintenance.", +"ManagedIdentities domain is not serving customer requests." +], +"type": "string" +}, +"statusMessage": { +"description": "Output only. Additional information about the current status of this domain, if available.", +"type": "string" +}, +"trusts": { +"description": "Output only. The current trusts associated with the domain.", +"items": { +"$ref": "Trust" +}, +"type": "array" +}, +"updateTime": { +"description": "Output only. Last update time. Synthetic field is populated automatically by CCFE.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"DomainJoinMachineRequest": { +"description": "DomainJoinMachineRequest is the request message for DomainJoinMachine method", +"id": "DomainJoinMachineRequest", +"properties": { +"force": { +"description": "Optional. force if True, forces domain join even if the computer account already exists.", +"type": "boolean" +}, +"ouName": { +"description": "Optional. OU name where the VM needs to be domain joined", +"type": "string" +}, +"vmIdToken": { +"description": "Required. Full instance id token of compute engine VM to verify instance identity. More about this: https://cloud.google.com/compute/docs/instances/verifying-instance-identity#request_signature", +"type": "string" +} +}, +"type": "object" +}, +"DomainJoinMachineResponse": { +"description": "DomainJoinMachineResponse is the response message for DomainJoinMachine method", +"id": "DomainJoinMachineResponse", +"properties": { +"domainJoinBlob": { +"description": "Offline domain join blob as the response", +"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" +}, +"EnableMigrationRequest": { +"description": "EnableMigrationRequest is the request message for EnableMigration method.", +"id": "EnableMigrationRequest", +"properties": { +"enableDuration": { +"description": "Optional. Period after which the migration would be auto disabled. If unspecified, a default timeout of 48h is used.", +"format": "google-duration", +"type": "string" +}, +"migratingDomains": { +"description": "Required. List of the on-prem domains to be migrated.", +"items": { +"$ref": "OnPremDomainDetails" +}, +"type": "array" +} +}, +"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" +}, +"ExtendSchemaRequest": { +"description": "ExtendSchemaRequest is the request message for ExtendSchema method.", +"id": "ExtendSchemaRequest", +"properties": { +"description": { +"description": "Required. Description for Schema Change.", +"type": "string" +}, +"fileContents": { +"description": "File uploaded as a byte stream input.", +"format": "byte", +"type": "string" +}, +"gcsPath": { +"description": "File stored in Cloud Storage bucket and represented in the form projects/{project_id}/buckets/{bucket_name}/objects/{object_name} File should be in the same project as the domain.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudManagedidentitiesV1OpMetadata": { +"description": "Represents the metadata of the long-running operation.", +"id": "GoogleCloudManagedidentitiesV1OpMetadata", +"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" +}, +"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" +}, +"GoogleCloudManagedidentitiesV1alpha1OpMetadata": { +"description": "Represents the metadata of the long-running operation.", +"id": "GoogleCloudManagedidentitiesV1alpha1OpMetadata", +"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" +}, +"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" +}, +"GoogleCloudManagedidentitiesV1beta1OpMetadata": { +"description": "Represents the metadata of the long-running operation.", +"id": "GoogleCloudManagedidentitiesV1beta1OpMetadata", +"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" +}, +"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" +}, +"GoogleCloudSaasacceleratorManagementProvidersV1Instance": { +"description": "Instance represents the interface for SLM services to actuate the state of control plane resources. Example Instance in JSON, where consumer-project-number=123456, producer-project-id=cloud-sql: ```json Instance: { \"name\": \"projects/123456/locations/us-east1/instances/prod-instance\", \"create_time\": { \"seconds\": 1526406431, }, \"labels\": { \"env\": \"prod\", \"foo\": \"bar\" }, \"state\": READY, \"software_versions\": { \"software_update\": \"cloud-sql-09-28-2018\", }, \"maintenance_policy_names\": { \"UpdatePolicy\": \"projects/123456/locations/us-east1/maintenancePolicies/prod-update-policy\", } \"tenant_project_id\": \"cloud-sql-test-tenant\", \"producer_metadata\": { \"cloud-sql-tier\": \"basic\", \"cloud-sql-instance-size\": \"1G\", }, \"provisioned_resources\": [ { \"resource-type\": \"compute-instance\", \"resource-url\": \"https://www.googleapis.com/compute/v1/projects/cloud-sql/zones/us-east1-b/instances/vm-1\", } ], \"maintenance_schedules\": { \"csa_rollout\": { \"start_time\": { \"seconds\": 1526406431, }, \"end_time\": { \"seconds\": 1535406431, }, }, \"ncsa_rollout\": { \"start_time\": { \"seconds\": 1526406431, }, \"end_time\": { \"seconds\": 1535406431, }, } }, \"consumer_defined_name\": \"my-sql-instance1\", } ``` LINT.IfChange", +"id": "GoogleCloudSaasacceleratorManagementProvidersV1Instance", +"properties": { +"consumerDefinedName": { +"description": "consumer_defined_name is the name of the instance set by the service consumers. Generally this is different from the `name` field which reperesents the system-assigned id of the instance which the service consumers do not recognize. This is a required field for tenants onboarding to Maintenance Window notifications (go/slm-rollout-maintenance-policies#prerequisites).", +"type": "string" +}, +"createTime": { +"description": "Output only. Timestamp when the resource was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"instanceType": { +"description": "Optional. The instance_type of this instance of format: projects/{project_number}/locations/{location_id}/instanceTypes/{instance_type_id}. Instance Type represents a high-level tier or SKU of the service that this instance belong to. When enabled(eg: Maintenance Rollout), Rollout uses 'instance_type' along with 'software_versions' to determine whether instance needs an update or not.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Resource labels to represent user provided metadata. Each label is a key-value pair, where both the key and the value are arbitrary strings provided by the user.", +"type": "object" +}, +"maintenancePolicyNames": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. The MaintenancePolicies that have been attached to the instance. The key must be of the type name of the oneof policy name defined in MaintenancePolicy, and the referenced policy must define the same policy type. For details, please refer to go/mr-user-guide. Should not be set if maintenance_settings.maintenance_policies is set.", +"type": "object" +}, +"maintenanceSchedules": { +"additionalProperties": { +"$ref": "GoogleCloudSaasacceleratorManagementProvidersV1MaintenanceSchedule" +}, +"description": "The MaintenanceSchedule contains the scheduling information of published maintenance schedule with same key as software_versions.", +"type": "object" +}, +"maintenanceSettings": { +"$ref": "GoogleCloudSaasacceleratorManagementProvidersV1MaintenanceSettings", +"description": "Optional. The MaintenanceSettings associated with instance." +}, +"name": { +"description": "Unique name of the resource. It uses the form: `projects/{project_number}/locations/{location_id}/instances/{instance_id}` Note: This name is passed, stored and logged across the rollout system. So use of consumer project_id or any other consumer PII in the name is strongly discouraged for wipeout (go/wipeout) compliance. See go/elysium/project_ids#storage-guidance for more details.", +"type": "string" +}, +"notificationParameters": { +"additionalProperties": { +"$ref": "GoogleCloudSaasacceleratorManagementProvidersV1NotificationParameter" +}, +"description": "Optional. notification_parameter are information that service producers may like to include that is not relevant to Rollout. This parameter will only be passed to Gamma and Cloud Logging for notification/logging purpose.", +"type": "object" +}, +"producerMetadata": { +"additionalProperties": { +"type": "string" +}, +"description": "Output only. Custom string attributes used primarily to expose producer-specific information in monitoring dashboards. See go/get-instance-metadata.", +"readOnly": true, +"type": "object" +}, +"provisionedResources": { +"description": "Output only. The list of data plane resources provisioned for this instance, e.g. compute VMs. See go/get-instance-metadata.", +"items": { +"$ref": "GoogleCloudSaasacceleratorManagementProvidersV1ProvisionedResource" +}, +"readOnly": true, +"type": "array" +}, +"slmInstanceTemplate": { +"description": "Link to the SLM instance template. Only populated when updating SLM instances via SSA's Actuation service adaptor. Service producers with custom control plane (e.g. Cloud SQL) doesn't need to populate this field. Instead they should use software_versions.", +"type": "string" +}, +"sloMetadata": { +"$ref": "GoogleCloudSaasacceleratorManagementProvidersV1SloMetadata", +"description": "Output only. SLO metadata for instance classification in the Standardized dataplane SLO platform. See go/cloud-ssa-standard-slo for feature description.", +"readOnly": true +}, +"softwareVersions": { +"additionalProperties": { +"type": "string" +}, +"description": "Software versions that are used to deploy this instance. This can be mutated by rollout services.", +"type": "object" +}, +"state": { +"description": "Output only. Current lifecycle state of the resource (e.g. if it's being created or ready to use).", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"READY", +"UPDATING", +"REPAIRING", +"DELETING", +"ERROR" +], +"enumDescriptions": [ +"Unspecified state.", +"Instance is being created.", +"Instance has been created and is ready to use.", +"Instance is being updated.", +"Instance is unheathy and under repair.", +"Instance is being deleted.", +"Instance encountered an error and is in indeterministic state." +], +"readOnly": true, +"type": "string" +}, +"tenantProjectId": { +"description": "Output only. ID of the associated GCP tenant project. See go/get-instance-metadata.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. Timestamp when the resource was last modified.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSaasacceleratorManagementProvidersV1MaintenanceSchedule": { +"description": "Maintenance schedule which is exposed to customer and potentially end user, indicating published upcoming future maintenance schedule", +"id": "GoogleCloudSaasacceleratorManagementProvidersV1MaintenanceSchedule", +"properties": { +"canReschedule": { +"deprecated": true, +"description": "This field is deprecated, and will be always set to true since reschedule can happen multiple times now. This field should not be removed until all service producers remove this for their customers.", +"type": "boolean" +}, +"endTime": { +"description": "The scheduled end time for the maintenance.", +"format": "google-datetime", +"type": "string" +}, +"rolloutManagementPolicy": { +"description": "The rollout management policy this maintenance schedule is associated with. When doing reschedule update request, the reschedule should be against this given policy.", +"type": "string" +}, +"scheduleDeadlineTime": { +"description": "schedule_deadline_time is the time deadline any schedule start time cannot go beyond, including reschedule. It's normally the initial schedule start time plus maintenance window length (1 day or 1 week). Maintenance cannot be scheduled to start beyond this deadline.", +"format": "google-datetime", +"type": "string" +}, +"startTime": { +"description": "The scheduled start time for the maintenance.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSaasacceleratorManagementProvidersV1MaintenanceSettings": { +"description": "Maintenance settings associated with instance. Allows service producers and end users to assign settings that controls maintenance on this instance.", +"id": "GoogleCloudSaasacceleratorManagementProvidersV1MaintenanceSettings", +"properties": { +"exclude": { +"description": "Optional. Exclude instance from maintenance. When true, rollout service will not attempt maintenance on the instance. Rollout service will include the instance in reported rollout progress as not attempted.", +"type": "boolean" +}, +"isRollback": { +"description": "Optional. If the update call is triggered from rollback, set the value as true.", +"type": "boolean" +}, +"maintenancePolicies": { +"additionalProperties": { +"$ref": "MaintenancePolicy" +}, +"description": "Optional. The MaintenancePolicies that have been attached to the instance. The key must be of the type name of the oneof policy name defined in MaintenancePolicy, and the embedded policy must define the same policy type. For details, please refer to go/mr-user-guide. Should not be set if maintenance_policy_names is set. If only the name is needed, then only populate MaintenancePolicy.name.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudSaasacceleratorManagementProvidersV1NodeSloMetadata": { +"description": "Node information for custom per-node SLO implementations. SSA does not support per-node SLO, but producers can populate per-node information in SloMetadata for custom precomputations. SSA Eligibility Exporter will emit per-node metric based on this information.", +"id": "GoogleCloudSaasacceleratorManagementProvidersV1NodeSloMetadata", +"properties": { +"location": { +"description": "The location of the node, if different from instance location.", +"type": "string" +}, +"nodeId": { +"description": "The id of the node. This should be equal to SaasInstanceNode.node_id.", +"type": "string" +}, +"perSliEligibility": { +"$ref": "GoogleCloudSaasacceleratorManagementProvidersV1PerSliSloEligibility", +"description": "If present, this will override eligibility for the node coming from instance or exclusions for specified SLIs." +} +}, +"type": "object" +}, +"GoogleCloudSaasacceleratorManagementProvidersV1NotificationParameter": { +"description": "Contains notification related data.", +"id": "GoogleCloudSaasacceleratorManagementProvidersV1NotificationParameter", +"properties": { +"values": { +"description": "Optional. Array of string values. e.g. instance's replica information.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudSaasacceleratorManagementProvidersV1PerSliSloEligibility": { +"description": "PerSliSloEligibility is a mapping from an SLI name to eligibility.", +"id": "GoogleCloudSaasacceleratorManagementProvidersV1PerSliSloEligibility", +"properties": { +"eligibilities": { +"additionalProperties": { +"$ref": "GoogleCloudSaasacceleratorManagementProvidersV1SloEligibility" +}, +"description": "An entry in the eligibilities map specifies an eligibility for a particular SLI for the given instance. The SLI key in the name must be a valid SLI name specified in the Eligibility Exporter binary flags otherwise an error will be emitted by Eligibility Exporter and the oncaller will be alerted. If an SLI has been defined in the binary flags but the eligibilities map does not contain it, the corresponding SLI time series will not be emitted by the Eligibility Exporter. This ensures a smooth rollout and compatibility between the data produced by different versions of the Eligibility Exporters. If eligibilities map contains a key for an SLI which has not been declared in the binary flags, there will be an error message emitted in the Eligibility Exporter log and the metric for the SLI in question will not be emitted.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudSaasacceleratorManagementProvidersV1ProvisionedResource": { +"description": "Describes provisioned dataplane resources.", +"id": "GoogleCloudSaasacceleratorManagementProvidersV1ProvisionedResource", +"properties": { +"resourceType": { +"description": "Type of the resource. This can be either a GCP resource or a custom one (e.g. another cloud provider's VM). For GCP compute resources use singular form of the names listed in GCP compute API documentation (https://cloud.google.com/compute/docs/reference/rest/v1/), prefixed with 'compute-', for example: 'compute-instance', 'compute-disk', 'compute-autoscaler'.", +"type": "string" +}, +"resourceUrl": { +"description": "URL identifying the resource, e.g. \"https://www.googleapis.com/compute/v1/projects/...)\".", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSaasacceleratorManagementProvidersV1SloEligibility": { +"description": "SloEligibility is a tuple containing eligibility value: true if an instance is eligible for SLO calculation or false if it should be excluded from all SLO-related calculations along with a user-defined reason.", +"id": "GoogleCloudSaasacceleratorManagementProvidersV1SloEligibility", +"properties": { +"eligible": { +"description": "Whether an instance is eligible or ineligible.", +"type": "boolean" +}, +"reason": { +"description": "User-defined reason for the current value of instance eligibility. Usually, this can be directly mapped to the internal state. An empty reason is allowed.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSaasacceleratorManagementProvidersV1SloMetadata": { +"description": "SloMetadata contains resources required for proper SLO classification of the instance.", +"id": "GoogleCloudSaasacceleratorManagementProvidersV1SloMetadata", +"properties": { +"nodes": { +"description": "Optional. List of nodes. Some producers need to use per-node metadata to calculate SLO. This field allows such producers to publish per-node SLO meta data, which will be consumed by SSA Eligibility Exporter and published in the form of per node metric to Monarch.", +"items": { +"$ref": "GoogleCloudSaasacceleratorManagementProvidersV1NodeSloMetadata" +}, +"type": "array" +}, +"perSliEligibility": { +"$ref": "GoogleCloudSaasacceleratorManagementProvidersV1PerSliSloEligibility", +"description": "Optional. Multiple per-instance SLI eligibilities which apply for individual SLIs." +}, +"tier": { +"description": "Name of the SLO tier the Instance belongs to. This name will be expected to match the tiers specified in the service SLO configuration. Field is mandatory and must not be empty.", +"type": "string" +} +}, +"type": "object" +}, +"LDAPSSettings": { +"description": "LDAPSSettings represents the ldaps settings for domain resource. LDAP is the Lightweight Directory Access Protocol, defined in https://tools.ietf.org/html/rfc4511. The settings object configures LDAP over SSL/TLS, whether it is over port 636 or the StartTLS operation. If LDAPSSettings is being changed, it will be placed into the UPDATING state, which indicates that the resource is being reconciled. At this point, Get will reflect an intermediate state.", +"id": "LDAPSSettings", +"properties": { +"certificate": { +"$ref": "Certificate", +"description": "Output only. The certificate used to configure LDAPS. Certificates can be chained with a maximum length of 15.", +"readOnly": true +}, +"certificatePassword": { +"description": "Input only. The password used to encrypt the uploaded pfx certificate.", +"type": "string" +}, +"certificatePfx": { +"description": "Input only. The uploaded PKCS12-formatted certificate to configure LDAPS with. It will enable the domain controllers in this domain to accept LDAPS connections (either LDAP over SSL/TLS or the StartTLS operation). A valid certificate chain must form a valid x.509 certificate chain (or be comprised of a single self-signed certificate. It must be encrypted with either: 1) PBES2 + PBKDF2 + AES256 encryption and SHA256 PRF; or 2) pbeWithSHA1And3-KeyTripleDES-CBC Private key must be included for the leaf / single self-signed certificate. Note: For a fqdn your-example-domain.com, the wildcard fqdn is *.your-example-domain.com. Specifically the leaf certificate must have: - Either a blank subject or a subject with CN matching the wildcard fqdn. - Exactly two SANs - the fqdn and wildcard fqdn. - Encipherment and digital key signature key usages. - Server authentication extended key usage (OID=1.3.6.1.5.5.7.3.1) - Private key must be in one of the following formats: RSA, ECDSA, ED25519. - Private key must have appropriate key length: 2048 for RSA, 256 for ECDSA - Signature algorithm of the leaf certificate cannot be MD2, MD5 or SHA1.", +"format": "byte", +"type": "string" +}, +"name": { +"description": "The resource name of the LDAPS settings. Uses the form: `projects/{project}/locations/{location}/domains/{domain}`.", +"type": "string" +}, +"state": { +"description": "Output only. The current state of this LDAPS settings.", +"enum": [ +"STATE_UNSPECIFIED", +"UPDATING", +"ACTIVE", +"FAILED" +], +"enumDescriptions": [ +"Not Set", +"The LDAPS setting is being updated.", +"The LDAPS setting is ready.", +"The LDAPS setting is not applied correctly." +], +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. Last update time.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ListBackupsResponse": { +"description": "ListBackupsResponse is the response message for ListBackups method.", +"id": "ListBackupsResponse", +"properties": { +"backups": { +"description": "A list of Cloud AD backups in the domain.", +"items": { +"$ref": "Backup" +}, +"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" +}, +"ListDomainsResponse": { +"id": "ListDomainsResponse", +"properties": { +"domains": { +"description": "A list of Managed Identities Service domains in the project.", +"items": { +"$ref": "Domain" +}, +"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" +}, +"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" +}, +"ListPeeringsResponse": { +"description": "ListPeeringsResponse is the response message for ListPeerings method.", +"id": "ListPeeringsResponse", +"properties": { +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +}, +"peerings": { +"description": "A list of Managed Identities Service Peerings in the project.", +"items": { +"$ref": "Peering" +}, +"type": "array" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListSQLIntegrationsResponse": { +"description": "ListSQLIntegrationsResponse is the response message for ListSQLIntegrations method.", +"id": "ListSQLIntegrationsResponse", +"properties": { +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +}, +"sqlIntegrations": { +"description": "A list of SQLIntegrations of a domain.", +"items": { +"$ref": "SQLIntegration" +}, +"type": "array" +}, +"unreachable": { +"description": "A list of 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" +}, +"MaintenancePolicy": { +"description": "Defines policies to service maintenance events.", +"id": "MaintenancePolicy", +"properties": { +"createTime": { +"description": "Output only. The time when the resource was created.", +"format": "google-datetime", +"type": "string" +}, +"description": { +"description": "Optional. Description of what this policy is for. Create/Update methods return INVALID_ARGUMENT if the length is greater than 512.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Resource labels to represent user provided metadata. Each label is a key-value pair, where both the key and the value are arbitrary strings provided by the user.", +"type": "object" +}, +"name": { +"description": "Required. MaintenancePolicy name using the form: `projects/{project_id}/locations/{location_id}/maintenancePolicies/{maintenance_policy_id}` where {project_id} refers to a GCP consumer project ID, {location_id} refers to a GCP region/zone, {maintenance_policy_id} must be 1-63 characters long and match the regular expression `[a-z0-9]([-a-z0-9]*[a-z0-9])?`.", +"type": "string" +}, +"state": { +"description": "Optional. The state of the policy.", +"enum": [ +"STATE_UNSPECIFIED", +"READY", +"DELETING" +], +"enumDescriptions": [ +"Unspecified state.", +"Resource is ready to be used.", +"Resource is being deleted. It can no longer be attached to instances." +], +"type": "string" +}, +"updatePolicy": { +"$ref": "UpdatePolicy", +"description": "Maintenance policy applicable to instance update." +}, +"updateTime": { +"description": "Output only. The time when the resource was updated.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"MaintenanceWindow": { +"description": "MaintenanceWindow definition.", +"id": "MaintenanceWindow", +"properties": { +"dailyCycle": { +"$ref": "DailyCycle", +"description": "Daily cycle." +}, +"weeklyCycle": { +"$ref": "WeeklyCycle", +"description": "Weekly cycle." +} +}, +"type": "object" +}, +"OnPremDomainDetails": { +"description": "OnPremDomainDetails is the message which contains details of on-prem domain which is trusted and needs to be migrated.", +"id": "OnPremDomainDetails", +"properties": { +"disableSidFiltering": { +"description": "Optional. Option to disable SID filtering.", +"type": "boolean" +}, +"domainName": { +"description": "Required. FQDN of the on-prem domain being migrated.", +"type": "string" +} +}, +"type": "object" +}, +"OnPremDomainSIDDetails": { +"description": "OnPremDomainDetails is the message which contains details of on-prem domain which is trusted and needs to be migrated.", +"id": "OnPremDomainSIDDetails", +"properties": { +"name": { +"description": "FQDN of the on-prem domain being migrated.", +"type": "string" +}, +"sidFilteringState": { +"description": "Current SID filtering state.", +"enum": [ +"SID_FILTERING_STATE_UNSPECIFIED", +"ENABLED", +"DISABLED" +], +"enumDescriptions": [ +"SID Filtering is in unspecified state.", +"SID Filtering is Enabled.", +"SID Filtering is Disabled." +], +"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 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" +}, +"Peering": { +"description": "Represents a Managed Microsoft Identities Peering.", +"id": "Peering", +"properties": { +"authorizedNetwork": { +"description": "Required. The full names of the Google Compute Engine [networks](/compute/docs/networks-and-firewalls#networks) to which the instance is connected. Caller needs to make sure that CIDR subnets do not overlap between networks, else peering creation will fail.", +"type": "string" +}, +"createTime": { +"description": "Output only. The time the instance was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"domainResource": { +"description": "Required. Full domain resource path for the Managed AD Domain involved in peering. The resource path should be in the form: `projects/{project_id}/locations/global/domains/{domain_name}`", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Resource labels to represent user provided metadata.", +"type": "object" +}, +"name": { +"description": "Output only. Unique name of the peering in this scope including projects and location using the form: `projects/{project_id}/locations/global/peerings/{peering_id}`.", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. The current state of this Peering.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"CONNECTED", +"DISCONNECTED", +"DELETING" +], +"enumDescriptions": [ +"Not set.", +"Peering is being created.", +"Peering is connected.", +"Peering is disconnected.", +"Peering is being deleted." +], +"readOnly": true, +"type": "string" +}, +"statusMessage": { +"description": "Output only. Additional information about the current status of this peering, if available.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. Last update time.", +"format": "google-datetime", +"readOnly": true, +"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" +}, +"ReconfigureTrustRequest": { +"id": "ReconfigureTrustRequest", +"properties": { +"trust": { +"$ref": "Trust", +"description": "The domain trust resource with updated dns conditional forwarder." +} +}, +"type": "object" +}, +"ResetAdminPasswordRequest": { +"id": "ResetAdminPasswordRequest", +"properties": {}, +"type": "object" +}, +"ResetAdminPasswordResponse": { +"id": "ResetAdminPasswordResponse", +"properties": { +"password": { +"description": "A random password. See admin for more information.", +"type": "string" +} +}, +"type": "object" +}, +"RestoreDomainRequest": { +"description": "RestoreDomainRequest is the request received by RestoreDomain rpc", +"id": "RestoreDomainRequest", +"properties": { +"backupId": { +"description": "Required. ID of the backup to be restored", +"type": "string" +} +}, +"type": "object" +}, +"SQLIntegration": { +"description": "Represents the SQL instance integrated with AD.", +"id": "SQLIntegration", +"properties": { +"createTime": { +"description": "Output only. The time the instance was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "The unique name of the sql integration in the form of `projects/{project_id}/locations/global/domains/{domain_name}/sqlIntegrations/{sql_integration}`", +"type": "string" +}, +"sqlInstance": { +"description": "The full resource name of an integrated sql instance", +"type": "string" +}, +"state": { +"description": "Output only. The current state of the managed OU.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"DELETING", +"READY" +], +"enumDescriptions": [ +"Not Set", +"The sqlIntegration is being created.", +"The sqlIntegration is being deleted.", +"The sqlIntegration is ready." +], +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. Last update time for this SQL instance.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Schedule": { +"description": "Configure the schedule.", +"id": "Schedule", +"properties": { +"day": { +"description": "Allows to define schedule that runs specified 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" +}, +"duration": { +"description": "Output only. Duration of the time window, set by service producer.", +"format": "google-duration", +"type": "string" +}, +"startTime": { +"$ref": "TimeOfDay", +"description": "Time within the window to start the operations." +} +}, +"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" +}, +"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" +}, +"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 day in 24 hour format. Should be from 0 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 hour of day. Must be from 0 to 59.", +"format": "int32", +"type": "integer" +}, +"nanos": { +"description": "Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.", +"format": "int32", +"type": "integer" +}, +"seconds": { +"description": "Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"Trust": { +"description": "Represents a relationship between two domains which makes it possible for users in one domain to be authenticated by a dc in another domain. Refer https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc731335(v%3dws.10) If the trust is being changed, it will be placed into the UPDATING state, which indicates that the resource is being reconciled. At this point, Get will reflect an intermediate state.", +"id": "Trust", +"properties": { +"createTime": { +"description": "Output only. The time the instance was created.", +"format": "google-datetime", +"type": "string" +}, +"lastKnownTrustConnectedHeartbeatTime": { +"description": "Output only. The last heartbeat time when the trust was known to be connected.", +"format": "google-datetime", +"type": "string" +}, +"selectiveAuthentication": { +"description": "The trust authentication type which decides whether the trusted side has forest/domain wide access or selective access to approved set of resources.", +"type": "boolean" +}, +"state": { +"description": "Output only. The current state of this trust.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"UPDATING", +"DELETING", +"CONNECTED", +"DISCONNECTED" +], +"enumDescriptions": [ +"Not Set", +"Domain trust is being created.", +"Domain trust is being updated.", +"Domain trust is being deleted.", +"Domain trust is connected.", +"Domain trust is disconnected." +], +"type": "string" +}, +"stateDescription": { +"description": "Output only. Additional information about the current state of this trust, if available.", +"type": "string" +}, +"targetDnsIpAddresses": { +"description": "The target dns server ip addresses which can resolve the remote domain involved in trust.", +"items": { +"type": "string" +}, +"type": "array" +}, +"targetDomainName": { +"description": "The fully qualified target domain name which will be in trust with current domain.", +"type": "string" +}, +"trustDirection": { +"description": "The trust direction decides the current domain is trusted, trusting or both.", +"enum": [ +"TRUST_DIRECTION_UNSPECIFIED", +"INBOUND", +"OUTBOUND", +"BIDIRECTIONAL" +], +"enumDescriptions": [ +"Not Set", +"The inbound direction represents the trusting side.", +"The outboud direction represents the trusted side.", +"The bidirectional direction represents the trusted / trusting side." +], +"type": "string" +}, +"trustHandshakeSecret": { +"description": "Input only, and will not be stored. The trust secret used for handshake with target domain.", +"type": "string" +}, +"trustType": { +"description": "The type of trust represented by the trust resource.", +"enum": [ +"TRUST_TYPE_UNSPECIFIED", +"FOREST", +"EXTERNAL" +], +"enumDescriptions": [ +"Not Set", +"The forest trust.", +"The external domain trust." +], +"type": "string" +}, +"updateTime": { +"description": "Output only. Last update time.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"UpdatePolicy": { +"description": "Maintenance policy applicable to instance updates.", +"id": "UpdatePolicy", +"properties": { +"channel": { +"description": "Optional. Relative scheduling channel applied to resource.", +"enum": [ +"UPDATE_CHANNEL_UNSPECIFIED", +"EARLIER", +"LATER", +"WEEK1", +"WEEK2", +"WEEK5" +], +"enumDescriptions": [ +"Unspecified channel.", +"Early channel within a customer project.", +"Later channel within a customer project.", +"! ! The follow channels can ONLY be used if you adopt the new MW system! ! ! NOTE: all WEEK channels are assumed to be under a weekly window. ! There is currently no dedicated channel definitions for Daily windows. ! If you use Daily window, the system will assume a 1d (24Hours) advanced ! notification period b/w EARLY and LATER. ! We may consider support more flexible daily channel specifications in ! the future. WEEK1 == EARLIER with minimum 7d advanced notification. {7d, 14d} The system will treat them equally and will use WEEK1 whenever it can. New customers are encouraged to use this channel annotation.", +"WEEK2 == LATER with minimum 14d advanced notification {14d, 21d}.", +"WEEK5 == 40d support. minimum 35d advanced notification {35d, 42d}." +], +"type": "string" +}, +"denyMaintenancePeriods": { +"description": "Deny Maintenance Period that is applied to resource to indicate when maintenance is forbidden. The protocol supports zero-to-many such periods, but the current SLM Rollout implementation only supports zero-to-one.", +"items": { +"$ref": "DenyMaintenancePeriod" +}, +"type": "array" +}, +"window": { +"$ref": "MaintenanceWindow", +"description": "Optional. Maintenance window that is applied to resources covered by this policy." +} +}, +"type": "object" +}, +"ValidateTrustRequest": { +"id": "ValidateTrustRequest", +"properties": { +"trust": { +"$ref": "Trust", +"description": "The domain trust to validate trust state for." +} +}, +"type": "object" +}, +"WeeklyCycle": { +"description": "Time window specified for weekly operations.", +"id": "WeeklyCycle", +"properties": { +"schedule": { +"description": "User can specify multiple windows in a week. Minimum of 1 window.", +"items": { +"$ref": "Schedule" +}, +"type": "array" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Managed Service for Microsoft Active Directory 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/marketingplatformadmin.v1alpha.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/marketingplatformadmin.v1alpha.json new file mode 100644 index 0000000000000000000000000000000000000000..4b7cb8fc40574c420bcf3b96a36791e611b01a08 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/marketingplatformadmin.v1alpha.json @@ -0,0 +1,379 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/marketingplatformadmin.analytics.read": { +"description": "View your Google Analytics product account data in GMP home" +}, +"https://www.googleapis.com/auth/marketingplatformadmin.analytics.update": { +"description": "Manage your Google Analytics product account data in GMP home" +} +} +} +}, +"basePath": "", +"baseUrl": "https://marketingplatformadmin.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Google Marketing Platform Admin API", +"description": "The Google Marketing Platform Admin API allows for programmatic access to the Google Marketing Platform configuration data. You can use the Google Marketing Platform Admin API to manage links between your Google Marketing Platform organization and Google Analytics accounts, and to set the service level of your GA4 properties.", +"discoveryVersion": "v1", +"documentationLink": "https://developers.google.com/analytics/devguides/config/gmp/v1", +"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": "marketingplatformadmin:v1alpha", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://marketingplatformadmin.mtls.googleapis.com/", +"name": "marketingplatformadmin", +"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": { +"methods": { +"get": { +"description": "Lookup for a single organization.", +"flatPath": "v1alpha/organizations/{organizationsId}", +"httpMethod": "GET", +"id": "marketingplatformadmin.organizations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the Organization to retrieve. Format: organizations/{org_id}", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "Organization" +}, +"scopes": [ +"https://www.googleapis.com/auth/marketingplatformadmin.analytics.read", +"https://www.googleapis.com/auth/marketingplatformadmin.analytics.update" +] +} +}, +"resources": { +"analyticsAccountLinks": { +"methods": { +"create": { +"description": "Creates the link between the Analytics account and the Google Marketing Platform organization. User needs to be an org user, and admin on the Analytics account to create the link. If the account is already linked to an organization, user needs to unlink the account from the current organization, then try link again.", +"flatPath": "v1alpha/organizations/{organizationsId}/analyticsAccountLinks", +"httpMethod": "POST", +"id": "marketingplatformadmin.organizations.analyticsAccountLinks.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource where this Analytics account link will be created. Format: organizations/{org_id}", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+parent}/analyticsAccountLinks", +"request": { +"$ref": "AnalyticsAccountLink" +}, +"response": { +"$ref": "AnalyticsAccountLink" +}, +"scopes": [ +"https://www.googleapis.com/auth/marketingplatformadmin.analytics.update" +] +}, +"delete": { +"description": "Deletes the AnalyticsAccountLink, which detaches the Analytics account from the Google Marketing Platform organization. User needs to be an org user, and admin on the Analytics account in order to delete the link.", +"flatPath": "v1alpha/organizations/{organizationsId}/analyticsAccountLinks/{analyticsAccountLinksId}", +"httpMethod": "DELETE", +"id": "marketingplatformadmin.organizations.analyticsAccountLinks.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the Analytics account link to delete. Format: organizations/{org_id}/analyticsAccountLinks/{analytics_account_link_id}", +"location": "path", +"pattern": "^organizations/[^/]+/analyticsAccountLinks/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/marketingplatformadmin.analytics.update" +] +}, +"list": { +"description": "Lists the Google Analytics accounts link to the specified Google Marketing Platform organization.", +"flatPath": "v1alpha/organizations/{organizationsId}/analyticsAccountLinks", +"httpMethod": "GET", +"id": "marketingplatformadmin.organizations.analyticsAccountLinks.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of Analytics account links to return in one call. The service may return fewer than this value. If unspecified, at most 50 Analytics account links 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 ListAnalyticsAccountLinks call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListAnalyticsAccountLinks` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent organization, which owns this collection of Analytics account links. Format: organizations/{org_id}", +"location": "path", +"pattern": "^organizations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+parent}/analyticsAccountLinks", +"response": { +"$ref": "ListAnalyticsAccountLinksResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/marketingplatformadmin.analytics.read", +"https://www.googleapis.com/auth/marketingplatformadmin.analytics.update" +] +}, +"setPropertyServiceLevel": { +"description": "Updates the service level for an Analytics property.", +"flatPath": "v1alpha/organizations/{organizationsId}/analyticsAccountLinks/{analyticsAccountLinksId}:setPropertyServiceLevel", +"httpMethod": "POST", +"id": "marketingplatformadmin.organizations.analyticsAccountLinks.setPropertyServiceLevel", +"parameterOrder": [ +"analyticsAccountLink" +], +"parameters": { +"analyticsAccountLink": { +"description": "Required. The parent AnalyticsAccountLink scope where this property is in. Format: organizations/{org_id}/analyticsAccountLinks/{analytics_account_link_id}", +"location": "path", +"pattern": "^organizations/[^/]+/analyticsAccountLinks/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+analyticsAccountLink}:setPropertyServiceLevel", +"request": { +"$ref": "SetPropertyServiceLevelRequest" +}, +"response": { +"$ref": "SetPropertyServiceLevelResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/marketingplatformadmin.analytics.update" +] +} +} +} +} +} +}, +"revision": "20240708", +"rootUrl": "https://marketingplatformadmin.googleapis.com/", +"schemas": { +"AnalyticsAccountLink": { +"description": "A resource message representing the link between a Google Analytics account and a Google Marketing Platform organization.", +"id": "AnalyticsAccountLink", +"properties": { +"analyticsAccount": { +"description": "Required. Immutable. The resource name of the AnalyticsAdmin API account. The account ID will be used as the ID of this AnalyticsAccountLink resource, which will become the final component of the resource name. Format: analyticsadmin.googleapis.com/accounts/{account_id}", +"type": "string" +}, +"displayName": { +"description": "Output only. The human-readable name for the Analytics account.", +"readOnly": true, +"type": "string" +}, +"linkVerificationState": { +"description": "Output only. The verification state of the link between the Analytics account and the parent organization.", +"enum": [ +"LINK_VERIFICATION_STATE_UNSPECIFIED", +"LINK_VERIFICATION_STATE_VERIFIED", +"LINK_VERIFICATION_STATE_NOT_VERIFIED" +], +"enumDescriptions": [ +"The link state is unknown.", +"The link is established.", +"The link is requested, but hasn't been approved by the product account admin." +], +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Identifier. Resource name of this AnalyticsAccountLink. Note the resource ID is the same as the ID of the Analtyics account. Format: organizations/{org_id}/analyticsAccountLinks/{analytics_account_link_id} Example: \"organizations/xyz/analyticsAccountLinks/1234\"", +"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" +}, +"ListAnalyticsAccountLinksResponse": { +"description": "Response message for ListAnalyticsAccountLinks RPC.", +"id": "ListAnalyticsAccountLinksResponse", +"properties": { +"analyticsAccountLinks": { +"description": "Analytics account links in this organization.", +"items": { +"$ref": "AnalyticsAccountLink" +}, +"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" +}, +"Organization": { +"description": "A resource message representing a Google Marketing Platform organization.", +"id": "Organization", +"properties": { +"displayName": { +"description": "The human-readable name for the organization.", +"type": "string" +}, +"name": { +"description": "Identifier. The resource name of the GMP organization. Format: organizations/{org_id}", +"type": "string" +} +}, +"type": "object" +}, +"SetPropertyServiceLevelRequest": { +"description": "Request message for SetPropertyServiceLevel RPC.", +"id": "SetPropertyServiceLevelRequest", +"properties": { +"analyticsProperty": { +"description": "Required. The Analytics property to change the ServiceLevel setting. This field is the name of the Google Analytics Admin API property resource. Format: analyticsadmin.googleapis.com/properties/{property_id}", +"type": "string" +}, +"serviceLevel": { +"description": "Required. The service level to set for this property.", +"enum": [ +"ANALYTICS_SERVICE_LEVEL_UNSPECIFIED", +"ANALYTICS_SERVICE_LEVEL_STANDARD", +"ANALYTICS_SERVICE_LEVEL_360" +], +"enumDescriptions": [ +"Service level unspecified.", +"The standard version of Google Analytics.", +"The premium version of Google Analytics." +], +"type": "string" +} +}, +"type": "object" +}, +"SetPropertyServiceLevelResponse": { +"description": "Response message for SetPropertyServiceLevel RPC.", +"id": "SetPropertyServiceLevelResponse", +"properties": {}, +"type": "object" +} +}, +"servicePath": "", +"title": "Google Marketing Platform Admin 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/memcache.v1beta2.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/memcache.v1beta2.json new file mode 100644 index 0000000000000000000000000000000000000000..16e7fcaefc199e84437a0aa94e409cf9811e8388 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/memcache.v1beta2.json @@ -0,0 +1,2303 @@ +{ +"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://memcache.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Cloud Memorystore for Memcached", +"description": "Google Cloud Memorystore for Memcached API is used for creating and managing Memcached instances in GCP.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/memorystore/", +"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": "memcache:v1beta2", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://memcache.mtls.googleapis.com/", +"name": "memcache", +"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": "v1beta2/projects/{projectsId}/locations/{locationsId}", +"httpMethod": "GET", +"id": "memcache.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" +] +}, +"list": { +"description": "Lists information about the supported locations for this service.", +"flatPath": "v1beta2/projects/{projectsId}/locations", +"httpMethod": "GET", +"id": "memcache.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" +] +} +}, +"resources": { +"instances": { +"methods": { +"applyParameters": { +"description": "`ApplyParameters` restarts the set of specified nodes in order to update them to the current set of parameters for the Memcached Instance.", +"flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:applyParameters", +"httpMethod": "POST", +"id": "memcache.projects.locations.instances.applyParameters", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the Memcached instance for which parameter group updates should be applied.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+name}:applyParameters", +"request": { +"$ref": "ApplyParametersRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"applySoftwareUpdate": { +"description": "Updates software on the selected nodes of the Instance.", +"flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:applySoftwareUpdate", +"httpMethod": "POST", +"id": "memcache.projects.locations.instances.applySoftwareUpdate", +"parameterOrder": [ +"instance" +], +"parameters": { +"instance": { +"description": "Required. Resource name of the Memcached instance for which software update should be applied.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+instance}:applySoftwareUpdate", +"request": { +"$ref": "ApplySoftwareUpdateRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"create": { +"description": "Creates a new Instance in a given location.", +"flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/instances", +"httpMethod": "POST", +"id": "memcache.projects.locations.instances.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"instanceId": { +"description": "Required. The logical name of the Memcached instance in the user 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 user project / location. If any of the above are not met, the API raises an invalid argument error.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the instance location using the form: `projects/{project_id}/locations/{location_id}` where `location_id` refers to a GCP region", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+parent}/instances", +"request": { +"$ref": "Instance" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single Instance.", +"flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}", +"httpMethod": "DELETE", +"id": "memcache.projects.locations.instances.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Memcached instance resource name in the format: `projects/{project_id}/locations/{location_id}/instances/{instance_id}` where `location_id` refers to a GCP region", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single Instance.", +"flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}", +"httpMethod": "GET", +"id": "memcache.projects.locations.instances.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Memcached instance resource name in the format: `projects/{project_id}/locations/{location_id}/instances/{instance_id}` where `location_id` refers to a GCP region", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"response": { +"$ref": "Instance" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists Instances in a given location.", +"flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/instances", +"httpMethod": "GET", +"id": "memcache.projects.locations.instances.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "List filter. For example, exclude all Memcached instances with name as my-instance by specifying `\"name != my-instance\"`.", +"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. If not specified, a default value of 1000 will be used by the service. Regardless of the `page_size` value, the response may include a partial list and a caller should only rely on response's `next_page_token` to determine if there are more instances left to be queried.", +"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 resource name of the instance location using the form: `projects/{project_id}/locations/{location_id}` where `location_id` refers to a GCP region", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+parent}/instances", +"response": { +"$ref": "ListInstancesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates an existing Instance in a given project and location.", +"flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}", +"httpMethod": "PATCH", +"id": "memcache.projects.locations.instances.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Unique name of the resource in this scope including project and location using the form: `projects/{project_id}/locations/{location_id}/instances/{instance_id}` Note: Memcached instances are managed and addressed at the regional level so `location_id` here refers to a Google Cloud region; however, users may choose which zones Memcached nodes should be provisioned in within an instance. Refer to zones field for more details.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. Mask of fields to update. * `displayName`", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"request": { +"$ref": "Instance" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"rescheduleMaintenance": { +"description": "Performs the apply phase of the RescheduleMaintenance verb.", +"flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:rescheduleMaintenance", +"httpMethod": "POST", +"id": "memcache.projects.locations.instances.rescheduleMaintenance", +"parameterOrder": [ +"instance" +], +"parameters": { +"instance": { +"description": "Required. Memcache instance resource name using the form: `projects/{project_id}/locations/{location_id}/instances/{instance_id}` where `location_id` refers to a GCP region.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+instance}:rescheduleMaintenance", +"request": { +"$ref": "RescheduleMaintenanceRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"updateParameters": { +"description": "Updates the defined Memcached parameters for an existing instance. This method only stages the parameters, it must be followed by `ApplyParameters` to apply the parameters to nodes of the Memcached instance.", +"flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:updateParameters", +"httpMethod": "PATCH", +"id": "memcache.projects.locations.instances.updateParameters", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Resource name of the Memcached instance for which the parameters should be updated.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+name}:updateParameters", +"request": { +"$ref": "UpdateParametersRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"upgrade": { +"description": "Upgrades the Memcache instance to a newer memcached engine version specified in the request.", +"flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:upgrade", +"httpMethod": "POST", +"id": "memcache.projects.locations.instances.upgrade", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Memcache instance resource name using the form: `projects/{project}/locations/{location}/instances/{instance}` where `location_id` refers to a GCP region.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+name}:upgrade", +"request": { +"$ref": "GoogleCloudMemcacheV1beta2UpgradeInstanceRequest" +}, +"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": "v1beta2/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel", +"httpMethod": "POST", +"id": "memcache.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": "v1beta2/{+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": "v1beta2/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "DELETE", +"id": "memcache.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": "v1beta2/{+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": "v1beta2/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "memcache.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" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/operations", +"httpMethod": "GET", +"id": "memcache.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": "v1beta2/{+name}/operations", +"response": { +"$ref": "ListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +}, +"revision": "20241010", +"rootUrl": "https://memcache.googleapis.com/", +"schemas": { +"ApplyParametersRequest": { +"description": "Request for ApplyParameters.", +"id": "ApplyParametersRequest", +"properties": { +"applyAll": { +"description": "Whether to apply instance-level parameter group to all nodes. If set to true, users are restricted from specifying individual nodes, and `ApplyParameters` updates all nodes within the instance.", +"type": "boolean" +}, +"nodeIds": { +"description": "Nodes to which the instance-level parameter group is applied.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ApplySoftwareUpdateRequest": { +"description": "Request for ApplySoftwareUpdate.", +"id": "ApplySoftwareUpdateRequest", +"properties": { +"applyAll": { +"description": "Whether to apply the update to all nodes. If set to true, will explicitly restrict users from specifying any nodes, and apply software update to all nodes (where applicable) within the instance.", +"type": "boolean" +}, +"nodeIds": { +"description": "Nodes to which we should apply the update to. Note all the selected nodes are updated in parallel.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"AssetLocation": { +"description": "Provides the mapping of a cloud asset to a direct physical location or to a proxy that defines the location on its behalf.", +"id": "AssetLocation", +"properties": { +"ccfeRmsPath": { +"description": "Spanner path of the CCFE RMS database. It is only applicable for CCFE tenants that use CCFE RMS for storing resource metadata.", +"type": "string" +}, +"expected": { +"$ref": "IsolationExpectations", +"description": "Defines the customer expectation around ZI/ZS for this asset and ZI/ZS state of the region at the time of asset creation." +}, +"extraParameters": { +"description": "Defines extra parameters required for specific asset types.", +"items": { +"$ref": "ExtraParameter" +}, +"type": "array" +}, +"locationData": { +"description": "Contains all kinds of physical location definitions for this asset.", +"items": { +"$ref": "LocationData" +}, +"type": "array" +}, +"parentAsset": { +"description": "Defines parents assets if any in order to allow later generation of child_asset_location data via child assets.", +"items": { +"$ref": "CloudAsset" +}, +"type": "array" +} +}, +"type": "object" +}, +"BlobstoreLocation": { +"description": "Policy ID that identified data placement in Blobstore as per go/blobstore-user-guide#data-metadata-placement-and-failure-domains", +"id": "BlobstoreLocation", +"properties": { +"policyId": { +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"CancelOperationRequest": { +"description": "The request message for Operations.CancelOperation.", +"id": "CancelOperationRequest", +"properties": {}, +"type": "object" +}, +"CloudAsset": { +"id": "CloudAsset", +"properties": { +"assetName": { +"type": "string" +}, +"assetType": { +"type": "string" +} +}, +"type": "object" +}, +"CloudAssetComposition": { +"id": "CloudAssetComposition", +"properties": { +"childAsset": { +"items": { +"$ref": "CloudAsset" +}, +"type": "array" +} +}, +"type": "object" +}, +"DailyCycle": { +"description": "Time window specified for daily operations.", +"id": "DailyCycle", +"properties": { +"duration": { +"description": "Output only. Duration of the time window, set by service producer.", +"format": "google-duration", +"type": "string" +}, +"startTime": { +"$ref": "TimeOfDay", +"description": "Time within the day to start the operations." +} +}, +"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" +}, +"DenyMaintenancePeriod": { +"description": "DenyMaintenancePeriod definition. Maintenance is forbidden within the deny period. The start_date must be less than the end_date.", +"id": "DenyMaintenancePeriod", +"properties": { +"endDate": { +"$ref": "Date", +"description": "Deny period end date. This can be: * A full date, with non-zero year, month and day values. * A month and day value, with a zero year. Allows recurring deny periods each year. Date matching this period will have to be before the end." +}, +"startDate": { +"$ref": "Date", +"description": "Deny period start date. This can be: * A full date, with non-zero year, month and day values. * A month and day value, with a zero year. Allows recurring deny periods each year. Date matching this period will have to be the same or after the start." +}, +"time": { +"$ref": "TimeOfDay", +"description": "Time in UTC when the Blackout period starts on start_date and ends on end_date. This can be: * Full time. * All zeros for 00:00:00 UTC" +} +}, +"type": "object" +}, +"DirectLocationAssignment": { +"id": "DirectLocationAssignment", +"properties": { +"location": { +"items": { +"$ref": "LocationAssignment" +}, +"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" +}, +"ExtraParameter": { +"description": "Defines parameters that should only be used for specific asset types.", +"id": "ExtraParameter", +"properties": { +"regionalMigDistributionPolicy": { +"$ref": "RegionalMigDistributionPolicy", +"description": "Details about zones used by regional compute.googleapis.com/InstanceGroupManager to create instances." +} +}, +"type": "object" +}, +"GoogleCloudMemcacheV1beta2LocationMetadata": { +"description": "Metadata for the given google.cloud.location.Location.", +"id": "GoogleCloudMemcacheV1beta2LocationMetadata", +"properties": { +"availableZones": { +"additionalProperties": { +"$ref": "GoogleCloudMemcacheV1beta2ZoneMetadata" +}, +"description": "Output only. The set of available zones in the location. The map is keyed by the lowercase ID of each zone, as defined by GCE. These keys can be specified in the `zones` field when creating a Memcached instance.", +"readOnly": true, +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudMemcacheV1beta2MaintenancePolicy": { +"description": "Maintenance policy per instance.", +"id": "GoogleCloudMemcacheV1beta2MaintenancePolicy", +"properties": { +"createTime": { +"description": "Output only. The time when the policy was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Description of what this policy is for. Create/Update methods return INVALID_ARGUMENT if the length is greater than 512.", +"type": "string" +}, +"updateTime": { +"description": "Output only. The time when the policy was updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"weeklyMaintenanceWindow": { +"description": "Required. Maintenance window that is applied to resources covered by this policy. Minimum 1. For the current version, the maximum number of weekly_maintenance_windows is expected to be one.", +"items": { +"$ref": "WeeklyMaintenanceWindow" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudMemcacheV1beta2OperationMetadata": { +"description": "Represents the metadata of a long-running operation.", +"id": "GoogleCloudMemcacheV1beta2OperationMetadata", +"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 successfully been cancelled have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", +"readOnly": true, +"type": "boolean" +}, +"createTime": { +"description": "Output only. Time when the operation was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. Time when 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" +}, +"GoogleCloudMemcacheV1beta2UpgradeInstanceRequest": { +"description": "Request for UpgradeInstance.", +"id": "GoogleCloudMemcacheV1beta2UpgradeInstanceRequest", +"properties": { +"memcacheVersion": { +"description": "Required. Specifies the target version of memcached engine to upgrade to.", +"enum": [ +"MEMCACHE_VERSION_UNSPECIFIED", +"MEMCACHE_1_5", +"MEMCACHE_1_6_15" +], +"enumDescriptions": [ +"Memcache version is not specified by customer", +"Memcached 1.5 version.", +"Memcached 1.6.15 version." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudMemcacheV1beta2ZoneMetadata": { +"id": "GoogleCloudMemcacheV1beta2ZoneMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudSaasacceleratorManagementProvidersV1Instance": { +"description": "Instance represents the interface for SLM services to actuate the state of control plane resources. Example Instance in JSON, where consumer-project-number=123456, producer-project-id=cloud-sql: ```json Instance: { \"name\": \"projects/123456/locations/us-east1/instances/prod-instance\", \"create_time\": { \"seconds\": 1526406431, }, \"labels\": { \"env\": \"prod\", \"foo\": \"bar\" }, \"state\": READY, \"software_versions\": { \"software_update\": \"cloud-sql-09-28-2018\", }, \"maintenance_policy_names\": { \"UpdatePolicy\": \"projects/123456/locations/us-east1/maintenancePolicies/prod-update-policy\", } \"tenant_project_id\": \"cloud-sql-test-tenant\", \"producer_metadata\": { \"cloud-sql-tier\": \"basic\", \"cloud-sql-instance-size\": \"1G\", }, \"provisioned_resources\": [ { \"resource-type\": \"compute-instance\", \"resource-url\": \"https://www.googleapis.com/compute/v1/projects/cloud-sql/zones/us-east1-b/instances/vm-1\", } ], \"maintenance_schedules\": { \"csa_rollout\": { \"start_time\": { \"seconds\": 1526406431, }, \"end_time\": { \"seconds\": 1535406431, }, }, \"ncsa_rollout\": { \"start_time\": { \"seconds\": 1526406431, }, \"end_time\": { \"seconds\": 1535406431, }, } }, \"consumer_defined_name\": \"my-sql-instance1\", } ``` LINT.IfChange", +"id": "GoogleCloudSaasacceleratorManagementProvidersV1Instance", +"properties": { +"consumerDefinedName": { +"description": "consumer_defined_name is the name of the instance set by the service consumers. Generally this is different from the `name` field which reperesents the system-assigned id of the instance which the service consumers do not recognize. This is a required field for tenants onboarding to Maintenance Window notifications (go/slm-rollout-maintenance-policies#prerequisites).", +"type": "string" +}, +"createTime": { +"description": "Output only. Timestamp when the resource was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"instanceType": { +"description": "Optional. The instance_type of this instance of format: projects/{project_number}/locations/{location_id}/instanceTypes/{instance_type_id}. Instance Type represents a high-level tier or SKU of the service that this instance belong to. When enabled(eg: Maintenance Rollout), Rollout uses 'instance_type' along with 'software_versions' to determine whether instance needs an update or not.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Resource labels to represent user provided metadata. Each label is a key-value pair, where both the key and the value are arbitrary strings provided by the user.", +"type": "object" +}, +"maintenancePolicyNames": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. The MaintenancePolicies that have been attached to the instance. The key must be of the type name of the oneof policy name defined in MaintenancePolicy, and the referenced policy must define the same policy type. For details, please refer to go/mr-user-guide. Should not be set if maintenance_settings.maintenance_policies is set.", +"type": "object" +}, +"maintenanceSchedules": { +"additionalProperties": { +"$ref": "GoogleCloudSaasacceleratorManagementProvidersV1MaintenanceSchedule" +}, +"description": "The MaintenanceSchedule contains the scheduling information of published maintenance schedule with same key as software_versions.", +"type": "object" +}, +"maintenanceSettings": { +"$ref": "GoogleCloudSaasacceleratorManagementProvidersV1MaintenanceSettings", +"description": "Optional. The MaintenanceSettings associated with instance." +}, +"name": { +"description": "Unique name of the resource. It uses the form: `projects/{project_number}/locations/{location_id}/instances/{instance_id}` Note: This name is passed, stored and logged across the rollout system. So use of consumer project_id or any other consumer PII in the name is strongly discouraged for wipeout (go/wipeout) compliance. See go/elysium/project_ids#storage-guidance for more details.", +"type": "string" +}, +"notificationParameters": { +"additionalProperties": { +"$ref": "GoogleCloudSaasacceleratorManagementProvidersV1NotificationParameter" +}, +"description": "Optional. notification_parameter are information that service producers may like to include that is not relevant to Rollout. This parameter will only be passed to Gamma and Cloud Logging for notification/logging purpose.", +"type": "object" +}, +"producerMetadata": { +"additionalProperties": { +"type": "string" +}, +"description": "Output only. Custom string attributes used primarily to expose producer-specific information in monitoring dashboards. See go/get-instance-metadata.", +"readOnly": true, +"type": "object" +}, +"provisionedResources": { +"description": "Output only. The list of data plane resources provisioned for this instance, e.g. compute VMs. See go/get-instance-metadata.", +"items": { +"$ref": "GoogleCloudSaasacceleratorManagementProvidersV1ProvisionedResource" +}, +"readOnly": true, +"type": "array" +}, +"slmInstanceTemplate": { +"description": "Link to the SLM instance template. Only populated when updating SLM instances via SSA's Actuation service adaptor. Service producers with custom control plane (e.g. Cloud SQL) doesn't need to populate this field. Instead they should use software_versions.", +"type": "string" +}, +"sloMetadata": { +"$ref": "GoogleCloudSaasacceleratorManagementProvidersV1SloMetadata", +"description": "Output only. SLO metadata for instance classification in the Standardized dataplane SLO platform. See go/cloud-ssa-standard-slo for feature description.", +"readOnly": true +}, +"softwareVersions": { +"additionalProperties": { +"type": "string" +}, +"description": "Software versions that are used to deploy this instance. This can be mutated by rollout services.", +"type": "object" +}, +"state": { +"description": "Output only. Current lifecycle state of the resource (e.g. if it's being created or ready to use).", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"READY", +"UPDATING", +"REPAIRING", +"DELETING", +"ERROR" +], +"enumDescriptions": [ +"Unspecified state.", +"Instance is being created.", +"Instance has been created and is ready to use.", +"Instance is being updated.", +"Instance is unheathy and under repair.", +"Instance is being deleted.", +"Instance encountered an error and is in indeterministic state." +], +"readOnly": true, +"type": "string" +}, +"tenantProjectId": { +"description": "Output only. ID of the associated GCP tenant project. See go/get-instance-metadata.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. Timestamp when the resource was last modified.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSaasacceleratorManagementProvidersV1MaintenanceSchedule": { +"description": "Maintenance schedule which is exposed to customer and potentially end user, indicating published upcoming future maintenance schedule", +"id": "GoogleCloudSaasacceleratorManagementProvidersV1MaintenanceSchedule", +"properties": { +"canReschedule": { +"deprecated": true, +"description": "This field is deprecated, and will be always set to true since reschedule can happen multiple times now. This field should not be removed until all service producers remove this for their customers.", +"type": "boolean" +}, +"endTime": { +"description": "The scheduled end time for the maintenance.", +"format": "google-datetime", +"type": "string" +}, +"rolloutManagementPolicy": { +"description": "The rollout management policy this maintenance schedule is associated with. When doing reschedule update request, the reschedule should be against this given policy.", +"type": "string" +}, +"scheduleDeadlineTime": { +"description": "schedule_deadline_time is the time deadline any schedule start time cannot go beyond, including reschedule. It's normally the initial schedule start time plus maintenance window length (1 day or 1 week). Maintenance cannot be scheduled to start beyond this deadline.", +"format": "google-datetime", +"type": "string" +}, +"startTime": { +"description": "The scheduled start time for the maintenance.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSaasacceleratorManagementProvidersV1MaintenanceSettings": { +"description": "Maintenance settings associated with instance. Allows service producers and end users to assign settings that controls maintenance on this instance.", +"id": "GoogleCloudSaasacceleratorManagementProvidersV1MaintenanceSettings", +"properties": { +"exclude": { +"description": "Optional. Exclude instance from maintenance. When true, rollout service will not attempt maintenance on the instance. Rollout service will include the instance in reported rollout progress as not attempted.", +"type": "boolean" +}, +"isRollback": { +"description": "Optional. If the update call is triggered from rollback, set the value as true.", +"type": "boolean" +}, +"maintenancePolicies": { +"additionalProperties": { +"$ref": "MaintenancePolicy" +}, +"description": "Optional. The MaintenancePolicies that have been attached to the instance. The key must be of the type name of the oneof policy name defined in MaintenancePolicy, and the embedded policy must define the same policy type. For details, please refer to go/mr-user-guide. Should not be set if maintenance_policy_names is set. If only the name is needed, then only populate MaintenancePolicy.name.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudSaasacceleratorManagementProvidersV1NodeSloMetadata": { +"description": "Node information for custom per-node SLO implementations. SSA does not support per-node SLO, but producers can populate per-node information in SloMetadata for custom precomputations. SSA Eligibility Exporter will emit per-node metric based on this information.", +"id": "GoogleCloudSaasacceleratorManagementProvidersV1NodeSloMetadata", +"properties": { +"location": { +"description": "The location of the node, if different from instance location.", +"type": "string" +}, +"nodeId": { +"description": "The id of the node. This should be equal to SaasInstanceNode.node_id.", +"type": "string" +}, +"perSliEligibility": { +"$ref": "GoogleCloudSaasacceleratorManagementProvidersV1PerSliSloEligibility", +"description": "If present, this will override eligibility for the node coming from instance or exclusions for specified SLIs." +} +}, +"type": "object" +}, +"GoogleCloudSaasacceleratorManagementProvidersV1NotificationParameter": { +"description": "Contains notification related data.", +"id": "GoogleCloudSaasacceleratorManagementProvidersV1NotificationParameter", +"properties": { +"values": { +"description": "Optional. Array of string values. e.g. instance's replica information.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudSaasacceleratorManagementProvidersV1PerSliSloEligibility": { +"description": "PerSliSloEligibility is a mapping from an SLI name to eligibility.", +"id": "GoogleCloudSaasacceleratorManagementProvidersV1PerSliSloEligibility", +"properties": { +"eligibilities": { +"additionalProperties": { +"$ref": "GoogleCloudSaasacceleratorManagementProvidersV1SloEligibility" +}, +"description": "An entry in the eligibilities map specifies an eligibility for a particular SLI for the given instance. The SLI key in the name must be a valid SLI name specified in the Eligibility Exporter binary flags otherwise an error will be emitted by Eligibility Exporter and the oncaller will be alerted. If an SLI has been defined in the binary flags but the eligibilities map does not contain it, the corresponding SLI time series will not be emitted by the Eligibility Exporter. This ensures a smooth rollout and compatibility between the data produced by different versions of the Eligibility Exporters. If eligibilities map contains a key for an SLI which has not been declared in the binary flags, there will be an error message emitted in the Eligibility Exporter log and the metric for the SLI in question will not be emitted.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudSaasacceleratorManagementProvidersV1ProvisionedResource": { +"description": "Describes provisioned dataplane resources.", +"id": "GoogleCloudSaasacceleratorManagementProvidersV1ProvisionedResource", +"properties": { +"resourceType": { +"description": "Type of the resource. This can be either a GCP resource or a custom one (e.g. another cloud provider's VM). For GCP compute resources use singular form of the names listed in GCP compute API documentation (https://cloud.google.com/compute/docs/reference/rest/v1/), prefixed with 'compute-', for example: 'compute-instance', 'compute-disk', 'compute-autoscaler'.", +"type": "string" +}, +"resourceUrl": { +"description": "URL identifying the resource, e.g. \"https://www.googleapis.com/compute/v1/projects/...)\".", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSaasacceleratorManagementProvidersV1SloEligibility": { +"description": "SloEligibility is a tuple containing eligibility value: true if an instance is eligible for SLO calculation or false if it should be excluded from all SLO-related calculations along with a user-defined reason.", +"id": "GoogleCloudSaasacceleratorManagementProvidersV1SloEligibility", +"properties": { +"eligible": { +"description": "Whether an instance is eligible or ineligible.", +"type": "boolean" +}, +"reason": { +"description": "User-defined reason for the current value of instance eligibility. Usually, this can be directly mapped to the internal state. An empty reason is allowed.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudSaasacceleratorManagementProvidersV1SloMetadata": { +"description": "SloMetadata contains resources required for proper SLO classification of the instance.", +"id": "GoogleCloudSaasacceleratorManagementProvidersV1SloMetadata", +"properties": { +"nodes": { +"description": "Optional. List of nodes. Some producers need to use per-node metadata to calculate SLO. This field allows such producers to publish per-node SLO meta data, which will be consumed by SSA Eligibility Exporter and published in the form of per node metric to Monarch.", +"items": { +"$ref": "GoogleCloudSaasacceleratorManagementProvidersV1NodeSloMetadata" +}, +"type": "array" +}, +"perSliEligibility": { +"$ref": "GoogleCloudSaasacceleratorManagementProvidersV1PerSliSloEligibility", +"description": "Optional. Multiple per-instance SLI eligibilities which apply for individual SLIs." +}, +"tier": { +"description": "Name of the SLO tier the Instance belongs to. This name will be expected to match the tiers specified in the service SLO configuration. Field is mandatory and must not be empty.", +"type": "string" +} +}, +"type": "object" +}, +"Instance": { +"description": "A Memorystore for Memcached instance", +"id": "Instance", +"properties": { +"authorizedNetwork": { +"description": "The full name of the Google Compute Engine [network](https://cloud.google.com/vpc/docs/vpc) to which the instance is connected. If left unspecified, the `default` network will be used.", +"type": "string" +}, +"createTime": { +"description": "Output only. The time the instance was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"discoveryEndpoint": { +"description": "Output only. Endpoint for the Discovery API.", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "User provided name for the instance, which is only used for display purposes. Cannot be more than 80 characters.", +"type": "string" +}, +"instanceMessages": { +"description": "List of messages that describe the current state of the Memcached instance.", +"items": { +"$ref": "InstanceMessage" +}, +"type": "array" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Resource labels to represent user-provided metadata. Refer to cloud documentation on labels for more details. https://cloud.google.com/compute/docs/labeling-resources", +"type": "object" +}, +"maintenancePolicy": { +"$ref": "GoogleCloudMemcacheV1beta2MaintenancePolicy", +"description": "The maintenance policy for the instance. If not provided, the maintenance event will be performed based on Memorystore internal rollout schedule." +}, +"maintenanceSchedule": { +"$ref": "MaintenanceSchedule", +"description": "Output only. Published maintenance schedule.", +"readOnly": true +}, +"memcacheFullVersion": { +"description": "Output only. The full version of memcached server running on this instance. System automatically determines the full memcached version for an instance based on the input MemcacheVersion. The full version format will be \"memcached-1.5.16\".", +"readOnly": true, +"type": "string" +}, +"memcacheNodes": { +"description": "Output only. List of Memcached nodes. Refer to Node message for more details.", +"items": { +"$ref": "Node" +}, +"readOnly": true, +"type": "array" +}, +"memcacheVersion": { +"description": "The major version of Memcached software. If not provided, latest supported version will be used. Currently the latest supported major version is `MEMCACHE_1_5`. The minor version will be automatically determined by our system based on the latest supported minor version.", +"enum": [ +"MEMCACHE_VERSION_UNSPECIFIED", +"MEMCACHE_1_5", +"MEMCACHE_1_6_15" +], +"enumDescriptions": [ +"Memcache version is not specified by customer", +"Memcached 1.5 version.", +"Memcached 1.6.15 version." +], +"type": "string" +}, +"name": { +"description": "Required. Unique name of the resource in this scope including project and location using the form: `projects/{project_id}/locations/{location_id}/instances/{instance_id}` Note: Memcached instances are managed and addressed at the regional level so `location_id` here refers to a Google Cloud region; however, users may choose which zones Memcached nodes should be provisioned in within an instance. Refer to zones field for more details.", +"type": "string" +}, +"nodeConfig": { +"$ref": "NodeConfig", +"description": "Required. Configuration for Memcached nodes." +}, +"nodeCount": { +"description": "Required. Number of nodes in the Memcached instance.", +"format": "int32", +"type": "integer" +}, +"parameters": { +"$ref": "MemcacheParameters", +"description": "User defined parameters to apply to the memcached process on each node." +}, +"reservedIpRangeId": { +"description": "Optional. Contains the id of allocated IP address ranges associated with the private service access connection for example, \"test-default\" associated with IP range 10.0.0.0/29.", +"items": { +"type": "string" +}, +"type": "array" +}, +"satisfiesPzi": { +"description": "Optional. Output only. Reserved for future use.", +"readOnly": true, +"type": "boolean" +}, +"satisfiesPzs": { +"description": "Optional. Output only. Reserved for future use.", +"readOnly": true, +"type": "boolean" +}, +"state": { +"description": "Output only. The state of this Memcached instance.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"READY", +"UPDATING", +"DELETING", +"PERFORMING_MAINTENANCE", +"MEMCACHE_VERSION_UPGRADING" +], +"enumDescriptions": [ +"State not set.", +"Memcached instance is being created.", +"Memcached instance has been created and ready to be used.", +"Memcached instance is updating configuration such as maintenance policy and schedule.", +"Memcached instance is being deleted.", +"Memcached instance is going through maintenance, e.g. data plane rollout.", +"Memcached instance is undergoing memcached engine version upgrade." +], +"readOnly": true, +"type": "string" +}, +"updateAvailable": { +"description": "Output only. Returns true if there is an update waiting to be applied", +"readOnly": true, +"type": "boolean" +}, +"updateTime": { +"description": "Output only. The time the instance was updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"zones": { +"description": "Zones in which Memcached nodes should be provisioned. Memcached nodes will be equally distributed across these zones. If not provided, the service will by default create nodes in all zones in the region for the instance.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"InstanceMessage": { +"id": "InstanceMessage", +"properties": { +"code": { +"description": "A code that correspond to one type of user-facing message.", +"enum": [ +"CODE_UNSPECIFIED", +"ZONE_DISTRIBUTION_UNBALANCED" +], +"enumDescriptions": [ +"Message Code not set.", +"Memcached nodes are distributed unevenly." +], +"type": "string" +}, +"message": { +"description": "Message on memcached instance which will be exposed to users.", +"type": "string" +} +}, +"type": "object" +}, +"IsolationExpectations": { +"id": "IsolationExpectations", +"properties": { +"requirementOverride": { +"$ref": "RequirementOverride", +"description": "Explicit overrides for ZI and ZS requirements to be used for resources that should be excluded from ZI/ZS verification logic." +}, +"ziOrgPolicy": { +"enum": [ +"ZI_UNSPECIFIED", +"ZI_UNKNOWN", +"ZI_NOT_REQUIRED", +"ZI_PREFERRED", +"ZI_REQUIRED" +], +"enumDescriptions": [ +"", +"To be used if tracking is not available", +"", +"", +"" +], +"type": "string" +}, +"ziRegionPolicy": { +"enum": [ +"ZI_REGION_POLICY_UNSPECIFIED", +"ZI_REGION_POLICY_UNKNOWN", +"ZI_REGION_POLICY_NOT_SET", +"ZI_REGION_POLICY_FAIL_OPEN", +"ZI_REGION_POLICY_FAIL_CLOSED" +], +"enumDescriptions": [ +"", +"To be used if tracking is not available", +"", +"", +"" +], +"type": "string" +}, +"ziRegionState": { +"enum": [ +"ZI_REGION_UNSPECIFIED", +"ZI_REGION_UNKNOWN", +"ZI_REGION_NOT_ENABLED", +"ZI_REGION_ENABLED" +], +"enumDescriptions": [ +"", +"To be used if tracking is not available", +"", +"" +], +"type": "string" +}, +"zoneIsolation": { +"deprecated": true, +"description": "Deprecated: use zi_org_policy, zi_region_policy and zi_region_state instead for setting ZI expectations as per go/zicy-publish-physical-location.", +"enum": [ +"ZI_UNSPECIFIED", +"ZI_UNKNOWN", +"ZI_NOT_REQUIRED", +"ZI_PREFERRED", +"ZI_REQUIRED" +], +"enumDescriptions": [ +"", +"To be used if tracking is not available", +"", +"", +"" +], +"type": "string" +}, +"zoneSeparation": { +"deprecated": true, +"description": "Deprecated: use zs_org_policy, and zs_region_stateinstead for setting Zs expectations as per go/zicy-publish-physical-location.", +"enum": [ +"ZS_UNSPECIFIED", +"ZS_UNKNOWN", +"ZS_NOT_REQUIRED", +"ZS_REQUIRED" +], +"enumDescriptions": [ +"", +"To be used if tracking is not available", +"", +"" +], +"type": "string" +}, +"zsOrgPolicy": { +"enum": [ +"ZS_UNSPECIFIED", +"ZS_UNKNOWN", +"ZS_NOT_REQUIRED", +"ZS_REQUIRED" +], +"enumDescriptions": [ +"", +"To be used if tracking is not available", +"", +"" +], +"type": "string" +}, +"zsRegionState": { +"enum": [ +"ZS_REGION_UNSPECIFIED", +"ZS_REGION_UNKNOWN", +"ZS_REGION_NOT_ENABLED", +"ZS_REGION_ENABLED" +], +"enumDescriptions": [ +"", +"To be used if tracking of the asset ZS-bit is not available", +"", +"" +], +"type": "string" +} +}, +"type": "object" +}, +"ListInstancesResponse": { +"description": "Response for ListInstances.", +"id": "ListInstancesResponse", +"properties": { +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +}, +"resources": { +"description": "A list of Memcached instances in the project in the specified location, or across all locations. If the `location_id` in the parent field of the request is \"-\", all regions available to the project are queried, and the results aggregated.", +"items": { +"$ref": "Instance" +}, +"type": "array" +}, +"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" +}, +"LocationAssignment": { +"id": "LocationAssignment", +"properties": { +"location": { +"type": "string" +}, +"locationType": { +"enum": [ +"UNSPECIFIED", +"CLUSTER", +"POP", +"CLOUD_ZONE", +"CLOUD_REGION", +"MULTI_REGION_GEO", +"MULTI_REGION_JURISDICTION", +"GLOBAL", +"OTHER" +], +"enumDescriptions": [ +"", +"1-10: Physical failure domains.", +"", +"11-20: Logical failure domains.", +"", +"", +"", +"", +"" +], +"type": "string" +} +}, +"type": "object" +}, +"LocationData": { +"id": "LocationData", +"properties": { +"blobstoreLocation": { +"$ref": "BlobstoreLocation" +}, +"childAssetLocation": { +"$ref": "CloudAssetComposition" +}, +"directLocation": { +"$ref": "DirectLocationAssignment" +}, +"gcpProjectProxy": { +"$ref": "TenantProjectProxy" +}, +"placerLocation": { +"$ref": "PlacerLocation" +}, +"spannerLocation": { +"$ref": "SpannerLocation" +} +}, +"type": "object" +}, +"LocationMetadata": { +"description": "Metadata for the given google.cloud.location.Location.", +"id": "LocationMetadata", +"properties": { +"availableZones": { +"additionalProperties": { +"$ref": "ZoneMetadata" +}, +"description": "Output only. The set of available zones in the location. The map is keyed by the lowercase ID of each zone, as defined by GCE. These keys can be specified in the `zones` field when creating a Memcached instance.", +"readOnly": true, +"type": "object" +} +}, +"type": "object" +}, +"MaintenancePolicy": { +"description": "Defines policies to service maintenance events.", +"id": "MaintenancePolicy", +"properties": { +"createTime": { +"description": "Output only. The time when the resource was created.", +"format": "google-datetime", +"type": "string" +}, +"description": { +"description": "Optional. Description of what this policy is for. Create/Update methods return INVALID_ARGUMENT if the length is greater than 512.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Resource labels to represent user provided metadata. Each label is a key-value pair, where both the key and the value are arbitrary strings provided by the user.", +"type": "object" +}, +"name": { +"description": "Required. MaintenancePolicy name using the form: `projects/{project_id}/locations/{location_id}/maintenancePolicies/{maintenance_policy_id}` where {project_id} refers to a GCP consumer project ID, {location_id} refers to a GCP region/zone, {maintenance_policy_id} must be 1-63 characters long and match the regular expression `[a-z0-9]([-a-z0-9]*[a-z0-9])?`.", +"type": "string" +}, +"state": { +"description": "Optional. The state of the policy.", +"enum": [ +"STATE_UNSPECIFIED", +"READY", +"DELETING" +], +"enumDescriptions": [ +"Unspecified state.", +"Resource is ready to be used.", +"Resource is being deleted. It can no longer be attached to instances." +], +"type": "string" +}, +"updatePolicy": { +"$ref": "UpdatePolicy", +"description": "Maintenance policy applicable to instance update." +}, +"updateTime": { +"description": "Output only. The time when the resource was updated.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"MaintenanceSchedule": { +"description": "Upcoming maintenance schedule.", +"id": "MaintenanceSchedule", +"properties": { +"endTime": { +"description": "Output only. The end time of any upcoming scheduled maintenance for this instance.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"scheduleDeadlineTime": { +"description": "Output only. The deadline that the maintenance schedule start time can not go beyond, including reschedule.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"startTime": { +"description": "Output only. The start time of any upcoming scheduled maintenance for this instance.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"MaintenanceWindow": { +"description": "MaintenanceWindow definition.", +"id": "MaintenanceWindow", +"properties": { +"dailyCycle": { +"$ref": "DailyCycle", +"description": "Daily cycle." +}, +"weeklyCycle": { +"$ref": "WeeklyCycle", +"description": "Weekly cycle." +} +}, +"type": "object" +}, +"MemcacheParameters": { +"id": "MemcacheParameters", +"properties": { +"id": { +"description": "Output only. The unique ID associated with this set of parameters. Users can use this id to determine if the parameters associated with the instance differ from the parameters associated with the nodes. A discrepancy between parameter ids can inform users that they may need to take action to apply parameters on nodes.", +"readOnly": true, +"type": "string" +}, +"params": { +"additionalProperties": { +"type": "string" +}, +"description": "User defined set of parameters to use in the memcached process.", +"type": "object" +} +}, +"type": "object" +}, +"Node": { +"id": "Node", +"properties": { +"host": { +"description": "Output only. Hostname or IP address of the Memcached node used by the clients to connect to the Memcached server on this node.", +"readOnly": true, +"type": "string" +}, +"memcacheFullVersion": { +"description": "Output only. The full version of memcached server running on this node. e.g. - memcached-1.5.16", +"readOnly": true, +"type": "string" +}, +"memcacheVersion": { +"description": "Output only. Major version of memcached server running on this node, e.g. MEMCACHE_1_5", +"enum": [ +"MEMCACHE_VERSION_UNSPECIFIED", +"MEMCACHE_1_5", +"MEMCACHE_1_6_15" +], +"enumDescriptions": [ +"Memcache version is not specified by customer", +"Memcached 1.5 version.", +"Memcached 1.6.15 version." +], +"readOnly": true, +"type": "string" +}, +"nodeId": { +"description": "Output only. Identifier of the Memcached node. The node id does not include project or location like the Memcached instance name.", +"readOnly": true, +"type": "string" +}, +"parameters": { +"$ref": "MemcacheParameters", +"description": "User defined parameters currently applied to the node." +}, +"port": { +"description": "Output only. The port number of the Memcached server on this node.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"state": { +"description": "Output only. Current state of the Memcached node.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"READY", +"DELETING", +"UPDATING" +], +"enumDescriptions": [ +"Node state is not set.", +"Node is being created.", +"Node has been created and ready to be used.", +"Node is being deleted.", +"Node is being updated." +], +"readOnly": true, +"type": "string" +}, +"updateAvailable": { +"description": "Output only. Returns true if there is an update waiting to be applied", +"readOnly": true, +"type": "boolean" +}, +"zone": { +"description": "Output only. Location (GCP Zone) for the Memcached node.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"NodeConfig": { +"description": "Configuration for a Memcached Node.", +"id": "NodeConfig", +"properties": { +"cpuCount": { +"description": "Required. Number of cpus per Memcached node.", +"format": "int32", +"type": "integer" +}, +"memorySizeMb": { +"description": "Required. Memory size in MiB for each Memcached node.", +"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" +}, +"OperationMetadata": { +"description": "Represents the metadata of a 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 successfully been cancelled have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", +"readOnly": true, +"type": "boolean" +}, +"createTime": { +"description": "Output only. Time when the operation was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. Time when 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" +}, +"PlacerLocation": { +"description": "Message describing that the location of the customer resource is tied to placer allocations", +"id": "PlacerLocation", +"properties": { +"placerConfig": { +"description": "Directory with a config related to it in placer (e.g. \"/placer/prod/home/my-root/my-dir\")", +"type": "string" +} +}, +"type": "object" +}, +"RegionalMigDistributionPolicy": { +"description": "To be used for specifying the intended distribution of regional compute.googleapis.com/InstanceGroupManager instances", +"id": "RegionalMigDistributionPolicy", +"properties": { +"targetShape": { +"description": "The shape in which the group converges around distribution of resources. Instance of proto2 enum", +"format": "int32", +"type": "integer" +}, +"zones": { +"description": "Cloud zones used by regional MIG to create instances.", +"items": { +"$ref": "ZoneConfiguration" +}, +"type": "array" +} +}, +"type": "object" +}, +"RequirementOverride": { +"id": "RequirementOverride", +"properties": { +"ziOverride": { +"enum": [ +"ZI_UNSPECIFIED", +"ZI_UNKNOWN", +"ZI_NOT_REQUIRED", +"ZI_PREFERRED", +"ZI_REQUIRED" +], +"enumDescriptions": [ +"", +"To be used if tracking is not available", +"", +"", +"" +], +"type": "string" +}, +"zsOverride": { +"enum": [ +"ZS_UNSPECIFIED", +"ZS_UNKNOWN", +"ZS_NOT_REQUIRED", +"ZS_REQUIRED" +], +"enumDescriptions": [ +"", +"To be used if tracking is not available", +"", +"" +], +"type": "string" +} +}, +"type": "object" +}, +"RescheduleMaintenanceRequest": { +"description": "Request for RescheduleMaintenance.", +"id": "RescheduleMaintenanceRequest", +"properties": { +"rescheduleType": { +"description": "Required. If reschedule type is SPECIFIC_TIME, must set up schedule_time as well.", +"enum": [ +"RESCHEDULE_TYPE_UNSPECIFIED", +"IMMEDIATE", +"NEXT_AVAILABLE_WINDOW", +"SPECIFIC_TIME" +], +"enumDescriptions": [ +"Not set.", +"If the user wants to schedule the maintenance to happen now.", +"If the user wants to use the existing maintenance policy to find the next available window.", +"If the user wants to reschedule the maintenance to a specific time." +], +"type": "string" +}, +"scheduleTime": { +"description": "Timestamp when the maintenance shall be rescheduled to if reschedule_type=SPECIFIC_TIME, in RFC 3339 format, for example `2012-11-15T16:19:00.094Z`.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"Schedule": { +"description": "Configure the schedule.", +"id": "Schedule", +"properties": { +"day": { +"description": "Allows to define schedule that runs specified 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" +}, +"duration": { +"description": "Output only. Duration of the time window, set by service producer.", +"format": "google-duration", +"type": "string" +}, +"startTime": { +"$ref": "TimeOfDay", +"description": "Time within the window to start the operations." +} +}, +"type": "object" +}, +"SpannerLocation": { +"id": "SpannerLocation", +"properties": { +"backupName": { +"description": "Set of backups used by the resource with name in the same format as what is available at http://table/spanner_automon.backup_metadata", +"items": { +"type": "string" +}, +"type": "array" +}, +"dbName": { +"description": "Set of databases used by the resource in format /span//", +"items": { +"type": "string" +}, +"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" +}, +"TenantProjectProxy": { +"id": "TenantProjectProxy", +"properties": { +"projectNumbers": { +"items": { +"type": "string" +}, +"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" +}, +"UpdateParametersRequest": { +"description": "Request for UpdateParameters.", +"id": "UpdateParametersRequest", +"properties": { +"parameters": { +"$ref": "MemcacheParameters", +"description": "The parameters to apply to the instance." +}, +"updateMask": { +"description": "Required. Mask of fields to update.", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"UpdatePolicy": { +"description": "Maintenance policy applicable to instance updates.", +"id": "UpdatePolicy", +"properties": { +"channel": { +"description": "Optional. Relative scheduling channel applied to resource.", +"enum": [ +"UPDATE_CHANNEL_UNSPECIFIED", +"EARLIER", +"LATER", +"WEEK1", +"WEEK2", +"WEEK5" +], +"enumDescriptions": [ +"Unspecified channel.", +"Early channel within a customer project.", +"Later channel within a customer project.", +"! ! The follow channels can ONLY be used if you adopt the new MW system! ! ! NOTE: all WEEK channels are assumed to be under a weekly window. ! There is currently no dedicated channel definitions for Daily windows. ! If you use Daily window, the system will assume a 1d (24Hours) advanced ! notification period b/w EARLY and LATER. ! We may consider support more flexible daily channel specifications in ! the future. WEEK1 == EARLIER with minimum 7d advanced notification. {7d, 14d} The system will treat them equally and will use WEEK1 whenever it can. New customers are encouraged to use this channel annotation.", +"WEEK2 == LATER with minimum 14d advanced notification {14d, 21d}.", +"WEEK5 == 40d support. minimum 35d advanced notification {35d, 42d}." +], +"type": "string" +}, +"denyMaintenancePeriods": { +"description": "Deny Maintenance Period that is applied to resource to indicate when maintenance is forbidden. The protocol supports zero-to-many such periods, but the current SLM Rollout implementation only supports zero-to-one.", +"items": { +"$ref": "DenyMaintenancePeriod" +}, +"type": "array" +}, +"window": { +"$ref": "MaintenanceWindow", +"description": "Optional. Maintenance window that is applied to resources covered by this policy." +} +}, +"type": "object" +}, +"WeeklyCycle": { +"description": "Time window specified for weekly operations.", +"id": "WeeklyCycle", +"properties": { +"schedule": { +"description": "User can specify multiple windows in a week. Minimum of 1 window.", +"items": { +"$ref": "Schedule" +}, +"type": "array" +} +}, +"type": "object" +}, +"WeeklyMaintenanceWindow": { +"description": "Time window specified for weekly operations.", +"id": "WeeklyMaintenanceWindow", +"properties": { +"day": { +"description": "Required. Allows to define schedule that runs specified 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" +}, +"duration": { +"description": "Required. Duration of the time window.", +"format": "google-duration", +"type": "string" +}, +"startTime": { +"$ref": "TimeOfDay", +"description": "Required. Start time of the window in UTC." +} +}, +"type": "object" +}, +"ZoneConfiguration": { +"id": "ZoneConfiguration", +"properties": { +"zone": { +"type": "string" +} +}, +"type": "object" +}, +"ZoneMetadata": { +"id": "ZoneMetadata", +"properties": {}, +"type": "object" +} +}, +"servicePath": "", +"title": "Cloud Memorystore for Memcached 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/merchantapi.products_v1beta.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/merchantapi.products_v1beta.json new file mode 100644 index 0000000000000000000000000000000000000000..c1e9b6a75de8668f6276a2f957dd45933c274125 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/merchantapi.products_v1beta.json @@ -0,0 +1,1760 @@ +{ +"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:products_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": { +"productInputs": { +"methods": { +"delete": { +"description": "Deletes a product input from your Merchant Center account. After inserting, updating, or deleting a product input, it may take several minutes before the processed product can be retrieved.", +"flatPath": "products/v1beta/accounts/{accountsId}/productInputs/{productInputsId}", +"httpMethod": "DELETE", +"id": "merchantapi.accounts.productInputs.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"dataSource": { +"description": "Required. The primary or supplemental data source from which the product input should be deleted. Format: `accounts/{account}/dataSources/{datasource}`.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. The name of the product input resource to delete. Format: accounts/{account}/productInputs/{product} where the last section `product` consists of 4 parts: channel~content_language~feed_label~offer_id example for product name is \"accounts/123/productInputs/online~en~US~sku123\"", +"location": "path", +"pattern": "^accounts/[^/]+/productInputs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "products/v1beta/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"insert": { +"description": "Uploads a product input to your Merchant Center account. If an input with the same contentLanguage, offerId, and dataSource already exists, this method replaces that entry. After inserting, updating, or deleting a product input, it may take several minutes before the processed product can be retrieved.", +"flatPath": "products/v1beta/accounts/{accountsId}/productInputs:insert", +"httpMethod": "POST", +"id": "merchantapi.accounts.productInputs.insert", +"parameterOrder": [ +"parent" +], +"parameters": { +"dataSource": { +"description": "Required. The primary or supplemental product data source name. If the product already exists and data source provided is different, then the product will be moved to a new data source. Format: `accounts/{account}/dataSources/{datasource}`.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The account where this product will be inserted. Format: accounts/{account}", +"location": "path", +"pattern": "^accounts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "products/v1beta/{+parent}/productInputs:insert", +"request": { +"$ref": "ProductInput" +}, +"response": { +"$ref": "ProductInput" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +} +} +}, +"products": { +"methods": { +"get": { +"description": "Retrieves the processed product from your Merchant Center account. After inserting, updating, or deleting a product input, it may take several minutes before the updated final product can be retrieved.", +"flatPath": "products/v1beta/accounts/{accountsId}/products/{productsId}", +"httpMethod": "GET", +"id": "merchantapi.accounts.products.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the product to retrieve. Format: `accounts/{account}/products/{product}` where the last section `product` consists of 4 parts: channel~content_language~feed_label~offer_id example for product name is \"accounts/123/products/online~en~US~sku123\"", +"location": "path", +"pattern": "^accounts/[^/]+/products/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "products/v1beta/{+name}", +"response": { +"$ref": "Product" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +}, +"list": { +"description": "Lists the processed products in your Merchant Center account. The response might contain fewer items than specified by pageSize. Rely on pageToken to determine if there are more items to be requested. After inserting, updating, or deleting a product input, it may take several minutes before the updated processed product can be retrieved.", +"flatPath": "products/v1beta/accounts/{accountsId}/products", +"httpMethod": "GET", +"id": "merchantapi.accounts.products.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of products to return. The service may return fewer than this value. The maximum value is 250; values above 250 will be coerced to 250. If unspecified, the maximum number of products will be returned.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous `ListProducts` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListProducts` must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The account to list processed products for. Format: accounts/{account}", +"location": "path", +"pattern": "^accounts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "products/v1beta/{+parent}/products", +"response": { +"$ref": "ListProductsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/content" +] +} +} +} +} +} +}, +"revision": "20250106", +"rootUrl": "https://merchantapi.googleapis.com/", +"schemas": { +"Attributes": { +"description": "Attributes.", +"id": "Attributes", +"properties": { +"additionalImageLinks": { +"description": "Additional URLs of images of the item.", +"items": { +"type": "string" +}, +"type": "array" +}, +"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": "Set to true if the item is targeted towards adults.", +"type": "boolean" +}, +"ageGroup": { +"description": "Target [age group](https://support.google.com/merchants/answer/6324463) of the item.", +"type": "string" +}, +"autoPricingMinPrice": { +"$ref": "Price", +"description": "A safeguard in the \"Automated Discounts\" (https://support.google.com/merchants/answer/10295759) and \"Dynamic Promotions\" (https://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](http://en.wikipedia.org/wiki/ISO_8601) format.", +"format": "google-datetime", +"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 Certifications, for example for energy efficiency labeling of products recorded in the [EU EPREL](https://eprel.ec.europa.eu/screen/home) database. See the [Help Center](https://support.google.com/merchants/answer/13528839) article for more information.", +"items": { +"$ref": "Certification" +}, +"type": "array" +}, +"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" +}, +"costOfGoodsSold": { +"$ref": "Price", +"description": "Cost of goods sold. Used for gross profit reporting." +}, +"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.", +"format": "google-datetime", +"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 for this target (corresponds to unchecked check boxes in Merchant Center).", +"items": { +"type": "string" +}, +"type": "array" +}, +"expirationDate": { +"description": "Date on which the item should expire, as specified upon insertion, in [ISO 8601](http://en.wikipedia.org/wiki/ISO_8601) format. The actual expiration date is exposed in `productstatuses` as [googleExpirationDate](https://support.google.com/merchants/answer/6324499) and might be earlier if `expirationDate` is too far in the future.", +"format": "google-datetime", +"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" +}, +"freeShippingThreshold": { +"description": "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 Numbers ([GTIN](https://support.google.com/merchants/answer/188494#gtin)) of the item. You can provide up to 10 GTINs.", +"items": { +"type": "string" +}, +"type": "array" +}, +"identifierExists": { +"description": "Set this value to false when the item does not have unique product identifiers appropriate to its category, such as GTIN, MPN, and brand. Defaults to true, if not provided.", +"type": "boolean" +}, +"imageLink": { +"description": "URL of an image of the item.", +"type": "string" +}, +"includedDestinations": { +"description": "The list of destinations to include 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" +}, +"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](https://support.google.com/merchants/answer/9103186) for more information.", +"items": { +"type": "string" +}, +"type": "array" +}, +"link": { +"description": "URL directly linking to your item's page on your online store.", +"type": "string" +}, +"linkTemplate": { +"description": "Link template for merchant hosted local storefront.", +"type": "string" +}, +"loyaltyPoints": { +"$ref": "LoyaltyPoints", +"description": "Loyalty points that users receive after purchasing the item. Japan only." +}, +"loyaltyPrograms": { +"description": "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": "Link template for merchant hosted local storefront optimized for mobile devices.", +"type": "string" +}, +"mpn": { +"description": "Manufacturer Part Number ([MPN](https://support.google.com/merchants/answer/188494#mpn)) of the item.", +"type": "string" +}, +"multipack": { +"description": "The number of identical products in a merchant-defined multipack.", +"format": "int64", +"type": "string" +}, +"pattern": { +"description": "The item's pattern (for example, polka dots).", +"type": "string" +}, +"pause": { +"description": "Publication of this item will be temporarily [paused](https://support.google.com/merchants/answer/11909930).", +"type": "string" +}, +"pickupMethod": { +"description": "The pick up option for the item.", +"type": "string" +}, +"pickupSla": { +"description": "Item store pickup timeline.", +"type": "string" +}, +"price": { +"$ref": "Price", +"description": "Price of the item." +}, +"productDetails": { +"description": "Technical specification or additional product details.", +"items": { +"$ref": "ProductDetail" +}, +"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](https://support.google.com/merchants/answer/188494#product_type)).", +"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": { +"$ref": "Interval", +"description": "Date range during which the item is on sale (see [product data specification](https://support.google.com/merchants/answer/188494#sale_price_effective_date))." +}, +"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": "Shipping" +}, +"type": "array" +}, +"shippingHeight": { +"$ref": "ShippingDimension", +"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": "ShippingDimension", +"description": "Length of the item for shipping." +}, +"shippingWeight": { +"$ref": "ShippingWeight", +"description": "Weight of the item for shipping." +}, +"shippingWidth": { +"$ref": "ShippingDimension", +"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 data source settings.", +"items": { +"type": "string" +}, +"type": "array" +}, +"size": { +"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 [https://support.google.com/merchants/answer/6324492](size definition)).", +"type": "string" +}, +"sizeSystem": { +"description": "System in which the size is specified. Recommended for apparel items.", +"type": "string" +}, +"sizeTypes": { +"description": "The cut of the item. It can be used to represent combined size types for apparel items. Maximum two of size types can be provided (see [https://support.google.com/merchants/answer/6324497](size type)).", +"items": { +"type": "string" +}, +"type": "array" +}, +"structuredDescription": { +"$ref": "ProductStructuredDescription", +"description": "Structured description, for algorithmically (AI)-generated descriptions." +}, +"structuredTitle": { +"$ref": "ProductStructuredTitle", +"description": "Structured title, for algorithmically (AI)-generated titles." +}, +"subscriptionCost": { +"$ref": "SubscriptionCost", +"description": "Number of periods (months or years) and amount of payment per period for an item with an associated subscription contract." +}, +"sustainabilityIncentives": { +"description": "The list of sustainability incentive programs.", +"items": { +"$ref": "ProductSustainabilityIncentive" +}, +"type": "array" +}, +"taxCategory": { +"description": "The tax category of the product.", +"type": "string" +}, +"taxes": { +"description": "Tax information.", +"items": { +"$ref": "Tax" +}, +"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": "UnitPricingBaseMeasure", +"description": "The preference of the denominator of the unit price." +}, +"unitPricingMeasure": { +"$ref": "UnitPricingMeasure", +"description": "The measure and dimension of an item." +}, +"virtualModelLink": { +"description": "URL of the 3D image of the item. See the [Help Center article](https://support.google.com/merchants/answer/13674896) for more information.", +"type": "string" +} +}, +"type": "object" +}, +"Certification": { +"description": "Product [certification](https://support.google.com/merchants/answer/13528839), initially introduced for EU energy efficiency labeling compliance using the EU EPREL database.", +"id": "Certification", +"properties": { +"certificationAuthority": { +"description": "The certification authority, for example \"European_Commission\". Maximum length is 2000 characters.", +"type": "string" +}, +"certificationCode": { +"description": "The certification code. 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" +}, +"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 repeatedness of this value 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 TV product's Screen Resolution. Maximum repeatedness of this value 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 repeatedness of this value 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 256B.", +"type": "string" +} +}, +"type": "object" +}, +"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" +}, +"DestinationStatus": { +"description": "The destination status of the product status.", +"id": "DestinationStatus", +"properties": { +"approvedCountries": { +"description": "List of country codes (ISO 3166-1 alpha-2) where the offer is approved.", +"items": { +"type": "string" +}, +"type": "array" +}, +"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" +}, +"reportingContext": { +"description": "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](" +], +"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" +}, +"FreeShippingThreshold": { +"description": "Conditions to be met for a product to have free shipping.", +"id": "FreeShippingThreshold", +"properties": { +"country": { +"description": "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": "The minimum product price for the shipping cost to become free. Represented as a number." +} +}, +"type": "object" +}, +"Installment": { +"description": "A message that represents installment.", +"id": "Installment", +"properties": { +"amount": { +"$ref": "Price", +"description": "The amount the buyer has to pay per month." +}, +"creditType": { +"description": "Type of installment payments. Supported values are: * \"`finance`\" * \"`lease`\"", +"type": "string" +}, +"downpayment": { +"$ref": "Price", +"description": "The up-front 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" +}, +"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" +}, +"ItemLevelIssue": { +"description": "The ItemLevelIssue of the product status.", +"id": "ItemLevelIssue", +"properties": { +"applicableCountries": { +"description": "List of country codes (ISO 3166-1 alpha-2) where issue applies to the offer.", +"items": { +"type": "string" +}, +"type": "array" +}, +"attribute": { +"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" +}, +"reportingContext": { +"description": "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](" +], +"type": "string" +}, +"resolution": { +"description": "Whether the issue can be resolved by the merchant.", +"type": "string" +}, +"severity": { +"description": "How this issue affects serving of the offer.", +"enum": [ +"SEVERITY_UNSPECIFIED", +"NOT_IMPACTED", +"DEMOTED", +"DISAPPROVED" +], +"enumDescriptions": [ +"Not specified.", +"This issue represents a warning and does not have a direct affect on the product.", +"The product is demoted and most likely have limited performance in search results", +"Issue disapproves the product." +], +"type": "string" +} +}, +"type": "object" +}, +"ListProductsResponse": { +"description": "Response message for the ListProducts method.", +"id": "ListProductsResponse", +"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" +}, +"products": { +"description": "The processed products from the specified account. These are your processed products after applying rules and supplemental data sources.", +"items": { +"$ref": "Product" +}, +"type": "array" +} +}, +"type": "object" +}, +"LoyaltyPoints": { +"description": "A message that represents loyalty points.", +"id": "LoyaltyPoints", +"properties": { +"name": { +"description": "Name of loyalty points program. It is recommended to limit the name to 12 full-width characters or 24 Roman characters.", +"type": "string" +}, +"pointsValue": { +"description": "The retailer's loyalty points in absolute value.", +"format": "int64", +"type": "string" +}, +"ratio": { +"description": "The ratio of a point when converted to currency. Google assumes currency based on Merchant Center settings. If ratio is left out, it defaults to 1.0.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"LoyaltyProgram": { +"description": "A message that represents loyalty program.", +"id": "LoyaltyProgram", +"properties": { +"cashbackForFutureUse": { +"$ref": "Price", +"description": "The cashback that can be used for future purchases." +}, +"loyaltyPoints": { +"description": "The amount of loyalty points earned on a purchase.", +"format": "int64", +"type": "string" +}, +"memberPriceEffectiveDate": { +"$ref": "Interval", +"description": "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." +}, +"price": { +"$ref": "Price", +"description": "The price for members of the given tier, that is, the instant discount price. Must be smaller or equal to the regular price." +}, +"programLabel": { +"description": "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. The label must be provided so that the 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": "The label of the shipping benefit. If the field has value, this offer has loyalty shipping benefit. If the field value isn't provided, the item is not eligible for loyalty shipping for the given loyalty tier.", +"type": "string" +}, +"tierLabel": { +"description": "The label of the tier within the loyalty program. Must match one of the labels within the program.", +"type": "string" +} +}, +"type": "object" +}, +"Price": { +"description": "The price represented as a number and currency.", +"id": "Price", +"properties": { +"amountMicros": { +"description": "The price represented as a number in micros (1 million micros is an equivalent to one's currency standard unit, for example, 1 USD = 1000000 micros).", +"format": "int64", +"type": "string" +}, +"currencyCode": { +"description": "The currency of the price using three-letter acronyms according to [ISO 4217](http://en.wikipedia.org/wiki/ISO_4217).", +"type": "string" +} +}, +"type": "object" +}, +"Product": { +"description": "The processed product, built from multiple product inputs after applying rules and supplemental data sources. This processed product matches what is shown in your Merchant Center account and in Shopping ads and other surfaces across Google. Each product is built from exactly one primary data source product input, and multiple supplemental data source inputs. After inserting, updating, or deleting a product input, it may take several minutes before the updated processed product can be retrieved. All fields in the processed product and its sub-messages match the name of their corresponding attribute in the [Product data specification](https://support.google.com/merchants/answer/7052112) with some exceptions.", +"id": "Product", +"properties": { +"attributes": { +"$ref": "Attributes", +"description": "Output only. A list of product attributes.", +"readOnly": true +}, +"channel": { +"description": "Output only. The [channel](https://support.google.com/merchants/answer/7361332) of the product.", +"enum": [ +"CHANNEL_ENUM_UNSPECIFIED", +"ONLINE", +"LOCAL" +], +"enumDescriptions": [ +"Not specified.", +"Online product.", +"Local product." +], +"readOnly": true, +"type": "string" +}, +"contentLanguage": { +"description": "Output only. The two-letter [ISO 639-1](http://en.wikipedia.org/wiki/ISO_639-1) language code for the product.", +"readOnly": true, +"type": "string" +}, +"customAttributes": { +"description": "Output only. A list of custom (merchant-provided) attributes. It can also be used to submit 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 additional attributes used for Buy on Google.", +"items": { +"$ref": "CustomAttribute" +}, +"readOnly": true, +"type": "array" +}, +"dataSource": { +"description": "Output only. The primary data source of the product.", +"readOnly": true, +"type": "string" +}, +"feedLabel": { +"description": "Output only. The feed label for the product.", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "The name of the product. Format: `\"{product.name=accounts/{account}/products/{product}}\"` where the last section `product` consists of 4 parts: channel~content_language~feed_label~offer_id example for product name is \"accounts/123/products/online~en~US~sku123\"", +"type": "string" +}, +"offerId": { +"description": "Output only. Your unique identifier for the product. This is the same for the product input and processed product. Leading and trailing whitespaces are stripped and multiple whitespaces are replaced by a single whitespace upon submission. See the [product data specification](https://support.google.com/merchants/answer/188494#id) for details.", +"readOnly": true, +"type": "string" +}, +"productStatus": { +"$ref": "ProductStatus", +"description": "Output only. The status of a product, data validation issues, that is, information about a product computed asynchronously.", +"readOnly": true +}, +"versionNumber": { +"description": "Output only. Represents the existing version (freshness) of the product, which can be used to preserve the right order when multiple updates are done at the same time. If set, the insertion is prevented when version number is lower than the current version number of the existing product. Re-insertion (for example, product refresh after 30 days) can be performed with the current `version_number`. Only supported for insertions into primary data sources. If the operation is prevented, the aborted exception will be thrown.", +"format": "int64", +"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" +}, +"ProductDetail": { +"description": "The product details.", +"id": "ProductDetail", +"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" +}, +"ProductDimension": { +"description": "The dimension of the product.", +"id": "ProductDimension", +"properties": { +"unit": { +"description": "Required. The dimension units. Acceptable values are: * \"`in`\" * \"`cm`\"", +"type": "string" +}, +"value": { +"description": "Required. The dimension value represented as a number. The value can have a maximum precision of four decimal places.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"ProductInput": { +"description": "This resource represents input data you submit for a product, not the processed product that you see in Merchant Center, in Shopping ads, or across Google surfaces. Product inputs, rules and supplemental data source data are combined to create the processed Product. Required product input attributes to pass data validation checks are primarily defined in the [Products Data Specification](https://support.google.com/merchants/answer/188494). The following attributes are required: feedLabel, contentLanguage and offerId. After inserting, updating, or deleting a product input, it may take several minutes before the processed product can be retrieved. All fields in the product input and its sub-messages match the English name of their corresponding attribute in the vertical spec with [some exceptions](https://support.google.com/merchants/answer/7052112).", +"id": "ProductInput", +"properties": { +"attributes": { +"$ref": "Attributes", +"description": "Optional. A list of product attributes." +}, +"channel": { +"description": "Immutable. The [channel](https://support.google.com/merchants/answer/7361332) of the product.", +"enum": [ +"CHANNEL_ENUM_UNSPECIFIED", +"ONLINE", +"LOCAL" +], +"enumDescriptions": [ +"Not specified.", +"Online product.", +"Local product." +], +"type": "string" +}, +"contentLanguage": { +"description": "Required. Immutable. The two-letter [ISO 639-1](http://en.wikipedia.org/wiki/ISO_639-1) language code for the product.", +"type": "string" +}, +"customAttributes": { +"description": "Optional. 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 additional attributes used for Buy on Google. 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" +}, +"feedLabel": { +"description": "Required. Immutable. The [feed label](https://developers.google.com/shopping-content/guides/products/feed-labels) for the product.", +"type": "string" +}, +"name": { +"description": "Identifier. The name of the product input. Format: `\"{productinput.name=accounts/{account}/productInputs/{productinput}}\"` where the last section `productinput` consists of 4 parts: channel~content_language~feed_label~offer_id example for product input name is \"accounts/123/productInputs/online~en~US~sku123\"", +"type": "string" +}, +"offerId": { +"description": "Required. Immutable. Your unique identifier for the product. This is the same for the product input and processed product. Leading and trailing whitespaces are stripped and multiple whitespaces are replaced by a single whitespace upon submission. See the [products data specification](https://support.google.com/merchants/answer/188494#id) for details.", +"type": "string" +}, +"product": { +"description": "Output only. The name of the processed product. Format: `\"{product.name=accounts/{account}/products/{product}}\"`", +"readOnly": true, +"type": "string" +}, +"versionNumber": { +"description": "Optional. Represents the existing version (freshness) of the product, which can be used to preserve the right order when multiple updates are done at the same time. If set, the insertion is prevented when version number is lower than the current version number of the existing product. Re-insertion (for example, product refresh after 30 days) can be performed with the current `version_number`. Only supported for insertions into primary data sources. If the operation is prevented, the aborted exception will be thrown.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"ProductStatus": { +"description": "The status of a product, data validation issues, that is, information about a product computed asynchronously.", +"id": "ProductStatus", +"properties": { +"creationDate": { +"description": "Date on which the item has been created, in [ISO 8601](http://en.wikipedia.org/wiki/ISO_8601) format.", +"format": "google-datetime", +"type": "string" +}, +"destinationStatuses": { +"description": "The intended destinations for the product.", +"items": { +"$ref": "DestinationStatus" +}, +"type": "array" +}, +"googleExpirationDate": { +"description": "Date on which the item expires, in [ISO 8601](http://en.wikipedia.org/wiki/ISO_8601) format.", +"format": "google-datetime", +"type": "string" +}, +"itemLevelIssues": { +"description": "A list of all issues associated with the product.", +"items": { +"$ref": "ItemLevelIssue" +}, +"type": "array" +}, +"lastUpdateDate": { +"description": "Date on which the item has been last updated, in [ISO 8601](http://en.wikipedia.org/wiki/ISO_8601) format.", +"format": "google-datetime", +"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" +}, +"ProductStructuredDescription": { +"description": "Structured description, for algorithmically (AI)-generated descriptions.", +"id": "ProductStructuredDescription", +"properties": { +"content": { +"description": "The description text Maximum length is 5000 characters", +"type": "string" +}, +"digitalSourceType": { +"description": "The digital source type, for example \"trained_algorithmic_media\". Following [IPTC](https://cv.iptc.org/newscodes/digitalsourcetype). Maximum length is 40 characters.", +"type": "string" +} +}, +"type": "object" +}, +"ProductStructuredTitle": { +"description": "Structured title, for algorithmically (AI)-generated titles.", +"id": "ProductStructuredTitle", +"properties": { +"content": { +"description": "The title text Maximum length is 150 characters", +"type": "string" +}, +"digitalSourceType": { +"description": "The digital source type, for example \"trained_algorithmic_media\". Following [IPTC](https://cv.iptc.org/newscodes/digitalsourcetype). Maximum length is 40 characters.", +"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": "The fixed amount of the incentive." +}, +"percentage": { +"description": "The percentage of the sale price that the incentive is applied to.", +"format": "double", +"type": "number" +}, +"type": { +"description": "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" +}, +"ProductWeight": { +"description": "The weight of the product.", +"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" +}, +"Shipping": { +"description": "The Shipping of the product.", +"id": "Shipping", +"properties": { +"country": { +"description": "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" +}, +"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 [AdWords API](https://developers.google.com/adwords/api/docs/appendix/geotargeting).", +"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 is received if it happens before the cut-off time. Both maxHandlingTime and maxTransitTime are required if providing shipping speeds. minHandlingTime is optional if maxHandlingTime is present.", +"format": "int64", +"type": "string" +}, +"maxTransitTime": { +"description": "Maximum transit time (inclusive) between when the order has shipped and when it is 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. minTransitTime is optional if maxTransitTime is present.", +"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 is received if it happens before the cut-off time. minHandlingTime can only be present together with maxHandlingTime; but it is 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 is 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 is 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. See [region](https://support.google.com/merchants/answer/6324484) for more information.", +"type": "string" +}, +"service": { +"description": "A free-form description of the service class or delivery speed.", +"type": "string" +} +}, +"type": "object" +}, +"ShippingDimension": { +"description": "The ShippingDimension of the product.", +"id": "ShippingDimension", +"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" +}, +"ShippingWeight": { +"description": "The ShippingWeight of the product.", +"id": "ShippingWeight", +"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" +}, +"SubscriptionCost": { +"description": "The SubscriptionCost of the product.", +"id": "SubscriptionCost", +"properties": { +"amount": { +"$ref": "Price", +"description": "The amount the buyer has to pay per subscription period." +}, +"period": { +"description": "The type of subscription period. Supported values are: * \"`month`\" * \"`year`\"", +"enum": [ +"SUBSCRIPTION_PERIOD_UNSPECIFIED", +"MONTH", +"YEAR" +], +"enumDescriptions": [ +"Indicates that the subscription period is unspecified.", +"Indicates that the subscription period is month.", +"Indicates that the subscription period is year." +], +"type": "string" +}, +"periodLength": { +"description": "The number of subscription periods the buyer has to pay.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"Tax": { +"description": "The Tax of the product.", +"id": "Tax", +"properties": { +"country": { +"description": "The country within which the item is taxed, specified as a [CLDR territory code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml).", +"type": "string" +}, +"locationId": { +"description": "The numeric ID of a location that the tax rate applies to as defined in the [AdWords API](https://developers.google.com/adwords/api/docs/appendix/geotargeting).", +"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": "Set to true if tax is charged on shipping.", +"type": "boolean" +} +}, +"type": "object" +}, +"UnitPricingBaseMeasure": { +"description": "The UnitPricingBaseMeasure of the product.", +"id": "UnitPricingBaseMeasure", +"properties": { +"unit": { +"description": "The unit of the denominator.", +"type": "string" +}, +"value": { +"description": "The denominator of the unit price.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"UnitPricingMeasure": { +"description": "The UnitPricingMeasure of the product.", +"id": "UnitPricingMeasure", +"properties": { +"unit": { +"description": "The unit of the measure.", +"type": "string" +}, +"value": { +"description": "The measure of an item.", +"format": "double", +"type": "number" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Merchant API", +"version": "products_v1beta", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/monitoring.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/monitoring.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..4cecd66e16c3eef840475712f540e0dc493ad785 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/monitoring.v1.json @@ -0,0 +1,2981 @@ +{ +"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/monitoring": { +"description": "View and write monitoring data for all of your Google and third-party Cloud and API projects" +}, +"https://www.googleapis.com/auth/monitoring.read": { +"description": "View monitoring data for all of your Google Cloud and third-party projects" +}, +"https://www.googleapis.com/auth/monitoring.write": { +"description": "Publish metric data to your Google Cloud projects" +} +} +} +}, +"basePath": "", +"baseUrl": "https://monitoring.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Monitoring", +"description": "Manages your Cloud Monitoring data and configurations.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/monitoring/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": "monitoring:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://monitoring.mtls.googleapis.com/", +"name": "monitoring", +"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": { +"locations": { +"resources": { +"global": { +"resources": { +"metricsScopes": { +"methods": { +"get": { +"description": "Returns a specific Metrics Scope, including the list of projects monitored by the specified Metrics Scope.", +"flatPath": "v1/locations/global/metricsScopes/{metricsScopesId}", +"httpMethod": "GET", +"id": "monitoring.locations.global.metricsScopes.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the Metrics Scope. Example: locations/global/metricsScopes/{SCOPING_PROJECT_ID_OR_NUMBER}", +"location": "path", +"pattern": "^locations/global/metricsScopes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "MetricsScope" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/monitoring", +"https://www.googleapis.com/auth/monitoring.read" +] +}, +"listMetricsScopesByMonitoredProject": { +"description": "Returns a list of every Metrics Scope that a specific MonitoredProject has been added to. The metrics scope representing the specified monitored project will always be the first entry in the response.", +"flatPath": "v1/locations/global/metricsScopes:listMetricsScopesByMonitoredProject", +"httpMethod": "GET", +"id": "monitoring.locations.global.metricsScopes.listMetricsScopesByMonitoredProject", +"parameterOrder": [], +"parameters": { +"monitoredResourceContainer": { +"description": "Required. The resource name of the Monitored Project being requested. Example: projects/{MONITORED_PROJECT_ID_OR_NUMBER}", +"location": "query", +"type": "string" +} +}, +"path": "v1/locations/global/metricsScopes:listMetricsScopesByMonitoredProject", +"response": { +"$ref": "ListMetricsScopesByMonitoredProjectResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/monitoring", +"https://www.googleapis.com/auth/monitoring.read" +] +} +}, +"resources": { +"projects": { +"methods": { +"create": { +"description": "Adds a MonitoredProject with the given project ID to the specified Metrics Scope.", +"flatPath": "v1/locations/global/metricsScopes/{metricsScopesId}/projects", +"httpMethod": "POST", +"id": "monitoring.locations.global.metricsScopes.projects.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The resource name of the existing Metrics Scope that will monitor this project. Example: locations/global/metricsScopes/{SCOPING_PROJECT_ID_OR_NUMBER}", +"location": "path", +"pattern": "^locations/global/metricsScopes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/projects", +"request": { +"$ref": "MonitoredProject" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/monitoring", +"https://www.googleapis.com/auth/monitoring.write" +] +}, +"delete": { +"description": "Deletes a MonitoredProject from the specified Metrics Scope.", +"flatPath": "v1/locations/global/metricsScopes/{metricsScopesId}/projects/{projectsId}", +"httpMethod": "DELETE", +"id": "monitoring.locations.global.metricsScopes.projects.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the MonitoredProject. Example: locations/global/metricsScopes/{SCOPING_PROJECT_ID_OR_NUMBER}/projects/{MONITORED_PROJECT_ID_OR_NUMBER}Authorization requires the following Google IAM (https://cloud.google.com/iam) permissions on both the Metrics Scope and on the MonitoredProject: monitoring.metricsScopes.link", +"location": "path", +"pattern": "^locations/global/metricsScopes/[^/]+/projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/monitoring", +"https://www.googleapis.com/auth/monitoring.write" +] +} +} +} +} +} +} +} +} +}, +"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/operations/{operationsId}", +"httpMethod": "GET", +"id": "monitoring.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/monitoring", +"https://www.googleapis.com/auth/monitoring.read" +] +} +} +}, +"projects": { +"resources": { +"dashboards": { +"methods": { +"create": { +"description": "Creates a new custom dashboard. For examples on how you can use this API to create dashboards, see Managing dashboards by API (https://cloud.google.com/monitoring/dashboards/api-dashboard). This method requires the monitoring.dashboards.create permission on the specified project. For more information about permissions, see Cloud Identity and Access Management (https://cloud.google.com/iam).", +"flatPath": "v1/projects/{projectsId}/dashboards", +"httpMethod": "POST", +"id": "monitoring.projects.dashboards.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The project on which to execute the request. The format is: projects/[PROJECT_ID_OR_NUMBER] The [PROJECT_ID_OR_NUMBER] must match the dashboard resource name.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"validateOnly": { +"description": "If set, validate the request and preview the review, but do not actually save it.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+parent}/dashboards", +"request": { +"$ref": "Dashboard" +}, +"response": { +"$ref": "Dashboard" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/monitoring", +"https://www.googleapis.com/auth/monitoring.write" +] +}, +"delete": { +"description": "Deletes an existing custom dashboard.This method requires the monitoring.dashboards.delete permission on the specified dashboard. For more information, see Cloud Identity and Access Management (https://cloud.google.com/iam).", +"flatPath": "v1/projects/{projectsId}/dashboards/{dashboardsId}", +"httpMethod": "DELETE", +"id": "monitoring.projects.dashboards.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the Dashboard. The format is: projects/[PROJECT_ID_OR_NUMBER]/dashboards/[DASHBOARD_ID] ", +"location": "path", +"pattern": "^projects/[^/]+/dashboards/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/monitoring", +"https://www.googleapis.com/auth/monitoring.write" +] +}, +"get": { +"description": "Fetches a specific dashboard.This method requires the monitoring.dashboards.get permission on the specified dashboard. For more information, see Cloud Identity and Access Management (https://cloud.google.com/iam).", +"flatPath": "v1/projects/{projectsId}/dashboards/{dashboardsId}", +"httpMethod": "GET", +"id": "monitoring.projects.dashboards.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the Dashboard. The format is one of: dashboards/[DASHBOARD_ID] (for system dashboards) projects/[PROJECT_ID_OR_NUMBER]/dashboards/[DASHBOARD_ID] (for custom dashboards).", +"location": "path", +"pattern": "^projects/[^/]+/dashboards/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Dashboard" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/monitoring", +"https://www.googleapis.com/auth/monitoring.read" +] +}, +"list": { +"description": "Lists the existing dashboards.This method requires the monitoring.dashboards.list permission on the specified project. For more information, see Cloud Identity and Access Management (https://cloud.google.com/iam).", +"flatPath": "v1/projects/{projectsId}/dashboards", +"httpMethod": "GET", +"id": "monitoring.projects.dashboards.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "A positive number that is the maximum number of results to return. If unspecified, a default of 1000 is used.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. If this field is not empty then it must contain the nextPageToken value returned by a previous call to this method. Using this field causes the method to return additional results from the previous method call.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The scope of the dashboards to list. The format is: projects/[PROJECT_ID_OR_NUMBER] ", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/dashboards", +"response": { +"$ref": "ListDashboardsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/monitoring", +"https://www.googleapis.com/auth/monitoring.read" +] +}, +"patch": { +"description": "Replaces an existing custom dashboard with a new definition.This method requires the monitoring.dashboards.update permission on the specified dashboard. For more information, see Cloud Identity and Access Management (https://cloud.google.com/iam).", +"flatPath": "v1/projects/{projectsId}/dashboards/{dashboardsId}", +"httpMethod": "PATCH", +"id": "monitoring.projects.dashboards.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. The resource name of the dashboard.", +"location": "path", +"pattern": "^projects/[^/]+/dashboards/[^/]+$", +"required": true, +"type": "string" +}, +"validateOnly": { +"description": "If set, validate the request and preview the review, but do not actually save it.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "Dashboard" +}, +"response": { +"$ref": "Dashboard" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/monitoring", +"https://www.googleapis.com/auth/monitoring.write" +] +} +} +}, +"location": { +"resources": { +"prometheus": { +"resources": { +"api": { +"resources": { +"v1": { +"methods": { +"labels": { +"description": "Lists labels for metrics.", +"flatPath": "v1/projects/{projectsId}/location/{location}/prometheus/api/v1/labels", +"httpMethod": "POST", +"id": "monitoring.projects.location.prometheus.api.v1.labels", +"parameterOrder": [ +"name", +"location" +], +"parameters": { +"location": { +"description": "Location of the resource information. Has to be \"global\" now.", +"location": "path", +"required": true, +"type": "string" +}, +"name": { +"description": "Required. The workspace on which to execute the request. It is not part of the open source API but used as a request path prefix to distinguish different virtual Prometheus instances of Google Prometheus Engine. The format is: projects/PROJECT_ID_OR_NUMBER.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}/location/{location}/prometheus/api/v1/labels", +"request": { +"$ref": "QueryLabelsRequest" +}, +"response": { +"$ref": "HttpBody" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/monitoring", +"https://www.googleapis.com/auth/monitoring.read" +] +}, +"query": { +"description": "Evaluate a PromQL query at a single point in time.", +"flatPath": "v1/projects/{projectsId}/location/{location}/prometheus/api/v1/query", +"httpMethod": "POST", +"id": "monitoring.projects.location.prometheus.api.v1.query", +"parameterOrder": [ +"name", +"location" +], +"parameters": { +"location": { +"description": "Location of the resource information. Has to be \"global\" now.", +"location": "path", +"required": true, +"type": "string" +}, +"name": { +"description": "Required. The project on which to execute the request. Data associcated with the project's workspace stored under the The format is: projects/PROJECT_ID_OR_NUMBER. Open source API but used as a request path prefix to distinguish different virtual Prometheus instances of Google Prometheus Engine.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}/location/{location}/prometheus/api/v1/query", +"request": { +"$ref": "QueryInstantRequest" +}, +"response": { +"$ref": "HttpBody" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/monitoring", +"https://www.googleapis.com/auth/monitoring.read" +] +}, +"query_exemplars": { +"description": "Lists exemplars relevant to a given PromQL query,", +"flatPath": "v1/projects/{projectsId}/location/{location}/prometheus/api/v1/query_exemplars", +"httpMethod": "POST", +"id": "monitoring.projects.location.prometheus.api.v1.query_exemplars", +"parameterOrder": [ +"name", +"location" +], +"parameters": { +"location": { +"description": "Location of the resource information. Has to be \"global\" now.", +"location": "path", +"required": true, +"type": "string" +}, +"name": { +"description": "Required. The project on which to execute the request. Data associcated with the project's workspace stored under the The format is: projects/PROJECT_ID_OR_NUMBER. Open source API but used as a request path prefix to distinguish different virtual Prometheus instances of Google Prometheus Engine.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}/location/{location}/prometheus/api/v1/query_exemplars", +"request": { +"$ref": "QueryExemplarsRequest" +}, +"response": { +"$ref": "HttpBody" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/monitoring", +"https://www.googleapis.com/auth/monitoring.read" +] +}, +"query_range": { +"description": "Evaluate a PromQL query with start, end time range.", +"flatPath": "v1/projects/{projectsId}/location/{location}/prometheus/api/v1/query_range", +"httpMethod": "POST", +"id": "monitoring.projects.location.prometheus.api.v1.query_range", +"parameterOrder": [ +"name", +"location" +], +"parameters": { +"location": { +"description": "Location of the resource information. Has to be \"global\" now.", +"location": "path", +"required": true, +"type": "string" +}, +"name": { +"description": "Required. The project on which to execute the request. Data associcated with the project's workspace stored under the The format is: projects/PROJECT_ID_OR_NUMBER. Open source API but used as a request path prefix to distinguish different virtual Prometheus instances of Google Prometheus Engine.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}/location/{location}/prometheus/api/v1/query_range", +"request": { +"$ref": "QueryRangeRequest" +}, +"response": { +"$ref": "HttpBody" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/monitoring", +"https://www.googleapis.com/auth/monitoring.read" +] +}, +"series": { +"description": "Lists metadata for metrics.", +"flatPath": "v1/projects/{projectsId}/location/{location}/prometheus/api/v1/series", +"httpMethod": "POST", +"id": "monitoring.projects.location.prometheus.api.v1.series", +"parameterOrder": [ +"name", +"location" +], +"parameters": { +"location": { +"description": "Location of the resource information. Has to be \"global\" for now.", +"location": "path", +"required": true, +"type": "string" +}, +"name": { +"description": "Required. The workspace on which to execute the request. It is not part of the open source API but used as a request path prefix to distinguish different virtual Prometheus instances of Google Prometheus Engine. The format is: projects/PROJECT_ID_OR_NUMBER.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}/location/{location}/prometheus/api/v1/series", +"request": { +"$ref": "QuerySeriesRequest" +}, +"response": { +"$ref": "HttpBody" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/monitoring", +"https://www.googleapis.com/auth/monitoring.read" +] +} +}, +"resources": { +"label": { +"methods": { +"values": { +"description": "Lists possible values for a given label name.", +"flatPath": "v1/projects/{projectsId}/location/{location}/prometheus/api/v1/label/{label}/values", +"httpMethod": "GET", +"id": "monitoring.projects.location.prometheus.api.v1.label.values", +"parameterOrder": [ +"name", +"location", +"label" +], +"parameters": { +"end": { +"description": "The end time to evaluate the query for. Either floating point UNIX seconds or RFC3339 formatted timestamp.", +"location": "query", +"type": "string" +}, +"label": { +"description": "The label name for which values are queried.", +"location": "path", +"required": true, +"type": "string" +}, +"location": { +"description": "Location of the resource information. Has to be \"global\" now.", +"location": "path", +"required": true, +"type": "string" +}, +"match": { +"description": "A list of matchers encoded in the Prometheus label matcher format to constrain the values to series that satisfy them.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. The workspace on which to execute the request. It is not part of the open source API but used as a request path prefix to distinguish different virtual Prometheus instances of Google Prometheus Engine. The format is: projects/PROJECT_ID_OR_NUMBER.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"start": { +"description": "The start time to evaluate the query for. Either floating point UNIX seconds or RFC3339 formatted timestamp.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}/location/{location}/prometheus/api/v1/label/{label}/values", +"response": { +"$ref": "HttpBody" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/monitoring", +"https://www.googleapis.com/auth/monitoring.read" +] +} +} +}, +"metadata": { +"methods": { +"list": { +"description": "Lists metadata for metrics.", +"flatPath": "v1/projects/{projectsId}/location/{location}/prometheus/api/v1/metadata", +"httpMethod": "GET", +"id": "monitoring.projects.location.prometheus.api.v1.metadata.list", +"parameterOrder": [ +"name", +"location" +], +"parameters": { +"limit": { +"description": "Maximum number of metrics to return.", +"format": "int64", +"location": "query", +"type": "string" +}, +"location": { +"description": "Location of the resource information. Has to be \"global\" for now.", +"location": "path", +"required": true, +"type": "string" +}, +"metric": { +"description": "The metric name for which to query metadata. If unset, all metric metadata is returned.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. The workspace on which to execute the request. It is not part of the open source API but used as a request path prefix to distinguish different virtual Prometheus instances of Google Prometheus Engine. The format is: projects/PROJECT_ID_OR_NUMBER.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}/location/{location}/prometheus/api/v1/metadata", +"response": { +"$ref": "HttpBody" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/monitoring", +"https://www.googleapis.com/auth/monitoring.read" +] +} +} +} +} +} +} +} +} +} +} +} +} +} +}, +"revision": "20241212", +"rootUrl": "https://monitoring.googleapis.com/", +"schemas": { +"Aggregation": { +"description": "Describes how to combine multiple time series to provide a different view of the data. Aggregation of time series is done in two steps. First, each time series in the set is aligned to the same time interval boundaries, then the set of time series is optionally reduced in number.Alignment consists of applying the per_series_aligner operation to each time series after its data has been divided into regular alignment_period time intervals. This process takes all of the data points in an alignment period, applies a mathematical transformation such as averaging, minimum, maximum, delta, etc., and converts them into a single data point per period.Reduction is when the aligned and transformed time series can optionally be combined, reducing the number of time series through similar mathematical transformations. Reduction involves applying a cross_series_reducer to all the time series, optionally sorting the time series into subsets with group_by_fields, and applying the reducer to each subset.The raw time series data can contain a huge amount of information from multiple sources. Alignment and reduction transforms this mass of data into a more manageable and representative collection of data, for example \"the 95% latency across the average of all tasks in a cluster\". This representative data can be more easily graphed and comprehended, and the individual time series data is still available for later drilldown. For more details, see Filtering and aggregation (https://cloud.google.com/monitoring/api/v3/aggregation).", +"id": "Aggregation", +"properties": { +"alignmentPeriod": { +"description": "The alignment_period specifies a time interval, in seconds, that is used to divide the data in all the time series into consistent blocks of time. This will be done before the per-series aligner can be applied to the data.The value must be at least 60 seconds. If a per-series aligner other than ALIGN_NONE is specified, this field is required or an error is returned. If no per-series aligner is specified, or the aligner ALIGN_NONE is specified, then this field is ignored.The maximum value of the alignment_period is 2 years, or 104 weeks.", +"format": "google-duration", +"type": "string" +}, +"crossSeriesReducer": { +"description": "The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.Not all reducer operations can be applied to all time series. The valid choices depend on the metric_kind and the value_type of the original time series. Reduction can yield a time series with a different metric_kind or value_type than the input time series.Time series data must first be aligned (see per_series_aligner) in order to perform cross-time series reduction. If cross_series_reducer is specified, then per_series_aligner must be specified, and must not be ALIGN_NONE. An alignment_period must also be specified; otherwise, an error is returned.", +"enum": [ +"REDUCE_NONE", +"REDUCE_MEAN", +"REDUCE_MIN", +"REDUCE_MAX", +"REDUCE_SUM", +"REDUCE_STDDEV", +"REDUCE_COUNT", +"REDUCE_COUNT_TRUE", +"REDUCE_COUNT_FALSE", +"REDUCE_FRACTION_TRUE", +"REDUCE_PERCENTILE_99", +"REDUCE_PERCENTILE_95", +"REDUCE_PERCENTILE_50", +"REDUCE_PERCENTILE_05" +], +"enumDescriptions": [ +"No cross-time series reduction. The output of the Aligner is returned.", +"Reduce by computing the mean value across time series for each alignment period. This reducer is valid for DELTA and GAUGE metrics with numeric or distribution values. The value_type of the output is DOUBLE.", +"Reduce by computing the minimum value across time series for each alignment period. This reducer is valid for DELTA and GAUGE metrics with numeric values. The value_type of the output is the same as the value_type of the input.", +"Reduce by computing the maximum value across time series for each alignment period. This reducer is valid for DELTA and GAUGE metrics with numeric values. The value_type of the output is the same as the value_type of the input.", +"Reduce by computing the sum across time series for each alignment period. This reducer is valid for DELTA and GAUGE metrics with numeric and distribution values. The value_type of the output is the same as the value_type of the input.", +"Reduce by computing the standard deviation across time series for each alignment period. This reducer is valid for DELTA and GAUGE metrics with numeric or distribution values. The value_type of the output is DOUBLE.", +"Reduce by computing the number of data points across time series for each alignment period. This reducer is valid for DELTA and GAUGE metrics of numeric, Boolean, distribution, and string value_type. The value_type of the output is INT64.", +"Reduce by computing the number of True-valued data points across time series for each alignment period. This reducer is valid for DELTA and GAUGE metrics of Boolean value_type. The value_type of the output is INT64.", +"Reduce by computing the number of False-valued data points across time series for each alignment period. This reducer is valid for DELTA and GAUGE metrics of Boolean value_type. The value_type of the output is INT64.", +"Reduce by computing the ratio of the number of True-valued data points to the total number of data points for each alignment period. This reducer is valid for DELTA and GAUGE metrics of Boolean value_type. The output value is in the range 0.0, 1.0 and has value_type DOUBLE.", +"Reduce by computing the 99th percentile (https://en.wikipedia.org/wiki/Percentile) of data points across time series for each alignment period. This reducer is valid for GAUGE and DELTA metrics of numeric and distribution type. The value of the output is DOUBLE.", +"Reduce by computing the 95th percentile (https://en.wikipedia.org/wiki/Percentile) of data points across time series for each alignment period. This reducer is valid for GAUGE and DELTA metrics of numeric and distribution type. The value of the output is DOUBLE.", +"Reduce by computing the 50th percentile (https://en.wikipedia.org/wiki/Percentile) of data points across time series for each alignment period. This reducer is valid for GAUGE and DELTA metrics of numeric and distribution type. The value of the output is DOUBLE.", +"Reduce by computing the 5th percentile (https://en.wikipedia.org/wiki/Percentile) of data points across time series for each alignment period. This reducer is valid for GAUGE and DELTA metrics of numeric and distribution type. The value of the output is DOUBLE." +], +"type": "string" +}, +"groupByFields": { +"description": "The set of fields to preserve when cross_series_reducer is specified. The group_by_fields determine how the time series are partitioned into subsets prior to applying the aggregation operation. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The cross_series_reducer is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains resource.type. Fields not specified in group_by_fields are aggregated away. If group_by_fields is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If cross_series_reducer is not defined, this field is ignored.", +"items": { +"type": "string" +}, +"type": "array" +}, +"perSeriesAligner": { +"description": "An Aligner describes how to bring the data points in a single time series into temporal alignment. Except for ALIGN_NONE, all alignments cause all the data points in an alignment_period to be mathematically grouped together, resulting in a single data point for each alignment_period with end timestamp at the end of the period.Not all alignment operations may be applied to all time series. The valid choices depend on the metric_kind and value_type of the original time series. Alignment can change the metric_kind or the value_type of the time series.Time series data must be aligned in order to perform cross-time series reduction. If cross_series_reducer is specified, then per_series_aligner must be specified and not equal to ALIGN_NONE and alignment_period must be specified; otherwise, an error is returned.", +"enum": [ +"ALIGN_NONE", +"ALIGN_DELTA", +"ALIGN_RATE", +"ALIGN_INTERPOLATE", +"ALIGN_NEXT_OLDER", +"ALIGN_MIN", +"ALIGN_MAX", +"ALIGN_MEAN", +"ALIGN_COUNT", +"ALIGN_SUM", +"ALIGN_STDDEV", +"ALIGN_COUNT_TRUE", +"ALIGN_COUNT_FALSE", +"ALIGN_FRACTION_TRUE", +"ALIGN_PERCENTILE_99", +"ALIGN_PERCENTILE_95", +"ALIGN_PERCENTILE_50", +"ALIGN_PERCENTILE_05", +"ALIGN_PERCENT_CHANGE" +], +"enumDescriptions": [ +"No alignment. Raw data is returned. Not valid if cross-series reduction is requested. The value_type of the result is the same as the value_type of the input.", +"Align and convert to DELTA. The output is delta = y1 - y0.This alignment is valid for CUMULATIVE and DELTA metrics. If the selected alignment period results in periods with no data, then the aligned value for such a period is created by interpolation. The value_type of the aligned result is the same as the value_type of the input.", +"Align and convert to a rate. The result is computed as rate = (y1 - y0)/(t1 - t0), or \"delta over time\". Think of this aligner as providing the slope of the line that passes through the value at the start and at the end of the alignment_period.This aligner is valid for CUMULATIVE and DELTA metrics with numeric values. If the selected alignment period results in periods with no data, then the aligned value for such a period is created by interpolation. The output is a GAUGE metric with value_type DOUBLE.If, by \"rate\", you mean \"percentage change\", see the ALIGN_PERCENT_CHANGE aligner instead.", +"Align by interpolating between adjacent points around the alignment period boundary. This aligner is valid for GAUGE metrics with numeric values. The value_type of the aligned result is the same as the value_type of the input.", +"Align by moving the most recent data point before the end of the alignment period to the boundary at the end of the alignment period. This aligner is valid for GAUGE metrics. The value_type of the aligned result is the same as the value_type of the input.", +"Align the time series by returning the minimum value in each alignment period. This aligner is valid for GAUGE and DELTA metrics with numeric values. The value_type of the aligned result is the same as the value_type of the input.", +"Align the time series by returning the maximum value in each alignment period. This aligner is valid for GAUGE and DELTA metrics with numeric values. The value_type of the aligned result is the same as the value_type of the input.", +"Align the time series by returning the mean value in each alignment period. This aligner is valid for GAUGE and DELTA metrics with numeric values. The value_type of the aligned result is DOUBLE.", +"Align the time series by returning the number of values in each alignment period. This aligner is valid for GAUGE and DELTA metrics with numeric or Boolean values. The value_type of the aligned result is INT64.", +"Align the time series by returning the sum of the values in each alignment period. This aligner is valid for GAUGE and DELTA metrics with numeric and distribution values. The value_type of the aligned result is the same as the value_type of the input.", +"Align the time series by returning the standard deviation of the values in each alignment period. This aligner is valid for GAUGE and DELTA metrics with numeric values. The value_type of the output is DOUBLE.", +"Align the time series by returning the number of True values in each alignment period. This aligner is valid for GAUGE metrics with Boolean values. The value_type of the output is INT64.", +"Align the time series by returning the number of False values in each alignment period. This aligner is valid for GAUGE metrics with Boolean values. The value_type of the output is INT64.", +"Align the time series by returning the ratio of the number of True values to the total number of values in each alignment period. This aligner is valid for GAUGE metrics with Boolean values. The output value is in the range 0.0, 1.0 and has value_type DOUBLE.", +"Align the time series by using percentile aggregation (https://en.wikipedia.org/wiki/Percentile). The resulting data point in each alignment period is the 99th percentile of all data points in the period. This aligner is valid for GAUGE and DELTA metrics with distribution values. The output is a GAUGE metric with value_type DOUBLE.", +"Align the time series by using percentile aggregation (https://en.wikipedia.org/wiki/Percentile). The resulting data point in each alignment period is the 95th percentile of all data points in the period. This aligner is valid for GAUGE and DELTA metrics with distribution values. The output is a GAUGE metric with value_type DOUBLE.", +"Align the time series by using percentile aggregation (https://en.wikipedia.org/wiki/Percentile). The resulting data point in each alignment period is the 50th percentile of all data points in the period. This aligner is valid for GAUGE and DELTA metrics with distribution values. The output is a GAUGE metric with value_type DOUBLE.", +"Align the time series by using percentile aggregation (https://en.wikipedia.org/wiki/Percentile). The resulting data point in each alignment period is the 5th percentile of all data points in the period. This aligner is valid for GAUGE and DELTA metrics with distribution values. The output is a GAUGE metric with value_type DOUBLE.", +"Align and convert to a percentage change. This aligner is valid for GAUGE and DELTA metrics with numeric values. This alignment returns ((current - previous)/previous) * 100, where the value of previous is determined based on the alignment_period.If the values of current and previous are both 0, then the returned value is 0. If only previous is 0, the returned value is infinity.A 10-minute moving mean is computed at each point of the alignment period prior to the above calculation to smooth the metric and prevent false positives from very short-lived spikes. The moving mean is only applicable for data whose values are >= 0. Any values < 0 are treated as a missing datapoint, and are ignored. While DELTA metrics are accepted by this alignment, special care should be taken that the values for the metric will always be positive. The output is a GAUGE metric with value_type DOUBLE." +], +"type": "string" +} +}, +"type": "object" +}, +"AggregationFunction": { +"description": "Preview: An identifier for an aggregation function. Aggregation functions are SQL functions that group or transform data from multiple points to a single point. This is a preview feature and may be subject to change before final release.", +"id": "AggregationFunction", +"properties": { +"parameters": { +"description": "Optional. Parameters applied to the aggregation function. Only used for functions that require them.", +"items": { +"$ref": "Parameter" +}, +"type": "array" +}, +"type": { +"description": "Required. The type of aggregation function, must be one of the following: \"none\" - no function. \"percentile\" - APPROX_QUANTILES() - 1 parameter numeric value \"average\" - AVG() \"count\" - COUNT() \"count-distinct\" - COUNT(DISTINCT) \"count-distinct-approx\" - APPROX_COUNT_DISTINCT() \"max\" - MAX() \"min\" - MIN() \"sum\" - SUM()", +"type": "string" +} +}, +"type": "object" +}, +"AlertChart": { +"description": "A chart that displays alert policy data.", +"id": "AlertChart", +"properties": { +"name": { +"description": "Required. The resource name of the alert policy. The format is: projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID] ", +"type": "string" +} +}, +"type": "object" +}, +"Axis": { +"description": "A chart axis.", +"id": "Axis", +"properties": { +"label": { +"description": "The label of the axis.", +"type": "string" +}, +"scale": { +"description": "The axis scale. By default, a linear scale is used.", +"enum": [ +"SCALE_UNSPECIFIED", +"LINEAR", +"LOG10" +], +"enumDescriptions": [ +"Scale is unspecified. The view will default to LINEAR.", +"Linear scale.", +"Logarithmic scale (base 10)." +], +"type": "string" +} +}, +"type": "object" +}, +"Breakdown": { +"description": "Preview: A breakdown is an aggregation applied to the measures over a specified column. A breakdown can result in multiple series across a category for the provided measure. This is a preview feature and may be subject to change before final release.", +"id": "Breakdown", +"properties": { +"aggregationFunction": { +"$ref": "AggregationFunction", +"description": "Required. The Aggregation function is applied across all data in each breakdown created." +}, +"column": { +"description": "Required. The name of the column in the dataset containing the breakdown values.", +"type": "string" +}, +"limit": { +"description": "Required. A limit to the number of breakdowns. If set to zero then all possible breakdowns are applied. The list of breakdowns is dependent on the value of the sort_order field.", +"format": "int32", +"type": "integer" +}, +"sortOrder": { +"description": "Required. The sort order is applied to the values of the breakdown column.", +"enum": [ +"SORT_ORDER_UNSPECIFIED", +"SORT_ORDER_NONE", +"SORT_ORDER_ASCENDING", +"SORT_ORDER_DESCENDING" +], +"enumDescriptions": [ +"An unspecified sort order. This option is invalid when sorting is required.", +"No sorting is applied.", +"The lowest-valued entries are selected first.", +"The highest-valued entries are selected first." +], +"type": "string" +} +}, +"type": "object" +}, +"ChartOptions": { +"description": "Options to control visual rendering of a chart.", +"id": "ChartOptions", +"properties": { +"displayHorizontal": { +"description": "Preview: Configures whether the charted values are shown on the horizontal or vertical axis. By default, values are represented the vertical axis. This is a preview feature and may be subject to change before final release.", +"type": "boolean" +}, +"mode": { +"description": "The chart mode.", +"enum": [ +"MODE_UNSPECIFIED", +"COLOR", +"X_RAY", +"STATS" +], +"enumDescriptions": [ +"Mode is unspecified. The view will default to COLOR.", +"The chart distinguishes data series using different color. Line colors may get reused when there are many lines in the chart.", +"The chart uses the Stackdriver x-ray mode, in which each data set is plotted using the same semi-transparent color.", +"The chart displays statistics such as average, median, 95th percentile, and more." +], +"type": "string" +} +}, +"type": "object" +}, +"CollapsibleGroup": { +"description": "A widget that groups the other widgets. All widgets that are within the area spanned by the grouping widget are considered member widgets.", +"id": "CollapsibleGroup", +"properties": { +"collapsed": { +"description": "The collapsed state of the widget on first page load.", +"type": "boolean" +} +}, +"type": "object" +}, +"Column": { +"description": "Defines the layout properties and content for a column.", +"id": "Column", +"properties": { +"weight": { +"description": "The relative weight of this column. The column weight is used to adjust the width of columns on the screen (relative to peers). Greater the weight, greater the width of the column on the screen. If omitted, a value of 1 is used while rendering.", +"format": "int64", +"type": "string" +}, +"widgets": { +"description": "The display widgets arranged vertically in this column.", +"items": { +"$ref": "Widget" +}, +"type": "array" +} +}, +"type": "object" +}, +"ColumnLayout": { +"description": "A simplified layout that divides the available space into vertical columns and arranges a set of widgets vertically in each column.", +"id": "ColumnLayout", +"properties": { +"columns": { +"description": "The columns of content to display.", +"items": { +"$ref": "Column" +}, +"type": "array" +} +}, +"type": "object" +}, +"ColumnSettings": { +"description": "The persistent settings for a table's columns.", +"id": "ColumnSettings", +"properties": { +"alignment": { +"description": "Optional. Whether the column should be left / middle / right aligned", +"enum": [ +"CELL_ALIGNMENT_UNSPECIFIED", +"LEFT", +"CENTER", +"RIGHT" +], +"enumDescriptions": [ +"No horizontal alignment specified; fall back to the default behavior. Label values are left aligned. Numeric values are right aligned.", +"Left-align", +"Center-align", +"Right-align" +], +"type": "string" +}, +"column": { +"description": "Required. The id of the column.", +"type": "string" +}, +"displayName": { +"description": "Optional. Display name of the column", +"type": "string" +}, +"thresholds": { +"description": "Optional. The thresholds used to determine how the table cell should be rendered given the time series' current value.", +"items": { +"$ref": "Threshold" +}, +"type": "array" +}, +"visible": { +"description": "Required. Whether the column should be visible on page load.", +"type": "boolean" +} +}, +"type": "object" +}, +"ColumnSortingOptions": { +"description": "Data structure to storing column's sort strategy", +"id": "ColumnSortingOptions", +"properties": { +"column": { +"description": "Optional. Column name to sort data by", +"type": "string" +}, +"direction": { +"description": "Optional. A sorting direction that determines ascending or descending order. This is a legacy field kept for backwards compatibility with table.", +"enum": [ +"SORT_ORDER_UNSPECIFIED", +"SORT_ORDER_NONE", +"SORT_ORDER_ASCENDING", +"SORT_ORDER_DESCENDING" +], +"enumDescriptions": [ +"An unspecified sort order. This option is invalid when sorting is required.", +"No sorting is applied.", +"The lowest-valued entries are selected first.", +"The highest-valued entries are selected first." +], +"type": "string" +} +}, +"type": "object" +}, +"Dashboard": { +"description": "A Google Stackdriver dashboard. Dashboards define the content and layout of pages in the Stackdriver web application.", +"id": "Dashboard", +"properties": { +"annotations": { +"$ref": "DashboardAnnotations", +"description": "Configuration for event annotations to display on this dashboard." +}, +"columnLayout": { +"$ref": "ColumnLayout", +"description": "The content is divided into equally spaced columns and the widgets are arranged vertically." +}, +"dashboardFilters": { +"description": "Filters to reduce the amount of data charted based on the filter criteria.", +"items": { +"$ref": "DashboardFilter" +}, +"type": "array" +}, +"displayName": { +"description": "Required. The mutable, human-readable name.", +"type": "string" +}, +"etag": { +"description": "etag is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. An etag is returned in the response to GetDashboard, and users are expected to put that etag in the request to UpdateDashboard to ensure that their change will be applied to the same version of the Dashboard configuration. The field should not be passed during dashboard creation.", +"type": "string" +}, +"gridLayout": { +"$ref": "GridLayout", +"description": "Content is arranged with a basic layout that re-flows a simple list of informational elements like widgets or tiles." +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Labels applied to the dashboard", +"type": "object" +}, +"mosaicLayout": { +"$ref": "MosaicLayout", +"description": "The content is arranged as a grid of tiles, with each content widget occupying one or more grid blocks." +}, +"name": { +"description": "Identifier. The resource name of the dashboard.", +"type": "string" +}, +"rowLayout": { +"$ref": "RowLayout", +"description": "The content is divided into equally spaced rows and the widgets are arranged horizontally." +} +}, +"type": "object" +}, +"DashboardAnnotations": { +"description": "Dashboard-level configuration for annotations", +"id": "DashboardAnnotations", +"properties": { +"defaultResourceNames": { +"description": "Dashboard level defaults for names of logging resources to search for events. Currently only projects are supported. Each individual EventAnnotation may have its own overrides. If both this field and the per annotation field is empty, then the scoping project is used. Limit: 50 projects. For example: \u201cprojects/some-project-id\u201d ", +"items": { +"type": "string" +}, +"type": "array" +}, +"eventAnnotations": { +"description": "List of annotation configurations for this dashboard. Each entry specifies one event type.", +"items": { +"$ref": "EventAnnotation" +}, +"type": "array" +} +}, +"type": "object" +}, +"DashboardFilter": { +"description": "A filter to reduce the amount of data charted in relevant widgets.", +"id": "DashboardFilter", +"properties": { +"filterType": { +"description": "The specified filter type", +"enum": [ +"FILTER_TYPE_UNSPECIFIED", +"RESOURCE_LABEL", +"METRIC_LABEL", +"USER_METADATA_LABEL", +"SYSTEM_METADATA_LABEL", +"GROUP", +"VALUE_ONLY" +], +"enumDescriptions": [ +"Filter type is unspecified. This is not valid in a well-formed request.", +"Filter on a resource label value", +"Filter on a metrics label value", +"Filter on a user metadata label value", +"Filter on a system metadata label value", +"Filter on a group id", +"Filter that only contains a value. The label_key field must be unset for filters of this type." +], +"type": "string" +}, +"labelKey": { +"description": "Optional. The key for the label. This must be omitted if the filter_type is VALUE_ONLY but is required otherwise.", +"type": "string" +}, +"stringArray": { +"$ref": "StringArray", +"description": "A list of possible string values for the filter" +}, +"stringArrayValue": { +"$ref": "StringArray", +"description": "An array of variable-length string values. If this field is set, value_type must be set to STRING_ARRAY or VALUE_TYPE_UNSPECIFIED" +}, +"stringValue": { +"description": "A variable-length string value. If this field is set, value_type must be set to STRING or VALUE_TYPE_UNSPECIFIED", +"type": "string" +}, +"templateVariable": { +"description": "The placeholder text that can be referenced in a filter string or MQL query. If omitted, the dashboard filter will be applied to all relevant widgets in the dashboard.", +"type": "string" +}, +"timeSeriesQuery": { +"$ref": "TimeSeriesQuery", +"description": "A query to run to fetch possible values for the filter. Only OpsAnalyticsQueries are supported" +}, +"valueType": { +"description": "The type of the filter value. If value_type is not provided, it will be inferred from the default_value. If neither value_type nor default_value is provided, value_type will be set to STRING by default.", +"enum": [ +"VALUE_TYPE_UNSPECIFIED", +"STRING", +"STRING_ARRAY" +], +"enumDescriptions": [ +"Value type is unspecified", +"String type", +"String array type" +], +"type": "string" +} +}, +"type": "object" +}, +"DataSet": { +"description": "Groups a time series query definition with charting options.", +"id": "DataSet", +"properties": { +"breakdowns": { +"description": "Optional. The collection of breakdowns to be applied to the dataset.", +"items": { +"$ref": "Breakdown" +}, +"type": "array" +}, +"dimensions": { +"description": "Optional. A collection of dimension columns.", +"items": { +"$ref": "Dimension" +}, +"type": "array" +}, +"legendTemplate": { +"description": "A template string for naming TimeSeries in the resulting data set. This should be a string with interpolations of the form ${label_name}, which will resolve to the label's value.", +"type": "string" +}, +"measures": { +"description": "Optional. A collection of measures.", +"items": { +"$ref": "Measure" +}, +"type": "array" +}, +"minAlignmentPeriod": { +"description": "Optional. The lower bound on data point frequency for this data set, implemented by specifying the minimum alignment period to use in a time series query For example, if the data is published once every 10 minutes, the min_alignment_period should be at least 10 minutes. It would not make sense to fetch and align data at one minute intervals.", +"format": "google-duration", +"type": "string" +}, +"plotType": { +"description": "How this data should be plotted on the chart.", +"enum": [ +"PLOT_TYPE_UNSPECIFIED", +"LINE", +"STACKED_AREA", +"STACKED_BAR", +"HEATMAP" +], +"enumDescriptions": [ +"Plot type is unspecified. The view will default to LINE.", +"The data is plotted as a set of lines (one line per series).", +"The data is plotted as a set of filled areas (one area per series), with the areas stacked vertically (the base of each area is the top of its predecessor, and the base of the first area is the x-axis). Since the areas do not overlap, each is filled with a different opaque color.", +"The data is plotted as a set of rectangular boxes (one box per series), with the boxes stacked vertically (the base of each box is the top of its predecessor, and the base of the first box is the x-axis). Since the boxes do not overlap, each is filled with a different opaque color.", +"The data is plotted as a heatmap. The series being plotted must have a DISTRIBUTION value type. The value of each bucket in the distribution is displayed as a color. This type is not currently available in the Stackdriver Monitoring application." +], +"type": "string" +}, +"sort": { +"description": "Optional. A collection of sort options, affects the order of the data and legend.", +"items": { +"$ref": "ColumnSortingOptions" +}, +"type": "array" +}, +"targetAxis": { +"description": "Optional. The target axis to use for plotting the metric.", +"enum": [ +"TARGET_AXIS_UNSPECIFIED", +"Y1", +"Y2" +], +"enumDescriptions": [ +"The target axis was not specified. Defaults to Y1.", +"The y_axis (the right axis of chart).", +"The y2_axis (the left axis of chart)." +], +"type": "string" +}, +"timeSeriesQuery": { +"$ref": "TimeSeriesQuery", +"description": "Required. Fields for querying time series data from the Stackdriver metrics API." +} +}, +"type": "object" +}, +"Dimension": { +"description": "A chart dimension. Dimensions are a structured label, class, or category for a set of measurements in your data.", +"id": "Dimension", +"properties": { +"column": { +"description": "Required. The name of the column in the source SQL query that is used to chart the dimension.", +"type": "string" +}, +"columnType": { +"description": "Optional. The type of the dimension column. This is relevant only if one of the bin_size fields is set. If it is empty, the type TIMESTAMP or INT64 will be assumed based on which bin_size field is set. If populated, this should be set to one of the following types: DATE, TIME, DATETIME, TIMESTAMP, BIGNUMERIC, INT64, NUMERIC, FLOAT64.", +"type": "string" +}, +"floatBinSize": { +"description": "Optional. float_bin_size is used when the column type used for a dimension is a floating point numeric column.", +"format": "double", +"type": "number" +}, +"maxBinCount": { +"description": "A limit to the number of bins generated. When 0 is specified, the maximum count is not enforced.", +"format": "int32", +"type": "integer" +}, +"numericBinSize": { +"description": "numeric_bin_size is used when the column type used for a dimension is numeric or string.", +"format": "int32", +"type": "integer" +}, +"sortColumn": { +"description": "The column name to sort on for binning. This column can be the same column as this dimension or any other column used as a measure in the results. If sort_order is set to NONE, then this value is not used.", +"type": "string" +}, +"sortOrder": { +"description": "The sort order applied to the sort column.", +"enum": [ +"SORT_ORDER_UNSPECIFIED", +"SORT_ORDER_NONE", +"SORT_ORDER_ASCENDING", +"SORT_ORDER_DESCENDING" +], +"enumDescriptions": [ +"An unspecified sort order. This option is invalid when sorting is required.", +"No sorting is applied.", +"The lowest-valued entries are selected first.", +"The highest-valued entries are selected first." +], +"type": "string" +}, +"timeBinSize": { +"description": "time_bin_size is used when the data type specified by column is a time type and the bin size is determined by a time duration. If column_type is DATE, this must be a whole value multiple of 1 day. If column_type is TIME, this must be less than or equal to 24 hours.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"DroppedLabels": { +"description": "A set of (label, value) pairs that were removed from a Distribution time series during aggregation and then added as an attachment to a Distribution.Exemplar.The full label set for the exemplars is constructed by using the dropped pairs in combination with the label values that remain on the aggregated Distribution time series. The constructed full label set can be used to identify the specific entity, such as the instance or job, which might be contributing to a long-tail. However, with dropped labels, the storage requirements are reduced because only the aggregated distribution values for a large group of time series are stored.Note that there are no guarantees on ordering of the labels from exemplar-to-exemplar and from distribution-to-distribution in the same stream, and there may be duplicates. It is up to clients to resolve any ambiguities.", +"id": "DroppedLabels", +"properties": { +"label": { +"additionalProperties": { +"type": "string" +}, +"description": "Map from label to its value, for all labels dropped in any aggregation.", +"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" +}, +"ErrorReportingPanel": { +"description": "A widget that displays a list of error groups.", +"id": "ErrorReportingPanel", +"properties": { +"projectNames": { +"description": "The resource name of the Google Cloud Platform project. Written as projects/{projectID} or projects/{projectNumber}, where {projectID} and {projectNumber} can be found in the Google Cloud console (https://support.google.com/cloud/answer/6158840).Examples: projects/my-project-123, projects/5551234.", +"items": { +"type": "string" +}, +"type": "array" +}, +"services": { +"description": "An identifier of the service, such as the name of the executable, job, or Google App Engine service name. This field is expected to have a low number of values that are relatively stable over time, as opposed to version, which can be changed whenever new code is deployed.Contains the service name for error reports extracted from Google App Engine logs or default if the App Engine default service is used.", +"items": { +"type": "string" +}, +"type": "array" +}, +"versions": { +"description": "Represents the source code version that the developer provided, which could represent a version label or a Git SHA-1 hash, for example. For App Engine standard environment, the version is set to the version of the app.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"EventAnnotation": { +"description": "Annotation configuration for one event type on a dashboard", +"id": "EventAnnotation", +"properties": { +"displayName": { +"description": "Solely for UI display. Should not be used programmatically.", +"type": "string" +}, +"enabled": { +"description": "Whether or not to show the events on the dashboard by default", +"type": "boolean" +}, +"eventType": { +"description": "The type of event to display.", +"enum": [ +"EVENT_TYPE_UNSPECIFIED", +"GKE_WORKLOAD_DEPLOYMENT", +"GKE_POD_CRASH", +"GKE_POD_UNSCHEDULABLE", +"GKE_CONTAINER_CREATION_FAILED", +"GKE_CLUSTER_CREATE_DELETE", +"GKE_CLUSTER_UPDATE", +"GKE_NODE_POOL_UPDATE", +"GKE_CLUSTER_AUTOSCALER", +"GKE_POD_AUTOSCALER", +"VM_TERMINATION", +"VM_GUEST_OS_ERROR", +"VM_START_FAILED", +"MIG_UPDATE", +"MIG_AUTOSCALER", +"CLOUD_RUN_DEPLOYMENT", +"CLOUD_SQL_FAILOVER", +"CLOUD_SQL_START_STOP", +"CLOUD_SQL_STORAGE", +"UPTIME_CHECK_FAILURE", +"CLOUD_ALERTING_ALERT", +"SERVICE_HEALTH_INCIDENT", +"SAP_BACKINT" +], +"enumDescriptions": [ +"No event type specified.", +"Patch/update of GKE workload.", +"Crash events for a GKE Pod.", +"Scheduling failures for GKE Pods.", +"Failure to create a GKE container.", +"Create/delete of a GKE cluster.", +"Update of a GKE cluster.", +"Update of a GKE node pool.", +"GKE cluster autoscaler event.", +"GKE pod autoscaler event.", +"Termination of a virtual machine.", +"Guest OS error on a virtual machine.", +"Start failure on a virtual machine.", +"Update of a managed instance group.", +"Autoscaler event for a managed instance group.", +"New deployment of a Cloud Run service.", +"Failover of a Cloud SQL instance.", +"Start/stop of a Cloud SQL instance.", +"Storage event for a Cloud SQL instance.", +"Failure of a Cloud Monitoring uptime check.", +"Alerts from Cloud Alerting", +"Incidents from Service Health", +"Agent for SAP Backint related events." +], +"type": "string" +}, +"filter": { +"description": "string filtering the events - event dependant. Example values: \"resource.labels.pod_name = 'pod-1'\" \"protoPayload.authenticationInfo.principalEmail='user@example.com'\" ", +"type": "string" +}, +"resourceNames": { +"description": "Per annotation level override for the names of logging resources to search for events. Currently only projects are supported. If both this field and the per annotation field is empty, it will default to the host project. Limit: 50 projects. For example: \u201cprojects/another-project-id\u201d ", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"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" +}, +"GaugeView": { +"description": "A gauge chart shows where the current value sits within a pre-defined range. The upper and lower bounds should define the possible range of values for the scorecard's query (inclusive).", +"id": "GaugeView", +"properties": { +"lowerBound": { +"description": "The lower bound for this gauge chart. The value of the chart should always be greater than or equal to this.", +"format": "double", +"type": "number" +}, +"upperBound": { +"description": "The upper bound for this gauge chart. The value of the chart should always be less than or equal to this.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"GridLayout": { +"description": "A basic layout divides the available space into vertical columns of equal width and arranges a list of widgets using a row-first strategy.", +"id": "GridLayout", +"properties": { +"columns": { +"description": "The number of columns into which the view's width is divided. If omitted or set to zero, a system default will be used while rendering.", +"format": "int64", +"type": "string" +}, +"widgets": { +"description": "The informational elements that are arranged into the columns row-first.", +"items": { +"$ref": "Widget" +}, +"type": "array" +} +}, +"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" +}, +"IncidentList": { +"description": "A widget that displays a list of incidents", +"id": "IncidentList", +"properties": { +"monitoredResources": { +"description": "Optional. The monitored resource for which incidents are listed. The resource doesn't need to be fully specified. That is, you can specify the resource type but not the values of the resource labels. The resource type and labels are used for filtering.", +"items": { +"$ref": "MonitoredResource" +}, +"type": "array" +}, +"policyNames": { +"description": "Optional. A list of alert policy names to filter the incident list by. Don't include the project ID prefix in the policy name. For example, use alertPolicies/utilization.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"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" +}, +"ListDashboardsResponse": { +"description": "The ListDashboards request.", +"id": "ListDashboardsResponse", +"properties": { +"dashboards": { +"description": "The list of requested dashboards.", +"items": { +"$ref": "Dashboard" +}, +"type": "array" +}, +"nextPageToken": { +"description": "If there are more results than have been returned, then this field is set to a non-empty value. To see the additional results, use that value as page_token in the next call to this method.", +"type": "string" +} +}, +"type": "object" +}, +"ListMetricsScopesByMonitoredProjectResponse": { +"description": "Response for the ListMetricsScopesByMonitoredProject method.", +"id": "ListMetricsScopesByMonitoredProjectResponse", +"properties": { +"metricsScopes": { +"description": "A set of all metrics scopes that the specified monitored project has been added to.", +"items": { +"$ref": "MetricsScope" +}, +"type": "array" +} +}, +"type": "object" +}, +"LogsPanel": { +"description": "A widget that displays a stream of log.", +"id": "LogsPanel", +"properties": { +"filter": { +"description": "A filter that chooses which log entries to return. See Advanced Logs Queries (https://cloud.google.com/logging/docs/view/advanced-queries). Only log entries that match the filter are returned. An empty filter matches all log entries.", +"type": "string" +}, +"resourceNames": { +"description": "The names of logging resources to collect logs for. Currently projects and storage views are supported. If empty, the widget will default to the host project.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Measure": { +"description": "A chart measure. Measures represent a measured property in your chart data such as rainfall in inches, number of units sold, revenue gained, etc.", +"id": "Measure", +"properties": { +"aggregationFunction": { +"$ref": "AggregationFunction", +"description": "Required. The aggregation function applied to the input column. This must not be set to \"none\" unless binning is disabled on the dimension. The aggregation function is used to group points on the dimension bins." +}, +"column": { +"description": "Required. The column name within in the dataset used for the measure.", +"type": "string" +} +}, +"type": "object" +}, +"MetricsScope": { +"description": "Represents a Metrics Scope (https://cloud.google.com/monitoring/settings#concept-scope) in Cloud Monitoring, which specifies one or more Google projects and zero or more AWS accounts to monitor together.", +"id": "MetricsScope", +"properties": { +"createTime": { +"description": "Output only. The time when this Metrics Scope was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"monitoredProjects": { +"description": "Output only. The list of projects monitored by this Metrics Scope.", +"items": { +"$ref": "MonitoredProject" +}, +"readOnly": true, +"type": "array" +}, +"name": { +"description": "Immutable. The resource name of the Monitoring Metrics Scope. On input, the resource name can be specified with the scoping project ID or number. On output, the resource name is specified with the scoping project number. Example: locations/global/metricsScopes/{SCOPING_PROJECT_ID_OR_NUMBER}", +"type": "string" +}, +"updateTime": { +"description": "Output only. The time when this Metrics Scope record was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"MonitoredProject": { +"description": "A project being monitored (https://cloud.google.com/monitoring/settings/multiple-projects#create-multi) by a Metrics Scope.", +"id": "MonitoredProject", +"properties": { +"createTime": { +"description": "Output only. The time when this MonitoredProject was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Immutable. The resource name of the MonitoredProject. On input, the resource name includes the scoping project ID and monitored project ID. On output, it contains the equivalent project numbers. Example: locations/global/metricsScopes/{SCOPING_PROJECT_ID_OR_NUMBER}/projects/{MONITORED_PROJECT_ID_OR_NUMBER}", +"type": "string" +} +}, +"type": "object" +}, +"MonitoredResource": { +"description": "An object representing a resource that can be used for monitoring, logging, billing, or other purposes. Examples include virtual machine instances, databases, and storage devices such as disks. The type field identifies a MonitoredResourceDescriptor object that describes the resource's schema. Information in the labels field identifies the actual resource and its attributes according to the schema. For example, a particular Compute Engine VM instance could be represented by the following object, because the MonitoredResourceDescriptor for \"gce_instance\" has labels \"project_id\", \"instance_id\" and \"zone\": { \"type\": \"gce_instance\", \"labels\": { \"project_id\": \"my-project\", \"instance_id\": \"12345678901234\", \"zone\": \"us-central1-a\" }} ", +"id": "MonitoredResource", +"properties": { +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Required. Values for all of the labels listed in the associated monitored resource descriptor. For example, Compute Engine VM instances use the labels \"project_id\", \"instance_id\", and \"zone\".", +"type": "object" +}, +"type": { +"description": "Required. The monitored resource type. This field must match the type field of a MonitoredResourceDescriptor object. For example, the type of a Compute Engine VM instance is gce_instance. For a list of types, see Monitoring 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" +}, +"MosaicLayout": { +"description": "A mosaic layout divides the available space into a grid of blocks, and overlays the grid with tiles. Unlike GridLayout, tiles may span multiple grid blocks and can be placed at arbitrary locations in the grid.", +"id": "MosaicLayout", +"properties": { +"columns": { +"description": "The number of columns in the mosaic grid. The number of columns must be between 1 and 48, inclusive.", +"format": "int32", +"type": "integer" +}, +"tiles": { +"description": "The tiles to display.", +"items": { +"$ref": "Tile" +}, +"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": "Contains metadata for longrunning operation for the edit Metrics Scope endpoints.", +"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 has been 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" +}, +"OpsAnalyticsQuery": { +"description": "Preview: A query that produces an aggregated response and supporting data. This is a preview feature and may be subject to change before final release.", +"id": "OpsAnalyticsQuery", +"properties": { +"sql": { +"description": "A SQL query to fetch time series, category series, or numeric series data.", +"type": "string" +} +}, +"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" +}, +"Parameter": { +"description": "Preview: Parameter value applied to the aggregation function. This is a preview feature and may be subject to change before final release.", +"id": "Parameter", +"properties": { +"doubleValue": { +"description": "A floating-point parameter value.", +"format": "double", +"type": "number" +}, +"intValue": { +"description": "An integer parameter value.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"PickTimeSeriesFilter": { +"description": "Describes a ranking-based time series filter. Each input time series is ranked with an aligner. The filter will allow up to num_time_series time series to pass through it, selecting them based on the relative ranking.For example, if ranking_method is METHOD_MEAN,direction is BOTTOM, and num_time_series is 3, then the 3 times series with the lowest mean values will pass through the filter.", +"id": "PickTimeSeriesFilter", +"properties": { +"direction": { +"description": "How to use the ranking to select time series that pass through the filter.", +"enum": [ +"DIRECTION_UNSPECIFIED", +"TOP", +"BOTTOM" +], +"enumDescriptions": [ +"Not allowed. You must specify a different Direction if you specify a PickTimeSeriesFilter.", +"Pass the highest num_time_series ranking inputs.", +"Pass the lowest num_time_series ranking inputs." +], +"type": "string" +}, +"interval": { +"$ref": "Interval", +"description": "Select the top N streams/time series within this time interval" +}, +"numTimeSeries": { +"description": "How many time series to allow to pass through the filter.", +"format": "int32", +"type": "integer" +}, +"rankingMethod": { +"description": "ranking_method is applied to each time series independently to produce the value which will be used to compare the time series to other time series.", +"enum": [ +"METHOD_UNSPECIFIED", +"METHOD_MEAN", +"METHOD_MAX", +"METHOD_MIN", +"METHOD_SUM", +"METHOD_LATEST" +], +"enumDescriptions": [ +"Not allowed. You must specify a different Method if you specify a PickTimeSeriesFilter.", +"Select the mean of all values.", +"Select the maximum value.", +"Select the minimum value.", +"Compute the sum of all values.", +"Select the most recent value." +], +"type": "string" +} +}, +"type": "object" +}, +"PieChart": { +"description": "A widget that displays timeseries data as a pie or a donut.", +"id": "PieChart", +"properties": { +"chartType": { +"description": "Required. Indicates the visualization type for the PieChart.", +"enum": [ +"PIE_CHART_TYPE_UNSPECIFIED", +"PIE", +"DONUT" +], +"enumDescriptions": [ +"The zero value. No type specified. Do not use.", +"A Pie type PieChart.", +"Similar to PIE, but the DONUT type PieChart has a hole in the middle." +], +"type": "string" +}, +"dataSets": { +"description": "Required. The queries for the chart's data.", +"items": { +"$ref": "PieChartDataSet" +}, +"type": "array" +}, +"showLabels": { +"description": "Optional. Indicates whether or not the pie chart should show slices' labels", +"type": "boolean" +} +}, +"type": "object" +}, +"PieChartDataSet": { +"description": "Groups a time series query definition.", +"id": "PieChartDataSet", +"properties": { +"dimensions": { +"description": "A dimension is a structured label, class, or category for a set of measurements in your data.", +"items": { +"$ref": "Dimension" +}, +"type": "array" +}, +"measures": { +"description": "A measure is a measured value of a property in your data. For example, rainfall in inches, number of units sold, revenue gained, etc.", +"items": { +"$ref": "Measure" +}, +"type": "array" +}, +"minAlignmentPeriod": { +"description": "Optional. The lower bound on data point frequency for this data set, implemented by specifying the minimum alignment period to use in a time series query. For example, if the data is published once every 10 minutes, the min_alignment_period should be at least 10 minutes. It would not make sense to fetch and align data at one minute intervals.", +"format": "google-duration", +"type": "string" +}, +"sliceNameTemplate": { +"description": "Optional. A template for the name of the slice. This name will be displayed in the legend and the tooltip of the pie chart. It replaces the auto-generated names for the slices. For example, if the template is set to ${resource.labels.zone}, the zone's value will be used for the name instead of the default name.", +"type": "string" +}, +"timeSeriesQuery": { +"$ref": "TimeSeriesQuery", +"description": "Required. The query for the PieChart. See, google.monitoring.dashboard.v1.TimeSeriesQuery." +} +}, +"type": "object" +}, +"QueryExemplarsRequest": { +"description": "QueryExemplarsRequest holds all parameters of the Prometheus upstream API for querying exemplars.", +"id": "QueryExemplarsRequest", +"properties": { +"end": { +"description": "The end time to evaluate the query for. Either floating point UNIX seconds or RFC3339 formatted timestamp.", +"type": "string" +}, +"query": { +"description": "A PromQL query string. Query language documentation: https://prometheus.io/docs/prometheus/latest/querying/basics/.", +"type": "string" +}, +"start": { +"description": "The start time to evaluate the query for. Either floating point UNIX seconds or RFC3339 formatted timestamp.", +"type": "string" +} +}, +"type": "object" +}, +"QueryInstantRequest": { +"description": "QueryInstantRequest holds all parameters of the Prometheus upstream instant query API plus GCM specific parameters.", +"id": "QueryInstantRequest", +"properties": { +"query": { +"description": "A PromQL query string. Query language documentation: https://prometheus.io/docs/prometheus/latest/querying/basics/.", +"type": "string" +}, +"time": { +"description": "The single point in time to evaluate the query for. Either floating point UNIX seconds or RFC3339 formatted timestamp.", +"type": "string" +}, +"timeout": { +"description": "An upper bound timeout for the query. Either a Prometheus duration string (https://prometheus.io/docs/prometheus/latest/querying/basics/#time-durations) or floating point seconds. This non-standard encoding must be used for compatibility with the open source API. Clients may still implement timeouts at the connection level while ignoring this field.", +"type": "string" +} +}, +"type": "object" +}, +"QueryLabelsRequest": { +"description": "QueryLabelsRequest holds all parameters of the Prometheus upstream API for returning a list of label names.", +"id": "QueryLabelsRequest", +"properties": { +"end": { +"description": "The end time to evaluate the query for. Either floating point UNIX seconds or RFC3339 formatted timestamp.", +"type": "string" +}, +"match": { +"description": "A list of matchers encoded in the Prometheus label matcher format to constrain the values to series that satisfy them.", +"type": "string" +}, +"start": { +"description": "The start time to evaluate the query for. Either floating point UNIX seconds or RFC3339 formatted timestamp.", +"type": "string" +} +}, +"type": "object" +}, +"QueryRangeRequest": { +"description": "QueryRangeRequest holds all parameters of the Prometheus upstream range query API plus GCM specific parameters.", +"id": "QueryRangeRequest", +"properties": { +"end": { +"description": "The end time to evaluate the query for. Either floating point UNIX seconds or RFC3339 formatted timestamp.", +"type": "string" +}, +"query": { +"description": "A PromQL query string. Query language documentation: https://prometheus.io/docs/prometheus/latest/querying/basics/.", +"type": "string" +}, +"start": { +"description": "The start time to evaluate the query for. Either floating point UNIX seconds or RFC3339 formatted timestamp.", +"type": "string" +}, +"step": { +"description": "The resolution of query result. Either a Prometheus duration string (https://prometheus.io/docs/prometheus/latest/querying/basics/#time-durations) or floating point seconds. This non-standard encoding must be used for compatibility with the open source API. Clients may still implement timeouts at the connection level while ignoring this field.", +"type": "string" +}, +"timeout": { +"description": "An upper bound timeout for the query. Either a Prometheus duration string (https://prometheus.io/docs/prometheus/latest/querying/basics/#time-durations) or floating point seconds. This non-standard encoding must be used for compatibility with the open source API. Clients may still implement timeouts at the connection level while ignoring this field.", +"type": "string" +} +}, +"type": "object" +}, +"QuerySeriesRequest": { +"description": "QuerySeries holds all parameters of the Prometheus upstream API for querying series.", +"id": "QuerySeriesRequest", +"properties": { +"end": { +"description": "The end time to evaluate the query for. Either floating point UNIX seconds or RFC3339 formatted timestamp.", +"type": "string" +}, +"start": { +"description": "The start time to evaluate the query for. Either floating point UNIX seconds or RFC3339 formatted timestamp.", +"type": "string" +} +}, +"type": "object" +}, +"RatioPart": { +"description": "Describes a query to build the numerator or denominator of a TimeSeriesFilterRatio.", +"id": "RatioPart", +"properties": { +"aggregation": { +"$ref": "Aggregation", +"description": "By default, the raw time series data is returned. Use this field to combine multiple time series for different views of the data." +}, +"filter": { +"description": "Required. The monitoring filter (https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.", +"type": "string" +} +}, +"type": "object" +}, +"Row": { +"description": "Defines the layout properties and content for a row.", +"id": "Row", +"properties": { +"weight": { +"description": "The relative weight of this row. The row weight is used to adjust the height of rows on the screen (relative to peers). Greater the weight, greater the height of the row on the screen. If omitted, a value of 1 is used while rendering.", +"format": "int64", +"type": "string" +}, +"widgets": { +"description": "The display widgets arranged horizontally in this row.", +"items": { +"$ref": "Widget" +}, +"type": "array" +} +}, +"type": "object" +}, +"RowLayout": { +"description": "A simplified layout that divides the available space into rows and arranges a set of widgets horizontally in each row.", +"id": "RowLayout", +"properties": { +"rows": { +"description": "The rows of content to display.", +"items": { +"$ref": "Row" +}, +"type": "array" +} +}, +"type": "object" +}, +"Scorecard": { +"description": "A widget showing the latest value of a metric, and how this value relates to one or more thresholds.", +"id": "Scorecard", +"properties": { +"blankView": { +"$ref": "Empty", +"description": "Will cause the Scorecard to show only the value, with no indicator to its value relative to its thresholds." +}, +"dimensions": { +"description": "Optional. A dimension is a structured label, class, or category for a set of measurements in your data.", +"items": { +"$ref": "Dimension" +}, +"type": "array" +}, +"gaugeView": { +"$ref": "GaugeView", +"description": "Will cause the scorecard to show a gauge chart." +}, +"measures": { +"description": "Optional. A measure is a measured value of a property in your data. For example, rainfall in inches, number of units sold, revenue gained, etc.", +"items": { +"$ref": "Measure" +}, +"type": "array" +}, +"sparkChartView": { +"$ref": "SparkChartView", +"description": "Will cause the scorecard to show a spark chart." +}, +"thresholds": { +"description": "The thresholds used to determine the state of the scorecard given the time series' current value. For an actual value x, the scorecard is in a danger state if x is less than or equal to a danger threshold that triggers below, or greater than or equal to a danger threshold that triggers above. Similarly, if x is above/below a warning threshold that triggers above/below, then the scorecard is in a warning state - unless x also puts it in a danger state. (Danger trumps warning.)As an example, consider a scorecard with the following four thresholds: { value: 90, category: 'DANGER', trigger: 'ABOVE', }, { value: 70, category: 'WARNING', trigger: 'ABOVE', }, { value: 10, category: 'DANGER', trigger: 'BELOW', }, { value: 20, category: 'WARNING', trigger: 'BELOW', } Then: values less than or equal to 10 would put the scorecard in a DANGER state, values greater than 10 but less than or equal to 20 a WARNING state, values strictly between 20 and 70 an OK state, values greater than or equal to 70 but less than 90 a WARNING state, and values greater than or equal to 90 a DANGER state.", +"items": { +"$ref": "Threshold" +}, +"type": "array" +}, +"timeSeriesQuery": { +"$ref": "TimeSeriesQuery", +"description": "Required. Fields for querying time series data from the Stackdriver metrics API." +} +}, +"type": "object" +}, +"SectionHeader": { +"description": "A widget that defines a new section header. Sections populate a table of contents and allow easier navigation of long-form content.", +"id": "SectionHeader", +"properties": { +"dividerBelow": { +"description": "Whether to insert a divider below the section in the table of contents", +"type": "boolean" +}, +"subtitle": { +"description": "The subtitle of the section", +"type": "string" +} +}, +"type": "object" +}, +"SingleViewGroup": { +"description": "A widget that groups the other widgets by using a dropdown menu. All widgets that are within the area spanned by the grouping widget are considered member widgets.", +"id": "SingleViewGroup", +"properties": {}, +"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" +}, +"SpanContext": { +"description": "The context of a span. This is attached to an Exemplar in Distribution values during aggregation.It contains the name of a span with format: projects/[PROJECT_ID_OR_NUMBER]/traces/[TRACE_ID]/spans/[SPAN_ID] ", +"id": "SpanContext", +"properties": { +"spanName": { +"description": "The resource name of the span. The format is: projects/[PROJECT_ID_OR_NUMBER]/traces/[TRACE_ID]/spans/[SPAN_ID] [TRACE_ID] is a unique identifier for a trace within a project; it is a 32-character hexadecimal encoding of a 16-byte array.[SPAN_ID] is a unique identifier for a span within a trace; it is a 16-character hexadecimal encoding of an 8-byte array.", +"type": "string" +} +}, +"type": "object" +}, +"SparkChartView": { +"description": "A sparkChart is a small chart suitable for inclusion in a table-cell or inline in text. This message contains the configuration for a sparkChart to show up on a Scorecard, showing recent trends of the scorecard's timeseries.", +"id": "SparkChartView", +"properties": { +"minAlignmentPeriod": { +"description": "The lower bound on data point frequency in the chart implemented by specifying the minimum alignment period to use in a time series query. For example, if the data is published once every 10 minutes it would not make sense to fetch and align data at one minute intervals. This field is optional and exists only as a hint.", +"format": "google-duration", +"type": "string" +}, +"sparkChartType": { +"description": "Required. The type of sparkchart to show in this chartView.", +"enum": [ +"SPARK_CHART_TYPE_UNSPECIFIED", +"SPARK_LINE", +"SPARK_BAR" +], +"enumDescriptions": [ +"Not allowed in well-formed requests.", +"The sparkline will be rendered as a small line chart.", +"The sparkbar will be rendered as a small bar chart." +], +"type": "string" +} +}, +"type": "object" +}, +"StatisticalTimeSeriesFilter": { +"description": "A filter that ranks streams based on their statistical relation to other streams in a request. Note: This field is deprecated and completely ignored by the API.", +"id": "StatisticalTimeSeriesFilter", +"properties": { +"numTimeSeries": { +"description": "How many time series to output.", +"format": "int32", +"type": "integer" +}, +"rankingMethod": { +"description": "rankingMethod is applied to a set of time series, and then the produced value for each individual time series is used to compare a given time series to others. These are methods that cannot be applied stream-by-stream, but rather require the full context of a request to evaluate time series.", +"enum": [ +"METHOD_UNSPECIFIED", +"METHOD_CLUSTER_OUTLIER" +], +"enumDescriptions": [ +"Not allowed in well-formed requests.", +"Compute the outlier score of each stream." +], +"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" +}, +"StringArray": { +"description": "An array of strings", +"id": "StringArray", +"properties": { +"values": { +"description": "The values of the array", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"TableDataSet": { +"description": "Groups a time series query definition with table options.", +"id": "TableDataSet", +"properties": { +"minAlignmentPeriod": { +"description": "Optional. The lower bound on data point frequency for this data set, implemented by specifying the minimum alignment period to use in a time series query For example, if the data is published once every 10 minutes, the min_alignment_period should be at least 10 minutes. It would not make sense to fetch and align data at one minute intervals.", +"format": "google-duration", +"type": "string" +}, +"tableDisplayOptions": { +"$ref": "TableDisplayOptions", +"description": "Optional. Table display options for configuring how the table is rendered." +}, +"tableTemplate": { +"description": "Optional. A template string for naming TimeSeries in the resulting data set. This should be a string with interpolations of the form ${label_name}, which will resolve to the label's value i.e. \"${resource.labels.project_id}.\"", +"type": "string" +}, +"timeSeriesQuery": { +"$ref": "TimeSeriesQuery", +"description": "Required. Fields for querying time series data from the Stackdriver metrics API." +} +}, +"type": "object" +}, +"TableDisplayOptions": { +"description": "Table display options that can be reused.", +"id": "TableDisplayOptions", +"properties": { +"shownColumns": { +"deprecated": true, +"description": "Optional. This field is unused and has been replaced by TimeSeriesTable.column_settings", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Text": { +"description": "A widget that displays textual content.", +"id": "Text", +"properties": { +"content": { +"description": "The text content to be displayed.", +"type": "string" +}, +"format": { +"description": "How the text content is formatted.", +"enum": [ +"FORMAT_UNSPECIFIED", +"MARKDOWN", +"RAW" +], +"enumDescriptions": [ +"Format is unspecified. Defaults to MARKDOWN.", +"The text contains Markdown formatting.", +"The text contains no special formatting." +], +"type": "string" +}, +"style": { +"$ref": "TextStyle", +"description": "How the text is styled" +} +}, +"type": "object" +}, +"TextStyle": { +"description": "Properties that determine how the title and content are styled", +"id": "TextStyle", +"properties": { +"backgroundColor": { +"description": "The background color as a hex string. \"#RRGGBB\" or \"#RGB\"", +"type": "string" +}, +"fontSize": { +"description": "Font sizes for both the title and content. The title will still be larger relative to the content.", +"enum": [ +"FONT_SIZE_UNSPECIFIED", +"FS_EXTRA_SMALL", +"FS_SMALL", +"FS_MEDIUM", +"FS_LARGE", +"FS_EXTRA_LARGE" +], +"enumDescriptions": [ +"No font size specified, will default to FS_LARGE", +"Extra small font size", +"Small font size", +"Medium font size", +"Large font size", +"Extra large font size" +], +"type": "string" +}, +"horizontalAlignment": { +"description": "The horizontal alignment of both the title and content", +"enum": [ +"HORIZONTAL_ALIGNMENT_UNSPECIFIED", +"H_LEFT", +"H_CENTER", +"H_RIGHT" +], +"enumDescriptions": [ +"No horizontal alignment specified, will default to H_LEFT", +"Left-align", +"Center-align", +"Right-align" +], +"type": "string" +}, +"padding": { +"description": "The amount of padding around the widget", +"enum": [ +"PADDING_SIZE_UNSPECIFIED", +"P_EXTRA_SMALL", +"P_SMALL", +"P_MEDIUM", +"P_LARGE", +"P_EXTRA_LARGE" +], +"enumDescriptions": [ +"No padding size specified, will default to P_EXTRA_SMALL", +"Extra small padding", +"Small padding", +"Medium padding", +"Large padding", +"Extra large padding" +], +"type": "string" +}, +"pointerLocation": { +"description": "The pointer location for this widget (also sometimes called a \"tail\")", +"enum": [ +"POINTER_LOCATION_UNSPECIFIED", +"PL_TOP", +"PL_RIGHT", +"PL_BOTTOM", +"PL_LEFT", +"PL_TOP_LEFT", +"PL_TOP_RIGHT", +"PL_RIGHT_TOP", +"PL_RIGHT_BOTTOM", +"PL_BOTTOM_RIGHT", +"PL_BOTTOM_LEFT", +"PL_LEFT_BOTTOM", +"PL_LEFT_TOP" +], +"enumDescriptions": [ +"No visual pointer", +"Placed in the middle of the top of the widget", +"Placed in the middle of the right side of the widget", +"Placed in the middle of the bottom of the widget", +"Placed in the middle of the left side of the widget", +"Placed on the left side of the top of the widget", +"Placed on the right side of the top of the widget", +"Placed on the top of the right side of the widget", +"Placed on the bottom of the right side of the widget", +"Placed on the right side of the bottom of the widget", +"Placed on the left side of the bottom of the widget", +"Placed on the bottom of the left side of the widget", +"Placed on the top of the left side of the widget" +], +"type": "string" +}, +"textColor": { +"description": "The text color as a hex string. \"#RRGGBB\" or \"#RGB\"", +"type": "string" +}, +"verticalAlignment": { +"description": "The vertical alignment of both the title and content", +"enum": [ +"VERTICAL_ALIGNMENT_UNSPECIFIED", +"V_TOP", +"V_CENTER", +"V_BOTTOM" +], +"enumDescriptions": [ +"No vertical alignment specified, will default to V_TOP", +"Top-align", +"Center-align", +"Bottom-align" +], +"type": "string" +} +}, +"type": "object" +}, +"Threshold": { +"description": "Defines a threshold for categorizing time series values.", +"id": "Threshold", +"properties": { +"color": { +"description": "The state color for this threshold. Color is not allowed in a XyChart.", +"enum": [ +"COLOR_UNSPECIFIED", +"YELLOW", +"RED" +], +"enumDescriptions": [ +"Color is unspecified. Not allowed in well-formed requests.", +"Crossing the threshold is \"concerning\" behavior.", +"Crossing the threshold is \"emergency\" behavior." +], +"type": "string" +}, +"direction": { +"description": "The direction for the current threshold. Direction is not allowed in a XyChart.", +"enum": [ +"DIRECTION_UNSPECIFIED", +"ABOVE", +"BELOW" +], +"enumDescriptions": [ +"Not allowed in well-formed requests.", +"The threshold will be considered crossed if the actual value is above the threshold value.", +"The threshold will be considered crossed if the actual value is below the threshold value." +], +"type": "string" +}, +"label": { +"description": "A label for the threshold.", +"type": "string" +}, +"targetAxis": { +"description": "The target axis to use for plotting the threshold. Target axis is not allowed in a Scorecard.", +"enum": [ +"TARGET_AXIS_UNSPECIFIED", +"Y1", +"Y2" +], +"enumDescriptions": [ +"The target axis was not specified. Defaults to Y1.", +"The y_axis (the right axis of chart).", +"The y2_axis (the left axis of chart)." +], +"type": "string" +}, +"value": { +"description": "The value of the threshold. The value should be defined in the native scale of the metric.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"Tile": { +"description": "A single tile in the mosaic. The placement and size of the tile are configurable.", +"id": "Tile", +"properties": { +"height": { +"description": "The height of the tile, measured in grid blocks. Tiles must have a minimum height of 1.", +"format": "int32", +"type": "integer" +}, +"widget": { +"$ref": "Widget", +"description": "The informational widget contained in the tile. For example an XyChart." +}, +"width": { +"description": "The width of the tile, measured in grid blocks. Tiles must have a minimum width of 1.", +"format": "int32", +"type": "integer" +}, +"xPos": { +"description": "The zero-indexed position of the tile in grid blocks relative to the left edge of the grid. Tiles must be contained within the specified number of columns. x_pos cannot be negative.", +"format": "int32", +"type": "integer" +}, +"yPos": { +"description": "The zero-indexed position of the tile in grid blocks relative to the top edge of the grid. y_pos cannot be negative.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"TimeSeriesFilter": { +"description": "A filter that defines a subset of time series data that is displayed in a widget. Time series data is fetched using the ListTimeSeries (https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list) method.", +"id": "TimeSeriesFilter", +"properties": { +"aggregation": { +"$ref": "Aggregation", +"description": "By default, the raw time series data is returned. Use this field to combine multiple time series for different views of the data." +}, +"filter": { +"description": "Required. The monitoring filter (https://cloud.google.com/monitoring/api/v3/filters) that identifies the metric types, resources, and projects to query.", +"type": "string" +}, +"pickTimeSeriesFilter": { +"$ref": "PickTimeSeriesFilter", +"description": "Ranking based time series filter." +}, +"secondaryAggregation": { +"$ref": "Aggregation", +"description": "Apply a second aggregation after aggregation is applied." +}, +"statisticalTimeSeriesFilter": { +"$ref": "StatisticalTimeSeriesFilter", +"deprecated": true, +"description": "Statistics based time series filter. Note: This field is deprecated and completely ignored by the API." +} +}, +"type": "object" +}, +"TimeSeriesFilterRatio": { +"description": "A pair of time series filters that define a ratio computation. The output time series is the pair-wise division of each aligned element from the numerator and denominator time series.", +"id": "TimeSeriesFilterRatio", +"properties": { +"denominator": { +"$ref": "RatioPart", +"description": "The denominator of the ratio." +}, +"numerator": { +"$ref": "RatioPart", +"description": "The numerator of the ratio." +}, +"pickTimeSeriesFilter": { +"$ref": "PickTimeSeriesFilter", +"description": "Ranking based time series filter." +}, +"secondaryAggregation": { +"$ref": "Aggregation", +"description": "Apply a second aggregation after the ratio is computed." +}, +"statisticalTimeSeriesFilter": { +"$ref": "StatisticalTimeSeriesFilter", +"deprecated": true, +"description": "Statistics based time series filter. Note: This field is deprecated and completely ignored by the API." +} +}, +"type": "object" +}, +"TimeSeriesQuery": { +"description": "TimeSeriesQuery collects the set of supported methods for querying time series data from the Stackdriver metrics API.", +"id": "TimeSeriesQuery", +"properties": { +"opsAnalyticsQuery": { +"$ref": "OpsAnalyticsQuery", +"description": "Preview: A query used to fetch a time series, category series, or numeric series with SQL. This is a preview feature and may be subject to change before final release." +}, +"outputFullDuration": { +"description": "Optional. If set, Cloud Monitoring will treat the full query duration as the alignment period so that there will be only 1 output value.*Note: This could override the configured alignment period except for the cases where a series of data points are expected, like - XyChart - Scorecard's spark chart", +"type": "boolean" +}, +"prometheusQuery": { +"description": "A query used to fetch time series with PromQL.", +"type": "string" +}, +"timeSeriesFilter": { +"$ref": "TimeSeriesFilter", +"description": "Filter parameters to fetch time series." +}, +"timeSeriesFilterRatio": { +"$ref": "TimeSeriesFilterRatio", +"description": "Parameters to fetch a ratio between two time series filters." +}, +"timeSeriesQueryLanguage": { +"description": "A query used to fetch time series with MQL.", +"type": "string" +}, +"unitOverride": { +"description": "The unit of data contained in fetched time series. If non-empty, this unit will override any unit that accompanies fetched data. The format is the same as the unit (https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors) field in MetricDescriptor.", +"type": "string" +} +}, +"type": "object" +}, +"TimeSeriesTable": { +"description": "A table that displays time series data.", +"id": "TimeSeriesTable", +"properties": { +"columnSettings": { +"description": "Optional. The list of the persistent column settings for the table.", +"items": { +"$ref": "ColumnSettings" +}, +"type": "array" +}, +"dataSets": { +"description": "Required. The data displayed in this table.", +"items": { +"$ref": "TableDataSet" +}, +"type": "array" +}, +"metricVisualization": { +"description": "Optional. Store rendering strategy", +"enum": [ +"METRIC_VISUALIZATION_UNSPECIFIED", +"NUMBER", +"BAR" +], +"enumDescriptions": [ +"Unspecified state", +"Default text rendering", +"Horizontal bar rendering" +], +"type": "string" +} +}, +"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" +}, +"Widget": { +"description": "Widget contains a single dashboard component and configuration of how to present the component in the dashboard.", +"id": "Widget", +"properties": { +"alertChart": { +"$ref": "AlertChart", +"description": "A chart of alert policy data." +}, +"blank": { +"$ref": "Empty", +"description": "A blank space." +}, +"collapsibleGroup": { +"$ref": "CollapsibleGroup", +"description": "A widget that groups the other widgets. All widgets that are within the area spanned by the grouping widget are considered member widgets." +}, +"errorReportingPanel": { +"$ref": "ErrorReportingPanel", +"description": "A widget that displays a list of error groups." +}, +"id": { +"description": "Optional. The widget id. Ids may be made up of alphanumerics, dashes and underscores. Widget ids are optional.", +"type": "string" +}, +"incidentList": { +"$ref": "IncidentList", +"description": "A widget that shows list of incidents." +}, +"logsPanel": { +"$ref": "LogsPanel", +"description": "A widget that shows a stream of logs." +}, +"pieChart": { +"$ref": "PieChart", +"description": "A widget that displays timeseries data as a pie chart." +}, +"scorecard": { +"$ref": "Scorecard", +"description": "A scorecard summarizing time series data." +}, +"sectionHeader": { +"$ref": "SectionHeader", +"description": "A widget that defines a section header for easier navigation of the dashboard." +}, +"singleViewGroup": { +"$ref": "SingleViewGroup", +"description": "A widget that groups the other widgets by using a dropdown menu." +}, +"text": { +"$ref": "Text", +"description": "A raw string or markdown displaying textual content." +}, +"timeSeriesTable": { +"$ref": "TimeSeriesTable", +"description": "A widget that displays time series data in a tabular format." +}, +"title": { +"description": "Optional. The title of the widget.", +"type": "string" +}, +"xyChart": { +"$ref": "XyChart", +"description": "A chart of time series data." +} +}, +"type": "object" +}, +"XyChart": { +"description": "A chart that displays data on a 2D (X and Y axes) plane.", +"id": "XyChart", +"properties": { +"chartOptions": { +"$ref": "ChartOptions", +"description": "Display options for the chart." +}, +"dataSets": { +"description": "Required. The data displayed in this chart.", +"items": { +"$ref": "DataSet" +}, +"type": "array" +}, +"thresholds": { +"description": "Threshold lines drawn horizontally across the chart.", +"items": { +"$ref": "Threshold" +}, +"type": "array" +}, +"timeshiftDuration": { +"description": "The duration used to display a comparison chart. A comparison chart simultaneously shows values from two similar-length time periods (e.g., week-over-week metrics). The duration must be positive, and it can only be applied to charts with data sets of LINE plot type.", +"format": "google-duration", +"type": "string" +}, +"xAxis": { +"$ref": "Axis", +"description": "The properties applied to the x-axis." +}, +"y2Axis": { +"$ref": "Axis", +"description": "The properties applied to the y2-axis." +}, +"yAxis": { +"$ref": "Axis", +"description": "The properties applied to the y-axis." +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Cloud Monitoring 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/mybusinessplaceactions.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/mybusinessplaceactions.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..c47e0f5885f5b34598e6c46a458ac61014678948 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/mybusinessplaceactions.v1.json @@ -0,0 +1,444 @@ +{ +"basePath": "", +"baseUrl": "https://mybusinessplaceactions.googleapis.com/", +"batchPath": "batch", +"canonicalName": "My Business Place Actions", +"description": "The My Business Place Actions API provides an interface for managing place action links of a location on Google. Note - If you have a quota of 0 after enabling the API, please request for GBP API access.", +"discoveryVersion": "v1", +"documentationLink": "https://developers.google.com/my-business/", +"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": "mybusinessplaceactions:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://mybusinessplaceactions.mtls.googleapis.com/", +"name": "mybusinessplaceactions", +"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": { +"locations": { +"resources": { +"placeActionLinks": { +"methods": { +"create": { +"description": "Creates a place action link associated with the specified location, and returns it. The request is considered duplicate if the `parent`, `place_action_link.uri` and `place_action_link.place_action_type` are the same as a previous request.", +"flatPath": "v1/locations/{locationsId}/placeActionLinks", +"httpMethod": "POST", +"id": "mybusinessplaceactions.locations.placeActionLinks.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The resource name of the location where to create this place action link. `locations/{location_id}`.", +"location": "path", +"pattern": "^locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/placeActionLinks", +"request": { +"$ref": "PlaceActionLink" +}, +"response": { +"$ref": "PlaceActionLink" +} +}, +"delete": { +"description": "Deletes a place action link from the specified location.", +"flatPath": "v1/locations/{locationsId}/placeActionLinks/{placeActionLinksId}", +"httpMethod": "DELETE", +"id": "mybusinessplaceactions.locations.placeActionLinks.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the place action link to remove from the location.", +"location": "path", +"pattern": "^locations/[^/]+/placeActionLinks/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +} +}, +"get": { +"description": "Gets the specified place action link.", +"flatPath": "v1/locations/{locationsId}/placeActionLinks/{placeActionLinksId}", +"httpMethod": "GET", +"id": "mybusinessplaceactions.locations.placeActionLinks.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the place action link to fetch.", +"location": "path", +"pattern": "^locations/[^/]+/placeActionLinks/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "PlaceActionLink" +} +}, +"list": { +"description": "Lists the place action links for the specified location.", +"flatPath": "v1/locations/{locationsId}/placeActionLinks", +"httpMethod": "GET", +"id": "mybusinessplaceactions.locations.placeActionLinks.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. A filter constraining the place action links to return. The response includes entries that match the filter. We support only the following filter: 1. place_action_type=XYZ where XYZ is a valid PlaceActionType.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. How many place action links to return per page. Default of 10. The minimum is 1.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. If specified, returns the next page of place action links.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the location whose place action links will be listed. `locations/{location_id}`.", +"location": "path", +"pattern": "^locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/placeActionLinks", +"response": { +"$ref": "ListPlaceActionLinksResponse" +} +}, +"patch": { +"description": "Updates the specified place action link and returns it.", +"flatPath": "v1/locations/{locationsId}/placeActionLinks/{placeActionLinksId}", +"httpMethod": "PATCH", +"id": "mybusinessplaceactions.locations.placeActionLinks.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Optional. The resource name, in the format `locations/{location_id}/placeActionLinks/{place_action_link_id}`. The name field will only be considered in UpdatePlaceActionLink and DeletePlaceActionLink requests for updating and deleting links respectively. However, it will be ignored in CreatePlaceActionLink request, where `place_action_link_id` will be assigned by the server on successful creation of a new link and returned as part of the response.", +"location": "path", +"pattern": "^locations/[^/]+/placeActionLinks/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. The specific fields to update. The only editable fields are `uri`, `place_action_type` and `is_preferred`. If the updated link already exists at the same location with the same `place_action_type` and `uri`, fails with an `ALREADY_EXISTS` error.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "PlaceActionLink" +}, +"response": { +"$ref": "PlaceActionLink" +} +} +} +} +} +}, +"placeActionTypeMetadata": { +"methods": { +"list": { +"description": "Returns the list of available place action types for a location or country.", +"flatPath": "v1/placeActionTypeMetadata", +"httpMethod": "GET", +"id": "mybusinessplaceactions.placeActionTypeMetadata.list", +"parameterOrder": [], +"parameters": { +"filter": { +"description": "Optional. A filter constraining the place action types to return metadata for. The response includes entries that match the filter. We support only the following filters: 1. location=XYZ where XYZ is a string indicating the resource name of a location, in the format `locations/{location_id}`. 2. region_code=XYZ where XYZ is a Unicode CLDR region code to find available action types. If no filter is provided, all place action types are returned.", +"location": "query", +"type": "string" +}, +"languageCode": { +"description": "Optional. The IETF BCP-47 code of language to get display names in. If this language is not available, they will be provided in English.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. How many action types to include per page. Default is 10, minimum is 1.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. If specified, the next page of place action type metadata is retrieved. The `pageToken` is returned when a call to `placeActionTypeMetadata.list` returns more results than can fit into the requested page size.", +"location": "query", +"type": "string" +} +}, +"path": "v1/placeActionTypeMetadata", +"response": { +"$ref": "ListPlaceActionTypeMetadataResponse" +} +} +} +} +}, +"revision": "20240707", +"rootUrl": "https://mybusinessplaceactions.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" +}, +"ListPlaceActionLinksResponse": { +"description": "Response message for PlaceActions.ListPlaceActionLinks.", +"id": "ListPlaceActionLinksResponse", +"properties": { +"nextPageToken": { +"description": "If there are more place action links than the requested page size, then this field is populated with a token to fetch the next page of results.", +"type": "string" +}, +"placeActionLinks": { +"description": "The returned list of place action links.", +"items": { +"$ref": "PlaceActionLink" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListPlaceActionTypeMetadataResponse": { +"description": "Response message for PlaceActions.ListPlaceActionTypeMetadata.", +"id": "ListPlaceActionTypeMetadataResponse", +"properties": { +"nextPageToken": { +"description": "If the number of action types exceeded the requested page size, this field will be populated with a token to fetch the next page on a subsequent call to `placeActionTypeMetadata.list`. If there are no more results, this field will not be present in the response.", +"type": "string" +}, +"placeActionTypeMetadata": { +"description": "A collection of metadata for the available place action types.", +"items": { +"$ref": "PlaceActionTypeMetadata" +}, +"type": "array" +} +}, +"type": "object" +}, +"PlaceActionLink": { +"description": "Represents a place action link and its attributes.", +"id": "PlaceActionLink", +"properties": { +"createTime": { +"description": "Output only. The time when the place action link was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"isEditable": { +"description": "Output only. Indicates whether this link can be edited by the client.", +"readOnly": true, +"type": "boolean" +}, +"isPreferred": { +"description": "Optional. Whether this link is preferred by the merchant. Only one link can be marked as preferred per place action type at a location. If a future request marks a different link as preferred for the same place action type, then the current preferred link (if any exists) will lose its preference.", +"type": "boolean" +}, +"name": { +"description": "Optional. The resource name, in the format `locations/{location_id}/placeActionLinks/{place_action_link_id}`. The name field will only be considered in UpdatePlaceActionLink and DeletePlaceActionLink requests for updating and deleting links respectively. However, it will be ignored in CreatePlaceActionLink request, where `place_action_link_id` will be assigned by the server on successful creation of a new link and returned as part of the response.", +"type": "string" +}, +"placeActionType": { +"description": "Required. The type of place action that can be performed using this link.", +"enum": [ +"PLACE_ACTION_TYPE_UNSPECIFIED", +"APPOINTMENT", +"ONLINE_APPOINTMENT", +"DINING_RESERVATION", +"FOOD_ORDERING", +"FOOD_DELIVERY", +"FOOD_TAKEOUT", +"SHOP_ONLINE" +], +"enumDescriptions": [ +"Not specified.", +"The action type is booking an appointment.", +"The action type is booking an online appointment.", +"The action type is making a dining reservation.", +"The action type is ordering food for delivery and/or takeout.", +"The action type is ordering food for delivery.", +"The action type is ordering food for takeout.", +"The action type is shopping, that can be delivery and/or pickup." +], +"type": "string" +}, +"providerType": { +"description": "Output only. Specifies the provider type.", +"enum": [ +"PROVIDER_TYPE_UNSPECIFIED", +"MERCHANT", +"AGGREGATOR_3P" +], +"enumDescriptions": [ +"Not specified.", +"A 1P provider such as a merchant, or an agency on behalf of a merchant.", +"A 3P aggregator, such as a `Reserve with Google` partner." +], +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The time when the place action link was last modified.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"uri": { +"description": "Required. The link uri. The same uri can be reused for different action types across different locations. However, only one place action link is allowed for each unique combination of (uri, place action type, location).", +"type": "string" +} +}, +"type": "object" +}, +"PlaceActionTypeMetadata": { +"description": "Metadata for supported place action types.", +"id": "PlaceActionTypeMetadata", +"properties": { +"displayName": { +"description": "The localized display name for the attribute, if available; otherwise, the English display name.", +"type": "string" +}, +"placeActionType": { +"description": "The place action type.", +"enum": [ +"PLACE_ACTION_TYPE_UNSPECIFIED", +"APPOINTMENT", +"ONLINE_APPOINTMENT", +"DINING_RESERVATION", +"FOOD_ORDERING", +"FOOD_DELIVERY", +"FOOD_TAKEOUT", +"SHOP_ONLINE" +], +"enumDescriptions": [ +"Not specified.", +"The action type is booking an appointment.", +"The action type is booking an online appointment.", +"The action type is making a dining reservation.", +"The action type is ordering food for delivery and/or takeout.", +"The action type is ordering food for delivery.", +"The action type is ordering food for takeout.", +"The action type is shopping, that can be delivery and/or pickup." +], +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "My Business Place Actions 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/networkconnectivity.v1alpha1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/networkconnectivity.v1alpha1.json new file mode 100644 index 0000000000000000000000000000000000000000..bdbac002515076b5dc8c00c4f3f4ff16a75b1d27 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/networkconnectivity.v1alpha1.json @@ -0,0 +1,1855 @@ +{ +"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://networkconnectivity.googleapis.com/", +"batchPath": "batch", +"canonicalName": "networkconnectivity", +"description": "This API enables connectivity with and between Google Cloud resources.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/network-connectivity/docs/reference/networkconnectivity/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": "networkconnectivity:v1alpha1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://networkconnectivity.mtls.googleapis.com/", +"name": "networkconnectivity", +"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": "v1alpha1/projects/{projectsId}/locations/{locationsId}", +"httpMethod": "GET", +"id": "networkconnectivity.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": "networkconnectivity.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": { +"global": { +"resources": { +"hubs": { +"methods": { +"create": { +"description": "Creates a new Network Connectivity Center hub in the specified project.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/global/hubs", +"httpMethod": "POST", +"id": "networkconnectivity.projects.locations.global.hubs.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"hubId": { +"description": "Optional. Unique id for the Hub to create.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource's name of the Hub.", +"location": "path", +"pattern": "^projects/[^/]+/locations/global$", +"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 guarantees that a request doesn't result in creation of duplicate commitments for at least 60 minutes. 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}/hubs", +"request": { +"$ref": "Hub" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a Network Connectivity Center hub.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/global/hubs/{hubsId}", +"httpMethod": "DELETE", +"id": "networkconnectivity.projects.locations.global.hubs.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the Hub to delete.", +"location": "path", +"pattern": "^projects/[^/]+/locations/global/hubs/[^/]+$", +"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 guarantees that a request doesn't result in creation of duplicate commitments for at least 60 minutes. 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": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details about a Network Connectivity Center hub.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/global/hubs/{hubsId}", +"httpMethod": "GET", +"id": "networkconnectivity.projects.locations.global.hubs.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the Hub resource to get.", +"location": "path", +"pattern": "^projects/[^/]+/locations/global/hubs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"response": { +"$ref": "Hub" +}, +"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": "v1alpha1/projects/{projectsId}/locations/global/hubs/{hubsId}:getIamPolicy", +"httpMethod": "GET", +"id": "networkconnectivity.projects.locations.global.hubs.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/hubs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists the Network Connectivity Center hubs associated with a given project.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/global/hubs", +"httpMethod": "GET", +"id": "networkconnectivity.projects.locations.global.hubs.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "A filter expression that filters the results listed in the response.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Sort the results by a certain order.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results per page that should be returned.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource's name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/global$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+parent}/hubs", +"response": { +"$ref": "ListHubsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the description and/or labels of a Network Connectivity Center hub.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/global/hubs/{hubsId}", +"httpMethod": "PATCH", +"id": "networkconnectivity.projects.locations.global.hubs.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Immutable. The name of a Hub resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/global/hubs/[^/]+$", +"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 guarantees that a request doesn't result in creation of duplicate commitments for at least 60 minutes. 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 Hub 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": "v1alpha1/{+name}", +"request": { +"$ref": "Hub" +}, +"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": "v1alpha1/projects/{projectsId}/locations/global/hubs/{hubsId}:setIamPolicy", +"httpMethod": "POST", +"id": "networkconnectivity.projects.locations.global.hubs.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/hubs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+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": "v1alpha1/projects/{projectsId}/locations/global/hubs/{hubsId}:testIamPermissions", +"httpMethod": "POST", +"id": "networkconnectivity.projects.locations.global.hubs.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/hubs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"internalRanges": { +"methods": { +"create": { +"description": "Creates a new internal range in a given project and location.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/internalRanges", +"httpMethod": "POST", +"id": "networkconnectivity.projects.locations.internalRanges.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"internalRangeId": { +"description": "Optional. Resource ID (i.e. 'foo' in '[...]/projects/p/locations/l/internalRanges/foo') See https://google.aip.dev/122#resource-id-segments Unique per location.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource's name of the InternalRange.", +"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 the 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}/internalRanges", +"request": { +"$ref": "InternalRange" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a single internal range.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/internalRanges/{internalRangesId}", +"httpMethod": "DELETE", +"id": "networkconnectivity.projects.locations.internalRanges.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the InternalRange to delete.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/internalRanges/[^/]+$", +"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 the 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": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details of a single internal range.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/internalRanges/{internalRangesId}", +"httpMethod": "GET", +"id": "networkconnectivity.projects.locations.internalRanges.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the InternalRange to get.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/internalRanges/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"response": { +"$ref": "InternalRange" +}, +"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": "v1alpha1/projects/{projectsId}/locations/{locationsId}/internalRanges/{internalRangesId}:getIamPolicy", +"httpMethod": "GET", +"id": "networkconnectivity.projects.locations.internalRanges.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/[^/]+/internalRanges/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists internal ranges in a given project and location.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/internalRanges", +"httpMethod": "GET", +"id": "networkconnectivity.projects.locations.internalRanges.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "A filter expression that filters the results listed in the response.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Sort the results by a certain order.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results per page that should be returned.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource's name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+parent}/internalRanges", +"response": { +"$ref": "ListInternalRangesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the parameters of a single internal range.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/internalRanges/{internalRangesId}", +"httpMethod": "PATCH", +"id": "networkconnectivity.projects.locations.internalRanges.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Immutable. The name of an internal range. Format: projects/{project}/locations/{location}/internalRanges/{internal_range} See: https://google.aip.dev/122#fields-representing-resource-names", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/internalRanges/[^/]+$", +"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 the 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 internal range 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": "v1alpha1/{+name}", +"request": { +"$ref": "InternalRange" +}, +"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": "v1alpha1/projects/{projectsId}/locations/{locationsId}/internalRanges/{internalRangesId}:setIamPolicy", +"httpMethod": "POST", +"id": "networkconnectivity.projects.locations.internalRanges.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/[^/]+/internalRanges/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+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": "v1alpha1/projects/{projectsId}/locations/{locationsId}/internalRanges/{internalRangesId}:testIamPermissions", +"httpMethod": "POST", +"id": "networkconnectivity.projects.locations.internalRanges.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/[^/]+/internalRanges/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+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": "v1alpha1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel", +"httpMethod": "POST", +"id": "networkconnectivity.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": "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": "v1alpha1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "DELETE", +"id": "networkconnectivity.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": "networkconnectivity.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": "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": "v1alpha1/projects/{projectsId}/locations/{locationsId}/operations", +"httpMethod": "GET", +"id": "networkconnectivity.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": "GoogleLongrunningListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"spokes": { +"methods": { +"create": { +"description": "Creates a Network Connectivity Center spoke.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/spokes", +"httpMethod": "POST", +"id": "networkconnectivity.projects.locations.spokes.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent's resource name of the Spoke.", +"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 guarantees that a request doesn't result in creation of duplicate commitments for at least 60 minutes. 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" +}, +"spokeId": { +"description": "Optional. Unique id for the Spoke to create.", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha1/{+parent}/spokes", +"request": { +"$ref": "Spoke" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a Network Connectivity Center spoke.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/spokes/{spokesId}", +"httpMethod": "DELETE", +"id": "networkconnectivity.projects.locations.spokes.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the Spoke to delete.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/spokes/[^/]+$", +"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 guarantees that a request doesn't result in creation of duplicate commitments for at least 60 minutes. 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": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets details about a Network Connectivity Center spoke.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/spokes/{spokesId}", +"httpMethod": "GET", +"id": "networkconnectivity.projects.locations.spokes.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of Spoke resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/spokes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"response": { +"$ref": "Spoke" +}, +"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": "v1alpha1/projects/{projectsId}/locations/{locationsId}/spokes/{spokesId}:getIamPolicy", +"httpMethod": "GET", +"id": "networkconnectivity.projects.locations.spokes.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/[^/]+/spokes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists the Network Connectivity Center spokes in a specified project and location.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/spokes", +"httpMethod": "GET", +"id": "networkconnectivity.projects.locations.spokes.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "A filter expression that filters the results listed in the response.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Sort the results by a certain order.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of results per page that should be returned.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent's resource name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+parent}/spokes", +"response": { +"$ref": "ListSpokesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the parameters of a Network Connectivity Center spoke.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/spokes/{spokesId}", +"httpMethod": "PATCH", +"id": "networkconnectivity.projects.locations.spokes.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Immutable. The name of a Spoke resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/spokes/[^/]+$", +"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 guarantees that a request doesn't result in creation of duplicate commitments for at least 60 minutes. 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 Spoke 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": "v1alpha1/{+name}", +"request": { +"$ref": "Spoke" +}, +"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": "v1alpha1/projects/{projectsId}/locations/{locationsId}/spokes/{spokesId}:setIamPolicy", +"httpMethod": "POST", +"id": "networkconnectivity.projects.locations.spokes.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/[^/]+/spokes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+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": "v1alpha1/projects/{projectsId}/locations/{locationsId}/spokes/{spokesId}:testIamPermissions", +"httpMethod": "POST", +"id": "networkconnectivity.projects.locations.spokes.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/[^/]+/spokes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +}, +"revision": "20250101", +"rootUrl": "https://networkconnectivity.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" +}, +"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" +}, +"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" +}, +"Hub": { +"description": "Network Connectivity Center is a hub-and-spoke abstraction for network connectivity management in Google Cloud. It reduces operational complexity through a simple, centralized connectivity management model. Following is the resource message of a hub.", +"id": "Hub", +"properties": { +"createTime": { +"description": "Time when the Hub was created.", +"format": "google-datetime", +"type": "string" +}, +"description": { +"description": "Short description of the hub resource.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "User-defined labels.", +"type": "object" +}, +"name": { +"description": "Immutable. The name of a Hub resource.", +"type": "string" +}, +"spokes": { +"deprecated": true, +"description": "Output only. A list of the URIs of all attached spokes. This field is deprecated and will not be included in future API versions. Call ListSpokes on each region instead.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"state": { +"description": "Output only. The current lifecycle state of this Hub.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"ACTIVE", +"DELETING", +"UPDATING" +], +"enumDescriptions": [ +"No state information available", +"The resource's create operation is in progress", +"The resource is active", +"The resource's Delete operation is in progress", +"The resource's Update operation is in progress" +], +"readOnly": true, +"type": "string" +}, +"uniqueId": { +"description": "Output only. Google-generated UUID for this resource. This is unique across all Hub resources. If a Hub resource is deleted and another with the same name is created, it gets a different unique_id.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Time when the Hub was updated.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"InternalRange": { +"description": "The internal range resource for IPAM operations within a VPC network. Used to represent a private address range along with behavioral characteristics of that range (its usage and peering behavior). Networking resources can link to this range if they are created as belonging to it.", +"id": "InternalRange", +"properties": { +"createTime": { +"description": "Time when the internal range was created.", +"format": "google-datetime", +"type": "string" +}, +"description": { +"description": "A description of this resource.", +"type": "string" +}, +"immutable": { +"description": "Optional. Immutable ranges cannot have their fields modified, except for labels and description.", +"type": "boolean" +}, +"ipCidrRange": { +"description": "IP range that this internal range defines. NOTE: IPv6 ranges are limited to usage=EXTERNAL_TO_VPC and peering=FOR_SELF. NOTE: For IPv6 Ranges this field is compulsory, i.e. the address range must be specified explicitly.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "User-defined labels.", +"type": "object" +}, +"migration": { +"$ref": "Migration", +"description": "Optional. Must be present if usage is set to FOR_MIGRATION. This field is for internal use." +}, +"name": { +"description": "Immutable. The name of an internal range. Format: projects/{project}/locations/{location}/internalRanges/{internal_range} See: https://google.aip.dev/122#fields-representing-resource-names", +"type": "string" +}, +"network": { +"description": "The URL or resource ID of the network in which to reserve the internal range. The network cannot be deleted if there are any reserved internal ranges referring to it. Legacy networks are not supported. For example: https://www.googleapis.com/compute/v1/projects/{project}/locations/global/networks/{network} projects/{project}/locations/global/networks/{network} {network}", +"type": "string" +}, +"overlaps": { +"description": "Optional. Types of resources that are allowed to overlap with the current internal range.", +"items": { +"enum": [ +"OVERLAP_UNSPECIFIED", +"OVERLAP_ROUTE_RANGE", +"OVERLAP_EXISTING_SUBNET_RANGE" +], +"enumDescriptions": [ +"No overlap overrides.", +"Allow creation of static routes more specific than the current internal range.", +"Allow creation of internal ranges that overlap with existing subnets." +], +"type": "string" +}, +"type": "array" +}, +"peering": { +"description": "The type of peering set for this internal range.", +"enum": [ +"PEERING_UNSPECIFIED", +"FOR_SELF", +"FOR_PEER", +"NOT_SHARED" +], +"enumDescriptions": [ +"If Peering is left unspecified in CreateInternalRange or UpdateInternalRange, it will be defaulted to FOR_SELF.", +"This is the default behavior and represents the case that this internal range is intended to be used in the VPC in which it is created and is accessible from its peers. This implies that peers or peers-of-peers cannot use this range.", +"This behavior can be set when the internal range is being reserved for usage by the peers. This means that no resource within the VPC in which it is being created can use this to associate with a VPC resource, but one of the peers can. This represents donating a range for peers to use.", +"This behavior can be set when the internal range is being reserved for usage by the VPC in which it is created but not shared with the peers. In a sense it is local to the VPC. This can be used to create internal ranges for various purposes like HTTP_INTERNAL_LOAD_BALANCER or for Interconnect routes that are not shared with peers. This also implies that peers cannot use this range in a way that is visible to this VPC, but can re-use this range as long as it is NOT_SHARED from the peer VPC, too." +], +"type": "string" +}, +"prefixLength": { +"description": "An alternative to ip_cidr_range. Can be set when trying to create an IPv4 reservation that automatically finds a free range of the given size. If both ip_cidr_range and prefix_length are set, there is an error if the range sizes do not match. Can also be used during updates to change the range size. NOTE: For IPv6 this field only works if ip_cidr_range is set as well, and both fields must match. In other words, with IPv6 this field only works as a redundant parameter.", +"format": "int32", +"type": "integer" +}, +"targetCidrRange": { +"description": "Optional. Can be set to narrow down or pick a different address space while searching for a free range. If not set, defaults to the \"10.0.0.0/8\" address space. This can be used to search in other rfc-1918 address spaces like \"172.16.0.0/12\" and \"192.168.0.0/16\" or non-rfc-1918 address spaces used in the VPC.", +"items": { +"type": "string" +}, +"type": "array" +}, +"updateTime": { +"description": "Time when the internal range was updated.", +"format": "google-datetime", +"type": "string" +}, +"usage": { +"description": "The type of usage set for this internal range.", +"enum": [ +"USAGE_UNSPECIFIED", +"FOR_VPC", +"EXTERNAL_TO_VPC", +"FOR_MIGRATION" +], +"enumDescriptions": [ +"Unspecified usage is allowed in calls which identify the resource by other fields and do not need Usage set to complete. These are, i.e.: GetInternalRange and DeleteInternalRange. Usage needs to be specified explicitly in CreateInternalRange or UpdateInternalRange calls.", +"A VPC resource can use the reserved CIDR block by associating it with the internal range resource if usage is set to FOR_VPC.", +"Ranges created with EXTERNAL_TO_VPC cannot be associated with VPC resources and are meant to block out address ranges for various use cases such as usage on-premises, with dynamic route announcements via Interconnect.", +"Ranges created FOR_MIGRATION can be used to lock a CIDR range between a source and target subnet. If usage is set to FOR_MIGRATION the peering value has to be set to FOR_SELF or default to FOR_SELF when unset. This value is for internal use." +], +"type": "string" +}, +"users": { +"description": "Output only. The list of resources that refer to this internal range. Resources that use the internal range for their range allocation are referred to as users of the range. Other resources mark themselves as users while doing so by creating a reference to this internal range. Having a user, based on this reference, prevents deletion of the internal range that is referred to. Can be empty.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"ListHubsResponse": { +"description": "Response for HubService.ListHubs method.", +"id": "ListHubsResponse", +"properties": { +"hubs": { +"description": "Hubs to be returned.", +"items": { +"$ref": "Hub" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The next pagination token in the List response. It should be used as page_token for the following request. An empty value means no more result.", +"type": "string" +}, +"unreachable": { +"description": "Locations that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListInternalRangesResponse": { +"description": "Response for InternalRange.ListInternalRanges", +"id": "ListInternalRangesResponse", +"properties": { +"internalRanges": { +"description": "Internal range to be returned.", +"items": { +"$ref": "InternalRange" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The next pagination token in the List response. It should be used as page_token for the following request. An empty value means no more result.", +"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" +}, +"ListSpokesResponse": { +"description": "The response for HubService.ListSpokes.", +"id": "ListSpokesResponse", +"properties": { +"nextPageToken": { +"description": "The next pagination token in the List response. It should be used as page_token for the following request. An empty value means no more result.", +"type": "string" +}, +"spokes": { +"description": "Spokes to be returned.", +"items": { +"$ref": "Spoke" +}, +"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" +}, +"Migration": { +"description": "Specification for migration with source and target resource names.", +"id": "Migration", +"properties": { +"source": { +"description": "Immutable. Resource path as an URI of the source resource, for example a subnet. The project for the source resource should match the project for the InternalRange. An example: /projects/{project}/regions/{region}/subnetworks/{subnet}", +"type": "string" +}, +"target": { +"description": "Immutable. Resource path of the target resource. The target project can be different, as in the cases when migrating to peer networks. The resource For example: /projects/{project}/regions/{region}/subnetworks/{subnet}", +"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" +}, +"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" +}, +"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" +}, +"RouterApplianceInstance": { +"description": "RouterAppliance represents a Router appliance which is specified by a VM URI and a NIC address.", +"id": "RouterApplianceInstance", +"properties": { +"ipAddress": { +"description": "The IP address of the network interface to use for peering.", +"type": "string" +}, +"networkInterface": { +"deprecated": true, +"type": "string" +}, +"virtualMachine": { +"description": "The URI of the virtual machine 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." +}, +"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" +}, +"Spoke": { +"description": "A Spoke is an abstraction of a network attachment being attached to a Hub. A Spoke can be underlying a VPN tunnel, a VLAN (interconnect) attachment, a Router appliance, etc.", +"id": "Spoke", +"properties": { +"createTime": { +"description": "The time when the Spoke was created.", +"format": "google-datetime", +"type": "string" +}, +"description": { +"description": "Short description of the spoke resource", +"type": "string" +}, +"hub": { +"description": "The resource URL of the hub resource that the spoke is attached to", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "User-defined labels.", +"type": "object" +}, +"linkedInterconnectAttachments": { +"description": "The URIs of linked interconnect attachment resources", +"items": { +"type": "string" +}, +"type": "array" +}, +"linkedRouterApplianceInstances": { +"description": "The URIs of linked Router appliance resources", +"items": { +"$ref": "RouterApplianceInstance" +}, +"type": "array" +}, +"linkedVpnTunnels": { +"description": "The URIs of linked VPN tunnel resources", +"items": { +"type": "string" +}, +"type": "array" +}, +"name": { +"description": "Immutable. The name of a Spoke resource.", +"type": "string" +}, +"state": { +"description": "Output only. The current lifecycle state of this Hub.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"ACTIVE", +"DELETING", +"UPDATING" +], +"enumDescriptions": [ +"No state information available", +"The resource's create operation is in progress", +"The resource is active", +"The resource's Delete operation is in progress", +"The resource's Update operation is in progress" +], +"readOnly": true, +"type": "string" +}, +"uniqueId": { +"description": "Output only. Google-generated UUID for this resource. This is unique across all Spoke resources. If a Spoke resource is deleted and another with the same name is created, it gets a different unique_id.", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "The time when the Spoke was updated.", +"format": "google-datetime", +"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": "Network Connectivity 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/osconfig.v1beta.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/osconfig.v1beta.json new file mode 100644 index 0000000000000000000000000000000000000000..83b7f23c7251e23ee03ac2c4104e3a6fcb4f7115 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/osconfig.v1beta.json @@ -0,0 +1,2605 @@ +{ +"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:v1beta", +"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": { +"guestPolicies": { +"methods": { +"create": { +"description": "Create an OS Config guest policy.", +"flatPath": "v1beta/projects/{projectsId}/guestPolicies", +"httpMethod": "POST", +"id": "osconfig.projects.guestPolicies.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"guestPolicyId": { +"description": "Required. The logical name of the guest policy 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 resource name of the parent using one of the following forms: `projects/{project_number}`.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+parent}/guestPolicies", +"request": { +"$ref": "GuestPolicy" +}, +"response": { +"$ref": "GuestPolicy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Delete an OS Config guest policy.", +"flatPath": "v1beta/projects/{projectsId}/guestPolicies/{guestPoliciesId}", +"httpMethod": "DELETE", +"id": "osconfig.projects.guestPolicies.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the guest policy using one of the following forms: `projects/{project_number}/guestPolicies/{guest_policy_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/guestPolicies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Get an OS Config guest policy.", +"flatPath": "v1beta/projects/{projectsId}/guestPolicies/{guestPoliciesId}", +"httpMethod": "GET", +"id": "osconfig.projects.guestPolicies.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the guest policy using one of the following forms: `projects/{project_number}/guestPolicies/{guest_policy_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/guestPolicies/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+name}", +"response": { +"$ref": "GuestPolicy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Get a page of OS Config guest policies.", +"flatPath": "v1beta/projects/{projectsId}/guestPolicies", +"httpMethod": "GET", +"id": "osconfig.projects.guestPolicies.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of guest policies to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A pagination token returned from a previous call to `ListGuestPolicies` that indicates where this listing should continue from.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the parent using one of the following forms: `projects/{project_number}`.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+parent}/guestPolicies", +"response": { +"$ref": "ListGuestPoliciesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Update an OS Config guest policy.", +"flatPath": "v1beta/projects/{projectsId}/guestPolicies/{guestPoliciesId}", +"httpMethod": "PATCH", +"id": "osconfig.projects.guestPolicies.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Unique name of the resource in this project using one of the following forms: `projects/{project_number}/guestPolicies/{guest_policy_id}`.", +"location": "path", +"pattern": "^projects/[^/]+/guestPolicies/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Field mask that controls which fields of the guest policy should be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta/{+name}", +"request": { +"$ref": "GuestPolicy" +}, +"response": { +"$ref": "GuestPolicy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"patchDeployments": { +"methods": { +"create": { +"description": "Create an OS Config patch deployment.", +"flatPath": "v1beta/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": "v1beta/{+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": "v1beta/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": "v1beta/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Get an OS Config patch deployment.", +"flatPath": "v1beta/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": "v1beta/{+name}", +"response": { +"$ref": "PatchDeployment" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Get a page of OS Config patch deployments.", +"flatPath": "v1beta/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": "v1beta/{+parent}/patchDeployments", +"response": { +"$ref": "ListPatchDeploymentsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Update an OS Config patch deployment.", +"flatPath": "v1beta/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": "v1beta/{+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": "v1beta/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": "v1beta/{+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": "v1beta/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": "v1beta/{+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": "v1beta/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": "v1beta/{+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": "v1beta/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": "v1beta/{+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": "v1beta/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": "v1beta/{+name}", +"response": { +"$ref": "PatchJob" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Get a list of patch jobs.", +"flatPath": "v1beta/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": "v1beta/{+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": "v1beta/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": "v1beta/{+parent}/instanceDetails", +"response": { +"$ref": "ListPatchJobInstanceDetailsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"zones": { +"resources": { +"instances": { +"methods": { +"lookupEffectiveGuestPolicy": { +"description": "Lookup the effective guest policy that applies to a VM instance. This lookup merges all policies that are assigned to the instance ancestry.", +"flatPath": "v1beta/projects/{projectsId}/zones/{zonesId}/instances/{instancesId}:lookupEffectiveGuestPolicy", +"httpMethod": "POST", +"id": "osconfig.projects.zones.instances.lookupEffectiveGuestPolicy", +"parameterOrder": [ +"instance" +], +"parameters": { +"instance": { +"description": "Required. The VM instance whose policies are being looked up.", +"location": "path", +"pattern": "^projects/[^/]+/zones/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta/{+instance}:lookupEffectiveGuestPolicy", +"request": { +"$ref": "LookupEffectiveGuestPolicyRequest" +}, +"response": { +"$ref": "EffectiveGuestPolicy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +}, +"revision": "20241201", +"rootUrl": "https://osconfig.googleapis.com/", +"schemas": { +"AptRepository": { +"description": "Represents a single Apt package repository. This repository is added to a repo file that is stored at `/etc/apt/sources.list.d/google_osconfig.list`.", +"id": "AptRepository", +"properties": { +"archiveType": { +"description": "Type of archive files in this repository. The default behavior is DEB.", +"enum": [ +"ARCHIVE_TYPE_UNSPECIFIED", +"DEB", +"DEB_SRC" +], +"enumDescriptions": [ +"Unspecified.", +"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` containing all the keys in any applied guest policy.", +"type": "string" +}, +"uri": { +"description": "Required. URI for this repository.", +"type": "string" +} +}, +"type": "object" +}, +"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" +}, +"Assignment": { +"description": "An assignment represents the group or groups of VM instances that the policy applies to. If an assignment is empty, it applies to all VM instances. Otherwise, the targeted VM instances must meet all the criteria specified. So if both labels and zones are specified, the policy applies to VM instances with those labels and in those zones.", +"id": "Assignment", +"properties": { +"groupLabels": { +"description": "Targets instances matching at least one of these label sets. This allows an assignment to target disparate groups, for example \"env=prod or env=staging\".", +"items": { +"$ref": "AssignmentGroupLabel" +}, +"type": "array" +}, +"instanceNamePrefixes": { +"description": "Targets VM instances whose name starts with one of these prefixes. Like labels, this is another way to group VM instances when targeting configs, for example prefix=\"prod-\". Only supported for project-level policies.", +"items": { +"type": "string" +}, +"type": "array" +}, +"instances": { +"description": "Targets any of the instances specified. Instances are specified by their URI in the form `zones/[ZONE]/instances/[INSTANCE_NAME]`. Instance targeting is uncommon and is supported to facilitate the management of changes by the instance or to target specific VM instances for development and testing. Only supported for project-level policies and must reference instances within this project.", +"items": { +"type": "string" +}, +"type": "array" +}, +"osTypes": { +"description": "Targets VM instances matching at least one of the following OS types. VM instances must match all supplied criteria for a given OsType to be included.", +"items": { +"$ref": "AssignmentOsType" +}, +"type": "array" +}, +"zones": { +"description": "Targets instances in any of these zones. Leave empty to target instances in any zone. Zonal targeting is uncommon and is supported to facilitate the management of changes by zone.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"AssignmentGroupLabel": { +"description": "Represents a group of VM intances that can be identified as having all these labels, for example \"env=prod and app=web\".", +"id": "AssignmentGroupLabel", +"properties": { +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Google Compute Engine instance labels that must be present for an instance to be included in this assignment group.", +"type": "object" +} +}, +"type": "object" +}, +"AssignmentOsType": { +"description": "Defines the criteria for selecting VM Instances by OS type.", +"id": "AssignmentOsType", +"properties": { +"osArchitecture": { +"description": "Targets VM instances with OS Inventory enabled and having the following OS architecture.", +"type": "string" +}, +"osShortName": { +"description": "Targets VM instances with OS Inventory enabled and having the following OS short name, for example \"debian\" or \"windows\".", +"type": "string" +}, +"osVersion": { +"description": "Targets VM instances with OS Inventory enabled and having the following following OS version.", +"type": "string" +} +}, +"type": "object" +}, +"CancelPatchJobRequest": { +"description": "Message for canceling a patch job.", +"id": "CancelPatchJobRequest", +"properties": {}, +"type": "object" +}, +"EffectiveGuestPolicy": { +"description": "The effective guest policy that applies to a VM instance.", +"id": "EffectiveGuestPolicy", +"properties": { +"packageRepositories": { +"description": "List of package repository configurations assigned to the VM instance.", +"items": { +"$ref": "EffectiveGuestPolicySourcedPackageRepository" +}, +"type": "array" +}, +"packages": { +"description": "List of package configurations assigned to the VM instance.", +"items": { +"$ref": "EffectiveGuestPolicySourcedPackage" +}, +"type": "array" +}, +"softwareRecipes": { +"description": "List of recipes assigned to the VM instance.", +"items": { +"$ref": "EffectiveGuestPolicySourcedSoftwareRecipe" +}, +"type": "array" +} +}, +"type": "object" +}, +"EffectiveGuestPolicySourcedPackage": { +"description": "A guest policy package including its source.", +"id": "EffectiveGuestPolicySourcedPackage", +"properties": { +"package": { +"$ref": "Package", +"description": "A software package to configure on the VM instance." +}, +"source": { +"description": "Name of the guest policy providing this config.", +"type": "string" +} +}, +"type": "object" +}, +"EffectiveGuestPolicySourcedPackageRepository": { +"description": "A guest policy package repository including its source.", +"id": "EffectiveGuestPolicySourcedPackageRepository", +"properties": { +"packageRepository": { +"$ref": "PackageRepository", +"description": "A software package repository to configure on the VM instance." +}, +"source": { +"description": "Name of the guest policy providing this config.", +"type": "string" +} +}, +"type": "object" +}, +"EffectiveGuestPolicySourcedSoftwareRecipe": { +"description": "A guest policy recipe including its source.", +"id": "EffectiveGuestPolicySourcedSoftwareRecipe", +"properties": { +"softwareRecipe": { +"$ref": "SoftwareRecipe", +"description": "A software recipe to configure on the VM instance." +}, +"source": { +"description": "Name of the guest policy providing this config.", +"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" +}, +"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 Google 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": "Google Cloud Storage object representation.", +"id": "GcsObject", +"properties": { +"bucket": { +"description": "Required. Bucket of the Google Cloud Storage object.", +"type": "string" +}, +"generationNumber": { +"description": "Required. Generation number of the Google 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 Google Cloud Storage object.", +"type": "string" +} +}, +"type": "object" +}, +"GooRepository": { +"description": "Represents a Goo package repository. These is added to a repo file that is stored at C:/ProgramData/GooGet/repos/google_osconfig.repo.", +"id": "GooRepository", +"properties": { +"name": { +"description": "Required. The name of the repository.", +"type": "string" +}, +"url": { +"description": "Required. The url of the repository.", +"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" +}, +"GuestPolicy": { +"description": "An OS Config resource representing a guest configuration policy. These policies represent the desired state for VM instance guest environments including packages to install or remove, package repository configurations, and software to install.", +"id": "GuestPolicy", +"properties": { +"assignment": { +"$ref": "Assignment", +"description": "Required. Specifies the VM instances that are assigned to this policy. This allows you to target sets or groups of VM instances by different parameters such as labels, names, OS, or zones. If left empty, all VM instances underneath this policy are targeted. At the same level in the resource hierarchy (that is within a project), the service prevents the creation of multiple policies that conflict with each other. For more information, see how the service [handles assignment conflicts](/compute/docs/os-config-management/create-guest-policy#handle-conflicts)." +}, +"createTime": { +"description": "Output only. Time this guest policy was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Description of the guest policy. Length of the description is limited to 1024 characters.", +"type": "string" +}, +"etag": { +"description": "The etag for this guest policy. If this is provided on update, it must match the server's etag.", +"type": "string" +}, +"name": { +"description": "Required. Unique name of the resource in this project using one of the following forms: `projects/{project_number}/guestPolicies/{guest_policy_id}`.", +"type": "string" +}, +"packageRepositories": { +"description": "A list of package repositories to configure on the VM instance. This is done before any other configs are applied so they can use these repos. Package repositories are only configured if the corresponding package manager(s) are available.", +"items": { +"$ref": "PackageRepository" +}, +"type": "array" +}, +"packages": { +"description": "The software packages to be managed by this policy.", +"items": { +"$ref": "Package" +}, +"type": "array" +}, +"recipes": { +"description": "A list of Recipes to install on the VM instance.", +"items": { +"$ref": "SoftwareRecipe" +}, +"type": "array" +}, +"updateTime": { +"description": "Output only. Last time this guest policy was updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ListGuestPoliciesResponse": { +"description": "A response message for listing guest policies.", +"id": "ListGuestPoliciesResponse", +"properties": { +"guestPolicies": { +"description": "The list of GuestPolicies.", +"items": { +"$ref": "GuestPolicy" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A pagination token that can be used to get the next page of guest policies.", +"type": "string" +} +}, +"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" +}, +"LookupEffectiveGuestPolicyRequest": { +"description": "A request message for getting the effective guest policy assigned to the instance.", +"id": "LookupEffectiveGuestPolicyRequest", +"properties": { +"osArchitecture": { +"description": "Architecture of OS running on the instance. The OS Config agent only provides this field for targeting if OS Inventory is enabled for that instance.", +"type": "string" +}, +"osShortName": { +"description": "Short name of the OS running on the instance. The OS Config agent only provides this field for targeting if OS Inventory is enabled for that instance.", +"type": "string" +}, +"osVersion": { +"description": "Version of the OS running on the instance. The OS Config agent only provides this field for targeting if OS Inventory is enabled for that VM instance.", +"type": "string" +} +}, +"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" +}, +"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" +}, +"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" +}, +"Package": { +"description": "Package is a reference to the software package to be installed or removed. The agent on the VM instance uses the system package manager to apply the config. These are the commands that the agent uses to install or remove packages. Apt install: `apt-get update && apt-get -y install package1 package2 package3` remove: `apt-get -y remove package1 package2 package3` Yum install: `yum -y install package1 package2 package3` remove: `yum -y remove package1 package2 package3` Zypper install: `zypper install package1 package2 package3` remove: `zypper rm package1 package2` Googet install: `googet -noconfirm install package1 package2 package3` remove: `googet -noconfirm remove package1 package2 package3`", +"id": "Package", +"properties": { +"desiredState": { +"description": "The desired_state the agent should maintain for this package. The default is to ensure the package is installed.", +"enum": [ +"DESIRED_STATE_UNSPECIFIED", +"INSTALLED", +"UPDATED", +"REMOVED" +], +"enumDescriptions": [ +"The default is to ensure the package is installed.", +"The agent ensures that the package is installed.", +"The agent ensures that the package is installed and periodically checks for and install any updates.", +"The agent ensures that the package is not installed and uninstall it if detected." +], +"type": "string" +}, +"manager": { +"description": "Type of package manager that can be used to install this package. If a system does not have the package manager, the package is not installed or removed no error message is returned. By default, or if you specify `ANY`, the agent attempts to install and remove this package using the default package manager. This is useful when creating a policy that applies to different types of systems. The default behavior is ANY.", +"enum": [ +"MANAGER_UNSPECIFIED", +"ANY", +"APT", +"YUM", +"ZYPPER", +"GOO" +], +"enumDescriptions": [ +"The default behavior is ANY.", +"Apply this package config using the default system package manager.", +"Apply this package config only if Apt is available on the system.", +"Apply this package config only if Yum is available on the system.", +"Apply this package config only if Zypper is available on the system.", +"Apply this package config only if GooGet is available on the system." +], +"type": "string" +}, +"name": { +"description": "Required. The name of the package. A package is uniquely identified for conflict validation by checking the package name and the manager(s) that the package targets.", +"type": "string" +} +}, +"type": "object" +}, +"PackageRepository": { +"description": "A package repository.", +"id": "PackageRepository", +"properties": { +"apt": { +"$ref": "AptRepository", +"description": "An Apt Repository." +}, +"goo": { +"$ref": "GooRepository", +"description": "A Goo Repository." +}, +"yum": { +"$ref": "YumRepository", +"description": "A Yum Repository." +}, +"zypper": { +"$ref": "ZypperRepository", +"description": "A Zypper Repository." +} +}, +"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 at least one of these label sets. This allows targeting of disparate groups, for example \"env=prod or env=staging\".", +"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": "Represents a group of VMs that can be identified as having all these labels, for example \"env=prod 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" +}, +"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" +}, +"SoftwareRecipe": { +"description": "A software recipe is a set of instructions for installing and configuring a piece of software. It consists of a set of artifacts that are downloaded, and a set of steps that install, configure, and/or update the software. Recipes support installing and updating software from artifacts in the following formats: Zip archive, Tar archive, Windows MSI, Debian package, and RPM package. Additionally, recipes support executing a script (either defined in a file or directly in this api) in bash, sh, cmd, and powershell. Updating a software recipe If a recipe is assigned to an instance and there is a recipe with the same name but a lower version already installed and the assigned state of the recipe is `UPDATED`, then the recipe is updated to the new version. Script Working Directories Each script or execution step is run in its own temporary directory which is deleted after completing the step.", +"id": "SoftwareRecipe", +"properties": { +"artifacts": { +"description": "Resources available to be used in the steps in the recipe.", +"items": { +"$ref": "SoftwareRecipeArtifact" +}, +"type": "array" +}, +"desiredState": { +"description": "Default is INSTALLED. The desired state the agent should maintain for this recipe. INSTALLED: The software recipe is installed on the instance but won't be updated to new versions. UPDATED: The software recipe is installed on the instance. The recipe is updated to a higher version, if a higher version of the recipe is assigned to this instance. REMOVE: Remove is unsupported for software recipes and attempts to create or update a recipe to the REMOVE state is rejected.", +"enum": [ +"DESIRED_STATE_UNSPECIFIED", +"INSTALLED", +"UPDATED", +"REMOVED" +], +"enumDescriptions": [ +"The default is to ensure the package is installed.", +"The agent ensures that the package is installed.", +"The agent ensures that the package is installed and periodically checks for and install any updates.", +"The agent ensures that the package is not installed and uninstall it if detected." +], +"type": "string" +}, +"installSteps": { +"description": "Actions to be taken for installing this recipe. On failure it stops executing steps and does not attempt another installation. Any steps taken (including partially completed steps) are not rolled back.", +"items": { +"$ref": "SoftwareRecipeStep" +}, +"type": "array" +}, +"name": { +"description": "Required. Unique identifier for the recipe. Only one recipe with a given name is installed on an instance. Names are also used to identify resources which helps to determine whether guest policies have conflicts. This means that requests to create multiple recipes with the same name and version are rejected since they could potentially have conflicting assignments.", +"type": "string" +}, +"updateSteps": { +"description": "Actions to be taken for updating this recipe. On failure it stops executing steps and does not attempt another update for this recipe. Any steps taken (including partially completed steps) are not rolled back.", +"items": { +"$ref": "SoftwareRecipeStep" +}, +"type": "array" +}, +"version": { +"description": "The version of this software recipe. Version can be up to 4 period separated numbers (e.g. 12.34.56.78).", +"type": "string" +} +}, +"type": "object" +}, +"SoftwareRecipeArtifact": { +"description": "Specifies a resource to be used in the recipe.", +"id": "SoftwareRecipeArtifact", +"properties": { +"allowInsecure": { +"description": "Defaults to false. When false, recipes are subject to validations based on the artifact type: Remote: A checksum must be specified, and only protocols with transport-layer security are permitted. GCS: An object generation number must be specified.", +"type": "boolean" +}, +"gcs": { +"$ref": "SoftwareRecipeArtifactGcs", +"description": "A Google Cloud Storage artifact." +}, +"id": { +"description": "Required. Id of the artifact, which the installation and update steps of this recipe can reference. Artifacts in a recipe cannot have the same id.", +"type": "string" +}, +"remote": { +"$ref": "SoftwareRecipeArtifactRemote", +"description": "A generic remote artifact." +} +}, +"type": "object" +}, +"SoftwareRecipeArtifactGcs": { +"description": "Specifies an artifact available as a Google Cloud Storage object.", +"id": "SoftwareRecipeArtifactGcs", +"properties": { +"bucket": { +"description": "Bucket of the Google Cloud Storage object. Given an example URL: `https://storage.googleapis.com/my-bucket/foo/bar#1234567` this value would be `my-bucket`.", +"type": "string" +}, +"generation": { +"description": "Must be provided if allow_insecure is false. Generation number of the Google Cloud Storage object. `https://storage.googleapis.com/my-bucket/foo/bar#1234567` this value would be `1234567`.", +"format": "int64", +"type": "string" +}, +"object": { +"description": "Name of the Google Cloud Storage object. As specified [here] (https://cloud.google.com/storage/docs/naming#objectnames) Given an example URL: `https://storage.googleapis.com/my-bucket/foo/bar#1234567` this value would be `foo/bar`.", +"type": "string" +} +}, +"type": "object" +}, +"SoftwareRecipeArtifactRemote": { +"description": "Specifies an artifact available via some URI.", +"id": "SoftwareRecipeArtifactRemote", +"properties": { +"checksum": { +"description": "Must be provided if `allow_insecure` is `false`. SHA256 checksum in hex format, to compare to the checksum of the artifact. If the checksum is not empty and it doesn't match the artifact then the recipe installation fails before running any of the steps.", +"type": "string" +}, +"uri": { +"description": "URI from which to fetch the object. It should contain both the protocol and path following the format {protocol}://{location}.", +"type": "string" +} +}, +"type": "object" +}, +"SoftwareRecipeStep": { +"description": "An action that can be taken as part of installing or updating a recipe.", +"id": "SoftwareRecipeStep", +"properties": { +"archiveExtraction": { +"$ref": "SoftwareRecipeStepExtractArchive", +"description": "Extracts an archive into the specified directory." +}, +"dpkgInstallation": { +"$ref": "SoftwareRecipeStepInstallDpkg", +"description": "Installs a deb file via dpkg." +}, +"fileCopy": { +"$ref": "SoftwareRecipeStepCopyFile", +"description": "Copies a file onto the instance." +}, +"fileExec": { +"$ref": "SoftwareRecipeStepExecFile", +"description": "Executes an artifact or local file." +}, +"msiInstallation": { +"$ref": "SoftwareRecipeStepInstallMsi", +"description": "Installs an MSI file." +}, +"rpmInstallation": { +"$ref": "SoftwareRecipeStepInstallRpm", +"description": "Installs an rpm file via the rpm utility." +}, +"scriptRun": { +"$ref": "SoftwareRecipeStepRunScript", +"description": "Runs commands in a shell." +} +}, +"type": "object" +}, +"SoftwareRecipeStepCopyFile": { +"description": "Copies the artifact to the specified path on the instance.", +"id": "SoftwareRecipeStepCopyFile", +"properties": { +"artifactId": { +"description": "Required. The id of the relevant artifact in the recipe.", +"type": "string" +}, +"destination": { +"description": "Required. The absolute path on the instance to put the file.", +"type": "string" +}, +"overwrite": { +"description": "Whether to allow this step to overwrite existing files. If this is false and the file already exists the file is not overwritten and the step is considered a success. Defaults to false.", +"type": "boolean" +}, +"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" +} +}, +"type": "object" +}, +"SoftwareRecipeStepExecFile": { +"description": "Executes an artifact or local file.", +"id": "SoftwareRecipeStepExecFile", +"properties": { +"allowedExitCodes": { +"description": "Defaults to [0]. A list of possible return values that the program can return to indicate a success.", +"items": { +"format": "int32", +"type": "integer" +}, +"type": "array" +}, +"args": { +"description": "Arguments to be passed to the provided executable.", +"items": { +"type": "string" +}, +"type": "array" +}, +"artifactId": { +"description": "The id of the relevant artifact in the recipe.", +"type": "string" +}, +"localPath": { +"description": "The absolute path of the file on the local filesystem.", +"type": "string" +} +}, +"type": "object" +}, +"SoftwareRecipeStepExtractArchive": { +"description": "Extracts an archive of the type specified in the specified directory.", +"id": "SoftwareRecipeStepExtractArchive", +"properties": { +"artifactId": { +"description": "Required. The id of the relevant artifact in the recipe.", +"type": "string" +}, +"destination": { +"description": "Directory to extract archive to. Defaults to `/` on Linux or `C:\\` on Windows.", +"type": "string" +}, +"type": { +"description": "Required. The type of the archive to extract.", +"enum": [ +"ARCHIVE_TYPE_UNSPECIFIED", +"TAR", +"TAR_GZIP", +"TAR_BZIP", +"TAR_LZMA", +"TAR_XZ", +"ZIP" +], +"enumDescriptions": [ +"Indicates that the archive type isn't specified.", +"Indicates that the archive is a tar archive with no encryption.", +"Indicates that the archive is a tar archive with gzip encryption.", +"Indicates that the archive is a tar archive with bzip encryption.", +"Indicates that the archive is a tar archive with lzma encryption.", +"Indicates that the archive is a tar archive with xz encryption.", +"Indicates that the archive is a zip archive." +], +"type": "string" +} +}, +"type": "object" +}, +"SoftwareRecipeStepInstallDpkg": { +"description": "Installs a deb via dpkg.", +"id": "SoftwareRecipeStepInstallDpkg", +"properties": { +"artifactId": { +"description": "Required. The id of the relevant artifact in the recipe.", +"type": "string" +} +}, +"type": "object" +}, +"SoftwareRecipeStepInstallMsi": { +"description": "Installs an MSI file.", +"id": "SoftwareRecipeStepInstallMsi", +"properties": { +"allowedExitCodes": { +"description": "Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0]", +"items": { +"format": "int32", +"type": "integer" +}, +"type": "array" +}, +"artifactId": { +"description": "Required. The id of the relevant artifact in the recipe.", +"type": "string" +}, +"flags": { +"description": "The flags to use when installing the MSI defaults to [\"/i\"] (i.e. the install flag).", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"SoftwareRecipeStepInstallRpm": { +"description": "Installs an rpm file via the rpm utility.", +"id": "SoftwareRecipeStepInstallRpm", +"properties": { +"artifactId": { +"description": "Required. The id of the relevant artifact in the recipe.", +"type": "string" +} +}, +"type": "object" +}, +"SoftwareRecipeStepRunScript": { +"description": "Runs a script through an interpreter.", +"id": "SoftwareRecipeStepRunScript", +"properties": { +"allowedExitCodes": { +"description": "Return codes that indicate that the software installed or updated successfully. Behaviour defaults to [0]", +"items": { +"format": "int32", +"type": "integer" +}, +"type": "array" +}, +"interpreter": { +"description": "The script interpreter to use to run the script. If no interpreter is specified the script is executed directly, which likely only succeed for scripts with [shebang lines](https://en.wikipedia.org/wiki/Shebang_\\(Unix\\)).", +"enum": [ +"INTERPRETER_UNSPECIFIED", +"SHELL", +"POWERSHELL" +], +"enumDescriptions": [ +"Default value for ScriptType.", +"Indicates that the script is run with `/bin/sh` on Linux and `cmd` on windows.", +"Indicates that the script is run with powershell." +], +"type": "string" +}, +"script": { +"description": "Required. The shell script to be executed.", +"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" +}, +"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 day of the month and this `day_offset` value is set to `3`, the patch deployment takes place three days after the second Tuesday of the month. If this value is negative, for example -5, the patches are deployed five days before 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" +}, +"YumRepository": { +"description": "Represents a single Yum package repository. This repository is added to a repo file that is stored at `/etc/yum.repos.d/google_osconfig.repo`.", +"id": "YumRepository", +"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 guest policy conflicts.", +"type": "string" +} +}, +"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" +}, +"ZypperRepository": { +"description": "Represents a single Zypper package repository. This repository is added to a repo file that is stored at `/etc/zypp/repos.d/google_osconfig.repo`.", +"id": "ZypperRepository", +"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 guest policy conflicts.", +"type": "string" +} +}, +"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": "v1beta", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/people.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/people.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..fd116f35206d6472fb190888d071f4a8cb7e14ed --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/people.v1.json @@ -0,0 +1,3313 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/contacts": { +"description": "See, edit, download, and permanently delete your contacts" +}, +"https://www.googleapis.com/auth/contacts.other.readonly": { +"description": "See and download contact info automatically saved in your \"Other contacts\"" +}, +"https://www.googleapis.com/auth/contacts.readonly": { +"description": "See and download your contacts" +}, +"https://www.googleapis.com/auth/directory.readonly": { +"description": "See and download your organization's GSuite directory" +}, +"https://www.googleapis.com/auth/user.addresses.read": { +"description": "View your street addresses" +}, +"https://www.googleapis.com/auth/user.birthday.read": { +"description": "See and download your exact date of birth" +}, +"https://www.googleapis.com/auth/user.emails.read": { +"description": "See and download all of your Google Account email addresses" +}, +"https://www.googleapis.com/auth/user.gender.read": { +"description": "See your gender" +}, +"https://www.googleapis.com/auth/user.organization.read": { +"description": "See your education, work history and org info" +}, +"https://www.googleapis.com/auth/user.phonenumbers.read": { +"description": "See and download your personal phone numbers" +}, +"https://www.googleapis.com/auth/userinfo.email": { +"description": "See your primary Google Account email address" +}, +"https://www.googleapis.com/auth/userinfo.profile": { +"description": "See your personal info, including any personal info you've made publicly available" +} +} +} +}, +"basePath": "", +"baseUrl": "https://people.googleapis.com/", +"batchPath": "batch", +"canonicalName": "People Service", +"description": "Provides access to information about profiles and contacts.", +"discoveryVersion": "v1", +"documentationLink": "https://developers.google.com/people/", +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "people:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://people.mtls.googleapis.com/", +"name": "people", +"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": { +"contactGroups": { +"methods": { +"batchGet": { +"description": "Get a list of contact groups owned by the authenticated user by specifying a list of contact group resource names.", +"flatPath": "v1/contactGroups:batchGet", +"httpMethod": "GET", +"id": "people.contactGroups.batchGet", +"parameterOrder": [], +"parameters": { +"groupFields": { +"description": "Optional. A field mask to restrict which fields on the group are returned. Defaults to `metadata`, `groupType`, `memberCount`, and `name` if not set or set to empty. Valid fields are: * clientData * groupType * memberCount * metadata * name", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"maxMembers": { +"description": "Optional. Specifies the maximum number of members to return for each group. Defaults to 0 if not set, which will return zero members.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resourceNames": { +"description": "Required. The resource names of the contact groups to get. There is a maximum of 200 resource names.", +"location": "query", +"repeated": true, +"type": "string" +} +}, +"path": "v1/contactGroups:batchGet", +"response": { +"$ref": "BatchGetContactGroupsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/contacts", +"https://www.googleapis.com/auth/contacts.readonly" +] +}, +"create": { +"description": "Create a new contact group owned by the authenticated user. Created contact group names must be unique to the users contact groups. Attempting to create a group with a duplicate name will return a HTTP 409 error. Mutate requests for the same user should be sent sequentially to avoid increased latency and failures.", +"flatPath": "v1/contactGroups", +"httpMethod": "POST", +"id": "people.contactGroups.create", +"parameterOrder": [], +"parameters": {}, +"path": "v1/contactGroups", +"request": { +"$ref": "CreateContactGroupRequest" +}, +"response": { +"$ref": "ContactGroup" +}, +"scopes": [ +"https://www.googleapis.com/auth/contacts" +] +}, +"delete": { +"description": "Delete an existing contact group owned by the authenticated user by specifying a contact group resource name. Mutate requests for the same user should be sent sequentially to avoid increased latency and failures.", +"flatPath": "v1/contactGroups/{contactGroupsId}", +"httpMethod": "DELETE", +"id": "people.contactGroups.delete", +"parameterOrder": [ +"resourceName" +], +"parameters": { +"deleteContacts": { +"description": "Optional. Set to true to also delete the contacts in the specified group.", +"location": "query", +"type": "boolean" +}, +"resourceName": { +"description": "Required. The resource name of the contact group to delete.", +"location": "path", +"pattern": "^contactGroups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resourceName}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/contacts" +] +}, +"get": { +"description": "Get a specific contact group owned by the authenticated user by specifying a contact group resource name.", +"flatPath": "v1/contactGroups/{contactGroupsId}", +"httpMethod": "GET", +"id": "people.contactGroups.get", +"parameterOrder": [ +"resourceName" +], +"parameters": { +"groupFields": { +"description": "Optional. A field mask to restrict which fields on the group are returned. Defaults to `metadata`, `groupType`, `memberCount`, and `name` if not set or set to empty. Valid fields are: * clientData * groupType * memberCount * metadata * name", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"maxMembers": { +"description": "Optional. Specifies the maximum number of members to return. Defaults to 0 if not set, which will return zero members.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"resourceName": { +"description": "Required. The resource name of the contact group to get.", +"location": "path", +"pattern": "^contactGroups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resourceName}", +"response": { +"$ref": "ContactGroup" +}, +"scopes": [ +"https://www.googleapis.com/auth/contacts", +"https://www.googleapis.com/auth/contacts.readonly" +] +}, +"list": { +"description": "List all contact groups owned by the authenticated user. Members of the contact groups are not populated.", +"flatPath": "v1/contactGroups", +"httpMethod": "GET", +"id": "people.contactGroups.list", +"parameterOrder": [], +"parameters": { +"groupFields": { +"description": "Optional. A field mask to restrict which fields on the group are returned. Defaults to `metadata`, `groupType`, `memberCount`, and `name` if not set or set to empty. Valid fields are: * clientData * groupType * memberCount * metadata * name", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of resources to return. Valid values are between 1 and 1000, inclusive. Defaults to 30 if not set or set to 0.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The next_page_token value returned from a previous call to [ListContactGroups](/people/api/rest/v1/contactgroups/list). Requests the next page of resources.", +"location": "query", +"type": "string" +}, +"syncToken": { +"description": "Optional. A sync token, returned by a previous call to `contactgroups.list`. Only resources changed since the sync token was created will be returned.", +"location": "query", +"type": "string" +} +}, +"path": "v1/contactGroups", +"response": { +"$ref": "ListContactGroupsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/contacts", +"https://www.googleapis.com/auth/contacts.readonly" +] +}, +"update": { +"description": "Update the name of an existing contact group owned by the authenticated user. Updated contact group names must be unique to the users contact groups. Attempting to create a group with a duplicate name will return a HTTP 409 error. Mutate requests for the same user should be sent sequentially to avoid increased latency and failures.", +"flatPath": "v1/contactGroups/{contactGroupsId}", +"httpMethod": "PUT", +"id": "people.contactGroups.update", +"parameterOrder": [ +"resourceName" +], +"parameters": { +"resourceName": { +"description": "The resource name for the contact group, assigned by the server. An ASCII string, in the form of `contactGroups/{contact_group_id}`.", +"location": "path", +"pattern": "^contactGroups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resourceName}", +"request": { +"$ref": "UpdateContactGroupRequest" +}, +"response": { +"$ref": "ContactGroup" +}, +"scopes": [ +"https://www.googleapis.com/auth/contacts" +] +} +}, +"resources": { +"members": { +"methods": { +"modify": { +"description": "Modify the members of a contact group owned by the authenticated user. The only system contact groups that can have members added are `contactGroups/myContacts` and `contactGroups/starred`. Other system contact groups are deprecated and can only have contacts removed.", +"flatPath": "v1/contactGroups/{contactGroupsId}/members:modify", +"httpMethod": "POST", +"id": "people.contactGroups.members.modify", +"parameterOrder": [ +"resourceName" +], +"parameters": { +"resourceName": { +"description": "Required. The resource name of the contact group to modify.", +"location": "path", +"pattern": "^contactGroups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resourceName}/members:modify", +"request": { +"$ref": "ModifyContactGroupMembersRequest" +}, +"response": { +"$ref": "ModifyContactGroupMembersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/contacts" +] +} +} +} +} +}, +"otherContacts": { +"methods": { +"copyOtherContactToMyContactsGroup": { +"description": "Copies an \"Other contact\" to a new contact in the user's \"myContacts\" group Mutate requests for the same user should be sent sequentially to avoid increased latency and failures.", +"flatPath": "v1/otherContacts/{otherContactsId}:copyOtherContactToMyContactsGroup", +"httpMethod": "POST", +"id": "people.otherContacts.copyOtherContactToMyContactsGroup", +"parameterOrder": [ +"resourceName" +], +"parameters": { +"resourceName": { +"description": "Required. The resource name of the \"Other contact\" to copy.", +"location": "path", +"pattern": "^otherContacts/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resourceName}:copyOtherContactToMyContactsGroup", +"request": { +"$ref": "CopyOtherContactToMyContactsGroupRequest" +}, +"response": { +"$ref": "Person" +}, +"scopes": [ +"https://www.googleapis.com/auth/contacts", +"https://www.googleapis.com/auth/contacts.other.readonly" +] +}, +"list": { +"description": "List all \"Other contacts\", that is contacts that are not in a contact group. \"Other contacts\" are typically auto created contacts from interactions. Sync tokens expire 7 days after the full sync. A request with an expired sync token will get an error with an [google.rpc.ErrorInfo](https://cloud.google.com/apis/design/errors#error_info) with reason \"EXPIRED_SYNC_TOKEN\". In the case of such an error clients should make a full sync request without a `sync_token`. The first page of a full sync request has an additional quota. If the quota is exceeded, a 429 error will be returned. This quota is fixed and can not be increased. When the `sync_token` is specified, resources deleted since the last sync will be returned as a person with `PersonMetadata.deleted` set to true. When the `page_token` or `sync_token` is specified, all other request parameters must match the first call. Writes may have a propagation delay of several minutes for sync requests. Incremental syncs are not intended for read-after-write use cases. See example usage at [List the user's other contacts that have changed](/people/v1/other-contacts#list_the_users_other_contacts_that_have_changed).", +"flatPath": "v1/otherContacts", +"httpMethod": "GET", +"id": "people.otherContacts.list", +"parameterOrder": [], +"parameters": { +"pageSize": { +"description": "Optional. The number of \"Other contacts\" to include in the response. Valid values are between 1 and 1000, inclusive. Defaults to 100 if not set or set to 0.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A page token, received from a previous response `next_page_token`. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `otherContacts.list` must match the first call that provided the page token.", +"location": "query", +"type": "string" +}, +"readMask": { +"description": "Required. A field mask to restrict which fields on each person are returned. Multiple fields can be specified by separating them with commas. What values are valid depend on what ReadSourceType is used. If READ_SOURCE_TYPE_CONTACT is used, valid values are: * emailAddresses * metadata * names * phoneNumbers * photos If READ_SOURCE_TYPE_PROFILE is used, valid values are: * addresses * ageRanges * biographies * birthdays * calendarUrls * clientData * coverPhotos * emailAddresses * events * externalIds * genders * imClients * interests * locales * locations * memberships * metadata * miscKeywords * names * nicknames * occupations * organizations * phoneNumbers * photos * relations * sipAddresses * skills * urls * userDefined", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"requestSyncToken": { +"description": "Optional. Whether the response should return `next_sync_token` on the last page of results. It can be used to get incremental changes since the last request by setting it on the request `sync_token`. More details about sync behavior at `otherContacts.list`.", +"location": "query", +"type": "boolean" +}, +"sources": { +"description": "Optional. A mask of what source types to return. Defaults to READ_SOURCE_TYPE_CONTACT if not set. Possible values for this field are: * READ_SOURCE_TYPE_CONTACT * READ_SOURCE_TYPE_CONTACT,READ_SOURCE_TYPE_PROFILE Specifying READ_SOURCE_TYPE_PROFILE without specifying READ_SOURCE_TYPE_CONTACT is not permitted.", +"enum": [ +"READ_SOURCE_TYPE_UNSPECIFIED", +"READ_SOURCE_TYPE_PROFILE", +"READ_SOURCE_TYPE_CONTACT", +"READ_SOURCE_TYPE_DOMAIN_CONTACT", +"READ_SOURCE_TYPE_OTHER_CONTACT" +], +"enumDescriptions": [ +"Unspecified.", +"Returns SourceType.ACCOUNT, SourceType.DOMAIN_PROFILE, and SourceType.PROFILE.", +"Returns SourceType.CONTACT.", +"Returns SourceType.DOMAIN_CONTACT.", +"Returns SourceType.OTHER_CONTACT." +], +"location": "query", +"repeated": true, +"type": "string" +}, +"syncToken": { +"description": "Optional. A sync token, received from a previous response `next_sync_token` Provide this to retrieve only the resources changed since the last request. When syncing, all other parameters provided to `otherContacts.list` must match the first call that provided the sync token. More details about sync behavior at `otherContacts.list`.", +"location": "query", +"type": "string" +} +}, +"path": "v1/otherContacts", +"response": { +"$ref": "ListOtherContactsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/contacts.other.readonly" +] +}, +"search": { +"description": "Provides a list of contacts in the authenticated user's other contacts that matches the search query. The query matches on a contact's `names`, `emailAddresses`, and `phoneNumbers` fields that are from the OTHER_CONTACT source. **IMPORTANT**: Before searching, clients should send a warmup request with an empty query to update the cache. See https://developers.google.com/people/v1/other-contacts#search_the_users_other_contacts", +"flatPath": "v1/otherContacts:search", +"httpMethod": "GET", +"id": "people.otherContacts.search", +"parameterOrder": [], +"parameters": { +"pageSize": { +"description": "Optional. The number of results to return. Defaults to 10 if field is not set, or set to 0. Values greater than 30 will be capped to 30.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"query": { +"description": "Required. The plain-text query for the request. The query is used to match prefix phrases of the fields on a person. For example, a person with name \"foo name\" matches queries such as \"f\", \"fo\", \"foo\", \"foo n\", \"nam\", etc., but not \"oo n\".", +"location": "query", +"type": "string" +}, +"readMask": { +"description": "Required. A field mask to restrict which fields on each person are returned. Multiple fields can be specified by separating them with commas. Valid values are: * emailAddresses * metadata * names * phoneNumbers", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/otherContacts:search", +"response": { +"$ref": "SearchResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/contacts.other.readonly" +] +} +} +}, +"people": { +"methods": { +"batchCreateContacts": { +"description": "Create a batch of new contacts and return the PersonResponses for the newly Mutate requests for the same user should be sent sequentially to avoid increased latency and failures.", +"flatPath": "v1/people:batchCreateContacts", +"httpMethod": "POST", +"id": "people.people.batchCreateContacts", +"parameterOrder": [], +"parameters": {}, +"path": "v1/people:batchCreateContacts", +"request": { +"$ref": "BatchCreateContactsRequest" +}, +"response": { +"$ref": "BatchCreateContactsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/contacts" +] +}, +"batchDeleteContacts": { +"description": "Delete a batch of contacts. Any non-contact data will not be deleted. Mutate requests for the same user should be sent sequentially to avoid increased latency and failures.", +"flatPath": "v1/people:batchDeleteContacts", +"httpMethod": "POST", +"id": "people.people.batchDeleteContacts", +"parameterOrder": [], +"parameters": {}, +"path": "v1/people:batchDeleteContacts", +"request": { +"$ref": "BatchDeleteContactsRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/contacts" +] +}, +"batchUpdateContacts": { +"description": "Update a batch of contacts and return a map of resource names to PersonResponses for the updated contacts. Mutate requests for the same user should be sent sequentially to avoid increased latency and failures.", +"flatPath": "v1/people:batchUpdateContacts", +"httpMethod": "POST", +"id": "people.people.batchUpdateContacts", +"parameterOrder": [], +"parameters": {}, +"path": "v1/people:batchUpdateContacts", +"request": { +"$ref": "BatchUpdateContactsRequest" +}, +"response": { +"$ref": "BatchUpdateContactsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/contacts" +] +}, +"createContact": { +"description": "Create a new contact and return the person resource for that contact. The request returns a 400 error if more than one field is specified on a field that is a singleton for contact sources: * biographies * birthdays * genders * names Mutate requests for the same user should be sent sequentially to avoid increased latency and failures.", +"flatPath": "v1/people:createContact", +"httpMethod": "POST", +"id": "people.people.createContact", +"parameterOrder": [], +"parameters": { +"personFields": { +"description": "Required. A field mask to restrict which fields on each person are returned. Multiple fields can be specified by separating them with commas. Defaults to all fields if not set. Valid values are: * addresses * ageRanges * biographies * birthdays * calendarUrls * clientData * coverPhotos * emailAddresses * events * externalIds * genders * imClients * interests * locales * locations * memberships * metadata * miscKeywords * names * nicknames * occupations * organizations * phoneNumbers * photos * relations * sipAddresses * skills * urls * userDefined", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"sources": { +"description": "Optional. A mask of what source types to return. Defaults to READ_SOURCE_TYPE_CONTACT and READ_SOURCE_TYPE_PROFILE if not set.", +"enum": [ +"READ_SOURCE_TYPE_UNSPECIFIED", +"READ_SOURCE_TYPE_PROFILE", +"READ_SOURCE_TYPE_CONTACT", +"READ_SOURCE_TYPE_DOMAIN_CONTACT", +"READ_SOURCE_TYPE_OTHER_CONTACT" +], +"enumDescriptions": [ +"Unspecified.", +"Returns SourceType.ACCOUNT, SourceType.DOMAIN_PROFILE, and SourceType.PROFILE.", +"Returns SourceType.CONTACT.", +"Returns SourceType.DOMAIN_CONTACT.", +"Returns SourceType.OTHER_CONTACT." +], +"location": "query", +"repeated": true, +"type": "string" +} +}, +"path": "v1/people:createContact", +"request": { +"$ref": "Person" +}, +"response": { +"$ref": "Person" +}, +"scopes": [ +"https://www.googleapis.com/auth/contacts" +] +}, +"deleteContact": { +"description": "Delete a contact person. Any non-contact data will not be deleted. Mutate requests for the same user should be sent sequentially to avoid increased latency and failures.", +"flatPath": "v1/people/{peopleId}:deleteContact", +"httpMethod": "DELETE", +"id": "people.people.deleteContact", +"parameterOrder": [ +"resourceName" +], +"parameters": { +"resourceName": { +"description": "Required. The resource name of the contact to delete.", +"location": "path", +"pattern": "^people/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resourceName}:deleteContact", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/contacts" +] +}, +"deleteContactPhoto": { +"description": "Delete a contact's photo. Mutate requests for the same user should be done sequentially to avoid // lock contention.", +"flatPath": "v1/people/{peopleId}:deleteContactPhoto", +"httpMethod": "DELETE", +"id": "people.people.deleteContactPhoto", +"parameterOrder": [ +"resourceName" +], +"parameters": { +"personFields": { +"description": "Optional. A field mask to restrict which fields on the person are returned. Multiple fields can be specified by separating them with commas. Defaults to empty if not set, which will skip the post mutate get. Valid values are: * addresses * ageRanges * biographies * birthdays * calendarUrls * clientData * coverPhotos * emailAddresses * events * externalIds * genders * imClients * interests * locales * locations * memberships * metadata * miscKeywords * names * nicknames * occupations * organizations * phoneNumbers * photos * relations * sipAddresses * skills * urls * userDefined", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"resourceName": { +"description": "Required. The resource name of the contact whose photo will be deleted.", +"location": "path", +"pattern": "^people/[^/]+$", +"required": true, +"type": "string" +}, +"sources": { +"description": "Optional. A mask of what source types to return. Defaults to READ_SOURCE_TYPE_CONTACT and READ_SOURCE_TYPE_PROFILE if not set.", +"enum": [ +"READ_SOURCE_TYPE_UNSPECIFIED", +"READ_SOURCE_TYPE_PROFILE", +"READ_SOURCE_TYPE_CONTACT", +"READ_SOURCE_TYPE_DOMAIN_CONTACT", +"READ_SOURCE_TYPE_OTHER_CONTACT" +], +"enumDescriptions": [ +"Unspecified.", +"Returns SourceType.ACCOUNT, SourceType.DOMAIN_PROFILE, and SourceType.PROFILE.", +"Returns SourceType.CONTACT.", +"Returns SourceType.DOMAIN_CONTACT.", +"Returns SourceType.OTHER_CONTACT." +], +"location": "query", +"repeated": true, +"type": "string" +} +}, +"path": "v1/{+resourceName}:deleteContactPhoto", +"response": { +"$ref": "DeleteContactPhotoResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/contacts" +] +}, +"get": { +"description": "Provides information about a person by specifying a resource name. Use `people/me` to indicate the authenticated user. The request returns a 400 error if 'personFields' is not specified.", +"flatPath": "v1/people/{peopleId}", +"httpMethod": "GET", +"id": "people.people.get", +"parameterOrder": [ +"resourceName" +], +"parameters": { +"personFields": { +"description": "Required. A field mask to restrict which fields on the person are returned. Multiple fields can be specified by separating them with commas. Valid values are: * addresses * ageRanges * biographies * birthdays * calendarUrls * clientData * coverPhotos * emailAddresses * events * externalIds * genders * imClients * interests * locales * locations * memberships * metadata * miscKeywords * names * nicknames * occupations * organizations * phoneNumbers * photos * relations * sipAddresses * skills * urls * userDefined", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"requestMask.includeField": { +"description": "Required. Comma-separated list of person fields to be included in the response. Each path should start with `person.`: for example, `person.names` or `person.photos`.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"resourceName": { +"description": "Required. The resource name of the person to provide information about. - To get information about the authenticated user, specify `people/me`. - To get information about a google account, specify `people/{account_id}`. - To get information about a contact, specify the resource name that identifies the contact as returned by `people.connections.list`.", +"location": "path", +"pattern": "^people/[^/]+$", +"required": true, +"type": "string" +}, +"sources": { +"description": "Optional. A mask of what source types to return. Defaults to READ_SOURCE_TYPE_PROFILE and READ_SOURCE_TYPE_CONTACT if not set.", +"enum": [ +"READ_SOURCE_TYPE_UNSPECIFIED", +"READ_SOURCE_TYPE_PROFILE", +"READ_SOURCE_TYPE_CONTACT", +"READ_SOURCE_TYPE_DOMAIN_CONTACT", +"READ_SOURCE_TYPE_OTHER_CONTACT" +], +"enumDescriptions": [ +"Unspecified.", +"Returns SourceType.ACCOUNT, SourceType.DOMAIN_PROFILE, and SourceType.PROFILE.", +"Returns SourceType.CONTACT.", +"Returns SourceType.DOMAIN_CONTACT.", +"Returns SourceType.OTHER_CONTACT." +], +"location": "query", +"repeated": true, +"type": "string" +} +}, +"path": "v1/{+resourceName}", +"response": { +"$ref": "Person" +}, +"scopes": [ +"https://www.googleapis.com/auth/contacts", +"https://www.googleapis.com/auth/contacts.other.readonly", +"https://www.googleapis.com/auth/contacts.readonly", +"https://www.googleapis.com/auth/directory.readonly", +"https://www.googleapis.com/auth/user.addresses.read", +"https://www.googleapis.com/auth/user.birthday.read", +"https://www.googleapis.com/auth/user.emails.read", +"https://www.googleapis.com/auth/user.gender.read", +"https://www.googleapis.com/auth/user.organization.read", +"https://www.googleapis.com/auth/user.phonenumbers.read", +"https://www.googleapis.com/auth/userinfo.email", +"https://www.googleapis.com/auth/userinfo.profile" +] +}, +"getBatchGet": { +"description": "Provides information about a list of specific people by specifying a list of requested resource names. Use `people/me` to indicate the authenticated user. The request returns a 400 error if 'personFields' is not specified.", +"flatPath": "v1/people:batchGet", +"httpMethod": "GET", +"id": "people.people.getBatchGet", +"parameterOrder": [], +"parameters": { +"personFields": { +"description": "Required. A field mask to restrict which fields on each person are returned. Multiple fields can be specified by separating them with commas. Valid values are: * addresses * ageRanges * biographies * birthdays * calendarUrls * clientData * coverPhotos * emailAddresses * events * externalIds * genders * imClients * interests * locales * locations * memberships * metadata * miscKeywords * names * nicknames * occupations * organizations * phoneNumbers * photos * relations * sipAddresses * skills * urls * userDefined", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"requestMask.includeField": { +"description": "Required. Comma-separated list of person fields to be included in the response. Each path should start with `person.`: for example, `person.names` or `person.photos`.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"resourceNames": { +"description": "Required. The resource names of the people to provide information about. It's repeatable. The URL query parameter should be resourceNames=&resourceNames=&... - To get information about the authenticated user, specify `people/me`. - To get information about a google account, specify `people/{account_id}`. - To get information about a contact, specify the resource name that identifies the contact as returned by `people.connections.list`. There is a maximum of 200 resource names.", +"location": "query", +"repeated": true, +"type": "string" +}, +"sources": { +"description": "Optional. A mask of what source types to return. Defaults to READ_SOURCE_TYPE_CONTACT and READ_SOURCE_TYPE_PROFILE if not set.", +"enum": [ +"READ_SOURCE_TYPE_UNSPECIFIED", +"READ_SOURCE_TYPE_PROFILE", +"READ_SOURCE_TYPE_CONTACT", +"READ_SOURCE_TYPE_DOMAIN_CONTACT", +"READ_SOURCE_TYPE_OTHER_CONTACT" +], +"enumDescriptions": [ +"Unspecified.", +"Returns SourceType.ACCOUNT, SourceType.DOMAIN_PROFILE, and SourceType.PROFILE.", +"Returns SourceType.CONTACT.", +"Returns SourceType.DOMAIN_CONTACT.", +"Returns SourceType.OTHER_CONTACT." +], +"location": "query", +"repeated": true, +"type": "string" +} +}, +"path": "v1/people:batchGet", +"response": { +"$ref": "GetPeopleResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/contacts", +"https://www.googleapis.com/auth/contacts.other.readonly", +"https://www.googleapis.com/auth/contacts.readonly", +"https://www.googleapis.com/auth/directory.readonly", +"https://www.googleapis.com/auth/user.addresses.read", +"https://www.googleapis.com/auth/user.birthday.read", +"https://www.googleapis.com/auth/user.emails.read", +"https://www.googleapis.com/auth/user.gender.read", +"https://www.googleapis.com/auth/user.organization.read", +"https://www.googleapis.com/auth/user.phonenumbers.read", +"https://www.googleapis.com/auth/userinfo.email", +"https://www.googleapis.com/auth/userinfo.profile" +] +}, +"listDirectoryPeople": { +"description": "Provides a list of domain profiles and domain contacts in the authenticated user's domain directory. When the `sync_token` is specified, resources deleted since the last sync will be returned as a person with `PersonMetadata.deleted` set to true. When the `page_token` or `sync_token` is specified, all other request parameters must match the first call. Writes may have a propagation delay of several minutes for sync requests. Incremental syncs are not intended for read-after-write use cases. See example usage at [List the directory people that have changed](/people/v1/directory#list_the_directory_people_that_have_changed).", +"flatPath": "v1/people:listDirectoryPeople", +"httpMethod": "GET", +"id": "people.people.listDirectoryPeople", +"parameterOrder": [], +"parameters": { +"mergeSources": { +"description": "Optional. Additional data to merge into the directory sources if they are connected through verified join keys such as email addresses or phone numbers.", +"enum": [ +"DIRECTORY_MERGE_SOURCE_TYPE_UNSPECIFIED", +"DIRECTORY_MERGE_SOURCE_TYPE_CONTACT" +], +"enumDescriptions": [ +"Unspecified.", +"User owned contact." +], +"location": "query", +"repeated": true, +"type": "string" +}, +"pageSize": { +"description": "Optional. The number of people to include in the response. Valid values are between 1 and 1000, inclusive. Defaults to 100 if not set or set to 0.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A page token, received from a previous response `next_page_token`. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `people.listDirectoryPeople` must match the first call that provided the page token.", +"location": "query", +"type": "string" +}, +"readMask": { +"description": "Required. A field mask to restrict which fields on each person are returned. Multiple fields can be specified by separating them with commas. Valid values are: * addresses * ageRanges * biographies * birthdays * calendarUrls * clientData * coverPhotos * emailAddresses * events * externalIds * genders * imClients * interests * locales * locations * memberships * metadata * miscKeywords * names * nicknames * occupations * organizations * phoneNumbers * photos * relations * sipAddresses * skills * urls * userDefined", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"requestSyncToken": { +"description": "Optional. Whether the response should return `next_sync_token`. It can be used to get incremental changes since the last request by setting it on the request `sync_token`. More details about sync behavior at `people.listDirectoryPeople`.", +"location": "query", +"type": "boolean" +}, +"sources": { +"description": "Required. Directory sources to return.", +"enum": [ +"DIRECTORY_SOURCE_TYPE_UNSPECIFIED", +"DIRECTORY_SOURCE_TYPE_DOMAIN_CONTACT", +"DIRECTORY_SOURCE_TYPE_DOMAIN_PROFILE" +], +"enumDescriptions": [ +"Unspecified.", +"Google Workspace domain shared contact.", +"Google Workspace domain profile." +], +"location": "query", +"repeated": true, +"type": "string" +}, +"syncToken": { +"description": "Optional. A sync token, received from a previous response `next_sync_token` Provide this to retrieve only the resources changed since the last request. When syncing, all other parameters provided to `people.listDirectoryPeople` must match the first call that provided the sync token. More details about sync behavior at `people.listDirectoryPeople`.", +"location": "query", +"type": "string" +} +}, +"path": "v1/people:listDirectoryPeople", +"response": { +"$ref": "ListDirectoryPeopleResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/directory.readonly" +] +}, +"searchContacts": { +"description": "Provides a list of contacts in the authenticated user's grouped contacts that matches the search query. The query matches on a contact's `names`, `nickNames`, `emailAddresses`, `phoneNumbers`, and `organizations` fields that are from the CONTACT source. **IMPORTANT**: Before searching, clients should send a warmup request with an empty query to update the cache. See https://developers.google.com/people/v1/contacts#search_the_users_contacts", +"flatPath": "v1/people:searchContacts", +"httpMethod": "GET", +"id": "people.people.searchContacts", +"parameterOrder": [], +"parameters": { +"pageSize": { +"description": "Optional. The number of results to return. Defaults to 10 if field is not set, or set to 0. Values greater than 30 will be capped to 30.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"query": { +"description": "Required. The plain-text query for the request. The query is used to match prefix phrases of the fields on a person. For example, a person with name \"foo name\" matches queries such as \"f\", \"fo\", \"foo\", \"foo n\", \"nam\", etc., but not \"oo n\".", +"location": "query", +"type": "string" +}, +"readMask": { +"description": "Required. A field mask to restrict which fields on each person are returned. Multiple fields can be specified by separating them with commas. Valid values are: * addresses * ageRanges * biographies * birthdays * calendarUrls * clientData * coverPhotos * emailAddresses * events * externalIds * genders * imClients * interests * locales * locations * memberships * metadata * miscKeywords * names * nicknames * occupations * organizations * phoneNumbers * photos * relations * sipAddresses * skills * urls * userDefined", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"sources": { +"description": "Optional. A mask of what source types to return. Defaults to READ_SOURCE_TYPE_CONTACT if not set.", +"enum": [ +"READ_SOURCE_TYPE_UNSPECIFIED", +"READ_SOURCE_TYPE_PROFILE", +"READ_SOURCE_TYPE_CONTACT", +"READ_SOURCE_TYPE_DOMAIN_CONTACT", +"READ_SOURCE_TYPE_OTHER_CONTACT" +], +"enumDescriptions": [ +"Unspecified.", +"Returns SourceType.ACCOUNT, SourceType.DOMAIN_PROFILE, and SourceType.PROFILE.", +"Returns SourceType.CONTACT.", +"Returns SourceType.DOMAIN_CONTACT.", +"Returns SourceType.OTHER_CONTACT." +], +"location": "query", +"repeated": true, +"type": "string" +} +}, +"path": "v1/people:searchContacts", +"response": { +"$ref": "SearchResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/contacts", +"https://www.googleapis.com/auth/contacts.readonly" +] +}, +"searchDirectoryPeople": { +"description": "Provides a list of domain profiles and domain contacts in the authenticated user's domain directory that match the search query.", +"flatPath": "v1/people:searchDirectoryPeople", +"httpMethod": "GET", +"id": "people.people.searchDirectoryPeople", +"parameterOrder": [], +"parameters": { +"mergeSources": { +"description": "Optional. Additional data to merge into the directory sources if they are connected through verified join keys such as email addresses or phone numbers.", +"enum": [ +"DIRECTORY_MERGE_SOURCE_TYPE_UNSPECIFIED", +"DIRECTORY_MERGE_SOURCE_TYPE_CONTACT" +], +"enumDescriptions": [ +"Unspecified.", +"User owned contact." +], +"location": "query", +"repeated": true, +"type": "string" +}, +"pageSize": { +"description": "Optional. The number of people to include in the response. Valid values are between 1 and 500, inclusive. Defaults to 100 if not set or set to 0.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A page token, received from a previous response `next_page_token`. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `SearchDirectoryPeople` must match the first call that provided the page token.", +"location": "query", +"type": "string" +}, +"query": { +"description": "Required. Prefix query that matches fields in the person. Does NOT use the read_mask for determining what fields to match.", +"location": "query", +"type": "string" +}, +"readMask": { +"description": "Required. A field mask to restrict which fields on each person are returned. Multiple fields can be specified by separating them with commas. Valid values are: * addresses * ageRanges * biographies * birthdays * calendarUrls * clientData * coverPhotos * emailAddresses * events * externalIds * genders * imClients * interests * locales * locations * memberships * metadata * miscKeywords * names * nicknames * occupations * organizations * phoneNumbers * photos * relations * sipAddresses * skills * urls * userDefined", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"sources": { +"description": "Required. Directory sources to return.", +"enum": [ +"DIRECTORY_SOURCE_TYPE_UNSPECIFIED", +"DIRECTORY_SOURCE_TYPE_DOMAIN_CONTACT", +"DIRECTORY_SOURCE_TYPE_DOMAIN_PROFILE" +], +"enumDescriptions": [ +"Unspecified.", +"Google Workspace domain shared contact.", +"Google Workspace domain profile." +], +"location": "query", +"repeated": true, +"type": "string" +} +}, +"path": "v1/people:searchDirectoryPeople", +"response": { +"$ref": "SearchDirectoryPeopleResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/directory.readonly" +] +}, +"updateContact": { +"description": "Update contact data for an existing contact person. Any non-contact data will not be modified. Any non-contact data in the person to update will be ignored. All fields specified in the `update_mask` will be replaced. The server returns a 400 error if `person.metadata.sources` is not specified for the contact to be updated or if there is no contact source. The server returns a 400 error with reason `\"failedPrecondition\"` if `person.metadata.sources.etag` is different than the contact's etag, which indicates the contact has changed since its data was read. Clients should get the latest person and merge their updates into the latest person. The server returns a 400 error if `memberships` are being updated and there are no contact group memberships specified on the person. The server returns a 400 error if more than one field is specified on a field that is a singleton for contact sources: * biographies * birthdays * genders * names Mutate requests for the same user should be sent sequentially to avoid increased latency and failures.", +"flatPath": "v1/people/{peopleId}:updateContact", +"httpMethod": "PATCH", +"id": "people.people.updateContact", +"parameterOrder": [ +"resourceName" +], +"parameters": { +"personFields": { +"description": "Optional. A field mask to restrict which fields on each person are returned. Multiple fields can be specified by separating them with commas. Defaults to all fields if not set. Valid values are: * addresses * ageRanges * biographies * birthdays * calendarUrls * clientData * coverPhotos * emailAddresses * events * externalIds * genders * imClients * interests * locales * locations * memberships * metadata * miscKeywords * names * nicknames * occupations * organizations * phoneNumbers * photos * relations * sipAddresses * skills * urls * userDefined", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"resourceName": { +"description": "The resource name for the person, assigned by the server. An ASCII string in the form of `people/{person_id}`.", +"location": "path", +"pattern": "^people/[^/]+$", +"required": true, +"type": "string" +}, +"sources": { +"description": "Optional. A mask of what source types to return. Defaults to READ_SOURCE_TYPE_CONTACT and READ_SOURCE_TYPE_PROFILE if not set.", +"enum": [ +"READ_SOURCE_TYPE_UNSPECIFIED", +"READ_SOURCE_TYPE_PROFILE", +"READ_SOURCE_TYPE_CONTACT", +"READ_SOURCE_TYPE_DOMAIN_CONTACT", +"READ_SOURCE_TYPE_OTHER_CONTACT" +], +"enumDescriptions": [ +"Unspecified.", +"Returns SourceType.ACCOUNT, SourceType.DOMAIN_PROFILE, and SourceType.PROFILE.", +"Returns SourceType.CONTACT.", +"Returns SourceType.DOMAIN_CONTACT.", +"Returns SourceType.OTHER_CONTACT." +], +"location": "query", +"repeated": true, +"type": "string" +}, +"updatePersonFields": { +"description": "Required. A field mask to restrict which fields on the person are updated. Multiple fields can be specified by separating them with commas. All updated fields will be replaced. Valid values are: * addresses * biographies * birthdays * calendarUrls * clientData * emailAddresses * events * externalIds * genders * imClients * interests * locales * locations * memberships * miscKeywords * names * nicknames * occupations * organizations * phoneNumbers * relations * sipAddresses * urls * userDefined", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+resourceName}:updateContact", +"request": { +"$ref": "Person" +}, +"response": { +"$ref": "Person" +}, +"scopes": [ +"https://www.googleapis.com/auth/contacts" +] +}, +"updateContactPhoto": { +"description": "Update a contact's photo. Mutate requests for the same user should be sent sequentially to avoid increased latency and failures.", +"flatPath": "v1/people/{peopleId}:updateContactPhoto", +"httpMethod": "PATCH", +"id": "people.people.updateContactPhoto", +"parameterOrder": [ +"resourceName" +], +"parameters": { +"resourceName": { +"description": "Required. Person resource name", +"location": "path", +"pattern": "^people/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resourceName}:updateContactPhoto", +"request": { +"$ref": "UpdateContactPhotoRequest" +}, +"response": { +"$ref": "UpdateContactPhotoResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/contacts" +] +} +}, +"resources": { +"connections": { +"methods": { +"list": { +"description": "Provides a list of the authenticated user's contacts. Sync tokens expire 7 days after the full sync. A request with an expired sync token will get an error with an [google.rpc.ErrorInfo](https://cloud.google.com/apis/design/errors#error_info) with reason \"EXPIRED_SYNC_TOKEN\". In the case of such an error clients should make a full sync request without a `sync_token`. The first page of a full sync request has an additional quota. If the quota is exceeded, a 429 error will be returned. This quota is fixed and can not be increased. When the `sync_token` is specified, resources deleted since the last sync will be returned as a person with `PersonMetadata.deleted` set to true. When the `page_token` or `sync_token` is specified, all other request parameters must match the first call. Writes may have a propagation delay of several minutes for sync requests. Incremental syncs are not intended for read-after-write use cases. See example usage at [List the user's contacts that have changed](/people/v1/contacts#list_the_users_contacts_that_have_changed).", +"flatPath": "v1/people/{peopleId}/connections", +"httpMethod": "GET", +"id": "people.people.connections.list", +"parameterOrder": [ +"resourceName" +], +"parameters": { +"pageSize": { +"description": "Optional. The number of connections to include in the response. Valid values are between 1 and 1000, inclusive. Defaults to 100 if not set or set to 0.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A page token, received from a previous response `next_page_token`. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `people.connections.list` must match the first call that provided the page token.", +"location": "query", +"type": "string" +}, +"personFields": { +"description": "Required. A field mask to restrict which fields on each person are returned. Multiple fields can be specified by separating them with commas. Valid values are: * addresses * ageRanges * biographies * birthdays * calendarUrls * clientData * coverPhotos * emailAddresses * events * externalIds * genders * imClients * interests * locales * locations * memberships * metadata * miscKeywords * names * nicknames * occupations * organizations * phoneNumbers * photos * relations * sipAddresses * skills * urls * userDefined", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"requestMask.includeField": { +"description": "Required. Comma-separated list of person fields to be included in the response. Each path should start with `person.`: for example, `person.names` or `person.photos`.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +}, +"requestSyncToken": { +"description": "Optional. Whether the response should return `next_sync_token` on the last page of results. It can be used to get incremental changes since the last request by setting it on the request `sync_token`. More details about sync behavior at `people.connections.list`.", +"location": "query", +"type": "boolean" +}, +"resourceName": { +"description": "Required. The resource name to return connections for. Only `people/me` is valid.", +"location": "path", +"pattern": "^people/[^/]+$", +"required": true, +"type": "string" +}, +"sortOrder": { +"description": "Optional. The order in which the connections should be sorted. Defaults to `LAST_MODIFIED_ASCENDING`.", +"enum": [ +"LAST_MODIFIED_ASCENDING", +"LAST_MODIFIED_DESCENDING", +"FIRST_NAME_ASCENDING", +"LAST_NAME_ASCENDING" +], +"enumDescriptions": [ +"Sort people by when they were changed; older entries first.", +"Sort people by when they were changed; newer entries first.", +"Sort people by first name.", +"Sort people by last name." +], +"location": "query", +"type": "string" +}, +"sources": { +"description": "Optional. A mask of what source types to return. Defaults to READ_SOURCE_TYPE_CONTACT and READ_SOURCE_TYPE_PROFILE if not set.", +"enum": [ +"READ_SOURCE_TYPE_UNSPECIFIED", +"READ_SOURCE_TYPE_PROFILE", +"READ_SOURCE_TYPE_CONTACT", +"READ_SOURCE_TYPE_DOMAIN_CONTACT", +"READ_SOURCE_TYPE_OTHER_CONTACT" +], +"enumDescriptions": [ +"Unspecified.", +"Returns SourceType.ACCOUNT, SourceType.DOMAIN_PROFILE, and SourceType.PROFILE.", +"Returns SourceType.CONTACT.", +"Returns SourceType.DOMAIN_CONTACT.", +"Returns SourceType.OTHER_CONTACT." +], +"location": "query", +"repeated": true, +"type": "string" +}, +"syncToken": { +"description": "Optional. A sync token, received from a previous response `next_sync_token` Provide this to retrieve only the resources changed since the last request. When syncing, all other parameters provided to `people.connections.list` must match the first call that provided the sync token. More details about sync behavior at `people.connections.list`.", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+resourceName}/connections", +"response": { +"$ref": "ListConnectionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/contacts", +"https://www.googleapis.com/auth/contacts.readonly" +] +} +} +} +} +} +}, +"revision": "20240707", +"rootUrl": "https://people.googleapis.com/", +"schemas": { +"Address": { +"description": "A person's physical address. May be a P.O. box or street address. All fields are optional.", +"id": "Address", +"properties": { +"city": { +"description": "The city of the address.", +"type": "string" +}, +"country": { +"description": "The country of the address.", +"type": "string" +}, +"countryCode": { +"description": "The [ISO 3166-1 alpha-2](http://www.iso.org/iso/country_codes.htm) country code of the address.", +"type": "string" +}, +"extendedAddress": { +"description": "The extended address of the address; for example, the apartment number.", +"type": "string" +}, +"formattedType": { +"description": "Output only. The type of the address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale.", +"readOnly": true, +"type": "string" +}, +"formattedValue": { +"description": "The unstructured value of the address. If this is not set by the user it will be automatically constructed from structured values.", +"type": "string" +}, +"metadata": { +"$ref": "FieldMetadata", +"description": "Metadata about the address." +}, +"poBox": { +"description": "The P.O. box of the address.", +"type": "string" +}, +"postalCode": { +"description": "The postal code of the address.", +"type": "string" +}, +"region": { +"description": "The region of the address; for example, the state or province.", +"type": "string" +}, +"streetAddress": { +"description": "The street address.", +"type": "string" +}, +"type": { +"description": "The type of the address. The type can be custom or one of these predefined values: * `home` * `work` * `other`", +"type": "string" +} +}, +"type": "object" +}, +"AgeRangeType": { +"description": "A person's age range.", +"id": "AgeRangeType", +"properties": { +"ageRange": { +"description": "The age range.", +"enum": [ +"AGE_RANGE_UNSPECIFIED", +"LESS_THAN_EIGHTEEN", +"EIGHTEEN_TO_TWENTY", +"TWENTY_ONE_OR_OLDER" +], +"enumDescriptions": [ +"Unspecified.", +"Younger than eighteen.", +"Between eighteen and twenty.", +"Twenty-one and older." +], +"type": "string" +}, +"metadata": { +"$ref": "FieldMetadata", +"description": "Metadata about the age range." +} +}, +"type": "object" +}, +"BatchCreateContactsRequest": { +"description": "A request to create a batch of contacts.", +"id": "BatchCreateContactsRequest", +"properties": { +"contacts": { +"description": "Required. The contact to create. Allows up to 200 contacts in a single request.", +"items": { +"$ref": "ContactToCreate" +}, +"type": "array" +}, +"readMask": { +"description": "Required. A field mask to restrict which fields on each person are returned in the response. Multiple fields can be specified by separating them with commas. If read mask is left empty, the post-mutate-get is skipped and no data will be returned in the response. Valid values are: * addresses * ageRanges * biographies * birthdays * calendarUrls * clientData * coverPhotos * emailAddresses * events * externalIds * genders * imClients * interests * locales * locations * memberships * metadata * miscKeywords * names * nicknames * occupations * organizations * phoneNumbers * photos * relations * sipAddresses * skills * urls * userDefined", +"format": "google-fieldmask", +"type": "string" +}, +"sources": { +"description": "Optional. A mask of what source types to return in the post mutate read. Defaults to READ_SOURCE_TYPE_CONTACT and READ_SOURCE_TYPE_PROFILE if not set.", +"items": { +"enum": [ +"READ_SOURCE_TYPE_UNSPECIFIED", +"READ_SOURCE_TYPE_PROFILE", +"READ_SOURCE_TYPE_CONTACT", +"READ_SOURCE_TYPE_DOMAIN_CONTACT", +"READ_SOURCE_TYPE_OTHER_CONTACT" +], +"enumDescriptions": [ +"Unspecified.", +"Returns SourceType.ACCOUNT, SourceType.DOMAIN_PROFILE, and SourceType.PROFILE.", +"Returns SourceType.CONTACT.", +"Returns SourceType.DOMAIN_CONTACT.", +"Returns SourceType.OTHER_CONTACT." +], +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"BatchCreateContactsResponse": { +"description": "If not successful, returns BatchCreateContactsErrorDetails which contains a list of errors for each invalid contact. The response to a request to create a batch of contacts.", +"id": "BatchCreateContactsResponse", +"properties": { +"createdPeople": { +"description": "The contacts that were created, unless the request `read_mask` is empty.", +"items": { +"$ref": "PersonResponse" +}, +"type": "array" +} +}, +"type": "object" +}, +"BatchDeleteContactsRequest": { +"description": "A request to delete a batch of existing contacts.", +"id": "BatchDeleteContactsRequest", +"properties": { +"resourceNames": { +"description": "Required. The resource names of the contact to delete. It's repeatable. Allows up to 500 resource names in a single request.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"BatchGetContactGroupsResponse": { +"description": "The response to a batch get contact groups request.", +"id": "BatchGetContactGroupsResponse", +"properties": { +"responses": { +"description": "The list of responses for each requested contact group resource.", +"items": { +"$ref": "ContactGroupResponse" +}, +"type": "array" +} +}, +"type": "object" +}, +"BatchUpdateContactsRequest": { +"description": "A request to update a batch of contacts.", +"id": "BatchUpdateContactsRequest", +"properties": { +"contacts": { +"additionalProperties": { +"$ref": "Person" +}, +"description": "Required. A map of resource names to the person data to be updated. Allows up to 200 contacts in a single request.", +"type": "object" +}, +"readMask": { +"description": "Required. A field mask to restrict which fields on each person are returned. Multiple fields can be specified by separating them with commas. If read mask is left empty, the post-mutate-get is skipped and no data will be returned in the response. Valid values are: * addresses * ageRanges * biographies * birthdays * calendarUrls * clientData * coverPhotos * emailAddresses * events * externalIds * genders * imClients * interests * locales * locations * memberships * metadata * miscKeywords * names * nicknames * occupations * organizations * phoneNumbers * photos * relations * sipAddresses * skills * urls * userDefined", +"format": "google-fieldmask", +"type": "string" +}, +"sources": { +"description": "Optional. A mask of what source types to return. Defaults to READ_SOURCE_TYPE_CONTACT and READ_SOURCE_TYPE_PROFILE if not set.", +"items": { +"enum": [ +"READ_SOURCE_TYPE_UNSPECIFIED", +"READ_SOURCE_TYPE_PROFILE", +"READ_SOURCE_TYPE_CONTACT", +"READ_SOURCE_TYPE_DOMAIN_CONTACT", +"READ_SOURCE_TYPE_OTHER_CONTACT" +], +"enumDescriptions": [ +"Unspecified.", +"Returns SourceType.ACCOUNT, SourceType.DOMAIN_PROFILE, and SourceType.PROFILE.", +"Returns SourceType.CONTACT.", +"Returns SourceType.DOMAIN_CONTACT.", +"Returns SourceType.OTHER_CONTACT." +], +"type": "string" +}, +"type": "array" +}, +"updateMask": { +"description": "Required. A field mask to restrict which fields on the person are updated. Multiple fields can be specified by separating them with commas. All specified fields will be replaced, or cleared if left empty for each person. Valid values are: * addresses * biographies * birthdays * calendarUrls * clientData * emailAddresses * events * externalIds * genders * imClients * interests * locales * locations * memberships * miscKeywords * names * nicknames * occupations * organizations * phoneNumbers * relations * sipAddresses * urls * userDefined", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"BatchUpdateContactsResponse": { +"description": "If not successful, returns BatchUpdateContactsErrorDetails, a list of errors corresponding to each contact. The response to a request to update a batch of contacts.", +"id": "BatchUpdateContactsResponse", +"properties": { +"updateResult": { +"additionalProperties": { +"$ref": "PersonResponse" +}, +"description": "A map of resource names to the contacts that were updated, unless the request `read_mask` is empty.", +"type": "object" +} +}, +"type": "object" +}, +"Biography": { +"description": "A person's short biography.", +"id": "Biography", +"properties": { +"contentType": { +"description": "The content type of the biography.", +"enum": [ +"CONTENT_TYPE_UNSPECIFIED", +"TEXT_PLAIN", +"TEXT_HTML" +], +"enumDescriptions": [ +"Unspecified.", +"Plain text.", +"HTML text." +], +"type": "string" +}, +"metadata": { +"$ref": "FieldMetadata", +"description": "Metadata about the biography." +}, +"value": { +"description": "The short biography.", +"type": "string" +} +}, +"type": "object" +}, +"Birthday": { +"description": "A person's birthday. At least one of the `date` and `text` fields are specified. The `date` and `text` fields typically represent the same date, but are not guaranteed to. Clients should always set the `date` field when mutating birthdays.", +"id": "Birthday", +"properties": { +"date": { +"$ref": "Date", +"description": "The structured date of the birthday." +}, +"metadata": { +"$ref": "FieldMetadata", +"description": "Metadata about the birthday." +}, +"text": { +"deprecated": true, +"description": "Prefer to use the `date` field if set. A free-form string representing the user's birthday. This value is not validated.", +"type": "string" +} +}, +"type": "object" +}, +"BraggingRights": { +"deprecated": true, +"description": "**DEPRECATED**: No data will be returned A person's bragging rights.", +"id": "BraggingRights", +"properties": { +"metadata": { +"$ref": "FieldMetadata", +"description": "Metadata about the bragging rights." +}, +"value": { +"description": "The bragging rights; for example, `climbed mount everest`.", +"type": "string" +} +}, +"type": "object" +}, +"CalendarUrl": { +"description": "A person's calendar URL.", +"id": "CalendarUrl", +"properties": { +"formattedType": { +"description": "Output only. The type of the calendar URL translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale.", +"readOnly": true, +"type": "string" +}, +"metadata": { +"$ref": "FieldMetadata", +"description": "Metadata about the calendar URL." +}, +"type": { +"description": "The type of the calendar URL. The type can be custom or one of these predefined values: * `home` * `freeBusy` * `work`", +"type": "string" +}, +"url": { +"description": "The calendar URL.", +"type": "string" +} +}, +"type": "object" +}, +"ClientData": { +"description": "Arbitrary client data that is populated by clients. Duplicate keys and values are allowed.", +"id": "ClientData", +"properties": { +"key": { +"description": "The client specified key of the client data.", +"type": "string" +}, +"metadata": { +"$ref": "FieldMetadata", +"description": "Metadata about the client data." +}, +"value": { +"description": "The client specified value of the client data.", +"type": "string" +} +}, +"type": "object" +}, +"ContactGroup": { +"description": "A contact group.", +"id": "ContactGroup", +"properties": { +"clientData": { +"description": "The group's client data.", +"items": { +"$ref": "GroupClientData" +}, +"type": "array" +}, +"etag": { +"description": "The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the resource. Used for web cache validation.", +"type": "string" +}, +"formattedName": { +"description": "Output only. The name translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale for system groups names. Group names set by the owner are the same as name.", +"readOnly": true, +"type": "string" +}, +"groupType": { +"description": "Output only. The contact group type.", +"enum": [ +"GROUP_TYPE_UNSPECIFIED", +"USER_CONTACT_GROUP", +"SYSTEM_CONTACT_GROUP" +], +"enumDescriptions": [ +"Unspecified.", +"User defined contact group.", +"System defined contact group." +], +"readOnly": true, +"type": "string" +}, +"memberCount": { +"description": "Output only. The total number of contacts in the group irrespective of max members in specified in the request.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"memberResourceNames": { +"description": "Output only. The list of contact person resource names that are members of the contact group. The field is only populated for GET requests and will only return as many members as `maxMembers` in the get request.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"metadata": { +"$ref": "ContactGroupMetadata", +"description": "Output only. Metadata about the contact group.", +"readOnly": true +}, +"name": { +"description": "The contact group name set by the group owner or a system provided name for system groups. For [`contactGroups.create`](/people/api/rest/v1/contactGroups/create) or [`contactGroups.update`](/people/api/rest/v1/contactGroups/update) the name must be unique to the users contact groups. Attempting to create a group with a duplicate name will return a HTTP 409 error.", +"type": "string" +}, +"resourceName": { +"description": "The resource name for the contact group, assigned by the server. An ASCII string, in the form of `contactGroups/{contact_group_id}`.", +"type": "string" +} +}, +"type": "object" +}, +"ContactGroupMembership": { +"description": "A Google contact group membership.", +"id": "ContactGroupMembership", +"properties": { +"contactGroupId": { +"deprecated": true, +"description": "Output only. The contact group ID for the contact group membership.", +"readOnly": true, +"type": "string" +}, +"contactGroupResourceName": { +"description": "The resource name for the contact group, assigned by the server. An ASCII string, in the form of `contactGroups/{contact_group_id}`. Only contact_group_resource_name can be used for modifying memberships. Any contact group membership can be removed, but only user group or \"myContacts\" or \"starred\" system groups memberships can be added. A contact must always have at least one contact group membership.", +"type": "string" +} +}, +"type": "object" +}, +"ContactGroupMetadata": { +"description": "The metadata about a contact group.", +"id": "ContactGroupMetadata", +"properties": { +"deleted": { +"description": "Output only. True if the contact group resource has been deleted. Populated only for [`ListContactGroups`](/people/api/rest/v1/contactgroups/list) requests that include a sync token.", +"readOnly": true, +"type": "boolean" +}, +"updateTime": { +"description": "Output only. The time the group was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ContactGroupResponse": { +"description": "The response for a specific contact group.", +"id": "ContactGroupResponse", +"properties": { +"contactGroup": { +"$ref": "ContactGroup", +"description": "The contact group." +}, +"requestedResourceName": { +"description": "The original requested resource name.", +"type": "string" +}, +"status": { +"$ref": "Status", +"description": "The status of the response." +} +}, +"type": "object" +}, +"ContactToCreate": { +"description": "A wrapper that contains the person data to populate a newly created source.", +"id": "ContactToCreate", +"properties": { +"contactPerson": { +"$ref": "Person", +"description": "Required. The person data to populate a newly created source." +} +}, +"type": "object" +}, +"CopyOtherContactToMyContactsGroupRequest": { +"description": "A request to copy an \"Other contact\" to my contacts group.", +"id": "CopyOtherContactToMyContactsGroupRequest", +"properties": { +"copyMask": { +"description": "Required. A field mask to restrict which fields are copied into the new contact. Valid values are: * emailAddresses * names * phoneNumbers", +"format": "google-fieldmask", +"type": "string" +}, +"readMask": { +"description": "Optional. A field mask to restrict which fields on the person are returned. Multiple fields can be specified by separating them with commas. Defaults to the copy mask with metadata and membership fields if not set. Valid values are: * addresses * ageRanges * biographies * birthdays * calendarUrls * clientData * coverPhotos * emailAddresses * events * externalIds * genders * imClients * interests * locales * locations * memberships * metadata * miscKeywords * names * nicknames * occupations * organizations * phoneNumbers * photos * relations * sipAddresses * skills * urls * userDefined", +"format": "google-fieldmask", +"type": "string" +}, +"sources": { +"description": "Optional. A mask of what source types to return. Defaults to READ_SOURCE_TYPE_CONTACT and READ_SOURCE_TYPE_PROFILE if not set.", +"items": { +"enum": [ +"READ_SOURCE_TYPE_UNSPECIFIED", +"READ_SOURCE_TYPE_PROFILE", +"READ_SOURCE_TYPE_CONTACT", +"READ_SOURCE_TYPE_DOMAIN_CONTACT", +"READ_SOURCE_TYPE_OTHER_CONTACT" +], +"enumDescriptions": [ +"Unspecified.", +"Returns SourceType.ACCOUNT, SourceType.DOMAIN_PROFILE, and SourceType.PROFILE.", +"Returns SourceType.CONTACT.", +"Returns SourceType.DOMAIN_CONTACT.", +"Returns SourceType.OTHER_CONTACT." +], +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"CoverPhoto": { +"description": "A person's cover photo. A large image shown on the person's profile page that represents who they are or what they care about.", +"id": "CoverPhoto", +"properties": { +"default": { +"description": "True if the cover photo is the default cover photo; false if the cover photo is a user-provided cover photo.", +"type": "boolean" +}, +"metadata": { +"$ref": "FieldMetadata", +"description": "Metadata about the cover photo." +}, +"url": { +"description": "The URL of the cover photo.", +"type": "string" +} +}, +"type": "object" +}, +"CreateContactGroupRequest": { +"description": "A request to create a new contact group.", +"id": "CreateContactGroupRequest", +"properties": { +"contactGroup": { +"$ref": "ContactGroup", +"description": "Required. The contact group to create." +}, +"readGroupFields": { +"description": "Optional. A field mask to restrict which fields on the group are returned. Defaults to `metadata`, `groupType`, and `name` if not set or set to empty. Valid fields are: * clientData * groupType * metadata * name", +"format": "google-fieldmask", +"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" +}, +"DeleteContactPhotoResponse": { +"description": "The response for deleting a contact's photo.", +"id": "DeleteContactPhotoResponse", +"properties": { +"person": { +"$ref": "Person", +"description": "The updated person, if person_fields is set in the DeleteContactPhotoRequest; otherwise this will be unset." +} +}, +"type": "object" +}, +"DomainMembership": { +"description": "A Google Workspace Domain membership.", +"id": "DomainMembership", +"properties": { +"inViewerDomain": { +"description": "True if the person is in the viewer's Google Workspace domain.", +"type": "boolean" +} +}, +"type": "object" +}, +"EmailAddress": { +"description": "A person's email address.", +"id": "EmailAddress", +"properties": { +"displayName": { +"description": "The display name of the email.", +"type": "string" +}, +"formattedType": { +"description": "Output only. The type of the email address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale.", +"readOnly": true, +"type": "string" +}, +"metadata": { +"$ref": "FieldMetadata", +"description": "Metadata about the email address." +}, +"type": { +"description": "The type of the email address. The type can be custom or one of these predefined values: * `home` * `work` * `other`", +"type": "string" +}, +"value": { +"description": "The email address.", +"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" +}, +"Event": { +"description": "An event related to the person.", +"id": "Event", +"properties": { +"date": { +"$ref": "Date", +"description": "The date of the event." +}, +"formattedType": { +"description": "Output only. The type of the event translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale.", +"readOnly": true, +"type": "string" +}, +"metadata": { +"$ref": "FieldMetadata", +"description": "Metadata about the event." +}, +"type": { +"description": "The type of the event. The type can be custom or one of these predefined values: * `anniversary` * `other`", +"type": "string" +} +}, +"type": "object" +}, +"ExternalId": { +"description": "An identifier from an external entity related to the person.", +"id": "ExternalId", +"properties": { +"formattedType": { +"description": "Output only. The type of the event translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale.", +"readOnly": true, +"type": "string" +}, +"metadata": { +"$ref": "FieldMetadata", +"description": "Metadata about the external ID." +}, +"type": { +"description": "The type of the external ID. The type can be custom or one of these predefined values: * `account` * `customer` * `loginId` * `network` * `organization`", +"type": "string" +}, +"value": { +"description": "The value of the external ID.", +"type": "string" +} +}, +"type": "object" +}, +"FieldMetadata": { +"description": "Metadata about a field.", +"id": "FieldMetadata", +"properties": { +"primary": { +"description": "Output only. True if the field is the primary field for all sources in the person. Each person will have at most one field with `primary` set to true.", +"readOnly": true, +"type": "boolean" +}, +"source": { +"$ref": "Source", +"description": "The source of the field." +}, +"sourcePrimary": { +"description": "True if the field is the primary field for the source. Each source must have at most one field with `source_primary` set to true.", +"type": "boolean" +}, +"verified": { +"description": "Output only. True if the field is verified; false if the field is unverified. A verified field is typically a name, email address, phone number, or website that has been confirmed to be owned by the person.", +"readOnly": true, +"type": "boolean" +} +}, +"type": "object" +}, +"FileAs": { +"description": "The name that should be used to sort the person in a list.", +"id": "FileAs", +"properties": { +"metadata": { +"$ref": "FieldMetadata", +"description": "Metadata about the file-as." +}, +"value": { +"description": "The file-as value", +"type": "string" +} +}, +"type": "object" +}, +"Gender": { +"description": "A person's gender.", +"id": "Gender", +"properties": { +"addressMeAs": { +"description": "Free form text field for pronouns that should be used to address the person. Common values are: * `he`/`him` * `she`/`her` * `they`/`them`", +"type": "string" +}, +"formattedValue": { +"description": "Output only. The value of the gender translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale. Unspecified or custom value are not localized.", +"readOnly": true, +"type": "string" +}, +"metadata": { +"$ref": "FieldMetadata", +"description": "Metadata about the gender." +}, +"value": { +"description": "The gender for the person. The gender can be custom or one of these predefined values: * `male` * `female` * `unspecified`", +"type": "string" +} +}, +"type": "object" +}, +"GetPeopleResponse": { +"description": "The response to a get request for a list of people by resource name.", +"id": "GetPeopleResponse", +"properties": { +"responses": { +"description": "The response for each requested resource name.", +"items": { +"$ref": "PersonResponse" +}, +"type": "array" +} +}, +"type": "object" +}, +"GroupClientData": { +"description": "Arbitrary client data that is populated by clients. Duplicate keys and values are allowed.", +"id": "GroupClientData", +"properties": { +"key": { +"description": "The client specified key of the client data.", +"type": "string" +}, +"value": { +"description": "The client specified value of the client data.", +"type": "string" +} +}, +"type": "object" +}, +"ImClient": { +"description": "A person's instant messaging client.", +"id": "ImClient", +"properties": { +"formattedProtocol": { +"description": "Output only. The protocol of the IM client formatted in the viewer's account locale or the `Accept-Language` HTTP header locale.", +"readOnly": true, +"type": "string" +}, +"formattedType": { +"description": "Output only. The type of the IM client translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale.", +"readOnly": true, +"type": "string" +}, +"metadata": { +"$ref": "FieldMetadata", +"description": "Metadata about the IM client." +}, +"protocol": { +"description": "The protocol of the IM client. The protocol can be custom or one of these predefined values: * `aim` * `msn` * `yahoo` * `skype` * `qq` * `googleTalk` * `icq` * `jabber` * `netMeeting`", +"type": "string" +}, +"type": { +"description": "The type of the IM client. The type can be custom or one of these predefined values: * `home` * `work` * `other`", +"type": "string" +}, +"username": { +"description": "The user name used in the IM client.", +"type": "string" +} +}, +"type": "object" +}, +"Interest": { +"description": "One of the person's interests.", +"id": "Interest", +"properties": { +"metadata": { +"$ref": "FieldMetadata", +"description": "Metadata about the interest." +}, +"value": { +"description": "The interest; for example, `stargazing`.", +"type": "string" +} +}, +"type": "object" +}, +"ListConnectionsResponse": { +"description": "The response to a request for the authenticated user's connections.", +"id": "ListConnectionsResponse", +"properties": { +"connections": { +"description": "The list of people that the requestor is connected to.", +"items": { +"$ref": "Person" +}, +"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" +}, +"nextSyncToken": { +"description": "A token, which can be sent as `sync_token` to retrieve changes since the last request. Request must set `request_sync_token` to return the sync token. When the response is paginated, only the last page will contain `nextSyncToken`.", +"type": "string" +}, +"totalItems": { +"description": "The total number of items in the list without pagination.", +"format": "int32", +"type": "integer" +}, +"totalPeople": { +"deprecated": true, +"description": "**DEPRECATED** (Please use totalItems) The total number of people in the list without pagination.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"ListContactGroupsResponse": { +"description": "The response to a list contact groups request.", +"id": "ListContactGroupsResponse", +"properties": { +"contactGroups": { +"description": "The list of contact groups. Members of the contact groups are not populated.", +"items": { +"$ref": "ContactGroup" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The token that can be used to retrieve the next page of results.", +"type": "string" +}, +"nextSyncToken": { +"description": "The token that can be used to retrieve changes since the last request.", +"type": "string" +}, +"totalItems": { +"description": "The total number of items in the list without pagination.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"ListDirectoryPeopleResponse": { +"description": "The response to a request for the authenticated user's domain directory.", +"id": "ListDirectoryPeopleResponse", +"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" +}, +"nextSyncToken": { +"description": "A token, which can be sent as `sync_token` to retrieve changes since the last request. Request must set `request_sync_token` to return the sync token.", +"type": "string" +}, +"people": { +"description": "The list of people in the domain directory.", +"items": { +"$ref": "Person" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListOtherContactsResponse": { +"description": "The response to a request for the authenticated user's \"Other contacts\".", +"id": "ListOtherContactsResponse", +"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" +}, +"nextSyncToken": { +"description": "A token, which can be sent as `sync_token` to retrieve changes since the last request. Request must set `request_sync_token` to return the sync token.", +"type": "string" +}, +"otherContacts": { +"description": "The list of \"Other contacts\" returned as Person resources. \"Other contacts\" support a limited subset of fields. See ListOtherContactsRequest.request_mask for more detailed information.", +"items": { +"$ref": "Person" +}, +"type": "array" +}, +"totalSize": { +"description": "The total number of other contacts in the list without pagination.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"Locale": { +"description": "A person's locale preference.", +"id": "Locale", +"properties": { +"metadata": { +"$ref": "FieldMetadata", +"description": "Metadata about the locale." +}, +"value": { +"description": "The well-formed [IETF BCP 47](https://tools.ietf.org/html/bcp47) language tag representing the locale.", +"type": "string" +} +}, +"type": "object" +}, +"Location": { +"description": "A person's location.", +"id": "Location", +"properties": { +"buildingId": { +"description": "The building identifier.", +"type": "string" +}, +"current": { +"description": "Whether the location is the current location.", +"type": "boolean" +}, +"deskCode": { +"description": "The individual desk location.", +"type": "string" +}, +"floor": { +"description": "The floor name or number.", +"type": "string" +}, +"floorSection": { +"description": "The floor section in `floor_name`.", +"type": "string" +}, +"metadata": { +"$ref": "FieldMetadata", +"description": "Metadata about the location." +}, +"type": { +"description": "The type of the location. The type can be custom or one of these predefined values: * `desk` * `grewUp`", +"type": "string" +}, +"value": { +"description": "The free-form value of the location.", +"type": "string" +} +}, +"type": "object" +}, +"Membership": { +"description": "A person's membership in a group. Only contact group memberships can be modified.", +"id": "Membership", +"properties": { +"contactGroupMembership": { +"$ref": "ContactGroupMembership", +"description": "The contact group membership." +}, +"domainMembership": { +"$ref": "DomainMembership", +"description": "Output only. The domain membership.", +"readOnly": true +}, +"metadata": { +"$ref": "FieldMetadata", +"description": "Metadata about the membership." +} +}, +"type": "object" +}, +"MiscKeyword": { +"description": "A person's miscellaneous keyword.", +"id": "MiscKeyword", +"properties": { +"formattedType": { +"description": "Output only. The type of the miscellaneous keyword translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale.", +"readOnly": true, +"type": "string" +}, +"metadata": { +"$ref": "FieldMetadata", +"description": "Metadata about the miscellaneous keyword." +}, +"type": { +"description": "The miscellaneous keyword type.", +"enum": [ +"TYPE_UNSPECIFIED", +"OUTLOOK_BILLING_INFORMATION", +"OUTLOOK_DIRECTORY_SERVER", +"OUTLOOK_KEYWORD", +"OUTLOOK_MILEAGE", +"OUTLOOK_PRIORITY", +"OUTLOOK_SENSITIVITY", +"OUTLOOK_SUBJECT", +"OUTLOOK_USER", +"HOME", +"WORK", +"OTHER" +], +"enumDescriptions": [ +"Unspecified.", +"Outlook field for billing information.", +"Outlook field for directory server.", +"Outlook field for keyword.", +"Outlook field for mileage.", +"Outlook field for priority.", +"Outlook field for sensitivity.", +"Outlook field for subject.", +"Outlook field for user.", +"Home.", +"Work.", +"Other." +], +"type": "string" +}, +"value": { +"description": "The value of the miscellaneous keyword.", +"type": "string" +} +}, +"type": "object" +}, +"ModifyContactGroupMembersRequest": { +"description": "A request to modify an existing contact group's members. Contacts can be removed from any group but they can only be added to a user group or \"myContacts\" or \"starred\" system groups.", +"id": "ModifyContactGroupMembersRequest", +"properties": { +"resourceNamesToAdd": { +"description": "Optional. The resource names of the contact people to add in the form of `people/{person_id}`. The total number of resource names in `resource_names_to_add` and `resource_names_to_remove` must be less than or equal to 1000.", +"items": { +"type": "string" +}, +"type": "array" +}, +"resourceNamesToRemove": { +"description": "Optional. The resource names of the contact people to remove in the form of `people/{person_id}`. The total number of resource names in `resource_names_to_add` and `resource_names_to_remove` must be less than or equal to 1000.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ModifyContactGroupMembersResponse": { +"description": "The response to a modify contact group members request.", +"id": "ModifyContactGroupMembersResponse", +"properties": { +"canNotRemoveLastContactGroupResourceNames": { +"description": "The contact people resource names that cannot be removed from their last contact group.", +"items": { +"type": "string" +}, +"type": "array" +}, +"notFoundResourceNames": { +"description": "The contact people resource names that were not found.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Name": { +"description": "A person's name. If the name is a mononym, the family name is empty.", +"id": "Name", +"properties": { +"displayName": { +"description": "Output only. The display name formatted according to the locale specified by the viewer's account or the `Accept-Language` HTTP header.", +"readOnly": true, +"type": "string" +}, +"displayNameLastFirst": { +"description": "Output only. The display name with the last name first formatted according to the locale specified by the viewer's account or the `Accept-Language` HTTP header.", +"readOnly": true, +"type": "string" +}, +"familyName": { +"description": "The family name.", +"type": "string" +}, +"givenName": { +"description": "The given name.", +"type": "string" +}, +"honorificPrefix": { +"description": "The honorific prefixes, such as `Mrs.` or `Dr.`", +"type": "string" +}, +"honorificSuffix": { +"description": "The honorific suffixes, such as `Jr.`", +"type": "string" +}, +"metadata": { +"$ref": "FieldMetadata", +"description": "Metadata about the name." +}, +"middleName": { +"description": "The middle name(s).", +"type": "string" +}, +"phoneticFamilyName": { +"description": "The family name spelled as it sounds.", +"type": "string" +}, +"phoneticFullName": { +"description": "The full name spelled as it sounds.", +"type": "string" +}, +"phoneticGivenName": { +"description": "The given name spelled as it sounds.", +"type": "string" +}, +"phoneticHonorificPrefix": { +"description": "The honorific prefixes spelled as they sound.", +"type": "string" +}, +"phoneticHonorificSuffix": { +"description": "The honorific suffixes spelled as they sound.", +"type": "string" +}, +"phoneticMiddleName": { +"description": "The middle name(s) spelled as they sound.", +"type": "string" +}, +"unstructuredName": { +"description": "The free form name value.", +"type": "string" +} +}, +"type": "object" +}, +"Nickname": { +"description": "A person's nickname.", +"id": "Nickname", +"properties": { +"metadata": { +"$ref": "FieldMetadata", +"description": "Metadata about the nickname." +}, +"type": { +"description": "The type of the nickname.", +"enum": [ +"DEFAULT", +"MAIDEN_NAME", +"INITIALS", +"GPLUS", +"OTHER_NAME", +"ALTERNATE_NAME", +"SHORT_NAME" +], +"enumDeprecated": [ +false, +true, +true, +true, +true, +false, +true +], +"enumDescriptions": [ +"Generic nickname.", +"Maiden name or birth family name. Used when the person's family name has changed as a result of marriage.", +"Initials.", +"Google+ profile nickname.", +"A professional affiliation or other name; for example, `Dr. Smith.`", +"Alternate name person is known by.", +"A shorter version of the person's name." +], +"type": "string" +}, +"value": { +"description": "The nickname.", +"type": "string" +} +}, +"type": "object" +}, +"Occupation": { +"description": "A person's occupation.", +"id": "Occupation", +"properties": { +"metadata": { +"$ref": "FieldMetadata", +"description": "Metadata about the occupation." +}, +"value": { +"description": "The occupation; for example, `carpenter`.", +"type": "string" +} +}, +"type": "object" +}, +"Organization": { +"description": "A person's past or current organization. Overlapping date ranges are permitted.", +"id": "Organization", +"properties": { +"costCenter": { +"description": "The person's cost center at the organization.", +"type": "string" +}, +"current": { +"description": "True if the organization is the person's current organization; false if the organization is a past organization.", +"type": "boolean" +}, +"department": { +"description": "The person's department at the organization.", +"type": "string" +}, +"domain": { +"description": "The domain name associated with the organization; for example, `google.com`.", +"type": "string" +}, +"endDate": { +"$ref": "Date", +"description": "The end date when the person left the organization." +}, +"formattedType": { +"description": "Output only. The type of the organization translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale.", +"readOnly": true, +"type": "string" +}, +"fullTimeEquivalentMillipercent": { +"description": "The person's full-time equivalent millipercent within the organization (100000 = 100%).", +"format": "int32", +"type": "integer" +}, +"jobDescription": { +"description": "The person's job description at the organization.", +"type": "string" +}, +"location": { +"description": "The location of the organization office the person works at.", +"type": "string" +}, +"metadata": { +"$ref": "FieldMetadata", +"description": "Metadata about the organization." +}, +"name": { +"description": "The name of the organization.", +"type": "string" +}, +"phoneticName": { +"description": "The phonetic name of the organization.", +"type": "string" +}, +"startDate": { +"$ref": "Date", +"description": "The start date when the person joined the organization." +}, +"symbol": { +"description": "The symbol associated with the organization; for example, a stock ticker symbol, abbreviation, or acronym.", +"type": "string" +}, +"title": { +"description": "The person's job title at the organization.", +"type": "string" +}, +"type": { +"description": "The type of the organization. The type can be custom or one of these predefined values: * `work` * `school`", +"type": "string" +} +}, +"type": "object" +}, +"Person": { +"description": "Information about a person merged from various data sources such as the authenticated user's contacts and profile data. Most fields can have multiple items. The items in a field have no guaranteed order, but each non-empty field is guaranteed to have exactly one field with `metadata.primary` set to true.", +"id": "Person", +"properties": { +"addresses": { +"description": "The person's street addresses.", +"items": { +"$ref": "Address" +}, +"type": "array" +}, +"ageRange": { +"deprecated": true, +"description": "Output only. **DEPRECATED** (Please use `person.ageRanges` instead) The person's age range.", +"enum": [ +"AGE_RANGE_UNSPECIFIED", +"LESS_THAN_EIGHTEEN", +"EIGHTEEN_TO_TWENTY", +"TWENTY_ONE_OR_OLDER" +], +"enumDescriptions": [ +"Unspecified.", +"Younger than eighteen.", +"Between eighteen and twenty.", +"Twenty-one and older." +], +"readOnly": true, +"type": "string" +}, +"ageRanges": { +"description": "Output only. The person's age ranges.", +"items": { +"$ref": "AgeRangeType" +}, +"readOnly": true, +"type": "array" +}, +"biographies": { +"description": "The person's biographies. This field is a singleton for contact sources.", +"items": { +"$ref": "Biography" +}, +"type": "array" +}, +"birthdays": { +"description": "The person's birthdays. This field is a singleton for contact sources.", +"items": { +"$ref": "Birthday" +}, +"type": "array" +}, +"braggingRights": { +"deprecated": true, +"description": "**DEPRECATED**: No data will be returned The person's bragging rights.", +"items": { +"$ref": "BraggingRights" +}, +"type": "array" +}, +"calendarUrls": { +"description": "The person's calendar URLs.", +"items": { +"$ref": "CalendarUrl" +}, +"type": "array" +}, +"clientData": { +"description": "The person's client data.", +"items": { +"$ref": "ClientData" +}, +"type": "array" +}, +"coverPhotos": { +"description": "Output only. The person's cover photos.", +"items": { +"$ref": "CoverPhoto" +}, +"readOnly": true, +"type": "array" +}, +"emailAddresses": { +"description": "The person's email addresses. For `people.connections.list` and `otherContacts.list` the number of email addresses is limited to 100. If a Person has more email addresses the entire set can be obtained by calling GetPeople.", +"items": { +"$ref": "EmailAddress" +}, +"type": "array" +}, +"etag": { +"description": "The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the resource. Used for web cache validation.", +"type": "string" +}, +"events": { +"description": "The person's events.", +"items": { +"$ref": "Event" +}, +"type": "array" +}, +"externalIds": { +"description": "The person's external IDs.", +"items": { +"$ref": "ExternalId" +}, +"type": "array" +}, +"fileAses": { +"description": "The person's file-ases.", +"items": { +"$ref": "FileAs" +}, +"type": "array" +}, +"genders": { +"description": "The person's genders. This field is a singleton for contact sources.", +"items": { +"$ref": "Gender" +}, +"type": "array" +}, +"imClients": { +"description": "The person's instant messaging clients.", +"items": { +"$ref": "ImClient" +}, +"type": "array" +}, +"interests": { +"description": "The person's interests.", +"items": { +"$ref": "Interest" +}, +"type": "array" +}, +"locales": { +"description": "The person's locale preferences.", +"items": { +"$ref": "Locale" +}, +"type": "array" +}, +"locations": { +"description": "The person's locations.", +"items": { +"$ref": "Location" +}, +"type": "array" +}, +"memberships": { +"description": "The person's group memberships.", +"items": { +"$ref": "Membership" +}, +"type": "array" +}, +"metadata": { +"$ref": "PersonMetadata", +"description": "Output only. Metadata about the person.", +"readOnly": true +}, +"miscKeywords": { +"description": "The person's miscellaneous keywords.", +"items": { +"$ref": "MiscKeyword" +}, +"type": "array" +}, +"names": { +"description": "The person's names. This field is a singleton for contact sources.", +"items": { +"$ref": "Name" +}, +"type": "array" +}, +"nicknames": { +"description": "The person's nicknames.", +"items": { +"$ref": "Nickname" +}, +"type": "array" +}, +"occupations": { +"description": "The person's occupations.", +"items": { +"$ref": "Occupation" +}, +"type": "array" +}, +"organizations": { +"description": "The person's past or current organizations.", +"items": { +"$ref": "Organization" +}, +"type": "array" +}, +"phoneNumbers": { +"description": "The person's phone numbers. For `people.connections.list` and `otherContacts.list` the number of phone numbers is limited to 100. If a Person has more phone numbers the entire set can be obtained by calling GetPeople.", +"items": { +"$ref": "PhoneNumber" +}, +"type": "array" +}, +"photos": { +"description": "Output only. The person's photos.", +"items": { +"$ref": "Photo" +}, +"readOnly": true, +"type": "array" +}, +"relations": { +"description": "The person's relations.", +"items": { +"$ref": "Relation" +}, +"type": "array" +}, +"relationshipInterests": { +"deprecated": true, +"description": "Output only. **DEPRECATED**: No data will be returned The person's relationship interests.", +"items": { +"$ref": "RelationshipInterest" +}, +"readOnly": true, +"type": "array" +}, +"relationshipStatuses": { +"deprecated": true, +"description": "Output only. **DEPRECATED**: No data will be returned The person's relationship statuses.", +"items": { +"$ref": "RelationshipStatus" +}, +"readOnly": true, +"type": "array" +}, +"residences": { +"deprecated": true, +"description": "**DEPRECATED**: (Please use `person.locations` instead) The person's residences.", +"items": { +"$ref": "Residence" +}, +"type": "array" +}, +"resourceName": { +"description": "The resource name for the person, assigned by the server. An ASCII string in the form of `people/{person_id}`.", +"type": "string" +}, +"sipAddresses": { +"description": "The person's SIP addresses.", +"items": { +"$ref": "SipAddress" +}, +"type": "array" +}, +"skills": { +"description": "The person's skills.", +"items": { +"$ref": "Skill" +}, +"type": "array" +}, +"taglines": { +"deprecated": true, +"description": "Output only. **DEPRECATED**: No data will be returned The person's taglines.", +"items": { +"$ref": "Tagline" +}, +"readOnly": true, +"type": "array" +}, +"urls": { +"description": "The person's associated URLs.", +"items": { +"$ref": "Url" +}, +"type": "array" +}, +"userDefined": { +"description": "The person's user defined data.", +"items": { +"$ref": "UserDefined" +}, +"type": "array" +} +}, +"type": "object" +}, +"PersonMetadata": { +"description": "The metadata about a person.", +"id": "PersonMetadata", +"properties": { +"deleted": { +"description": "Output only. True if the person resource has been deleted. Populated only for `people.connections.list` and `otherContacts.list` sync requests.", +"readOnly": true, +"type": "boolean" +}, +"linkedPeopleResourceNames": { +"description": "Output only. Resource names of people linked to this resource.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"objectType": { +"deprecated": true, +"description": "Output only. **DEPRECATED** (Please use `person.metadata.sources.profileMetadata.objectType` instead) The type of the person object.", +"enum": [ +"OBJECT_TYPE_UNSPECIFIED", +"PERSON", +"PAGE" +], +"enumDescriptions": [ +"Unspecified.", +"Person.", +"[Currents Page.](https://workspace.google.com/products/currents/)" +], +"readOnly": true, +"type": "string" +}, +"previousResourceNames": { +"description": "Output only. Any former resource names this person has had. Populated only for `people.connections.list` requests that include a sync token. The resource name may change when adding or removing fields that link a contact and profile such as a verified email, verified phone number, or profile URL.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"sources": { +"description": "The sources of data for the person.", +"items": { +"$ref": "Source" +}, +"type": "array" +} +}, +"type": "object" +}, +"PersonResponse": { +"description": "The response for a single person", +"id": "PersonResponse", +"properties": { +"httpStatusCode": { +"deprecated": true, +"description": "**DEPRECATED** (Please use status instead) [HTTP 1.1 status code] (http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html).", +"format": "int32", +"type": "integer" +}, +"person": { +"$ref": "Person", +"description": "The person." +}, +"requestedResourceName": { +"description": "The original requested resource name. May be different than the resource name on the returned person. The resource name can change when adding or removing fields that link a contact and profile such as a verified email, verified phone number, or a profile URL.", +"type": "string" +}, +"status": { +"$ref": "Status", +"description": "The status of the response." +} +}, +"type": "object" +}, +"PhoneNumber": { +"description": "A person's phone number.", +"id": "PhoneNumber", +"properties": { +"canonicalForm": { +"description": "Output only. The canonicalized [ITU-T E.164](https://law.resource.org/pub/us/cfr/ibr/004/itu-t.E.164.1.2008.pdf) form of the phone number.", +"readOnly": true, +"type": "string" +}, +"formattedType": { +"description": "Output only. The type of the phone number translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale.", +"readOnly": true, +"type": "string" +}, +"metadata": { +"$ref": "FieldMetadata", +"description": "Metadata about the phone number." +}, +"type": { +"description": "The type of the phone number. The type can be custom or one of these predefined values: * `home` * `work` * `mobile` * `homeFax` * `workFax` * `otherFax` * `pager` * `workMobile` * `workPager` * `main` * `googleVoice` * `other`", +"type": "string" +}, +"value": { +"description": "The phone number.", +"type": "string" +} +}, +"type": "object" +}, +"Photo": { +"description": "A person's photo. A picture shown next to the person's name to help others recognize the person.", +"id": "Photo", +"properties": { +"default": { +"description": "True if the photo is a default photo; false if the photo is a user-provided photo.", +"type": "boolean" +}, +"metadata": { +"$ref": "FieldMetadata", +"description": "Metadata about the photo." +}, +"url": { +"description": "The URL of the photo. You can change the desired size by appending a query parameter `sz={size}` at the end of the url, where {size} is the size in pixels. Example: https://lh3.googleusercontent.com/-T_wVWLlmg7w/AAAAAAAAAAI/AAAAAAAABa8/00gzXvDBYqw/s100/photo.jpg?sz=50", +"type": "string" +} +}, +"type": "object" +}, +"ProfileMetadata": { +"description": "The metadata about a profile.", +"id": "ProfileMetadata", +"properties": { +"objectType": { +"description": "Output only. The profile object type.", +"enum": [ +"OBJECT_TYPE_UNSPECIFIED", +"PERSON", +"PAGE" +], +"enumDescriptions": [ +"Unspecified.", +"Person.", +"[Currents Page.](https://workspace.google.com/products/currents/)" +], +"readOnly": true, +"type": "string" +}, +"userTypes": { +"description": "Output only. The user types.", +"items": { +"enum": [ +"USER_TYPE_UNKNOWN", +"GOOGLE_USER", +"GPLUS_USER", +"GOOGLE_APPS_USER" +], +"enumDescriptions": [ +"The user type is not known.", +"The user is a Google user.", +"The user is a Currents user.", +"The user is a Google Workspace user." +], +"type": "string" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"Relation": { +"description": "A person's relation to another person.", +"id": "Relation", +"properties": { +"formattedType": { +"description": "Output only. The type of the relation translated and formatted in the viewer's account locale or the locale specified in the Accept-Language HTTP header.", +"readOnly": true, +"type": "string" +}, +"metadata": { +"$ref": "FieldMetadata", +"description": "Metadata about the relation." +}, +"person": { +"description": "The name of the other person this relation refers to.", +"type": "string" +}, +"type": { +"description": "The person's relation to the other person. The type can be custom or one of these predefined values: * `spouse` * `child` * `mother` * `father` * `parent` * `brother` * `sister` * `friend` * `relative` * `domesticPartner` * `manager` * `assistant` * `referredBy` * `partner`", +"type": "string" +} +}, +"type": "object" +}, +"RelationshipInterest": { +"deprecated": true, +"description": "**DEPRECATED**: No data will be returned A person's relationship interest .", +"id": "RelationshipInterest", +"properties": { +"formattedValue": { +"description": "Output only. The value of the relationship interest translated and formatted in the viewer's account locale or the locale specified in the Accept-Language HTTP header.", +"readOnly": true, +"type": "string" +}, +"metadata": { +"$ref": "FieldMetadata", +"description": "Metadata about the relationship interest." +}, +"value": { +"description": "The kind of relationship the person is looking for. The value can be custom or one of these predefined values: * `friend` * `date` * `relationship` * `networking`", +"type": "string" +} +}, +"type": "object" +}, +"RelationshipStatus": { +"deprecated": true, +"description": "**DEPRECATED**: No data will be returned A person's relationship status.", +"id": "RelationshipStatus", +"properties": { +"formattedValue": { +"description": "Output only. The value of the relationship status translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale.", +"readOnly": true, +"type": "string" +}, +"metadata": { +"$ref": "FieldMetadata", +"description": "Metadata about the relationship status." +}, +"value": { +"description": "The relationship status. The value can be custom or one of these predefined values: * `single` * `inARelationship` * `engaged` * `married` * `itsComplicated` * `openRelationship` * `widowed` * `inDomesticPartnership` * `inCivilUnion`", +"type": "string" +} +}, +"type": "object" +}, +"Residence": { +"deprecated": true, +"description": "**DEPRECATED**: Please use `person.locations` instead. A person's past or current residence.", +"id": "Residence", +"properties": { +"current": { +"description": "True if the residence is the person's current residence; false if the residence is a past residence.", +"type": "boolean" +}, +"metadata": { +"$ref": "FieldMetadata", +"description": "Metadata about the residence." +}, +"value": { +"description": "The address of the residence.", +"type": "string" +} +}, +"type": "object" +}, +"SearchDirectoryPeopleResponse": { +"description": "The response to a request for people in the authenticated user's domain directory that match the specified query.", +"id": "SearchDirectoryPeopleResponse", +"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" +}, +"people": { +"description": "The list of people in the domain directory that match the query.", +"items": { +"$ref": "Person" +}, +"type": "array" +}, +"totalSize": { +"description": "The total number of items in the list without pagination.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"SearchResponse": { +"description": "The response to a search request for the authenticated user, given a query.", +"id": "SearchResponse", +"properties": { +"results": { +"description": "The results of the request.", +"items": { +"$ref": "SearchResult" +}, +"type": "array" +} +}, +"type": "object" +}, +"SearchResult": { +"description": "A result of a search query.", +"id": "SearchResult", +"properties": { +"person": { +"$ref": "Person", +"description": "The matched Person." +} +}, +"type": "object" +}, +"SipAddress": { +"description": "A person's SIP address. Session Initial Protocol addresses are used for VoIP communications to make voice or video calls over the internet.", +"id": "SipAddress", +"properties": { +"formattedType": { +"description": "Output only. The type of the SIP address translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale.", +"readOnly": true, +"type": "string" +}, +"metadata": { +"$ref": "FieldMetadata", +"description": "Metadata about the SIP address." +}, +"type": { +"description": "The type of the SIP address. The type can be custom or or one of these predefined values: * `home` * `work` * `mobile` * `other`", +"type": "string" +}, +"value": { +"description": "The SIP address in the [RFC 3261 19.1](https://tools.ietf.org/html/rfc3261#section-19.1) SIP URI format.", +"type": "string" +} +}, +"type": "object" +}, +"Skill": { +"description": "A skill that the person has.", +"id": "Skill", +"properties": { +"metadata": { +"$ref": "FieldMetadata", +"description": "Metadata about the skill." +}, +"value": { +"description": "The skill; for example, `underwater basket weaving`.", +"type": "string" +} +}, +"type": "object" +}, +"Source": { +"description": "The source of a field.", +"id": "Source", +"properties": { +"etag": { +"description": "**Only populated in `person.metadata.sources`.** The [HTTP entity tag](https://en.wikipedia.org/wiki/HTTP_ETag) of the source. Used for web cache validation.", +"type": "string" +}, +"id": { +"description": "The unique identifier within the source type generated by the server.", +"type": "string" +}, +"profileMetadata": { +"$ref": "ProfileMetadata", +"description": "Output only. **Only populated in `person.metadata.sources`.** Metadata about a source of type PROFILE.", +"readOnly": true +}, +"type": { +"description": "The source type.", +"enum": [ +"SOURCE_TYPE_UNSPECIFIED", +"ACCOUNT", +"PROFILE", +"DOMAIN_PROFILE", +"CONTACT", +"OTHER_CONTACT", +"DOMAIN_CONTACT" +], +"enumDescriptions": [ +"Unspecified.", +"[Google Account](https://accounts.google.com).", +"[Google profile](https://profiles.google.com). You can view the profile at [https://profiles.google.com/](https://profiles.google.com/){id}, where {id} is the source id.", +"[Google Workspace domain profile](https://support.google.com/a/answer/1628008).", +"[Google contact](https://contacts.google.com). You can view the contact at [https://contact.google.com/](https://contact.google.com/){id}, where {id} is the source id.", +"[Google \"Other contact\"](https://contacts.google.com/other).", +"[Google Workspace domain shared contact](https://support.google.com/a/answer/9281635)." +], +"type": "string" +}, +"updateTime": { +"description": "Output only. **Only populated in `person.metadata.sources`.** Last update timestamp of this source.", +"format": "google-datetime", +"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" +}, +"Tagline": { +"deprecated": true, +"description": "**DEPRECATED**: No data will be returned A brief one-line description of the person.", +"id": "Tagline", +"properties": { +"metadata": { +"$ref": "FieldMetadata", +"description": "Metadata about the tagline." +}, +"value": { +"description": "The tagline.", +"type": "string" +} +}, +"type": "object" +}, +"UpdateContactGroupRequest": { +"description": "A request to update an existing user contact group. All updated fields will be replaced.", +"id": "UpdateContactGroupRequest", +"properties": { +"contactGroup": { +"$ref": "ContactGroup", +"description": "Required. The contact group to update." +}, +"readGroupFields": { +"description": "Optional. A field mask to restrict which fields on the group are returned. Defaults to `metadata`, `groupType`, and `name` if not set or set to empty. Valid fields are: * clientData * groupType * memberCount * metadata * name", +"format": "google-fieldmask", +"type": "string" +}, +"updateGroupFields": { +"description": "Optional. A field mask to restrict which fields on the group are updated. Multiple fields can be specified by separating them with commas. Defaults to `name` if not set or set to empty. Updated fields are replaced. Valid values are: * clientData * name", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"UpdateContactPhotoRequest": { +"description": "A request to update an existing contact's photo. All requests must have a valid photo format: JPEG or PNG.", +"id": "UpdateContactPhotoRequest", +"properties": { +"personFields": { +"description": "Optional. A field mask to restrict which fields on the person are returned. Multiple fields can be specified by separating them with commas. Defaults to empty if not set, which will skip the post mutate get. Valid values are: * addresses * ageRanges * biographies * birthdays * calendarUrls * clientData * coverPhotos * emailAddresses * events * externalIds * genders * imClients * interests * locales * locations * memberships * metadata * miscKeywords * names * nicknames * occupations * organizations * phoneNumbers * photos * relations * sipAddresses * skills * urls * userDefined", +"format": "google-fieldmask", +"type": "string" +}, +"photoBytes": { +"description": "Required. Raw photo bytes", +"format": "byte", +"type": "string" +}, +"sources": { +"description": "Optional. A mask of what source types to return. Defaults to READ_SOURCE_TYPE_CONTACT and READ_SOURCE_TYPE_PROFILE if not set.", +"items": { +"enum": [ +"READ_SOURCE_TYPE_UNSPECIFIED", +"READ_SOURCE_TYPE_PROFILE", +"READ_SOURCE_TYPE_CONTACT", +"READ_SOURCE_TYPE_DOMAIN_CONTACT", +"READ_SOURCE_TYPE_OTHER_CONTACT" +], +"enumDescriptions": [ +"Unspecified.", +"Returns SourceType.ACCOUNT, SourceType.DOMAIN_PROFILE, and SourceType.PROFILE.", +"Returns SourceType.CONTACT.", +"Returns SourceType.DOMAIN_CONTACT.", +"Returns SourceType.OTHER_CONTACT." +], +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"UpdateContactPhotoResponse": { +"description": "The response for updating a contact's photo.", +"id": "UpdateContactPhotoResponse", +"properties": { +"person": { +"$ref": "Person", +"description": "The updated person, if person_fields is set in the UpdateContactPhotoRequest; otherwise this will be unset." +} +}, +"type": "object" +}, +"Url": { +"description": "A person's associated URLs.", +"id": "Url", +"properties": { +"formattedType": { +"description": "Output only. The type of the URL translated and formatted in the viewer's account locale or the `Accept-Language` HTTP header locale.", +"readOnly": true, +"type": "string" +}, +"metadata": { +"$ref": "FieldMetadata", +"description": "Metadata about the URL." +}, +"type": { +"description": "The type of the URL. The type can be custom or one of these predefined values: * `home` * `work` * `blog` * `profile` * `homePage` * `ftp` * `reservations` * `appInstallPage`: website for a Currents application. * `other`", +"type": "string" +}, +"value": { +"description": "The URL.", +"type": "string" +} +}, +"type": "object" +}, +"UserDefined": { +"description": "Arbitrary user data that is populated by the end users.", +"id": "UserDefined", +"properties": { +"key": { +"description": "The end user specified key of the user defined data.", +"type": "string" +}, +"metadata": { +"$ref": "FieldMetadata", +"description": "Metadata about the user defined data." +}, +"value": { +"description": "The end user specified value of the user defined data.", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "People 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/policyanalyzer.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/policyanalyzer.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..dbdb630587e86d6596dd4db49d2fbc3bd68d81dc --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/policyanalyzer.v1.json @@ -0,0 +1,350 @@ +{ +"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://policyanalyzer.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Policy Analyzer", +"description": "", +"discoveryVersion": "v1", +"documentationLink": "https://www.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": "policyanalyzer:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://policyanalyzer.mtls.googleapis.com/", +"name": "policyanalyzer", +"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": { +"locations": { +"resources": { +"activityTypes": { +"resources": { +"activities": { +"methods": { +"query": { +"description": "Queries policy activities on Google Cloud resources.", +"flatPath": "v1/folders/{foldersId}/locations/{locationsId}/activityTypes/{activityTypesId}/activities:query", +"httpMethod": "GET", +"id": "policyanalyzer.folders.locations.activityTypes.activities.query", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filter expression to restrict the activities returned. For serviceAccountLastAuthentication activities, supported filters are: - `activities.full_resource_name {=} [STRING]` - `activities.fullResourceName {=} [STRING]` where `[STRING]` is the full resource name of the service account. For serviceAccountKeyLastAuthentication activities, supported filters are: - `activities.full_resource_name {=} [STRING]` - `activities.fullResourceName {=} [STRING]` where `[STRING]` is the full resource name of the service account key.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of results to return from this request. Max limit is 1000. Non-positive values are ignored. The presence of `nextPageToken` in the response indicates that more results might be available.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. If present, then retrieve the next batch of results from the preceding call to this method. `pageToken` must be the value of `nextPageToken` 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 container resource on which to execute the request. Acceptable formats: `projects/[PROJECT_ID|PROJECT_NUMBER]/locations/[LOCATION]/activityTypes/[ACTIVITY_TYPE]` LOCATION here refers to Google Cloud Locations: https://cloud.google.com/about/locations/", +"location": "path", +"pattern": "^folders/[^/]+/locations/[^/]+/activityTypes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/activities:query", +"response": { +"$ref": "GoogleCloudPolicyanalyzerV1QueryActivityResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +} +}, +"organizations": { +"resources": { +"locations": { +"resources": { +"activityTypes": { +"resources": { +"activities": { +"methods": { +"query": { +"description": "Queries policy activities on Google Cloud resources.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/activityTypes/{activityTypesId}/activities:query", +"httpMethod": "GET", +"id": "policyanalyzer.organizations.locations.activityTypes.activities.query", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filter expression to restrict the activities returned. For serviceAccountLastAuthentication activities, supported filters are: - `activities.full_resource_name {=} [STRING]` - `activities.fullResourceName {=} [STRING]` where `[STRING]` is the full resource name of the service account. For serviceAccountKeyLastAuthentication activities, supported filters are: - `activities.full_resource_name {=} [STRING]` - `activities.fullResourceName {=} [STRING]` where `[STRING]` is the full resource name of the service account key.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of results to return from this request. Max limit is 1000. Non-positive values are ignored. The presence of `nextPageToken` in the response indicates that more results might be available.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. If present, then retrieve the next batch of results from the preceding call to this method. `pageToken` must be the value of `nextPageToken` 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 container resource on which to execute the request. Acceptable formats: `projects/[PROJECT_ID|PROJECT_NUMBER]/locations/[LOCATION]/activityTypes/[ACTIVITY_TYPE]` LOCATION here refers to Google Cloud Locations: https://cloud.google.com/about/locations/", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/activityTypes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/activities:query", +"response": { +"$ref": "GoogleCloudPolicyanalyzerV1QueryActivityResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +} +}, +"projects": { +"resources": { +"locations": { +"resources": { +"activityTypes": { +"resources": { +"activities": { +"methods": { +"query": { +"description": "Queries policy activities on Google Cloud resources.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/activityTypes/{activityTypesId}/activities:query", +"httpMethod": "GET", +"id": "policyanalyzer.projects.locations.activityTypes.activities.query", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filter expression to restrict the activities returned. For serviceAccountLastAuthentication activities, supported filters are: - `activities.full_resource_name {=} [STRING]` - `activities.fullResourceName {=} [STRING]` where `[STRING]` is the full resource name of the service account. For serviceAccountKeyLastAuthentication activities, supported filters are: - `activities.full_resource_name {=} [STRING]` - `activities.fullResourceName {=} [STRING]` where `[STRING]` is the full resource name of the service account key.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. The maximum number of results to return from this request. Max limit is 1000. Non-positive values are ignored. The presence of `nextPageToken` in the response indicates that more results might be available.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. If present, then retrieve the next batch of results from the preceding call to this method. `pageToken` must be the value of `nextPageToken` 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 container resource on which to execute the request. Acceptable formats: `projects/[PROJECT_ID|PROJECT_NUMBER]/locations/[LOCATION]/activityTypes/[ACTIVITY_TYPE]` LOCATION here refers to Google Cloud Locations: https://cloud.google.com/about/locations/", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/activityTypes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/activities:query", +"response": { +"$ref": "GoogleCloudPolicyanalyzerV1QueryActivityResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +} +} +}, +"revision": "20240707", +"rootUrl": "https://policyanalyzer.googleapis.com/", +"schemas": { +"GoogleCloudPolicyanalyzerV1Activity": { +"description": "Represents Activity on a GCP resource over specific observation period.", +"id": "GoogleCloudPolicyanalyzerV1Activity", +"properties": { +"activity": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "A struct of custom fields to explain the activity.", +"type": "object" +}, +"activityType": { +"description": "The type of the activity.", +"type": "string" +}, +"fullResourceName": { +"description": "The full resource name that identifies the resource. For examples of full resource names for Google Cloud services, see https://cloud.google.com/iam/help/troubleshooter/full-resource-names.", +"type": "string" +}, +"observationPeriod": { +"$ref": "GoogleCloudPolicyanalyzerV1ObservationPeriod", +"description": "The data observation period to build the activity." +} +}, +"type": "object" +}, +"GoogleCloudPolicyanalyzerV1ObservationPeriod": { +"description": "Represents data observation period.", +"id": "GoogleCloudPolicyanalyzerV1ObservationPeriod", +"properties": { +"endTime": { +"description": "The observation end time. The time in this timestamp is always `07:00:00Z`.", +"format": "google-datetime", +"type": "string" +}, +"startTime": { +"description": "The observation start time. The time in this timestamp is always `07:00:00Z`.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudPolicyanalyzerV1QueryActivityResponse": { +"description": "Response to the `QueryActivity` method.", +"id": "GoogleCloudPolicyanalyzerV1QueryActivityResponse", +"properties": { +"activities": { +"description": "The set of activities that match the filter included in the request.", +"items": { +"$ref": "GoogleCloudPolicyanalyzerV1Activity" +}, +"type": "array" +}, +"nextPageToken": { +"description": "If there might be more results than those appearing in this response, then `nextPageToken` is included. To get the next set of results, call this method again using the value of `nextPageToken` as `pageToken`.", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Policy Analyzer 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/policysimulator.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/policysimulator.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..78743e01052b01dc66a60bc1238c6a505853784b --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/policysimulator.v1.json @@ -0,0 +1,2190 @@ +{ +"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://policysimulator.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Policy Simulator", +"description": " Policy Simulator is a collection of endpoints for creating, running, and viewing a Replay. A `Replay` is a type of simulation that lets you see how your members' access to resources might change if you changed your IAM policy. During a `Replay`, Policy Simulator re-evaluates, or replays, past access attempts under both the current policy and your proposed policy, and compares those results to determine how your members' access might change under the proposed policy.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/iam/docs/simulating-access", +"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": "policysimulator:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://policysimulator.mtls.googleapis.com/", +"name": "policysimulator", +"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": { +"locations": { +"resources": { +"orgPolicyViolationsPreviews": { +"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/folders/{foldersId}/locations/{locationsId}/orgPolicyViolationsPreviews/{orgPolicyViolationsPreviewsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "policysimulator.folders.locations.orgPolicyViolationsPreviews.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^folders/[^/]+/locations/[^/]+/orgPolicyViolationsPreviews/[^/]+/operations/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"replays": { +"methods": { +"create": { +"description": "Creates and starts a Replay using the given ReplayConfig.", +"flatPath": "v1/folders/{foldersId}/locations/{locationsId}/replays", +"httpMethod": "POST", +"id": "policysimulator.folders.locations.replays.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource where this Replay will be created. This resource must be a project, folder, or organization with a location. Example: `projects/my-example-project/locations/global`", +"location": "path", +"pattern": "^folders/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/replays", +"request": { +"$ref": "GoogleCloudPolicysimulatorV1Replay" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the specified Replay. Each `Replay` is available for at least 7 days.", +"flatPath": "v1/folders/{foldersId}/locations/{locationsId}/replays/{replaysId}", +"httpMethod": "GET", +"id": "policysimulator.folders.locations.replays.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the Replay to retrieve, in the following format: `{projects|folders|organizations}/{resource-id}/locations/global/replays/{replay-id}`, where `{resource-id}` is the ID of the project, folder, or organization that owns the `Replay`. Example: `projects/my-example-project/locations/global/replays/506a5f7f-38ce-4d7d-8e03-479ce1833c36`", +"location": "path", +"pattern": "^folders/[^/]+/locations/[^/]+/replays/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudPolicysimulatorV1Replay" +}, +"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/folders/{foldersId}/locations/{locationsId}/replays/{replaysId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "policysimulator.folders.locations.replays.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^folders/[^/]+/locations/[^/]+/replays/[^/]+/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/folders/{foldersId}/locations/{locationsId}/replays/{replaysId}/operations", +"httpMethod": "GET", +"id": "policysimulator.folders.locations.replays.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": "^folders/[^/]+/locations/[^/]+/replays/[^/]+/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" +] +} +} +}, +"results": { +"methods": { +"list": { +"description": "Lists the results of running a Replay.", +"flatPath": "v1/folders/{foldersId}/locations/{locationsId}/replays/{replaysId}/results", +"httpMethod": "GET", +"id": "policysimulator.folders.locations.replays.results.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of ReplayResult objects to return. Defaults to 5000. The maximum value is 5000; values above 5000 are rounded down to 5000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous Simulator.ListReplayResults call. Provide this token to retrieve the next page of results. When paginating, all other parameters provided to [Simulator.ListReplayResults[] must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The Replay whose results are listed, in the following format: `{projects|folders|organizations}/{resource-id}/locations/global/replays/{replay-id}` Example: `projects/my-project/locations/global/replays/506a5f7f-38ce-4d7d-8e03-479ce1833c36`", +"location": "path", +"pattern": "^folders/[^/]+/locations/[^/]+/replays/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/results", +"response": { +"$ref": "GoogleCloudPolicysimulatorV1ListReplayResultsResponse" +}, +"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/operations/{operationsId}", +"httpMethod": "GET", +"id": "policysimulator.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": "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/operations", +"httpMethod": "GET", +"id": "policysimulator.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": "GoogleLongrunningListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"organizations": { +"resources": { +"locations": { +"resources": { +"orgPolicyViolationsPreviews": { +"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}/orgPolicyViolationsPreviews/{orgPolicyViolationsPreviewsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "policysimulator.organizations.locations.orgPolicyViolationsPreviews.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/orgPolicyViolationsPreviews/[^/]+/operations/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"replays": { +"methods": { +"create": { +"description": "Creates and starts a Replay using the given ReplayConfig.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/replays", +"httpMethod": "POST", +"id": "policysimulator.organizations.locations.replays.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource where this Replay will be created. This resource must be a project, folder, or organization with a location. Example: `projects/my-example-project/locations/global`", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/replays", +"request": { +"$ref": "GoogleCloudPolicysimulatorV1Replay" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the specified Replay. Each `Replay` is available for at least 7 days.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/replays/{replaysId}", +"httpMethod": "GET", +"id": "policysimulator.organizations.locations.replays.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the Replay to retrieve, in the following format: `{projects|folders|organizations}/{resource-id}/locations/global/replays/{replay-id}`, where `{resource-id}` is the ID of the project, folder, or organization that owns the `Replay`. Example: `projects/my-example-project/locations/global/replays/506a5f7f-38ce-4d7d-8e03-479ce1833c36`", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/replays/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudPolicysimulatorV1Replay" +}, +"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/organizations/{organizationsId}/locations/{locationsId}/replays/{replaysId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "policysimulator.organizations.locations.replays.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/replays/[^/]+/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}/replays/{replaysId}/operations", +"httpMethod": "GET", +"id": "policysimulator.organizations.locations.replays.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/[^/]+/replays/[^/]+/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" +] +} +} +}, +"results": { +"methods": { +"list": { +"description": "Lists the results of running a Replay.", +"flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/replays/{replaysId}/results", +"httpMethod": "GET", +"id": "policysimulator.organizations.locations.replays.results.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of ReplayResult objects to return. Defaults to 5000. The maximum value is 5000; values above 5000 are rounded down to 5000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous Simulator.ListReplayResults call. Provide this token to retrieve the next page of results. When paginating, all other parameters provided to [Simulator.ListReplayResults[] must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The Replay whose results are listed, in the following format: `{projects|folders|organizations}/{resource-id}/locations/global/replays/{replay-id}` Example: `projects/my-project/locations/global/replays/506a5f7f-38ce-4d7d-8e03-479ce1833c36`", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/replays/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/results", +"response": { +"$ref": "GoogleCloudPolicysimulatorV1ListReplayResultsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +} +}, +"projects": { +"resources": { +"locations": { +"resources": { +"orgPolicyViolationsPreviews": { +"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}/orgPolicyViolationsPreviews/{orgPolicyViolationsPreviewsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "policysimulator.projects.locations.orgPolicyViolationsPreviews.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/orgPolicyViolationsPreviews/[^/]+/operations/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"replays": { +"methods": { +"create": { +"description": "Creates and starts a Replay using the given ReplayConfig.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/replays", +"httpMethod": "POST", +"id": "policysimulator.projects.locations.replays.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource where this Replay will be created. This resource must be a project, folder, or organization with a location. Example: `projects/my-example-project/locations/global`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/replays", +"request": { +"$ref": "GoogleCloudPolicysimulatorV1Replay" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the specified Replay. Each `Replay` is available for at least 7 days.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/replays/{replaysId}", +"httpMethod": "GET", +"id": "policysimulator.projects.locations.replays.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the Replay to retrieve, in the following format: `{projects|folders|organizations}/{resource-id}/locations/global/replays/{replay-id}`, where `{resource-id}` is the ID of the project, folder, or organization that owns the `Replay`. Example: `projects/my-example-project/locations/global/replays/506a5f7f-38ce-4d7d-8e03-479ce1833c36`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/replays/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleCloudPolicysimulatorV1Replay" +}, +"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}/replays/{replaysId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "policysimulator.projects.locations.replays.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/replays/[^/]+/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}/replays/{replaysId}/operations", +"httpMethod": "GET", +"id": "policysimulator.projects.locations.replays.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/[^/]+/replays/[^/]+/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" +] +} +} +}, +"results": { +"methods": { +"list": { +"description": "Lists the results of running a Replay.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/replays/{replaysId}/results", +"httpMethod": "GET", +"id": "policysimulator.projects.locations.replays.results.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of ReplayResult objects to return. Defaults to 5000. The maximum value is 5000; values above 5000 are rounded down to 5000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous Simulator.ListReplayResults call. Provide this token to retrieve the next page of results. When paginating, all other parameters provided to [Simulator.ListReplayResults[] must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The Replay whose results are listed, in the following format: `{projects|folders|organizations}/{resource-id}/locations/global/replays/{replay-id}` Example: `projects/my-project/locations/global/replays/506a5f7f-38ce-4d7d-8e03-479ce1833c36`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/replays/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/results", +"response": { +"$ref": "GoogleCloudPolicysimulatorV1ListReplayResultsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +} +} +}, +"revision": "20241118", +"rootUrl": "https://policysimulator.googleapis.com/", +"schemas": { +"GoogleCloudOrgpolicyV2AlternatePolicySpec": { +"description": "Similar to PolicySpec but with an extra 'launch' field for launch reference. The PolicySpec here is specific for dry-run/darklaunch.", +"id": "GoogleCloudOrgpolicyV2AlternatePolicySpec", +"properties": { +"launch": { +"description": "Reference to the launch that will be used while audit logging and to control the launch. Should be set only in the alternate policy.", +"type": "string" +}, +"spec": { +"$ref": "GoogleCloudOrgpolicyV2PolicySpec", +"description": "Specify constraint for configurations of Google Cloud resources." +} +}, +"type": "object" +}, +"GoogleCloudOrgpolicyV2CustomConstraint": { +"description": "A custom constraint defined by customers which can *only* be applied to the given resource types and organization. By creating a custom constraint, customers can apply policies of this custom constraint. *Creating a custom constraint itself does NOT apply any policy enforcement*.", +"id": "GoogleCloudOrgpolicyV2CustomConstraint", +"properties": { +"actionType": { +"description": "Allow or deny type.", +"enum": [ +"ACTION_TYPE_UNSPECIFIED", +"ALLOW", +"DENY" +], +"enumDescriptions": [ +"Unspecified. Results in an error.", +"Allowed action type.", +"Deny action type." +], +"type": "string" +}, +"condition": { +"description": "Org policy condition/expression. For example: `resource.instanceName.matches(\"[production|test]_.*_(\\d)+\")` or, `resource.management.auto_upgrade == true` The max length of the condition is 1000 characters.", +"type": "string" +}, +"description": { +"description": "Detailed information about this custom policy constraint. The max length of the description is 2000 characters.", +"type": "string" +}, +"displayName": { +"description": "One line display name for the UI. The max length of the display_name is 200 characters.", +"type": "string" +}, +"methodTypes": { +"description": "All the operations being applied for this constraint.", +"items": { +"enum": [ +"METHOD_TYPE_UNSPECIFIED", +"CREATE", +"UPDATE", +"DELETE", +"REMOVE_GRANT", +"GOVERN_TAGS" +], +"enumDescriptions": [ +"Unspecified. Results in an error.", +"Constraint applied when creating the resource.", +"Constraint applied when updating the resource.", +"Constraint applied when deleting the resource. Not supported yet.", +"Constraint applied when removing an IAM grant.", +"Constraint applied when enforcing forced tagging." +], +"type": "string" +}, +"type": "array" +}, +"name": { +"description": "Immutable. Name of the constraint. This is unique within the organization. Format of the name should be * `organizations/{organization_id}/customConstraints/{custom_constraint_id}` Example: `organizations/123/customConstraints/custom.createOnlyE2TypeVms` The max length is 70 characters and the minimum length is 1. Note that the prefix `organizations/{organization_id}/customConstraints/` is not counted.", +"type": "string" +}, +"resourceTypes": { +"description": "Immutable. The resource instance type on which this policy applies. Format will be of the form : `/` Example: * `compute.googleapis.com/Instance`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"updateTime": { +"description": "Output only. The last time this custom constraint was updated. This represents the last time that the `CreateCustomConstraint` or `UpdateCustomConstraint` RPC was called", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudOrgpolicyV2Policy": { +"description": "Defines an organization policy which is used to specify constraints for configurations of Google Cloud resources.", +"id": "GoogleCloudOrgpolicyV2Policy", +"properties": { +"alternate": { +"$ref": "GoogleCloudOrgpolicyV2AlternatePolicySpec", +"deprecated": true, +"description": "Deprecated." +}, +"dryRunSpec": { +"$ref": "GoogleCloudOrgpolicyV2PolicySpec", +"description": "Dry-run policy. Audit-only policy, can be used to monitor how the policy would have impacted the existing and future resources if it's enforced." +}, +"etag": { +"description": "Optional. An opaque tag indicating the current state of the policy, used for concurrency control. This 'etag' 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" +}, +"name": { +"description": "Immutable. The resource name of the policy. Must be one of the following forms, where `constraint_name` is the name of the constraint which this policy configures: * `projects/{project_number}/policies/{constraint_name}` * `folders/{folder_id}/policies/{constraint_name}` * `organizations/{organization_id}/policies/{constraint_name}` For example, `projects/123/policies/compute.disableSerialPortAccess`. Note: `projects/{project_id}/policies/{constraint_name}` is also an acceptable name for API requests, but responses will return the name using the equivalent project number.", +"type": "string" +}, +"spec": { +"$ref": "GoogleCloudOrgpolicyV2PolicySpec", +"description": "Basic information about the Organization Policy." +} +}, +"type": "object" +}, +"GoogleCloudOrgpolicyV2PolicySpec": { +"description": "Defines a Google Cloud policy specification which is used to specify constraints for configurations of Google Cloud resources.", +"id": "GoogleCloudOrgpolicyV2PolicySpec", +"properties": { +"etag": { +"description": "An opaque tag indicating the current version of the policySpec, used for concurrency control. This field is ignored if used in a `CreatePolicy` request. When the policy is returned from either a `GetPolicy` or a `ListPolicies` request, this `etag` indicates the version of the current policySpec to use when executing a read-modify-write loop. When the policy is returned from a `GetEffectivePolicy` request, the `etag` will be unset.", +"type": "string" +}, +"inheritFromParent": { +"description": "Determines the inheritance behavior for this policy. If `inherit_from_parent` is true, policy rules set higher up in the hierarchy (up to the closest root) are inherited and present in the effective policy. If it is false, then no rules are inherited, and this policy becomes the new root for evaluation. This field can be set only for policies which configure list constraints.", +"type": "boolean" +}, +"reset": { +"description": "Ignores policies set above this resource and restores the `constraint_default` enforcement behavior of the specific constraint at this resource. This field can be set in policies for either list or boolean constraints. If set, `rules` must be empty and `inherit_from_parent` must be set to false.", +"type": "boolean" +}, +"rules": { +"description": "In policies for boolean constraints, the following requirements apply: - There must be one and only one policy rule where condition is unset. - Boolean policy rules with conditions must set `enforced` to the opposite of the policy rule without a condition. - During policy evaluation, policy rules with conditions that are true for a target resource take precedence.", +"items": { +"$ref": "GoogleCloudOrgpolicyV2PolicySpecPolicyRule" +}, +"type": "array" +}, +"updateTime": { +"description": "Output only. The time stamp this was previously updated. This represents the last time a call to `CreatePolicy` or `UpdatePolicy` was made for that policy.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudOrgpolicyV2PolicySpecPolicyRule": { +"description": "A rule used to express this policy.", +"id": "GoogleCloudOrgpolicyV2PolicySpecPolicyRule", +"properties": { +"allowAll": { +"description": "Setting this to true means that all values are allowed. This field can be set only in policies for list constraints.", +"type": "boolean" +}, +"condition": { +"$ref": "GoogleTypeExpr", +"description": "A condition which determines whether this rule is used in the evaluation of the policy. When set, the `expression` field in the `Expr' must include from 1 to 10 subexpressions, joined by the \"||\" or \"&&\" operators. Each subexpression must be of the form \"resource.matchTag('/tag_key_short_name, 'tag_value_short_name')\". or \"resource.matchTagId('tagKeys/key_id', 'tagValues/value_id')\". where key_name and value_name are the resource names for Label Keys and Values. These names are available from the Tag Manager Service. An example expression is: \"resource.matchTag('123456789/environment, 'prod')\". or \"resource.matchTagId('tagKeys/123', 'tagValues/456')\"." +}, +"denyAll": { +"description": "Setting this to true means that all values are denied. This field can be set only in policies for list constraints.", +"type": "boolean" +}, +"enforce": { +"description": "If `true`, then the policy is enforced. If `false`, then any configuration is acceptable. This field can be set only in policies 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" +}, +"values": { +"$ref": "GoogleCloudOrgpolicyV2PolicySpecPolicyRuleStringValues", +"description": "List of values to be used for this policy rule. This field can be set only in policies for list constraints." +} +}, +"type": "object" +}, +"GoogleCloudOrgpolicyV2PolicySpecPolicyRuleStringValues": { +"description": "A message that holds specific allowed and denied values. This message can define specific values and subtrees of the Resource Manager resource hierarchy (`Organizations`, `Folders`, `Projects`) that are allowed or denied. This is achieved by using the `under:` and optional `is:` prefixes. The `under:` prefix is used to denote resource subtree values. The `is:` prefix is used to denote specific values, and is required only if the value contains a \":\". Values prefixed with \"is:\" are treated the same as values with no prefix. Ancestry subtrees must be in one of the following formats: - `projects/` (for example, `projects/tokyo-rain-123`) - `folders/` (for example, `folders/1234`) - `organizations/` (for example, `organizations/1234`) The `supports_under` field of the associated `Constraint` defines whether ancestry prefixes can be used.", +"id": "GoogleCloudOrgpolicyV2PolicySpecPolicyRuleStringValues", +"properties": { +"allowedValues": { +"description": "List of values allowed at this resource.", +"items": { +"type": "string" +}, +"type": "array" +}, +"deniedValues": { +"description": "List of values denied at this resource.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudPolicysimulatorV1AccessStateDiff": { +"description": "A summary and comparison of the principal's access under the current (baseline) policies and the proposed (simulated) policies for a single access tuple.", +"id": "GoogleCloudPolicysimulatorV1AccessStateDiff", +"properties": { +"accessChange": { +"description": "How the principal's access, specified in the AccessState field, changed between the current (baseline) policies and proposed (simulated) policies.", +"enum": [ +"ACCESS_CHANGE_TYPE_UNSPECIFIED", +"NO_CHANGE", +"UNKNOWN_CHANGE", +"ACCESS_REVOKED", +"ACCESS_GAINED", +"ACCESS_MAYBE_REVOKED", +"ACCESS_MAYBE_GAINED" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"The principal's access did not change. This includes the case where both baseline and simulated are UNKNOWN, but the unknown information is equivalent.", +"The principal's access under both the current policies and the proposed policies is `UNKNOWN`, but the unknown information differs between them.", +"The principal had access under the current policies (`GRANTED`), but will no longer have access after the proposed changes (`NOT_GRANTED`).", +"The principal did not have access under the current policies (`NOT_GRANTED`), but will have access after the proposed changes (`GRANTED`).", +"This result can occur for the following reasons: * The principal had access under the current policies (`GRANTED`), but their access after the proposed changes is `UNKNOWN`. * The principal's access under the current policies is `UNKNOWN`, but they will not have access after the proposed changes (`NOT_GRANTED`).", +"This result can occur for the following reasons: * The principal did not have access under the current policies (`NOT_GRANTED`), but their access after the proposed changes is `UNKNOWN`. * The principal's access under the current policies is `UNKNOWN`, but they will have access after the proposed changes (`GRANTED`)." +], +"type": "string" +}, +"baseline": { +"$ref": "GoogleCloudPolicysimulatorV1ExplainedAccess", +"description": "The results of evaluating the access tuple under the current (baseline) policies. If the AccessState couldn't be fully evaluated, this field explains why." +}, +"simulated": { +"$ref": "GoogleCloudPolicysimulatorV1ExplainedAccess", +"description": "The results of evaluating the access tuple under the proposed (simulated) policies. If the AccessState couldn't be fully evaluated, this field explains why." +} +}, +"type": "object" +}, +"GoogleCloudPolicysimulatorV1AccessTuple": { +"description": "Information about the principal, resource, and permission to check.", +"id": "GoogleCloudPolicysimulatorV1AccessTuple", +"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" +}, +"GoogleCloudPolicysimulatorV1BindingExplanation": { +"description": "Details about how a binding in a policy affects a principal's ability to use a permission.", +"id": "GoogleCloudPolicysimulatorV1BindingExplanation", +"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 user who created the Replay does not have access to all of the policies that Policy Simulator 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/docs/conditions-overview." +}, +"memberships": { +"additionalProperties": { +"$ref": "GoogleCloudPolicysimulatorV1BindingExplanationAnnotatedMembership" +}, +"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` The principal in the replayed access tuple is `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 user who created the Replay 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" +}, +"GoogleCloudPolicysimulatorV1BindingExplanationAnnotatedMembership": { +"description": "Details about whether the binding includes the principal.", +"id": "GoogleCloudPolicysimulatorV1BindingExplanationAnnotatedMembership", +"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 user who created the Replay 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" +}, +"GoogleCloudPolicysimulatorV1ExplainedAccess": { +"description": "Details about how a set of policies, listed in ExplainedPolicy, resulted in a certain AccessState when replaying an access tuple.", +"id": "GoogleCloudPolicysimulatorV1ExplainedAccess", +"properties": { +"accessState": { +"description": "Whether the principal in the access tuple has permission to access the resource in the access tuple under the given 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 user who created the Replay does not have access to all of the policies that Policy Simulator needs to evaluate." +], +"type": "string" +}, +"errors": { +"description": "If the AccessState is `UNKNOWN`, this field contains a list of errors explaining why the result is `UNKNOWN`. If the `AccessState` is `GRANTED` or `NOT_GRANTED`, this field is omitted.", +"items": { +"$ref": "GoogleRpcStatus" +}, +"type": "array" +}, +"policies": { +"description": "If the AccessState is `UNKNOWN`, this field contains the policies that led to that result. If the `AccessState` is `GRANTED` or `NOT_GRANTED`, this field is omitted.", +"items": { +"$ref": "GoogleCloudPolicysimulatorV1ExplainedPolicy" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudPolicysimulatorV1ExplainedPolicy": { +"description": "Details about how a specific IAM Policy contributed to the access check.", +"id": "GoogleCloudPolicysimulatorV1ExplainedPolicy", +"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 user who created the Replay does not have access to all of the policies that Policy Simulator 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 user who created the Replay does not have access to the policy, this field is omitted.", +"items": { +"$ref": "GoogleCloudPolicysimulatorV1BindingExplanation" +}, +"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 user who created the Replay 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 user who created the Replay 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 user who created the Replay 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" +}, +"GoogleCloudPolicysimulatorV1ListReplayResultsResponse": { +"description": "Response message for Simulator.ListReplayResults.", +"id": "GoogleCloudPolicysimulatorV1ListReplayResultsResponse", +"properties": { +"nextPageToken": { +"description": "A token that you can use to retrieve the next page of ReplayResult objects. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"replayResults": { +"description": "The results of running a Replay.", +"items": { +"$ref": "GoogleCloudPolicysimulatorV1ReplayResult" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudPolicysimulatorV1Replay": { +"description": "A resource describing a `Replay`, or simulation.", +"id": "GoogleCloudPolicysimulatorV1Replay", +"properties": { +"config": { +"$ref": "GoogleCloudPolicysimulatorV1ReplayConfig", +"description": "Required. The configuration used for the `Replay`." +}, +"name": { +"description": "Output only. The resource name of the `Replay`, which has the following format: `{projects|folders|organizations}/{resource-id}/locations/global/replays/{replay-id}`, where `{resource-id}` is the ID of the project, folder, or organization that owns the Replay. Example: `projects/my-example-project/locations/global/replays/506a5f7f-38ce-4d7d-8e03-479ce1833c36`", +"readOnly": true, +"type": "string" +}, +"resultsSummary": { +"$ref": "GoogleCloudPolicysimulatorV1ReplayResultsSummary", +"description": "Output only. Summary statistics about the replayed log entries.", +"readOnly": true +}, +"state": { +"description": "Output only. The current state of the `Replay`.", +"enum": [ +"STATE_UNSPECIFIED", +"PENDING", +"RUNNING", +"SUCCEEDED", +"FAILED" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"The `Replay` has not started yet.", +"The `Replay` is currently running.", +"The `Replay` has successfully completed.", +"The `Replay` has finished with an error." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudPolicysimulatorV1ReplayConfig": { +"description": "The configuration used for a Replay.", +"id": "GoogleCloudPolicysimulatorV1ReplayConfig", +"properties": { +"logSource": { +"description": "The logs to use as input for the Replay.", +"enum": [ +"LOG_SOURCE_UNSPECIFIED", +"RECENT_ACCESSES" +], +"enumDescriptions": [ +"An unspecified log source. If the log source is unspecified, the Replay defaults to using `RECENT_ACCESSES`.", +"All access logs from the last 90 days. These logs may not include logs from the most recent 7 days." +], +"type": "string" +}, +"policyOverlay": { +"additionalProperties": { +"$ref": "GoogleIamV1Policy" +}, +"description": "A mapping of the resources that you want to simulate policies for and the policies that you want to simulate. Keys are the full resource names for the resources. For example, `//cloudresourcemanager.googleapis.com/projects/my-project`. For examples of full resource names for Google Cloud services, see https://cloud.google.com/iam/help/troubleshooter/full-resource-names. Values are Policy objects representing the policies that you want to simulate. Replays automatically take into account any IAM policies inherited through the resource hierarchy, and any policies set on descendant resources. You do not need to include these policies in the policy overlay.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudPolicysimulatorV1ReplayDiff": { +"description": "The difference between the results of evaluating an access tuple under the current (baseline) policies and under the proposed (simulated) policies. This difference explains how a principal's access could change if the proposed policies were applied.", +"id": "GoogleCloudPolicysimulatorV1ReplayDiff", +"properties": { +"accessDiff": { +"$ref": "GoogleCloudPolicysimulatorV1AccessStateDiff", +"description": "A summary and comparison of the principal's access under the current (baseline) policies and the proposed (simulated) policies for a single access tuple. The evaluation of the principal's access is reported in the AccessState field." +} +}, +"type": "object" +}, +"GoogleCloudPolicysimulatorV1ReplayOperationMetadata": { +"description": "Metadata about a Replay operation.", +"id": "GoogleCloudPolicysimulatorV1ReplayOperationMetadata", +"properties": { +"startTime": { +"description": "Time when the request was received.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudPolicysimulatorV1ReplayResult": { +"description": "The result of replaying a single access tuple against a simulated state.", +"id": "GoogleCloudPolicysimulatorV1ReplayResult", +"properties": { +"accessTuple": { +"$ref": "GoogleCloudPolicysimulatorV1AccessTuple", +"description": "The access tuple that was replayed. This field includes information about the principal, resource, and permission that were involved in the access attempt." +}, +"diff": { +"$ref": "GoogleCloudPolicysimulatorV1ReplayDiff", +"description": "The difference between the principal's access under the current (baseline) policies and the principal's access under the proposed (simulated) policies. This field is only included for access tuples that were successfully replayed and had different results under the current policies and the proposed policies." +}, +"error": { +"$ref": "GoogleRpcStatus", +"description": "The error that caused the access tuple replay to fail. This field is only included for access tuples that were not replayed successfully." +}, +"lastSeenDate": { +"$ref": "GoogleTypeDate", +"description": "The latest date this access tuple was seen in the logs." +}, +"name": { +"description": "The resource name of the `ReplayResult`, in the following format: `{projects|folders|organizations}/{resource-id}/locations/global/replays/{replay-id}/results/{replay-result-id}`, where `{resource-id}` is the ID of the project, folder, or organization that owns the Replay. Example: `projects/my-example-project/locations/global/replays/506a5f7f-38ce-4d7d-8e03-479ce1833c36/results/1234`", +"type": "string" +}, +"parent": { +"description": "The Replay that the access tuple was included in.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudPolicysimulatorV1ReplayResultsSummary": { +"description": "Summary statistics about the replayed log entries.", +"id": "GoogleCloudPolicysimulatorV1ReplayResultsSummary", +"properties": { +"differenceCount": { +"description": "The number of replayed log entries with a difference between baseline and simulated policies.", +"format": "int32", +"type": "integer" +}, +"errorCount": { +"description": "The number of log entries that could not be replayed.", +"format": "int32", +"type": "integer" +}, +"logCount": { +"description": "The total number of log entries replayed.", +"format": "int32", +"type": "integer" +}, +"newestDate": { +"$ref": "GoogleTypeDate", +"description": "The date of the newest log entry replayed." +}, +"oldestDate": { +"$ref": "GoogleTypeDate", +"description": "The date of the oldest log entry replayed." +}, +"unchangedCount": { +"description": "The number of replayed log entries with no difference between baseline and simulated policies.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudPolicysimulatorV1alphaCreateOrgPolicyViolationsPreviewOperationMetadata": { +"description": "CreateOrgPolicyViolationsPreviewOperationMetadata is metadata about an OrgPolicyViolationsPreview generations operation.", +"id": "GoogleCloudPolicysimulatorV1alphaCreateOrgPolicyViolationsPreviewOperationMetadata", +"properties": { +"requestTime": { +"description": "Time when the request was received.", +"format": "google-datetime", +"type": "string" +}, +"resourcesFound": { +"description": "Total number of resources that need scanning. Should equal resource_scanned + resources_pending", +"format": "int32", +"type": "integer" +}, +"resourcesPending": { +"description": "Number of resources still to scan.", +"format": "int32", +"type": "integer" +}, +"resourcesScanned": { +"description": "Number of resources already scanned.", +"format": "int32", +"type": "integer" +}, +"startTime": { +"description": "Time when the request started processing, i.e., when the state was set to RUNNING.", +"format": "google-datetime", +"type": "string" +}, +"state": { +"description": "Output only. The current state of the operation.", +"enum": [ +"PREVIEW_STATE_UNSPECIFIED", +"PREVIEW_PENDING", +"PREVIEW_RUNNING", +"PREVIEW_SUCCEEDED", +"PREVIEW_FAILED" +], +"enumDescriptions": [ +"The state is unspecified.", +"The OrgPolicyViolationsPreview has not been created yet.", +"The OrgPolicyViolationsPreview is currently being created.", +"The OrgPolicyViolationsPreview creation finished successfully.", +"The OrgPolicyViolationsPreview creation failed with an error." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudPolicysimulatorV1alphaGenerateOrgPolicyViolationsPreviewOperationMetadata": { +"description": "GenerateOrgPolicyViolationsPreviewOperationMetadata is metadata about an OrgPolicyViolationsPreview generations operation.", +"id": "GoogleCloudPolicysimulatorV1alphaGenerateOrgPolicyViolationsPreviewOperationMetadata", +"properties": { +"requestTime": { +"description": "Time when the request was received.", +"format": "google-datetime", +"type": "string" +}, +"resourcesFound": { +"description": "Total number of resources that need scanning. Should equal resource_scanned + resources_pending", +"format": "int32", +"type": "integer" +}, +"resourcesPending": { +"description": "Number of resources still to scan.", +"format": "int32", +"type": "integer" +}, +"resourcesScanned": { +"description": "Number of resources already scanned.", +"format": "int32", +"type": "integer" +}, +"startTime": { +"description": "Time when the request started processing, i.e. when the state was set to RUNNING.", +"format": "google-datetime", +"type": "string" +}, +"state": { +"description": "The current state of the operation.", +"enum": [ +"PREVIEW_STATE_UNSPECIFIED", +"PREVIEW_PENDING", +"PREVIEW_RUNNING", +"PREVIEW_SUCCEEDED", +"PREVIEW_FAILED" +], +"enumDescriptions": [ +"The state is unspecified.", +"The OrgPolicyViolationsPreview has not been created yet.", +"The OrgPolicyViolationsPreview is currently being created.", +"The OrgPolicyViolationsPreview creation finished successfully.", +"The OrgPolicyViolationsPreview creation failed with an error." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudPolicysimulatorV1alphaOrgPolicyOverlay": { +"description": "The proposed changes to OrgPolicy.", +"id": "GoogleCloudPolicysimulatorV1alphaOrgPolicyOverlay", +"properties": { +"customConstraints": { +"description": "Optional. The OrgPolicy CustomConstraint changes to preview violations for. Any existing CustomConstraints with the same name will be overridden in the simulation. That is, violations will be determined as if all custom constraints in the overlay were instantiated. Only a single custom_constraint is supported in the overlay at a time. For evaluating multiple constraints, multiple `GenerateOrgPolicyViolationsPreview` requests are made, where each request evaluates a single constraint.", +"items": { +"$ref": "GoogleCloudPolicysimulatorV1alphaOrgPolicyOverlayCustomConstraintOverlay" +}, +"type": "array" +}, +"policies": { +"description": "Optional. The OrgPolicy changes to preview violations for. Any existing OrgPolicies with the same name will be overridden in the simulation. That is, violations will be determined as if all policies in the overlay were created or updated.", +"items": { +"$ref": "GoogleCloudPolicysimulatorV1alphaOrgPolicyOverlayPolicyOverlay" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudPolicysimulatorV1alphaOrgPolicyOverlayCustomConstraintOverlay": { +"description": "A change to an OrgPolicy custom constraint.", +"id": "GoogleCloudPolicysimulatorV1alphaOrgPolicyOverlayCustomConstraintOverlay", +"properties": { +"customConstraint": { +"$ref": "GoogleCloudOrgpolicyV2CustomConstraint", +"description": "Optional. The new or updated custom constraint." +}, +"customConstraintParent": { +"description": "Optional. Resource the constraint is attached to. Example: \"organization/987654\"", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudPolicysimulatorV1alphaOrgPolicyOverlayPolicyOverlay": { +"description": "A change to an OrgPolicy.", +"id": "GoogleCloudPolicysimulatorV1alphaOrgPolicyOverlayPolicyOverlay", +"properties": { +"policy": { +"$ref": "GoogleCloudOrgpolicyV2Policy", +"description": "Optional. The new or updated OrgPolicy." +}, +"policyParent": { +"description": "Optional. The parent of the policy we are attaching to. Example: \"projects/123456\"", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudPolicysimulatorV1alphaOrgPolicyViolationsPreview": { +"description": "OrgPolicyViolationsPreview is a resource providing a preview of the violations that will exist if an OrgPolicy change is made. The list of violations are modeled as child resources and retrieved via a ListOrgPolicyViolations API call. There are potentially more OrgPolicyViolations than could fit in an embedded field. Thus, the use of a child resource instead of a field.", +"id": "GoogleCloudPolicysimulatorV1alphaOrgPolicyViolationsPreview", +"properties": { +"createTime": { +"description": "Output only. Time when this `OrgPolicyViolationsPreview` was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"customConstraints": { +"description": "Output only. The names of the constraints against which all `OrgPolicyViolations` were evaluated. If `OrgPolicyOverlay` only contains `PolicyOverlay` then it contains the name of the configured custom constraint, applicable to the specified policies. Otherwise it contains the name of the constraint specified in `CustomConstraintOverlay`. Format: `organizations/{organization_id}/customConstraints/{custom_constraint_id}` Example: `organizations/123/customConstraints/custom.createOnlyE2TypeVms`", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"name": { +"description": "Output only. The resource name of the `OrgPolicyViolationsPreview`. It has the following format: `organizations/{organization}/locations/{location}/orgPolicyViolationsPreviews/{orgPolicyViolationsPreview}` Example: `organizations/my-example-org/locations/global/orgPolicyViolationsPreviews/506a5f7f`", +"readOnly": true, +"type": "string" +}, +"overlay": { +"$ref": "GoogleCloudPolicysimulatorV1alphaOrgPolicyOverlay", +"description": "Required. The proposed changes we are previewing violations for." +}, +"resourceCounts": { +"$ref": "GoogleCloudPolicysimulatorV1alphaOrgPolicyViolationsPreviewResourceCounts", +"description": "Output only. A summary of the state of all resources scanned for compliance with the changed OrgPolicy.", +"readOnly": true +}, +"state": { +"description": "Output only. The state of the `OrgPolicyViolationsPreview`.", +"enum": [ +"PREVIEW_STATE_UNSPECIFIED", +"PREVIEW_PENDING", +"PREVIEW_RUNNING", +"PREVIEW_SUCCEEDED", +"PREVIEW_FAILED" +], +"enumDescriptions": [ +"The state is unspecified.", +"The OrgPolicyViolationsPreview has not been created yet.", +"The OrgPolicyViolationsPreview is currently being created.", +"The OrgPolicyViolationsPreview creation finished successfully.", +"The OrgPolicyViolationsPreview creation failed with an error." +], +"readOnly": true, +"type": "string" +}, +"violationsCount": { +"description": "Output only. The number of OrgPolicyViolations in this `OrgPolicyViolationsPreview`. This count may differ from `resource_summary.noncompliant_count` because each OrgPolicyViolation is specific to a resource **and** constraint. If there are multiple constraints being evaluated (i.e. multiple policies in the overlay), a single resource may violate multiple constraints.", +"format": "int32", +"readOnly": true, +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudPolicysimulatorV1alphaOrgPolicyViolationsPreviewResourceCounts": { +"description": "A summary of the state of all resources scanned for compliance with the changed OrgPolicy.", +"id": "GoogleCloudPolicysimulatorV1alphaOrgPolicyViolationsPreviewResourceCounts", +"properties": { +"compliant": { +"description": "Output only. Number of scanned resources with zero violations.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"errors": { +"description": "Output only. Number of resources that returned an error when scanned.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"noncompliant": { +"description": "Output only. Number of scanned resources with at least one violation.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"scanned": { +"description": "Output only. Number of resources checked for compliance. Must equal: unenforced + noncompliant + compliant + error", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"unenforced": { +"description": "Output only. Number of resources where the constraint was not enforced, i.e. the Policy set `enforced: false` for that resource.", +"format": "int32", +"readOnly": true, +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudPolicysimulatorV1betaCreateOrgPolicyViolationsPreviewOperationMetadata": { +"description": "CreateOrgPolicyViolationsPreviewOperationMetadata is metadata about an OrgPolicyViolationsPreview generations operation.", +"id": "GoogleCloudPolicysimulatorV1betaCreateOrgPolicyViolationsPreviewOperationMetadata", +"properties": { +"requestTime": { +"description": "Time when the request was received.", +"format": "google-datetime", +"type": "string" +}, +"resourcesFound": { +"description": "Total number of resources that need scanning. Should equal resource_scanned + resources_pending", +"format": "int32", +"type": "integer" +}, +"resourcesPending": { +"description": "Number of resources still to scan.", +"format": "int32", +"type": "integer" +}, +"resourcesScanned": { +"description": "Number of resources already scanned.", +"format": "int32", +"type": "integer" +}, +"startTime": { +"description": "Time when the request started processing, i.e., when the state was set to RUNNING.", +"format": "google-datetime", +"type": "string" +}, +"state": { +"description": "Output only. The current state of the operation.", +"enum": [ +"PREVIEW_STATE_UNSPECIFIED", +"PREVIEW_PENDING", +"PREVIEW_RUNNING", +"PREVIEW_SUCCEEDED", +"PREVIEW_FAILED" +], +"enumDescriptions": [ +"The state is unspecified.", +"The OrgPolicyViolationsPreview has not been created yet.", +"The OrgPolicyViolationsPreview is currently being created.", +"The OrgPolicyViolationsPreview creation finished successfully.", +"The OrgPolicyViolationsPreview creation failed with an error." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudPolicysimulatorV1betaGenerateOrgPolicyViolationsPreviewOperationMetadata": { +"description": "GenerateOrgPolicyViolationsPreviewOperationMetadata is metadata about an OrgPolicyViolationsPreview generations operation.", +"id": "GoogleCloudPolicysimulatorV1betaGenerateOrgPolicyViolationsPreviewOperationMetadata", +"properties": { +"requestTime": { +"description": "Time when the request was received.", +"format": "google-datetime", +"type": "string" +}, +"resourcesFound": { +"description": "Total number of resources that need scanning. Should equal resource_scanned + resources_pending", +"format": "int32", +"type": "integer" +}, +"resourcesPending": { +"description": "Number of resources still to scan.", +"format": "int32", +"type": "integer" +}, +"resourcesScanned": { +"description": "Number of resources already scanned.", +"format": "int32", +"type": "integer" +}, +"startTime": { +"description": "Time when the request started processing, i.e. when the state was set to RUNNING.", +"format": "google-datetime", +"type": "string" +}, +"state": { +"description": "The current state of the operation.", +"enum": [ +"PREVIEW_STATE_UNSPECIFIED", +"PREVIEW_PENDING", +"PREVIEW_RUNNING", +"PREVIEW_SUCCEEDED", +"PREVIEW_FAILED" +], +"enumDescriptions": [ +"The state is unspecified.", +"The OrgPolicyViolationsPreview has not been created yet.", +"The OrgPolicyViolationsPreview is currently being created.", +"The OrgPolicyViolationsPreview creation finished successfully.", +"The OrgPolicyViolationsPreview creation failed with an error." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudPolicysimulatorV1betaOrgPolicyOverlay": { +"description": "The proposed changes to OrgPolicy.", +"id": "GoogleCloudPolicysimulatorV1betaOrgPolicyOverlay", +"properties": { +"customConstraints": { +"description": "Optional. The OrgPolicy CustomConstraint changes to preview violations for. Any existing CustomConstraints with the same name will be overridden in the simulation. That is, violations will be determined as if all custom constraints in the overlay were instantiated. Only a single custom_constraint is supported in the overlay at a time. For evaluating multiple constraints, multiple `GenerateOrgPolicyViolationsPreview` requests are made, where each request evaluates a single constraint.", +"items": { +"$ref": "GoogleCloudPolicysimulatorV1betaOrgPolicyOverlayCustomConstraintOverlay" +}, +"type": "array" +}, +"policies": { +"description": "Optional. The OrgPolicy changes to preview violations for. Any existing OrgPolicies with the same name will be overridden in the simulation. That is, violations will be determined as if all policies in the overlay were created or updated.", +"items": { +"$ref": "GoogleCloudPolicysimulatorV1betaOrgPolicyOverlayPolicyOverlay" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudPolicysimulatorV1betaOrgPolicyOverlayCustomConstraintOverlay": { +"description": "A change to an OrgPolicy custom constraint.", +"id": "GoogleCloudPolicysimulatorV1betaOrgPolicyOverlayCustomConstraintOverlay", +"properties": { +"customConstraint": { +"$ref": "GoogleCloudOrgpolicyV2CustomConstraint", +"description": "Optional. The new or updated custom constraint." +}, +"customConstraintParent": { +"description": "Optional. Resource the constraint is attached to. Example: \"organization/987654\"", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudPolicysimulatorV1betaOrgPolicyOverlayPolicyOverlay": { +"description": "A change to an OrgPolicy.", +"id": "GoogleCloudPolicysimulatorV1betaOrgPolicyOverlayPolicyOverlay", +"properties": { +"policy": { +"$ref": "GoogleCloudOrgpolicyV2Policy", +"description": "Optional. The new or updated OrgPolicy." +}, +"policyParent": { +"description": "Optional. The parent of the policy we are attaching to. Example: \"projects/123456\"", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudPolicysimulatorV1betaOrgPolicyViolationsPreview": { +"description": "OrgPolicyViolationsPreview is a resource providing a preview of the violations that will exist if an OrgPolicy change is made. The list of violations are modeled as child resources and retrieved via a ListOrgPolicyViolations API call. There are potentially more OrgPolicyViolations than could fit in an embedded field. Thus, the use of a child resource instead of a field.", +"id": "GoogleCloudPolicysimulatorV1betaOrgPolicyViolationsPreview", +"properties": { +"createTime": { +"description": "Output only. Time when this `OrgPolicyViolationsPreview` was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"customConstraints": { +"description": "Output only. The names of the constraints against which all `OrgPolicyViolations` were evaluated. If `OrgPolicyOverlay` only contains `PolicyOverlay` then it contains the name of the configured custom constraint, applicable to the specified policies. Otherwise it contains the name of the constraint specified in `CustomConstraintOverlay`. Format: `organizations/{organization_id}/customConstraints/{custom_constraint_id}` Example: `organizations/123/customConstraints/custom.createOnlyE2TypeVms`", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"name": { +"description": "Output only. The resource name of the `OrgPolicyViolationsPreview`. It has the following format: `organizations/{organization}/locations/{location}/orgPolicyViolationsPreviews/{orgPolicyViolationsPreview}` Example: `organizations/my-example-org/locations/global/orgPolicyViolationsPreviews/506a5f7f`", +"readOnly": true, +"type": "string" +}, +"overlay": { +"$ref": "GoogleCloudPolicysimulatorV1betaOrgPolicyOverlay", +"description": "Required. The proposed changes we are previewing violations for." +}, +"resourceCounts": { +"$ref": "GoogleCloudPolicysimulatorV1betaOrgPolicyViolationsPreviewResourceCounts", +"description": "Output only. A summary of the state of all resources scanned for compliance with the changed OrgPolicy.", +"readOnly": true +}, +"state": { +"description": "Output only. The state of the `OrgPolicyViolationsPreview`.", +"enum": [ +"PREVIEW_STATE_UNSPECIFIED", +"PREVIEW_PENDING", +"PREVIEW_RUNNING", +"PREVIEW_SUCCEEDED", +"PREVIEW_FAILED" +], +"enumDescriptions": [ +"The state is unspecified.", +"The OrgPolicyViolationsPreview has not been created yet.", +"The OrgPolicyViolationsPreview is currently being created.", +"The OrgPolicyViolationsPreview creation finished successfully.", +"The OrgPolicyViolationsPreview creation failed with an error." +], +"readOnly": true, +"type": "string" +}, +"violationsCount": { +"description": "Output only. The number of OrgPolicyViolations in this `OrgPolicyViolationsPreview`. This count may differ from `resource_summary.noncompliant_count` because each OrgPolicyViolation is specific to a resource **and** constraint. If there are multiple constraints being evaluated (i.e. multiple policies in the overlay), a single resource may violate multiple constraints.", +"format": "int32", +"readOnly": true, +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudPolicysimulatorV1betaOrgPolicyViolationsPreviewResourceCounts": { +"description": "A summary of the state of all resources scanned for compliance with the changed OrgPolicy.", +"id": "GoogleCloudPolicysimulatorV1betaOrgPolicyViolationsPreviewResourceCounts", +"properties": { +"compliant": { +"description": "Output only. Number of scanned resources with zero violations.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"errors": { +"description": "Output only. Number of resources that returned an error when scanned.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"noncompliant": { +"description": "Output only. Number of scanned resources with at least one violation.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"scanned": { +"description": "Output only. Number of resources checked for compliance. Must equal: unenforced + noncompliant + compliant + error", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"unenforced": { +"description": "Output only. Number of resources where the constraint was not enforced, i.e. the Policy set `enforced: false` for that resource.", +"format": "int32", +"readOnly": true, +"type": "integer" +} +}, +"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" +}, +"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" +}, +"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" +}, +"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 Simulator 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/policysimulator.v1alpha.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/policysimulator.v1alpha.json new file mode 100644 index 0000000000000000000000000000000000000000..3cacaaec9211e6964cfbb165b08fe63e007b9dac --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/policysimulator.v1alpha.json @@ -0,0 +1,2662 @@ +{ +"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://policysimulator.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Policy Simulator", +"description": " Policy Simulator is a collection of endpoints for creating, running, and viewing a Replay. A `Replay` is a type of simulation that lets you see how your members' access to resources might change if you changed your IAM policy. During a `Replay`, Policy Simulator re-evaluates, or replays, past access attempts under both the current policy and your proposed policy, and compares those results to determine how your members' access might change under the proposed policy.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/iam/docs/simulating-access", +"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": "policysimulator:v1alpha", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://policysimulator.mtls.googleapis.com/", +"name": "policysimulator", +"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": { +"locations": { +"resources": { +"orgPolicyViolationsPreviews": { +"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": "v1alpha/folders/{foldersId}/locations/{locationsId}/orgPolicyViolationsPreviews/{orgPolicyViolationsPreviewsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "policysimulator.folders.locations.orgPolicyViolationsPreviews.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^folders/[^/]+/locations/[^/]+/orgPolicyViolationsPreviews/[^/]+/operations/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"replays": { +"methods": { +"create": { +"description": "Creates and starts a Replay using the given ReplayConfig.", +"flatPath": "v1alpha/folders/{foldersId}/locations/{locationsId}/replays", +"httpMethod": "POST", +"id": "policysimulator.folders.locations.replays.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource where this Replay will be created. This resource must be a project, folder, or organization with a location. Example: `projects/my-example-project/locations/global`", +"location": "path", +"pattern": "^folders/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+parent}/replays", +"request": { +"$ref": "GoogleCloudPolicysimulatorV1alphaReplay" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the specified Replay. Each `Replay` is available for at least 7 days.", +"flatPath": "v1alpha/folders/{foldersId}/locations/{locationsId}/replays/{replaysId}", +"httpMethod": "GET", +"id": "policysimulator.folders.locations.replays.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the Replay to retrieve, in the following format: `{projects|folders|organizations}/{resource-id}/locations/global/replays/{replay-id}`, where `{resource-id}` is the ID of the project, folder, or organization that owns the `Replay`. Example: `projects/my-example-project/locations/global/replays/506a5f7f-38ce-4d7d-8e03-479ce1833c36`", +"location": "path", +"pattern": "^folders/[^/]+/locations/[^/]+/replays/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "GoogleCloudPolicysimulatorV1alphaReplay" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists each Replay in a project, folder, or organization. Each `Replay` is available for at least 7 days.", +"flatPath": "v1alpha/folders/{foldersId}/locations/{locationsId}/replays", +"httpMethod": "GET", +"id": "policysimulator.folders.locations.replays.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of Replay objects to return. Defaults to 50. The maximum value is 1000; values above 1000 are rounded down to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous Simulator.ListReplays call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to Simulator.ListReplays must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource, in the following format: `{projects|folders|organizations}/{resource-id}/locations/global`, where `{resource-id}` is the ID of the project, folder, or organization that owns the Replay. Example: `projects/my-example-project/locations/global` Only `Replay` objects that are direct children of the provided parent are listed. In other words, `Replay` objects that are children of a project will not be included when the parent is a folder of that project.", +"location": "path", +"pattern": "^folders/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+parent}/replays", +"response": { +"$ref": "GoogleCloudPolicysimulatorV1alphaListReplaysResponse" +}, +"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": "v1alpha/folders/{foldersId}/locations/{locationsId}/replays/{replaysId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "policysimulator.folders.locations.replays.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^folders/[^/]+/locations/[^/]+/replays/[^/]+/operations/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+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": "v1alpha/folders/{foldersId}/locations/{locationsId}/replays/{replaysId}/operations", +"httpMethod": "GET", +"id": "policysimulator.folders.locations.replays.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": "^folders/[^/]+/locations/[^/]+/replays/[^/]+/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": "v1alpha/{+name}", +"response": { +"$ref": "GoogleLongrunningListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"results": { +"methods": { +"list": { +"description": "Lists the results of running a Replay.", +"flatPath": "v1alpha/folders/{foldersId}/locations/{locationsId}/replays/{replaysId}/results", +"httpMethod": "GET", +"id": "policysimulator.folders.locations.replays.results.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of ReplayResult objects to return. Defaults to 5000. The maximum value is 5000; values above 5000 are rounded down to 5000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous Simulator.ListReplayResults call. Provide this token to retrieve the next page of results. When paginating, all other parameters provided to [Simulator.ListReplayResults[] must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The Replay whose results are listed, in the following format: `{projects|folders|organizations}/{resource-id}/locations/global/replays/{replay-id}` Example: `projects/my-project/locations/global/replays/506a5f7f-38ce-4d7d-8e03-479ce1833c36`", +"location": "path", +"pattern": "^folders/[^/]+/locations/[^/]+/replays/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+parent}/results", +"response": { +"$ref": "GoogleCloudPolicysimulatorV1alphaListReplayResultsResponse" +}, +"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": "v1alpha/operations/{operationsId}", +"httpMethod": "GET", +"id": "policysimulator.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^operations/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+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": "v1alpha/operations", +"httpMethod": "GET", +"id": "policysimulator.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": "v1alpha/{+name}", +"response": { +"$ref": "GoogleLongrunningListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"organizations": { +"resources": { +"locations": { +"resources": { +"orgPolicyViolationsPreviews": { +"methods": { +"create": { +"description": "CreateOrgPolicyViolationsPreview creates an OrgPolicyViolationsPreview for the proposed changes in the provided OrgPolicyViolationsPreview.OrgPolicyOverlay. The changes to OrgPolicy are specified by this `OrgPolicyOverlay`. The resources to scan are inferred from these specified changes.", +"flatPath": "v1alpha/organizations/{organizationsId}/locations/{locationsId}/orgPolicyViolationsPreviews", +"httpMethod": "POST", +"id": "policysimulator.organizations.locations.orgPolicyViolationsPreviews.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"orgPolicyViolationsPreviewId": { +"description": "Optional. An optional user-specified ID for the OrgPolicyViolationsPreview. If not provided, a random ID will be generated.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The organization under which this OrgPolicyViolationsPreview will be created. Example: `organizations/my-example-org/locations/global`", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+parent}/orgPolicyViolationsPreviews", +"request": { +"$ref": "GoogleCloudPolicysimulatorV1alphaOrgPolicyViolationsPreview" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"generate": { +"description": "GenerateOrgPolicyViolationsPreview generates an OrgPolicyViolationsPreview for the proposed changes in the provided OrgPolicyViolationsPreview.OrgPolicyOverlay. The changes to OrgPolicy are specified by this `OrgPolicyOverlay`. The resources to scan are inferred from these specified changes.", +"flatPath": "v1alpha/organizations/{organizationsId}/locations/{locationsId}/orgPolicyViolationsPreviews:generate", +"httpMethod": "POST", +"id": "policysimulator.organizations.locations.orgPolicyViolationsPreviews.generate", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The organization under which this OrgPolicyViolationsPreview will be created. Example: `organizations/my-example-org/locations/global`", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+parent}/orgPolicyViolationsPreviews:generate", +"request": { +"$ref": "GoogleCloudPolicysimulatorV1alphaOrgPolicyViolationsPreview" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "GetOrgPolicyViolationsPreview gets the specified OrgPolicyViolationsPreview. Each OrgPolicyViolationsPreview is available for at least 7 days.", +"flatPath": "v1alpha/organizations/{organizationsId}/locations/{locationsId}/orgPolicyViolationsPreviews/{orgPolicyViolationsPreviewsId}", +"httpMethod": "GET", +"id": "policysimulator.organizations.locations.orgPolicyViolationsPreviews.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the OrgPolicyViolationsPreview to get.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/orgPolicyViolationsPreviews/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "GoogleCloudPolicysimulatorV1alphaOrgPolicyViolationsPreview" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "ListOrgPolicyViolationsPreviews lists each OrgPolicyViolationsPreview in an organization. Each OrgPolicyViolationsPreview is available for at least 7 days.", +"flatPath": "v1alpha/organizations/{organizationsId}/locations/{locationsId}/orgPolicyViolationsPreviews", +"httpMethod": "GET", +"id": "policysimulator.organizations.locations.orgPolicyViolationsPreviews.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 5 items will be returned. The maximum value is 10; values above 10 will be coerced to 10.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A page token, received from a previous call. Provide this to retrieve the subsequent page. When paginating, all other parameters must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent the violations are scoped to. Format: `organizations/{organization}/locations/{location}` Example: `organizations/my-example-org/locations/global`", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+parent}/orgPolicyViolationsPreviews", +"response": { +"$ref": "GoogleCloudPolicysimulatorV1alphaListOrgPolicyViolationsPreviewsResponse" +}, +"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": "v1alpha/organizations/{organizationsId}/locations/{locationsId}/orgPolicyViolationsPreviews/{orgPolicyViolationsPreviewsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "policysimulator.organizations.locations.orgPolicyViolationsPreviews.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/orgPolicyViolationsPreviews/[^/]+/operations/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"orgPolicyViolations": { +"methods": { +"list": { +"description": "ListOrgPolicyViolations lists the OrgPolicyViolations that are present in an OrgPolicyViolationsPreview.", +"flatPath": "v1alpha/organizations/{organizationsId}/locations/{locationsId}/orgPolicyViolationsPreviews/{orgPolicyViolationsPreviewsId}/orgPolicyViolations", +"httpMethod": "GET", +"id": "policysimulator.organizations.locations.orgPolicyViolationsPreviews.orgPolicyViolations.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 50 items 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 call. Provide this to retrieve the subsequent page. When paginating, all other parameters must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The OrgPolicyViolationsPreview to get OrgPolicyViolations from. Format: organizations/{organization}/locations/{location}/orgPolicyViolationsPreviews/{orgPolicyViolationsPreview}", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/orgPolicyViolationsPreviews/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+parent}/orgPolicyViolations", +"response": { +"$ref": "GoogleCloudPolicysimulatorV1alphaListOrgPolicyViolationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"replays": { +"methods": { +"create": { +"description": "Creates and starts a Replay using the given ReplayConfig.", +"flatPath": "v1alpha/organizations/{organizationsId}/locations/{locationsId}/replays", +"httpMethod": "POST", +"id": "policysimulator.organizations.locations.replays.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource where this Replay will be created. This resource must be a project, folder, or organization with a location. Example: `projects/my-example-project/locations/global`", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+parent}/replays", +"request": { +"$ref": "GoogleCloudPolicysimulatorV1alphaReplay" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the specified Replay. Each `Replay` is available for at least 7 days.", +"flatPath": "v1alpha/organizations/{organizationsId}/locations/{locationsId}/replays/{replaysId}", +"httpMethod": "GET", +"id": "policysimulator.organizations.locations.replays.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the Replay to retrieve, in the following format: `{projects|folders|organizations}/{resource-id}/locations/global/replays/{replay-id}`, where `{resource-id}` is the ID of the project, folder, or organization that owns the `Replay`. Example: `projects/my-example-project/locations/global/replays/506a5f7f-38ce-4d7d-8e03-479ce1833c36`", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/replays/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "GoogleCloudPolicysimulatorV1alphaReplay" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists each Replay in a project, folder, or organization. Each `Replay` is available for at least 7 days.", +"flatPath": "v1alpha/organizations/{organizationsId}/locations/{locationsId}/replays", +"httpMethod": "GET", +"id": "policysimulator.organizations.locations.replays.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of Replay objects to return. Defaults to 50. The maximum value is 1000; values above 1000 are rounded down to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous Simulator.ListReplays call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to Simulator.ListReplays must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource, in the following format: `{projects|folders|organizations}/{resource-id}/locations/global`, where `{resource-id}` is the ID of the project, folder, or organization that owns the Replay. Example: `projects/my-example-project/locations/global` Only `Replay` objects that are direct children of the provided parent are listed. In other words, `Replay` objects that are children of a project will not be included when the parent is a folder of that project.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+parent}/replays", +"response": { +"$ref": "GoogleCloudPolicysimulatorV1alphaListReplaysResponse" +}, +"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": "v1alpha/organizations/{organizationsId}/locations/{locationsId}/replays/{replaysId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "policysimulator.organizations.locations.replays.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/replays/[^/]+/operations/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+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": "v1alpha/organizations/{organizationsId}/locations/{locationsId}/replays/{replaysId}/operations", +"httpMethod": "GET", +"id": "policysimulator.organizations.locations.replays.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/[^/]+/replays/[^/]+/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": "v1alpha/{+name}", +"response": { +"$ref": "GoogleLongrunningListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"results": { +"methods": { +"list": { +"description": "Lists the results of running a Replay.", +"flatPath": "v1alpha/organizations/{organizationsId}/locations/{locationsId}/replays/{replaysId}/results", +"httpMethod": "GET", +"id": "policysimulator.organizations.locations.replays.results.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of ReplayResult objects to return. Defaults to 5000. The maximum value is 5000; values above 5000 are rounded down to 5000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous Simulator.ListReplayResults call. Provide this token to retrieve the next page of results. When paginating, all other parameters provided to [Simulator.ListReplayResults[] must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The Replay whose results are listed, in the following format: `{projects|folders|organizations}/{resource-id}/locations/global/replays/{replay-id}` Example: `projects/my-project/locations/global/replays/506a5f7f-38ce-4d7d-8e03-479ce1833c36`", +"location": "path", +"pattern": "^organizations/[^/]+/locations/[^/]+/replays/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+parent}/results", +"response": { +"$ref": "GoogleCloudPolicysimulatorV1alphaListReplayResultsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +} +}, +"projects": { +"resources": { +"locations": { +"resources": { +"orgPolicyViolationsPreviews": { +"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": "v1alpha/projects/{projectsId}/locations/{locationsId}/orgPolicyViolationsPreviews/{orgPolicyViolationsPreviewsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "policysimulator.projects.locations.orgPolicyViolationsPreviews.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/orgPolicyViolationsPreviews/[^/]+/operations/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"replays": { +"methods": { +"create": { +"description": "Creates and starts a Replay using the given ReplayConfig.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/replays", +"httpMethod": "POST", +"id": "policysimulator.projects.locations.replays.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource where this Replay will be created. This resource must be a project, folder, or organization with a location. Example: `projects/my-example-project/locations/global`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+parent}/replays", +"request": { +"$ref": "GoogleCloudPolicysimulatorV1alphaReplay" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the specified Replay. Each `Replay` is available for at least 7 days.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/replays/{replaysId}", +"httpMethod": "GET", +"id": "policysimulator.projects.locations.replays.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the Replay to retrieve, in the following format: `{projects|folders|organizations}/{resource-id}/locations/global/replays/{replay-id}`, where `{resource-id}` is the ID of the project, folder, or organization that owns the `Replay`. Example: `projects/my-example-project/locations/global/replays/506a5f7f-38ce-4d7d-8e03-479ce1833c36`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/replays/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+name}", +"response": { +"$ref": "GoogleCloudPolicysimulatorV1alphaReplay" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists each Replay in a project, folder, or organization. Each `Replay` is available for at least 7 days.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/replays", +"httpMethod": "GET", +"id": "policysimulator.projects.locations.replays.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of Replay objects to return. Defaults to 50. The maximum value is 1000; values above 1000 are rounded down to 1000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous Simulator.ListReplays call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to Simulator.ListReplays must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource, in the following format: `{projects|folders|organizations}/{resource-id}/locations/global`, where `{resource-id}` is the ID of the project, folder, or organization that owns the Replay. Example: `projects/my-example-project/locations/global` Only `Replay` objects that are direct children of the provided parent are listed. In other words, `Replay` objects that are children of a project will not be included when the parent is a folder of that project.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+parent}/replays", +"response": { +"$ref": "GoogleCloudPolicysimulatorV1alphaListReplaysResponse" +}, +"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": "v1alpha/projects/{projectsId}/locations/{locationsId}/replays/{replaysId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "policysimulator.projects.locations.replays.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/replays/[^/]+/operations/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+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": "v1alpha/projects/{projectsId}/locations/{locationsId}/replays/{replaysId}/operations", +"httpMethod": "GET", +"id": "policysimulator.projects.locations.replays.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/[^/]+/replays/[^/]+/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": "v1alpha/{+name}", +"response": { +"$ref": "GoogleLongrunningListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"results": { +"methods": { +"list": { +"description": "Lists the results of running a Replay.", +"flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/replays/{replaysId}/results", +"httpMethod": "GET", +"id": "policysimulator.projects.locations.replays.results.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of ReplayResult objects to return. Defaults to 5000. The maximum value is 5000; values above 5000 are rounded down to 5000.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A page token, received from a previous Simulator.ListReplayResults call. Provide this token to retrieve the next page of results. When paginating, all other parameters provided to [Simulator.ListReplayResults[] must match the call that provided the page token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The Replay whose results are listed, in the following format: `{projects|folders|organizations}/{resource-id}/locations/global/replays/{replay-id}` Example: `projects/my-project/locations/global/replays/506a5f7f-38ce-4d7d-8e03-479ce1833c36`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/replays/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha/{+parent}/results", +"response": { +"$ref": "GoogleCloudPolicysimulatorV1alphaListReplayResultsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +} +} +}, +"revision": "20241118", +"rootUrl": "https://policysimulator.googleapis.com/", +"schemas": { +"GoogleCloudOrgpolicyV2AlternatePolicySpec": { +"description": "Similar to PolicySpec but with an extra 'launch' field for launch reference. The PolicySpec here is specific for dry-run/darklaunch.", +"id": "GoogleCloudOrgpolicyV2AlternatePolicySpec", +"properties": { +"launch": { +"description": "Reference to the launch that will be used while audit logging and to control the launch. Should be set only in the alternate policy.", +"type": "string" +}, +"spec": { +"$ref": "GoogleCloudOrgpolicyV2PolicySpec", +"description": "Specify constraint for configurations of Google Cloud resources." +} +}, +"type": "object" +}, +"GoogleCloudOrgpolicyV2CustomConstraint": { +"description": "A custom constraint defined by customers which can *only* be applied to the given resource types and organization. By creating a custom constraint, customers can apply policies of this custom constraint. *Creating a custom constraint itself does NOT apply any policy enforcement*.", +"id": "GoogleCloudOrgpolicyV2CustomConstraint", +"properties": { +"actionType": { +"description": "Allow or deny type.", +"enum": [ +"ACTION_TYPE_UNSPECIFIED", +"ALLOW", +"DENY" +], +"enumDescriptions": [ +"Unspecified. Results in an error.", +"Allowed action type.", +"Deny action type." +], +"type": "string" +}, +"condition": { +"description": "Org policy condition/expression. For example: `resource.instanceName.matches(\"[production|test]_.*_(\\d)+\")` or, `resource.management.auto_upgrade == true` The max length of the condition is 1000 characters.", +"type": "string" +}, +"description": { +"description": "Detailed information about this custom policy constraint. The max length of the description is 2000 characters.", +"type": "string" +}, +"displayName": { +"description": "One line display name for the UI. The max length of the display_name is 200 characters.", +"type": "string" +}, +"methodTypes": { +"description": "All the operations being applied for this constraint.", +"items": { +"enum": [ +"METHOD_TYPE_UNSPECIFIED", +"CREATE", +"UPDATE", +"DELETE", +"REMOVE_GRANT", +"GOVERN_TAGS" +], +"enumDescriptions": [ +"Unspecified. Results in an error.", +"Constraint applied when creating the resource.", +"Constraint applied when updating the resource.", +"Constraint applied when deleting the resource. Not supported yet.", +"Constraint applied when removing an IAM grant.", +"Constraint applied when enforcing forced tagging." +], +"type": "string" +}, +"type": "array" +}, +"name": { +"description": "Immutable. Name of the constraint. This is unique within the organization. Format of the name should be * `organizations/{organization_id}/customConstraints/{custom_constraint_id}` Example: `organizations/123/customConstraints/custom.createOnlyE2TypeVms` The max length is 70 characters and the minimum length is 1. Note that the prefix `organizations/{organization_id}/customConstraints/` is not counted.", +"type": "string" +}, +"resourceTypes": { +"description": "Immutable. The resource instance type on which this policy applies. Format will be of the form : `/` Example: * `compute.googleapis.com/Instance`.", +"items": { +"type": "string" +}, +"type": "array" +}, +"updateTime": { +"description": "Output only. The last time this custom constraint was updated. This represents the last time that the `CreateCustomConstraint` or `UpdateCustomConstraint` RPC was called", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudOrgpolicyV2Policy": { +"description": "Defines an organization policy which is used to specify constraints for configurations of Google Cloud resources.", +"id": "GoogleCloudOrgpolicyV2Policy", +"properties": { +"alternate": { +"$ref": "GoogleCloudOrgpolicyV2AlternatePolicySpec", +"deprecated": true, +"description": "Deprecated." +}, +"dryRunSpec": { +"$ref": "GoogleCloudOrgpolicyV2PolicySpec", +"description": "Dry-run policy. Audit-only policy, can be used to monitor how the policy would have impacted the existing and future resources if it's enforced." +}, +"etag": { +"description": "Optional. An opaque tag indicating the current state of the policy, used for concurrency control. This 'etag' 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" +}, +"name": { +"description": "Immutable. The resource name of the policy. Must be one of the following forms, where `constraint_name` is the name of the constraint which this policy configures: * `projects/{project_number}/policies/{constraint_name}` * `folders/{folder_id}/policies/{constraint_name}` * `organizations/{organization_id}/policies/{constraint_name}` For example, `projects/123/policies/compute.disableSerialPortAccess`. Note: `projects/{project_id}/policies/{constraint_name}` is also an acceptable name for API requests, but responses will return the name using the equivalent project number.", +"type": "string" +}, +"spec": { +"$ref": "GoogleCloudOrgpolicyV2PolicySpec", +"description": "Basic information about the Organization Policy." +} +}, +"type": "object" +}, +"GoogleCloudOrgpolicyV2PolicySpec": { +"description": "Defines a Google Cloud policy specification which is used to specify constraints for configurations of Google Cloud resources.", +"id": "GoogleCloudOrgpolicyV2PolicySpec", +"properties": { +"etag": { +"description": "An opaque tag indicating the current version of the policySpec, used for concurrency control. This field is ignored if used in a `CreatePolicy` request. When the policy is returned from either a `GetPolicy` or a `ListPolicies` request, this `etag` indicates the version of the current policySpec to use when executing a read-modify-write loop. When the policy is returned from a `GetEffectivePolicy` request, the `etag` will be unset.", +"type": "string" +}, +"inheritFromParent": { +"description": "Determines the inheritance behavior for this policy. If `inherit_from_parent` is true, policy rules set higher up in the hierarchy (up to the closest root) are inherited and present in the effective policy. If it is false, then no rules are inherited, and this policy becomes the new root for evaluation. This field can be set only for policies which configure list constraints.", +"type": "boolean" +}, +"reset": { +"description": "Ignores policies set above this resource and restores the `constraint_default` enforcement behavior of the specific constraint at this resource. This field can be set in policies for either list or boolean constraints. If set, `rules` must be empty and `inherit_from_parent` must be set to false.", +"type": "boolean" +}, +"rules": { +"description": "In policies for boolean constraints, the following requirements apply: - There must be one and only one policy rule where condition is unset. - Boolean policy rules with conditions must set `enforced` to the opposite of the policy rule without a condition. - During policy evaluation, policy rules with conditions that are true for a target resource take precedence.", +"items": { +"$ref": "GoogleCloudOrgpolicyV2PolicySpecPolicyRule" +}, +"type": "array" +}, +"updateTime": { +"description": "Output only. The time stamp this was previously updated. This represents the last time a call to `CreatePolicy` or `UpdatePolicy` was made for that policy.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudOrgpolicyV2PolicySpecPolicyRule": { +"description": "A rule used to express this policy.", +"id": "GoogleCloudOrgpolicyV2PolicySpecPolicyRule", +"properties": { +"allowAll": { +"description": "Setting this to true means that all values are allowed. This field can be set only in policies for list constraints.", +"type": "boolean" +}, +"condition": { +"$ref": "GoogleTypeExpr", +"description": "A condition which determines whether this rule is used in the evaluation of the policy. When set, the `expression` field in the `Expr' must include from 1 to 10 subexpressions, joined by the \"||\" or \"&&\" operators. Each subexpression must be of the form \"resource.matchTag('/tag_key_short_name, 'tag_value_short_name')\". or \"resource.matchTagId('tagKeys/key_id', 'tagValues/value_id')\". where key_name and value_name are the resource names for Label Keys and Values. These names are available from the Tag Manager Service. An example expression is: \"resource.matchTag('123456789/environment, 'prod')\". or \"resource.matchTagId('tagKeys/123', 'tagValues/456')\"." +}, +"denyAll": { +"description": "Setting this to true means that all values are denied. This field can be set only in policies for list constraints.", +"type": "boolean" +}, +"enforce": { +"description": "If `true`, then the policy is enforced. If `false`, then any configuration is acceptable. This field can be set only in policies 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" +}, +"values": { +"$ref": "GoogleCloudOrgpolicyV2PolicySpecPolicyRuleStringValues", +"description": "List of values to be used for this policy rule. This field can be set only in policies for list constraints." +} +}, +"type": "object" +}, +"GoogleCloudOrgpolicyV2PolicySpecPolicyRuleStringValues": { +"description": "A message that holds specific allowed and denied values. This message can define specific values and subtrees of the Resource Manager resource hierarchy (`Organizations`, `Folders`, `Projects`) that are allowed or denied. This is achieved by using the `under:` and optional `is:` prefixes. The `under:` prefix is used to denote resource subtree values. The `is:` prefix is used to denote specific values, and is required only if the value contains a \":\". Values prefixed with \"is:\" are treated the same as values with no prefix. Ancestry subtrees must be in one of the following formats: - `projects/` (for example, `projects/tokyo-rain-123`) - `folders/` (for example, `folders/1234`) - `organizations/` (for example, `organizations/1234`) The `supports_under` field of the associated `Constraint` defines whether ancestry prefixes can be used.", +"id": "GoogleCloudOrgpolicyV2PolicySpecPolicyRuleStringValues", +"properties": { +"allowedValues": { +"description": "List of values allowed at this resource.", +"items": { +"type": "string" +}, +"type": "array" +}, +"deniedValues": { +"description": "List of values denied at this resource.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudPolicysimulatorV1Replay": { +"description": "A resource describing a `Replay`, or simulation.", +"id": "GoogleCloudPolicysimulatorV1Replay", +"properties": { +"config": { +"$ref": "GoogleCloudPolicysimulatorV1ReplayConfig", +"description": "Required. The configuration used for the `Replay`." +}, +"name": { +"description": "Output only. The resource name of the `Replay`, which has the following format: `{projects|folders|organizations}/{resource-id}/locations/global/replays/{replay-id}`, where `{resource-id}` is the ID of the project, folder, or organization that owns the Replay. Example: `projects/my-example-project/locations/global/replays/506a5f7f-38ce-4d7d-8e03-479ce1833c36`", +"readOnly": true, +"type": "string" +}, +"resultsSummary": { +"$ref": "GoogleCloudPolicysimulatorV1ReplayResultsSummary", +"description": "Output only. Summary statistics about the replayed log entries.", +"readOnly": true +}, +"state": { +"description": "Output only. The current state of the `Replay`.", +"enum": [ +"STATE_UNSPECIFIED", +"PENDING", +"RUNNING", +"SUCCEEDED", +"FAILED" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"The `Replay` has not started yet.", +"The `Replay` is currently running.", +"The `Replay` has successfully completed.", +"The `Replay` has finished with an error." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudPolicysimulatorV1ReplayConfig": { +"description": "The configuration used for a Replay.", +"id": "GoogleCloudPolicysimulatorV1ReplayConfig", +"properties": { +"logSource": { +"description": "The logs to use as input for the Replay.", +"enum": [ +"LOG_SOURCE_UNSPECIFIED", +"RECENT_ACCESSES" +], +"enumDescriptions": [ +"An unspecified log source. If the log source is unspecified, the Replay defaults to using `RECENT_ACCESSES`.", +"All access logs from the last 90 days. These logs may not include logs from the most recent 7 days." +], +"type": "string" +}, +"policyOverlay": { +"additionalProperties": { +"$ref": "GoogleIamV1Policy" +}, +"description": "A mapping of the resources that you want to simulate policies for and the policies that you want to simulate. Keys are the full resource names for the resources. For example, `//cloudresourcemanager.googleapis.com/projects/my-project`. For examples of full resource names for Google Cloud services, see https://cloud.google.com/iam/help/troubleshooter/full-resource-names. Values are Policy objects representing the policies that you want to simulate. Replays automatically take into account any IAM policies inherited through the resource hierarchy, and any policies set on descendant resources. You do not need to include these policies in the policy overlay.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudPolicysimulatorV1ReplayOperationMetadata": { +"description": "Metadata about a Replay operation.", +"id": "GoogleCloudPolicysimulatorV1ReplayOperationMetadata", +"properties": { +"startTime": { +"description": "Time when the request was received.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudPolicysimulatorV1ReplayResultsSummary": { +"description": "Summary statistics about the replayed log entries.", +"id": "GoogleCloudPolicysimulatorV1ReplayResultsSummary", +"properties": { +"differenceCount": { +"description": "The number of replayed log entries with a difference between baseline and simulated policies.", +"format": "int32", +"type": "integer" +}, +"errorCount": { +"description": "The number of log entries that could not be replayed.", +"format": "int32", +"type": "integer" +}, +"logCount": { +"description": "The total number of log entries replayed.", +"format": "int32", +"type": "integer" +}, +"newestDate": { +"$ref": "GoogleTypeDate", +"description": "The date of the newest log entry replayed." +}, +"oldestDate": { +"$ref": "GoogleTypeDate", +"description": "The date of the oldest log entry replayed." +}, +"unchangedCount": { +"description": "The number of replayed log entries with no difference between baseline and simulated policies.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudPolicysimulatorV1alphaAccessStateDiff": { +"description": "A summary and comparison of the principal's access under the current (baseline) policies and the proposed (simulated) policies for a single access tuple.", +"id": "GoogleCloudPolicysimulatorV1alphaAccessStateDiff", +"properties": { +"accessChange": { +"description": "How the principal's access, specified in the AccessState field, changed between the current (baseline) policies and proposed (simulated) policies.", +"enum": [ +"ACCESS_CHANGE_TYPE_UNSPECIFIED", +"NO_CHANGE", +"UNKNOWN_CHANGE", +"ACCESS_REVOKED", +"ACCESS_GAINED", +"ACCESS_MAYBE_REVOKED", +"ACCESS_MAYBE_GAINED" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"The principal's access did not change. This includes the case where both baseline and simulated are UNKNOWN, but the unknown information is equivalent.", +"The principal's access under both the current policies and the proposed policies is `UNKNOWN`, but the unknown information differs between them.", +"The principal had access under the current policies (`GRANTED`), but will no longer have access after the proposed changes (`NOT_GRANTED`).", +"The principal did not have access under the current policies (`NOT_GRANTED`), but will have access after the proposed changes (`GRANTED`).", +"This result can occur for the following reasons: * The principal had access under the current policies (`GRANTED`), but their access after the proposed changes is `UNKNOWN`. * The principal's access under the current policies is `UNKNOWN`, but they will not have access after the proposed changes (`NOT_GRANTED`).", +"This result can occur for the following reasons: * The principal did not have access under the current policies (`NOT_GRANTED`), but their access after the proposed changes is `UNKNOWN`. * The principal's access under the current policies is `UNKNOWN`, but they will have access after the proposed changes (`GRANTED`)." +], +"type": "string" +}, +"baseline": { +"$ref": "GoogleCloudPolicysimulatorV1alphaExplainedAccess", +"description": "The results of evaluating the access tuple under the current (baseline) policies. If the AccessState couldn't be fully evaluated, this field explains why." +}, +"simulated": { +"$ref": "GoogleCloudPolicysimulatorV1alphaExplainedAccess", +"description": "The results of evaluating the access tuple under the proposed (simulated) policies. If the AccessState couldn't be fully evaluated, this field explains why." +} +}, +"type": "object" +}, +"GoogleCloudPolicysimulatorV1alphaAccessTuple": { +"description": "Information about the principal, resource, and permission to check.", +"id": "GoogleCloudPolicysimulatorV1alphaAccessTuple", +"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" +}, +"GoogleCloudPolicysimulatorV1alphaBindingExplanation": { +"description": "Details about how a binding in a policy affects a principal's ability to use a permission.", +"id": "GoogleCloudPolicysimulatorV1alphaBindingExplanation", +"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 user who created the Replay does not have access to all of the policies that Policy Simulator 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/docs/conditions-overview." +}, +"memberships": { +"additionalProperties": { +"$ref": "GoogleCloudPolicysimulatorV1alphaBindingExplanationAnnotatedMembership" +}, +"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` The principal in the replayed access tuple is `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 user who created the Replay 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" +}, +"GoogleCloudPolicysimulatorV1alphaBindingExplanationAnnotatedMembership": { +"description": "Details about whether the binding includes the principal.", +"id": "GoogleCloudPolicysimulatorV1alphaBindingExplanationAnnotatedMembership", +"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 user who created the Replay 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" +}, +"GoogleCloudPolicysimulatorV1alphaCreateOrgPolicyViolationsPreviewOperationMetadata": { +"description": "CreateOrgPolicyViolationsPreviewOperationMetadata is metadata about an OrgPolicyViolationsPreview generations operation.", +"id": "GoogleCloudPolicysimulatorV1alphaCreateOrgPolicyViolationsPreviewOperationMetadata", +"properties": { +"requestTime": { +"description": "Time when the request was received.", +"format": "google-datetime", +"type": "string" +}, +"resourcesFound": { +"description": "Total number of resources that need scanning. Should equal resource_scanned + resources_pending", +"format": "int32", +"type": "integer" +}, +"resourcesPending": { +"description": "Number of resources still to scan.", +"format": "int32", +"type": "integer" +}, +"resourcesScanned": { +"description": "Number of resources already scanned.", +"format": "int32", +"type": "integer" +}, +"startTime": { +"description": "Time when the request started processing, i.e., when the state was set to RUNNING.", +"format": "google-datetime", +"type": "string" +}, +"state": { +"description": "Output only. The current state of the operation.", +"enum": [ +"PREVIEW_STATE_UNSPECIFIED", +"PREVIEW_PENDING", +"PREVIEW_RUNNING", +"PREVIEW_SUCCEEDED", +"PREVIEW_FAILED" +], +"enumDescriptions": [ +"The state is unspecified.", +"The OrgPolicyViolationsPreview has not been created yet.", +"The OrgPolicyViolationsPreview is currently being created.", +"The OrgPolicyViolationsPreview creation finished successfully.", +"The OrgPolicyViolationsPreview creation failed with an error." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudPolicysimulatorV1alphaExplainedAccess": { +"description": "Details about how a set of policies, listed in ExplainedPolicy, resulted in a certain AccessState when replaying an access tuple.", +"id": "GoogleCloudPolicysimulatorV1alphaExplainedAccess", +"properties": { +"accessState": { +"description": "Whether the principal in the access tuple has permission to access the resource in the access tuple under the given 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 user who created the Replay does not have access to all of the policies that Policy Simulator needs to evaluate." +], +"type": "string" +}, +"errors": { +"description": "If the AccessState is `UNKNOWN`, this field contains a list of errors explaining why the result is `UNKNOWN`. If the `AccessState` is `GRANTED` or `NOT_GRANTED`, this field is omitted.", +"items": { +"$ref": "GoogleRpcStatus" +}, +"type": "array" +}, +"policies": { +"description": "If the AccessState is `UNKNOWN`, this field contains the policies that led to that result. If the `AccessState` is `GRANTED` or `NOT_GRANTED`, this field is omitted.", +"items": { +"$ref": "GoogleCloudPolicysimulatorV1alphaExplainedPolicy" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudPolicysimulatorV1alphaExplainedPolicy": { +"description": "Details about how a specific IAM Policy contributed to the access check.", +"id": "GoogleCloudPolicysimulatorV1alphaExplainedPolicy", +"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 user who created the Replay does not have access to all of the policies that Policy Simulator 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 user who created the Replay does not have access to the policy, this field is omitted.", +"items": { +"$ref": "GoogleCloudPolicysimulatorV1alphaBindingExplanation" +}, +"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 user who created the Replay 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 user who created the Replay 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 user who created the Replay 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" +}, +"GoogleCloudPolicysimulatorV1alphaGenerateOrgPolicyViolationsPreviewOperationMetadata": { +"description": "GenerateOrgPolicyViolationsPreviewOperationMetadata is metadata about an OrgPolicyViolationsPreview generations operation.", +"id": "GoogleCloudPolicysimulatorV1alphaGenerateOrgPolicyViolationsPreviewOperationMetadata", +"properties": { +"requestTime": { +"description": "Time when the request was received.", +"format": "google-datetime", +"type": "string" +}, +"resourcesFound": { +"description": "Total number of resources that need scanning. Should equal resource_scanned + resources_pending", +"format": "int32", +"type": "integer" +}, +"resourcesPending": { +"description": "Number of resources still to scan.", +"format": "int32", +"type": "integer" +}, +"resourcesScanned": { +"description": "Number of resources already scanned.", +"format": "int32", +"type": "integer" +}, +"startTime": { +"description": "Time when the request started processing, i.e. when the state was set to RUNNING.", +"format": "google-datetime", +"type": "string" +}, +"state": { +"description": "The current state of the operation.", +"enum": [ +"PREVIEW_STATE_UNSPECIFIED", +"PREVIEW_PENDING", +"PREVIEW_RUNNING", +"PREVIEW_SUCCEEDED", +"PREVIEW_FAILED" +], +"enumDescriptions": [ +"The state is unspecified.", +"The OrgPolicyViolationsPreview has not been created yet.", +"The OrgPolicyViolationsPreview is currently being created.", +"The OrgPolicyViolationsPreview creation finished successfully.", +"The OrgPolicyViolationsPreview creation failed with an error." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudPolicysimulatorV1alphaListOrgPolicyViolationsPreviewsResponse": { +"description": "ListOrgPolicyViolationsPreviewsResponse is the response message for OrgPolicyViolationsPreviewService.ListOrgPolicyViolationsPreviews.", +"id": "GoogleCloudPolicysimulatorV1alphaListOrgPolicyViolationsPreviewsResponse", +"properties": { +"nextPageToken": { +"description": "A token that you can use to retrieve the next page of results. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"orgPolicyViolationsPreviews": { +"description": "The list of OrgPolicyViolationsPreview", +"items": { +"$ref": "GoogleCloudPolicysimulatorV1alphaOrgPolicyViolationsPreview" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudPolicysimulatorV1alphaListOrgPolicyViolationsResponse": { +"description": "ListOrgPolicyViolationsResponse is the response message for OrgPolicyViolationsPreviewService.ListOrgPolicyViolations", +"id": "GoogleCloudPolicysimulatorV1alphaListOrgPolicyViolationsResponse", +"properties": { +"nextPageToken": { +"description": "A token that you can use to retrieve the next page of results. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"orgPolicyViolations": { +"description": "The list of OrgPolicyViolations", +"items": { +"$ref": "GoogleCloudPolicysimulatorV1alphaOrgPolicyViolation" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudPolicysimulatorV1alphaListReplayResultsResponse": { +"description": "Response message for Simulator.ListReplayResults.", +"id": "GoogleCloudPolicysimulatorV1alphaListReplayResultsResponse", +"properties": { +"nextPageToken": { +"description": "A token that you can use to retrieve the next page of ReplayResult objects. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"replayResults": { +"description": "The results of running a Replay.", +"items": { +"$ref": "GoogleCloudPolicysimulatorV1alphaReplayResult" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudPolicysimulatorV1alphaListReplaysResponse": { +"description": "Response message for Simulator.ListReplays.", +"id": "GoogleCloudPolicysimulatorV1alphaListReplaysResponse", +"properties": { +"nextPageToken": { +"description": "A token that you can use to retrieve the next page of results. If this field is omitted, there are no subsequent pages.", +"type": "string" +}, +"replays": { +"description": "The list of Replay objects.", +"items": { +"$ref": "GoogleCloudPolicysimulatorV1alphaReplay" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudPolicysimulatorV1alphaOrgPolicyOverlay": { +"description": "The proposed changes to OrgPolicy.", +"id": "GoogleCloudPolicysimulatorV1alphaOrgPolicyOverlay", +"properties": { +"customConstraints": { +"description": "Optional. The OrgPolicy CustomConstraint changes to preview violations for. Any existing CustomConstraints with the same name will be overridden in the simulation. That is, violations will be determined as if all custom constraints in the overlay were instantiated. Only a single custom_constraint is supported in the overlay at a time. For evaluating multiple constraints, multiple `GenerateOrgPolicyViolationsPreview` requests are made, where each request evaluates a single constraint.", +"items": { +"$ref": "GoogleCloudPolicysimulatorV1alphaOrgPolicyOverlayCustomConstraintOverlay" +}, +"type": "array" +}, +"policies": { +"description": "Optional. The OrgPolicy changes to preview violations for. Any existing OrgPolicies with the same name will be overridden in the simulation. That is, violations will be determined as if all policies in the overlay were created or updated.", +"items": { +"$ref": "GoogleCloudPolicysimulatorV1alphaOrgPolicyOverlayPolicyOverlay" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudPolicysimulatorV1alphaOrgPolicyOverlayCustomConstraintOverlay": { +"description": "A change to an OrgPolicy custom constraint.", +"id": "GoogleCloudPolicysimulatorV1alphaOrgPolicyOverlayCustomConstraintOverlay", +"properties": { +"customConstraint": { +"$ref": "GoogleCloudOrgpolicyV2CustomConstraint", +"description": "Optional. The new or updated custom constraint." +}, +"customConstraintParent": { +"description": "Optional. Resource the constraint is attached to. Example: \"organization/987654\"", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudPolicysimulatorV1alphaOrgPolicyOverlayPolicyOverlay": { +"description": "A change to an OrgPolicy.", +"id": "GoogleCloudPolicysimulatorV1alphaOrgPolicyOverlayPolicyOverlay", +"properties": { +"policy": { +"$ref": "GoogleCloudOrgpolicyV2Policy", +"description": "Optional. The new or updated OrgPolicy." +}, +"policyParent": { +"description": "Optional. The parent of the policy we are attaching to. Example: \"projects/123456\"", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudPolicysimulatorV1alphaOrgPolicyViolation": { +"description": "OrgPolicyViolation is a resource representing a single resource violating a single OrgPolicy constraint.", +"id": "GoogleCloudPolicysimulatorV1alphaOrgPolicyViolation", +"properties": { +"customConstraint": { +"$ref": "GoogleCloudOrgpolicyV2CustomConstraint", +"description": "The custom constraint being violated." +}, +"error": { +"$ref": "GoogleRpcStatus", +"description": "Any error encountered during the evaluation." +}, +"name": { +"description": "The name of the `OrgPolicyViolation`. Example: organizations/my-example-org/locations/global/orgPolicyViolationsPreviews/506a5f7f/orgPolicyViolations/38ce`", +"type": "string" +}, +"resource": { +"$ref": "GoogleCloudPolicysimulatorV1alphaResourceContext", +"description": "The resource violating the constraint." +} +}, +"type": "object" +}, +"GoogleCloudPolicysimulatorV1alphaOrgPolicyViolationsPreview": { +"description": "OrgPolicyViolationsPreview is a resource providing a preview of the violations that will exist if an OrgPolicy change is made. The list of violations are modeled as child resources and retrieved via a ListOrgPolicyViolations API call. There are potentially more OrgPolicyViolations than could fit in an embedded field. Thus, the use of a child resource instead of a field.", +"id": "GoogleCloudPolicysimulatorV1alphaOrgPolicyViolationsPreview", +"properties": { +"createTime": { +"description": "Output only. Time when this `OrgPolicyViolationsPreview` was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"customConstraints": { +"description": "Output only. The names of the constraints against which all `OrgPolicyViolations` were evaluated. If `OrgPolicyOverlay` only contains `PolicyOverlay` then it contains the name of the configured custom constraint, applicable to the specified policies. Otherwise it contains the name of the constraint specified in `CustomConstraintOverlay`. Format: `organizations/{organization_id}/customConstraints/{custom_constraint_id}` Example: `organizations/123/customConstraints/custom.createOnlyE2TypeVms`", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"name": { +"description": "Output only. The resource name of the `OrgPolicyViolationsPreview`. It has the following format: `organizations/{organization}/locations/{location}/orgPolicyViolationsPreviews/{orgPolicyViolationsPreview}` Example: `organizations/my-example-org/locations/global/orgPolicyViolationsPreviews/506a5f7f`", +"readOnly": true, +"type": "string" +}, +"overlay": { +"$ref": "GoogleCloudPolicysimulatorV1alphaOrgPolicyOverlay", +"description": "Required. The proposed changes we are previewing violations for." +}, +"resourceCounts": { +"$ref": "GoogleCloudPolicysimulatorV1alphaOrgPolicyViolationsPreviewResourceCounts", +"description": "Output only. A summary of the state of all resources scanned for compliance with the changed OrgPolicy.", +"readOnly": true +}, +"state": { +"description": "Output only. The state of the `OrgPolicyViolationsPreview`.", +"enum": [ +"PREVIEW_STATE_UNSPECIFIED", +"PREVIEW_PENDING", +"PREVIEW_RUNNING", +"PREVIEW_SUCCEEDED", +"PREVIEW_FAILED" +], +"enumDescriptions": [ +"The state is unspecified.", +"The OrgPolicyViolationsPreview has not been created yet.", +"The OrgPolicyViolationsPreview is currently being created.", +"The OrgPolicyViolationsPreview creation finished successfully.", +"The OrgPolicyViolationsPreview creation failed with an error." +], +"readOnly": true, +"type": "string" +}, +"violationsCount": { +"description": "Output only. The number of OrgPolicyViolations in this `OrgPolicyViolationsPreview`. This count may differ from `resource_summary.noncompliant_count` because each OrgPolicyViolation is specific to a resource **and** constraint. If there are multiple constraints being evaluated (i.e. multiple policies in the overlay), a single resource may violate multiple constraints.", +"format": "int32", +"readOnly": true, +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudPolicysimulatorV1alphaOrgPolicyViolationsPreviewResourceCounts": { +"description": "A summary of the state of all resources scanned for compliance with the changed OrgPolicy.", +"id": "GoogleCloudPolicysimulatorV1alphaOrgPolicyViolationsPreviewResourceCounts", +"properties": { +"compliant": { +"description": "Output only. Number of scanned resources with zero violations.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"errors": { +"description": "Output only. Number of resources that returned an error when scanned.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"noncompliant": { +"description": "Output only. Number of scanned resources with at least one violation.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"scanned": { +"description": "Output only. Number of resources checked for compliance. Must equal: unenforced + noncompliant + compliant + error", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"unenforced": { +"description": "Output only. Number of resources where the constraint was not enforced, i.e. the Policy set `enforced: false` for that resource.", +"format": "int32", +"readOnly": true, +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudPolicysimulatorV1alphaReplay": { +"description": "A resource describing a `Replay`, or simulation.", +"id": "GoogleCloudPolicysimulatorV1alphaReplay", +"properties": { +"config": { +"$ref": "GoogleCloudPolicysimulatorV1alphaReplayConfig", +"description": "Required. The configuration used for the `Replay`." +}, +"name": { +"description": "Output only. The resource name of the `Replay`, which has the following format: `{projects|folders|organizations}/{resource-id}/locations/global/replays/{replay-id}`, where `{resource-id}` is the ID of the project, folder, or organization that owns the Replay. Example: `projects/my-example-project/locations/global/replays/506a5f7f-38ce-4d7d-8e03-479ce1833c36`", +"readOnly": true, +"type": "string" +}, +"resultsSummary": { +"$ref": "GoogleCloudPolicysimulatorV1alphaReplayResultsSummary", +"description": "Output only. Summary statistics about the replayed log entries.", +"readOnly": true +}, +"state": { +"description": "Output only. The current state of the `Replay`.", +"enum": [ +"STATE_UNSPECIFIED", +"PENDING", +"RUNNING", +"SUCCEEDED", +"FAILED" +], +"enumDescriptions": [ +"Default value. This value is unused.", +"The `Replay` has not started yet.", +"The `Replay` is currently running.", +"The `Replay` has successfully completed.", +"The `Replay` has finished with an error." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudPolicysimulatorV1alphaReplayConfig": { +"description": "The configuration used for a Replay.", +"id": "GoogleCloudPolicysimulatorV1alphaReplayConfig", +"properties": { +"logSource": { +"description": "The logs to use as input for the Replay.", +"enum": [ +"LOG_SOURCE_UNSPECIFIED", +"RECENT_ACCESSES" +], +"enumDescriptions": [ +"An unspecified log source. If the log source is unspecified, the Replay defaults to using `RECENT_ACCESSES`.", +"All access logs from the last 90 days. These logs may not include logs from the most recent 7 days." +], +"type": "string" +}, +"policyOverlay": { +"additionalProperties": { +"$ref": "GoogleIamV1Policy" +}, +"description": "A mapping of the resources that you want to simulate policies for and the policies that you want to simulate. Keys are the full resource names for the resources. For example, `//cloudresourcemanager.googleapis.com/projects/my-project`. For examples of full resource names for Google Cloud services, see https://cloud.google.com/iam/help/troubleshooter/full-resource-names. Values are Policy objects representing the policies that you want to simulate. Replays automatically take into account any IAM policies inherited through the resource hierarchy, and any policies set on descendant resources. You do not need to include these policies in the policy overlay.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudPolicysimulatorV1alphaReplayDiff": { +"description": "The difference between the results of evaluating an access tuple under the current (baseline) policies and under the proposed (simulated) policies. This difference explains how a principal's access could change if the proposed policies were applied.", +"id": "GoogleCloudPolicysimulatorV1alphaReplayDiff", +"properties": { +"accessDiff": { +"$ref": "GoogleCloudPolicysimulatorV1alphaAccessStateDiff", +"description": "A summary and comparison of the principal's access under the current (baseline) policies and the proposed (simulated) policies for a single access tuple. The evaluation of the principal's access is reported in the AccessState field." +} +}, +"type": "object" +}, +"GoogleCloudPolicysimulatorV1alphaReplayResult": { +"description": "The result of replaying a single access tuple against a simulated state.", +"id": "GoogleCloudPolicysimulatorV1alphaReplayResult", +"properties": { +"accessTuple": { +"$ref": "GoogleCloudPolicysimulatorV1alphaAccessTuple", +"description": "The access tuple that was replayed. This field includes information about the principal, resource, and permission that were involved in the access attempt." +}, +"diff": { +"$ref": "GoogleCloudPolicysimulatorV1alphaReplayDiff", +"description": "The difference between the principal's access under the current (baseline) policies and the principal's access under the proposed (simulated) policies. This field is only included for access tuples that were successfully replayed and had different results under the current policies and the proposed policies." +}, +"error": { +"$ref": "GoogleRpcStatus", +"description": "The error that caused the access tuple replay to fail. This field is only included for access tuples that were not replayed successfully." +}, +"lastSeenDate": { +"$ref": "GoogleTypeDate", +"description": "The latest date this access tuple was seen in the logs." +}, +"name": { +"description": "The resource name of the `ReplayResult`, in the following format: `{projects|folders|organizations}/{resource-id}/locations/global/replays/{replay-id}/results/{replay-result-id}`, where `{resource-id}` is the ID of the project, folder, or organization that owns the Replay. Example: `projects/my-example-project/locations/global/replays/506a5f7f-38ce-4d7d-8e03-479ce1833c36/results/1234`", +"type": "string" +}, +"parent": { +"description": "The Replay that the access tuple was included in.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudPolicysimulatorV1alphaReplayResultsSummary": { +"description": "Summary statistics about the replayed log entries.", +"id": "GoogleCloudPolicysimulatorV1alphaReplayResultsSummary", +"properties": { +"differenceCount": { +"description": "The number of replayed log entries with a difference between baseline and simulated policies.", +"format": "int32", +"type": "integer" +}, +"errorCount": { +"description": "The number of log entries that could not be replayed.", +"format": "int32", +"type": "integer" +}, +"logCount": { +"description": "The total number of log entries replayed.", +"format": "int32", +"type": "integer" +}, +"newestDate": { +"$ref": "GoogleTypeDate", +"description": "The date of the newest log entry replayed." +}, +"oldestDate": { +"$ref": "GoogleTypeDate", +"description": "The date of the oldest log entry replayed." +}, +"unchangedCount": { +"description": "The number of replayed log entries with no difference between baseline and simulated policies.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudPolicysimulatorV1alphaResourceContext": { +"description": "ResourceContext provides the context we know about a resource. It is similar in concept to google.cloud.asset.v1.Resource, but focuses on the information specifically used by Simulator.", +"id": "GoogleCloudPolicysimulatorV1alphaResourceContext", +"properties": { +"ancestors": { +"description": "The ancestry path of the resource in Google Cloud [resource hierarchy](https://cloud.google.com/resource-manager/docs/cloud-platform-resource-hierarchy), represented as a list of relative resource names. An ancestry path starts with the closest ancestor in the hierarchy and ends at root. If the resource is a project, folder, or organization, the ancestry path starts from the resource itself. Example: `[\"projects/123456789\", \"folders/5432\", \"organizations/1234\"]`", +"items": { +"type": "string" +}, +"type": "array" +}, +"assetType": { +"description": "The asset type of the resource as defined by CAIS. Example: `compute.googleapis.com/Firewall` See [Supported asset types](https://cloud.google.com/asset-inventory/docs/supported-asset-types) for more information.", +"type": "string" +}, +"resource": { +"description": "The full name of the resource. Example: `//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1` See [Resource names](https://cloud.google.com/apis/design/resource_names#full_resource_name) for more information.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudPolicysimulatorV1betaCreateOrgPolicyViolationsPreviewOperationMetadata": { +"description": "CreateOrgPolicyViolationsPreviewOperationMetadata is metadata about an OrgPolicyViolationsPreview generations operation.", +"id": "GoogleCloudPolicysimulatorV1betaCreateOrgPolicyViolationsPreviewOperationMetadata", +"properties": { +"requestTime": { +"description": "Time when the request was received.", +"format": "google-datetime", +"type": "string" +}, +"resourcesFound": { +"description": "Total number of resources that need scanning. Should equal resource_scanned + resources_pending", +"format": "int32", +"type": "integer" +}, +"resourcesPending": { +"description": "Number of resources still to scan.", +"format": "int32", +"type": "integer" +}, +"resourcesScanned": { +"description": "Number of resources already scanned.", +"format": "int32", +"type": "integer" +}, +"startTime": { +"description": "Time when the request started processing, i.e., when the state was set to RUNNING.", +"format": "google-datetime", +"type": "string" +}, +"state": { +"description": "Output only. The current state of the operation.", +"enum": [ +"PREVIEW_STATE_UNSPECIFIED", +"PREVIEW_PENDING", +"PREVIEW_RUNNING", +"PREVIEW_SUCCEEDED", +"PREVIEW_FAILED" +], +"enumDescriptions": [ +"The state is unspecified.", +"The OrgPolicyViolationsPreview has not been created yet.", +"The OrgPolicyViolationsPreview is currently being created.", +"The OrgPolicyViolationsPreview creation finished successfully.", +"The OrgPolicyViolationsPreview creation failed with an error." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudPolicysimulatorV1betaGenerateOrgPolicyViolationsPreviewOperationMetadata": { +"description": "GenerateOrgPolicyViolationsPreviewOperationMetadata is metadata about an OrgPolicyViolationsPreview generations operation.", +"id": "GoogleCloudPolicysimulatorV1betaGenerateOrgPolicyViolationsPreviewOperationMetadata", +"properties": { +"requestTime": { +"description": "Time when the request was received.", +"format": "google-datetime", +"type": "string" +}, +"resourcesFound": { +"description": "Total number of resources that need scanning. Should equal resource_scanned + resources_pending", +"format": "int32", +"type": "integer" +}, +"resourcesPending": { +"description": "Number of resources still to scan.", +"format": "int32", +"type": "integer" +}, +"resourcesScanned": { +"description": "Number of resources already scanned.", +"format": "int32", +"type": "integer" +}, +"startTime": { +"description": "Time when the request started processing, i.e. when the state was set to RUNNING.", +"format": "google-datetime", +"type": "string" +}, +"state": { +"description": "The current state of the operation.", +"enum": [ +"PREVIEW_STATE_UNSPECIFIED", +"PREVIEW_PENDING", +"PREVIEW_RUNNING", +"PREVIEW_SUCCEEDED", +"PREVIEW_FAILED" +], +"enumDescriptions": [ +"The state is unspecified.", +"The OrgPolicyViolationsPreview has not been created yet.", +"The OrgPolicyViolationsPreview is currently being created.", +"The OrgPolicyViolationsPreview creation finished successfully.", +"The OrgPolicyViolationsPreview creation failed with an error." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudPolicysimulatorV1betaOrgPolicyOverlay": { +"description": "The proposed changes to OrgPolicy.", +"id": "GoogleCloudPolicysimulatorV1betaOrgPolicyOverlay", +"properties": { +"customConstraints": { +"description": "Optional. The OrgPolicy CustomConstraint changes to preview violations for. Any existing CustomConstraints with the same name will be overridden in the simulation. That is, violations will be determined as if all custom constraints in the overlay were instantiated. Only a single custom_constraint is supported in the overlay at a time. For evaluating multiple constraints, multiple `GenerateOrgPolicyViolationsPreview` requests are made, where each request evaluates a single constraint.", +"items": { +"$ref": "GoogleCloudPolicysimulatorV1betaOrgPolicyOverlayCustomConstraintOverlay" +}, +"type": "array" +}, +"policies": { +"description": "Optional. The OrgPolicy changes to preview violations for. Any existing OrgPolicies with the same name will be overridden in the simulation. That is, violations will be determined as if all policies in the overlay were created or updated.", +"items": { +"$ref": "GoogleCloudPolicysimulatorV1betaOrgPolicyOverlayPolicyOverlay" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudPolicysimulatorV1betaOrgPolicyOverlayCustomConstraintOverlay": { +"description": "A change to an OrgPolicy custom constraint.", +"id": "GoogleCloudPolicysimulatorV1betaOrgPolicyOverlayCustomConstraintOverlay", +"properties": { +"customConstraint": { +"$ref": "GoogleCloudOrgpolicyV2CustomConstraint", +"description": "Optional. The new or updated custom constraint." +}, +"customConstraintParent": { +"description": "Optional. Resource the constraint is attached to. Example: \"organization/987654\"", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudPolicysimulatorV1betaOrgPolicyOverlayPolicyOverlay": { +"description": "A change to an OrgPolicy.", +"id": "GoogleCloudPolicysimulatorV1betaOrgPolicyOverlayPolicyOverlay", +"properties": { +"policy": { +"$ref": "GoogleCloudOrgpolicyV2Policy", +"description": "Optional. The new or updated OrgPolicy." +}, +"policyParent": { +"description": "Optional. The parent of the policy we are attaching to. Example: \"projects/123456\"", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudPolicysimulatorV1betaOrgPolicyViolationsPreview": { +"description": "OrgPolicyViolationsPreview is a resource providing a preview of the violations that will exist if an OrgPolicy change is made. The list of violations are modeled as child resources and retrieved via a ListOrgPolicyViolations API call. There are potentially more OrgPolicyViolations than could fit in an embedded field. Thus, the use of a child resource instead of a field.", +"id": "GoogleCloudPolicysimulatorV1betaOrgPolicyViolationsPreview", +"properties": { +"createTime": { +"description": "Output only. Time when this `OrgPolicyViolationsPreview` was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"customConstraints": { +"description": "Output only. The names of the constraints against which all `OrgPolicyViolations` were evaluated. If `OrgPolicyOverlay` only contains `PolicyOverlay` then it contains the name of the configured custom constraint, applicable to the specified policies. Otherwise it contains the name of the constraint specified in `CustomConstraintOverlay`. Format: `organizations/{organization_id}/customConstraints/{custom_constraint_id}` Example: `organizations/123/customConstraints/custom.createOnlyE2TypeVms`", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"name": { +"description": "Output only. The resource name of the `OrgPolicyViolationsPreview`. It has the following format: `organizations/{organization}/locations/{location}/orgPolicyViolationsPreviews/{orgPolicyViolationsPreview}` Example: `organizations/my-example-org/locations/global/orgPolicyViolationsPreviews/506a5f7f`", +"readOnly": true, +"type": "string" +}, +"overlay": { +"$ref": "GoogleCloudPolicysimulatorV1betaOrgPolicyOverlay", +"description": "Required. The proposed changes we are previewing violations for." +}, +"resourceCounts": { +"$ref": "GoogleCloudPolicysimulatorV1betaOrgPolicyViolationsPreviewResourceCounts", +"description": "Output only. A summary of the state of all resources scanned for compliance with the changed OrgPolicy.", +"readOnly": true +}, +"state": { +"description": "Output only. The state of the `OrgPolicyViolationsPreview`.", +"enum": [ +"PREVIEW_STATE_UNSPECIFIED", +"PREVIEW_PENDING", +"PREVIEW_RUNNING", +"PREVIEW_SUCCEEDED", +"PREVIEW_FAILED" +], +"enumDescriptions": [ +"The state is unspecified.", +"The OrgPolicyViolationsPreview has not been created yet.", +"The OrgPolicyViolationsPreview is currently being created.", +"The OrgPolicyViolationsPreview creation finished successfully.", +"The OrgPolicyViolationsPreview creation failed with an error." +], +"readOnly": true, +"type": "string" +}, +"violationsCount": { +"description": "Output only. The number of OrgPolicyViolations in this `OrgPolicyViolationsPreview`. This count may differ from `resource_summary.noncompliant_count` because each OrgPolicyViolation is specific to a resource **and** constraint. If there are multiple constraints being evaluated (i.e. multiple policies in the overlay), a single resource may violate multiple constraints.", +"format": "int32", +"readOnly": true, +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudPolicysimulatorV1betaOrgPolicyViolationsPreviewResourceCounts": { +"description": "A summary of the state of all resources scanned for compliance with the changed OrgPolicy.", +"id": "GoogleCloudPolicysimulatorV1betaOrgPolicyViolationsPreviewResourceCounts", +"properties": { +"compliant": { +"description": "Output only. Number of scanned resources with zero violations.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"errors": { +"description": "Output only. Number of resources that returned an error when scanned.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"noncompliant": { +"description": "Output only. Number of scanned resources with at least one violation.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"scanned": { +"description": "Output only. Number of resources checked for compliance. Must equal: unenforced + noncompliant + compliant + error", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"unenforced": { +"description": "Output only. Number of resources where the constraint was not enforced, i.e. the Policy set `enforced: false` for that resource.", +"format": "int32", +"readOnly": true, +"type": "integer" +} +}, +"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" +}, +"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" +}, +"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" +}, +"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 Simulator 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/privateca.v1beta1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/privateca.v1beta1.json new file mode 100644 index 0000000000000000000000000000000000000000..165adee010df142d9b5926ef400f5ce8cc64b9aa --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/privateca.v1beta1.json @@ -0,0 +1,934 @@ +{ +"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://privateca.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Certificate Authority Service", +"description": "The Certificate Authority Service API is a highly-available, scalable service that enables you to simplify and automate the management of private certificate authorities (CAs) while staying in control of your private keys. ", +"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": "privateca:v1beta1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://privateca.mtls.googleapis.com/", +"name": "privateca", +"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": "privateca.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": "privateca.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": { +"certificateAuthorities": { +"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}/certificateAuthorities/{certificateAuthoritiesId}:getIamPolicy", +"httpMethod": "GET", +"id": "privateca.projects.locations.certificateAuthorities.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/[^/]+/certificateAuthorities/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"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}/certificateAuthorities/{certificateAuthoritiesId}:setIamPolicy", +"httpMethod": "POST", +"id": "privateca.projects.locations.certificateAuthorities.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/[^/]+/certificateAuthorities/[^/]+$", +"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}/certificateAuthorities/{certificateAuthoritiesId}:testIamPermissions", +"httpMethod": "POST", +"id": "privateca.projects.locations.certificateAuthorities.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/[^/]+/certificateAuthorities/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"certificateRevocationLists": { +"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}/certificateAuthorities/{certificateAuthoritiesId}/certificateRevocationLists/{certificateRevocationListsId}:getIamPolicy", +"httpMethod": "GET", +"id": "privateca.projects.locations.certificateAuthorities.certificateRevocationLists.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/[^/]+/certificateAuthorities/[^/]+/certificateRevocationLists/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"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}/certificateAuthorities/{certificateAuthoritiesId}/certificateRevocationLists/{certificateRevocationListsId}:setIamPolicy", +"httpMethod": "POST", +"id": "privateca.projects.locations.certificateAuthorities.certificateRevocationLists.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/[^/]+/certificateAuthorities/[^/]+/certificateRevocationLists/[^/]+$", +"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}/certificateAuthorities/{certificateAuthoritiesId}/certificateRevocationLists/{certificateRevocationListsId}:testIamPermissions", +"httpMethod": "POST", +"id": "privateca.projects.locations.certificateAuthorities.certificateRevocationLists.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/[^/]+/certificateAuthorities/[^/]+/certificateRevocationLists/[^/]+$", +"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": "privateca.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": "privateca.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": "privateca.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": "privateca.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" +] +} +} +}, +"reusableConfigs": { +"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}/reusableConfigs/{reusableConfigsId}:getIamPolicy", +"httpMethod": "GET", +"id": "privateca.projects.locations.reusableConfigs.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/[^/]+/reusableConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"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}/reusableConfigs/{reusableConfigsId}:setIamPolicy", +"httpMethod": "POST", +"id": "privateca.projects.locations.reusableConfigs.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/[^/]+/reusableConfigs/[^/]+$", +"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}/reusableConfigs/{reusableConfigsId}:testIamPermissions", +"httpMethod": "POST", +"id": "privateca.projects.locations.reusableConfigs.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/[^/]+/reusableConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:testIamPermissions", +"request": { +"$ref": "TestIamPermissionsRequest" +}, +"response": { +"$ref": "TestIamPermissionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +}, +"revision": "20241204", +"rootUrl": "https://privateca.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" +}, +"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" +}, +"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" +}, +"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" +}, +"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" +}, +"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" +}, +"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" +} +}, +"servicePath": "", +"title": "Certificate Authority 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/prod_tt_sasportal.v1alpha1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/prod_tt_sasportal.v1alpha1.json new file mode 100644 index 0000000000000000000000000000000000000000..a7bf4d7f82281e22d7e866c5369d2aa4762dd12e --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/prod_tt_sasportal.v1alpha1.json @@ -0,0 +1,3774 @@ +{ +"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://prod-tt-sasportal.googleapis.com/", +"batchPath": "batch", +"canonicalName": "SAS Portal Testing", +"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": "prod_tt_sasportal:v1alpha1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://prod-tt-sasportal.mtls.googleapis.com/", +"name": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "prod_tt_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": "20240730", +"rootUrl": "https://prod-tt-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 (Testing)", +"version": "v1alpha1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/publicca.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/publicca.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..82c028545dcdbdbd0ca1bbe3f8bc2f5da2ce4d17 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/publicca.v1.json @@ -0,0 +1,180 @@ +{ +"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://publicca.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Public Certificate Authority", +"description": "The Public Certificate Authority API may be used to create and manage ACME external account binding keys associated with Google Trust Services' publicly trusted certificate authority. ", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/public-certificate-authority/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": "publicca:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://publicca.mtls.googleapis.com/", +"name": "publicca", +"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": { +"externalAccountKeys": { +"methods": { +"create": { +"description": "Creates a new ExternalAccountKey bound to the project.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/externalAccountKeys", +"httpMethod": "POST", +"id": "publicca.projects.locations.externalAccountKeys.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource where this external_account_key will be created. Format: projects/[project_id]/locations/[location]. At present only the \"global\" location is supported.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/externalAccountKeys", +"request": { +"$ref": "ExternalAccountKey" +}, +"response": { +"$ref": "ExternalAccountKey" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +}, +"revision": "20240702", +"rootUrl": "https://publicca.googleapis.com/", +"schemas": { +"ExternalAccountKey": { +"description": "A representation of an ExternalAccountKey used for [external account binding](https://tools.ietf.org/html/rfc8555#section-7.3.4) within ACME.", +"id": "ExternalAccountKey", +"properties": { +"b64MacKey": { +"description": "Output only. Base64-URL-encoded HS256 key. It is generated by the PublicCertificateAuthorityService when the ExternalAccountKey is created", +"format": "byte", +"readOnly": true, +"type": "string" +}, +"keyId": { +"description": "Output only. Key ID. It is generated by the PublicCertificateAuthorityService when the ExternalAccountKey is created", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. Resource name. projects/{project}/locations/{location}/externalAccountKeys/{key_id}", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Public Certificate Authority 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/pubsub.v1beta2.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/pubsub.v1beta2.json new file mode 100644 index 0000000000000000000000000000000000000000..2a468efaee67b808a34766f5312401c63d8c1855 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/pubsub.v1beta2.json @@ -0,0 +1,1196 @@ +{ +"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/pubsub": { +"description": "View and manage Pub/Sub topics and subscriptions" +} +} +} +}, +"basePath": "", +"baseUrl": "https://pubsub.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Pubsub", +"description": "Provides reliable, many-to-many, asynchronous messaging between applications. ", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/pubsub/docs", +"endpoints": [ +{ +"description": "Regional Endpoint", +"endpointUrl": "https://pubsub.me-central2.rep.googleapis.com/", +"location": "me-central2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://pubsub.europe-west3.rep.googleapis.com/", +"location": "europe-west3" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://pubsub.europe-west8.rep.googleapis.com/", +"location": "europe-west8" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://pubsub.europe-west9.rep.googleapis.com/", +"location": "europe-west9" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://pubsub.us-central1.rep.googleapis.com/", +"location": "us-central1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://pubsub.us-central2.rep.googleapis.com/", +"location": "us-central2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://pubsub.us-east1.rep.googleapis.com/", +"location": "us-east1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://pubsub.us-east4.rep.googleapis.com/", +"location": "us-east4" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://pubsub.us-east5.rep.googleapis.com/", +"location": "us-east5" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://pubsub.us-south1.rep.googleapis.com/", +"location": "us-south1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://pubsub.us-west1.rep.googleapis.com/", +"location": "us-west1" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://pubsub.us-west2.rep.googleapis.com/", +"location": "us-west2" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://pubsub.us-west3.rep.googleapis.com/", +"location": "us-west3" +}, +{ +"description": "Regional Endpoint", +"endpointUrl": "https://pubsub.us-west4.rep.googleapis.com/", +"location": "us-west4" +} +], +"icons": { +"x16": "http://www.google.com/images/icons/product/search-16.gif", +"x32": "http://www.google.com/images/icons/product/search-32.gif" +}, +"id": "pubsub:v1beta2", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://pubsub.mtls.googleapis.com/", +"name": "pubsub", +"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": { +"subscriptions": { +"methods": { +"acknowledge": { +"description": "Acknowledges the messages associated with the `ack_ids` in the `AcknowledgeRequest`. The Pub/Sub system can remove the relevant messages from the subscription. Acknowledging a message whose ack deadline has expired may succeed, but such a message may be redelivered later. Acknowledging a message more than once will not result in an error.", +"flatPath": "v1beta2/projects/{projectsId}/subscriptions/{subscriptionsId}:acknowledge", +"httpMethod": "POST", +"id": "pubsub.projects.subscriptions.acknowledge", +"parameterOrder": [ +"subscription" +], +"parameters": { +"subscription": { +"description": "The subscription whose message is being acknowledged.", +"location": "path", +"pattern": "^projects/[^/]+/subscriptions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+subscription}:acknowledge", +"request": { +"$ref": "AcknowledgeRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/pubsub" +] +}, +"create": { +"description": "Creates a subscription to a given topic. If the subscription already exists, returns `ALREADY_EXISTS`. If the corresponding topic doesn't exist, returns `NOT_FOUND`. If the name is not provided in the request, the server will assign a random name for this subscription on the same project as the topic. Note that for REST API requests, you must specify a name.", +"flatPath": "v1beta2/projects/{projectsId}/subscriptions/{subscriptionsId}", +"httpMethod": "PUT", +"id": "pubsub.projects.subscriptions.create", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the subscription. It must have the format `\"projects/{project}/subscriptions/{subscription}\"`. `{subscription}` must start with a letter, and contain only letters (`[A-Za-z]`), numbers (`[0-9]`), dashes (`-`), underscores (`_`), periods (`.`), tildes (`~`), plus (`+`) or percent signs (`%`). It must be between 3 and 255 characters in length, and it must not start with `\"goog\"`.", +"location": "path", +"pattern": "^projects/[^/]+/subscriptions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"request": { +"$ref": "Subscription" +}, +"response": { +"$ref": "Subscription" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/pubsub" +] +}, +"delete": { +"description": "Deletes an existing subscription. All pending messages in the subscription are immediately dropped. Calls to `Pull` after deletion will return `NOT_FOUND`. After a subscription is deleted, a new one may be created with the same name, but the new one has no association with the old subscription, or its topic unless the same topic is specified.", +"flatPath": "v1beta2/projects/{projectsId}/subscriptions/{subscriptionsId}", +"httpMethod": "DELETE", +"id": "pubsub.projects.subscriptions.delete", +"parameterOrder": [ +"subscription" +], +"parameters": { +"subscription": { +"description": "The subscription to delete.", +"location": "path", +"pattern": "^projects/[^/]+/subscriptions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+subscription}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/pubsub" +] +}, +"get": { +"description": "Gets the configuration details of a subscription.", +"flatPath": "v1beta2/projects/{projectsId}/subscriptions/{subscriptionsId}", +"httpMethod": "GET", +"id": "pubsub.projects.subscriptions.get", +"parameterOrder": [ +"subscription" +], +"parameters": { +"subscription": { +"description": "The name of the subscription to get.", +"location": "path", +"pattern": "^projects/[^/]+/subscriptions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+subscription}", +"response": { +"$ref": "Subscription" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/pubsub" +] +}, +"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": "v1beta2/projects/{projectsId}/subscriptions/{subscriptionsId}:getIamPolicy", +"httpMethod": "GET", +"id": "pubsub.projects.subscriptions.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/[^/]+/subscriptions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/pubsub" +] +}, +"list": { +"description": "Lists matching subscriptions.", +"flatPath": "v1beta2/projects/{projectsId}/subscriptions", +"httpMethod": "GET", +"id": "pubsub.projects.subscriptions.list", +"parameterOrder": [ +"project" +], +"parameters": { +"pageSize": { +"description": "Maximum number of subscriptions to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last `ListSubscriptionsResponse`; indicates that this is a continuation of a prior `ListSubscriptions` call, and that the system should return the next page of data.", +"location": "query", +"type": "string" +}, +"project": { +"description": "The name of the cloud project that subscriptions belong to.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+project}/subscriptions", +"response": { +"$ref": "ListSubscriptionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/pubsub" +] +}, +"modifyAckDeadline": { +"description": "Modifies the ack deadline for a specific message. This method is useful to indicate that more time is needed to process a message by the subscriber, or to make the message available for redelivery if the processing was interrupted. Note that this does not modify the subscription-level `ackDeadlineSeconds` used for subsequent messages.", +"flatPath": "v1beta2/projects/{projectsId}/subscriptions/{subscriptionsId}:modifyAckDeadline", +"httpMethod": "POST", +"id": "pubsub.projects.subscriptions.modifyAckDeadline", +"parameterOrder": [ +"subscription" +], +"parameters": { +"subscription": { +"description": "The name of the subscription.", +"location": "path", +"pattern": "^projects/[^/]+/subscriptions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+subscription}:modifyAckDeadline", +"request": { +"$ref": "ModifyAckDeadlineRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/pubsub" +] +}, +"modifyPushConfig": { +"description": "Modifies the `PushConfig` for a specified subscription. This may be used to change a push subscription to a pull one (signified by an empty `PushConfig`) or vice versa, or change the endpoint URL and other attributes of a push subscription. Messages will accumulate for delivery continuously through the call regardless of changes to the `PushConfig`.", +"flatPath": "v1beta2/projects/{projectsId}/subscriptions/{subscriptionsId}:modifyPushConfig", +"httpMethod": "POST", +"id": "pubsub.projects.subscriptions.modifyPushConfig", +"parameterOrder": [ +"subscription" +], +"parameters": { +"subscription": { +"description": "The name of the subscription.", +"location": "path", +"pattern": "^projects/[^/]+/subscriptions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+subscription}:modifyPushConfig", +"request": { +"$ref": "ModifyPushConfigRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/pubsub" +] +}, +"pull": { +"description": "Pulls messages from the server. Returns an empty list if there are no messages available in the backlog. The server may return `UNAVAILABLE` if there are too many concurrent pull requests pending for the given subscription.", +"flatPath": "v1beta2/projects/{projectsId}/subscriptions/{subscriptionsId}:pull", +"httpMethod": "POST", +"id": "pubsub.projects.subscriptions.pull", +"parameterOrder": [ +"subscription" +], +"parameters": { +"subscription": { +"description": "The subscription from which messages should be pulled.", +"location": "path", +"pattern": "^projects/[^/]+/subscriptions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+subscription}:pull", +"request": { +"$ref": "PullRequest" +}, +"response": { +"$ref": "PullResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/pubsub" +] +}, +"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": "v1beta2/projects/{projectsId}/subscriptions/{subscriptionsId}:setIamPolicy", +"httpMethod": "POST", +"id": "pubsub.projects.subscriptions.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/[^/]+/subscriptions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/pubsub" +] +}, +"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": "v1beta2/projects/{projectsId}/subscriptions/{subscriptionsId}:testIamPermissions", +"httpMethod": "POST", +"id": "pubsub.projects.subscriptions.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/[^/]+/subscriptions/[^/]+$", +"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/pubsub" +] +} +} +}, +"topics": { +"methods": { +"create": { +"description": "Creates the given topic with the given name.", +"flatPath": "v1beta2/projects/{projectsId}/topics/{topicsId}", +"httpMethod": "PUT", +"id": "pubsub.projects.topics.create", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the topic. It must have the format `\"projects/{project}/topics/{topic}\"`. `{topic}` must start with a letter, and contain only letters (`[A-Za-z]`), numbers (`[0-9]`), dashes (`-`), underscores (`_`), periods (`.`), tildes (`~`), plus (`+`) or percent signs (`%`). It must be between 3 and 255 characters in length, and it must not start with `\"goog\"`.", +"location": "path", +"pattern": "^projects/[^/]+/topics/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+name}", +"request": { +"$ref": "Topic" +}, +"response": { +"$ref": "Topic" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/pubsub" +] +}, +"delete": { +"description": "Deletes the topic with the given name. Returns `NOT_FOUND` if the topic does not exist. After a topic is deleted, a new topic may be created with the same name; this is an entirely new topic with none of the old configuration or subscriptions. Existing subscriptions to this topic are not deleted, but their `topic` field is set to `_deleted-topic_`.", +"flatPath": "v1beta2/projects/{projectsId}/topics/{topicsId}", +"httpMethod": "DELETE", +"id": "pubsub.projects.topics.delete", +"parameterOrder": [ +"topic" +], +"parameters": { +"topic": { +"description": "Name of the topic to delete.", +"location": "path", +"pattern": "^projects/[^/]+/topics/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+topic}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/pubsub" +] +}, +"get": { +"description": "Gets the configuration of a topic.", +"flatPath": "v1beta2/projects/{projectsId}/topics/{topicsId}", +"httpMethod": "GET", +"id": "pubsub.projects.topics.get", +"parameterOrder": [ +"topic" +], +"parameters": { +"topic": { +"description": "The name of the topic to get.", +"location": "path", +"pattern": "^projects/[^/]+/topics/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+topic}", +"response": { +"$ref": "Topic" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/pubsub" +] +}, +"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": "v1beta2/projects/{projectsId}/topics/{topicsId}:getIamPolicy", +"httpMethod": "GET", +"id": "pubsub.projects.topics.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/[^/]+/topics/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/pubsub" +] +}, +"list": { +"description": "Lists matching topics.", +"flatPath": "v1beta2/projects/{projectsId}/topics", +"httpMethod": "GET", +"id": "pubsub.projects.topics.list", +"parameterOrder": [ +"project" +], +"parameters": { +"pageSize": { +"description": "Maximum number of topics to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last `ListTopicsResponse`; indicates that this is a continuation of a prior `ListTopics` call, and that the system should return the next page of data.", +"location": "query", +"type": "string" +}, +"project": { +"description": "The name of the cloud project that topics belong to.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+project}/topics", +"response": { +"$ref": "ListTopicsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/pubsub" +] +}, +"publish": { +"description": "Adds one or more messages to the topic. Returns `NOT_FOUND` if the topic does not exist. The message payload must not be empty; it must contain either a non-empty data field, or at least one attribute.", +"flatPath": "v1beta2/projects/{projectsId}/topics/{topicsId}:publish", +"httpMethod": "POST", +"id": "pubsub.projects.topics.publish", +"parameterOrder": [ +"topic" +], +"parameters": { +"topic": { +"description": "The messages in the request will be published on this topic.", +"location": "path", +"pattern": "^projects/[^/]+/topics/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+topic}:publish", +"request": { +"$ref": "PublishRequest" +}, +"response": { +"$ref": "PublishResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/pubsub" +] +}, +"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": "v1beta2/projects/{projectsId}/topics/{topicsId}:setIamPolicy", +"httpMethod": "POST", +"id": "pubsub.projects.topics.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/[^/]+/topics/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/pubsub" +] +}, +"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": "v1beta2/projects/{projectsId}/topics/{topicsId}:testIamPermissions", +"httpMethod": "POST", +"id": "pubsub.projects.topics.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/[^/]+/topics/[^/]+$", +"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/pubsub" +] +} +}, +"resources": { +"subscriptions": { +"methods": { +"list": { +"description": "Lists the name of the subscriptions for this topic.", +"flatPath": "v1beta2/projects/{projectsId}/topics/{topicsId}/subscriptions", +"httpMethod": "GET", +"id": "pubsub.projects.topics.subscriptions.list", +"parameterOrder": [ +"topic" +], +"parameters": { +"pageSize": { +"description": "Maximum number of subscription names to return.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The value returned by the last `ListTopicSubscriptionsResponse`; indicates that this is a continuation of a prior `ListTopicSubscriptions` call, and that the system should return the next page of data.", +"location": "query", +"type": "string" +}, +"topic": { +"description": "The name of the topic that subscriptions are attached to.", +"location": "path", +"pattern": "^projects/[^/]+/topics/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta2/{+topic}/subscriptions", +"response": { +"$ref": "ListTopicSubscriptionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/pubsub" +] +} +} +} +} +} +} +} +}, +"revision": "20240730", +"rootUrl": "https://pubsub.googleapis.com/", +"schemas": { +"AcknowledgeRequest": { +"description": "Request for the Acknowledge method.", +"id": "AcknowledgeRequest", +"properties": { +"ackIds": { +"description": "The acknowledgment ID for the messages being acknowledged that was returned by the Pub/Sub system in the `Pull` response. Must not be empty.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"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" +}, +"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" +}, +"ListSubscriptionsResponse": { +"description": "Response for the `ListSubscriptions` method.", +"id": "ListSubscriptionsResponse", +"properties": { +"nextPageToken": { +"description": "If not empty, indicates that there may be more subscriptions that match the request; this value should be passed in a new `ListSubscriptionsRequest` to get more subscriptions.", +"type": "string" +}, +"subscriptions": { +"description": "The subscriptions that match the request.", +"items": { +"$ref": "Subscription" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListTopicSubscriptionsResponse": { +"description": "Response for the `ListTopicSubscriptions` method.", +"id": "ListTopicSubscriptionsResponse", +"properties": { +"nextPageToken": { +"description": "If not empty, indicates that there may be more subscriptions that match the request; this value should be passed in a new `ListTopicSubscriptionsRequest` to get more subscriptions.", +"type": "string" +}, +"subscriptions": { +"description": "The names of the subscriptions that match the request.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListTopicsResponse": { +"description": "Response for the `ListTopics` method.", +"id": "ListTopicsResponse", +"properties": { +"nextPageToken": { +"description": "If not empty, indicates that there may be more topics that match the request; this value should be passed in a new `ListTopicsRequest`.", +"type": "string" +}, +"topics": { +"description": "The resulting topics.", +"items": { +"$ref": "Topic" +}, +"type": "array" +} +}, +"type": "object" +}, +"ModifyAckDeadlineRequest": { +"description": "Request for the ModifyAckDeadline method.", +"id": "ModifyAckDeadlineRequest", +"properties": { +"ackDeadlineSeconds": { +"description": "The new ack deadline with respect to the time this request was sent to the Pub/Sub system. Must be >= 0. For example, if the value is 10, the new ack deadline will expire 10 seconds after the `ModifyAckDeadline` call was made. Specifying zero may immediately make the message available for another pull request.", +"format": "int32", +"type": "integer" +}, +"ackId": { +"description": "The acknowledgment ID. Either this or ack_ids must be populated, but not both.", +"type": "string" +}, +"ackIds": { +"description": "List of acknowledgment IDs.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ModifyPushConfigRequest": { +"description": "Request for the ModifyPushConfig method.", +"id": "ModifyPushConfigRequest", +"properties": { +"pushConfig": { +"$ref": "PushConfig", +"description": "The push configuration for future deliveries. An empty `pushConfig` indicates that the Pub/Sub system should stop pushing messages from the given subscription and allow messages to be pulled and acknowledged - effectively pausing the subscription if `Pull` is not called." +} +}, +"type": "object" +}, +"OidcToken": { +"description": "Contains information needed for generating an [OpenID Connect token](https://developers.google.com/identity/protocols/OpenIDConnect).", +"id": "OidcToken", +"properties": { +"audience": { +"description": "Audience to be used when generating OIDC token. The audience claim identifies the recipients that the JWT is intended for. The audience value is a single case-sensitive string. Having multiple values (array) for the audience field is not supported. More info about the OIDC JWT token audience here: https://tools.ietf.org/html/rfc7519#section-4.1.3 Note: if not specified, the Push endpoint URL will be used.", +"type": "string" +}, +"serviceAccountEmail": { +"description": "[Service account email](https://cloud.google.com/iam/docs/service-accounts) to be used for generating the OIDC token. The caller (for CreateSubscription, UpdateSubscription, and ModifyPushConfig RPCs) must have the iam.serviceAccounts.actAs permission for the service account.", +"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" +}, +"PublishRequest": { +"description": "Request for the Publish method.", +"id": "PublishRequest", +"properties": { +"messages": { +"description": "The messages to publish.", +"items": { +"$ref": "PubsubMessage" +}, +"type": "array" +} +}, +"type": "object" +}, +"PublishResponse": { +"description": "Response for the `Publish` method.", +"id": "PublishResponse", +"properties": { +"messageIds": { +"description": "The server-assigned ID of each published message, in the same order as the messages in the request. IDs are guaranteed to be unique within the topic.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"PubsubMessage": { +"description": "A message data and its attributes. The message payload must not be empty; it must contain either a non-empty data field, or at least one attribute.", +"id": "PubsubMessage", +"properties": { +"attributes": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional attributes for this message.", +"type": "object" +}, +"data": { +"description": "The message payload. For JSON requests, the value of this field must be [base64-encoded](https://tools.ietf.org/html/rfc4648).", +"format": "byte", +"type": "string" +}, +"messageId": { +"description": "ID of this message, assigned by the server when the message is published. Guaranteed to be unique within the topic. This value may be read by a subscriber that receives a `PubsubMessage` via a `Pull` call or a push delivery. It must not be populated by the publisher in a `Publish` call.", +"type": "string" +}, +"publishTime": { +"description": "The time at which the message was published, populated by the server when it receives the `Publish` call. It must not be populated by the publisher in a `Publish` call.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"PullRequest": { +"description": "Request for the `Pull` method.", +"id": "PullRequest", +"properties": { +"maxMessages": { +"description": "The maximum number of messages returned for this request. The Pub/Sub system may return fewer than the number specified.", +"format": "int32", +"type": "integer" +}, +"returnImmediately": { +"deprecated": true, +"description": "Optional. If this is specified as true the system will respond immediately even if it is not able to return a message in the `Pull` response. Otherwise the system is allowed to wait until at least one message is available rather than returning no messages. The client may cancel the request if it does not wish to wait any longer for the response. Warning: setting this field to `true` is discouraged because it adversely impacts the performance of `Pull` operations. We recommend that users do not set this field.", +"type": "boolean" +} +}, +"type": "object" +}, +"PullResponse": { +"description": "Response for the `Pull` method.", +"id": "PullResponse", +"properties": { +"receivedMessages": { +"description": "Received Pub/Sub messages. The Pub/Sub system will return zero messages if there are no more available in the backlog. The Pub/Sub system may return fewer than the `maxMessages` requested even if there are more messages available in the backlog.", +"items": { +"$ref": "ReceivedMessage" +}, +"type": "array" +} +}, +"type": "object" +}, +"PushConfig": { +"description": "Configuration for a push delivery endpoint.", +"id": "PushConfig", +"properties": { +"attributes": { +"additionalProperties": { +"type": "string" +}, +"description": "Endpoint configuration attributes. Every endpoint has a set of API supported attributes that can be used to control different aspects of the message delivery. The currently supported attribute is `x-goog-version`, which you can use to change the format of the push message. This attribute indicates the version of the data expected by the endpoint. This controls the shape of the envelope (i.e. its fields and metadata). The endpoint version is based on the version of the Pub/Sub API. If not present during the `CreateSubscription` call, it will default to the version of the API used to make such call. If not present during a `ModifyPushConfig` call, its value will not be changed. `GetSubscription` calls will always return a valid version, even if the subscription was created without this attribute. The possible values for this attribute are: * `v1beta1`: uses the push format defined in the v1beta1 Pub/Sub API. * `v1` or `v1beta2`: uses the push format defined in the v1 Pub/Sub API.", +"type": "object" +}, +"oidcToken": { +"$ref": "OidcToken", +"description": "If specified, Pub/Sub will generate and attach an OIDC JWT token as an `Authorization` header in the HTTP request for every pushed message." +}, +"pushEndpoint": { +"description": "A URL locating the endpoint to which messages should be pushed. For example, a Webhook endpoint might use \"https://example.com/push\".", +"type": "string" +} +}, +"type": "object" +}, +"ReceivedMessage": { +"description": "A message and its corresponding acknowledgment ID.", +"id": "ReceivedMessage", +"properties": { +"ackId": { +"description": "This ID can be used to acknowledge the received message.", +"type": "string" +}, +"message": { +"$ref": "PubsubMessage", +"description": "The message." +} +}, +"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" +}, +"Subscription": { +"description": "A subscription resource.", +"id": "Subscription", +"properties": { +"ackDeadlineSeconds": { +"description": "This value is the maximum time after a subscriber receives a message before the subscriber should acknowledge the message. After message delivery but before the ack deadline expires and before the message is acknowledged, it is an outstanding message and will not be delivered again during that time (on a best-effort basis). For pull subscriptions, this value is used as the initial value for the ack deadline. To override this value for a given message, call `ModifyAckDeadline` with the corresponding `ack_id` if using pull. The maximum custom deadline you can specify is 600 seconds (10 minutes). For push delivery, this value is also used to set the request timeout for the call to the push endpoint. If the subscriber never acknowledges the message, the Pub/Sub system will eventually redeliver the message. If this parameter is 0, a default value of 10 seconds is used.", +"format": "int32", +"type": "integer" +}, +"name": { +"description": "The name of the subscription. It must have the format `\"projects/{project}/subscriptions/{subscription}\"`. `{subscription}` must start with a letter, and contain only letters (`[A-Za-z]`), numbers (`[0-9]`), dashes (`-`), underscores (`_`), periods (`.`), tildes (`~`), plus (`+`) or percent signs (`%`). It must be between 3 and 255 characters in length, and it must not start with `\"goog\"`.", +"type": "string" +}, +"pushConfig": { +"$ref": "PushConfig", +"description": "If push delivery is used with this subscription, this field is used to configure it. An empty `pushConfig` signifies that the subscriber will pull and ack messages using API methods." +}, +"topic": { +"description": "The name of the topic from which this subscription is receiving messages. The value of this field will be `_deleted-topic_` if the topic has been deleted.", +"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" +}, +"Topic": { +"description": "A topic resource.", +"id": "Topic", +"properties": { +"name": { +"description": "The name of the topic. It must have the format `\"projects/{project}/topics/{topic}\"`. `{topic}` must start with a letter, and contain only letters (`[A-Za-z]`), numbers (`[0-9]`), dashes (`-`), underscores (`_`), periods (`.`), tildes (`~`), plus (`+`) or percent signs (`%`). It must be between 3 and 255 characters in length, and it must not start with `\"goog\"`.", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Cloud Pub/Sub API", +"version": "v1beta2" +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/readerrevenuesubscriptionlinking.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/readerrevenuesubscriptionlinking.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..adc8c7324455abde455f25e68dfd697a0ca525c3 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/readerrevenuesubscriptionlinking.v1.json @@ -0,0 +1,285 @@ +{ +"basePath": "", +"baseUrl": "https://readerrevenuesubscriptionlinking.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Subscription Linking", +"description": "readerrevenuesubscriptionlinking.googleapis.com API.", +"discoveryVersion": "v1", +"documentationLink": "https://developers.google.com/news/subscribe/subscription-linking/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": "readerrevenuesubscriptionlinking:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://readerrevenuesubscriptionlinking.mtls.googleapis.com/", +"name": "readerrevenuesubscriptionlinking", +"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": { +"publications": { +"resources": { +"readers": { +"methods": { +"delete": { +"description": "Removes a publication reader, effectively severing the association with a Google user. If `force` is set to true, any entitlements for this reader will also be deleted. (Otherwise, the request will only work if the reader has no entitlements.) - If the reader does not exist, return NOT_FOUND. - Return FAILED_PRECONDITION if the force field is false (or unset) and entitlements are present.", +"flatPath": "v1/publications/{publicationsId}/readers/{readersId}", +"httpMethod": "DELETE", +"id": "readerrevenuesubscriptionlinking.publications.readers.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"force": { +"description": "If set to true, any entitlements under the reader will also be purged.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Required. The resource name of the reader. Format: publications/{publication_id}/readers/{ppid}", +"location": "path", +"pattern": "^publications/[^/]+/readers/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "DeleteReaderResponse" +} +}, +"get": { +"description": "Gets a reader of a publication. Returns NOT_FOUND if the reader does not exist.", +"flatPath": "v1/publications/{publicationsId}/readers/{readersId}", +"httpMethod": "GET", +"id": "readerrevenuesubscriptionlinking.publications.readers.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the reader. Format: publications/{publication_id}/readers/{ppid}", +"location": "path", +"pattern": "^publications/[^/]+/readers/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Reader" +} +}, +"getEntitlements": { +"description": "Gets the reader entitlements for a publication reader. - Returns PERMISSION_DENIED if the caller does not have access. - Returns NOT_FOUND if the reader does not exist.", +"flatPath": "v1/publications/{publicationsId}/readers/{readersId}/entitlements", +"httpMethod": "GET", +"id": "readerrevenuesubscriptionlinking.publications.readers.getEntitlements", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the reader entitlements to retrieve. Format: publications/{publication_id}/readers/{reader_id}/entitlements", +"location": "path", +"pattern": "^publications/[^/]+/readers/[^/]+/entitlements$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "ReaderEntitlements" +} +}, +"updateEntitlements": { +"description": "Updates the reader entitlements for a publication reader. The entire reader entitlements will be overwritten by the new reader entitlements in the payload, like a PUT. - Returns PERMISSION_DENIED if the caller does not have access. - Returns NOT_FOUND if the reader does not exist.", +"flatPath": "v1/publications/{publicationsId}/readers/{readersId}/entitlements", +"httpMethod": "PATCH", +"id": "readerrevenuesubscriptionlinking.publications.readers.updateEntitlements", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. The resource name of the singleton.", +"location": "path", +"pattern": "^publications/[^/]+/readers/[^/]+/entitlements$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. The list of fields to update. Defaults to all fields.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+name}", +"request": { +"$ref": "ReaderEntitlements" +}, +"response": { +"$ref": "ReaderEntitlements" +} +} +} +} +} +} +}, +"revision": "20241015", +"rootUrl": "https://readerrevenuesubscriptionlinking.googleapis.com/", +"schemas": { +"DeleteReaderResponse": { +"description": "Response to deleting a reader of a publication.", +"id": "DeleteReaderResponse", +"properties": {}, +"type": "object" +}, +"Entitlement": { +"description": "A single entitlement for a publication reader", +"id": "Entitlement", +"properties": { +"detail": { +"description": "The detail field can carry a description of the SKU that corresponds to what the user has been granted access to. This description, which is opaque to Google, can be displayed in the Google user subscription console for users who linked the subscription to a Google Account. Max 80 character limit.", +"type": "string" +}, +"expireTime": { +"description": "Required. Expiration time of the entitlement. Entitlements that have expired over 30 days will be purged. The max expire_time is 398 days from now().", +"format": "google-datetime", +"type": "string" +}, +"productId": { +"description": "Required. The publication's product ID that the user has access to. This is the same product ID as can be found in Schema.org markup (http://schema.org/productID). E.g. \"dailybugle.com:basic\"", +"type": "string" +}, +"subscriptionToken": { +"description": "A source-specific subscription token. This is an opaque string that the publisher provides to Google. This token is opaque and has no meaning to Google.", +"type": "string" +} +}, +"type": "object" +}, +"Reader": { +"description": "A reader of a publication.", +"id": "Reader", +"properties": { +"createTime": { +"description": "Output only. Time the publication reader was created and associated with a Google user.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. The resource name of the reader. The last part of ppid in the resource name is the publisher provided id.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ReaderEntitlements": { +"description": "A singleton containing all of a reader's entitlements for a publication.", +"id": "ReaderEntitlements", +"properties": { +"entitlements": { +"description": "All of the entitlements for a publication reader.", +"items": { +"$ref": "Entitlement" +}, +"type": "array" +}, +"name": { +"description": "Output only. The resource name of the singleton.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Reader Revenue Subscription Linking 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/realtimebidding.v1alpha.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/realtimebidding.v1alpha.json new file mode 100644 index 0000000000000000000000000000000000000000..119a28c8afaaea8544666b45377abefce852a82f --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/realtimebidding.v1alpha.json @@ -0,0 +1,319 @@ +{ + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/realtime-bidding": { + "description": "See, create, edit, and delete your Authorized Buyers and Open Bidding account entities" + } + } + } + }, + "basePath": "", + "baseUrl": "https://realtimebidding.googleapis.com/", + "batchPath": "batch", + "canonicalName": "Real-time Bidding", + "description": "Allows external bidders to manage their RTB integration with Google. This includes managing bidder endpoints, QPS quotas, configuring what ad inventory to receive via pretargeting, submitting creatives for verification, and accessing creative metadata such as approval status.", + "discoveryVersion": "v1", + "documentationLink": "https://developers.google.com/authorized-buyers/apis/realtimebidding/reference/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": "realtimebidding:v1alpha", + "kind": "discovery#restDescription", + "mtlsRootUrl": "https://realtimebidding.mtls.googleapis.com/", + "name": "realtimebidding", + "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": { + "bidders": { + "resources": { + "biddingFunctions": { + "methods": { + "activate": { + "description": "Activates an existing bidding function. An activated function is available for invocation for the server-side TURTLEDOVE simulations.", + "flatPath": "v1alpha/bidders/{biddersId}/biddingFunctions/{biddingFunctionsId}:activate", + "httpMethod": "POST", + "id": "realtimebidding.bidders.biddingFunctions.activate", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the bidding function to activate. Format: `bidders/{bidder_account_id}/biddingFunction/{bidding_function_name}`", + "location": "path", + "pattern": "^bidders/[^/]+/biddingFunctions/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+name}:activate", + "request": { + "$ref": "ActivateBiddingFunctionRequest" + }, + "response": { + "$ref": "BiddingFunction" + }, + "scopes": [ + "https://www.googleapis.com/auth/realtime-bidding" + ] + }, + "archive": { + "description": "Archives an existing bidding function. An archived function will not be available for function invocation for the server-side TURTLEDOVE simulations unless it is activated.", + "flatPath": "v1alpha/bidders/{biddersId}/biddingFunctions/{biddingFunctionsId}:archive", + "httpMethod": "POST", + "id": "realtimebidding.bidders.biddingFunctions.archive", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the bidding function to archive. Format: `bidders/{bidder_account_id}/biddingFunction/{bidding_function_name}`", + "location": "path", + "pattern": "^bidders/[^/]+/biddingFunctions/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+name}:archive", + "request": { + "$ref": "ArchiveBiddingFunctionRequest" + }, + "response": { + "$ref": "BiddingFunction" + }, + "scopes": [ + "https://www.googleapis.com/auth/realtime-bidding" + ] + }, + "create": { + "description": "Creates a new bidding function.", + "flatPath": "v1alpha/bidders/{biddersId}/biddingFunctions", + "httpMethod": "POST", + "id": "realtimebidding.bidders.biddingFunctions.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The name of the bidder for which to create the bidding function. Format: `bidders/{bidderAccountId}`", + "location": "path", + "pattern": "^bidders/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+parent}/biddingFunctions", + "request": { + "$ref": "BiddingFunction" + }, + "response": { + "$ref": "BiddingFunction" + }, + "scopes": [ + "https://www.googleapis.com/auth/realtime-bidding" + ] + }, + "list": { + "description": "Lists the bidding functions that a bidder currently has registered.", + "flatPath": "v1alpha/bidders/{biddersId}/biddingFunctions", + "httpMethod": "GET", + "id": "realtimebidding.bidders.biddingFunctions.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "The maximum number of bidding functions to return.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A token identifying a page of results the server should return. This value is received from a previous `ListBiddingFunctions` call in ListBiddingFunctionsResponse.nextPageToken.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Name of the bidder whose bidding functions will be listed. Format: `bidders/{bidder_account_id}`", + "location": "path", + "pattern": "^bidders/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+parent}/biddingFunctions", + "response": { + "$ref": "ListBiddingFunctionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/realtime-bidding" + ] + } + } + } + } + } + }, + "revision": "20230605", + "rootUrl": "https://realtimebidding.googleapis.com/", + "schemas": { + "ActivateBiddingFunctionRequest": { + "description": "The request to activate a bidding function.", + "id": "ActivateBiddingFunctionRequest", + "properties": {}, + "type": "object" + }, + "ArchiveBiddingFunctionRequest": { + "description": "A request to archive a bidding function.", + "id": "ArchiveBiddingFunctionRequest", + "properties": {}, + "type": "object" + }, + "BiddingFunction": { + "description": "The bidding function to be executed as part of the TURTLEDOVE simulation experiment bidding flow.", + "id": "BiddingFunction", + "properties": { + "biddingFunction": { + "description": "The raw Javascript source code of the bidding function.", + "type": "string" + }, + "name": { + "description": "The name of the bidding function that must follow the pattern: `bidders/{bidder_account_id}/biddingFunctions/{bidding_function_name}`.", + "type": "string" + }, + "state": { + "description": "Output only. The state of the bidding function.", + "enum": [ + "STATE_UNSPECIFIED", + "ACTIVE", + "ARCHIVED" + ], + "enumDescriptions": [ + "Default value that should not be used.", + "An active function. Only `ACTIVE` bidding functions or ad scoring functions are made available for the server-side TURTLEDOVE simulations. Every account is limited to 10 active bidding functions per account.", + "A function that is no longer made available for invocation in a simulation and instead archived. An archived function can later be made active by activating the function through `ActivateBiddingFunction`." + ], + "readOnly": true, + "type": "string" + }, + "type": { + "description": "The type of the bidding function to be created.", + "enum": [ + "FUNCTION_TYPE_UNSPECIFIED", + "TURTLEDOVE_SIMULATION_BIDDING_FUNCTION", + "FLEDGE_BIDDING_FUNCTION" + ], + "enumDescriptions": [ + "Default value that should not be used.", + "Bidding function that can be used by Authorized Buyers in the original TURTLEDOVE simulation. See documentation on the TURTLEDOVE simulation at https://developers.google.com/authorized-buyers/rtb/turtledove. The function takes in a Javascript object, `inputs`, that contains the following named fields: `openrtbContextualBidRequest` OR `googleContextualBidRequest`, `customContextualSignal`, `interestBasedBidData`, `interestGroupData`, and returns the bid price CPM. Example: ``` /* Returns a bid price CPM. * * @param {Object} inputs an object with the * following named fields: * - openrtbContextualBidRequest * OR googleContextualBidRequest * - customContextualSignal * - interestBasedBidData * - interestGroupData */ function biddingFunction(inputs) { ... return inputs.interestBasedBidData.cpm * inputs.customContextualSignals.placementMultiplier; } ```", + "Buyer's interest group bidding function that can be used by Authorized Buyers in the FLEDGE simulation. See the FLEDGE explainer at https://github.com/WICG/turtledove/blob/main/FLEDGE.md#32-on-device-bidding. The function takes one argument, `inputs`, that contains an object with the following named fields of the form: ``` { \"interestGroup\" : { \"ad\" : [ \"buyerCreativeId\": \"...\", # Ad creative ID \"adData\": { # JSON object } ], \"userBiddingSignals\": { . # JSON object } }, \"auctionSignals\": { \"url\": # string, \"slotVisibility\": # enum value, \"slotDimensions\": [ { \"height\": # number value \"width\": # number value } ] }, \"perBuyerSignals\": { # JSON object }, \"trustedBiddingSignals\": { # JSON object }, \"browserSignals\": { \"recent_impression_ages_secs\": [ # Array of integers. Not yet populated. ] } } ``` `interestGroup`: An object containing a list of `ad` objects, which contain the following named fields: - `buyerCreativeId`: The ad creative ID string. - `adData`: Any JSON value of the bidder's choosing to contain data associated with an ad provided in `BidResponse.ad.adslot.ad_data` for the Google Authorized Buyers protocol and `BidResponse.seatbid.bid.ext.ad_data` for the OpenRTB protocol. - `userBiddingSignals`: Any JSON value of the bidder's choosing containing interest group data that corresponds to user_bidding_signals (as in FLEDGE). This field will be populated from `BidResponse.interest_group_map.user_bidding_signals` for Google Authorized Buyers protocol and `BidResponse.ext.interest_group_map.user_bidding_signals` for the OpenRTB protocol. `auctionSignals`: Contains data from the seller. It corresponds to the auction signals data described in the FLEDGE proposal. It is an object containing the following named fields: - `url`: The string URL of the page with parameters removed. - `slotVisibility`: Enum of one of the following potential values: - NO_DETECTION = 0 - ABOVE_THE_FOLD = 1 - BELOW_THE_FOLD = 2 - `slotDimensions`: A list of objects containing containing width and height pairs in `width` and `height` fields, respectively, from `BidRequest.adslot.width` and `BidRequest.adslot.height` for the Google Authorized Buyers protocol and `BidRequest.imp.banner.format.w` and `BidRequest.imp.banner.format.h` for the OpenRTB protocol. `perBuyerSignals`: The contextual signals from the bid response that are populated in `BidResponse.interest_group_bidding.interest_group_buyers.per_buyer_signals` for the Google Authorized Buyers protocol and `BidResponse.ext.interest_group_bidding.interest_group_buyers.per_buyer_signals` for the OpenRTB protocol. These signals can be of any JSON format of your choosing, however, the buyer's domain name must match between: - the interest group response in `BidResponse.interest_group_map.buyer_domain` for the Google Authorized Buyers protocol or in `BidResponse.ext.interest_group_map.buyer_domain` for the OpenRTB protocol. - the contextual response as a key to the map in `BidResponse.interest_group_bidding.interest_group_buyers` for the Google Authorized Buyers protocol or in `BidResponse.ext.interest_group_bidding.interest_group_buyers` for the OpenRTB protocol. In other words, there must be a match between the buyer domain of the contextual per_buyer_signals and the domain of an interest group. `trustedBiddingSignals`: The trusted bidding signals that corresponds to the trusted_bidding_signals in the FLEDGE proposal. It is provided in the interest group response as `BidResponse.interest_group_map.user_bidding_signals` for the Google Authorized Buyers protocol and `BidResponse.ext.interest_group_map.user_bidding_signals` for the OpenRTB protocol. This field can be any JSON format of your choosing. `browserSignals`: An object of simulated browser-provider signals. It is an object with a single named field, `recent_impression_ages_secs`, that contains a list of estimated number value recent impression ages in seconds for a given interest group. `recent_impression_ages_secs` is not yet populated. The function returns the string creative ID of the selected ad, the bid price CPM, and (optionally) selected product IDs. In addition, the bidding function may populate an optional debug string that may be used for remote debugging and troubleshooting of a bidder-provided bidding function. The debug string should not contain a user identifier. The maximum length of the debug string is 200 bytes. This debug string is available in `BidResponseFeedback` (https://developers.google.com/authorized-buyers/rtb/realtime-bidding-guide#bidresponsefeedback-object) and `BidFeedback` (https://developers.google.com/authorized-buyers/rtb/openrtb-guide#bidfeedback), for the Google protocol and OpenRTB protocol respectively. In addition, the debug string can be inserted into the creative HTML snippet through macro substitution if the following string is included in the snippet: \u201c%%DEBUG_STRING%%\u201d. Ensure the debug string complies with [Platform Program Policies](https://support.google.com/platformspolicy/answer/3013851). Sample Bidding Function: ``` function biddingFunction(inputs) { ... return { \"buyerCreativeId\": \"ad_creative_id_1\", \"bidPriceCpm\": 0.3, \"productIds\": [\"product_id_1\", \"product_id_2\", \"product_id_3\"] \"debugString\": \"Bidding function executed successfully!\" } } ```" + ], + "type": "string" + } + }, + "type": "object" + }, + "ListBiddingFunctionsResponse": { + "description": "A response containing a list of a bidder's bidding functions.", + "id": "ListBiddingFunctionsResponse", + "properties": { + "biddingFunctions": { + "description": "A list of a bidder's bidding functions.", + "items": { + "$ref": "BiddingFunction" + }, + "type": "array" + }, + "nextPageToken": { + "description": "A token which can be passed to a subsequent call to the `ListBiddingFunctions` method to retrieve the next page of results in ListBiddingFunctionsRequest.pageToken.", + "type": "string" + } + }, + "type": "object" + } + }, + "servicePath": "", + "title": "Real-time Bidding 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/recommendationengine.v1beta1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/recommendationengine.v1beta1.json new file mode 100644 index 0000000000000000000000000000000000000000..bce30082fd27f50760396c53aefd11377777c49d --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/recommendationengine.v1beta1.json @@ -0,0 +1,2048 @@ +{ +"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://recommendationengine.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Recommendations AI", +"description": "Note that we now highly recommend new customers to use Retail API, which incorporates the GA version of the Recommendations AI funtionalities. To enable Retail API, please visit https://console.cloud.google.com/apis/library/retail.googleapis.com. The Recommendations AI service enables customers to build end-to-end personalized recommendation systems without requiring a high level of expertise in machine learning, recommendation system, or Google Cloud.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/recommendations-ai/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": "recommendationengine:v1beta1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://recommendationengine.mtls.googleapis.com/", +"name": "recommendationengine", +"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": { +"list": { +"description": "Lists all the catalog configurations associated with the project.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/catalogs", +"httpMethod": "GET", +"id": "recommendationengine.projects.locations.catalogs.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 `ListCatalogs` call. Provide this to retrieve the subsequent page.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The account resource name with an associated location.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/catalogs", +"response": { +"$ref": "GoogleCloudRecommendationengineV1beta1ListCatalogsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the catalog configuration.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}", +"httpMethod": "PATCH", +"id": "recommendationengine.projects.locations.catalogs.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The fully qualified resource name of the catalog.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. Indicates which fields in the provided 'catalog' to update. If not set, will only update the catalog_item_level_config field. Currently only fields that can be updated are catalog_item_level_config.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "GoogleCloudRecommendationengineV1beta1Catalog" +}, +"response": { +"$ref": "GoogleCloudRecommendationengineV1beta1Catalog" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"catalogItems": { +"methods": { +"create": { +"description": "Creates a catalog item.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/catalogItems", +"httpMethod": "POST", +"id": "recommendationengine.projects.locations.catalogs.catalogItems.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent catalog resource name, such as `projects/*/locations/global/catalogs/default_catalog`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/catalogItems", +"request": { +"$ref": "GoogleCloudRecommendationengineV1beta1CatalogItem" +}, +"response": { +"$ref": "GoogleCloudRecommendationengineV1beta1CatalogItem" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a catalog item.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/catalogItems/{catalogItemsId}", +"httpMethod": "DELETE", +"id": "recommendationengine.projects.locations.catalogs.catalogItems.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Full resource name of catalog item, such as `projects/*/locations/global/catalogs/default_catalog/catalogItems/some_catalog_item_id`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/catalogItems/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a specific catalog item.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/catalogItems/{catalogItemsId}", +"httpMethod": "GET", +"id": "recommendationengine.projects.locations.catalogs.catalogItems.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Full resource name of catalog item, such as `projects/*/locations/global/catalogs/default_catalog/catalogitems/some_catalog_item_id`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/catalogItems/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "GoogleCloudRecommendationengineV1beta1CatalogItem" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"import": { +"description": "Bulk import of multiple catalog items. Request processing may be synchronous. No partial updating supported. Non-existing items will be created. Operation.response is of type ImportResponse. Note that it is possible for a subset of the items to be successfully updated.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/catalogItems:import", +"httpMethod": "POST", +"id": "recommendationengine.projects.locations.catalogs.catalogItems.import", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. `projects/1234/locations/global/catalogs/default_catalog` If no updateMask is specified, requires catalogItems.create permission. If updateMask is specified, requires catalogItems.update permission.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/catalogItems:import", +"request": { +"$ref": "GoogleCloudRecommendationengineV1beta1ImportCatalogItemsRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Gets a list of catalog items.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/catalogItems", +"httpMethod": "GET", +"id": "recommendationengine.projects.locations.catalogs.catalogItems.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Use of this field is not supported by version v1beta1.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Maximum number of results to return per page. If zero, the service will choose a reasonable default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The previous ListCatalogItemsResponse.next_page_token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent catalog resource name, such as `projects/*/locations/global/catalogs/default_catalog`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/catalogItems", +"response": { +"$ref": "GoogleCloudRecommendationengineV1beta1ListCatalogItemsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a catalog item. Partial updating is supported. Non-existing items will be created.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/catalogItems/{catalogItemsId}", +"httpMethod": "PATCH", +"id": "recommendationengine.projects.locations.catalogs.catalogItems.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Full resource name of catalog item, such as `projects/*/locations/global/catalogs/default_catalog/catalogItems/some_catalog_item_id`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/catalogItems/.*$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Optional. Indicates which fields in the provided 'item' to update. If not set, will by default update all fields.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "GoogleCloudRecommendationengineV1beta1CatalogItem" +}, +"response": { +"$ref": "GoogleCloudRecommendationengineV1beta1CatalogItem" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"eventStores": { +"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}/catalogs/{catalogsId}/eventStores/{eventStoresId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "recommendationengine.projects.locations.catalogs.eventStores.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/eventStores/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+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": "v1beta1/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/eventStores/{eventStoresId}/operations", +"httpMethod": "GET", +"id": "recommendationengine.projects.locations.catalogs.eventStores.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/[^/]+/eventStores/[^/]+$", +"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": "GoogleLongrunningListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"placements": { +"methods": { +"predict": { +"description": "Makes a recommendation prediction. If using API Key based authentication, the API Key must be registered using the PredictionApiKeyRegistry service. [Learn more](https://cloud.google.com/recommendations-ai/docs/setting-up#register-key).", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/eventStores/{eventStoresId}/placements/{placementsId}:predict", +"httpMethod": "POST", +"id": "recommendationengine.projects.locations.catalogs.eventStores.placements.predict", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/eventStores/[^/]+/placements/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}:predict", +"request": { +"$ref": "GoogleCloudRecommendationengineV1beta1PredictRequest" +}, +"response": { +"$ref": "GoogleCloudRecommendationengineV1beta1PredictResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"predictionApiKeyRegistrations": { +"methods": { +"create": { +"description": "Register an API key for use with predict method.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/eventStores/{eventStoresId}/predictionApiKeyRegistrations", +"httpMethod": "POST", +"id": "recommendationengine.projects.locations.catalogs.eventStores.predictionApiKeyRegistrations.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource path. `projects/*/locations/global/catalogs/default_catalog/eventStores/default_event_store`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/eventStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/predictionApiKeyRegistrations", +"request": { +"$ref": "GoogleCloudRecommendationengineV1beta1CreatePredictionApiKeyRegistrationRequest" +}, +"response": { +"$ref": "GoogleCloudRecommendationengineV1beta1PredictionApiKeyRegistration" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Unregister an apiKey from using for predict method.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/eventStores/{eventStoresId}/predictionApiKeyRegistrations/{predictionApiKeyRegistrationsId}", +"httpMethod": "DELETE", +"id": "recommendationengine.projects.locations.catalogs.eventStores.predictionApiKeyRegistrations.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The API key to unregister including full resource path. `projects/*/locations/global/catalogs/default_catalog/eventStores/default_event_store/predictionApiKeyRegistrations/`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/eventStores/[^/]+/predictionApiKeyRegistrations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "List the registered apiKeys for use with predict method.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/eventStores/{eventStoresId}/predictionApiKeyRegistrations", +"httpMethod": "GET", +"id": "recommendationengine.projects.locations.catalogs.eventStores.predictionApiKeyRegistrations.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. Maximum number of results to return per page. If unset, the service will choose a reasonable default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The previous `ListPredictionApiKeyRegistration.nextPageToken`.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent placement resource name such as `projects/1234/locations/global/catalogs/default_catalog/eventStores/default_event_store`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/eventStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/predictionApiKeyRegistrations", +"response": { +"$ref": "GoogleCloudRecommendationengineV1beta1ListPredictionApiKeyRegistrationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"userEvents": { +"methods": { +"collect": { +"description": "Writes a single user event from the browser. This uses a GET request to due to browser restriction of POST-ing to a 3rd party domain. This method is used only by the Recommendations AI JavaScript pixel. Users should not call this method directly.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/eventStores/{eventStoresId}/userEvents:collect", +"httpMethod": "GET", +"id": "recommendationengine.projects.locations.catalogs.eventStores.userEvents.collect", +"parameterOrder": [ +"parent" +], +"parameters": { +"ets": { +"description": "Optional. 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", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent eventStore name, such as `projects/1234/locations/global/catalogs/default_catalog/eventStores/default_event_store`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/eventStores/[^/]+$", +"required": true, +"type": "string" +}, +"uri": { +"description": "Optional. The url including cgi-parameters but excluding the hash fragment. The URL must be truncated to 1.5K bytes to conservatively be under the 2K bytes. This is often more useful than the referer url, because many browsers only send the domain for 3rd party requests.", +"location": "query", +"type": "string" +}, +"userEvent": { +"description": "Required. URL encoded UserEvent proto.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+parent}/userEvents:collect", +"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": "v1beta1/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/eventStores/{eventStoresId}/userEvents:import", +"httpMethod": "POST", +"id": "recommendationengine.projects.locations.catalogs.eventStores.userEvents.import", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. `projects/1234/locations/global/catalogs/default_catalog/eventStores/default_event_store`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/eventStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/userEvents:import", +"request": { +"$ref": "GoogleCloudRecommendationengineV1beta1ImportUserEventsRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Gets a list of user events within a time range, with potential filtering. The method does not list unjoined user events. Unjoined user event definition: when a user event is ingested from Recommendations AI User Event APIs, the catalog item included in the user event is connected with the current catalog. If a catalog item of the ingested event is not in the current catalog, it could lead to degraded model quality. This is called an unjoined event.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/eventStores/{eventStoresId}/userEvents", +"httpMethod": "GET", +"id": "recommendationengine.projects.locations.catalogs.eventStores.userEvents.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filtering expression to specify restrictions over returned events. This is a sequence of terms, where each term applies some kind of a restriction to the returned user events. Use this expression to restrict results to a specific time range, or filter events by eventType. eg: eventTime > \"2012-04-23T18:25:43.511Z\" eventsMissingCatalogItems eventTime<\"2012-04-23T18:25:43.511Z\" eventType=search We expect only 3 types of fields: * eventTime: this can be specified a maximum of 2 times, once with a less than operator and once with a greater than operator. The eventTime restrict should result in one contiguous valid eventTime range. * eventType: only 1 eventType restriction can be specified. * eventsMissingCatalogItems: specififying this will restrict results to events for which catalog items were not found in the catalog. The default behavior is to return only those events for which catalog items were found. Some examples of valid filters expressions: * Example 1: eventTime > \"2012-04-23T18:25:43.511Z\" eventTime < \"2012-04-23T18:30:43.511Z\" * Example 2: eventTime > \"2012-04-23T18:25:43.511Z\" eventType = detail-page-view * Example 3: eventsMissingCatalogItems eventType = search eventTime < \"2018-04-23T18:30:43.511Z\" * Example 4: eventTime > \"2012-04-23T18:25:43.511Z\" * Example 5: eventType = search * Example 6: eventsMissingCatalogItems", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Maximum number of results to return per page. If zero, the service will choose a reasonable default.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The previous ListUserEventsResponse.next_page_token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent eventStore resource name, such as `projects/*/locations/*/catalogs/default_catalog/eventStores/default_event_store`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/eventStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/userEvents", +"response": { +"$ref": "GoogleCloudRecommendationengineV1beta1ListUserEventsResponse" +}, +"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": "v1beta1/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/eventStores/{eventStoresId}/userEvents:purge", +"httpMethod": "POST", +"id": "recommendationengine.projects.locations.catalogs.eventStores.userEvents.purge", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The resource name of the event_store under which the events are created. The format is `projects/${projectId}/locations/global/catalogs/${catalogId}/eventStores/${eventStoreId}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/eventStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/userEvents:purge", +"request": { +"$ref": "GoogleCloudRecommendationengineV1beta1PurgeUserEventsRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"rejoin": { +"description": "Triggers a user event rejoin operation with latest catalog data. Events will not be annotated with detailed catalog information if catalog item is missing at the time the user event is ingested, and these events are stored as unjoined events with a limited usage on training and serving. This API can be used to trigger a 'join' operation on specified events with latest version of catalog items. It can also be used to correct events joined with wrong catalog items.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/eventStores/{eventStoresId}/userEvents:rejoin", +"httpMethod": "POST", +"id": "recommendationengine.projects.locations.catalogs.eventStores.userEvents.rejoin", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Full resource name of user event, such as `projects/*/locations/*/catalogs/default_catalog/eventStores/default_event_store`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/eventStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/userEvents:rejoin", +"request": { +"$ref": "GoogleCloudRecommendationengineV1beta1RejoinUserEventsRequest" +}, +"response": { +"$ref": "GoogleLongrunningOperation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"write": { +"description": "Writes a single user event.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/eventStores/{eventStoresId}/userEvents:write", +"httpMethod": "POST", +"id": "recommendationengine.projects.locations.catalogs.eventStores.userEvents.write", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent eventStore resource name, such as \"projects/1234/locations/global/catalogs/default_catalog/eventStores/default_event_store\".", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/eventStores/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/userEvents:write", +"request": { +"$ref": "GoogleCloudRecommendationengineV1beta1UserEvent" +}, +"response": { +"$ref": "GoogleCloudRecommendationengineV1beta1UserEvent" +}, +"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": "v1beta1/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "recommendationengine.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": "v1beta1/{+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": "v1beta1/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/operations", +"httpMethod": "GET", +"id": "recommendationengine.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": "v1beta1/{+name}/operations", +"response": { +"$ref": "GoogleLongrunningListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +} +} +}, +"revision": "20240702", +"rootUrl": "https://recommendationengine.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" +}, +"GoogleCloudRecommendationengineV1alphaRejoinCatalogMetadata": { +"description": "Metadata for TriggerCatalogRejoin method.", +"id": "GoogleCloudRecommendationengineV1alphaRejoinCatalogMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudRecommendationengineV1alphaRejoinCatalogResponse": { +"description": "Response message for TriggerCatalogRejoin method.", +"id": "GoogleCloudRecommendationengineV1alphaRejoinCatalogResponse", +"properties": { +"rejoinedUserEventsCount": { +"description": "Number of user events that were joined with latest catalog items.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRecommendationengineV1alphaTuningMetadata": { +"description": "Metadata associated with a tune operation.", +"id": "GoogleCloudRecommendationengineV1alphaTuningMetadata", +"properties": { +"recommendationModel": { +"description": "The resource name of the recommendation model that this tune applies to. Format: projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/eventStores/{event_store_id}/recommendationModels/{recommendation_model_id}", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRecommendationengineV1alphaTuningResponse": { +"description": "Response associated with a tune operation.", +"id": "GoogleCloudRecommendationengineV1alphaTuningResponse", +"properties": {}, +"type": "object" +}, +"GoogleCloudRecommendationengineV1beta1BigQuerySource": { +"description": "BigQuery source import data from.", +"id": "GoogleCloudRecommendationengineV1beta1BigQuerySource", +"properties": { +"dataSchema": { +"description": "Optional. The schema to use when parsing the data from the source. Supported values for catalog imports: 1: \"catalog_recommendations_ai\" using https://cloud.google.com/recommendations-ai/docs/upload-catalog#json (Default for catalogItems.import) 2: \"catalog_merchant_center\" using https://cloud.google.com/recommendations-ai/docs/upload-catalog#mc Supported values for user event imports: 1: \"user_events_recommendations_ai\" using https://cloud.google.com/recommendations-ai/docs/manage-user-events#import (Default for userEvents.import) 2. \"user_events_ga360\" using https://support.google.com/analytics/answer/3437719?hl=en", +"type": "string" +}, +"datasetId": { +"description": "Required. The BigQuery data set to copy the data from.", +"type": "string" +}, +"gcsStagingDir": { +"description": "Optional. Intermediate Cloud Storage directory used for the import. Can be specified if one wants to have the BigQuery export to a specific Cloud Storage directory.", +"type": "string" +}, +"projectId": { +"description": "Optional. The project id (can be project # or id) that the BigQuery source is in. If not specified, inherits the project id from the parent request.", +"type": "string" +}, +"tableId": { +"description": "Required. The BigQuery table to copy the data from.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRecommendationengineV1beta1Catalog": { +"description": "The catalog configuration. Next ID: 5.", +"id": "GoogleCloudRecommendationengineV1beta1Catalog", +"properties": { +"catalogItemLevelConfig": { +"$ref": "GoogleCloudRecommendationengineV1beta1CatalogItemLevelConfig", +"description": "Required. The catalog item level configuration." +}, +"defaultEventStoreId": { +"description": "Required. The ID of the default event store.", +"type": "string" +}, +"displayName": { +"description": "Required. The catalog display name.", +"type": "string" +}, +"name": { +"description": "The fully qualified resource name of the catalog.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRecommendationengineV1beta1CatalogInlineSource": { +"description": "The inline source for the input config for ImportCatalogItems method.", +"id": "GoogleCloudRecommendationengineV1beta1CatalogInlineSource", +"properties": { +"catalogItems": { +"description": "Optional. A list of catalog items to update/create. Recommended max of 10k items.", +"items": { +"$ref": "GoogleCloudRecommendationengineV1beta1CatalogItem" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRecommendationengineV1beta1CatalogItem": { +"description": "CatalogItem captures all metadata information of items to be recommended.", +"id": "GoogleCloudRecommendationengineV1beta1CatalogItem", +"properties": { +"categoryHierarchies": { +"description": "Required. Catalog item categories. This field is repeated for supporting one catalog item belonging to several parallel category hierarchies. For example, if a shoes product belongs to both [\"Shoes & Accessories\" -> \"Shoes\"] and [\"Sports & Fitness\" -> \"Athletic Clothing\" -> \"Shoes\"], it could be represented as: \"categoryHierarchies\": [ { \"categories\": [\"Shoes & Accessories\", \"Shoes\"]}, { \"categories\": [\"Sports & Fitness\", \"Athletic Clothing\", \"Shoes\"] } ]", +"items": { +"$ref": "GoogleCloudRecommendationengineV1beta1CatalogItemCategoryHierarchy" +}, +"type": "array" +}, +"description": { +"description": "Optional. Catalog item description. UTF-8 encoded string with a length limit of 5 KiB.", +"type": "string" +}, +"id": { +"description": "Required. Catalog item identifier. UTF-8 encoded string with a length limit of 128 bytes. This id must be unique among all catalog items within the same catalog. It should also be used when logging user events in order for the user events to be joined with the Catalog.", +"type": "string" +}, +"itemAttributes": { +"$ref": "GoogleCloudRecommendationengineV1beta1FeatureMap", +"description": "Optional. Highly encouraged. Extra catalog item attributes to be included in the recommendation model. For example, for retail 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 item attributes here." +}, +"itemGroupId": { +"description": "Optional. Variant group identifier for prediction results. UTF-8 encoded string with a length limit of 128 bytes. This field must be enabled before it can be used. [Learn more](/recommendations-ai/docs/catalog#item-group-id).", +"type": "string" +}, +"languageCode": { +"description": "Optional. Deprecated. The model automatically detects the text language. Your catalog can include text in different languages, but duplicating catalog items to provide text in multiple languages can result in degraded model performance.", +"type": "string" +}, +"productMetadata": { +"$ref": "GoogleCloudRecommendationengineV1beta1ProductCatalogItem", +"description": "Optional. Metadata specific to retail products." +}, +"tags": { +"description": "Optional. Filtering tags associated with the catalog item. Each tag should be a UTF-8 encoded string with a length limit of 1 KiB. This tag can be used for filtering recommendation results by passing the tag as part of the predict request filter.", +"items": { +"type": "string" +}, +"type": "array" +}, +"title": { +"description": "Required. Catalog item title. UTF-8 encoded string with a length limit of 1 KiB.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRecommendationengineV1beta1CatalogItemCategoryHierarchy": { +"description": "Category represents catalog item category hierarchy.", +"id": "GoogleCloudRecommendationengineV1beta1CatalogItemCategoryHierarchy", +"properties": { +"categories": { +"description": "Required. Catalog item categories. Each category should be a UTF-8 encoded string with a length limit of 2 KiB. Note that the order in the list denotes the specificity (from least to most specific).", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRecommendationengineV1beta1CatalogItemLevelConfig": { +"description": "Configures the catalog level that users send events to, and the level at which predictions are made.", +"id": "GoogleCloudRecommendationengineV1beta1CatalogItemLevelConfig", +"properties": { +"eventItemLevel": { +"description": "Optional. Level of the catalog at which events are uploaded. See https://cloud.google.com/recommendations-ai/docs/catalog#catalog-levels for more details.", +"enum": [ +"CATALOG_ITEM_LEVEL_UNSPECIFIED", +"VARIANT", +"MASTER" +], +"enumDescriptions": [ +"Unknown value - should never be used.", +"Catalog items are at variant level.", +"Catalog items are at master level." +], +"type": "string" +}, +"predictItemLevel": { +"description": "Optional. Level of the catalog at which predictions are made. See https://cloud.google.com/recommendations-ai/docs/catalog#catalog-levels for more details.", +"enum": [ +"CATALOG_ITEM_LEVEL_UNSPECIFIED", +"VARIANT", +"MASTER" +], +"enumDescriptions": [ +"Unknown value - should never be used.", +"Catalog items are at variant level.", +"Catalog items are at master level." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRecommendationengineV1beta1CreatePredictionApiKeyRegistrationRequest": { +"description": "Request message for the `CreatePredictionApiKeyRegistration` method.", +"id": "GoogleCloudRecommendationengineV1beta1CreatePredictionApiKeyRegistrationRequest", +"properties": { +"predictionApiKeyRegistration": { +"$ref": "GoogleCloudRecommendationengineV1beta1PredictionApiKeyRegistration", +"description": "Required. The prediction API key registration." +} +}, +"type": "object" +}, +"GoogleCloudRecommendationengineV1beta1EventDetail": { +"description": "User event details shared by all recommendation types.", +"id": "GoogleCloudRecommendationengineV1beta1EventDetail", +"properties": { +"eventAttributes": { +"$ref": "GoogleCloudRecommendationengineV1beta1FeatureMap", +"description": "Optional. Extra user event features to include in the recommendation model. For product recommendation, an example of extra user information is traffic_channel, i.e. how user arrives at the site. Users can arrive at the site by coming to the site directly, or coming through Google search, and etc." +}, +"experimentIds": { +"description": "Optional. 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 Recommendation Engine system, using different recommendation models).", +"items": { +"type": "string" +}, +"type": "array" +}, +"pageViewId": { +"description": "Optional. 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. This `pageViewId` will be automatically generated if using the JavaScript pixel.", +"type": "string" +}, +"recommendationToken": { +"description": "Optional. Recommendation token included in the recommendation prediction response. This field enables accurate attribution of recommendation model performance. This token enables us to accurately attribute page view or purchase back to the event and the particular predict response containing this clicked/purchased item. If user clicks on product K in the recommendation results, pass the `PredictResponse.recommendationToken` property as a url parameter to product K's page. When recording events on product K's page, log the PredictResponse.recommendation_token to this field. Optional, but highly encouraged for user events that are the result of a recommendation prediction query.", +"type": "string" +}, +"referrerUri": { +"description": "Optional. The referrer url of the current page. When using the JavaScript pixel, this value is filled in automatically.", +"type": "string" +}, +"uri": { +"description": "Optional. Complete url (window.location.href) of the user's current page. When using the JavaScript pixel, this value is filled in automatically. Maximum length 5KB.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRecommendationengineV1beta1FeatureMap": { +"description": "FeatureMap represents extra features that customers want to include in the recommendation model for catalogs/user events as categorical/numerical features.", +"id": "GoogleCloudRecommendationengineV1beta1FeatureMap", +"properties": { +"categoricalFeatures": { +"additionalProperties": { +"$ref": "GoogleCloudRecommendationengineV1beta1FeatureMapStringList" +}, +"description": "Categorical features that can take on one of a limited number of possible values. Some examples would be the brand/maker of a product, or country of a customer. Feature names and values must be UTF-8 encoded strings. For example: `{ \"colors\": {\"value\": [\"yellow\", \"green\"]}, \"sizes\": {\"value\":[\"S\", \"M\"]}`", +"type": "object" +}, +"numericalFeatures": { +"additionalProperties": { +"$ref": "GoogleCloudRecommendationengineV1beta1FeatureMapFloatList" +}, +"description": "Numerical features. Some examples would be the height/weight of a product, or age of a customer. Feature names must be UTF-8 encoded strings. For example: `{ \"lengths_cm\": {\"value\":[2.3, 15.4]}, \"heights_cm\": {\"value\":[8.1, 6.4]} }`", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudRecommendationengineV1beta1FeatureMapFloatList": { +"description": "A list of float features.", +"id": "GoogleCloudRecommendationengineV1beta1FeatureMapFloatList", +"properties": { +"value": { +"description": "Float feature value.", +"items": { +"format": "float", +"type": "number" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRecommendationengineV1beta1FeatureMapStringList": { +"description": "A list of string features.", +"id": "GoogleCloudRecommendationengineV1beta1FeatureMapStringList", +"properties": { +"value": { +"description": "String feature value with a length limit of 128 bytes.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRecommendationengineV1beta1GcsSource": { +"description": "Google Cloud Storage location for input content. format.", +"id": "GoogleCloudRecommendationengineV1beta1GcsSource", +"properties": { +"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 catalog information](/recommendations-ai/docs/upload-catalog) for the expected file format and setup instructions.", +"items": { +"type": "string" +}, +"type": "array" +}, +"jsonSchema": { +"description": "Optional. The schema to use when parsing the data from the source. Supported values for catalog imports: 1: \"catalog_recommendations_ai\" using https://cloud.google.com/recommendations-ai/docs/upload-catalog#json (Default for catalogItems.import) 2: \"catalog_merchant_center\" using https://cloud.google.com/recommendations-ai/docs/upload-catalog#mc Supported values for user events imports: 1: \"user_events_recommendations_ai\" using https://cloud.google.com/recommendations-ai/docs/manage-user-events#import (Default for userEvents.import) 2. \"user_events_ga360\" using https://support.google.com/analytics/answer/3437719?hl=en", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRecommendationengineV1beta1Image": { +"description": "Catalog item thumbnail/detail image.", +"id": "GoogleCloudRecommendationengineV1beta1Image", +"properties": { +"height": { +"description": "Optional. Height of the image in number of pixels.", +"format": "int32", +"type": "integer" +}, +"uri": { +"description": "Required. URL of the image with a length limit of 5 KiB.", +"type": "string" +}, +"width": { +"description": "Optional. Width of the image in number of pixels.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudRecommendationengineV1beta1ImportCatalogItemsRequest": { +"description": "Request message for Import methods.", +"id": "GoogleCloudRecommendationengineV1beta1ImportCatalogItemsRequest", +"properties": { +"errorsConfig": { +"$ref": "GoogleCloudRecommendationengineV1beta1ImportErrorsConfig", +"description": "Optional. The desired location of errors incurred during the Import." +}, +"inputConfig": { +"$ref": "GoogleCloudRecommendationengineV1beta1InputConfig", +"description": "Required. The desired input location of the data." +}, +"requestId": { +"description": "Optional. Unique identifier provided by client, within the ancestor dataset scope. Ensures idempotency and used for request deduplication. Server-generated if unspecified. Up to 128 characters long. This is returned as google.longrunning.Operation.name in the response.", +"type": "string" +}, +"updateMask": { +"description": "Optional. Indicates which fields in the provided imported 'items' to update. If not set, will by default update all fields.", +"format": "google-fieldmask", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRecommendationengineV1beta1ImportCatalogItemsResponse": { +"description": "Response of the ImportCatalogItemsRequest. 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": "GoogleCloudRecommendationengineV1beta1ImportCatalogItemsResponse", +"properties": { +"errorSamples": { +"description": "A sample of errors encountered while processing the request.", +"items": { +"$ref": "GoogleRpcStatus" +}, +"type": "array" +}, +"errorsConfig": { +"$ref": "GoogleCloudRecommendationengineV1beta1ImportErrorsConfig", +"description": "Echoes the destination for the complete errors in the request if set." +} +}, +"type": "object" +}, +"GoogleCloudRecommendationengineV1beta1ImportErrorsConfig": { +"description": "Configuration of destination for Import related errors.", +"id": "GoogleCloudRecommendationengineV1beta1ImportErrorsConfig", +"properties": { +"gcsPrefix": { +"description": "Google Cloud Storage path for import errors. This must be an empty, existing Cloud Storage bucket. Import 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" +}, +"GoogleCloudRecommendationengineV1beta1ImportMetadata": { +"description": "Metadata related to the progress of the Import operation. This will be returned by the google.longrunning.Operation.metadata field.", +"id": "GoogleCloudRecommendationengineV1beta1ImportMetadata", +"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" +}, +"operationName": { +"description": "Name of the operation.", +"type": "string" +}, +"requestId": { +"description": "Id of the request / operation. This is parroting back the requestId that was passed in the request.", +"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" +}, +"GoogleCloudRecommendationengineV1beta1ImportUserEventsRequest": { +"description": "Request message for the ImportUserEvents request.", +"id": "GoogleCloudRecommendationengineV1beta1ImportUserEventsRequest", +"properties": { +"errorsConfig": { +"$ref": "GoogleCloudRecommendationengineV1beta1ImportErrorsConfig", +"description": "Optional. The desired location of errors incurred during the Import." +}, +"inputConfig": { +"$ref": "GoogleCloudRecommendationengineV1beta1InputConfig", +"description": "Required. The desired input location of the data." +}, +"requestId": { +"description": "Optional. Unique identifier provided by client, within the ancestor dataset scope. Ensures idempotency for expensive long running operations. Server-generated if unspecified. Up to 128 characters long. This is returned as google.longrunning.Operation.name in the response. Note that this field must not be set if the desired input config is catalog_inline_source.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRecommendationengineV1beta1ImportUserEventsResponse": { +"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": "GoogleCloudRecommendationengineV1beta1ImportUserEventsResponse", +"properties": { +"errorSamples": { +"description": "A sample of errors encountered while processing the request.", +"items": { +"$ref": "GoogleRpcStatus" +}, +"type": "array" +}, +"errorsConfig": { +"$ref": "GoogleCloudRecommendationengineV1beta1ImportErrorsConfig", +"description": "Echoes the destination for the complete errors if this field was set in the request." +}, +"importSummary": { +"$ref": "GoogleCloudRecommendationengineV1beta1UserEventImportSummary", +"description": "Aggregated statistics of user event import status." +} +}, +"type": "object" +}, +"GoogleCloudRecommendationengineV1beta1InputConfig": { +"description": "The input config source.", +"id": "GoogleCloudRecommendationengineV1beta1InputConfig", +"properties": { +"bigQuerySource": { +"$ref": "GoogleCloudRecommendationengineV1beta1BigQuerySource", +"description": "BigQuery input source." +}, +"catalogInlineSource": { +"$ref": "GoogleCloudRecommendationengineV1beta1CatalogInlineSource", +"description": "The Inline source for the input content for Catalog items." +}, +"gcsSource": { +"$ref": "GoogleCloudRecommendationengineV1beta1GcsSource", +"description": "Google Cloud Storage location for the input content." +}, +"userEventInlineSource": { +"$ref": "GoogleCloudRecommendationengineV1beta1UserEventInlineSource", +"description": "The Inline source for the input content for UserEvents." +} +}, +"type": "object" +}, +"GoogleCloudRecommendationengineV1beta1ListCatalogItemsResponse": { +"description": "Response message for ListCatalogItems method.", +"id": "GoogleCloudRecommendationengineV1beta1ListCatalogItemsResponse", +"properties": { +"catalogItems": { +"description": "The catalog items.", +"items": { +"$ref": "GoogleCloudRecommendationengineV1beta1CatalogItem" +}, +"type": "array" +}, +"nextPageToken": { +"description": "If empty, the list is complete. If nonempty, the token to pass to the next request's ListCatalogItemRequest.page_token.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRecommendationengineV1beta1ListCatalogsResponse": { +"description": "Response for ListCatalogs method.", +"id": "GoogleCloudRecommendationengineV1beta1ListCatalogsResponse", +"properties": { +"catalogs": { +"description": "Output only. All the customer's catalogs.", +"items": { +"$ref": "GoogleCloudRecommendationengineV1beta1Catalog" +}, +"readOnly": true, +"type": "array" +}, +"nextPageToken": { +"description": "Pagination token, if not returned indicates the last page.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRecommendationengineV1beta1ListPredictionApiKeyRegistrationsResponse": { +"description": "Response message for the `ListPredictionApiKeyRegistrations`.", +"id": "GoogleCloudRecommendationengineV1beta1ListPredictionApiKeyRegistrationsResponse", +"properties": { +"nextPageToken": { +"description": "If empty, the list is complete. If nonempty, pass the token to the next request's `ListPredictionApiKeysRegistrationsRequest.pageToken`.", +"type": "string" +}, +"predictionApiKeyRegistrations": { +"description": "The list of registered API keys.", +"items": { +"$ref": "GoogleCloudRecommendationengineV1beta1PredictionApiKeyRegistration" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRecommendationengineV1beta1ListUserEventsResponse": { +"description": "Response message for ListUserEvents method.", +"id": "GoogleCloudRecommendationengineV1beta1ListUserEventsResponse", +"properties": { +"nextPageToken": { +"description": "If empty, the list is complete. If nonempty, the token to pass to the next request's ListUserEvents.page_token.", +"type": "string" +}, +"userEvents": { +"description": "The user events.", +"items": { +"$ref": "GoogleCloudRecommendationengineV1beta1UserEvent" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRecommendationengineV1beta1PredictRequest": { +"description": "Request message for Predict method. Full resource name of the format: `{name=projects/*/locations/global/catalogs/default_catalog/eventStores/default_event_store/placements/*}` The id of the recommendation engine placement. This id is used to identify the set of models that will be used to make the prediction. We currently support three placements with the following IDs by default: // * `shopping_cart`: Predicts items frequently bought together with one or more catalog items in the same shopping session. Commonly displayed after `add-to-cart` event, on product detail pages, or on the shopping cart page. * `home_page`: Predicts the next product that a user will most likely engage with or purchase based on the shopping or viewing history of the specified `userId` or `visitorId`. For example - Recommendations for you. * `product_detail`: Predicts the next product that a user will most likely engage with or purchase. The prediction is based on the shopping or viewing history of the specified `userId` or `visitorId` and its relevance to a specified `CatalogItem`. Typically used on product detail pages. For example - More items like this. * `recently_viewed_default`: Returns up to 75 items recently viewed by the specified `userId` or `visitorId`, most recent ones first. Returns nothing if neither of them has viewed any items yet. For example - Recently viewed. The full list of available placements can be seen at https://console.cloud.google.com/recommendation/catalogs/default_catalog/placements", +"id": "GoogleCloudRecommendationengineV1beta1PredictRequest", +"properties": { +"dryRun": { +"description": "Optional. Use dryRun mode for this prediction query. If set to true, a fake model will be used that returns arbitrary catalog items. Note that the dryRun mode should only be used for testing the API, or if the model is not ready.", +"type": "boolean" +}, +"filter": { +"description": "Optional. Filter for restricting prediction results. Accepts values for tags and the `filterOutOfStockItems` flag. * Tag expressions. Restricts predictions to items 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 KiB. * filterOutOfStockItems. Restricts predictions to items 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, nothing will be returned. If you want generic (unfiltered) popular items to be returned instead, set `strictFiltering` to false in `PredictRequest.params`.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. The labels for the predict request. * Label keys can contain lowercase letters, digits and hyphens, must start with a letter, and must end with a letter or digit. * Non-zero label values can contain lowercase letters, digits and hyphens, must start with a letter, and must end with a letter or digit. * No more than 64 labels can be associated with a given request. See https://goo.gl/xmQnxf for more information on and examples of labels.", +"type": "object" +}, +"pageSize": { +"description": "Optional. Maximum number of results to return per page. Set this property to the number of prediction results required. If zero, the service will choose a reasonable default.", +"format": "int32", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The previous PredictResponse.next_page_token.", +"type": "string" +}, +"params": { +"additionalProperties": { +"type": "any" +}, +"description": "Optional. Additional domain specific parameters for the predictions. Allowed values: * `returnCatalogItem`: Boolean. If set to true, the associated catalogItem object will be returned in the `PredictResponse.PredictionResult.itemMetadata` object in the method response. * `returnItemScore`: Boolean. If set to true, the prediction 'score' corresponding to each returned item will be set in the `metadata` field in the prediction response. The given 'score' indicates the probability of an item 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 items 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 adjust 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 adjust prediction results based on product category.", +"type": "object" +}, +"userEvent": { +"$ref": "GoogleCloudRecommendationengineV1beta1UserEvent", +"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 UserInfo.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 UserInfo.visitor_id to a random unique ID and leave UserInfo.user_id unset." +} +}, +"type": "object" +}, +"GoogleCloudRecommendationengineV1beta1PredictResponse": { +"description": "Response message for predict method.", +"id": "GoogleCloudRecommendationengineV1beta1PredictResponse", +"properties": { +"dryRun": { +"description": "True if the dryRun property was set in the request.", +"type": "boolean" +}, +"itemsMissingInCatalog": { +"description": "IDs of items in the request that were missing from the catalog.", +"items": { +"type": "string" +}, +"type": "array" +}, +"metadata": { +"additionalProperties": { +"type": "any" +}, +"description": "Additional domain specific prediction response metadata.", +"type": "object" +}, +"nextPageToken": { +"description": "If empty, the list is complete. If nonempty, the token to pass to the next request's PredictRequest.page_token.", +"type": "string" +}, +"recommendationToken": { +"description": "A unique recommendation token. This should be included in the user event logs resulting from this recommendation, which enables accurate attribution of recommendation model performance.", +"type": "string" +}, +"results": { +"description": "A list of recommended items. The order represents the ranking (from the most relevant item to the least).", +"items": { +"$ref": "GoogleCloudRecommendationengineV1beta1PredictResponsePredictionResult" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRecommendationengineV1beta1PredictResponsePredictionResult": { +"description": "PredictionResult represents the recommendation prediction results.", +"id": "GoogleCloudRecommendationengineV1beta1PredictResponsePredictionResult", +"properties": { +"id": { +"description": "ID of the recommended catalog item", +"type": "string" +}, +"itemMetadata": { +"additionalProperties": { +"type": "any" +}, +"description": "Additional item metadata / annotations. Possible values: * `catalogItem`: JSON representation of the catalogItem. Will be set if `returnCatalogItem` is set to true in `PredictRequest.params`. * `score`: Prediction score in double value. Will be set if `returnItemScore` is set to true in `PredictRequest.params`.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudRecommendationengineV1beta1PredictionApiKeyRegistration": { +"description": "Registered Api Key.", +"id": "GoogleCloudRecommendationengineV1beta1PredictionApiKeyRegistration", +"properties": { +"apiKey": { +"description": "The API key.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRecommendationengineV1beta1ProductCatalogItem": { +"description": "ProductCatalogItem captures item metadata specific to retail products.", +"id": "GoogleCloudRecommendationengineV1beta1ProductCatalogItem", +"properties": { +"availableQuantity": { +"description": "Optional. The available quantity of the item.", +"format": "int64", +"type": "string" +}, +"canonicalProductUri": { +"description": "Optional. Canonical URL directly linking to the item detail page with a length limit of 5 KiB..", +"type": "string" +}, +"costs": { +"additionalProperties": { +"format": "float", +"type": "number" +}, +"description": "Optional. A map to pass the costs associated with the product. For example: {\"manufacturing\": 45.5} The profit of selling this item is computed like so: * If 'exactPrice' is provided, profit = displayPrice - sum(costs) * If 'priceRange' is provided, profit = minPrice - sum(costs)", +"type": "object" +}, +"currencyCode": { +"description": "Optional. Only required if the price is set. Currency code for price/costs. Use three-character ISO-4217 code.", +"type": "string" +}, +"exactPrice": { +"$ref": "GoogleCloudRecommendationengineV1beta1ProductCatalogItemExactPrice", +"description": "Optional. The exact product price." +}, +"images": { +"description": "Optional. Product images for the catalog item.", +"items": { +"$ref": "GoogleCloudRecommendationengineV1beta1Image" +}, +"type": "array" +}, +"priceRange": { +"$ref": "GoogleCloudRecommendationengineV1beta1ProductCatalogItemPriceRange", +"description": "Optional. The product price range." +}, +"stockState": { +"description": "Optional. Online stock state of the catalog item. Default is `IN_STOCK`.", +"enum": [ +"STOCK_STATE_UNSPECIFIED", +"IN_STOCK", +"OUT_OF_STOCK", +"PREORDER", +"BACKORDER" +], +"enumDescriptions": [ +"Default item stock status. Should never be used.", +"Item in stock.", +"Item out of stock.", +"Item that is in pre-order state.", +"Item that is back-ordered (i.e. temporarily out of stock)." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRecommendationengineV1beta1ProductCatalogItemExactPrice": { +"description": "Exact product price.", +"id": "GoogleCloudRecommendationengineV1beta1ProductCatalogItemExactPrice", +"properties": { +"displayPrice": { +"description": "Optional. Display price of the product.", +"format": "float", +"type": "number" +}, +"originalPrice": { +"description": "Optional. Price of the product without any discount. If zero, by default set to be the 'displayPrice'.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudRecommendationengineV1beta1ProductCatalogItemPriceRange": { +"description": "Product price range when there are a range of prices for different variations of the same product.", +"id": "GoogleCloudRecommendationengineV1beta1ProductCatalogItemPriceRange", +"properties": { +"max": { +"description": "Required. The maximum product price.", +"format": "float", +"type": "number" +}, +"min": { +"description": "Required. The minimum product price.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudRecommendationengineV1beta1ProductDetail": { +"description": "Detailed product information associated with a user event.", +"id": "GoogleCloudRecommendationengineV1beta1ProductDetail", +"properties": { +"availableQuantity": { +"description": "Optional. Quantity of the products in stock when a user event happens. Optional. If provided, this overrides the available quantity in Catalog for this event. and can only be set if `stock_status` is set to `IN_STOCK`. Note that if an item is out of stock, you must set the `stock_state` field to be `OUT_OF_STOCK`. Leaving this field unspecified / as zero is not sufficient to mark the item out of stock.", +"format": "int32", +"type": "integer" +}, +"currencyCode": { +"description": "Optional. Currency code for price/costs. Use three-character ISO-4217 code. Required only if originalPrice or displayPrice is set.", +"type": "string" +}, +"displayPrice": { +"description": "Optional. Display price of the product (e.g. discounted price). If provided, this will override the display price in Catalog for this product.", +"format": "float", +"type": "number" +}, +"id": { +"description": "Required. Catalog item ID. UTF-8 encoded string with a length limit of 128 characters.", +"type": "string" +}, +"itemAttributes": { +"$ref": "GoogleCloudRecommendationengineV1beta1FeatureMap", +"description": "Optional. Extra features associated with a product in the user event." +}, +"originalPrice": { +"description": "Optional. Original price of the product. If provided, this will override the original price in Catalog for this product.", +"format": "float", +"type": "number" +}, +"quantity": { +"description": "Optional. 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 `add-to-cart` event. Required for `add-to-cart`, `add-to-list`, `remove-from-cart`, `checkout-start`, `purchase-complete`, `refund` event types.", +"format": "int32", +"type": "integer" +}, +"stockState": { +"description": "Optional. Item stock state. If provided, this overrides the stock state in Catalog for items in this event.", +"enum": [ +"STOCK_STATE_UNSPECIFIED", +"IN_STOCK", +"OUT_OF_STOCK", +"PREORDER", +"BACKORDER" +], +"enumDescriptions": [ +"Default item stock status. Should never be used.", +"Item in stock.", +"Item out of stock.", +"Item that is in pre-order state.", +"Item that is back-ordered (i.e. temporarily out of stock)." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRecommendationengineV1beta1ProductEventDetail": { +"description": "ProductEventDetail captures user event information specific to retail products.", +"id": "GoogleCloudRecommendationengineV1beta1ProductEventDetail", +"properties": { +"cartId": { +"description": "Optional. 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`, `remove-from-cart`, `checkout-start`, `purchase-complete`, or `shopping-cart-page-view` events.", +"type": "string" +}, +"listId": { +"description": "Required for `add-to-list` and `remove-from-list` events. The id or name of the list that the item is being added to or removed from. Other event types should not set this field.", +"type": "string" +}, +"pageCategories": { +"description": "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. The categories associated with a category page. Category pages include special pages such as sales or promotions. For instance, a special sale page may have the category hierarchy: categories : [\"Sales\", \"2017 Black Friday Deals\"].", +"items": { +"$ref": "GoogleCloudRecommendationengineV1beta1CatalogItemCategoryHierarchy" +}, +"type": "array" +}, +"productDetails": { +"description": "The main product details related to the event. This field is required for the following event types: * `add-to-cart` * `add-to-list` * `checkout-start` * `detail-page-view` * `purchase-complete` * `refund` * `remove-from-cart` * `remove-from-list` This field is optional for the following event types: * `page-visit` * `shopping-cart-page-view` - note that 'product_details' should be set for this unless the shopping cart is empty. * `search` (highly encouraged) 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 broswing 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 broswing the whole page yet. This field is not allowed for the following event types: * `category-page-view` * `home-page-view`", +"items": { +"$ref": "GoogleCloudRecommendationengineV1beta1ProductDetail" +}, +"type": "array" +}, +"purchaseTransaction": { +"$ref": "GoogleCloudRecommendationengineV1beta1PurchaseTransaction", +"description": "Optional. A transaction represents the entire purchase transaction. Required for `purchase-complete` events. Optional for `checkout-start` events. Other event types should not set this field." +}, +"searchQuery": { +"description": "At least one of search_query or page_categories is required for `search` events. Other event types should not set this field. The user's search query as UTF-8 encoded text with a length limit of 5 KiB.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRecommendationengineV1beta1PurchaseTransaction": { +"description": "A transaction represents the entire purchase transaction.", +"id": "GoogleCloudRecommendationengineV1beta1PurchaseTransaction", +"properties": { +"costs": { +"additionalProperties": { +"format": "float", +"type": "number" +}, +"description": "Optional. All the costs associated with the product. These can be manufacturing costs, shipping expenses not borne by the end user, or any other costs. Total product cost such that profit = revenue - (sum(taxes) + sum(costs)) If product_cost is not set, then profit = revenue - tax - shipping - sum(CatalogItem.costs). If CatalogItem.cost is not specified for one of the items, CatalogItem.cost based profit *cannot* be calculated for this Transaction.", +"type": "object" +}, +"currencyCode": { +"description": "Required. Currency code. Use three-character ISO-4217 code. This field is not required if the event type is `refund`.", +"type": "string" +}, +"id": { +"description": "Optional. The transaction ID with a length limit of 128 bytes.", +"type": "string" +}, +"revenue": { +"description": "Required. Total 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. This field is not required if the event type is `refund`.", +"format": "float", +"type": "number" +}, +"taxes": { +"additionalProperties": { +"format": "float", +"type": "number" +}, +"description": "Optional. All the taxes associated with the transaction.", +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudRecommendationengineV1beta1PurgeUserEventsMetadata": { +"description": "Metadata related to the progress of the PurgeUserEvents operation. This will be returned by the google.longrunning.Operation.metadata field.", +"id": "GoogleCloudRecommendationengineV1beta1PurgeUserEventsMetadata", +"properties": { +"createTime": { +"description": "Operation create time.", +"format": "google-datetime", +"type": "string" +}, +"operationName": { +"description": "The ID of the request / operation.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRecommendationengineV1beta1PurgeUserEventsRequest": { +"description": "Request message for PurgeUserEvents method.", +"id": "GoogleCloudRecommendationengineV1beta1PurgeUserEventsRequest", +"properties": { +"filter": { +"description": "Required. The filter string to specify the events to be deleted. Empty string filter is not allowed. The eligible fields for filtering are: * `eventType`: UserEvent.eventType field of type string. * `eventTime`: in ISO 8601 \"zulu\" format. * `visitorId`: field of type string. Specifying this will delete all events associated with a visitor. * `userId`: field of type 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": "Optional. The default value is false. Override this flag to true to actually perform the purge. If the field is not set to true, a sampling of events to be deleted will be returned.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudRecommendationengineV1beta1PurgeUserEventsResponse": { +"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": "GoogleCloudRecommendationengineV1beta1PurgeUserEventsResponse", +"properties": { +"purgedEventsCount": { +"description": "The total count of events purged as a result of the operation.", +"format": "int64", +"type": "string" +}, +"userEventsSample": { +"description": "A sampling of events deleted (or will be deleted) depending on the `force` property in the request. Max of 500 items will be returned.", +"items": { +"$ref": "GoogleCloudRecommendationengineV1beta1UserEvent" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRecommendationengineV1beta1RejoinUserEventsMetadata": { +"description": "Metadata for RejoinUserEvents method.", +"id": "GoogleCloudRecommendationengineV1beta1RejoinUserEventsMetadata", +"properties": {}, +"type": "object" +}, +"GoogleCloudRecommendationengineV1beta1RejoinUserEventsRequest": { +"description": "Request message for CatalogRejoin method.", +"id": "GoogleCloudRecommendationengineV1beta1RejoinUserEventsRequest", +"properties": { +"userEventRejoinScope": { +"description": "Required. The type of the catalog rejoin to define the scope and range of the user events to be rejoined with catalog items.", +"enum": [ +"USER_EVENT_REJOIN_SCOPE_UNSPECIFIED", +"JOINED_EVENTS", +"UNJOINED_EVENTS" +], +"enumDescriptions": [ +"Rejoin catalogs with all events including both joined events and unjoined events.", +"Only rejoin catalogs with joined events.", +"Only rejoin catalogs with unjoined events." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRecommendationengineV1beta1RejoinUserEventsResponse": { +"description": "Response message for RejoinUserEvents method.", +"id": "GoogleCloudRecommendationengineV1beta1RejoinUserEventsResponse", +"properties": { +"rejoinedUserEventsCount": { +"description": "Number of user events that were joined with latest catalog items.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudRecommendationengineV1beta1UserEvent": { +"description": "UserEvent captures all metadata information recommendation engine needs to know about how end users interact with customers' website.", +"id": "GoogleCloudRecommendationengineV1beta1UserEvent", +"properties": { +"eventDetail": { +"$ref": "GoogleCloudRecommendationengineV1beta1EventDetail", +"description": "Optional. User event detailed information common across different recommendation types." +}, +"eventSource": { +"description": "Optional. This field should *not* be set when using JavaScript pixel or the Recommendations AI Tag. Defaults to `EVENT_SOURCE_UNSPECIFIED`.", +"enum": [ +"EVENT_SOURCE_UNSPECIFIED", +"AUTOML", +"ECOMMERCE", +"BATCH_UPLOAD" +], +"enumDescriptions": [ +"Unspecified event source.", +"The event is ingested via a javascript pixel or Recommendations AI Tag through automl datalayer or JS Macros.", +"The event is ingested via Recommendations AI Tag through Enhanced Ecommerce datalayer.", +"The event is ingested via Import user events API." +], +"type": "string" +}, +"eventTime": { +"description": "Optional. Only required for ImportUserEvents method. Timestamp of user event created.", +"format": "google-datetime", +"type": "string" +}, +"eventType": { +"description": "Required. User event type. Allowed values are: * `add-to-cart` Products being added to cart. * `add-to-list` Items being added to a list (shopping list, favorites etc). * `category-page-view` Special pages such as sale or promotion pages viewed. * `checkout-start` User starting a checkout process. * `detail-page-view` Products detail page viewed. * `home-page-view` Homepage viewed. * `page-visit` Generic page visits not included in the event types above. * `purchase-complete` User finishing a purchase. * `refund` Purchased items being refunded or returned. * `remove-from-cart` Products being removed from cart. * `remove-from-list` Items being removed from a list. * `search` Product search. * `shopping-cart-page-view` User viewing a shopping cart. * `impression` List of items displayed. Used by Google Tag Manager.", +"type": "string" +}, +"productEventDetail": { +"$ref": "GoogleCloudRecommendationengineV1beta1ProductEventDetail", +"description": "Optional. Retail product specific user event metadata. This field is required for the following event types: * `add-to-cart` * `add-to-list` * `category-page-view` * `checkout-start` * `detail-page-view` * `purchase-complete` * `refund` * `remove-from-cart` * `remove-from-list` * `search` This field is optional for the following event types: * `page-visit` * `shopping-cart-page-view` - note that 'product_event_detail' should be set for this unless the shopping cart is empty. This field is not allowed for the following event types: * `home-page-view`" +}, +"userInfo": { +"$ref": "GoogleCloudRecommendationengineV1beta1UserInfo", +"description": "Required. User information." +} +}, +"type": "object" +}, +"GoogleCloudRecommendationengineV1beta1UserEventImportSummary": { +"description": "A summary of import result. The UserEventImportSummary summarizes the import status for user events.", +"id": "GoogleCloudRecommendationengineV1beta1UserEventImportSummary", +"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" +}, +"GoogleCloudRecommendationengineV1beta1UserEventInlineSource": { +"description": "The inline source for the input config for ImportUserEvents method.", +"id": "GoogleCloudRecommendationengineV1beta1UserEventInlineSource", +"properties": { +"userEvents": { +"description": "Optional. A list of user events to import. Recommended max of 10k items.", +"items": { +"$ref": "GoogleCloudRecommendationengineV1beta1UserEvent" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudRecommendationengineV1beta1UserInfo": { +"description": "Information of end users.", +"id": "GoogleCloudRecommendationengineV1beta1UserInfo", +"properties": { +"directUserRequest": { +"description": "Optional. Indicates if the request is made directly from the end user in which case the user_agent and ip_address fields can be populated from the HTTP request. This should *not* be set when using the javascript pixel. 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).", +"type": "boolean" +}, +"ipAddress": { +"description": "Optional. IP address of the user. This could be either IPv4 (e.g. 104.133.9.80) or IPv6 (e.g. 2001:0db8:85a3:0000:0000:8a2e:0370:7334). This should *not* be set when using the javascript pixel or if `direct_user_request` is set. Used to extract location information for personalization.", +"type": "string" +}, +"userAgent": { +"description": "Optional. User agent as included in the HTTP header. UTF-8 encoded string with a length limit of 1 KiB. This should *not* be set when using the JavaScript pixel or if `directUserRequest` is set.", +"type": "string" +}, +"userId": { +"description": "Optional. Unique identifier for logged-in user with a length limit of 128 bytes. Required only for logged-in users. Don't set for anonymous users. 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.", +"type": "string" +}, +"visitorId": { +"description": "Required. A unique identifier for tracking visitors with a length limit of 128 bytes. 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. Maximum length 128 bytes. Cannot be empty. 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.", +"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": "Recommendations AI (Beta)", +"version": "v1beta1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/redis.v1beta1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/redis.v1beta1.json new file mode 100644 index 0000000000000000000000000000000000000000..340e087bc709c9d35bcc00a7f7f1b27aec2bbd4e --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/redis.v1beta1.json @@ -0,0 +1,4675 @@ +{ +"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://redis.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Cloud Redis", +"description": "Creates and manages Redis instances on the Google Cloud Platform.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/memorystore/docs/redis/", +"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": "redis:v1beta1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://redis.mtls.googleapis.com/", +"name": "redis", +"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": "redis.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": "redis.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": { +"backupCollections": { +"methods": { +"get": { +"description": "Get a backup collection.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/backupCollections/{backupCollectionsId}", +"httpMethod": "GET", +"id": "redis.projects.locations.backupCollections.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Redis backupCollection resource name using the form: `projects/{project_id}/locations/{location_id}/backupCollections/{backup_collection_id}` where `location_id` refers to a GCP region.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/backupCollections/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "BackupCollection" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all backup collections owned by a consumer project in either the specified location (region) or all locations. If `location_id` is specified as `-` (wildcard), then all regions available to the project are queried, and the results are aggregated.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/backupCollections", +"httpMethod": "GET", +"id": "redis.projects.locations.backupCollections.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of items to return. If not specified, a default value of 1000 will be used by the service. Regardless of the page_size value, the response may include a partial list and a caller should only rely on response's `next_page_token` to determine if there are more clusters left to be queried.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The `next_page_token` value returned from a previous [ListBackupCollections] request, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the backupCollection location using the form: `projects/{project_id}/locations/{location_id}` where `location_id` refers to a GCP region.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/backupCollections", +"response": { +"$ref": "ListBackupCollectionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"backups": { +"methods": { +"delete": { +"description": "Deletes a specific backup.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/backupCollections/{backupCollectionsId}/backups/{backupsId}", +"httpMethod": "DELETE", +"id": "redis.projects.locations.backupCollections.backups.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Redis backup resource name using the form: `projects/{project_id}/locations/{location_id}/backupCollections/{backup_collection_id}/backups/{backup_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/backupCollections/[^/]+/backups/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Optional. Idempotent request UUID.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"export": { +"description": "Exports a specific backup to a customer target Cloud Storage URI.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/backupCollections/{backupCollectionsId}/backups/{backupsId}:export", +"httpMethod": "POST", +"id": "redis.projects.locations.backupCollections.backups.export", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Redis backup resource name using the form: `projects/{project_id}/locations/{location_id}/backupCollections/{backup_collection_id}/backups/{backup_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/backupCollections/[^/]+/backups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}:export", +"request": { +"$ref": "ExportBackupRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the details of a specific backup.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/backupCollections/{backupCollectionsId}/backups/{backupsId}", +"httpMethod": "GET", +"id": "redis.projects.locations.backupCollections.backups.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Redis backup resource name using the form: `projects/{project_id}/locations/{location_id}/backupCollections/{backup_collection_id}/backups/{backup_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/backupCollections/[^/]+/backups/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Backup" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all backups owned by a backup collection.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/backupCollections/{backupCollectionsId}/backups", +"httpMethod": "GET", +"id": "redis.projects.locations.backupCollections.backups.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. The maximum number of items to return. If not specified, a default value of 1000 will be used by the service. Regardless of the page_size value, the response may include a partial list and a caller should only rely on response's `next_page_token` to determine if there are more clusters left to be queried.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. The `next_page_token` value returned from a previous [ListBackupCollections] request, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the backupCollection using the form: `projects/{project_id}/locations/{location_id}/backupCollections/{backup_collection_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/backupCollections/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/backups", +"response": { +"$ref": "ListBackupsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"clusters": { +"methods": { +"backup": { +"description": "Backup Redis Cluster. If this is the first time a backup is being created, a backup collection will be created at the backend, and this backup belongs to this collection. Both collection and backup will have a resource name. Backup will be executed for each shard. A replica (primary if nonHA) will be selected to perform the execution. Backup call will be rejected if there is an ongoing backup or update operation. Be aware that during preview, if the cluster's internal software version is too old, critical update will be performed before actual backup. Once the internal software version is updated to the minimum version required by the backup feature, subsequent backups will not require critical update. After preview, there will be no critical update needed for backup.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}:backup", +"httpMethod": "POST", +"id": "redis.projects.locations.clusters.backup", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Redis cluster resource name using the form: `projects/{project_id}/locations/{location_id}/clusters/{cluster_id}` where `location_id` refers to a GCP region.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}:backup", +"request": { +"$ref": "BackupClusterRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"create": { +"description": "Creates a Redis cluster based on the specified properties. The creation is executed asynchronously and callers may check the returned operation to track its progress. Once the operation is completed the Redis cluster will be fully functional. The completed longrunning.Operation will contain the new cluster object in the response field. The returned operation is automatically deleted after a few hours, so there is no need to call DeleteOperation.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clusters", +"httpMethod": "POST", +"id": "redis.projects.locations.clusters.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"clusterId": { +"description": "Required. The logical name of the Redis cluster in the customer 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 customer project / location", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the cluster location using the form: `projects/{project_id}/locations/{location_id}` where `location_id` refers to a GCP region.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Idempotent request UUID.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+parent}/clusters", +"request": { +"$ref": "Cluster" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a specific Redis cluster. Cluster stops serving and data is deleted.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}", +"httpMethod": "DELETE", +"id": "redis.projects.locations.clusters.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Redis cluster resource name using the form: `projects/{project_id}/locations/{location_id}/clusters/{cluster_id}` where `location_id` refers to a GCP region.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Idempotent request UUID.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the details of a specific Redis cluster.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}", +"httpMethod": "GET", +"id": "redis.projects.locations.clusters.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Redis cluster resource name using the form: `projects/{project_id}/locations/{location_id}/clusters/{cluster_id}` where `location_id` refers to a GCP region.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Cluster" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getCertificateAuthority": { +"description": "Gets the details of certificate authority information for Redis cluster.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/certificateAuthority", +"httpMethod": "GET", +"id": "redis.projects.locations.clusters.getCertificateAuthority", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Redis cluster certificate authority resource name using the form: `projects/{project_id}/locations/{location_id}/clusters/{cluster_id}/certificateAuthority` where `location_id` refers to a GCP region.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+/certificateAuthority$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "CertificateAuthority" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all Redis clusters owned by a project in either the specified location (region) or all locations. The location should have the following format: * `projects/{project_id}/locations/{location_id}` If `location_id` is specified as `-` (wildcard), then all regions available to the project are queried, and the results are aggregated.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clusters", +"httpMethod": "GET", +"id": "redis.projects.locations.clusters.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of items to return. If not specified, a default value of 1000 will be used by the service. Regardless of the page_size value, the response may include a partial list and a caller should only rely on response's `next_page_token` to determine if there are more clusters left to be queried.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The `next_page_token` value returned from a previous ListClusters request, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the cluster location using the form: `projects/{project_id}/locations/{location_id}` where `location_id` refers to a GCP region.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/clusters", +"response": { +"$ref": "ListClustersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates the metadata and configuration of a specific Redis cluster. Completed longrunning.Operation will contain the new cluster object in the response field. The returned operation is automatically deleted after a few hours, so there is no need to call DeleteOperation.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}", +"httpMethod": "PATCH", +"id": "redis.projects.locations.clusters.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Identifier. Unique name of the resource in this scope including project and location using the form: `projects/{project_id}/locations/{location_id}/clusters/{cluster_id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Idempotent request UUID.", +"location": "query", +"type": "string" +}, +"updateMask": { +"description": "Required. Mask of fields to update. At least one path must be supplied in this field. The elements of the repeated paths field may only include these fields from Cluster: * `size_gb` * `replica_count`", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "Cluster" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"rescheduleClusterMaintenance": { +"description": "Reschedules upcoming maintenance event.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}:rescheduleClusterMaintenance", +"httpMethod": "POST", +"id": "redis.projects.locations.clusters.rescheduleClusterMaintenance", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Redis Cluster instance resource name using the form: `projects/{project_id}/locations/{location_id}/clusters/{cluster_id}` where `location_id` refers to a GCP region.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}:rescheduleClusterMaintenance", +"request": { +"$ref": "RescheduleClusterMaintenanceRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"instances": { +"methods": { +"create": { +"description": "Creates a Redis instance based on the specified tier and memory size. By default, the instance is accessible from the project's [default network](https://cloud.google.com/vpc/docs/vpc). The creation is executed asynchronously and callers may check the returned operation to track its progress. Once the operation is completed the Redis instance will be fully functional. The completed longrunning.Operation will contain the new instance object in the response field. The returned operation is automatically deleted after a few hours, so there is no need to call DeleteOperation.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/instances", +"httpMethod": "POST", +"id": "redis.projects.locations.instances.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"instanceId": { +"description": "Required. The logical name of the Redis instance in the customer 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", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the instance location using the form: `projects/{project_id}/locations/{location_id}` where `location_id` refers to a GCP region.", +"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 specific Redis instance. Instance stops serving and data is deleted.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}", +"httpMethod": "DELETE", +"id": "redis.projects.locations.instances.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Redis instance resource name using the form: `projects/{project_id}/locations/{location_id}/instances/{instance_id}` where `location_id` refers to a GCP region.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"export": { +"description": "Export Redis instance data into a Redis RDB format file in Cloud Storage. Redis will continue serving during this operation. The returned operation is automatically deleted after a few hours, so there is no need to call DeleteOperation.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:export", +"httpMethod": "POST", +"id": "redis.projects.locations.instances.export", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Redis instance resource name using the form: `projects/{project_id}/locations/{location_id}/instances/{instance_id}` where `location_id` refers to a GCP region.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}:export", +"request": { +"$ref": "ExportInstanceRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"failover": { +"description": "Initiates a failover of the primary node to current replica node for a specific STANDARD tier Cloud Memorystore for Redis instance.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:failover", +"httpMethod": "POST", +"id": "redis.projects.locations.instances.failover", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Redis instance resource name using the form: `projects/{project_id}/locations/{location_id}/instances/{instance_id}` where `location_id` refers to a GCP region.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}:failover", +"request": { +"$ref": "FailoverInstanceRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the details of a specific Redis instance.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}", +"httpMethod": "GET", +"id": "redis.projects.locations.instances.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Redis instance resource name using the form: `projects/{project_id}/locations/{location_id}/instances/{instance_id}` where `location_id` refers to a GCP region.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Instance" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"getAuthString": { +"description": "Gets the AUTH string for a Redis instance. If AUTH is not enabled for the instance the response will be empty. This information is not included in the details returned to GetInstance.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}/authString", +"httpMethod": "GET", +"id": "redis.projects.locations.instances.getAuthString", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Redis instance resource name using the form: `projects/{project_id}/locations/{location_id}/instances/{instance_id}` where `location_id` refers to a GCP region.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}/authString", +"response": { +"$ref": "InstanceAuthString" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"import": { +"description": "Import a Redis RDB snapshot file from Cloud Storage into a Redis instance. Redis may stop serving during this operation. Instance state will be IMPORTING for entire operation. When complete, the instance will contain only data from the imported file. The returned operation is automatically deleted after a few hours, so there is no need to call DeleteOperation.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:import", +"httpMethod": "POST", +"id": "redis.projects.locations.instances.import", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Redis instance resource name using the form: `projects/{project_id}/locations/{location_id}/instances/{instance_id}` where `location_id` refers to a GCP region.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}:import", +"request": { +"$ref": "ImportInstanceRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists all Redis instances owned by a project in either the specified location (region) or all locations. The location should have the following format: * `projects/{project_id}/locations/{location_id}` If `location_id` is specified as `-` (wildcard), then all regions available to the project are queried, and the results are aggregated.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/instances", +"httpMethod": "GET", +"id": "redis.projects.locations.instances.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of items to return. If not specified, a default value of 1000 will be used by the service. Regardless of the page_size value, the response may include a partial list and a caller should only rely on response's `next_page_token` to determine if there are more instances left to be queried.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "The `next_page_token` value returned from a previous ListInstances request, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the instance location using the form: `projects/{project_id}/locations/{location_id}` where `location_id` refers to a GCP region.", +"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 the metadata and configuration of a specific Redis instance. Completed longrunning.Operation will contain the new instance object in the response field. The returned operation is automatically deleted after a few hours, so there is no need to call DeleteOperation.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}", +"httpMethod": "PATCH", +"id": "redis.projects.locations.instances.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Unique name of the resource in this scope including project and location using the form: `projects/{project_id}/locations/{location_id}/instances/{instance_id}` Note: Redis instances are managed and addressed at regional level so location_id here refers to a GCP region; however, users may choose which specific zone (or collection of zones for cross-zone instances) an instance should be provisioned in. Refer to location_id and alternative_location_id fields for more details.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. Mask of fields to update. At least one path must be supplied in this field. The elements of the repeated paths field may only include these fields from Instance: * `displayName` * `labels` * `memorySizeGb` * `redisConfig` * `replica_count`", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "Instance" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"rescheduleMaintenance": { +"description": "Reschedule maintenance for a given instance in a given project and location.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:rescheduleMaintenance", +"httpMethod": "POST", +"id": "redis.projects.locations.instances.rescheduleMaintenance", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Redis instance resource name using the form: `projects/{project_id}/locations/{location_id}/instances/{instance_id}` where `location_id` refers to a GCP region.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}:rescheduleMaintenance", +"request": { +"$ref": "RescheduleMaintenanceRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"upgrade": { +"description": "Upgrades Redis instance to the newer Redis version specified in the request.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:upgrade", +"httpMethod": "POST", +"id": "redis.projects.locations.instances.upgrade", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Redis instance resource name using the form: `projects/{project_id}/locations/{location_id}/instances/{instance_id}` where `location_id` refers to a GCP region.", +"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" +] +} +} +}, +"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": "redis.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", +"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": "redis.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": "redis.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": "redis.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": "20250104", +"rootUrl": "https://redis.googleapis.com/", +"schemas": { +"AOFConfig": { +"description": "Configuration of the AOF based persistence.", +"id": "AOFConfig", +"properties": { +"appendFsync": { +"description": "Optional. fsync configuration.", +"enum": [ +"APPEND_FSYNC_UNSPECIFIED", +"NO", +"EVERYSEC", +"ALWAYS" +], +"enumDescriptions": [ +"Not set. Default: EVERYSEC", +"Never fsync. Normally Linux will flush data every 30 seconds with this configuration, but it's up to the kernel's exact tuning.", +"fsync every second. Fast enough, and you may lose 1 second of data if there is a disaster", +"fsync every time new write commands are appended to the AOF. It has the best data loss protection at the cost of performance" +], +"type": "string" +} +}, +"type": "object" +}, +"AutomatedBackupConfig": { +"description": "The automated backup config for a cluster.", +"id": "AutomatedBackupConfig", +"properties": { +"automatedBackupMode": { +"description": "Optional. The automated backup mode. If the mode is disabled, the other fields will be ignored.", +"enum": [ +"AUTOMATED_BACKUP_MODE_UNSPECIFIED", +"DISABLED", +"ENABLED" +], +"enumDescriptions": [ +"Default value. Automated backup config is not specified.", +"Automated backup config disabled.", +"Automated backup config enabled." +], +"type": "string" +}, +"fixedFrequencySchedule": { +"$ref": "FixedFrequencySchedule", +"description": "Optional. Trigger automated backups at a fixed frequency." +}, +"retention": { +"description": "Optional. How long to keep automated backups before the backups are deleted. The value should be between 1 day and 365 days. If not specified, the default value is 35 days.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"AvailabilityConfiguration": { +"description": "Configuration for availability of database instance", +"id": "AvailabilityConfiguration", +"properties": { +"automaticFailoverRoutingConfigured": { +"description": "Checks for existence of (multi-cluster) routing configuration that allows automatic failover to a different zone/region in case of an outage. Applicable to Bigtable resources.", +"type": "boolean" +}, +"availabilityType": { +"description": "Availability type. Potential values: * `ZONAL`: The instance serves data from only one zone. Outages in that zone affect data accessibility. * `REGIONAL`: The instance can serve data from more than one zone in a region (it is highly available).", +"enum": [ +"AVAILABILITY_TYPE_UNSPECIFIED", +"ZONAL", +"REGIONAL", +"MULTI_REGIONAL", +"AVAILABILITY_TYPE_OTHER" +], +"enumDescriptions": [ +"", +"Zonal available instance.", +"Regional available instance.", +"Multi regional instance", +"For rest of the other category" +], +"type": "string" +}, +"crossRegionReplicaConfigured": { +"description": "Checks for resources that are configured to have redundancy, and ongoing replication across regions", +"type": "boolean" +}, +"externalReplicaConfigured": { +"type": "boolean" +}, +"promotableReplicaConfigured": { +"type": "boolean" +} +}, +"type": "object" +}, +"Backup": { +"description": "Backup of a cluster.", +"id": "Backup", +"properties": { +"backupFiles": { +"description": "Output only. List of backup files of the backup.", +"items": { +"$ref": "BackupFile" +}, +"readOnly": true, +"type": "array" +}, +"backupType": { +"description": "Output only. Type of the backup.", +"enum": [ +"BACKUP_TYPE_UNSPECIFIED", +"ON_DEMAND", +"AUTOMATED" +], +"enumDescriptions": [ +"The default value, not set.", +"On-demand backup.", +"Automated backup." +], +"readOnly": true, +"type": "string" +}, +"cluster": { +"description": "Output only. Cluster resource path of this backup.", +"readOnly": true, +"type": "string" +}, +"clusterUid": { +"description": "Output only. Cluster uid of this backup.", +"readOnly": true, +"type": "string" +}, +"createTime": { +"description": "Output only. The time when the backup was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"encryptionInfo": { +"$ref": "EncryptionInfo", +"description": "Output only. Encryption information of the backup.", +"readOnly": true +}, +"engineVersion": { +"description": "Output only. redis-7.2, valkey-7.5", +"readOnly": true, +"type": "string" +}, +"expireTime": { +"description": "Output only. The time when the backup will expire.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Identifier. Full resource path of the backup. the last part of the name is the backup id with the following format: [YYYYMMDDHHMMSS]_[Shorted Cluster UID] OR customer specified while backup cluster. Example: 20240515123000_1234", +"type": "string" +}, +"nodeType": { +"description": "Output only. Node type of the cluster.", +"enum": [ +"NODE_TYPE_UNSPECIFIED", +"REDIS_SHARED_CORE_NANO", +"REDIS_HIGHMEM_MEDIUM", +"REDIS_HIGHMEM_XLARGE", +"REDIS_STANDARD_SMALL" +], +"enumDescriptions": [ +"Node type unspecified", +"Redis shared core nano node_type.", +"Redis highmem medium node_type.", +"Redis highmem xlarge node_type.", +"Redis standard small node_type." +], +"readOnly": true, +"type": "string" +}, +"replicaCount": { +"description": "Output only. Number of replicas for the cluster.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"shardCount": { +"description": "Output only. Number of shards for the cluster.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"state": { +"description": "Output only. State of the backup.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"ACTIVE", +"DELETING", +"SUSPENDED" +], +"enumDescriptions": [ +"The default value, not set.", +"The backup is being created.", +"The backup is active to be used.", +"The backup is being deleted.", +"The backup is currently suspended due to reasons like project deletion, billing account closure, etc." +], +"readOnly": true, +"type": "string" +}, +"totalSizeBytes": { +"description": "Output only. Total size of the backup in bytes.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"uid": { +"description": "Output only. System assigned unique identifier of the backup.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"BackupClusterRequest": { +"description": "Request for [BackupCluster].", +"id": "BackupClusterRequest", +"properties": { +"backupId": { +"description": "Optional. The id of the backup to be created. If not specified, the default value ([YYYYMMDDHHMMSS]_[Shortened Cluster UID] is used.", +"type": "string" +}, +"ttl": { +"description": "Optional. TTL for the backup to expire. Value range is 1 day to 100 years. If not specified, the default value is 100 years.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"BackupCollection": { +"description": "BackupCollection of a cluster.", +"id": "BackupCollection", +"properties": { +"cluster": { +"description": "Output only. The full resource path of the cluster the backup collection belongs to. Example: projects/{project}/locations/{location}/clusters/{cluster}", +"readOnly": true, +"type": "string" +}, +"clusterUid": { +"description": "Output only. The cluster uid of the backup collection.", +"readOnly": true, +"type": "string" +}, +"kmsKey": { +"description": "Output only. The KMS key used to encrypt the backups under this backup collection.", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Identifier. Full resource path of the backup collection.", +"type": "string" +}, +"uid": { +"description": "Output only. System assigned unique identifier of the backup collection.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"BackupConfiguration": { +"description": "Configuration for automatic backups", +"id": "BackupConfiguration", +"properties": { +"automatedBackupEnabled": { +"description": "Whether customer visible automated backups are enabled on the instance.", +"type": "boolean" +}, +"backupRetentionSettings": { +"$ref": "RetentionSettings", +"description": "Backup retention settings." +}, +"pointInTimeRecoveryEnabled": { +"description": "Whether point-in-time recovery is enabled. This is optional field, if the database service does not have this feature or metadata is not available in control plane, this can be omitted.", +"type": "boolean" +} +}, +"type": "object" +}, +"BackupFile": { +"description": "Backup is consisted of multiple backup files.", +"id": "BackupFile", +"properties": { +"createTime": { +"description": "Output only. The time when the backup file was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"fileName": { +"description": "Output only. e.g: .rdb", +"readOnly": true, +"type": "string" +}, +"sizeBytes": { +"description": "Output only. Size of the backup file in bytes.", +"format": "int64", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"BackupRun": { +"description": "A backup run.", +"id": "BackupRun", +"properties": { +"endTime": { +"description": "The time the backup operation completed. REQUIRED", +"format": "google-datetime", +"type": "string" +}, +"error": { +"$ref": "OperationError", +"description": "Information about why the backup operation failed. This is only present if the run has the FAILED status. OPTIONAL" +}, +"startTime": { +"description": "The time the backup operation started. REQUIRED", +"format": "google-datetime", +"type": "string" +}, +"status": { +"description": "The status of this run. REQUIRED", +"enum": [ +"STATUS_UNSPECIFIED", +"SUCCESSFUL", +"FAILED" +], +"enumDescriptions": [ +"", +"The backup was successful.", +"The backup was unsuccessful." +], +"type": "string" +} +}, +"type": "object" +}, +"CertChain": { +"id": "CertChain", +"properties": { +"certificates": { +"description": "The certificates that form the CA chain, from leaf to root order.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"CertificateAuthority": { +"description": "Redis cluster certificate authority", +"id": "CertificateAuthority", +"properties": { +"managedServerCa": { +"$ref": "ManagedCertificateAuthority" +}, +"name": { +"description": "Identifier. Unique name of the resource in this scope including project, location and cluster using the form: `projects/{project}/locations/{location}/clusters/{cluster}/certificateAuthority`", +"type": "string" +} +}, +"type": "object" +}, +"Cluster": { +"description": "A cluster instance.", +"id": "Cluster", +"properties": { +"authorizationMode": { +"description": "Optional. The authorization mode of the Redis cluster. If not provided, auth feature is disabled for the cluster.", +"enum": [ +"AUTH_MODE_UNSPECIFIED", +"AUTH_MODE_IAM_AUTH", +"AUTH_MODE_DISABLED" +], +"enumDescriptions": [ +"Not set.", +"IAM basic authorization mode", +"Authorization disabled mode" +], +"type": "string" +}, +"automatedBackupConfig": { +"$ref": "AutomatedBackupConfig", +"description": "Optional. The automated backup config for the cluster." +}, +"backupCollection": { +"description": "Optional. Output only. The backup collection full resource name. Example: projects/{project}/locations/{location}/backupCollections/{collection}", +"readOnly": true, +"type": "string" +}, +"clusterEndpoints": { +"description": "Optional. A list of cluster enpoints.", +"items": { +"$ref": "ClusterEndpoint" +}, +"type": "array" +}, +"createTime": { +"description": "Output only. The timestamp associated with the cluster creation request.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"crossClusterReplicationConfig": { +"$ref": "CrossClusterReplicationConfig", +"description": "Optional. Cross cluster replication config." +}, +"deletionProtectionEnabled": { +"description": "Optional. The delete operation will fail when the value is set to true.", +"type": "boolean" +}, +"discoveryEndpoints": { +"description": "Output only. Endpoints created on each given network, for Redis clients to connect to the cluster. Currently only one discovery endpoint is supported.", +"items": { +"$ref": "DiscoveryEndpoint" +}, +"readOnly": true, +"type": "array" +}, +"encryptionInfo": { +"$ref": "EncryptionInfo", +"description": "Output only. Encryption information of the data at rest of the cluster.", +"readOnly": true +}, +"gcsSource": { +"$ref": "GcsBackupSource", +"description": "Optional. Backups stored in Cloud Storage buckets. The Cloud Storage buckets need to be the same region as the clusters. Read permission is required to import from the provided Cloud Storage objects." +}, +"kmsKey": { +"description": "Optional. The KMS key used to encrypt the at-rest data of the cluster.", +"type": "string" +}, +"maintenancePolicy": { +"$ref": "ClusterMaintenancePolicy", +"description": "Optional. ClusterMaintenancePolicy determines when to allow or deny updates." +}, +"maintenanceSchedule": { +"$ref": "ClusterMaintenanceSchedule", +"description": "Output only. ClusterMaintenanceSchedule Output only Published maintenance schedule.", +"readOnly": true +}, +"managedBackupSource": { +"$ref": "ManagedBackupSource", +"description": "Optional. Backups generated and managed by memorystore service." +}, +"name": { +"description": "Required. Identifier. Unique name of the resource in this scope including project and location using the form: `projects/{project_id}/locations/{location_id}/clusters/{cluster_id}`", +"type": "string" +}, +"nodeType": { +"description": "Optional. The type of a redis node in the cluster. NodeType determines the underlying machine-type of a redis node.", +"enum": [ +"NODE_TYPE_UNSPECIFIED", +"REDIS_SHARED_CORE_NANO", +"REDIS_HIGHMEM_MEDIUM", +"REDIS_HIGHMEM_XLARGE", +"REDIS_STANDARD_SMALL" +], +"enumDescriptions": [ +"Node type unspecified", +"Redis shared core nano node_type.", +"Redis highmem medium node_type.", +"Redis highmem xlarge node_type.", +"Redis standard small node_type." +], +"type": "string" +}, +"persistenceConfig": { +"$ref": "ClusterPersistenceConfig", +"description": "Optional. Persistence config (RDB, AOF) for the cluster." +}, +"preciseSizeGb": { +"description": "Output only. Precise value of redis memory size in GB for the entire cluster.", +"format": "double", +"readOnly": true, +"type": "number" +}, +"pscConfigs": { +"description": "Optional. Each PscConfig configures the consumer network where IPs will be designated to the cluster for client access through Private Service Connect Automation. Currently, only one PscConfig is supported.", +"items": { +"$ref": "PscConfig" +}, +"type": "array" +}, +"pscConnections": { +"description": "Output only. The list of PSC connections that are auto-created through service connectivity automation.", +"items": { +"$ref": "PscConnection" +}, +"readOnly": true, +"type": "array" +}, +"pscServiceAttachments": { +"description": "Output only. Service attachment details to configure Psc connections", +"items": { +"$ref": "PscServiceAttachment" +}, +"readOnly": true, +"type": "array" +}, +"redisConfigs": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Key/Value pairs of customer overrides for mutable Redis Configs", +"type": "object" +}, +"replicaCount": { +"description": "Optional. The number of replica nodes per shard.", +"format": "int32", +"type": "integer" +}, +"shardCount": { +"description": "Optional. Number of shards for the Redis cluster.", +"format": "int32", +"type": "integer" +}, +"sizeGb": { +"description": "Output only. Redis memory size in GB for the entire cluster rounded up to the next integer.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"state": { +"description": "Output only. The current state of this cluster. Can be CREATING, READY, UPDATING, DELETING and SUSPENDED", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"ACTIVE", +"UPDATING", +"DELETING" +], +"enumDescriptions": [ +"Not set.", +"Redis cluster is being created.", +"Redis cluster has been created and is fully usable.", +"Redis cluster configuration is being updated.", +"Redis cluster is being deleted." +], +"readOnly": true, +"type": "string" +}, +"stateInfo": { +"$ref": "StateInfo", +"description": "Output only. Additional information about the current state of the cluster.", +"readOnly": true +}, +"transitEncryptionMode": { +"description": "Optional. The in-transit encryption for the Redis cluster. If not provided, encryption is disabled for the cluster.", +"enum": [ +"TRANSIT_ENCRYPTION_MODE_UNSPECIFIED", +"TRANSIT_ENCRYPTION_MODE_DISABLED", +"TRANSIT_ENCRYPTION_MODE_SERVER_AUTHENTICATION" +], +"enumDescriptions": [ +"In-transit encryption not set.", +"In-transit encryption disabled.", +"Use server managed encryption for in-transit encryption." +], +"type": "string" +}, +"uid": { +"description": "Output only. System assigned, unique identifier for the cluster.", +"readOnly": true, +"type": "string" +}, +"zoneDistributionConfig": { +"$ref": "ZoneDistributionConfig", +"description": "Optional. This config will be used to determine how the customer wants us to distribute cluster resources within the region." +} +}, +"type": "object" +}, +"ClusterEndpoint": { +"description": "ClusterEndpoint consists of PSC connections that are created as a group in each VPC network for accessing the cluster. In each group, there shall be one connection for each service attachment in the cluster.", +"id": "ClusterEndpoint", +"properties": { +"connections": { +"description": "A group of PSC connections. They are created in the same VPC network, one for each service attachment in the cluster.", +"items": { +"$ref": "ConnectionDetail" +}, +"type": "array" +} +}, +"type": "object" +}, +"ClusterMaintenancePolicy": { +"description": "Maintenance policy per cluster.", +"id": "ClusterMaintenancePolicy", +"properties": { +"createTime": { +"description": "Output only. The time when the policy was created i.e. Maintenance Window or Deny Period was assigned.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"updateTime": { +"description": "Output only. The time when the policy was updated i.e. Maintenance Window or Deny Period was updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"weeklyMaintenanceWindow": { +"description": "Optional. Maintenance window that is applied to resources covered by this policy. Minimum 1. For the current version, the maximum number of weekly_maintenance_window is expected to be one.", +"items": { +"$ref": "ClusterWeeklyMaintenanceWindow" +}, +"type": "array" +} +}, +"type": "object" +}, +"ClusterMaintenanceSchedule": { +"description": "Upcoming maitenance schedule.", +"id": "ClusterMaintenanceSchedule", +"properties": { +"endTime": { +"description": "Output only. The end time of any upcoming scheduled maintenance for this instance.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"startTime": { +"description": "Output only. The start time of any upcoming scheduled maintenance for this instance.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ClusterPersistenceConfig": { +"description": "Configuration of the persistence functionality.", +"id": "ClusterPersistenceConfig", +"properties": { +"aofConfig": { +"$ref": "AOFConfig", +"description": "Optional. AOF configuration. This field will be ignored if mode is not AOF." +}, +"mode": { +"description": "Optional. The mode of persistence.", +"enum": [ +"PERSISTENCE_MODE_UNSPECIFIED", +"DISABLED", +"RDB", +"AOF" +], +"enumDescriptions": [ +"Not set.", +"Persistence is disabled, and any snapshot data is deleted.", +"RDB based persistence is enabled.", +"AOF based persistence is enabled." +], +"type": "string" +}, +"rdbConfig": { +"$ref": "RDBConfig", +"description": "Optional. RDB configuration. This field will be ignored if mode is not RDB." +} +}, +"type": "object" +}, +"ClusterWeeklyMaintenanceWindow": { +"description": "Time window specified for weekly operations.", +"id": "ClusterWeeklyMaintenanceWindow", +"properties": { +"day": { +"description": "Allows to define schedule that runs specified 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" +}, +"startTime": { +"$ref": "TimeOfDay", +"description": "Start time of the window in UTC." +} +}, +"type": "object" +}, +"Compliance": { +"description": "Contains compliance information about a security standard indicating unmet recommendations.", +"id": "Compliance", +"properties": { +"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" +}, +"ConnectionDetail": { +"description": "Detailed information of each PSC connection.", +"id": "ConnectionDetail", +"properties": { +"pscAutoConnection": { +"$ref": "PscAutoConnection", +"description": "Detailed information of a PSC connection that is created through service connectivity automation." +}, +"pscConnection": { +"$ref": "PscConnection", +"description": "Detailed information of a PSC connection that is created by the customer who owns the cluster." +} +}, +"type": "object" +}, +"CrossClusterReplicationConfig": { +"description": "Cross cluster replication config.", +"id": "CrossClusterReplicationConfig", +"properties": { +"clusterRole": { +"description": "The role of the cluster in cross cluster replication.", +"enum": [ +"CLUSTER_ROLE_UNSPECIFIED", +"NONE", +"PRIMARY", +"SECONDARY" +], +"enumDescriptions": [ +"Cluster role is not set. The behavior is equivalent to NONE.", +"This cluster does not participate in cross cluster replication. It is an independent cluster and does not replicate to or from any other clusters.", +"A cluster that allows both reads and writes. Any data written to this cluster is also replicated to the attached secondary clusters.", +"A cluster that allows only reads and replicates data from a primary cluster." +], +"type": "string" +}, +"membership": { +"$ref": "Membership", +"description": "Output only. An output only view of all the member clusters participating in the cross cluster replication. This view will be provided by every member cluster irrespective of its cluster role(primary or secondary). A primary cluster can provide information about all the secondary clusters replicating from it. However, a secondary cluster only knows about the primary cluster from which it is replicating. However, for scenarios, where the primary cluster is unavailable(e.g. regional outage), a GetCluster request can be sent to any other member cluster and this field will list all the member clusters participating in cross cluster replication.", +"readOnly": true +}, +"primaryCluster": { +"$ref": "RemoteCluster", +"description": "Details of the primary cluster that is used as the replication source for this secondary cluster. This field is only set for a secondary cluster." +}, +"secondaryClusters": { +"description": "List of secondary clusters that are replicating from this primary cluster. This field is only set for a primary cluster.", +"items": { +"$ref": "RemoteCluster" +}, +"type": "array" +}, +"updateTime": { +"description": "Output only. The last time cross cluster replication config was updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"CustomMetadataData": { +"description": "Any custom metadata associated with the resource. e.g. A spanner instance can have multiple databases with its own unique metadata. Information for these individual databases can be captured in custom metadata data", +"id": "CustomMetadataData", +"properties": { +"internalResourceMetadata": { +"description": "Metadata for individual internal resources in an instance. e.g. spanner instance can have multiple databases with unique configuration.", +"items": { +"$ref": "InternalResourceMetadata" +}, +"type": "array" +} +}, +"type": "object" +}, +"DatabaseResourceFeed": { +"description": "DatabaseResourceFeed is the top level proto to be used to ingest different database resource level events into Condor platform.", +"id": "DatabaseResourceFeed", +"properties": { +"feedTimestamp": { +"description": "Required. Timestamp when feed is generated.", +"format": "google-datetime", +"type": "string" +}, +"feedType": { +"description": "Required. Type feed to be ingested into condor", +"enum": [ +"FEEDTYPE_UNSPECIFIED", +"RESOURCE_METADATA", +"OBSERVABILITY_DATA", +"SECURITY_FINDING_DATA", +"RECOMMENDATION_SIGNAL_DATA" +], +"enumDescriptions": [ +"", +"Database resource metadata feed from control plane", +"Database resource monitoring data", +"Database resource security health signal data", +"Database resource recommendation signal data" +], +"type": "string" +}, +"observabilityMetricData": { +"$ref": "ObservabilityMetricData" +}, +"recommendationSignalData": { +"$ref": "DatabaseResourceRecommendationSignalData" +}, +"resourceHealthSignalData": { +"$ref": "DatabaseResourceHealthSignalData" +}, +"resourceId": { +"$ref": "DatabaseResourceId", +"deprecated": true, +"description": "Primary key associated with the Resource. resource_id is available in individual feed level as well." +}, +"resourceMetadata": { +"$ref": "DatabaseResourceMetadata" +} +}, +"type": "object" +}, +"DatabaseResourceHealthSignalData": { +"description": "Common model for database resource health signal data.", +"id": "DatabaseResourceHealthSignalData", +"properties": { +"additionalMetadata": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Any other additional metadata", +"type": "object" +}, +"compliance": { +"description": "Industry standards associated with this signal; if this signal is an issue, that could be a violation of the associated industry standard(s). For example, AUTO_BACKUP_DISABLED signal is associated with CIS GCP 1.1, CIS GCP 1.2, CIS GCP 1.3, NIST 800-53 and ISO-27001 compliance standards. If a database resource does not have automated backup enable, it will violate these following industry standards.", +"items": { +"$ref": "Compliance" +}, +"type": "array" +}, +"description": { +"description": "Description associated with signal", +"type": "string" +}, +"eventTime": { +"description": "Required. The last time at which the event described by this signal took place", +"format": "google-datetime", +"type": "string" +}, +"externalUri": { +"description": "The external-uri of the signal, using which more information about this signal can be obtained. In GCP, this will take user to SCC page to get more details about signals.", +"type": "string" +}, +"name": { +"description": "Required. The name of the signal, ex: PUBLIC_SQL_INSTANCE, SQL_LOG_ERROR_VERBOSITY etc.", +"type": "string" +}, +"provider": { +"description": "Cloud provider name. Ex: GCP/AWS/Azure/OnPrem/SelfManaged", +"enum": [ +"PROVIDER_UNSPECIFIED", +"GCP", +"AWS", +"AZURE", +"ONPREM", +"SELFMANAGED", +"PROVIDER_OTHER" +], +"enumDescriptions": [ +"", +"Google cloud platform provider", +"Amazon web service", +"Azure web service", +"On-prem database resources.", +"Self-managed database provider. These are resources on a cloud platform, e.g., database resource installed in a GCE VM, but not a managed database service.", +"For the rest of the other categories. Other refers to the rest of other database service providers, this could be smaller cloud provider. This needs to be provided when the provider is known, but it is not present in the existing set of enum values." +], +"type": "string" +}, +"resourceContainer": { +"description": "Closest parent container of this resource. In GCP, 'container' refers to a Cloud Resource Manager project. It must be resource name of a Cloud Resource Manager project with the format of \"provider//\", such as \"projects/123\". For GCP provided resources, number should be project number.", +"type": "string" +}, +"resourceName": { +"description": "Required. Database resource name associated with the signal. Resource name to follow CAIS resource_name format as noted here go/condor-common-datamodel", +"type": "string" +}, +"signalClass": { +"description": "Required. The class of the signal, such as if it's a THREAT or VULNERABILITY.", +"enum": [ +"CLASS_UNSPECIFIED", +"THREAT", +"VULNERABILITY", +"MISCONFIGURATION", +"OBSERVATION", +"ERROR" +], +"enumDescriptions": [ +"Unspecified signal 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." +], +"type": "string" +}, +"signalId": { +"description": "Required. Unique identifier for the signal. This is an unique id which would be mainatined by partner to identify a signal.", +"type": "string" +}, +"signalSeverity": { +"description": "The severity of the signal, such as if it's a HIGH or LOW severity.", +"enum": [ +"SIGNAL_SEVERITY_UNSPECIFIED", +"CRITICAL", +"HIGH", +"MEDIUM", +"LOW" +], +"enumDescriptions": [ +"This value is used for findings when a source doesn't write a severity value.", +"A critical vulnerability is easily discoverable by an external actor, exploitable.", +"A high risk vulnerability can be easily discovered and exploited in combination with other vulnerabilities.", +"A medium risk vulnerability could be used by an actor to gain access to resources or privileges that enable them to eventually gain access and the ability to execute arbitrary code or exfiltrate data.", +"A low risk vulnerability hampers a security organization's ability to detect vulnerabilities or active threats in their deployment." +], +"type": "string" +}, +"signalType": { +"description": "Required. Type of signal, for example, `AVAILABLE_IN_MULTIPLE_ZONES`, `LOGGING_MOST_ERRORS`, etc.", +"enum": [ +"SIGNAL_TYPE_UNSPECIFIED", +"SIGNAL_TYPE_NOT_PROTECTED_BY_AUTOMATIC_FAILOVER", +"SIGNAL_TYPE_GROUP_NOT_REPLICATING_ACROSS_REGIONS", +"SIGNAL_TYPE_NOT_AVAILABLE_IN_MULTIPLE_ZONES", +"SIGNAL_TYPE_NOT_AVAILABLE_IN_MULTIPLE_REGIONS", +"SIGNAL_TYPE_NO_PROMOTABLE_REPLICA", +"SIGNAL_TYPE_NO_AUTOMATED_BACKUP_POLICY", +"SIGNAL_TYPE_SHORT_BACKUP_RETENTION", +"SIGNAL_TYPE_LAST_BACKUP_FAILED", +"SIGNAL_TYPE_LAST_BACKUP_OLD", +"SIGNAL_TYPE_VIOLATES_CIS_GCP_FOUNDATION_2_0", +"SIGNAL_TYPE_VIOLATES_CIS_GCP_FOUNDATION_1_3", +"SIGNAL_TYPE_VIOLATES_CIS_GCP_FOUNDATION_1_2", +"SIGNAL_TYPE_VIOLATES_CIS_GCP_FOUNDATION_1_1", +"SIGNAL_TYPE_VIOLATES_CIS_GCP_FOUNDATION_1_0", +"SIGNAL_TYPE_VIOLATES_CIS_CONTROLS_V8_0", +"SIGNAL_TYPE_VIOLATES_NIST_800_53", +"SIGNAL_TYPE_VIOLATES_NIST_800_53_R5", +"SIGNAL_TYPE_VIOLATES_NIST_CYBERSECURITY_FRAMEWORK_V1_0", +"SIGNAL_TYPE_VIOLATES_ISO_27001", +"SIGNAL_TYPE_VIOLATES_ISO_27001_V2022", +"SIGNAL_TYPE_VIOLATES_PCI_DSS_V3_2_1", +"SIGNAL_TYPE_VIOLATES_PCI_DSS_V4_0", +"SIGNAL_TYPE_VIOLATES_CLOUD_CONTROLS_MATRIX_V4", +"SIGNAL_TYPE_VIOLATES_HIPAA", +"SIGNAL_TYPE_VIOLATES_SOC2_V2017", +"SIGNAL_TYPE_LOGS_NOT_OPTIMIZED_FOR_TROUBLESHOOTING", +"SIGNAL_TYPE_QUERY_DURATIONS_NOT_LOGGED", +"SIGNAL_TYPE_VERBOSE_ERROR_LOGGING", +"SIGNAL_TYPE_QUERY_LOCK_WAITS_NOT_LOGGED", +"SIGNAL_TYPE_LOGGING_MOST_ERRORS", +"SIGNAL_TYPE_LOGGING_ONLY_CRITICAL_ERRORS", +"SIGNAL_TYPE_MINIMAL_ERROR_LOGGING", +"SIGNAL_TYPE_QUERY_STATISTICS_LOGGED", +"SIGNAL_TYPE_EXCESSIVE_LOGGING_OF_CLIENT_HOSTNAME", +"SIGNAL_TYPE_EXCESSIVE_LOGGING_OF_PARSER_STATISTICS", +"SIGNAL_TYPE_EXCESSIVE_LOGGING_OF_PLANNER_STATISTICS", +"SIGNAL_TYPE_NOT_LOGGING_ONLY_DDL_STATEMENTS", +"SIGNAL_TYPE_LOGGING_QUERY_STATISTICS", +"SIGNAL_TYPE_NOT_LOGGING_TEMPORARY_FILES", +"SIGNAL_TYPE_CONNECTION_MAX_NOT_CONFIGURED", +"SIGNAL_TYPE_USER_OPTIONS_CONFIGURED", +"SIGNAL_TYPE_EXPOSED_TO_PUBLIC_ACCESS", +"SIGNAL_TYPE_UNENCRYPTED_CONNECTIONS", +"SIGNAL_TYPE_NO_ROOT_PASSWORD", +"SIGNAL_TYPE_WEAK_ROOT_PASSWORD", +"SIGNAL_TYPE_ENCRYPTION_KEY_NOT_CUSTOMER_MANAGED", +"SIGNAL_TYPE_SERVER_AUTHENTICATION_NOT_REQUIRED", +"SIGNAL_TYPE_EXPOSED_BY_OWNERSHIP_CHAINING", +"SIGNAL_TYPE_EXPOSED_TO_EXTERNAL_SCRIPTS", +"SIGNAL_TYPE_EXPOSED_TO_LOCAL_DATA_LOADS", +"SIGNAL_TYPE_CONNECTION_ATTEMPTS_NOT_LOGGED", +"SIGNAL_TYPE_DISCONNECTIONS_NOT_LOGGED", +"SIGNAL_TYPE_LOGGING_EXCESSIVE_STATEMENT_INFO", +"SIGNAL_TYPE_EXPOSED_TO_REMOTE_ACCESS", +"SIGNAL_TYPE_DATABASE_NAMES_EXPOSED", +"SIGNAL_TYPE_SENSITIVE_TRACE_INFO_NOT_MASKED", +"SIGNAL_TYPE_PUBLIC_IP_ENABLED", +"SIGNAL_TYPE_IDLE", +"SIGNAL_TYPE_OVERPROVISIONED", +"SIGNAL_TYPE_HIGH_NUMBER_OF_OPEN_TABLES", +"SIGNAL_TYPE_HIGH_NUMBER_OF_TABLES", +"SIGNAL_TYPE_HIGH_TRANSACTION_ID_UTILIZATION", +"SIGNAL_TYPE_UNDERPROVISIONED", +"SIGNAL_TYPE_OUT_OF_DISK", +"SIGNAL_TYPE_SERVER_CERTIFICATE_NEAR_EXPIRY", +"SIGNAL_TYPE_DATABASE_AUDITING_DISABLED", +"SIGNAL_TYPE_RESTRICT_AUTHORIZED_NETWORKS", +"SIGNAL_TYPE_VIOLATE_POLICY_RESTRICT_PUBLIC_IP", +"SIGNAL_TYPE_QUOTA_LIMIT", +"SIGNAL_TYPE_NO_PASSWORD_POLICY", +"SIGNAL_TYPE_CONNECTIONS_PERFORMANCE_IMPACT", +"SIGNAL_TYPE_TMP_TABLES_PERFORMANCE_IMPACT", +"SIGNAL_TYPE_TRANS_LOGS_PERFORMANCE_IMPACT", +"SIGNAL_TYPE_HIGH_JOINS_WITHOUT_INDEXES", +"SIGNAL_TYPE_SUPERUSER_WRITING_TO_USER_TABLES", +"SIGNAL_TYPE_USER_GRANTED_ALL_PERMISSIONS", +"SIGNAL_TYPE_DATA_EXPORT_TO_EXTERNAL_CLOUD_STORAGE_BUCKET", +"SIGNAL_TYPE_DATA_EXPORT_TO_PUBLIC_CLOUD_STORAGE_BUCKET", +"SIGNAL_TYPE_WEAK_PASSWORD_HASH_ALGORITHM", +"SIGNAL_TYPE_NO_USER_PASSWORD_POLICY" +], +"enumDeprecated": [ +false, +false, +false, +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, +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, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false +], +"enumDescriptions": [ +"Unspecified.", +"Represents if a resource is protected by automatic failover. Checks for resources that are configured to have redundancy within a region that enables automatic failover.", +"Represents if a group is replicating across regions. Checks for resources that are configured to have redundancy, and ongoing replication, across regions.", +"Represents if the resource is available in multiple zones or not.", +"Represents if a resource is available in multiple regions.", +"Represents if a resource has a promotable replica.", +"Represents if a resource has an automated backup policy.", +"Represents if a resources has a short backup retention period.", +"Represents if the last backup of a resource failed.", +"Represents if the last backup of a resource is older than some threshold value.", +"Represents if a resource violates CIS GCP Foundation 2.0.", +"Represents if a resource violates CIS GCP Foundation 1.3.", +"Represents if a resource violates CIS GCP Foundation 1.2.", +"Represents if a resource violates CIS GCP Foundation 1.1.", +"Represents if a resource violates CIS GCP Foundation 1.0.", +"Represents if a resource violates CIS Controls 8.0.", +"Represents if a resource violates NIST 800-53.", +"Represents if a resource violates NIST 800-53 R5.", +"Represents if a resource violates NIST Cybersecurity Framework 1.0.", +"Represents if a resource violates ISO-27001.", +"Represents if a resource violates ISO 27001 2022.", +"Represents if a resource violates PCI-DSS v3.2.1.", +"Represents if a resource violates PCI-DSS v4.0.", +"Represents if a resource violates Cloud Controls Matrix v4.0.", +"Represents if a resource violates HIPAA.", +"Represents if a resource violates SOC2 v2017.", +"Represents if log_checkpoints database flag for a Cloud SQL for PostgreSQL instance is not set to on.", +"Represents if the log_duration database flag for a Cloud SQL for PostgreSQL instance is not set to on.", +"Represents if the log_error_verbosity database flag for a Cloud SQL for PostgreSQL instance is not set to default or stricter (default or terse).", +"Represents if the log_lock_waits database flag for a Cloud SQL for PostgreSQL instance is not set to on.", +"Represents if the log_min_error_statement database flag for a Cloud SQL for PostgreSQL instance is not set appropriately.", +"Represents if the log_min_error_statement database flag for a Cloud SQL for PostgreSQL instance does not have an appropriate severity level.", +"Represents if the log_min_messages database flag for a Cloud SQL for PostgreSQL instance is not set to warning or another recommended value.", +"Represents if the databaseFlags property of instance metadata for the log_executor_status field is set to on.", +"Represents if the log_hostname database flag for a Cloud SQL for PostgreSQL instance is not set to off.", +"Represents if the log_parser_stats database flag for a Cloud SQL for PostgreSQL instance is not set to off.", +"Represents if the log_planner_stats database flag for a Cloud SQL for PostgreSQL instance is not set to off.", +"Represents if the log_statement database flag for a Cloud SQL for PostgreSQL instance is not set to DDL (all data definition statements).", +"Represents if the log_statement_stats database flag for a Cloud SQL for PostgreSQL instance is not set to off.", +"Represents if the log_temp_files database flag for a Cloud SQL for PostgreSQL instance is not set to \"0\". (NOTE: 0 = ON)", +"Represents if the user connections database flag for a Cloud SQL for SQL Server instance is configured.", +"Represents if the user options database flag for Cloud SQL SQL Server instance is configured or not.", +"Represents if a resource is exposed to public access.", +"Represents if a resources requires all incoming connections to use SSL or not.", +"Represents if a Cloud SQL database has a password configured for the root account or not.", +"Represents if a Cloud SQL database has a weak password configured for the root account.", +"Represents if a SQL database instance is not encrypted with customer-managed encryption keys (CMEK).", +"Represents if The contained database authentication database flag for a Cloud SQL for SQL Server instance is not set to off.", +"Represents if the cross_db_ownership_chaining database flag for a Cloud SQL for SQL Server instance is not set to off.", +"Represents if he external scripts enabled database flag for a Cloud SQL for SQL Server instance is not set to off.", +"Represents if the local_infile database flag for a Cloud SQL for MySQL instance is not set to off.", +"Represents if the log_connections database flag for a Cloud SQL for PostgreSQL instance is not set to on.", +"Represents if the log_disconnections database flag for a Cloud SQL for PostgreSQL instance is not set to on.", +"Represents if the log_min_duration_statement database flag for a Cloud SQL for PostgreSQL instance is not set to -1.", +"Represents if the remote access database flag for a Cloud SQL for SQL Server instance is not set to off.", +"Represents if the skip_show_database database flag for a Cloud SQL for MySQL instance is not set to on.", +"Represents if the 3625 (trace flag) database flag for a Cloud SQL for SQL Server instance is not set to on.", +"Represents if public IP is enabled.", +"Represents Idle instance helps to reduce costs.", +"Represents instances that are unnecessarily large for given workload.", +"Represents high number of concurrently opened tables.", +"Represents high table count close to SLA limit.", +"Represents high number of unvacuumed transactions", +"Represents need for more CPU and/or memory", +"Represents out of disk.", +"Represents server certificate is near expiry.", +"Represents database auditing is disabled.", +"Represents not restricted to authorized networks.", +"Represents violate org policy restrict public ip.", +"Cluster nearing quota limit", +"No password policy set on resources", +"Performance impact of connections settings", +"Performance impact of temporary tables settings", +"Performance impact of transaction logs settings", +"Performance impact of high joins without indexes", +"Detects events where a Cloud SQL superuser (postgres for PostgreSQL servers or root for MySQL users) writes to non-system tables.", +"Detects events where a database user or role has been granted all privileges to a database, or to all tables, procedures, or functions in a schema.", +"Detects if database instance data exported to a Cloud Storage bucket outside of the organization.", +"Detects if database instance data exported to a Cloud Storage bucket that is owned by the organization and is publicly accessible.", +"Detects if a database instance is using a weak password hash algorithm.", +"Detects if a database instance has no user password policy set." +], +"type": "string" +}, +"state": { +"enum": [ +"STATE_UNSPECIFIED", +"ACTIVE", +"RESOLVED", +"MUTED" +], +"enumDescriptions": [ +"Unspecified state.", +"The signal requires attention and has not been addressed yet.", +"The signal has been fixed, triaged as a non-issue or otherwise addressed and is no longer active.", +"The signal has been muted." +], +"type": "string" +} +}, +"type": "object" +}, +"DatabaseResourceId": { +"description": "DatabaseResourceId will serve as primary key for any resource ingestion event.", +"id": "DatabaseResourceId", +"properties": { +"provider": { +"description": "Required. Cloud provider name. Ex: GCP/AWS/Azure/OnPrem/SelfManaged", +"enum": [ +"PROVIDER_UNSPECIFIED", +"GCP", +"AWS", +"AZURE", +"ONPREM", +"SELFMANAGED", +"PROVIDER_OTHER" +], +"enumDescriptions": [ +"", +"Google cloud platform provider", +"Amazon web service", +"Azure web service", +"On-prem database resources.", +"Self-managed database provider. These are resources on a cloud platform, e.g., database resource installed in a GCE VM, but not a managed database service.", +"For the rest of the other categories. Other refers to the rest of other database service providers, this could be smaller cloud provider. This needs to be provided when the provider is known, but it is not present in the existing set of enum values." +], +"type": "string" +}, +"providerDescription": { +"description": "Optional. Needs to be used only when the provider is PROVIDER_OTHER.", +"type": "string" +}, +"resourceType": { +"description": "Required. The type of resource this ID is identifying. Ex redis.googleapis.com/Instance, redis.googleapis.com/Cluster, alloydb.googleapis.com/Cluster, alloydb.googleapis.com/Instance, spanner.googleapis.com/Instance, spanner.googleapis.com/Database, firestore.googleapis.com/Database, sqladmin.googleapis.com/Instance, bigtableadmin.googleapis.com/Cluster, bigtableadmin.googleapis.com/Instance REQUIRED Please refer go/condor-common-datamodel", +"type": "string" +}, +"uniqueId": { +"description": "Required. A service-local token that distinguishes this resource from other resources within the same service.", +"type": "string" +} +}, +"type": "object" +}, +"DatabaseResourceMetadata": { +"description": "Common model for database resource instance metadata. Next ID: 23", +"id": "DatabaseResourceMetadata", +"properties": { +"availabilityConfiguration": { +"$ref": "AvailabilityConfiguration", +"description": "Availability configuration for this instance" +}, +"backupConfiguration": { +"$ref": "BackupConfiguration", +"description": "Backup configuration for this instance" +}, +"backupRun": { +"$ref": "BackupRun", +"description": "Latest backup run information for this instance" +}, +"creationTime": { +"description": "The creation time of the resource, i.e. the time when resource is created and recorded in partner service.", +"format": "google-datetime", +"type": "string" +}, +"currentState": { +"description": "Current state of the instance.", +"enum": [ +"STATE_UNSPECIFIED", +"HEALTHY", +"UNHEALTHY", +"SUSPENDED", +"DELETED", +"STATE_OTHER" +], +"enumDescriptions": [ +"", +"The instance is running.", +"Instance being created, updated, deleted or under maintenance", +"When instance is suspended", +"Instance is deleted.", +"For rest of the other category" +], +"type": "string" +}, +"customMetadata": { +"$ref": "CustomMetadataData", +"description": "Any custom metadata associated with the resource" +}, +"edition": { +"description": "Optional. Edition represents whether the instance is ENTERPRISE or ENTERPRISE_PLUS. This information is core to Cloud SQL only and is used to identify the edition of the instance.", +"enum": [ +"EDITION_UNSPECIFIED", +"EDITION_ENTERPRISE", +"EDITION_ENTERPRISE_PLUS" +], +"enumDescriptions": [ +"Default, to make it consistent with instance edition enum.", +"Represents the enterprise edition.", +"Represents the enterprise plus edition." +], +"type": "string" +}, +"entitlements": { +"description": "Entitlements associated with the resource", +"items": { +"$ref": "Entitlement" +}, +"type": "array" +}, +"expectedState": { +"description": "The state that the instance is expected to be in. For example, an instance state can transition to UNHEALTHY due to wrong patch update, while the expected state will remain at the HEALTHY.", +"enum": [ +"STATE_UNSPECIFIED", +"HEALTHY", +"UNHEALTHY", +"SUSPENDED", +"DELETED", +"STATE_OTHER" +], +"enumDescriptions": [ +"", +"The instance is running.", +"Instance being created, updated, deleted or under maintenance", +"When instance is suspended", +"Instance is deleted.", +"For rest of the other category" +], +"type": "string" +}, +"id": { +"$ref": "DatabaseResourceId", +"description": "Required. Unique identifier for a Database resource" +}, +"instanceType": { +"description": "The type of the instance. Specified at creation time.", +"enum": [ +"INSTANCE_TYPE_UNSPECIFIED", +"SUB_RESOURCE_TYPE_UNSPECIFIED", +"PRIMARY", +"SECONDARY", +"READ_REPLICA", +"OTHER", +"SUB_RESOURCE_TYPE_PRIMARY", +"SUB_RESOURCE_TYPE_SECONDARY", +"SUB_RESOURCE_TYPE_READ_REPLICA", +"SUB_RESOURCE_TYPE_OTHER" +], +"enumDeprecated": [ +true, +false, +true, +true, +true, +true, +false, +false, +false, +false +], +"enumDescriptions": [ +"", +"For rest of the other categories.", +"A regular primary database instance.", +"A cluster or an instance acting as a secondary.", +"An instance acting as a read-replica.", +"For rest of the other categories.", +"A regular primary database instance.", +"A cluster or an instance acting as a secondary.", +"An instance acting as a read-replica.", +"For rest of the other categories." +], +"type": "string" +}, +"location": { +"description": "The resource location. REQUIRED", +"type": "string" +}, +"machineConfiguration": { +"$ref": "MachineConfiguration", +"description": "Machine configuration for this resource." +}, +"primaryResourceId": { +"$ref": "DatabaseResourceId", +"description": "Identifier for this resource's immediate parent/primary resource if the current resource is a replica or derived form of another Database resource. Else it would be NULL. REQUIRED if the immediate parent exists when first time resource is getting ingested, otherwise optional." +}, +"primaryResourceLocation": { +"description": "Primary resource location. REQUIRED if the immediate parent exists when first time resource is getting ingested, otherwise optional.", +"type": "string" +}, +"product": { +"$ref": "Product", +"description": "The product this resource represents." +}, +"resourceContainer": { +"description": "Closest parent Cloud Resource Manager container of this resource. It must be resource name of a Cloud Resource Manager project with the format of \"/\", such as \"projects/123\". For GCP provided resources, number should be project number.", +"type": "string" +}, +"resourceName": { +"description": "Required. Different from DatabaseResourceId.unique_id, a resource name can be reused over time. That is, after a resource named \"ABC\" is deleted, the name \"ABC\" can be used to to create a new resource within the same source. Resource name to follow CAIS resource_name format as noted here go/condor-common-datamodel", +"type": "string" +}, +"tagsSet": { +"$ref": "Tags", +"description": "Optional. Tags associated with this resources." +}, +"updationTime": { +"description": "The time at which the resource was updated and recorded at partner service.", +"format": "google-datetime", +"type": "string" +}, +"userLabelSet": { +"$ref": "UserLabels", +"description": "User-provided labels associated with the resource" +} +}, +"type": "object" +}, +"DatabaseResourceRecommendationSignalData": { +"description": "Common model for database resource recommendation signal data.", +"id": "DatabaseResourceRecommendationSignalData", +"properties": { +"additionalMetadata": { +"additionalProperties": { +"description": "Properties of the object.", +"type": "any" +}, +"description": "Optional. Any other additional metadata specific to recommendation", +"type": "object" +}, +"lastRefreshTime": { +"description": "Required. last time recommendationw as refreshed", +"format": "google-datetime", +"type": "string" +}, +"recommendationState": { +"description": "Required. Recommendation state", +"enum": [ +"UNSPECIFIED", +"ACTIVE", +"CLAIMED", +"SUCCEEDED", +"FAILED", +"DISMISSED" +], +"enumDescriptions": [ +"", +"Recommendation is active and can be applied. 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" +}, +"recommender": { +"description": "Required. Name of recommendation. Examples: organizations/1234/locations/us-central1/recommenders/google.cloudsql.instance.PerformanceRecommender/recommendations/9876", +"type": "string" +}, +"recommenderId": { +"description": "Required. ID of recommender. Examples: \"google.cloudsql.instance.PerformanceRecommender\"", +"type": "string" +}, +"recommenderSubtype": { +"description": "Required. 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.cloudsql.instance.PerformanceRecommender\", recommender_subtype can be \"MYSQL_HIGH_NUMBER_OF_OPEN_TABLES_BEST_PRACTICE\"/\"POSTGRES_HIGH_TRANSACTION_ID_UTILIZATION_BEST_PRACTICE\"", +"type": "string" +}, +"resourceName": { +"description": "Required. Database resource name associated with the signal. Resource name to follow CAIS resource_name format as noted here go/condor-common-datamodel", +"type": "string" +}, +"signalType": { +"description": "Required. Type of signal, for example, `SIGNAL_TYPE_IDLE`, `SIGNAL_TYPE_HIGH_NUMBER_OF_TABLES`, etc.", +"enum": [ +"SIGNAL_TYPE_UNSPECIFIED", +"SIGNAL_TYPE_NOT_PROTECTED_BY_AUTOMATIC_FAILOVER", +"SIGNAL_TYPE_GROUP_NOT_REPLICATING_ACROSS_REGIONS", +"SIGNAL_TYPE_NOT_AVAILABLE_IN_MULTIPLE_ZONES", +"SIGNAL_TYPE_NOT_AVAILABLE_IN_MULTIPLE_REGIONS", +"SIGNAL_TYPE_NO_PROMOTABLE_REPLICA", +"SIGNAL_TYPE_NO_AUTOMATED_BACKUP_POLICY", +"SIGNAL_TYPE_SHORT_BACKUP_RETENTION", +"SIGNAL_TYPE_LAST_BACKUP_FAILED", +"SIGNAL_TYPE_LAST_BACKUP_OLD", +"SIGNAL_TYPE_VIOLATES_CIS_GCP_FOUNDATION_2_0", +"SIGNAL_TYPE_VIOLATES_CIS_GCP_FOUNDATION_1_3", +"SIGNAL_TYPE_VIOLATES_CIS_GCP_FOUNDATION_1_2", +"SIGNAL_TYPE_VIOLATES_CIS_GCP_FOUNDATION_1_1", +"SIGNAL_TYPE_VIOLATES_CIS_GCP_FOUNDATION_1_0", +"SIGNAL_TYPE_VIOLATES_CIS_CONTROLS_V8_0", +"SIGNAL_TYPE_VIOLATES_NIST_800_53", +"SIGNAL_TYPE_VIOLATES_NIST_800_53_R5", +"SIGNAL_TYPE_VIOLATES_NIST_CYBERSECURITY_FRAMEWORK_V1_0", +"SIGNAL_TYPE_VIOLATES_ISO_27001", +"SIGNAL_TYPE_VIOLATES_ISO_27001_V2022", +"SIGNAL_TYPE_VIOLATES_PCI_DSS_V3_2_1", +"SIGNAL_TYPE_VIOLATES_PCI_DSS_V4_0", +"SIGNAL_TYPE_VIOLATES_CLOUD_CONTROLS_MATRIX_V4", +"SIGNAL_TYPE_VIOLATES_HIPAA", +"SIGNAL_TYPE_VIOLATES_SOC2_V2017", +"SIGNAL_TYPE_LOGS_NOT_OPTIMIZED_FOR_TROUBLESHOOTING", +"SIGNAL_TYPE_QUERY_DURATIONS_NOT_LOGGED", +"SIGNAL_TYPE_VERBOSE_ERROR_LOGGING", +"SIGNAL_TYPE_QUERY_LOCK_WAITS_NOT_LOGGED", +"SIGNAL_TYPE_LOGGING_MOST_ERRORS", +"SIGNAL_TYPE_LOGGING_ONLY_CRITICAL_ERRORS", +"SIGNAL_TYPE_MINIMAL_ERROR_LOGGING", +"SIGNAL_TYPE_QUERY_STATISTICS_LOGGED", +"SIGNAL_TYPE_EXCESSIVE_LOGGING_OF_CLIENT_HOSTNAME", +"SIGNAL_TYPE_EXCESSIVE_LOGGING_OF_PARSER_STATISTICS", +"SIGNAL_TYPE_EXCESSIVE_LOGGING_OF_PLANNER_STATISTICS", +"SIGNAL_TYPE_NOT_LOGGING_ONLY_DDL_STATEMENTS", +"SIGNAL_TYPE_LOGGING_QUERY_STATISTICS", +"SIGNAL_TYPE_NOT_LOGGING_TEMPORARY_FILES", +"SIGNAL_TYPE_CONNECTION_MAX_NOT_CONFIGURED", +"SIGNAL_TYPE_USER_OPTIONS_CONFIGURED", +"SIGNAL_TYPE_EXPOSED_TO_PUBLIC_ACCESS", +"SIGNAL_TYPE_UNENCRYPTED_CONNECTIONS", +"SIGNAL_TYPE_NO_ROOT_PASSWORD", +"SIGNAL_TYPE_WEAK_ROOT_PASSWORD", +"SIGNAL_TYPE_ENCRYPTION_KEY_NOT_CUSTOMER_MANAGED", +"SIGNAL_TYPE_SERVER_AUTHENTICATION_NOT_REQUIRED", +"SIGNAL_TYPE_EXPOSED_BY_OWNERSHIP_CHAINING", +"SIGNAL_TYPE_EXPOSED_TO_EXTERNAL_SCRIPTS", +"SIGNAL_TYPE_EXPOSED_TO_LOCAL_DATA_LOADS", +"SIGNAL_TYPE_CONNECTION_ATTEMPTS_NOT_LOGGED", +"SIGNAL_TYPE_DISCONNECTIONS_NOT_LOGGED", +"SIGNAL_TYPE_LOGGING_EXCESSIVE_STATEMENT_INFO", +"SIGNAL_TYPE_EXPOSED_TO_REMOTE_ACCESS", +"SIGNAL_TYPE_DATABASE_NAMES_EXPOSED", +"SIGNAL_TYPE_SENSITIVE_TRACE_INFO_NOT_MASKED", +"SIGNAL_TYPE_PUBLIC_IP_ENABLED", +"SIGNAL_TYPE_IDLE", +"SIGNAL_TYPE_OVERPROVISIONED", +"SIGNAL_TYPE_HIGH_NUMBER_OF_OPEN_TABLES", +"SIGNAL_TYPE_HIGH_NUMBER_OF_TABLES", +"SIGNAL_TYPE_HIGH_TRANSACTION_ID_UTILIZATION", +"SIGNAL_TYPE_UNDERPROVISIONED", +"SIGNAL_TYPE_OUT_OF_DISK", +"SIGNAL_TYPE_SERVER_CERTIFICATE_NEAR_EXPIRY", +"SIGNAL_TYPE_DATABASE_AUDITING_DISABLED", +"SIGNAL_TYPE_RESTRICT_AUTHORIZED_NETWORKS", +"SIGNAL_TYPE_VIOLATE_POLICY_RESTRICT_PUBLIC_IP", +"SIGNAL_TYPE_QUOTA_LIMIT", +"SIGNAL_TYPE_NO_PASSWORD_POLICY", +"SIGNAL_TYPE_CONNECTIONS_PERFORMANCE_IMPACT", +"SIGNAL_TYPE_TMP_TABLES_PERFORMANCE_IMPACT", +"SIGNAL_TYPE_TRANS_LOGS_PERFORMANCE_IMPACT", +"SIGNAL_TYPE_HIGH_JOINS_WITHOUT_INDEXES", +"SIGNAL_TYPE_SUPERUSER_WRITING_TO_USER_TABLES", +"SIGNAL_TYPE_USER_GRANTED_ALL_PERMISSIONS", +"SIGNAL_TYPE_DATA_EXPORT_TO_EXTERNAL_CLOUD_STORAGE_BUCKET", +"SIGNAL_TYPE_DATA_EXPORT_TO_PUBLIC_CLOUD_STORAGE_BUCKET", +"SIGNAL_TYPE_WEAK_PASSWORD_HASH_ALGORITHM", +"SIGNAL_TYPE_NO_USER_PASSWORD_POLICY" +], +"enumDeprecated": [ +false, +false, +false, +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, +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, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false +], +"enumDescriptions": [ +"Unspecified.", +"Represents if a resource is protected by automatic failover. Checks for resources that are configured to have redundancy within a region that enables automatic failover.", +"Represents if a group is replicating across regions. Checks for resources that are configured to have redundancy, and ongoing replication, across regions.", +"Represents if the resource is available in multiple zones or not.", +"Represents if a resource is available in multiple regions.", +"Represents if a resource has a promotable replica.", +"Represents if a resource has an automated backup policy.", +"Represents if a resources has a short backup retention period.", +"Represents if the last backup of a resource failed.", +"Represents if the last backup of a resource is older than some threshold value.", +"Represents if a resource violates CIS GCP Foundation 2.0.", +"Represents if a resource violates CIS GCP Foundation 1.3.", +"Represents if a resource violates CIS GCP Foundation 1.2.", +"Represents if a resource violates CIS GCP Foundation 1.1.", +"Represents if a resource violates CIS GCP Foundation 1.0.", +"Represents if a resource violates CIS Controls 8.0.", +"Represents if a resource violates NIST 800-53.", +"Represents if a resource violates NIST 800-53 R5.", +"Represents if a resource violates NIST Cybersecurity Framework 1.0.", +"Represents if a resource violates ISO-27001.", +"Represents if a resource violates ISO 27001 2022.", +"Represents if a resource violates PCI-DSS v3.2.1.", +"Represents if a resource violates PCI-DSS v4.0.", +"Represents if a resource violates Cloud Controls Matrix v4.0.", +"Represents if a resource violates HIPAA.", +"Represents if a resource violates SOC2 v2017.", +"Represents if log_checkpoints database flag for a Cloud SQL for PostgreSQL instance is not set to on.", +"Represents if the log_duration database flag for a Cloud SQL for PostgreSQL instance is not set to on.", +"Represents if the log_error_verbosity database flag for a Cloud SQL for PostgreSQL instance is not set to default or stricter (default or terse).", +"Represents if the log_lock_waits database flag for a Cloud SQL for PostgreSQL instance is not set to on.", +"Represents if the log_min_error_statement database flag for a Cloud SQL for PostgreSQL instance is not set appropriately.", +"Represents if the log_min_error_statement database flag for a Cloud SQL for PostgreSQL instance does not have an appropriate severity level.", +"Represents if the log_min_messages database flag for a Cloud SQL for PostgreSQL instance is not set to warning or another recommended value.", +"Represents if the databaseFlags property of instance metadata for the log_executor_status field is set to on.", +"Represents if the log_hostname database flag for a Cloud SQL for PostgreSQL instance is not set to off.", +"Represents if the log_parser_stats database flag for a Cloud SQL for PostgreSQL instance is not set to off.", +"Represents if the log_planner_stats database flag for a Cloud SQL for PostgreSQL instance is not set to off.", +"Represents if the log_statement database flag for a Cloud SQL for PostgreSQL instance is not set to DDL (all data definition statements).", +"Represents if the log_statement_stats database flag for a Cloud SQL for PostgreSQL instance is not set to off.", +"Represents if the log_temp_files database flag for a Cloud SQL for PostgreSQL instance is not set to \"0\". (NOTE: 0 = ON)", +"Represents if the user connections database flag for a Cloud SQL for SQL Server instance is configured.", +"Represents if the user options database flag for Cloud SQL SQL Server instance is configured or not.", +"Represents if a resource is exposed to public access.", +"Represents if a resources requires all incoming connections to use SSL or not.", +"Represents if a Cloud SQL database has a password configured for the root account or not.", +"Represents if a Cloud SQL database has a weak password configured for the root account.", +"Represents if a SQL database instance is not encrypted with customer-managed encryption keys (CMEK).", +"Represents if The contained database authentication database flag for a Cloud SQL for SQL Server instance is not set to off.", +"Represents if the cross_db_ownership_chaining database flag for a Cloud SQL for SQL Server instance is not set to off.", +"Represents if he external scripts enabled database flag for a Cloud SQL for SQL Server instance is not set to off.", +"Represents if the local_infile database flag for a Cloud SQL for MySQL instance is not set to off.", +"Represents if the log_connections database flag for a Cloud SQL for PostgreSQL instance is not set to on.", +"Represents if the log_disconnections database flag for a Cloud SQL for PostgreSQL instance is not set to on.", +"Represents if the log_min_duration_statement database flag for a Cloud SQL for PostgreSQL instance is not set to -1.", +"Represents if the remote access database flag for a Cloud SQL for SQL Server instance is not set to off.", +"Represents if the skip_show_database database flag for a Cloud SQL for MySQL instance is not set to on.", +"Represents if the 3625 (trace flag) database flag for a Cloud SQL for SQL Server instance is not set to on.", +"Represents if public IP is enabled.", +"Represents Idle instance helps to reduce costs.", +"Represents instances that are unnecessarily large for given workload.", +"Represents high number of concurrently opened tables.", +"Represents high table count close to SLA limit.", +"Represents high number of unvacuumed transactions", +"Represents need for more CPU and/or memory", +"Represents out of disk.", +"Represents server certificate is near expiry.", +"Represents database auditing is disabled.", +"Represents not restricted to authorized networks.", +"Represents violate org policy restrict public ip.", +"Cluster nearing quota limit", +"No password policy set on resources", +"Performance impact of connections settings", +"Performance impact of temporary tables settings", +"Performance impact of transaction logs settings", +"Performance impact of high joins without indexes", +"Detects events where a Cloud SQL superuser (postgres for PostgreSQL servers or root for MySQL users) writes to non-system tables.", +"Detects events where a database user or role has been granted all privileges to a database, or to all tables, procedures, or functions in a schema.", +"Detects if database instance data exported to a Cloud Storage bucket outside of the organization.", +"Detects if database instance data exported to a Cloud Storage bucket that is owned by the organization and is publicly accessible.", +"Detects if a database instance is using a weak password hash algorithm.", +"Detects if a database instance has no user password policy set." +], +"type": "string" +} +}, +"type": "object" +}, +"DiscoveryEndpoint": { +"description": "Endpoints on each network, for Redis clients to connect to the cluster.", +"id": "DiscoveryEndpoint", +"properties": { +"address": { +"description": "Output only. Address of the exposed Redis endpoint used by clients to connect to the service. The address could be either IP or hostname.", +"readOnly": true, +"type": "string" +}, +"port": { +"description": "Output only. The port number of the exposed Redis endpoint.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"pscConfig": { +"$ref": "PscConfig", +"description": "Output only. Customer configuration for where the endpoint is created and accessed from.", +"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" +}, +"EncryptionInfo": { +"description": "EncryptionInfo describes the encryption information of a cluster or a backup.", +"id": "EncryptionInfo", +"properties": { +"encryptionType": { +"description": "Output only. Type of encryption.", +"enum": [ +"TYPE_UNSPECIFIED", +"GOOGLE_DEFAULT_ENCRYPTION", +"CUSTOMER_MANAGED_ENCRYPTION" +], +"enumDescriptions": [ +"Encryption type not specified. Defaults to GOOGLE_DEFAULT_ENCRYPTION.", +"The data is encrypted at rest with a key that is fully managed by Google. No key version will be populated. This is the default state.", +"The data is encrypted at rest with a key that is managed by the customer. KMS key versions will be populated." +], +"readOnly": true, +"type": "string" +}, +"kmsKeyPrimaryState": { +"description": "Output only. The state of the primary version of the KMS key perceived by the system. This field is not populated in backups.", +"enum": [ +"KMS_KEY_STATE_UNSPECIFIED", +"ENABLED", +"PERMISSION_DENIED", +"DISABLED", +"DESTROYED", +"DESTROY_SCHEDULED", +"EKM_KEY_UNREACHABLE_DETECTED", +"BILLING_DISABLED", +"UNKNOWN_FAILURE" +], +"enumDescriptions": [ +"The default value. This value is unused.", +"The KMS key is enabled and correctly configured.", +"Permission denied on the KMS key.", +"The KMS key is disabled.", +"The KMS key is destroyed.", +"The KMS key is scheduled to be destroyed.", +"The EKM key is unreachable.", +"Billing is disabled for the project.", +"All other unknown failures." +], +"readOnly": true, +"type": "string" +}, +"kmsKeyVersions": { +"description": "Output only. KMS key versions that are being used to protect the data at-rest.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"lastUpdateTime": { +"description": "Output only. The most recent time when the encryption info was updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Entitlement": { +"description": "Proto representing the access that a user has to a specific feature/service. NextId: 3.", +"id": "Entitlement", +"properties": { +"entitlementState": { +"description": "The current state of user's accessibility to a feature/benefit.", +"enum": [ +"ENTITLEMENT_STATE_UNSPECIFIED", +"ENTITLED", +"REVOKED" +], +"enumDescriptions": [ +"", +"User is entitled to a feature/benefit, but whether it has been successfully provisioned is decided by provisioning state.", +"User is entitled to a feature/benefit, but it was requested to be revoked. Whether the revoke has been successful is decided by provisioning state." +], +"type": "string" +}, +"type": { +"description": "An enum that represents the type of this entitlement.", +"enum": [ +"ENTITLEMENT_TYPE_UNSPECIFIED", +"GEMINI" +], +"enumDescriptions": [ +"", +"The root entitlement representing Gemini package ownership." +], +"type": "string" +} +}, +"type": "object" +}, +"ExportBackupRequest": { +"description": "Request for [ExportBackup].", +"id": "ExportBackupRequest", +"properties": { +"gcsBucket": { +"description": "Google Cloud Storage bucket, like \"my-bucket\".", +"type": "string" +} +}, +"type": "object" +}, +"ExportInstanceRequest": { +"description": "Request for Export.", +"id": "ExportInstanceRequest", +"properties": { +"outputConfig": { +"$ref": "OutputConfig", +"description": "Required. Specify data to be exported." +} +}, +"type": "object" +}, +"FailoverInstanceRequest": { +"description": "Request for Failover.", +"id": "FailoverInstanceRequest", +"properties": { +"dataProtectionMode": { +"description": "Optional. Available data protection modes that the user can choose. If it's unspecified, data protection mode will be LIMITED_DATA_LOSS by default.", +"enum": [ +"DATA_PROTECTION_MODE_UNSPECIFIED", +"LIMITED_DATA_LOSS", +"FORCE_DATA_LOSS" +], +"enumDescriptions": [ +"Defaults to LIMITED_DATA_LOSS if a data protection mode is not specified.", +"Instance failover will be protected with data loss control. More specifically, the failover will only be performed if the current replication offset diff between primary and replica is under a certain threshold.", +"Instance failover will be performed without data loss control." +], +"type": "string" +} +}, +"type": "object" +}, +"FixedFrequencySchedule": { +"description": "This schedule allows the backup to be triggered at a fixed frequency (currently only daily is supported).", +"id": "FixedFrequencySchedule", +"properties": { +"startTime": { +"$ref": "TimeOfDay", +"description": "Required. The start time of every automated backup in UTC. It must be set to the start of an hour. This field is required." +} +}, +"type": "object" +}, +"GcsBackupSource": { +"description": "Backups stored in Cloud Storage buckets. The Cloud Storage buckets need to be the same region as the clusters.", +"id": "GcsBackupSource", +"properties": { +"uris": { +"description": "Optional. URIs of the GCS objects to import. Example: gs://bucket1/object1, gs://bucket2/folder2/object2", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GcsDestination": { +"description": "The Cloud Storage location for the output content", +"id": "GcsDestination", +"properties": { +"uri": { +"description": "Required. Data destination URI (e.g. 'gs://my_bucket/my_object'). Existing files will be overwritten.", +"type": "string" +} +}, +"type": "object" +}, +"GcsSource": { +"description": "The Cloud Storage location for the input content", +"id": "GcsSource", +"properties": { +"uri": { +"description": "Required. Source data URI. (e.g. 'gs://my_bucket/my_object').", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudCommonOperationMetadata": { +"description": "Represents the metadata of the long-running operation.", +"id": "GoogleCloudCommonOperationMetadata", +"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" +}, +"GoogleCloudRedisV1beta1LocationMetadata": { +"description": "This location metadata represents additional configuration options for a given location where a Redis instance may be created. All fields are output only. It is returned as content of the `google.cloud.location.Location.metadata` field.", +"id": "GoogleCloudRedisV1beta1LocationMetadata", +"properties": { +"availableZones": { +"additionalProperties": { +"$ref": "GoogleCloudRedisV1beta1ZoneMetadata" +}, +"description": "Output only. The set of available zones in the location. The map is keyed by the lowercase ID of each zone, as defined by GCE. These keys can be specified in `location_id` or `alternative_location_id` fields when creating a Redis instance.", +"readOnly": true, +"type": "object" +} +}, +"type": "object" +}, +"GoogleCloudRedisV1beta1ZoneMetadata": { +"description": "Defines specific information for a particular zone. Currently empty and reserved for future use only.", +"id": "GoogleCloudRedisV1beta1ZoneMetadata", +"properties": {}, +"type": "object" +}, +"ImportInstanceRequest": { +"description": "Request for Import.", +"id": "ImportInstanceRequest", +"properties": { +"inputConfig": { +"$ref": "InputConfig", +"description": "Required. Specify data to be imported." +} +}, +"type": "object" +}, +"InputConfig": { +"description": "The input content", +"id": "InputConfig", +"properties": { +"gcsSource": { +"$ref": "GcsSource", +"description": "Google Cloud Storage location where input content is located." +} +}, +"type": "object" +}, +"Instance": { +"description": "A Memorystore for Redis instance.", +"id": "Instance", +"properties": { +"alternativeLocationId": { +"description": "Optional. If specified, at least one node will be provisioned in this zone in addition to the zone specified in location_id. Only applicable to standard tier. If provided, it must be a different zone from the one provided in [location_id]. Additional nodes beyond the first 2 will be placed in zones selected by the service.", +"type": "string" +}, +"authEnabled": { +"description": "Optional. Indicates whether OSS Redis AUTH is enabled for the instance. If set to \"true\" AUTH is enabled on the instance. Default value is \"false\" meaning AUTH is disabled.", +"type": "boolean" +}, +"authorizedNetwork": { +"description": "Optional. The full name of the Google Compute Engine [network](https://cloud.google.com/vpc/docs/vpc) to which the instance is connected. If left unspecified, the `default` network will be used.", +"type": "string" +}, +"availableMaintenanceVersions": { +"description": "Optional. The available maintenance versions that an instance could update to.", +"items": { +"type": "string" +}, +"type": "array" +}, +"connectMode": { +"description": "Optional. The network connect mode of the Redis instance. If not provided, the connect mode defaults to DIRECT_PEERING.", +"enum": [ +"CONNECT_MODE_UNSPECIFIED", +"DIRECT_PEERING", +"PRIVATE_SERVICE_ACCESS" +], +"enumDescriptions": [ +"Not set.", +"Connect via direct peering to the Memorystore for Redis hosted service.", +"Connect your Memorystore for Redis instance using Private Service Access. Private services access provides an IP address range for multiple Google Cloud services, including Memorystore." +], +"type": "string" +}, +"createTime": { +"description": "Output only. The time the instance was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"currentLocationId": { +"description": "Output only. The current zone where the Redis primary node is located. In basic tier, this will always be the same as [location_id]. In standard tier, this can be the zone of any node in the instance.", +"readOnly": true, +"type": "string" +}, +"customerManagedKey": { +"description": "Optional. The KMS key reference that the customer provides when trying to create the instance.", +"type": "string" +}, +"displayName": { +"description": "An arbitrary and optional user-provided name for the instance.", +"type": "string" +}, +"host": { +"description": "Output only. Hostname or IP address of the exposed Redis endpoint used by clients to connect to the service.", +"readOnly": true, +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Resource labels to represent user provided metadata", +"type": "object" +}, +"locationId": { +"description": "Optional. The zone where the instance will be provisioned. If not provided, the service will choose a zone from the specified region for the instance. For standard tier, additional nodes will be added across multiple zones for protection against zonal failures. If specified, at least one node will be provisioned in this zone.", +"type": "string" +}, +"maintenancePolicy": { +"$ref": "MaintenancePolicy", +"description": "Optional. The maintenance policy for the instance. If not provided, maintenance events can be performed at any time." +}, +"maintenanceSchedule": { +"$ref": "MaintenanceSchedule", +"description": "Output only. Date and time of upcoming maintenance events which have been scheduled.", +"readOnly": true +}, +"maintenanceVersion": { +"description": "Optional. The self service update maintenance version. The version is date based such as \"20210712_00_00\".", +"type": "string" +}, +"memorySizeGb": { +"description": "Required. Redis memory size in GiB.", +"format": "int32", +"type": "integer" +}, +"name": { +"description": "Required. Unique name of the resource in this scope including project and location using the form: `projects/{project_id}/locations/{location_id}/instances/{instance_id}` Note: Redis instances are managed and addressed at regional level so location_id here refers to a GCP region; however, users may choose which specific zone (or collection of zones for cross-zone instances) an instance should be provisioned in. Refer to location_id and alternative_location_id fields for more details.", +"type": "string" +}, +"nodes": { +"description": "Output only. Info per node.", +"items": { +"$ref": "NodeInfo" +}, +"readOnly": true, +"type": "array" +}, +"persistenceConfig": { +"$ref": "PersistenceConfig", +"description": "Optional. Persistence configuration parameters" +}, +"persistenceIamIdentity": { +"description": "Output only. Cloud IAM identity used by import / export operations to transfer data to/from Cloud Storage. Format is \"serviceAccount:\". The value may change over time for a given instance so should be checked before each import/export operation.", +"readOnly": true, +"type": "string" +}, +"port": { +"description": "Output only. The port number of the exposed Redis endpoint.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"readEndpoint": { +"description": "Output only. Hostname or IP address of the exposed readonly Redis endpoint. Standard tier only. Targets all healthy replica nodes in instance. Replication is asynchronous and replica nodes will exhibit some lag behind the primary. Write requests must target 'host'.", +"readOnly": true, +"type": "string" +}, +"readEndpointPort": { +"description": "Output only. The port number of the exposed readonly redis endpoint. Standard tier only. Write requests should target 'port'.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"readReplicasMode": { +"description": "Optional. Read replicas mode for the instance. Defaults to READ_REPLICAS_DISABLED.", +"enum": [ +"READ_REPLICAS_MODE_UNSPECIFIED", +"READ_REPLICAS_DISABLED", +"READ_REPLICAS_ENABLED" +], +"enumDescriptions": [ +"If not set, Memorystore Redis backend will default to READ_REPLICAS_DISABLED.", +"If disabled, read endpoint will not be provided and the instance cannot scale up or down the number of replicas.", +"If enabled, read endpoint will be provided and the instance can scale up and down the number of replicas. Not valid for basic tier." +], +"type": "string" +}, +"redisConfigs": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Redis configuration parameters, according to http://redis.io/topics/config. Currently, the only supported parameters are: Redis version 3.2 and newer: * maxmemory-policy * notify-keyspace-events Redis version 4.0 and newer: * activedefrag * lfu-decay-time * lfu-log-factor * maxmemory-gb Redis version 5.0 and newer: * stream-node-max-bytes * stream-node-max-entries", +"type": "object" +}, +"redisVersion": { +"description": "Optional. The version of Redis software. If not provided, latest supported version will be used. Currently, the supported values are: * `REDIS_3_2` for Redis 3.2 compatibility * `REDIS_4_0` for Redis 4.0 compatibility (default) * `REDIS_5_0` for Redis 5.0 compatibility * `REDIS_6_X` for Redis 6.x compatibility * `REDIS_7_0` for Redis 7.0 compatibility", +"type": "string" +}, +"replicaCount": { +"description": "Optional. The number of replica nodes. The valid range for the Standard Tier with read replicas enabled is [1-5] and defaults to 2. If read replicas are not enabled for a Standard Tier instance, the only valid value is 1 and the default is 1. The valid value for basic tier is 0 and the default is also 0.", +"format": "int32", +"type": "integer" +}, +"reservedIpRange": { +"description": "Optional. For DIRECT_PEERING mode, the CIDR range of internal addresses that are reserved for this instance. Range must be unique and non-overlapping with existing subnets in an authorized network. For PRIVATE_SERVICE_ACCESS mode, the name of one allocated IP address ranges associated with this private service access connection. If not provided, the service will choose an unused /29 block, for example, 10.0.0.0/29 or 192.168.0.0/29. For READ_REPLICAS_ENABLED the default block size is /28.", +"type": "string" +}, +"satisfiesPzi": { +"description": "Optional. Output only. Reserved for future use.", +"readOnly": true, +"type": "boolean" +}, +"satisfiesPzs": { +"description": "Optional. Output only. Reserved for future use.", +"readOnly": true, +"type": "boolean" +}, +"secondaryIpRange": { +"description": "Optional. Additional IP range for node placement. Required when enabling read replicas on an existing instance. For DIRECT_PEERING mode value must be a CIDR range of size /28, or \"auto\". For PRIVATE_SERVICE_ACCESS mode value must be the name of an allocated address range associated with the private service access connection, or \"auto\".", +"type": "string" +}, +"serverCaCerts": { +"description": "Output only. List of server CA certificates for the instance.", +"items": { +"$ref": "TlsCertificate" +}, +"readOnly": true, +"type": "array" +}, +"state": { +"description": "Output only. The current state of this instance.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"READY", +"UPDATING", +"DELETING", +"REPAIRING", +"MAINTENANCE", +"IMPORTING", +"FAILING_OVER" +], +"enumDescriptions": [ +"Not set.", +"Redis instance is being created.", +"Redis instance has been created and is fully usable.", +"Redis instance configuration is being updated. Certain kinds of updates may cause the instance to become unusable while the update is in progress.", +"Redis instance is being deleted.", +"Redis instance is being repaired and may be unusable.", +"Maintenance is being performed on this Redis instance.", +"Redis instance is importing data (availability may be affected).", +"Redis instance is failing over (availability may be affected)." +], +"readOnly": true, +"type": "string" +}, +"statusMessage": { +"description": "Output only. Additional information about the current status of this instance, if available.", +"readOnly": true, +"type": "string" +}, +"suspensionReasons": { +"description": "Optional. reasons that causes instance in \"SUSPENDED\" state.", +"items": { +"enum": [ +"SUSPENSION_REASON_UNSPECIFIED", +"CUSTOMER_MANAGED_KEY_ISSUE" +], +"enumDescriptions": [ +"Not set.", +"Something wrong with the CMEK key provided by customer." +], +"type": "string" +}, +"type": "array" +}, +"tier": { +"description": "Required. The service tier of the instance.", +"enum": [ +"TIER_UNSPECIFIED", +"BASIC", +"STANDARD_HA" +], +"enumDescriptions": [ +"Not set.", +"BASIC tier: standalone instance", +"STANDARD_HA tier: highly available primary/replica instances" +], +"type": "string" +}, +"transitEncryptionMode": { +"description": "Optional. The TLS mode of the Redis instance. If not provided, TLS is disabled for the instance.", +"enum": [ +"TRANSIT_ENCRYPTION_MODE_UNSPECIFIED", +"SERVER_AUTHENTICATION", +"DISABLED" +], +"enumDescriptions": [ +"Not set.", +"Client to Server traffic encryption enabled with server authentication.", +"TLS is disabled for the instance." +], +"type": "string" +} +}, +"type": "object" +}, +"InstanceAuthString": { +"description": "Instance AUTH string details.", +"id": "InstanceAuthString", +"properties": { +"authString": { +"description": "AUTH string set on the instance.", +"type": "string" +} +}, +"type": "object" +}, +"InternalResourceMetadata": { +"description": "Metadata for individual internal resources in an instance. e.g. spanner instance can have multiple databases with unique configuration settings. Similarly bigtable can have multiple clusters within same bigtable instance.", +"id": "InternalResourceMetadata", +"properties": { +"backupConfiguration": { +"$ref": "BackupConfiguration", +"description": "Backup configuration for this database" +}, +"backupRun": { +"$ref": "BackupRun", +"description": "Information about the last backup attempt for this database" +}, +"product": { +"$ref": "Product" +}, +"resourceId": { +"$ref": "DatabaseResourceId" +}, +"resourceName": { +"description": "Required. internal resource name for spanner this will be database name e.g.\"spanner.googleapis.com/projects/123/abc/instances/inst1/databases/db1\"", +"type": "string" +} +}, +"type": "object" +}, +"ListBackupCollectionsResponse": { +"description": "Response for [ListBackupCollections].", +"id": "ListBackupCollectionsResponse", +"properties": { +"backupCollections": { +"description": "A list of backupCollections in the project. If the `location_id` in the parent field of the request is \"-\", all regions available to the project are queried, and the results aggregated. If in such an aggregated query a location is unavailable, a placeholder backupCollection entry is included in the response with the `name` field set to a value of the form `projects/{project_id}/locations/{location_id}/backupCollections/`- and the `status` field set to ERROR and `status_message` field set to \"location not available for ListBackupCollections\".", +"items": { +"$ref": "BackupCollection" +}, +"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" +}, +"ListBackupsResponse": { +"description": "Response for [ListBackups].", +"id": "ListBackupsResponse", +"properties": { +"backups": { +"description": "A list of backups in the project.", +"items": { +"$ref": "Backup" +}, +"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": "Backups that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListClustersResponse": { +"description": "Response for ListClusters.", +"id": "ListClustersResponse", +"properties": { +"clusters": { +"description": "A list of Redis clusters in the project in the specified location, or across all locations. If the `location_id` in the parent field of the request is \"-\", all regions available to the project are queried, and the results aggregated. If in such an aggregated query a location is unavailable, a placeholder Redis entry is included in the response with the `name` field set to a value of the form `projects/{project_id}/locations/{location_id}/clusters/`- and the `status` field set to ERROR and `status_message` field set to \"location not available for ListClusters\".", +"items": { +"$ref": "Cluster" +}, +"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" +}, +"ListInstancesResponse": { +"description": "Response for ListInstances.", +"id": "ListInstancesResponse", +"properties": { +"instances": { +"description": "A list of Redis instances in the project in the specified location, or across all locations. If the `location_id` in the parent field of the request is \"-\", all regions available to the project are queried, and the results aggregated. If in such an aggregated query a location is unavailable, a placeholder Redis entry is included in the response with the `name` field set to a value of the form `projects/{project_id}/locations/{location_id}/instances/`- and the `status` field set to ERROR and `status_message` field set to \"location not available for ListInstances\".", +"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" +}, +"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": "Resource ID for the region. For example: \"us-east1\".", +"type": "string" +}, +"metadata": { +"additionalProperties": { +"description": "Properties of the object. Contains field @type with type URL.", +"type": "any" +}, +"description": "Output only. The set of available zones in the location. The map is keyed by the lowercase ID of each zone, as defined by Compute Engine. These keys can be specified in `location_id` or `alternative_location_id` fields when creating a Redis instance.", +"type": "object" +}, +"name": { +"description": "Full resource name for the region. For example: \"projects/example-project/locations/us-east1\".", +"type": "string" +} +}, +"type": "object" +}, +"MachineConfiguration": { +"description": "MachineConfiguration describes the configuration of a machine specific to Database Resource.", +"id": "MachineConfiguration", +"properties": { +"cpuCount": { +"deprecated": true, +"description": "The number of CPUs. Deprecated. Use vcpu_count instead. TODO(b/342344482, b/342346271) add proto validations again after bug fix.", +"format": "int32", +"type": "integer" +}, +"memorySizeInBytes": { +"description": "Memory size in bytes. TODO(b/342344482, b/342346271) add proto validations again after bug fix.", +"format": "int64", +"type": "string" +}, +"shardCount": { +"description": "Optional. Number of shards (if applicable).", +"format": "int32", +"type": "integer" +}, +"vcpuCount": { +"description": "Optional. The number of vCPUs. TODO(b/342344482, b/342346271) add proto validations again after bug fix.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"MaintenancePolicy": { +"description": "Maintenance policy for an instance.", +"id": "MaintenancePolicy", +"properties": { +"createTime": { +"description": "Output only. The time when the policy was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "Optional. Description of what this policy is for. Create/Update methods return INVALID_ARGUMENT if the length is greater than 512.", +"type": "string" +}, +"updateTime": { +"description": "Output only. The time when the policy was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"weeklyMaintenanceWindow": { +"description": "Optional. Maintenance window that is applied to resources covered by this policy. Minimum 1. For the current version, the maximum number of weekly_window is expected to be one.", +"items": { +"$ref": "WeeklyMaintenanceWindow" +}, +"type": "array" +} +}, +"type": "object" +}, +"MaintenanceSchedule": { +"description": "Upcoming maintenance schedule. If no maintenance is scheduled, fields are not populated.", +"id": "MaintenanceSchedule", +"properties": { +"canReschedule": { +"deprecated": true, +"description": "If the scheduled maintenance can be rescheduled, default is true.", +"type": "boolean" +}, +"endTime": { +"description": "Output only. The end time of any upcoming scheduled maintenance for this instance.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"scheduleDeadlineTime": { +"description": "Output only. The deadline that the maintenance schedule start time can not go beyond, including reschedule.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"startTime": { +"description": "Output only. The start time of any upcoming scheduled maintenance for this instance.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ManagedBackupSource": { +"description": "Backups that generated and managed by memorystore.", +"id": "ManagedBackupSource", +"properties": { +"backup": { +"description": "Optional. Example: //redis.googleapis.com/projects/{project}/locations/{location}/backupCollections/{collection}/backups/{backup} A shorter version (without the prefix) of the backup name is also supported, like projects/{project}/locations/{location}/backupCollections/{collection}/backups/{backup_id} In this case, it assumes the backup is under redis.googleapis.com.", +"type": "string" +} +}, +"type": "object" +}, +"ManagedCertificateAuthority": { +"id": "ManagedCertificateAuthority", +"properties": { +"caCerts": { +"description": "The PEM encoded CA certificate chains for redis managed server authentication", +"items": { +"$ref": "CertChain" +}, +"type": "array" +} +}, +"type": "object" +}, +"Membership": { +"description": "An output only view of all the member clusters participating in the cross cluster replication.", +"id": "Membership", +"properties": { +"primaryCluster": { +"$ref": "RemoteCluster", +"description": "Output only. The primary cluster that acts as the source of replication for the secondary clusters.", +"readOnly": true +}, +"secondaryClusters": { +"description": "Output only. The list of secondary clusters replicating from the primary cluster.", +"items": { +"$ref": "RemoteCluster" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"NodeInfo": { +"description": "Node specific properties.", +"id": "NodeInfo", +"properties": { +"id": { +"description": "Output only. Node identifying string. e.g. 'node-0', 'node-1'", +"readOnly": true, +"type": "string" +}, +"zone": { +"description": "Output only. Location of the node.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ObservabilityMetricData": { +"id": "ObservabilityMetricData", +"properties": { +"aggregationType": { +"description": "Required. Type of aggregation performed on the metric.", +"enum": [ +"AGGREGATION_TYPE_UNSPECIFIED", +"PEAK", +"P99", +"P95", +"CURRENT" +], +"enumDescriptions": [ +"Unspecified aggregation type.", +"PEAK aggregation type.", +"P99 aggregation type.", +"P95 aggregation type.", +"current aggregation type." +], +"type": "string" +}, +"metricType": { +"description": "Required. Type of metric like CPU, Memory, etc.", +"enum": [ +"METRIC_TYPE_UNSPECIFIED", +"CPU_UTILIZATION", +"MEMORY_UTILIZATION", +"NETWORK_CONNECTIONS", +"STORAGE_UTILIZATION", +"STORAGE_USED_BYTES" +], +"enumDescriptions": [ +"Unspecified metric type.", +"CPU utilization for a resource. The value is a fraction between 0.0 and 1.0 (may momentarily exceed 1.0 in some cases).", +"Memory utilization for a resource. The value is a fraction between 0.0 and 1.0 (may momentarily exceed 1.0 in some cases).", +"Number of network connections for a resource.", +"Storage utilization for a resource. The value is a fraction between 0.0 and 1.0 (may momentarily exceed 1.0 in some cases).", +"Sotrage used by a resource." +], +"type": "string" +}, +"observationTime": { +"description": "Required. The time the metric value was observed.", +"format": "google-datetime", +"type": "string" +}, +"resourceName": { +"description": "Required. Database resource name associated with the signal. Resource name to follow CAIS resource_name format as noted here go/condor-common-datamodel", +"type": "string" +}, +"value": { +"$ref": "TypedValue", +"description": "Required. Value of the metric type." +} +}, +"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": "{ `createTime`: The time the operation was created. `endTime`: The time the operation finished running. `target`: Server-defined resource path for the target of the operation. `verb`: Name of the verb executed by the operation. `statusDetail`: Human-readable status of the operation, if any. `cancelRequested`: 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`. `apiVersion`: API version used to start the operation. }", +"type": "object" +}, +"name": { +"description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", +"type": "string" +}, +"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" +}, +"OperationError": { +"description": "An error that occurred during a backup creation operation.", +"id": "OperationError", +"properties": { +"code": { +"description": "Identifies the specific error that occurred. REQUIRED", +"type": "string" +}, +"errorType": { +"enum": [ +"OPERATION_ERROR_TYPE_UNSPECIFIED", +"KMS_KEY_ERROR", +"DATABASE_ERROR", +"STOCKOUT_ERROR", +"CANCELLATION_ERROR", +"SQLSERVER_ERROR", +"INTERNAL_ERROR" +], +"enumDescriptions": [ +"UNSPECIFIED means product type is not known or available.", +"key destroyed, expired, not found, unreachable or permission denied.", +"Database is not accessible", +"The zone or region does not have sufficient resources to handle the request at the moment", +"User initiated cancellation", +"SQL server specific error", +"Any other internal error." +], +"type": "string" +}, +"message": { +"description": "Additional information about the error encountered. REQUIRED", +"type": "string" +} +}, +"type": "object" +}, +"OperationMetadata": { +"description": "Pre-defined metadata fields.", +"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" +}, +"OutputConfig": { +"description": "The output content", +"id": "OutputConfig", +"properties": { +"gcsDestination": { +"$ref": "GcsDestination", +"description": "Google Cloud Storage destination for output content." +} +}, +"type": "object" +}, +"PersistenceConfig": { +"description": "Configuration of the persistence functionality.", +"id": "PersistenceConfig", +"properties": { +"persistenceMode": { +"description": "Optional. Controls whether Persistence features are enabled. If not provided, the existing value will be used.", +"enum": [ +"PERSISTENCE_MODE_UNSPECIFIED", +"DISABLED", +"RDB" +], +"enumDescriptions": [ +"Not set.", +"Persistence is disabled for the instance, and any existing snapshots are deleted.", +"RDB based Persistence is enabled." +], +"type": "string" +}, +"rdbNextSnapshotTime": { +"description": "Output only. The next time that a snapshot attempt is scheduled to occur.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"rdbSnapshotPeriod": { +"description": "Optional. Period between RDB snapshots. Snapshots will be attempted every period starting from the provided snapshot start time. For example, a start time of 01/01/2033 06:45 and SIX_HOURS snapshot period will do nothing until 01/01/2033, and then trigger snapshots every day at 06:45, 12:45, 18:45, and 00:45 the next day, and so on. If not provided, TWENTY_FOUR_HOURS will be used as default.", +"enum": [ +"SNAPSHOT_PERIOD_UNSPECIFIED", +"ONE_HOUR", +"SIX_HOURS", +"TWELVE_HOURS", +"TWENTY_FOUR_HOURS" +], +"enumDescriptions": [ +"Not set.", +"Snapshot every 1 hour.", +"Snapshot every 6 hours.", +"Snapshot every 12 hours.", +"Snapshot every 24 hours." +], +"type": "string" +}, +"rdbSnapshotStartTime": { +"description": "Optional. Date and time that the first snapshot was/will be attempted, and to which future snapshots will be aligned. If not provided, the current time will be used.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"Product": { +"description": "Product specification for Condor resources.", +"id": "Product", +"properties": { +"engine": { +"description": "The specific engine that the underlying database is running.", +"enum": [ +"ENGINE_UNSPECIFIED", +"ENGINE_MYSQL", +"MYSQL", +"ENGINE_POSTGRES", +"POSTGRES", +"ENGINE_SQL_SERVER", +"SQL_SERVER", +"ENGINE_NATIVE", +"NATIVE", +"ENGINE_CLOUD_SPANNER_WITH_POSTGRES_DIALECT", +"ENGINE_CLOUD_SPANNER_WITH_GOOGLESQL_DIALECT", +"ENGINE_MEMORYSTORE_FOR_REDIS", +"ENGINE_MEMORYSTORE_FOR_REDIS_CLUSTER", +"ENGINE_OTHER", +"ENGINE_FIRESTORE_WITH_NATIVE_MODE", +"ENGINE_FIRESTORE_WITH_DATASTORE_MODE" +], +"enumDeprecated": [ +false, +false, +true, +false, +true, +false, +true, +false, +true, +false, +false, +false, +false, +false, +false, +false +], +"enumDescriptions": [ +"UNSPECIFIED means engine type is not known or available.", +"MySQL binary running as an engine in the database instance.", +"MySQL binary running as engine in database instance.", +"Postgres binary running as engine in database instance.", +"Postgres binary running as engine in database instance.", +"SQLServer binary running as engine in database instance.", +"SQLServer binary running as engine in database instance.", +"Native database binary running as engine in instance.", +"Native database binary running as engine in instance.", +"Cloud Spanner with PostgreSQL dialect.", +"Cloud Spanner with Google SQL dialect.", +"Memorystore with Redis dialect.", +"Memorystore with Redis cluster dialect.", +"Other refers to rest of other database engine. This is to be when engine is known, but it is not present in this enum.", +"Firestore with native mode.", +"Firestore with datastore mode." +], +"type": "string" +}, +"type": { +"description": "Type of specific database product. It could be CloudSQL, AlloyDB etc..", +"enum": [ +"PRODUCT_TYPE_UNSPECIFIED", +"PRODUCT_TYPE_CLOUD_SQL", +"CLOUD_SQL", +"PRODUCT_TYPE_ALLOYDB", +"ALLOYDB", +"PRODUCT_TYPE_SPANNER", +"PRODUCT_TYPE_ON_PREM", +"ON_PREM", +"PRODUCT_TYPE_MEMORYSTORE", +"PRODUCT_TYPE_BIGTABLE", +"PRODUCT_TYPE_OTHER", +"PRODUCT_TYPE_FIRESTORE" +], +"enumDeprecated": [ +false, +false, +true, +false, +true, +false, +false, +true, +false, +false, +false, +false +], +"enumDescriptions": [ +"UNSPECIFIED means product type is not known or available.", +"Cloud SQL product area in GCP", +"Cloud SQL product area in GCP", +"AlloyDB product area in GCP", +"AlloyDB product area in GCP", +"Spanner product area in GCP", +"On premises database product.", +"On premises database product.", +"Memorystore product area in GCP", +"Bigtable product area in GCP", +"Other refers to rest of other product type. This is to be when product type is known, but it is not present in this enum.", +"Firestore product area in GCP." +], +"type": "string" +}, +"version": { +"description": "Version of the underlying database engine. Example values: For MySQL, it could be \"8.0\", \"5.7\" etc.. For Postgres, it could be \"14\", \"15\" etc..", +"type": "string" +} +}, +"type": "object" +}, +"PscAutoConnection": { +"description": "Details of consumer resources in a PSC connection that is created through Service Connectivity Automation.", +"id": "PscAutoConnection", +"properties": { +"address": { +"description": "Output only. The IP allocated on the consumer network for the PSC forwarding rule.", +"readOnly": true, +"type": "string" +}, +"connectionType": { +"description": "Output only. Type of the PSC connection.", +"enum": [ +"CONNECTION_TYPE_UNSPECIFIED", +"CONNECTION_TYPE_DISCOVERY", +"CONNECTION_TYPE_PRIMARY", +"CONNECTION_TYPE_READER" +], +"enumDescriptions": [ +"Cluster endpoint Type is not set", +"Cluster endpoint that will be used as for cluster topology discovery.", +"Cluster endpoint that will be used as primary endpoint to access primary.", +"Cluster endpoint that will be used as reader endpoint to access replicas." +], +"readOnly": true, +"type": "string" +}, +"forwardingRule": { +"description": "Output only. The URI of the consumer side forwarding rule. Example: projects/{projectNumOrId}/regions/us-east1/forwardingRules/{resourceId}.", +"readOnly": true, +"type": "string" +}, +"network": { +"description": "Required. The consumer network where the IP address resides, in the form of projects/{project_id}/global/networks/{network_id}.", +"type": "string" +}, +"projectId": { +"description": "Required. The consumer project_id where the forwarding rule is created from.", +"type": "string" +}, +"pscConnectionId": { +"description": "Output only. The PSC connection id of the forwarding rule connected to the service attachment.", +"readOnly": true, +"type": "string" +}, +"pscConnectionStatus": { +"description": "Output only. The status of the PSC connection. Please note that this value is updated periodically. Please use Private Service Connect APIs for the latest status.", +"enum": [ +"PSC_CONNECTION_STATUS_UNSPECIFIED", +"PSC_CONNECTION_STATUS_ACTIVE", +"PSC_CONNECTION_STATUS_NOT_FOUND" +], +"enumDescriptions": [ +"PSC connection status is not specified.", +"The connection is active", +"Connection not found" +], +"readOnly": true, +"type": "string" +}, +"serviceAttachment": { +"description": "Output only. The service attachment which is the target of the PSC connection, in the form of projects/{project-id}/regions/{region}/serviceAttachments/{service-attachment-id}.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"PscConfig": { +"id": "PscConfig", +"properties": { +"network": { +"description": "Required. The network where the IP address of the discovery endpoint will be reserved, in the form of projects/{network_project}/global/networks/{network_id}.", +"type": "string" +} +}, +"type": "object" +}, +"PscConnection": { +"description": "Details of consumer resources in a PSC connection.", +"id": "PscConnection", +"properties": { +"address": { +"description": "Required. The IP allocated on the consumer network for the PSC forwarding rule.", +"type": "string" +}, +"connectionType": { +"description": "Output only. Type of the PSC connection.", +"enum": [ +"CONNECTION_TYPE_UNSPECIFIED", +"CONNECTION_TYPE_DISCOVERY", +"CONNECTION_TYPE_PRIMARY", +"CONNECTION_TYPE_READER" +], +"enumDescriptions": [ +"Cluster endpoint Type is not set", +"Cluster endpoint that will be used as for cluster topology discovery.", +"Cluster endpoint that will be used as primary endpoint to access primary.", +"Cluster endpoint that will be used as reader endpoint to access replicas." +], +"readOnly": true, +"type": "string" +}, +"forwardingRule": { +"description": "Required. The URI of the consumer side forwarding rule. Example: projects/{projectNumOrId}/regions/us-east1/forwardingRules/{resourceId}.", +"type": "string" +}, +"network": { +"description": "Required. The consumer network where the IP address resides, in the form of projects/{project_id}/global/networks/{network_id}.", +"type": "string" +}, +"projectId": { +"description": "Optional. Project ID of the consumer project where the forwarding rule is created in.", +"type": "string" +}, +"pscConnectionId": { +"description": "Required. The PSC connection id of the forwarding rule connected to the service attachment.", +"type": "string" +}, +"pscConnectionStatus": { +"description": "Output only. The status of the PSC connection. Please note that this value is updated periodically. To get the latest status of a PSC connection, follow https://cloud.google.com/vpc/docs/configure-private-service-connect-services#endpoint-details.", +"enum": [ +"PSC_CONNECTION_STATUS_UNSPECIFIED", +"PSC_CONNECTION_STATUS_ACTIVE", +"PSC_CONNECTION_STATUS_NOT_FOUND" +], +"enumDescriptions": [ +"PSC connection status is not specified.", +"The connection is active", +"Connection not found" +], +"readOnly": true, +"type": "string" +}, +"serviceAttachment": { +"description": "Required. The service attachment which is the target of the PSC connection, in the form of projects/{project-id}/regions/{region}/serviceAttachments/{service-attachment-id}.", +"type": "string" +} +}, +"type": "object" +}, +"PscServiceAttachment": { +"description": "Configuration of a service attachment of the cluster, for creating PSC connections.", +"id": "PscServiceAttachment", +"properties": { +"connectionType": { +"description": "Output only. Type of a PSC connection targeting this service attachment.", +"enum": [ +"CONNECTION_TYPE_UNSPECIFIED", +"CONNECTION_TYPE_DISCOVERY", +"CONNECTION_TYPE_PRIMARY", +"CONNECTION_TYPE_READER" +], +"enumDescriptions": [ +"Cluster endpoint Type is not set", +"Cluster endpoint that will be used as for cluster topology discovery.", +"Cluster endpoint that will be used as primary endpoint to access primary.", +"Cluster endpoint that will be used as reader endpoint to access replicas." +], +"readOnly": true, +"type": "string" +}, +"serviceAttachment": { +"description": "Output only. Service attachment URI which your self-created PscConnection should use as target", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"RDBConfig": { +"description": "Configuration of the RDB based persistence.", +"id": "RDBConfig", +"properties": { +"rdbSnapshotPeriod": { +"description": "Optional. Period between RDB snapshots.", +"enum": [ +"SNAPSHOT_PERIOD_UNSPECIFIED", +"ONE_HOUR", +"SIX_HOURS", +"TWELVE_HOURS", +"TWENTY_FOUR_HOURS" +], +"enumDescriptions": [ +"Not set.", +"One hour.", +"Six hours.", +"Twelve hours.", +"Twenty four hours." +], +"type": "string" +}, +"rdbSnapshotStartTime": { +"description": "Optional. The time that the first snapshot was/will be attempted, and to which future snapshots will be aligned. If not provided, the current time will be used.", +"format": "google-datetime", +"type": "string" +} +}, +"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" +}, +"RemoteCluster": { +"description": "Details of the remote cluster associated with this cluster in a cross cluster replication setup.", +"id": "RemoteCluster", +"properties": { +"cluster": { +"description": "The full resource path of the remote cluster in the format: projects//locations//clusters/", +"type": "string" +}, +"uid": { +"description": "Output only. The unique identifier of the remote cluster.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"RescheduleClusterMaintenanceRequest": { +"description": "Request for rescheduling a cluster maintenance.", +"id": "RescheduleClusterMaintenanceRequest", +"properties": { +"rescheduleType": { +"description": "Required. If reschedule type is SPECIFIC_TIME, must set up schedule_time as well.", +"enum": [ +"RESCHEDULE_TYPE_UNSPECIFIED", +"IMMEDIATE", +"SPECIFIC_TIME" +], +"enumDescriptions": [ +"Not set.", +"If the user wants to schedule the maintenance to happen now.", +"If the user wants to reschedule the maintenance to a specific time." +], +"type": "string" +}, +"scheduleTime": { +"description": "Optional. Timestamp when the maintenance shall be rescheduled to if reschedule_type=SPECIFIC_TIME, in RFC 3339 format, for example `2012-11-15T16:19:00.094Z`.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"RescheduleMaintenanceRequest": { +"description": "Request for RescheduleMaintenance.", +"id": "RescheduleMaintenanceRequest", +"properties": { +"rescheduleType": { +"description": "Required. If reschedule type is SPECIFIC_TIME, must set up schedule_time as well.", +"enum": [ +"RESCHEDULE_TYPE_UNSPECIFIED", +"IMMEDIATE", +"NEXT_AVAILABLE_WINDOW", +"SPECIFIC_TIME" +], +"enumDescriptions": [ +"Not set.", +"If the user wants to schedule the maintenance to happen now.", +"If the user wants to use the existing maintenance policy to find the next available window.", +"If the user wants to reschedule the maintenance to a specific time." +], +"type": "string" +}, +"scheduleTime": { +"description": "Optional. Timestamp when the maintenance shall be rescheduled to if reschedule_type=SPECIFIC_TIME, in RFC 3339 format, for example `2012-11-15T16:19:00.094Z`.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"RetentionSettings": { +"id": "RetentionSettings", +"properties": { +"durationBasedRetention": { +"description": "Duration based retention period i.e. 172800 seconds (2 days)", +"format": "google-duration", +"type": "string" +}, +"quantityBasedRetention": { +"format": "int32", +"type": "integer" +}, +"retentionUnit": { +"deprecated": true, +"description": "The unit that 'retained_backups' represents.", +"enum": [ +"RETENTION_UNIT_UNSPECIFIED", +"COUNT", +"TIME", +"DURATION", +"RETENTION_UNIT_OTHER" +], +"enumDescriptions": [ +"Backup retention unit is unspecified, will be treated as COUNT.", +"Retention will be by count, eg. \"retain the most recent 7 backups\".", +"Retention will be by Time, eg. \"retain backups till a specific time\" i.e. till 2024-05-01T00:00:00Z.", +"Retention will be by duration, eg. \"retain the backups for 172800 seconds (2 days)\".", +"For rest of the other category" +], +"type": "string" +}, +"timeBasedRetention": { +"format": "google-duration", +"type": "string" +}, +"timestampBasedRetentionTime": { +"description": "Timestamp based retention period i.e. 2024-05-01T00:00:00Z", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"StateInfo": { +"description": "Represents additional information about the state of the cluster.", +"id": "StateInfo", +"properties": { +"updateInfo": { +"$ref": "UpdateInfo", +"description": "Describes ongoing update on the cluster when cluster state is UPDATING." +} +}, +"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" +}, +"Tags": { +"description": "Message type for storing tags. Tags provide a way to create annotations for resources, and in some cases conditionally allow or deny policies based on whether a resource has a specific tag.", +"id": "Tags", +"properties": { +"tags": { +"additionalProperties": { +"type": "string" +}, +"description": "The Tag key/value mappings.", +"type": "object" +} +}, +"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" +}, +"TlsCertificate": { +"description": "TlsCertificate Resource", +"id": "TlsCertificate", +"properties": { +"cert": { +"description": "PEM representation.", +"type": "string" +}, +"createTime": { +"description": "Output only. The time when the certificate was created in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example `2020-05-18T00:00:00.094Z`.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"expireTime": { +"description": "Output only. The time when the certificate expires in [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example `2020-05-18T00:00:00.094Z`.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"serialNumber": { +"description": "Serial number, as extracted from the certificate.", +"type": "string" +}, +"sha1Fingerprint": { +"description": "Sha1 Fingerprint of the certificate.", +"type": "string" +} +}, +"type": "object" +}, +"TypedValue": { +"description": "TypedValue represents the value of a metric type. It can either be a double, an int64, a string or a bool.", +"id": "TypedValue", +"properties": { +"boolValue": { +"description": "For boolean value", +"type": "boolean" +}, +"doubleValue": { +"description": "For double value", +"format": "double", +"type": "number" +}, +"int64Value": { +"description": "For integer value", +"format": "int64", +"type": "string" +}, +"stringValue": { +"description": "For string value", +"type": "string" +} +}, +"type": "object" +}, +"UpdateInfo": { +"description": "Represents information about an updating cluster.", +"id": "UpdateInfo", +"properties": { +"targetReplicaCount": { +"description": "Target number of replica nodes per shard.", +"format": "int32", +"type": "integer" +}, +"targetShardCount": { +"description": "Target number of shards for redis cluster", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"UpgradeInstanceRequest": { +"description": "Request for UpgradeInstance.", +"id": "UpgradeInstanceRequest", +"properties": { +"redisVersion": { +"description": "Required. Specifies the target version of Redis software to upgrade to.", +"type": "string" +} +}, +"type": "object" +}, +"UserLabels": { +"description": "Message type for storing user labels. User labels are used to tag App Engine resources, allowing users to search for resources matching a set of labels and to aggregate usage data by labels.", +"id": "UserLabels", +"properties": { +"labels": { +"additionalProperties": { +"type": "string" +}, +"type": "object" +} +}, +"type": "object" +}, +"WeeklyMaintenanceWindow": { +"description": "Time window in which disruptive maintenance updates occur. Non-disruptive updates can occur inside or outside this window.", +"id": "WeeklyMaintenanceWindow", +"properties": { +"day": { +"description": "Required. The day of week that maintenance updates occur.", +"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" +}, +"duration": { +"description": "Output only. Duration of the maintenance window. The current window is fixed at 1 hour.", +"format": "google-duration", +"readOnly": true, +"type": "string" +}, +"startTime": { +"$ref": "TimeOfDay", +"description": "Required. Start time of the window in UTC time." +} +}, +"type": "object" +}, +"ZoneDistributionConfig": { +"description": "Zone distribution config for allocation of cluster resources.", +"id": "ZoneDistributionConfig", +"properties": { +"mode": { +"description": "Optional. The mode of zone distribution. Defaults to MULTI_ZONE, when not specified.", +"enum": [ +"ZONE_DISTRIBUTION_MODE_UNSPECIFIED", +"MULTI_ZONE", +"SINGLE_ZONE" +], +"enumDescriptions": [ +"Not Set. Default: MULTI_ZONE", +"Distribute all resources across 3 zones picked at random, within the region.", +"Distribute all resources in a single zone. The zone field must be specified, when this mode is selected." +], +"type": "string" +}, +"zone": { +"description": "Optional. When SINGLE ZONE distribution is selected, zone field would be used to allocate all resources in that zone. This is not applicable to MULTI_ZONE, and would be ignored for MULTI_ZONE clusters.", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Google Cloud Memorystore for Redis 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/remotebuildexecution.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/remotebuildexecution.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..08edb90fbdfac189189a3601a78d581cd2c04f45 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/remotebuildexecution.v1.json @@ -0,0 +1,2103 @@ +{ + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/cloud-platform": { + "description": "See, edit, configure, and delete your Google Cloud Platform data" + } + } + } + }, + "basePath": "", + "baseUrl": "https://remotebuildexecution.googleapis.com/", + "batchPath": "batch", + "canonicalName": "Remote Build Execution", + "description": "Supplies a Remote Execution API service for tools such as bazel.", + "discoveryVersion": "v1", + "documentationLink": "https://cloud.google.com/remote-build-execution/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": "remotebuildexecution:v1", + "kind": "discovery#restDescription", + "mtlsRootUrl": "https://remotebuildexecution.mtls.googleapis.com/", + "name": "remotebuildexecution", + "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": { + "media": { + "methods": { + "download": { + "description": "Downloads media. Download is supported on the URI `/v1/media/{+name}?alt=media`.", + "flatPath": "v1/media/{mediaId}", + "httpMethod": "GET", + "id": "remotebuildexecution.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": "v1/media/{+resourceName}", + "response": { + "$ref": "GoogleBytestreamMedia" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "supportsMediaDownload": true + }, + "upload": { + "description": "Uploads media. Upload is supported on the URI `/upload/v1/media/{+name}`.", + "flatPath": "v1/media/{mediaId}", + "httpMethod": "POST", + "id": "remotebuildexecution.media.upload", + "mediaUpload": { + "accept": [ + "*/*" + ], + "protocols": { + "simple": { + "multipart": true, + "path": "/upload/v1/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": "v1/media/{+resourceName}", + "request": { + "$ref": "GoogleBytestreamMedia" + }, + "response": { + "$ref": "GoogleBytestreamMedia" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ], + "supportsMediaUpload": true + } + } + }, + "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": "remotebuildexecution.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": "GoogleLongrunningCancelOperationRequest" + }, + "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/operations/{operationsId}", + "httpMethod": "DELETE", + "id": "remotebuildexecution.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": "GoogleProtobufEmpty" + }, + "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`. NOTE: the `name` binding allows API services to override the binding to use different resource name schemes, such as `users/*/operations`. To override the binding, API services can add a binding such as `\"/v1/{name=users/*}/operations\"` to their service configuration. For backwards compatibility, the default name includes the operations collection id, however overriding users must ensure the name binding is the parent resource, without the operations collection id.", + "flatPath": "v1/operations", + "httpMethod": "GET", + "id": "remotebuildexecution.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": "GoogleLongrunningListOperationsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "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": "v1/projects/{projectsId}/operations/{operationsId}", + "httpMethod": "GET", + "id": "remotebuildexecution.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": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + } + }, + "revision": "20210712", + "rootUrl": "https://remotebuildexecution.googleapis.com/", + "schemas": { + "BuildBazelRemoteExecutionV2Action": { + "description": "An `Action` captures all the information about an execution which is required to reproduce it. `Action`s are the core component of the [Execution] service. A single `Action` represents a repeatable action that can be performed by the execution service. `Action`s can be succinctly identified by the digest of their wire format encoding and, once an `Action` has been executed, will be cached in the action cache. Future requests can then use the cached result rather than needing to run afresh. When a server completes execution of an Action, it MAY choose to cache the result in the ActionCache unless `do_not_cache` is `true`. Clients SHOULD expect the server to do so. By default, future calls to Execute the same `Action` will also serve their results from the cache. Clients must take care to understand the caching behaviour. Ideally, all `Action`s will be reproducible so that serving a result from cache is always desirable and correct.", + "id": "BuildBazelRemoteExecutionV2Action", + "properties": { + "commandDigest": { + "$ref": "BuildBazelRemoteExecutionV2Digest", + "description": "The digest of the Command to run, which MUST be present in the ContentAddressableStorage." + }, + "doNotCache": { + "description": "If true, then the `Action`'s result cannot be cached, and in-flight requests for the same `Action` may not be merged.", + "type": "boolean" + }, + "inputRootDigest": { + "$ref": "BuildBazelRemoteExecutionV2Digest", + "description": "The digest of the root Directory for the input files. The files in the directory tree are available in the correct location on the build machine before the command is executed. The root directory, as well as every subdirectory and content blob referred to, MUST be in the ContentAddressableStorage." + }, + "platform": { + "$ref": "BuildBazelRemoteExecutionV2Platform", + "description": "The optional platform requirements for the execution environment. The server MAY choose to execute the action on any worker satisfying the requirements, so the client SHOULD ensure that running the action on any such worker will have the same result. A detailed lexicon for this can be found in the accompanying platform.md. New in version 2.2: clients SHOULD set these platform properties as well as those in the Command. Servers SHOULD prefer those set here." + }, + "salt": { + "description": "An optional additional salt value used to place this `Action` into a separate cache namespace from other instances having the same field contents. This salt typically comes from operational configuration specific to sources such as repo and service configuration, and allows disowning an entire set of ActionResults that might have been poisoned by buggy software or tool failures.", + "format": "byte", + "type": "string" + }, + "timeout": { + "description": "A timeout after which the execution should be killed. If the timeout is absent, then the client is specifying that the execution should continue as long as the server will let it. The server SHOULD impose a timeout if the client does not specify one, however, if the client does specify a timeout that is longer than the server's maximum timeout, the server MUST reject the request. The timeout is a part of the Action message, and therefore two `Actions` with different timeouts are different, even if they are otherwise identical. This is because, if they were not, running an `Action` with a lower timeout than is required might result in a cache hit from an execution run with a longer timeout, hiding the fact that the timeout is too short. By encoding it directly in the `Action`, a lower timeout will result in a cache miss and the execution timeout will fail immediately, rather than whenever the cache entry gets evicted.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2ActionResult": { + "description": "An ActionResult represents the result of an Action being run. It is advised that at least one field (for example `ActionResult.execution_metadata.Worker`) have a non-default value, to ensure that the serialized value is non-empty, which can then be used as a basic data sanity check.", + "id": "BuildBazelRemoteExecutionV2ActionResult", + "properties": { + "executionMetadata": { + "$ref": "BuildBazelRemoteExecutionV2ExecutedActionMetadata", + "description": "The details of the execution that originally produced this result." + }, + "exitCode": { + "description": "The exit code of the command.", + "format": "int32", + "type": "integer" + }, + "outputDirectories": { + "description": "The output directories of the action. For each output directory requested in the `output_directories` or `output_paths` field of the Action, if the corresponding directory existed after the action completed, a single entry will be present in the output list, which will contain the digest of a Tree message containing the directory tree, and the path equal exactly to the corresponding Action output_directories member. As an example, suppose the Action had an output directory `a/b/dir` and the execution produced the following contents in `a/b/dir`: a file named `bar` and a directory named `foo` with an executable file named `baz`. Then, output_directory will contain (hashes shortened for readability): ```json // OutputDirectory proto: { path: \"a/b/dir\" tree_digest: { hash: \"4a73bc9d03...\", size: 55 } } // Tree proto with hash \"4a73bc9d03...\" and size 55: { root: { files: [ { name: \"bar\", digest: { hash: \"4a73bc9d03...\", size: 65534 } } ], directories: [ { name: \"foo\", digest: { hash: \"4cf2eda940...\", size: 43 } } ] } children : { // (Directory proto with hash \"4cf2eda940...\" and size 43) files: [ { name: \"baz\", digest: { hash: \"b2c941073e...\", size: 1294, }, is_executable: true } ] } } ``` If an output of the same name as listed in `output_files` of the Command was found in `output_directories`, but was not a directory, the server will return a FAILED_PRECONDITION.", + "items": { + "$ref": "BuildBazelRemoteExecutionV2OutputDirectory" + }, + "type": "array" + }, + "outputDirectorySymlinks": { + "description": "The output directories of the action that are symbolic links to other directories. Those may be links to other output directories, or input directories, or even absolute paths outside of the working directory, if the server supports SymlinkAbsolutePathStrategy.ALLOWED. For each output directory requested in the `output_directories` field of the Action, if the directory existed after the action completed, a single entry will be present either in this field, or in the `output_directories` field, if the directory was not a symbolic link. If an output of the same name was found, but was a symbolic link to a file instead of a directory, the server will return a FAILED_PRECONDITION. If the action does not produce the requested output, then that output will be omitted from the list. The server is free to arrange the output list as desired; clients MUST NOT assume that the output list is sorted. DEPRECATED as of v2.1. Servers that wish to be compatible with v2.0 API should still populate this field in addition to `output_symlinks`.", + "items": { + "$ref": "BuildBazelRemoteExecutionV2OutputSymlink" + }, + "type": "array" + }, + "outputFileSymlinks": { + "description": "The output files of the action that are symbolic links to other files. Those may be links to other output files, or input files, or even absolute paths outside of the working directory, if the server supports SymlinkAbsolutePathStrategy.ALLOWED. For each output file requested in the `output_files` or `output_paths` field of the Action, if the corresponding file existed after the action completed, a single entry will be present either in this field, or in the `output_files` field, if the file was not a symbolic link. If an output symbolic link of the same name as listed in `output_files` of the Command was found, but its target type was not a regular file, the server will return a FAILED_PRECONDITION. If the action does not produce the requested output, then that output will be omitted from the list. The server is free to arrange the output list as desired; clients MUST NOT assume that the output list is sorted. DEPRECATED as of v2.1. Servers that wish to be compatible with v2.0 API should still populate this field in addition to `output_symlinks`.", + "items": { + "$ref": "BuildBazelRemoteExecutionV2OutputSymlink" + }, + "type": "array" + }, + "outputFiles": { + "description": "The output files of the action. For each output file requested in the `output_files` or `output_paths` field of the Action, if the corresponding file existed after the action completed, a single entry will be present either in this field, or the `output_file_symlinks` field if the file was a symbolic link to another file (`output_symlinks` field after v2.1). If an output listed in `output_files` was found, but was a directory rather than a regular file, the server will return a FAILED_PRECONDITION. If the action does not produce the requested output, then that output will be omitted from the list. The server is free to arrange the output list as desired; clients MUST NOT assume that the output list is sorted.", + "items": { + "$ref": "BuildBazelRemoteExecutionV2OutputFile" + }, + "type": "array" + }, + "outputSymlinks": { + "description": "New in v2.1: this field will only be populated if the command `output_paths` field was used, and not the pre v2.1 `output_files` or `output_directories` fields. The output paths of the action that are symbolic links to other paths. Those may be links to other outputs, or inputs, or even absolute paths outside of the working directory, if the server supports SymlinkAbsolutePathStrategy.ALLOWED. A single entry for each output requested in `output_paths` field of the Action, if the corresponding path existed after the action completed and was a symbolic link. If the action does not produce a requested output, then that output will be omitted from the list. The server is free to arrange the output list as desired; clients MUST NOT assume that the output list is sorted.", + "items": { + "$ref": "BuildBazelRemoteExecutionV2OutputSymlink" + }, + "type": "array" + }, + "stderrDigest": { + "$ref": "BuildBazelRemoteExecutionV2Digest", + "description": "The digest for a blob containing the standard error of the action, which can be retrieved from the ContentAddressableStorage." + }, + "stderrRaw": { + "description": "The standard error buffer of the action. The server SHOULD NOT inline stderr unless requested by the client in the GetActionResultRequest message. The server MAY omit inlining, even if requested, and MUST do so if inlining would cause the response to exceed message size limits.", + "format": "byte", + "type": "string" + }, + "stdoutDigest": { + "$ref": "BuildBazelRemoteExecutionV2Digest", + "description": "The digest for a blob containing the standard output of the action, which can be retrieved from the ContentAddressableStorage." + }, + "stdoutRaw": { + "description": "The standard output buffer of the action. The server SHOULD NOT inline stdout unless requested by the client in the GetActionResultRequest message. The server MAY omit inlining, even if requested, and MUST do so if inlining would cause the response to exceed message size limits.", + "format": "byte", + "type": "string" + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2Command": { + "description": "A `Command` is the actual command executed by a worker running an Action and specifications of its environment. Except as otherwise required, the environment (such as which system libraries or binaries are available, and what filesystems are mounted where) is defined by and specific to the implementation of the remote execution API.", + "id": "BuildBazelRemoteExecutionV2Command", + "properties": { + "arguments": { + "description": "The arguments to the command. The first argument must be the path to the executable, which must be either a relative path, in which case it is evaluated with respect to the input root, or an absolute path.", + "items": { + "type": "string" + }, + "type": "array" + }, + "environmentVariables": { + "description": "The environment variables to set when running the program. The worker may provide its own default environment variables; these defaults can be overridden using this field. Additional variables can also be specified. In order to ensure that equivalent Commands always hash to the same value, the environment variables MUST be lexicographically sorted by name. Sorting of strings is done by code point, equivalently, by the UTF-8 bytes.", + "items": { + "$ref": "BuildBazelRemoteExecutionV2CommandEnvironmentVariable" + }, + "type": "array" + }, + "outputDirectories": { + "description": "A list of the output directories that the client expects to retrieve from the action. Only the listed directories will be returned (an entire directory structure will be returned as a Tree message digest, see OutputDirectory), as well as files listed in `output_files`. Other files or directories that may be created during command execution are discarded. The paths are relative to the working directory of the action execution. The paths are specified using a single forward slash (`/`) as a path separator, even if the execution platform natively uses a different separator. The path MUST NOT include a trailing slash, nor a leading slash, being a relative path. The special value of empty string is allowed, although not recommended, and can be used to capture the entire working directory tree, including inputs. In order to ensure consistent hashing of the same Action, the output paths MUST be sorted lexicographically by code point (or, equivalently, by UTF-8 bytes). An output directory cannot be duplicated or have the same path as any of the listed output files. An output directory is allowed to be a parent of another output directory. Directories leading up to the output directories (but not the output directories themselves) are created by the worker prior to execution, even if they are not explicitly part of the input root. DEPRECATED since 2.1: Use `output_paths` instead.", + "items": { + "type": "string" + }, + "type": "array" + }, + "outputFiles": { + "description": "A list of the output files that the client expects to retrieve from the action. Only the listed files, as well as directories listed in `output_directories`, will be returned to the client as output. Other files or directories that may be created during command execution are discarded. The paths are relative to the working directory of the action execution. The paths are specified using a single forward slash (`/`) as a path separator, even if the execution platform natively uses a different separator. The path MUST NOT include a trailing slash, nor a leading slash, being a relative path. In order to ensure consistent hashing of the same Action, the output paths MUST be sorted lexicographically by code point (or, equivalently, by UTF-8 bytes). An output file cannot be duplicated, be a parent of another output file, or have the same path as any of the listed output directories. Directories leading up to the output files are created by the worker prior to execution, even if they are not explicitly part of the input root. DEPRECATED since v2.1: Use `output_paths` instead.", + "items": { + "type": "string" + }, + "type": "array" + }, + "outputNodeProperties": { + "description": "A list of keys for node properties the client expects to retrieve for output files and directories. Keys are either names of string-based NodeProperty or names of fields in NodeProperties. In order to ensure that equivalent `Action`s always hash to the same value, the node properties MUST be lexicographically sorted by name. Sorting of strings is done by code point, equivalently, by the UTF-8 bytes. The interpretation of string-based properties is server-dependent. If a property is not recognized by the server, the server will return an `INVALID_ARGUMENT`.", + "items": { + "type": "string" + }, + "type": "array" + }, + "outputPaths": { + "description": "A list of the output paths that the client expects to retrieve from the action. Only the listed paths will be returned to the client as output. The type of the output (file or directory) is not specified, and will be determined by the server after action execution. If the resulting path is a file, it will be returned in an OutputFile) typed field. If the path is a directory, the entire directory structure will be returned as a Tree message digest, see OutputDirectory) Other files or directories that may be created during command execution are discarded. The paths are relative to the working directory of the action execution. The paths are specified using a single forward slash (`/`) as a path separator, even if the execution platform natively uses a different separator. The path MUST NOT include a trailing slash, nor a leading slash, being a relative path. In order to ensure consistent hashing of the same Action, the output paths MUST be deduplicated and sorted lexicographically by code point (or, equivalently, by UTF-8 bytes). Directories leading up to the output paths are created by the worker prior to execution, even if they are not explicitly part of the input root. New in v2.1: this field supersedes the DEPRECATED `output_files` and `output_directories` fields. If `output_paths` is used, `output_files` and `output_directories` will be ignored!", + "items": { + "type": "string" + }, + "type": "array" + }, + "platform": { + "$ref": "BuildBazelRemoteExecutionV2Platform", + "description": "The platform requirements for the execution environment. The server MAY choose to execute the action on any worker satisfying the requirements, so the client SHOULD ensure that running the action on any such worker will have the same result. A detailed lexicon for this can be found in the accompanying platform.md. DEPRECATED as of v2.2: platform properties are now specified directly in the action. See documentation note in the Action for migration." + }, + "workingDirectory": { + "description": "The working directory, relative to the input root, for the command to run in. It must be a directory which exists in the input tree. If it is left empty, then the action is run in the input root.", + "type": "string" + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2CommandEnvironmentVariable": { + "description": "An `EnvironmentVariable` is one variable to set in the running program's environment.", + "id": "BuildBazelRemoteExecutionV2CommandEnvironmentVariable", + "properties": { + "name": { + "description": "The variable name.", + "type": "string" + }, + "value": { + "description": "The variable value.", + "type": "string" + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2Digest": { + "description": "A content digest. A digest for a given blob consists of the size of the blob and its hash. The hash algorithm to use is defined by the server. The size is considered to be an integral part of the digest and cannot be separated. That is, even if the `hash` field is correctly specified but `size_bytes` is not, the server MUST reject the request. The reason for including the size in the digest is as follows: in a great many cases, the server needs to know the size of the blob it is about to work with prior to starting an operation with it, such as flattening Merkle tree structures or streaming it to a worker. Technically, the server could implement a separate metadata store, but this results in a significantly more complicated implementation as opposed to having the client specify the size up-front (or storing the size along with the digest in every message where digests are embedded). This does mean that the API leaks some implementation details of (what we consider to be) a reasonable server implementation, but we consider this to be a worthwhile tradeoff. When a `Digest` is used to refer to a proto message, it always refers to the message in binary encoded form. To ensure consistent hashing, clients and servers MUST ensure that they serialize messages according to the following rules, even if there are alternate valid encodings for the same message: * Fields are serialized in tag order. * There are no unknown fields. * There are no duplicate fields. * Fields are serialized according to the default semantics for their type. Most protocol buffer implementations will always follow these rules when serializing, but care should be taken to avoid shortcuts. For instance, concatenating two messages to merge them may produce duplicate fields.", + "id": "BuildBazelRemoteExecutionV2Digest", + "properties": { + "hash": { + "description": "The hash. In the case of SHA-256, it will always be a lowercase hex string exactly 64 characters long.", + "type": "string" + }, + "sizeBytes": { + "description": "The size of the blob, in bytes.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2Directory": { + "description": "A `Directory` represents a directory node in a file tree, containing zero or more children FileNodes, DirectoryNodes and SymlinkNodes. Each `Node` contains its name in the directory, either the digest of its content (either a file blob or a `Directory` proto) or a symlink target, as well as possibly some metadata about the file or directory. In order to ensure that two equivalent directory trees hash to the same value, the following restrictions MUST be obeyed when constructing a a `Directory`: * Every child in the directory must have a path of exactly one segment. Multiple levels of directory hierarchy may not be collapsed. * Each child in the directory must have a unique path segment (file name). Note that while the API itself is case-sensitive, the environment where the Action is executed may or may not be case-sensitive. That is, it is legal to call the API with a Directory that has both \"Foo\" and \"foo\" as children, but the Action may be rejected by the remote system upon execution. * The files, directories and symlinks in the directory must each be sorted in lexicographical order by path. The path strings must be sorted by code point, equivalently, by UTF-8 bytes. * The NodeProperties of files, directories, and symlinks must be sorted in lexicographical order by property name. A `Directory` that obeys the restrictions is said to be in canonical form. As an example, the following could be used for a file named `bar` and a directory named `foo` with an executable file named `baz` (hashes shortened for readability): ```json // (Directory proto) { files: [ { name: \"bar\", digest: { hash: \"4a73bc9d03...\", size: 65534 }, node_properties: [ { \"name\": \"MTime\", \"value\": \"2017-01-15T01:30:15.01Z\" } ] } ], directories: [ { name: \"foo\", digest: { hash: \"4cf2eda940...\", size: 43 } } ] } // (Directory proto with hash \"4cf2eda940...\" and size 43) { files: [ { name: \"baz\", digest: { hash: \"b2c941073e...\", size: 1294, }, is_executable: true } ] } ```", + "id": "BuildBazelRemoteExecutionV2Directory", + "properties": { + "directories": { + "description": "The subdirectories in the directory.", + "items": { + "$ref": "BuildBazelRemoteExecutionV2DirectoryNode" + }, + "type": "array" + }, + "files": { + "description": "The files in the directory.", + "items": { + "$ref": "BuildBazelRemoteExecutionV2FileNode" + }, + "type": "array" + }, + "nodeProperties": { + "$ref": "BuildBazelRemoteExecutionV2NodeProperties" + }, + "symlinks": { + "description": "The symlinks in the directory.", + "items": { + "$ref": "BuildBazelRemoteExecutionV2SymlinkNode" + }, + "type": "array" + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2DirectoryNode": { + "description": "A `DirectoryNode` represents a child of a Directory which is itself a `Directory` and its associated metadata.", + "id": "BuildBazelRemoteExecutionV2DirectoryNode", + "properties": { + "digest": { + "$ref": "BuildBazelRemoteExecutionV2Digest", + "description": "The digest of the Directory object represented. See Digest for information about how to take the digest of a proto message." + }, + "name": { + "description": "The name of the directory.", + "type": "string" + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2ExecuteOperationMetadata": { + "description": "Metadata about an ongoing execution, which will be contained in the metadata field of the Operation.", + "id": "BuildBazelRemoteExecutionV2ExecuteOperationMetadata", + "properties": { + "actionDigest": { + "$ref": "BuildBazelRemoteExecutionV2Digest", + "description": "The digest of the Action being executed." + }, + "stage": { + "description": "The current stage of execution.", + "enum": [ + "UNKNOWN", + "CACHE_CHECK", + "QUEUED", + "EXECUTING", + "COMPLETED" + ], + "enumDescriptions": [ + "Invalid value.", + "Checking the result against the cache.", + "Currently idle, awaiting a free machine to execute.", + "Currently being executed by a worker.", + "Finished execution." + ], + "type": "string" + }, + "stderrStreamName": { + "description": "If set, the client can use this resource name with ByteStream.Read to stream the standard error from the endpoint hosting streamed responses.", + "type": "string" + }, + "stdoutStreamName": { + "description": "If set, the client can use this resource name with ByteStream.Read to stream the standard output from the endpoint hosting streamed responses.", + "type": "string" + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2ExecuteResponse": { + "description": "The response message for Execution.Execute, which will be contained in the response field of the Operation.", + "id": "BuildBazelRemoteExecutionV2ExecuteResponse", + "properties": { + "cachedResult": { + "description": "True if the result was served from cache, false if it was executed.", + "type": "boolean" + }, + "message": { + "description": "Freeform informational message with details on the execution of the action that may be displayed to the user upon failure or when requested explicitly.", + "type": "string" + }, + "result": { + "$ref": "BuildBazelRemoteExecutionV2ActionResult", + "description": "The result of the action." + }, + "serverLogs": { + "additionalProperties": { + "$ref": "BuildBazelRemoteExecutionV2LogFile" + }, + "description": "An optional list of additional log outputs the server wishes to provide. A server can use this to return execution-specific logs however it wishes. This is intended primarily to make it easier for users to debug issues that may be outside of the actual job execution, such as by identifying the worker executing the action or by providing logs from the worker's setup phase. The keys SHOULD be human readable so that a client can display them to a user.", + "type": "object" + }, + "status": { + "$ref": "GoogleRpcStatus", + "description": "If the status has a code other than `OK`, it indicates that the action did not finish execution. For example, if the operation times out during execution, the status will have a `DEADLINE_EXCEEDED` code. Servers MUST use this field for errors in execution, rather than the error field on the `Operation` object. If the status code is other than `OK`, then the result MUST NOT be cached. For an error status, the `result` field is optional; the server may populate the output-, stdout-, and stderr-related fields if it has any information available, such as the stdout and stderr of a timed-out action." + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2ExecutedActionMetadata": { + "description": "ExecutedActionMetadata contains details about a completed execution.", + "id": "BuildBazelRemoteExecutionV2ExecutedActionMetadata", + "properties": { + "auxiliaryMetadata": { + "description": "Details that are specific to the kind of worker used. For example, on POSIX-like systems this could contain a message with getrusage(2) statistics.", + "items": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "type": "object" + }, + "type": "array" + }, + "executionCompletedTimestamp": { + "description": "When the worker completed executing the action command.", + "format": "google-datetime", + "type": "string" + }, + "executionStartTimestamp": { + "description": "When the worker started executing the action command.", + "format": "google-datetime", + "type": "string" + }, + "inputFetchCompletedTimestamp": { + "description": "When the worker finished fetching action inputs.", + "format": "google-datetime", + "type": "string" + }, + "inputFetchStartTimestamp": { + "description": "When the worker started fetching action inputs.", + "format": "google-datetime", + "type": "string" + }, + "outputUploadCompletedTimestamp": { + "description": "When the worker finished uploading action outputs.", + "format": "google-datetime", + "type": "string" + }, + "outputUploadStartTimestamp": { + "description": "When the worker started uploading action outputs.", + "format": "google-datetime", + "type": "string" + }, + "queuedTimestamp": { + "description": "When was the action added to the queue.", + "format": "google-datetime", + "type": "string" + }, + "worker": { + "description": "The name of the worker which ran the execution.", + "type": "string" + }, + "workerCompletedTimestamp": { + "description": "When the worker completed the action, including all stages.", + "format": "google-datetime", + "type": "string" + }, + "workerStartTimestamp": { + "description": "When the worker received the action.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2FileNode": { + "description": "A `FileNode` represents a single file and associated metadata.", + "id": "BuildBazelRemoteExecutionV2FileNode", + "properties": { + "digest": { + "$ref": "BuildBazelRemoteExecutionV2Digest", + "description": "The digest of the file's content." + }, + "isExecutable": { + "description": "True if file is executable, false otherwise.", + "type": "boolean" + }, + "name": { + "description": "The name of the file.", + "type": "string" + }, + "nodeProperties": { + "$ref": "BuildBazelRemoteExecutionV2NodeProperties" + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2LogFile": { + "description": "A `LogFile` is a log stored in the CAS.", + "id": "BuildBazelRemoteExecutionV2LogFile", + "properties": { + "digest": { + "$ref": "BuildBazelRemoteExecutionV2Digest", + "description": "The digest of the log contents." + }, + "humanReadable": { + "description": "This is a hint as to the purpose of the log, and is set to true if the log is human-readable text that can be usefully displayed to a user, and false otherwise. For instance, if a command-line client wishes to print the server logs to the terminal for a failed action, this allows it to avoid displaying a binary file.", + "type": "boolean" + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2NodeProperties": { + "description": "Node properties for FileNodes, DirectoryNodes, and SymlinkNodes. The server is responsible for specifying the properties that it accepts.", + "id": "BuildBazelRemoteExecutionV2NodeProperties", + "properties": { + "mtime": { + "description": "The file's last modification timestamp.", + "format": "google-datetime", + "type": "string" + }, + "properties": { + "description": "A list of string-based NodeProperties.", + "items": { + "$ref": "BuildBazelRemoteExecutionV2NodeProperty" + }, + "type": "array" + }, + "unixMode": { + "description": "The UNIX file mode, e.g., 0755.", + "format": "uint32", + "type": "integer" + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2NodeProperty": { + "description": "A single property for FileNodes, DirectoryNodes, and SymlinkNodes. The server is responsible for specifying the property `name`s that it accepts. If permitted by the server, the same `name` may occur multiple times.", + "id": "BuildBazelRemoteExecutionV2NodeProperty", + "properties": { + "name": { + "description": "The property name.", + "type": "string" + }, + "value": { + "description": "The property value.", + "type": "string" + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2OutputDirectory": { + "description": "An `OutputDirectory` is the output in an `ActionResult` corresponding to a directory's full contents rather than a single file.", + "id": "BuildBazelRemoteExecutionV2OutputDirectory", + "properties": { + "path": { + "description": "The full path of the directory relative to the working directory. The path separator is a forward slash `/`. Since this is a relative path, it MUST NOT begin with a leading forward slash. The empty string value is allowed, and it denotes the entire working directory.", + "type": "string" + }, + "treeDigest": { + "$ref": "BuildBazelRemoteExecutionV2Digest", + "description": "The digest of the encoded Tree proto containing the directory's contents." + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2OutputFile": { + "description": "An `OutputFile` is similar to a FileNode, but it is used as an output in an `ActionResult`. It allows a full file path rather than only a name.", + "id": "BuildBazelRemoteExecutionV2OutputFile", + "properties": { + "contents": { + "description": "The contents of the file if inlining was requested. The server SHOULD NOT inline file contents unless requested by the client in the GetActionResultRequest message. The server MAY omit inlining, even if requested, and MUST do so if inlining would cause the response to exceed message size limits.", + "format": "byte", + "type": "string" + }, + "digest": { + "$ref": "BuildBazelRemoteExecutionV2Digest", + "description": "The digest of the file's content." + }, + "isExecutable": { + "description": "True if file is executable, false otherwise.", + "type": "boolean" + }, + "nodeProperties": { + "$ref": "BuildBazelRemoteExecutionV2NodeProperties" + }, + "path": { + "description": "The full path of the file relative to the working directory, including the filename. The path separator is a forward slash `/`. Since this is a relative path, it MUST NOT begin with a leading forward slash.", + "type": "string" + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2OutputSymlink": { + "description": "An `OutputSymlink` is similar to a Symlink, but it is used as an output in an `ActionResult`. `OutputSymlink` is binary-compatible with `SymlinkNode`.", + "id": "BuildBazelRemoteExecutionV2OutputSymlink", + "properties": { + "nodeProperties": { + "$ref": "BuildBazelRemoteExecutionV2NodeProperties" + }, + "path": { + "description": "The full path of the symlink relative to the working directory, including the filename. The path separator is a forward slash `/`. Since this is a relative path, it MUST NOT begin with a leading forward slash.", + "type": "string" + }, + "target": { + "description": "The target path of the symlink. The path separator is a forward slash `/`. The target path can be relative to the parent directory of the symlink or it can be an absolute path starting with `/`. Support for absolute paths can be checked using the Capabilities API. `..` components are allowed anywhere in the target path.", + "type": "string" + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2Platform": { + "description": "A `Platform` is a set of requirements, such as hardware, operating system, or compiler toolchain, for an Action's execution environment. A `Platform` is represented as a series of key-value pairs representing the properties that are required of the platform.", + "id": "BuildBazelRemoteExecutionV2Platform", + "properties": { + "properties": { + "description": "The properties that make up this platform. In order to ensure that equivalent `Platform`s always hash to the same value, the properties MUST be lexicographically sorted by name, and then by value. Sorting of strings is done by code point, equivalently, by the UTF-8 bytes.", + "items": { + "$ref": "BuildBazelRemoteExecutionV2PlatformProperty" + }, + "type": "array" + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2PlatformProperty": { + "description": "A single property for the environment. The server is responsible for specifying the property `name`s that it accepts. If an unknown `name` is provided in the requirements for an Action, the server SHOULD reject the execution request. If permitted by the server, the same `name` may occur multiple times. The server is also responsible for specifying the interpretation of property `value`s. For instance, a property describing how much RAM must be available may be interpreted as allowing a worker with 16GB to fulfill a request for 8GB, while a property describing the OS environment on which the action must be performed may require an exact match with the worker's OS. The server MAY use the `value` of one or more properties to determine how it sets up the execution environment, such as by making specific system files available to the worker. Both names and values are typically case-sensitive. Note that the platform is implicitly part of the action digest, so even tiny changes in the names or values (like changing case) may result in different action cache entries.", + "id": "BuildBazelRemoteExecutionV2PlatformProperty", + "properties": { + "name": { + "description": "The property name.", + "type": "string" + }, + "value": { + "description": "The property value.", + "type": "string" + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2RequestMetadata": { + "description": "An optional Metadata to attach to any RPC request to tell the server about an external context of the request. The server may use this for logging or other purposes. To use it, the client attaches the header to the call using the canonical proto serialization: * name: `build.bazel.remote.execution.v2.requestmetadata-bin` * contents: the base64 encoded binary `RequestMetadata` message. Note: the gRPC library serializes binary headers encoded in base 64 by default (https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md#requests). Therefore, if the gRPC library is used to pass/retrieve this metadata, the user may ignore the base64 encoding and assume it is simply serialized as a binary message.", + "id": "BuildBazelRemoteExecutionV2RequestMetadata", + "properties": { + "actionId": { + "description": "An identifier that ties multiple requests to the same action. For example, multiple requests to the CAS, Action Cache, and Execution API are used in order to compile foo.cc.", + "type": "string" + }, + "actionMnemonic": { + "description": "A brief description of the kind of action, for example, CppCompile or GoLink. There is no standard agreed set of values for this, and they are expected to vary between different client tools.", + "type": "string" + }, + "configurationId": { + "description": "An identifier for the configuration in which the target was built, e.g. for differentiating building host tools or different target platforms. There is no expectation that this value will have any particular structure, or equality across invocations, though some client tools may offer these guarantees.", + "type": "string" + }, + "correlatedInvocationsId": { + "description": "An identifier to tie multiple tool invocations together. For example, runs of foo_test, bar_test and baz_test on a post-submit of a given patch.", + "type": "string" + }, + "targetId": { + "description": "An identifier for the target which produced this action. No guarantees are made around how many actions may relate to a single target.", + "type": "string" + }, + "toolDetails": { + "$ref": "BuildBazelRemoteExecutionV2ToolDetails", + "description": "The details for the tool invoking the requests." + }, + "toolInvocationId": { + "description": "An identifier that ties multiple actions together to a final result. For example, multiple actions are required to build and run foo_test.", + "type": "string" + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2SymlinkNode": { + "description": "A `SymlinkNode` represents a symbolic link.", + "id": "BuildBazelRemoteExecutionV2SymlinkNode", + "properties": { + "name": { + "description": "The name of the symlink.", + "type": "string" + }, + "nodeProperties": { + "$ref": "BuildBazelRemoteExecutionV2NodeProperties" + }, + "target": { + "description": "The target path of the symlink. The path separator is a forward slash `/`. The target path can be relative to the parent directory of the symlink or it can be an absolute path starting with `/`. Support for absolute paths can be checked using the Capabilities API. `..` components are allowed anywhere in the target path as logical canonicalization may lead to different behavior in the presence of directory symlinks (e.g. `foo/../bar` may not be the same as `bar`). To reduce potential cache misses, canonicalization is still recommended where this is possible without impacting correctness.", + "type": "string" + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2ToolDetails": { + "description": "Details for the tool used to call the API.", + "id": "BuildBazelRemoteExecutionV2ToolDetails", + "properties": { + "toolName": { + "description": "Name of the tool, e.g. bazel.", + "type": "string" + }, + "toolVersion": { + "description": "Version of the tool used for the request, e.g. 5.0.3.", + "type": "string" + } + }, + "type": "object" + }, + "BuildBazelRemoteExecutionV2Tree": { + "description": "A `Tree` contains all the Directory protos in a single directory Merkle tree, compressed into one message.", + "id": "BuildBazelRemoteExecutionV2Tree", + "properties": { + "children": { + "description": "All the child directories: the directories referred to by the root and, recursively, all its children. In order to reconstruct the directory tree, the client must take the digests of each of the child directories and then build up a tree starting from the `root`.", + "items": { + "$ref": "BuildBazelRemoteExecutionV2Directory" + }, + "type": "array" + }, + "root": { + "$ref": "BuildBazelRemoteExecutionV2Directory", + "description": "The root directory in the tree." + } + }, + "type": "object" + }, + "GoogleBytestreamMedia": { + "description": "Media resource.", + "id": "GoogleBytestreamMedia", + "properties": { + "resourceName": { + "description": "Name of the media resource.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemotebuildbotCommandDurations": { + "description": "CommandDuration contains the various duration metrics tracked when a bot performs a command.", + "id": "GoogleDevtoolsRemotebuildbotCommandDurations", + "properties": { + "casRelease": { + "description": "The time spent to release the CAS blobs used by the task.", + "format": "google-duration", + "type": "string" + }, + "cmWaitForAssignment": { + "description": "The time spent waiting for Container Manager to assign an asynchronous container for execution.", + "format": "google-duration", + "type": "string" + }, + "dockerPrep": { + "description": "The time spent preparing the command to be run in a Docker container (includes pulling the Docker image, if necessary).", + "format": "google-duration", + "type": "string" + }, + "dockerPrepStartTime": { + "description": "The timestamp when docker preparation begins.", + "format": "google-datetime", + "type": "string" + }, + "download": { + "description": "The time spent downloading the input files and constructing the working directory.", + "format": "google-duration", + "type": "string" + }, + "downloadStartTime": { + "description": "The timestamp when downloading the input files begins.", + "format": "google-datetime", + "type": "string" + }, + "execStartTime": { + "description": "The timestamp when execution begins.", + "format": "google-datetime", + "type": "string" + }, + "execution": { + "description": "The time spent executing the command (i.e., doing useful work).", + "format": "google-duration", + "type": "string" + }, + "isoPrepDone": { + "description": "The timestamp when preparation is done and bot starts downloading files.", + "format": "google-datetime", + "type": "string" + }, + "overall": { + "description": "The time spent completing the command, in total.", + "format": "google-duration", + "type": "string" + }, + "stdout": { + "description": "The time spent uploading the stdout logs.", + "format": "google-duration", + "type": "string" + }, + "upload": { + "description": "The time spent uploading the output files.", + "format": "google-duration", + "type": "string" + }, + "uploadStartTime": { + "description": "The timestamp when uploading the output files begins.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemotebuildbotCommandEvents": { + "description": "CommandEvents contains counters for the number of warnings and errors that occurred during the execution of a command.", + "id": "GoogleDevtoolsRemotebuildbotCommandEvents", + "properties": { + "cmUsage": { + "description": "Indicates if and how Container Manager is being used for task execution.", + "enum": [ + "CONFIG_NONE", + "CONFIG_MATCH", + "CONFIG_MISMATCH" + ], + "enumDescriptions": [ + "Container Manager is disabled or not running for this execution.", + "Container Manager is enabled and there was a matching container available for use during execution.", + "Container Manager is enabled, but there was no matching container available for execution." + ], + "type": "string" + }, + "dockerCacheHit": { + "description": "Indicates whether we are using a cached Docker image (true) or had to pull the Docker image (false) for this command.", + "type": "boolean" + }, + "dockerImageName": { + "description": "Docker Image name.", + "type": "string" + }, + "inputCacheMiss": { + "description": "The input cache miss ratio.", + "format": "float", + "type": "number" + }, + "numErrors": { + "description": "The number of errors reported.", + "format": "uint64", + "type": "string" + }, + "numWarnings": { + "description": "The number of warnings reported.", + "format": "uint64", + "type": "string" + }, + "outputLocation": { + "description": "Indicates whether output files and/or output directories were found relative to the execution root or to the user provided work directory or both or none.", + "enum": [ + "LOCATION_UNDEFINED", + "LOCATION_NONE", + "LOCATION_EXEC_ROOT_RELATIVE", + "LOCATION_WORKING_DIR_RELATIVE", + "LOCATION_EXEC_ROOT_AND_WORKING_DIR_RELATIVE", + "LOCATION_EXEC_ROOT_RELATIVE_OUTPUT_OUTSIDE_WORKING_DIR", + "LOCATION_EXEC_ROOT_AND_WORKING_DIR_RELATIVE_OUTPUT_OUTSIDE_WORKING_DIR" + ], + "enumDescriptions": [ + "Location is set to LOCATION_UNDEFINED for tasks where the working directorty is not specified or is identical to the execution root directory.", + "No output files or directories were found neither relative to the execution root directory nor relative to the working directory.", + "Output files or directories were found relative to the execution root directory but not relative to the working directory.", + "Output files or directories were found relative to the working directory but not relative to the execution root directory.", + "Output files or directories were found both relative to the execution root directory and relative to the working directory.", + "Output files or directories were found relative to the execution root directory but not relative to the working directory. In addition at least one output file or directory was found outside of the working directory such that a working-directory-relative-path would have needed to start with a `..`.", + "Output files or directories were found both relative to the execution root directory and relative to the working directory. In addition at least one exec-root-relative output file or directory was found outside of the working directory such that a working-directory-relative-path would have needed to start with a `..`." + ], + "type": "string" + }, + "usedAsyncContainer": { + "description": "Indicates whether an asynchronous container was used for execution.", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemotebuildbotCommandStatus": { + "description": "The internal status of the command result.", + "id": "GoogleDevtoolsRemotebuildbotCommandStatus", + "properties": { + "code": { + "description": "The status code.", + "enum": [ + "OK", + "INVALID_ARGUMENT", + "DEADLINE_EXCEEDED", + "NOT_FOUND", + "PERMISSION_DENIED", + "INTERNAL", + "ABORTED", + "FAILED_PRECONDITION", + "CLEANUP_ERROR", + "DOWNLOAD_INPUTS_ERROR", + "UNKNOWN", + "UPLOAD_OUTPUTS_ERROR", + "UPLOAD_OUTPUTS_BYTES_LIMIT_EXCEEDED", + "DOCKER_LOGIN_ERROR", + "DOCKER_IMAGE_PULL_ERROR", + "DOCKER_IMAGE_EXIST_ERROR", + "DUPLICATE_INPUTS", + "DOCKER_IMAGE_PERMISSION_DENIED", + "DOCKER_IMAGE_NOT_FOUND", + "WORKING_DIR_NOT_FOUND", + "WORKING_DIR_NOT_IN_BASE_DIR", + "DOCKER_UNAVAILABLE", + "NO_CUDA_CAPABLE_DEVICE", + "REMOTE_CAS_DOWNLOAD_ERROR", + "REMOTE_CAS_UPLOAD_ERROR", + "LOCAL_CASPROXY_NOT_RUNNING", + "DOCKER_CREATE_CONTAINER_ERROR", + "DOCKER_INVALID_ULIMIT", + "DOCKER_UNKNOWN_RUNTIME", + "DOCKER_UNKNOWN_CAPABILITY", + "DOCKER_UNKNOWN_ERROR", + "DOCKER_CREATE_COMPUTE_SYSTEM_ERROR", + "DOCKER_PREPARELAYER_ERROR", + "DOCKER_INCOMPATIBLE_OS_ERROR", + "DOCKER_CREATE_RUNTIME_FILE_NOT_FOUND", + "DOCKER_CREATE_RUNTIME_PERMISSION_DENIED", + "DOCKER_CREATE_PROCESS_FILE_NOT_FOUND", + "DOCKER_CREATE_COMPUTE_SYSTEM_INCORRECT_PARAMETER_ERROR", + "DOCKER_TOO_MANY_SYMBOLIC_LINK_LEVELS", + "LOCAL_CONTAINER_MANAGER_NOT_RUNNING", + "DOCKER_IMAGE_VPCSC_PERMISSION_DENIED", + "WORKING_DIR_NOT_RELATIVE", + "DOCKER_MISSING_CONTAINER" + ], + "enumDescriptions": [ + "The command succeeded.", + "The command input was invalid.", + "The command had passed its expiry time while it was still running.", + "The resources requested by the command were not found.", + "The command failed due to permission errors.", + "The command failed because of some invariants expected by the underlying system have been broken. This usually indicates a bug wit the system.", + "The command was aborted.", + "The command failed because the system is not in a state required for the command, e.g. the command inputs cannot be found on the server.", + "The bot failed to do the cleanup, e.g. unable to delete the command working directory or the command process.", + "The bot failed to download the inputs.", + "Unknown error.", + "The bot failed to upload the outputs.", + "The bot tried to upload files having a total size that is too large.", + "The bot failed to login to docker.", + "The bot failed to pull docker image.", + "The bot failed to check docker images.", + "The inputs contain duplicate files.", + "The bot doesn't have the permissions to pull docker images.", + "The docker image cannot be found.", + "Working directory is not found.", + "Working directory is not under the base directory", + "There are issues with docker service/runtime.", + "The command failed with \"no cuda-capable device is detected\" error.", + "The bot encountered errors from remote CAS when downloading blobs.", + "The bot encountered errors from remote CAS when uploading blobs.", + "The local casproxy is not running.", + "The bot couldn't start the container.", + "The docker ulimit is not valid.", + "The docker runtime is unknown.", + "The docker capability is unknown.", + "The command failed with unknown docker errors.", + "Docker failed to run containers with CreateComputeSystem error.", + "Docker failed to run containers with hcsshim::PrepareLayer error.", + "Docker incompatible operating system error.", + "Docker failed to create OCI runtime because of file not found.", + "Docker failed to create OCI runtime because of permission denied.", + "Docker failed to create process because of file not found.", + "Docker failed to run containers with CreateComputeSystem error that involves an incorrect parameter (more specific version of DOCKER_CREATE_COMPUTE_SYSTEM_ERROR that is user-caused).", + "Docker failed to create an overlay mount because of too many levels of symbolic links.", + "The local Container Manager is not running.", + "Docker failed because a request was denied by the organization's policy.", + "Working directory is not relative", + "Docker cannot find the container specified in the command. This error is likely to only occur if an asynchronous container is not running when the command is run." + ], + "type": "string" + }, + "message": { + "description": "The error message.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemotebuildbotResourceUsage": { + "description": "ResourceUsage is the system resource usage of the host machine.", + "id": "GoogleDevtoolsRemotebuildbotResourceUsage", + "properties": { + "cpuUsedPercent": { + "format": "double", + "type": "number" + }, + "diskUsage": { + "$ref": "GoogleDevtoolsRemotebuildbotResourceUsageStat" + }, + "memoryUsage": { + "$ref": "GoogleDevtoolsRemotebuildbotResourceUsageStat" + }, + "totalDiskIoStats": { + "$ref": "GoogleDevtoolsRemotebuildbotResourceUsageIOStats" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemotebuildbotResourceUsageIOStats": { + "id": "GoogleDevtoolsRemotebuildbotResourceUsageIOStats", + "properties": { + "readBytesCount": { + "format": "uint64", + "type": "string" + }, + "readCount": { + "format": "uint64", + "type": "string" + }, + "readTimeMs": { + "format": "uint64", + "type": "string" + }, + "writeBytesCount": { + "format": "uint64", + "type": "string" + }, + "writeCount": { + "format": "uint64", + "type": "string" + }, + "writeTimeMs": { + "format": "uint64", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemotebuildbotResourceUsageStat": { + "id": "GoogleDevtoolsRemotebuildbotResourceUsageStat", + "properties": { + "total": { + "format": "uint64", + "type": "string" + }, + "used": { + "format": "uint64", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemotebuildexecutionAdminV1alphaAcceleratorConfig": { + "description": "AcceleratorConfig defines the accelerator cards to attach to the VM.", + "id": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaAcceleratorConfig", + "properties": { + "acceleratorCount": { + "description": "The number of guest accelerator cards exposed to each VM.", + "format": "int64", + "type": "string" + }, + "acceleratorType": { + "description": "The type of accelerator to attach to each VM, e.g. \"nvidia-tesla-k80\" for nVidia Tesla K80.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemotebuildexecutionAdminV1alphaAutoscale": { + "description": "Autoscale defines the autoscaling policy of a worker pool.", + "id": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaAutoscale", + "properties": { + "maxSize": { + "description": "The maximal number of workers. Must be equal to or greater than min_size.", + "format": "int64", + "type": "string" + }, + "minSize": { + "description": "The minimal number of workers. Must be greater than 0.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateInstanceRequest": { + "description": "The request used for `CreateInstance`.", + "id": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateInstanceRequest", + "properties": { + "instance": { + "$ref": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance", + "description": "Specifies the instance to create. The name in the instance, if specified in the instance, is ignored." + }, + "instanceId": { + "description": "ID of the created instance. A valid `instance_id` must: be 6-50 characters long, contain only lowercase letters, digits, hyphens and underscores, start with a lowercase letter, and end with a lowercase letter or a digit.", + "type": "string" + }, + "parent": { + "description": "Resource name of the project containing the instance. Format: `projects/[PROJECT_ID]`.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateWorkerPoolRequest": { + "description": "The request used for `CreateWorkerPool`.", + "id": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaCreateWorkerPoolRequest", + "properties": { + "parent": { + "description": "Resource name of the instance in which to create the new worker pool. Format: `projects/[PROJECT_ID]/instances/[INSTANCE_ID]`.", + "type": "string" + }, + "poolId": { + "description": "ID of the created worker pool. A valid pool ID must: be 6-50 characters long, contain only lowercase letters, digits, hyphens and underscores, start with a lowercase letter, and end with a lowercase letter or a digit.", + "type": "string" + }, + "workerPool": { + "$ref": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool", + "description": "Specifies the worker pool to create. The name in the worker pool, if specified, is ignored." + } + }, + "type": "object" + }, + "GoogleDevtoolsRemotebuildexecutionAdminV1alphaDeleteInstanceRequest": { + "description": "The request used for `DeleteInstance`.", + "id": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaDeleteInstanceRequest", + "properties": { + "name": { + "description": "Name of the instance to delete. Format: `projects/[PROJECT_ID]/instances/[INSTANCE_ID]`.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemotebuildexecutionAdminV1alphaDeleteWorkerPoolRequest": { + "description": "The request used for DeleteWorkerPool.", + "id": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaDeleteWorkerPoolRequest", + "properties": { + "name": { + "description": "Name of the worker pool to delete. Format: `projects/[PROJECT_ID]/instances/[INSTANCE_ID]/workerpools/[POOL_ID]`.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicy": { + "description": "FeaturePolicy defines features allowed to be used on RBE instances, as well as instance-wide behavior changes that take effect without opt-in or opt-out at usage time.", + "id": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicy", + "properties": { + "containerImageSources": { + "$ref": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicyFeature", + "description": "Which container image sources are allowed. Currently only RBE-supported registry (gcr.io) is allowed. One can allow all repositories under a project or one specific repository only. E.g. container_image_sources { policy: RESTRICTED allowed_values: [ \"gcr.io/project-foo\", \"gcr.io/project-bar/repo-baz\", ] } will allow any repositories under \"gcr.io/project-foo\" plus the repository \"gcr.io/project-bar/repo-baz\". Default (UNSPECIFIED) is equivalent to any source is allowed." + }, + "dockerAddCapabilities": { + "$ref": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicyFeature", + "description": "Whether dockerAddCapabilities can be used or what capabilities are allowed." + }, + "dockerChrootPath": { + "$ref": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicyFeature", + "description": "Whether dockerChrootPath can be used." + }, + "dockerNetwork": { + "$ref": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicyFeature", + "description": "Whether dockerNetwork can be used or what network modes are allowed. E.g. one may allow `off` value only via `allowed_values`." + }, + "dockerPrivileged": { + "$ref": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicyFeature", + "description": "Whether dockerPrivileged can be used." + }, + "dockerRunAsRoot": { + "$ref": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicyFeature", + "description": "Whether dockerRunAsRoot can be used." + }, + "dockerRuntime": { + "$ref": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicyFeature", + "description": "Whether dockerRuntime is allowed to be set or what runtimes are allowed. Note linux_isolation takes precedence, and if set, docker_runtime values may be rejected if they are incompatible with the selected isolation." + }, + "dockerSiblingContainers": { + "$ref": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicyFeature", + "description": "Whether dockerSiblingContainers can be used." + }, + "linuxIsolation": { + "description": "linux_isolation allows overriding the docker runtime used for containers started on Linux.", + "enum": [ + "LINUX_ISOLATION_UNSPECIFIED", + "GVISOR", + "OFF" + ], + "enumDescriptions": [ + "Default value. Will be using Linux default runtime.", + "Use gVisor runsc runtime.", + "Use stardard Linux runtime. This has the same behaviour as unspecified, but it can be used to revert back from gVisor." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicyFeature": { + "description": "Defines whether a feature can be used or what values are accepted.", + "id": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicyFeature", + "properties": { + "allowedValues": { + "description": "A list of acceptable values. Only effective when the policy is `RESTRICTED`.", + "items": { + "type": "string" + }, + "type": "array" + }, + "policy": { + "description": "The policy of the feature.", + "enum": [ + "POLICY_UNSPECIFIED", + "ALLOWED", + "FORBIDDEN", + "RESTRICTED" + ], + "enumDescriptions": [ + "Default value, if not explicitly set. Equivalent to FORBIDDEN, unless otherwise documented on a specific Feature.", + "Feature is explicitly allowed.", + "Feature is forbidden. Requests attempting to leverage it will get an FailedPrecondition error, with a message like: \"Feature forbidden by FeaturePolicy: Feature on instance \"", + "Only the values specified in the `allowed_values` are allowed." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemotebuildexecutionAdminV1alphaGetInstanceRequest": { + "description": "The request used for `GetInstance`.", + "id": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaGetInstanceRequest", + "properties": { + "name": { + "description": "Name of the instance to retrieve. Format: `projects/[PROJECT_ID]/instances/[INSTANCE_ID]`.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemotebuildexecutionAdminV1alphaGetWorkerPoolRequest": { + "description": "The request used for GetWorkerPool.", + "id": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaGetWorkerPoolRequest", + "properties": { + "name": { + "description": "Name of the worker pool to retrieve. Format: `projects/[PROJECT_ID]/instances/[INSTANCE_ID]/workerpools/[POOL_ID]`.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance": { + "description": "Instance conceptually encapsulates all Remote Build Execution resources for remote builds. An instance consists of storage and compute resources (for example, `ContentAddressableStorage`, `ActionCache`, `WorkerPools`) used for running remote builds. All Remote Build Execution API calls are scoped to an instance.", + "id": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance", + "properties": { + "featurePolicy": { + "$ref": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaFeaturePolicy", + "description": "The policy to define whether or not RBE features can be used or how they can be used." + }, + "location": { + "description": "The location is a GCP region. Currently only `us-central1` is supported.", + "type": "string" + }, + "loggingEnabled": { + "description": "Output only. Whether stack driver logging is enabled for the instance.", + "type": "boolean" + }, + "name": { + "description": "Output only. Instance resource name formatted as: `projects/[PROJECT_ID]/instances/[INSTANCE_ID]`. Name should not be populated when creating an instance since it is provided in the `instance_id` field.", + "type": "string" + }, + "state": { + "description": "Output only. State of the instance.", + "enum": [ + "STATE_UNSPECIFIED", + "CREATING", + "RUNNING", + "INACTIVE" + ], + "enumDescriptions": [ + "Not a valid state, but the default value of the enum.", + "The instance is in state `CREATING` once `CreateInstance` is called and before the instance is ready for use.", + "The instance is in state `RUNNING` when it is ready for use.", + "An `INACTIVE` instance indicates that there is a problem that needs to be fixed. Such instances cannot be used for execution and instances that remain in this state for a significant period of time will be removed permanently." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemotebuildexecutionAdminV1alphaListInstancesRequest": { + "id": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaListInstancesRequest", + "properties": { + "parent": { + "description": "Resource name of the project. Format: `projects/[PROJECT_ID]`.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemotebuildexecutionAdminV1alphaListInstancesResponse": { + "id": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaListInstancesResponse", + "properties": { + "instances": { + "description": "The list of instances in a given project.", + "items": { + "$ref": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemotebuildexecutionAdminV1alphaListWorkerPoolsRequest": { + "id": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaListWorkerPoolsRequest", + "properties": { + "filter": { + "description": "Optional. A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. String values are case-insensitive. The comparison operator must be either `:`, `=`, `!=`, `>`, `>=`, `<=` or `<`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. You can also filter on nested fields. To filter on multiple expressions, you can separate expression using `AND` and `OR` operators, using parentheses to specify precedence. If neither operator is specified, `AND` is assumed. Examples: Include only pools with more than 100 reserved workers: `(worker_count > 100) (worker_config.reserved = true)` Include only pools with a certain label or machines of the e2-standard family: `worker_config.labels.key1 : * OR worker_config.machine_type: e2-standard`", + "type": "string" + }, + "parent": { + "description": "Resource name of the instance. Format: `projects/[PROJECT_ID]/instances/[INSTANCE_ID]`.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemotebuildexecutionAdminV1alphaListWorkerPoolsResponse": { + "id": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaListWorkerPoolsResponse", + "properties": { + "workerPools": { + "description": "The list of worker pools in a given instance.", + "items": { + "$ref": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemotebuildexecutionAdminV1alphaUpdateInstanceRequest": { + "description": "The request used for `UpdateInstance`.", + "id": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaUpdateInstanceRequest", + "properties": { + "instance": { + "$ref": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaInstance", + "description": "Specifies the instance to update." + }, + "loggingEnabled": { + "description": "Deprecated, use instance.logging_enabled instead. Whether to enable Stackdriver logging for this instance.", + "type": "boolean" + }, + "name": { + "description": "Deprecated, use instance.Name instead. Name of the instance to update. Format: `projects/[PROJECT_ID]/instances/[INSTANCE_ID]`.", + "type": "string" + }, + "updateMask": { + "description": "The update mask applies to instance. For the `FieldMask` definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask If an empty update_mask is provided, only the non-default valued field in the worker pool field will be updated. Note that in order to update a field to the default value (zero, false, empty string) an explicit update_mask must be provided.", + "format": "google-fieldmask", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemotebuildexecutionAdminV1alphaUpdateWorkerPoolRequest": { + "description": "The request used for UpdateWorkerPool.", + "id": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaUpdateWorkerPoolRequest", + "properties": { + "updateMask": { + "description": "The update mask applies to worker_pool. For the `FieldMask` definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask If an empty update_mask is provided, only the non-default valued field in the worker pool field will be updated. Note that in order to update a field to the default value (zero, false, empty string) an explicit update_mask must be provided.", + "format": "google-fieldmask", + "type": "string" + }, + "workerPool": { + "$ref": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool", + "description": "Specifies the worker pool to update." + } + }, + "type": "object" + }, + "GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerConfig": { + "description": "Defines the configuration to be used for creating workers in the worker pool.", + "id": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerConfig", + "properties": { + "accelerator": { + "$ref": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaAcceleratorConfig", + "description": "The accelerator card attached to each VM." + }, + "diskSizeGb": { + "description": "Required. Size of the disk attached to the worker, in GB. See https://cloud.google.com/compute/docs/disks/", + "format": "int64", + "type": "string" + }, + "diskType": { + "description": "Required. Disk Type to use for the worker. See [Storage options](https://cloud.google.com/compute/docs/disks/#introduction). Currently only `pd-standard` and `pd-ssd` are supported.", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels associated with the workers. Label keys and values can be no longer than 63 characters, can only contain lowercase letters, numeric characters, underscores and dashes. International letters are permitted. Label keys must start with a letter. Label values are optional. There can not be more than 64 labels per resource.", + "type": "object" + }, + "machineType": { + "description": "Required. Machine type of the worker, such as `e2-standard-2`. See https://cloud.google.com/compute/docs/machine-types for a list of supported machine types. Note that `f1-micro` and `g1-small` are not yet supported.", + "type": "string" + }, + "maxConcurrentActions": { + "description": "The maximum number of actions a worker can execute concurrently.", + "format": "int64", + "type": "string" + }, + "minCpuPlatform": { + "description": "Minimum CPU platform to use when creating the worker. See [CPU Platforms](https://cloud.google.com/compute/docs/cpu-platforms).", + "type": "string" + }, + "networkAccess": { + "description": "Determines the type of network access granted to workers. Possible values: - \"public\": Workers can connect to the public internet. - \"private\": Workers can only connect to Google APIs and services. - \"restricted-private\": Workers can only connect to Google APIs that are reachable through `restricted.googleapis.com` (`199.36.153.4/30`).", + "type": "string" + }, + "reserved": { + "description": "Determines whether the worker is reserved (equivalent to a Compute Engine on-demand VM and therefore won't be preempted). See [Preemptible VMs](https://cloud.google.com/preemptible-vms/) for more details.", + "type": "boolean" + }, + "soleTenantNodeType": { + "description": "The node type name to be used for sole-tenant nodes.", + "type": "string" + }, + "vmImage": { + "description": "The name of the image used by each VM.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool": { + "description": "A worker pool resource in the Remote Build Execution API.", + "id": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerPool", + "properties": { + "autoscale": { + "$ref": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaAutoscale", + "description": "The autoscale policy to apply on a pool." + }, + "channel": { + "description": "Channel specifies the release channel of the pool.", + "type": "string" + }, + "name": { + "description": "WorkerPool resource name formatted as: `projects/[PROJECT_ID]/instances/[INSTANCE_ID]/workerpools/[POOL_ID]`. name should not be populated when creating a worker pool since it is provided in the `poolId` field.", + "type": "string" + }, + "state": { + "description": "Output only. State of the worker pool.", + "enum": [ + "STATE_UNSPECIFIED", + "CREATING", + "RUNNING", + "UPDATING", + "DELETING", + "INACTIVE" + ], + "enumDescriptions": [ + "Not a valid state, but the default value of the enum.", + "The worker pool is in state `CREATING` once `CreateWorkerPool` is called and before all requested workers are ready.", + "The worker pool is in state `RUNNING` when all its workers are ready for use.", + "The worker pool is in state `UPDATING` once `UpdateWorkerPool` is called and before the new configuration has all the requested workers ready for use, and no older configuration has any workers. At that point the state transitions to `RUNNING`.", + "The worker pool is in state `DELETING` once the `Delete` method is called and before the deletion completes.", + "The worker pool is in state `INACTIVE` when the instance hosting the worker pool in not running." + ], + "type": "string" + }, + "workerConfig": { + "$ref": "GoogleDevtoolsRemotebuildexecutionAdminV1alphaWorkerConfig", + "description": "Specifies the properties, such as machine type and disk size, used for creating workers in a worker pool." + }, + "workerCount": { + "description": "The desired number of workers in the worker pool. Must be a value between 0 and 15000.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemoteworkersV1test2AdminTemp": { + "description": "AdminTemp is a prelimiary set of administration tasks. It's called \"Temp\" because we do not yet know the best way to represent admin tasks; it's possible that this will be entirely replaced in later versions of this API. If this message proves to be sufficient, it will be renamed in the alpha or beta release of this API. This message (suitably marshalled into a protobuf.Any) can be used as the inline_assignment field in a lease; the lease assignment field should simply be `\"admin\"` in these cases. This message is heavily based on Swarming administration tasks from the LUCI project (http://github.com/luci/luci-py/appengine/swarming).", + "id": "GoogleDevtoolsRemoteworkersV1test2AdminTemp", + "properties": { + "arg": { + "description": "The argument to the admin action; see `Command` for semantics.", + "type": "string" + }, + "command": { + "description": "The admin action; see `Command` for legal values.", + "enum": [ + "UNSPECIFIED", + "BOT_UPDATE", + "BOT_RESTART", + "BOT_TERMINATE", + "HOST_RESTART" + ], + "enumDescriptions": [ + "Illegal value.", + "Download and run a new version of the bot. `arg` will be a resource accessible via `ByteStream.Read` to obtain the new bot code.", + "Restart the bot without downloading a new version. `arg` will be a message to log.", + "Shut down the bot. `arg` will be a task resource name (similar to those in tasks.proto) that the bot can use to tell the server that it is terminating.", + "Restart the host computer. `arg` will be a message to log." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemoteworkersV1test2Blob": { + "description": "Describes a blob of binary content with its digest.", + "id": "GoogleDevtoolsRemoteworkersV1test2Blob", + "properties": { + "contents": { + "description": "The contents of the blob.", + "format": "byte", + "type": "string" + }, + "digest": { + "$ref": "GoogleDevtoolsRemoteworkersV1test2Digest", + "description": "The digest of the blob. This should be verified by the receiver." + } + }, + "type": "object" + }, + "GoogleDevtoolsRemoteworkersV1test2CommandOutputs": { + "description": "DEPRECATED - use CommandResult instead. Describes the actual outputs from the task.", + "id": "GoogleDevtoolsRemoteworkersV1test2CommandOutputs", + "properties": { + "exitCode": { + "description": "exit_code is only fully reliable if the status' code is OK. If the task exceeded its deadline or was cancelled, the process may still produce an exit code as it is cancelled, and this will be populated, but a successful (zero) is unlikely to be correct unless the status code is OK.", + "format": "int32", + "type": "integer" + }, + "outputs": { + "$ref": "GoogleDevtoolsRemoteworkersV1test2Digest", + "description": "The output files. The blob referenced by the digest should contain one of the following (implementation-dependent): * A marshalled DirectoryMetadata of the returned filesystem * A LUCI-style .isolated file" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemoteworkersV1test2CommandOverhead": { + "description": "DEPRECATED - use CommandResult instead. Can be used as part of CompleteRequest.metadata, or are part of a more sophisticated message.", + "id": "GoogleDevtoolsRemoteworkersV1test2CommandOverhead", + "properties": { + "duration": { + "description": "The elapsed time between calling Accept and Complete. The server will also have its own idea of what this should be, but this excludes the overhead of the RPCs and the bot response time.", + "format": "google-duration", + "type": "string" + }, + "overhead": { + "description": "The amount of time *not* spent executing the command (ie uploading/downloading files).", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemoteworkersV1test2CommandResult": { + "description": "All information about the execution of a command, suitable for providing as the Bots interface's `Lease.result` field.", + "id": "GoogleDevtoolsRemoteworkersV1test2CommandResult", + "properties": { + "duration": { + "description": "The elapsed time between calling Accept and Complete. The server will also have its own idea of what this should be, but this excludes the overhead of the RPCs and the bot response time.", + "format": "google-duration", + "type": "string" + }, + "exitCode": { + "description": "The exit code of the process. An exit code of \"0\" should only be trusted if `status` has a code of OK (otherwise it may simply be unset).", + "format": "int32", + "type": "integer" + }, + "metadata": { + "description": "Implementation-dependent metadata about the task. Both servers and bots may define messages which can be encoded here; bots are free to provide metadata in multiple formats, and servers are free to choose one or more of the values to process and ignore others. In particular, it is *not* considered an error for the bot to provide the server with a field that it doesn't know about.", + "items": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "type": "object" + }, + "type": "array" + }, + "outputs": { + "$ref": "GoogleDevtoolsRemoteworkersV1test2Digest", + "description": "The output files. The blob referenced by the digest should contain one of the following (implementation-dependent): * A marshalled DirectoryMetadata of the returned filesystem * A LUCI-style .isolated file" + }, + "overhead": { + "description": "The amount of time *not* spent executing the command (ie uploading/downloading files).", + "format": "google-duration", + "type": "string" + }, + "status": { + "$ref": "GoogleRpcStatus", + "description": "An overall status for the command. For example, if the command timed out, this might have a code of DEADLINE_EXCEEDED; if it was killed by the OS for memory exhaustion, it might have a code of RESOURCE_EXHAUSTED." + } + }, + "type": "object" + }, + "GoogleDevtoolsRemoteworkersV1test2CommandTask": { + "description": "Describes a shell-style task to execute, suitable for providing as the Bots interface's `Lease.payload` field.", + "id": "GoogleDevtoolsRemoteworkersV1test2CommandTask", + "properties": { + "expectedOutputs": { + "$ref": "GoogleDevtoolsRemoteworkersV1test2CommandTaskOutputs", + "description": "The expected outputs from the task." + }, + "inputs": { + "$ref": "GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs", + "description": "The inputs to the task." + }, + "timeouts": { + "$ref": "GoogleDevtoolsRemoteworkersV1test2CommandTaskTimeouts", + "description": "The timeouts of this task." + } + }, + "type": "object" + }, + "GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs": { + "description": "Describes the inputs to a shell-style task.", + "id": "GoogleDevtoolsRemoteworkersV1test2CommandTaskInputs", + "properties": { + "arguments": { + "description": "The command itself to run (e.g., argv). This field should be passed directly to the underlying operating system, and so it must be sensible to that operating system. For example, on Windows, the first argument might be \"C:\\Windows\\System32\\ping.exe\" - that is, using drive letters and backslashes. A command for a *nix system, on the other hand, would use forward slashes. All other fields in the RWAPI must consistently use forward slashes, since those fields may be interpretted by both the service and the bot.", + "items": { + "type": "string" + }, + "type": "array" + }, + "environmentVariables": { + "description": "All environment variables required by the task.", + "items": { + "$ref": "GoogleDevtoolsRemoteworkersV1test2CommandTaskInputsEnvironmentVariable" + }, + "type": "array" + }, + "files": { + "description": "The input filesystem to be set up prior to the task beginning. The contents should be a repeated set of FileMetadata messages though other formats are allowed if better for the implementation (eg, a LUCI-style .isolated file). This field is repeated since implementations might want to cache the metadata, in which case it may be useful to break up portions of the filesystem that change frequently (eg, specific input files) from those that don't (eg, standard header files).", + "items": { + "$ref": "GoogleDevtoolsRemoteworkersV1test2Digest" + }, + "type": "array" + }, + "inlineBlobs": { + "description": "Inline contents for blobs expected to be needed by the bot to execute the task. For example, contents of entries in `files` or blobs that are indirectly referenced by an entry there. The bot should check against this list before downloading required task inputs to reduce the number of communications between itself and the remote CAS server.", + "items": { + "$ref": "GoogleDevtoolsRemoteworkersV1test2Blob" + }, + "type": "array" + }, + "workingDirectory": { + "description": "Directory from which a command is executed. It is a relative directory with respect to the bot's working directory (i.e., \"./\"). If it is non-empty, then it must exist under \"./\". Otherwise, \"./\" will be used.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemoteworkersV1test2CommandTaskInputsEnvironmentVariable": { + "description": "An environment variable required by this task.", + "id": "GoogleDevtoolsRemoteworkersV1test2CommandTaskInputsEnvironmentVariable", + "properties": { + "name": { + "description": "The envvar name.", + "type": "string" + }, + "value": { + "description": "The envvar value.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemoteworkersV1test2CommandTaskOutputs": { + "description": "Describes the expected outputs of the command.", + "id": "GoogleDevtoolsRemoteworkersV1test2CommandTaskOutputs", + "properties": { + "directories": { + "description": "A list of expected directories, relative to the execution root. All paths MUST be delimited by forward slashes.", + "items": { + "type": "string" + }, + "type": "array" + }, + "files": { + "description": "A list of expected files, relative to the execution root. All paths MUST be delimited by forward slashes.", + "items": { + "type": "string" + }, + "type": "array" + }, + "stderrDestination": { + "description": "The destination to which any stderr should be sent. The method by which the bot should send the stream contents to that destination is not defined in this API. As examples, the destination could be a file referenced in the `files` field in this message, or it could be a URI that must be written via the ByteStream API.", + "type": "string" + }, + "stdoutDestination": { + "description": "The destination to which any stdout should be sent. The method by which the bot should send the stream contents to that destination is not defined in this API. As examples, the destination could be a file referenced in the `files` field in this message, or it could be a URI that must be written via the ByteStream API.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemoteworkersV1test2CommandTaskTimeouts": { + "description": "Describes the timeouts associated with this task.", + "id": "GoogleDevtoolsRemoteworkersV1test2CommandTaskTimeouts", + "properties": { + "execution": { + "description": "This specifies the maximum time that the task can run, excluding the time required to download inputs or upload outputs. That is, the worker will terminate the task if it runs longer than this.", + "format": "google-duration", + "type": "string" + }, + "idle": { + "description": "This specifies the maximum amount of time the task can be idle - that is, go without generating some output in either stdout or stderr. If the process is silent for more than the specified time, the worker will terminate the task.", + "format": "google-duration", + "type": "string" + }, + "shutdown": { + "description": "If the execution or IO timeouts are exceeded, the worker will try to gracefully terminate the task and return any existing logs. However, tasks may be hard-frozen in which case this process will fail. This timeout specifies how long to wait for a terminated task to shut down gracefully (e.g. via SIGTERM) before we bring down the hammer (e.g. SIGKILL on *nix, CTRL_BREAK_EVENT on Windows).", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemoteworkersV1test2Digest": { + "description": "The CommandTask and CommandResult messages assume the existence of a service that can serve blobs of content, identified by a hash and size known as a \"digest.\" The method by which these blobs may be retrieved is not specified here, but a model implementation is in the Remote Execution API's \"ContentAddressibleStorage\" interface. In the context of the RWAPI, a Digest will virtually always refer to the contents of a file or a directory. The latter is represented by the byte-encoded Directory message.", + "id": "GoogleDevtoolsRemoteworkersV1test2Digest", + "properties": { + "hash": { + "description": "A string-encoded hash (eg \"1a2b3c\", not the byte array [0x1a, 0x2b, 0x3c]) using an implementation-defined hash algorithm (eg SHA-256).", + "type": "string" + }, + "sizeBytes": { + "description": "The size of the contents. While this is not strictly required as part of an identifier (after all, any given hash will have exactly one canonical size), it's useful in almost all cases when one might want to send or retrieve blobs of content and is included here for this reason.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemoteworkersV1test2Directory": { + "description": "The contents of a directory. Similar to the equivalent message in the Remote Execution API.", + "id": "GoogleDevtoolsRemoteworkersV1test2Directory", + "properties": { + "directories": { + "description": "Any subdirectories", + "items": { + "$ref": "GoogleDevtoolsRemoteworkersV1test2DirectoryMetadata" + }, + "type": "array" + }, + "files": { + "description": "The files in this directory", + "items": { + "$ref": "GoogleDevtoolsRemoteworkersV1test2FileMetadata" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemoteworkersV1test2DirectoryMetadata": { + "description": "The metadata for a directory. Similar to the equivalent message in the Remote Execution API.", + "id": "GoogleDevtoolsRemoteworkersV1test2DirectoryMetadata", + "properties": { + "digest": { + "$ref": "GoogleDevtoolsRemoteworkersV1test2Digest", + "description": "A pointer to the contents of the directory, in the form of a marshalled Directory message." + }, + "path": { + "description": "The path of the directory, as in FileMetadata.path.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsRemoteworkersV1test2FileMetadata": { + "description": "The metadata for a file. Similar to the equivalent message in the Remote Execution API.", + "id": "GoogleDevtoolsRemoteworkersV1test2FileMetadata", + "properties": { + "contents": { + "description": "If the file is small enough, its contents may also or alternatively be listed here.", + "format": "byte", + "type": "string" + }, + "digest": { + "$ref": "GoogleDevtoolsRemoteworkersV1test2Digest", + "description": "A pointer to the contents of the file. The method by which a client retrieves the contents from a CAS system is not defined here." + }, + "isExecutable": { + "description": "Properties of the file", + "type": "boolean" + }, + "path": { + "description": "The path of this file. If this message is part of the CommandOutputs.outputs fields, the path is relative to the execution root and must correspond to an entry in CommandTask.outputs.files. If this message is part of a Directory message, then the path is relative to the root of that directory. All paths MUST be delimited by forward slashes.", + "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": "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 response of the operation in case of success. 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); } The JSON representation for `Empty` is empty JSON object `{}`.", + "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": "Remote Build Execution 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/reseller.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/reseller.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..ddb2c81ebbe6212ce60804900401f391be15b8b8 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/reseller.v1.json @@ -0,0 +1,1038 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/apps.order": { +"description": "Manage users on your domain" +}, +"https://www.googleapis.com/auth/apps.order.readonly": { +"description": "Manage users on your domain" +} +} +} +}, +"basePath": "", +"baseUrl": "https://reseller.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Reseller", +"description": "Perform common functions that are available on the Channel Services console at scale, like placing orders and viewing customer information", +"discoveryVersion": "v1", +"documentationLink": "https://developers.google.com/google-apps/reseller/", +"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": "reseller:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://reseller.mtls.googleapis.com/", +"name": "reseller", +"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": "Gets a customer account. Use this operation to see a customer account already in your reseller management, or to see the minimal account information for an existing customer that you do not manage. For more information about the API response for existing customers, see [retrieving a customer account](/admin-sdk/reseller/v1/how-tos/manage_customers#get_customer).", +"flatPath": "apps/reseller/v1/customers/{customerId}", +"httpMethod": "GET", +"id": "reseller.customers.get", +"parameterOrder": [ +"customerId" +], +"parameters": { +"customerId": { +"description": "This can be either the customer's primary domain name or the customer's unique identifier. If the domain name for a customer changes, the old domain name cannot be used to access the customer, but the customer's unique identifier (as returned by the API) can always be used. We recommend storing the unique identifier in your systems where applicable.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "apps/reseller/v1/customers/{customerId}", +"response": { +"$ref": "Customer" +}, +"scopes": [ +"https://www.googleapis.com/auth/apps.order", +"https://www.googleapis.com/auth/apps.order.readonly" +] +}, +"insert": { +"description": "Orders a new customer's account. Before ordering a new customer account, establish whether the customer account already exists using the [`customers.get`](/admin-sdk/reseller/v1/reference/customers/get) If the customer account exists as a direct Google account or as a resold customer account from another reseller, use the `customerAuthToken\\` as described in [order a resold account for an existing customer](/admin-sdk/reseller/v1/how-tos/manage_customers#create_existing_customer). For more information about ordering a new customer account, see [order a new customer account](/admin-sdk/reseller/v1/how-tos/manage_customers#create_customer). After creating a new customer account, you must provision a user as an administrator. The customer's administrator is required to sign in to the Admin console and sign the G Suite via Reseller agreement to activate the account. Resellers are prohibited from signing the G Suite via Reseller agreement on the customer's behalf. For more information, see [order a new customer account](/admin-sdk/reseller/v1/how-tos/manage_customers#tos).", +"flatPath": "apps/reseller/v1/customers", +"httpMethod": "POST", +"id": "reseller.customers.insert", +"parameterOrder": [], +"parameters": { +"customerAuthToken": { +"description": "The `customerAuthToken` query string is required when creating a resold account that transfers a direct customer's subscription or transfers another reseller customer's subscription to your reseller management. This is a hexadecimal authentication token needed to complete the subscription transfer. For more information, see the administrator help center.", +"location": "query", +"type": "string" +} +}, +"path": "apps/reseller/v1/customers", +"request": { +"$ref": "Customer" +}, +"response": { +"$ref": "Customer" +}, +"scopes": [ +"https://www.googleapis.com/auth/apps.order" +] +}, +"patch": { +"description": "Updates a customer account's settings. This method supports patch semantics. You cannot update `customerType` via the Reseller API, but a `\"team\"` customer can verify their domain and become `customerType = \"domain\"`. For more information, see [Verify your domain to unlock Essentials features](https://support.google.com/a/answer/9122284).", +"flatPath": "apps/reseller/v1/customers/{customerId}", +"httpMethod": "PATCH", +"id": "reseller.customers.patch", +"parameterOrder": [ +"customerId" +], +"parameters": { +"customerId": { +"description": "This can be either the customer's primary domain name or the customer's unique identifier. If the domain name for a customer changes, the old domain name cannot be used to access the customer, but the customer's unique identifier (as returned by the API) can always be used. We recommend storing the unique identifier in your systems where applicable.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "apps/reseller/v1/customers/{customerId}", +"request": { +"$ref": "Customer" +}, +"response": { +"$ref": "Customer" +}, +"scopes": [ +"https://www.googleapis.com/auth/apps.order" +] +}, +"update": { +"description": "Updates a customer account's settings. You cannot update `customerType` via the Reseller API, but a `\"team\"` customer can verify their domain and become `customerType = \"domain\"`. For more information, see [update a customer's settings](/admin-sdk/reseller/v1/how-tos/manage_customers#update_customer).", +"flatPath": "apps/reseller/v1/customers/{customerId}", +"httpMethod": "PUT", +"id": "reseller.customers.update", +"parameterOrder": [ +"customerId" +], +"parameters": { +"customerId": { +"description": "This can be either the customer's primary domain name or the customer's unique identifier. If the domain name for a customer changes, the old domain name cannot be used to access the customer, but the customer's unique identifier (as returned by the API) can always be used. We recommend storing the unique identifier in your systems where applicable.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "apps/reseller/v1/customers/{customerId}", +"request": { +"$ref": "Customer" +}, +"response": { +"$ref": "Customer" +}, +"scopes": [ +"https://www.googleapis.com/auth/apps.order" +] +} +} +}, +"resellernotify": { +"methods": { +"getwatchdetails": { +"description": "Returns all the details of the watch corresponding to the reseller.", +"flatPath": "apps/reseller/v1/resellernotify/getwatchdetails", +"httpMethod": "GET", +"id": "reseller.resellernotify.getwatchdetails", +"parameterOrder": [], +"parameters": {}, +"path": "apps/reseller/v1/resellernotify/getwatchdetails", +"response": { +"$ref": "ResellernotifyGetwatchdetailsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/apps.order", +"https://www.googleapis.com/auth/apps.order.readonly" +] +}, +"register": { +"description": "Registers a Reseller for receiving notifications.", +"flatPath": "apps/reseller/v1/resellernotify/register", +"httpMethod": "POST", +"id": "reseller.resellernotify.register", +"parameterOrder": [], +"parameters": { +"serviceAccountEmailAddress": { +"description": "The service account which will own the created Cloud-PubSub topic.", +"location": "query", +"type": "string" +} +}, +"path": "apps/reseller/v1/resellernotify/register", +"response": { +"$ref": "ResellernotifyResource" +}, +"scopes": [ +"https://www.googleapis.com/auth/apps.order" +] +}, +"unregister": { +"description": "Unregisters a Reseller for receiving notifications.", +"flatPath": "apps/reseller/v1/resellernotify/unregister", +"httpMethod": "POST", +"id": "reseller.resellernotify.unregister", +"parameterOrder": [], +"parameters": { +"serviceAccountEmailAddress": { +"description": "The service account which owns the Cloud-PubSub topic.", +"location": "query", +"type": "string" +} +}, +"path": "apps/reseller/v1/resellernotify/unregister", +"response": { +"$ref": "ResellernotifyResource" +}, +"scopes": [ +"https://www.googleapis.com/auth/apps.order" +] +} +} +}, +"subscriptions": { +"methods": { +"activate": { +"description": "Activates a subscription previously suspended by the reseller. If you did not suspend the customer subscription and it is suspended for any other reason, such as for abuse or a pending ToS acceptance, this call will not reactivate the customer subscription.", +"flatPath": "apps/reseller/v1/customers/{customerId}/subscriptions/{subscriptionId}/activate", +"httpMethod": "POST", +"id": "reseller.subscriptions.activate", +"parameterOrder": [ +"customerId", +"subscriptionId" +], +"parameters": { +"customerId": { +"description": "This can be either the customer's primary domain name or the customer's unique identifier. If the domain name for a customer changes, the old domain name cannot be used to access the customer, but the customer's unique identifier (as returned by the API) can always be used. We recommend storing the unique identifier in your systems where applicable.", +"location": "path", +"required": true, +"type": "string" +}, +"subscriptionId": { +"description": "This is a required property. The `subscriptionId` is the subscription identifier and is unique for each customer. Since a `subscriptionId` changes when a subscription is updated, we recommend to not use this ID as a key for persistent data. And the `subscriptionId` can be found using the retrieve all reseller subscriptions method.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "apps/reseller/v1/customers/{customerId}/subscriptions/{subscriptionId}/activate", +"response": { +"$ref": "Subscription" +}, +"scopes": [ +"https://www.googleapis.com/auth/apps.order" +] +}, +"changePlan": { +"description": "Updates a subscription plan. Use this method to update a plan for a 30-day trial or a flexible plan subscription to an annual commitment plan with monthly or yearly payments. How a plan is updated differs depending on the plan and the products. For more information, see the description in [manage subscriptions](/admin-sdk/reseller/v1/how-tos/manage_subscriptions#update_subscription_plan).", +"flatPath": "apps/reseller/v1/customers/{customerId}/subscriptions/{subscriptionId}/changePlan", +"httpMethod": "POST", +"id": "reseller.subscriptions.changePlan", +"parameterOrder": [ +"customerId", +"subscriptionId" +], +"parameters": { +"customerId": { +"description": "This can be either the customer's primary domain name or the customer's unique identifier. If the domain name for a customer changes, the old domain name cannot be used to access the customer, but the customer's unique identifier (as returned by the API) can always be used. We recommend storing the unique identifier in your systems where applicable.", +"location": "path", +"required": true, +"type": "string" +}, +"subscriptionId": { +"description": "This is a required property. The `subscriptionId` is the subscription identifier and is unique for each customer. Since a `subscriptionId` changes when a subscription is updated, we recommend to not use this ID as a key for persistent data. And the `subscriptionId` can be found using the retrieve all reseller subscriptions method.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "apps/reseller/v1/customers/{customerId}/subscriptions/{subscriptionId}/changePlan", +"request": { +"$ref": "ChangePlanRequest" +}, +"response": { +"$ref": "Subscription" +}, +"scopes": [ +"https://www.googleapis.com/auth/apps.order" +] +}, +"changeRenewalSettings": { +"description": "Updates a user license's renewal settings. This is applicable for accounts with annual commitment plans only. For more information, see the description in [manage subscriptions](/admin-sdk/reseller/v1/how-tos/manage_subscriptions#update_renewal).", +"flatPath": "apps/reseller/v1/customers/{customerId}/subscriptions/{subscriptionId}/changeRenewalSettings", +"httpMethod": "POST", +"id": "reseller.subscriptions.changeRenewalSettings", +"parameterOrder": [ +"customerId", +"subscriptionId" +], +"parameters": { +"customerId": { +"description": "This can be either the customer's primary domain name or the customer's unique identifier. If the domain name for a customer changes, the old domain name cannot be used to access the customer, but the customer's unique identifier (as returned by the API) can always be used. We recommend storing the unique identifier in your systems where applicable.", +"location": "path", +"required": true, +"type": "string" +}, +"subscriptionId": { +"description": "This is a required property. The `subscriptionId` is the subscription identifier and is unique for each customer. Since a `subscriptionId` changes when a subscription is updated, we recommend to not use this ID as a key for persistent data. And the `subscriptionId` can be found using the retrieve all reseller subscriptions method.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "apps/reseller/v1/customers/{customerId}/subscriptions/{subscriptionId}/changeRenewalSettings", +"request": { +"$ref": "RenewalSettings" +}, +"response": { +"$ref": "Subscription" +}, +"scopes": [ +"https://www.googleapis.com/auth/apps.order" +] +}, +"changeSeats": { +"description": "Updates a subscription's user license settings. For more information about updating an annual commitment plan or a flexible plan subscription\u2019s licenses, see [Manage Subscriptions](/admin-sdk/reseller/v1/how-tos/manage_subscriptions#update_subscription_seat).", +"flatPath": "apps/reseller/v1/customers/{customerId}/subscriptions/{subscriptionId}/changeSeats", +"httpMethod": "POST", +"id": "reseller.subscriptions.changeSeats", +"parameterOrder": [ +"customerId", +"subscriptionId" +], +"parameters": { +"customerId": { +"description": "This can be either the customer's primary domain name or the customer's unique identifier. If the domain name for a customer changes, the old domain name cannot be used to access the customer, but the customer's unique identifier (as returned by the API) can always be used. We recommend storing the unique identifier in your systems where applicable.", +"location": "path", +"required": true, +"type": "string" +}, +"subscriptionId": { +"description": "This is a required property. The `subscriptionId` is the subscription identifier and is unique for each customer. Since a `subscriptionId` changes when a subscription is updated, we recommend to not use this ID as a key for persistent data. And the `subscriptionId` can be found using the retrieve all reseller subscriptions method.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "apps/reseller/v1/customers/{customerId}/subscriptions/{subscriptionId}/changeSeats", +"request": { +"$ref": "Seats" +}, +"response": { +"$ref": "Subscription" +}, +"scopes": [ +"https://www.googleapis.com/auth/apps.order" +] +}, +"delete": { +"description": "Cancels, suspends, or transfers a subscription to direct.", +"flatPath": "apps/reseller/v1/customers/{customerId}/subscriptions/{subscriptionId}", +"httpMethod": "DELETE", +"id": "reseller.subscriptions.delete", +"parameterOrder": [ +"customerId", +"subscriptionId", +"deletionType" +], +"parameters": { +"customerId": { +"description": "This can be either the customer's primary domain name or the customer's unique identifier. If the domain name for a customer changes, the old domain name cannot be used to access the customer, but the customer's unique identifier (as returned by the API) can always be used. We recommend storing the unique identifier in your systems where applicable.", +"location": "path", +"required": true, +"type": "string" +}, +"deletionType": { +"description": "The `deletionType` query string enables the cancellation, downgrade, or suspension of a subscription.", +"enum": [ +"deletion_type_undefined", +"cancel", +"transfer_to_direct" +], +"enumDescriptions": [ +"", +"Cancels the subscription immediately. This does not apply to a G Suite subscription.", +"Transfers a subscription directly to Google. The customer is immediately transferred to a direct billing relationship with Google and is given a short amount of time with no service interruption. The customer can then choose to set up billing directly with Google by using a credit card, or they can transfer to another reseller." +], +"location": "query", +"required": true, +"type": "string" +}, +"subscriptionId": { +"description": "This is a required property. The `subscriptionId` is the subscription identifier and is unique for each customer. Since a `subscriptionId` changes when a subscription is updated, we recommend to not use this ID as a key for persistent data. And the `subscriptionId` can be found using the retrieve all reseller subscriptions method.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "apps/reseller/v1/customers/{customerId}/subscriptions/{subscriptionId}", +"scopes": [ +"https://www.googleapis.com/auth/apps.order" +] +}, +"get": { +"description": "Gets a specific subscription. The `subscriptionId` can be found using the [Retrieve all reseller subscriptions](/admin-sdk/reseller/v1/how-tos/manage_subscriptions#get_all_subscriptions) method. For more information about retrieving a specific subscription, see the information descrived in [manage subscriptions](/admin-sdk/reseller/v1/how-tos/manage_subscriptions#get_subscription).", +"flatPath": "apps/reseller/v1/customers/{customerId}/subscriptions/{subscriptionId}", +"httpMethod": "GET", +"id": "reseller.subscriptions.get", +"parameterOrder": [ +"customerId", +"subscriptionId" +], +"parameters": { +"customerId": { +"description": "This can be either the customer's primary domain name or the customer's unique identifier. If the domain name for a customer changes, the old domain name cannot be used to access the customer, but the customer's unique identifier (as returned by the API) can always be used. We recommend storing the unique identifier in your systems where applicable.", +"location": "path", +"required": true, +"type": "string" +}, +"subscriptionId": { +"description": "This is a required property. The `subscriptionId` is the subscription identifier and is unique for each customer. Since a `subscriptionId` changes when a subscription is updated, we recommend to not use this ID as a key for persistent data. And the `subscriptionId` can be found using the retrieve all reseller subscriptions method.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "apps/reseller/v1/customers/{customerId}/subscriptions/{subscriptionId}", +"response": { +"$ref": "Subscription" +}, +"scopes": [ +"https://www.googleapis.com/auth/apps.order", +"https://www.googleapis.com/auth/apps.order.readonly" +] +}, +"insert": { +"description": "Creates or transfer a subscription. Create a subscription for a customer's account that you ordered using the [Order a new customer account](/admin-sdk/reseller/v1/reference/customers/insert.html) method. For more information about creating a subscription for different payment plans, see [manage subscriptions](/admin-sdk/reseller/v1/how-tos/manage_subscriptions#create_subscription).\\ If you did not order the customer's account using the customer insert method, use the customer's `customerAuthToken` when creating a subscription for that customer. If transferring a G Suite subscription with an associated Google Drive or Google Vault subscription, use the [batch operation](/admin-sdk/reseller/v1/how-tos/batch.html) to transfer all of these subscriptions. For more information, see how to [transfer subscriptions](/admin-sdk/reseller/v1/how-tos/manage_subscriptions#transfer_a_subscription).", +"flatPath": "apps/reseller/v1/customers/{customerId}/subscriptions", +"httpMethod": "POST", +"id": "reseller.subscriptions.insert", +"parameterOrder": [ +"customerId" +], +"parameters": { +"action": { +"description": "The intented insert action. The usage of this field is governed by certain policies which are being developed & tested currently. Hence, these might not work as intended. Once this is fully tested & available to consume, we will share more information about its usage, limitations and policy documentation.", +"enum": [ +"actionUnspecified", +"buy", +"switch" +], +"enumDescriptions": [ +"Auto determines whether to create new subscription, upgrade or downagrade existing subscription or transfer the existing subscription", +"Create new subscription", +"Switch existing subscription to another sku (upgrade/downgrade)" +], +"location": "query", +"type": "string" +}, +"customerAuthToken": { +"description": "The `customerAuthToken` query string is required when creating a resold account that transfers a direct customer's subscription or transfers another reseller customer's subscription to your reseller management. This is a hexadecimal authentication token needed to complete the subscription transfer. For more information, see the administrator help center.", +"location": "query", +"type": "string" +}, +"customerId": { +"description": "This can be either the customer's primary domain name or the customer's unique identifier. If the domain name for a customer changes, the old domain name cannot be used to access the customer, but the customer's unique identifier (as returned by the API) can always be used. We recommend storing the unique identifier in your systems where applicable.", +"location": "path", +"required": true, +"type": "string" +}, +"sourceSkuId": { +"description": "The sku_id of the existing subscription to be upgraded or downgraded. This is required when action is SWITCH. The usage of this field is governed by certain policies which are being developed & tested currently. Hence, these might not work as intended. Once this is fully tested & available to consume, we will share more information about its usage, limitations and policy documentation.", +"location": "query", +"type": "string" +} +}, +"path": "apps/reseller/v1/customers/{customerId}/subscriptions", +"request": { +"$ref": "Subscription" +}, +"response": { +"$ref": "Subscription" +}, +"scopes": [ +"https://www.googleapis.com/auth/apps.order" +] +}, +"list": { +"description": "Lists of subscriptions managed by the reseller. The list can be all subscriptions, all of a customer's subscriptions, or all of a customer's transferable subscriptions. Optionally, this method can filter the response by a `customerNamePrefix`. For more information, see [manage subscriptions](/admin-sdk/reseller/v1/how-tos/manage_subscriptions).", +"flatPath": "apps/reseller/v1/subscriptions", +"httpMethod": "GET", +"id": "reseller.subscriptions.list", +"parameterOrder": [], +"parameters": { +"customerAuthToken": { +"description": "The `customerAuthToken` query string is required when creating a resold account that transfers a direct customer's subscription or transfers another reseller customer's subscription to your reseller management. This is a hexadecimal authentication token needed to complete the subscription transfer. For more information, see the administrator help center.", +"location": "query", +"type": "string" +}, +"customerId": { +"description": "This can be either the customer's primary domain name or the customer's unique identifier. If the domain name for a customer changes, the old domain name cannot be used to access the customer, but the customer's unique identifier (as returned by the API) can always be used. We recommend storing the unique identifier in your systems where applicable.", +"location": "query", +"type": "string" +}, +"customerNamePrefix": { +"description": "When retrieving all of your subscriptions and filtering for specific customers, you can enter a prefix for a customer name. Using an example customer group that includes `exam.com`, `example20.com` and `example.com`: - `exa` -- Returns all customer names that start with 'exa' which could include `exam.com`, `example20.com`, and `example.com`. A name prefix is similar to using a regular expression's asterisk, exa*. - `example` -- Returns `example20.com` and `example.com`. ", +"location": "query", +"type": "string" +}, +"maxResults": { +"description": "When retrieving a large list, the `maxResults` is the maximum number of results per page. The `nextPageToken` value takes you to the next page. The default is 20.", +"format": "uint32", +"location": "query", +"maximum": "100", +"minimum": "1", +"type": "integer" +}, +"pageToken": { +"description": "Token to specify next page in the list", +"location": "query", +"type": "string" +} +}, +"path": "apps/reseller/v1/subscriptions", +"response": { +"$ref": "Subscriptions" +}, +"scopes": [ +"https://www.googleapis.com/auth/apps.order", +"https://www.googleapis.com/auth/apps.order.readonly" +] +}, +"startPaidService": { +"description": "Immediately move a 30-day free trial subscription to a paid service subscription. This method is only applicable if a payment plan has already been set up for the 30-day trial subscription. For more information, see [manage subscriptions](/admin-sdk/reseller/v1/how-tos/manage_subscriptions#paid_service).", +"flatPath": "apps/reseller/v1/customers/{customerId}/subscriptions/{subscriptionId}/startPaidService", +"httpMethod": "POST", +"id": "reseller.subscriptions.startPaidService", +"parameterOrder": [ +"customerId", +"subscriptionId" +], +"parameters": { +"customerId": { +"description": "This can be either the customer's primary domain name or the customer's unique identifier. If the domain name for a customer changes, the old domain name cannot be used to access the customer, but the customer's unique identifier (as returned by the API) can always be used. We recommend storing the unique identifier in your systems where applicable.", +"location": "path", +"required": true, +"type": "string" +}, +"subscriptionId": { +"description": "This is a required property. The `subscriptionId` is the subscription identifier and is unique for each customer. Since a `subscriptionId` changes when a subscription is updated, we recommend to not use this ID as a key for persistent data. And the `subscriptionId` can be found using the retrieve all reseller subscriptions method.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "apps/reseller/v1/customers/{customerId}/subscriptions/{subscriptionId}/startPaidService", +"response": { +"$ref": "Subscription" +}, +"scopes": [ +"https://www.googleapis.com/auth/apps.order" +] +}, +"suspend": { +"description": "Suspends an active subscription. You can use this method to suspend a paid subscription that is currently in the `ACTIVE` state. * For `FLEXIBLE` subscriptions, billing is paused. * For `ANNUAL_MONTHLY_PAY` or `ANNUAL_YEARLY_PAY` subscriptions: * Suspending the subscription does not change the renewal date that was originally committed to. * A suspended subscription does not renew. If you activate the subscription after the original renewal date, a new annual subscription will be created, starting on the day of activation. We strongly encourage you to suspend subscriptions only for short periods of time as suspensions over 60 days may result in the subscription being cancelled.", +"flatPath": "apps/reseller/v1/customers/{customerId}/subscriptions/{subscriptionId}/suspend", +"httpMethod": "POST", +"id": "reseller.subscriptions.suspend", +"parameterOrder": [ +"customerId", +"subscriptionId" +], +"parameters": { +"customerId": { +"description": "This can be either the customer's primary domain name or the customer's unique identifier. If the domain name for a customer changes, the old domain name cannot be used to access the customer, but the customer's unique identifier (as returned by the API) can always be used. We recommend storing the unique identifier in your systems where applicable.", +"location": "path", +"required": true, +"type": "string" +}, +"subscriptionId": { +"description": "This is a required property. The `subscriptionId` is the subscription identifier and is unique for each customer. Since a `subscriptionId` changes when a subscription is updated, we recommend to not use this ID as a key for persistent data. And the `subscriptionId` can be found using the retrieve all reseller subscriptions method.", +"location": "path", +"required": true, +"type": "string" +} +}, +"path": "apps/reseller/v1/customers/{customerId}/subscriptions/{subscriptionId}/suspend", +"response": { +"$ref": "Subscription" +}, +"scopes": [ +"https://www.googleapis.com/auth/apps.order" +] +} +} +} +}, +"revision": "20240702", +"rootUrl": "https://reseller.googleapis.com/", +"schemas": { +"Address": { +"description": "JSON template for address of a customer.", +"id": "Address", +"properties": { +"addressLine1": { +"description": "A customer's physical address. An address can be composed of one to three lines. The `addressline2` and `addressLine3` are optional.", +"type": "string" +}, +"addressLine2": { +"description": "Line 2 of the address.", +"type": "string" +}, +"addressLine3": { +"description": "Line 3 of the address.", +"type": "string" +}, +"contactName": { +"description": "The customer contact's name. This is required.", +"type": "string" +}, +"countryCode": { +"description": "For `countryCode` information, see the ISO 3166 country code elements. Verify that country is approved for resale of Google products. This property is required when creating a new customer.", +"type": "string" +}, +"kind": { +"default": "customers#address", +"description": "Identifies the resource as a customer address. Value: `customers#address`", +"type": "string" +}, +"locality": { +"description": "An example of a `locality` value is the city of `San Francisco`.", +"type": "string" +}, +"organizationName": { +"description": "The company or company division name. This is required.", +"type": "string" +}, +"postalCode": { +"description": "A `postalCode` example is a postal zip code such as `94043`. This property is required when creating a new customer.", +"type": "string" +}, +"region": { +"description": "An example of a `region` value is `CA` for the state of California.", +"type": "string" +} +}, +"type": "object" +}, +"ChangePlanRequest": { +"description": "JSON template for the ChangePlan rpc request.", +"id": "ChangePlanRequest", +"properties": { +"dealCode": { +"description": "Google-issued code (100 char max) for discounted pricing on subscription plans. Deal code must be included in `changePlan` request in order to receive discounted rate. This property is optional. If a deal code has already been added to a subscription, this property may be left empty and the existing discounted rate will still apply (if not empty, only provide the deal code that is already present on the subscription). If a deal code has never been added to a subscription and this property is left blank, regular pricing will apply.", +"type": "string" +}, +"kind": { +"default": "subscriptions#changePlanRequest", +"description": "Identifies the resource as a subscription change plan request. Value: `subscriptions#changePlanRequest`", +"type": "string" +}, +"planName": { +"description": "The `planName` property is required. This is the name of the subscription's payment plan. For more information about the Google payment plans, see API concepts. Possible values are: - `ANNUAL_MONTHLY_PAY` - The annual commitment plan with monthly payments *Caution: *`ANNUAL_MONTHLY_PAY` is returned as `ANNUAL` in all API responses. - `ANNUAL_YEARLY_PAY` - The annual commitment plan with yearly payments - `FLEXIBLE` - The flexible plan - `TRIAL` - The 30-day free trial plan ", +"type": "string" +}, +"purchaseOrderId": { +"description": "This is an optional property. This purchase order (PO) information is for resellers to use for their company tracking usage. If a `purchaseOrderId` value is given it appears in the API responses and shows up in the invoice. The property accepts up to 80 plain text characters.", +"type": "string" +}, +"seats": { +"$ref": "Seats", +"description": "This is a required property. The seats property is the number of user seat licenses." +} +}, +"type": "object" +}, +"Customer": { +"description": "When a Google customer's account is registered with a reseller, the customer's subscriptions for Google services are managed by this reseller. A customer is described by a primary domain name and a physical address.", +"id": "Customer", +"properties": { +"alternateEmail": { +"description": "Like the \"Customer email\" in the reseller tools, this email is the secondary contact used if something happens to the customer's service such as service outage or a security issue. This property is required when creating a new \"domain\" customer and should not use the same domain as `customerDomain`. The `alternateEmail` field is not necessary to create a \"team\" customer.", +"type": "string" +}, +"customerDomain": { +"description": "The customer's primary domain name string. `customerDomain` is required when creating a new customer. Do not include the `www` prefix in the domain when adding a customer.", +"type": "string" +}, +"customerDomainVerified": { +"description": "Whether the customer's primary domain has been verified.", +"type": "boolean" +}, +"customerId": { +"description": "This property will always be returned in a response as the unique identifier generated by Google. In a request, this property can be either the primary domain or the unique identifier generated by Google.", +"type": "string" +}, +"customerType": { +"description": "Identifies the type of the customer. Acceptable values include: * `domain`: Implies a domain-verified customer (default). * `team`: Implies an email-verified customer. For more information, see [managed teams](https://support.google.com/a/users/answer/9939479).", +"enum": [ +"customerTypeUnspecified", +"domain", +"team" +], +"enumDescriptions": [ +"Customer type not known", +"Domained or domain-owning customers", +"Domainless or email-verified customers" +], +"type": "string" +}, +"kind": { +"default": "reseller#customer", +"description": "Identifies the resource as a customer. Value: `reseller#customer`", +"type": "string" +}, +"phoneNumber": { +"description": "Customer contact phone number. Must start with \"+\" followed by the country code. The rest of the number can be contiguous numbers or respect the phone local format conventions, but it must be a real phone number and not, for example, \"123\". This field is silently ignored if invalid.", +"type": "string" +}, +"postalAddress": { +"$ref": "Address", +"description": "A customer's address information. Each field has a limit of 255 charcters." +}, +"primaryAdmin": { +"$ref": "PrimaryAdmin", +"description": "The first admin details of the customer, present in case of TEAM customer." +}, +"resourceUiUrl": { +"description": "URL to customer's Admin console dashboard. The read-only URL is generated by the API service. This is used if your client application requires the customer to complete a task in the Admin console.", +"type": "string" +} +}, +"type": "object" +}, +"PrimaryAdmin": { +"description": "JSON template for primary admin in case of TEAM customers", +"id": "PrimaryAdmin", +"properties": { +"primaryEmail": { +"description": "The business email of the primary administrator of the customer. The email verification link is sent to this email address at the time of customer creation. Primary administrators have access to the customer's Admin Console, including the ability to invite and evict users and manage the administrative needs of the customer.", +"type": "string" +} +}, +"type": "object" +}, +"RenewalSettings": { +"description": "JSON template for a subscription renewal settings.", +"id": "RenewalSettings", +"properties": { +"kind": { +"default": "subscriptions#renewalSettings", +"description": "Identifies the resource as a subscription renewal setting. Value: `subscriptions#renewalSettings`", +"type": "string" +}, +"renewalType": { +"description": "Renewal settings for the annual commitment plan. For more detailed information, see renewal options in the administrator help center. When renewing a subscription, the `renewalType` is a required property.", +"type": "string" +} +}, +"type": "object" +}, +"ResellernotifyGetwatchdetailsResponse": { +"description": "JSON template for resellernotify getwatchdetails response.", +"id": "ResellernotifyGetwatchdetailsResponse", +"properties": { +"serviceAccountEmailAddresses": { +"description": "List of registered service accounts.", +"items": { +"type": "string" +}, +"type": "array" +}, +"topicName": { +"description": "Topic name of the PubSub", +"type": "string" +} +}, +"type": "object" +}, +"ResellernotifyResource": { +"description": "JSON template for resellernotify response.", +"id": "ResellernotifyResource", +"properties": { +"topicName": { +"description": "Topic name of the PubSub", +"type": "string" +} +}, +"type": "object" +}, +"Seats": { +"description": "JSON template for subscription seats.", +"id": "Seats", +"properties": { +"kind": { +"default": "subscriptions#seats", +"description": "Identifies the resource as a subscription seat setting. Value: `subscriptions#seats`", +"type": "string" +}, +"licensedNumberOfSeats": { +"description": "Read-only field containing the current number of users that are assigned a license for the product defined in `skuId`. This field's value is equivalent to the numerical count of users returned by the Enterprise License Manager API method: [`listForProductAndSku`](/admin-sdk/licensing/v1/reference/licenseAssignments/listForProductAndSku).", +"format": "int32", +"type": "integer" +}, +"maximumNumberOfSeats": { +"description": "This is a required property and is exclusive to subscriptions with `FLEXIBLE` or `TRIAL` plans. This property sets the maximum number of licensed users allowed on a subscription. This quantity can be increased up to the maximum limit defined in the reseller's contract. The minimum quantity is the current number of users in the customer account. *Note: *G Suite subscriptions automatically assign a license to every user.", +"format": "int32", +"type": "integer" +}, +"numberOfSeats": { +"description": "This is a required property and is exclusive to subscriptions with `ANNUAL_MONTHLY_PAY` and `ANNUAL_YEARLY_PAY` plans. This property sets the maximum number of licenses assignable to users on a subscription. The reseller can add more licenses, but once set, the `numberOfSeats` cannot be reduced until renewal. The reseller is invoiced based on the `numberOfSeats` value regardless of how many of these user licenses are assigned. *Note: *Google Workspace subscriptions automatically assign a license to every user.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"Subscription": { +"description": "JSON template for a subscription.", +"id": "Subscription", +"properties": { +"billingMethod": { +"description": "Read-only field that returns the current billing method for a subscription.", +"type": "string" +}, +"creationTime": { +"description": "The `creationTime` property is the date when subscription was created. It is in milliseconds using the Epoch format. See an example Epoch converter.", +"format": "int64", +"type": "string" +}, +"customerDomain": { +"description": "Primary domain name of the customer", +"type": "string" +}, +"customerId": { +"description": "This property will always be returned in a response as the unique identifier generated by Google. In a request, this property can be either the primary domain or the unique identifier generated by Google.", +"type": "string" +}, +"dealCode": { +"description": "Google-issued code (100 char max) for discounted pricing on subscription plans. Deal code must be included in `insert` requests in order to receive discounted rate. This property is optional, regular pricing applies if left empty.", +"type": "string" +}, +"kind": { +"default": "reseller#subscription", +"description": "Identifies the resource as a Subscription. Value: `reseller#subscription`", +"type": "string" +}, +"plan": { +"description": "The `plan` property is required. In this version of the API, the G Suite plans are the flexible plan, annual commitment plan, and the 30-day free trial plan. For more information about the API\"s payment plans, see the API concepts.", +"properties": { +"commitmentInterval": { +"description": "In this version of the API, annual commitment plan's interval is one year. *Note: *When `billingMethod` value is `OFFLINE`, the subscription property object `plan.commitmentInterval` is omitted in all API responses. ", +"properties": { +"endTime": { +"description": "An annual commitment plan's interval's `endTime` in milliseconds using the UNIX Epoch format. See an example Epoch converter.", +"format": "int64", +"type": "string" +}, +"startTime": { +"description": "An annual commitment plan's interval's `startTime` in milliseconds using UNIX Epoch format. See an example Epoch converter.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"isCommitmentPlan": { +"description": "The `isCommitmentPlan` property's boolean value identifies the plan as an annual commitment plan: - `true` \u2014 The subscription's plan is an annual commitment plan. - `false` \u2014 The plan is not an annual commitment plan. ", +"type": "boolean" +}, +"planName": { +"description": "The `planName` property is required. This is the name of the subscription's plan. For more information about the Google payment plans, see the API concepts. Possible values are: - `ANNUAL_MONTHLY_PAY` \u2014 The annual commitment plan with monthly payments. *Caution: *`ANNUAL_MONTHLY_PAY` is returned as `ANNUAL` in all API responses. - `ANNUAL_YEARLY_PAY` \u2014 The annual commitment plan with yearly payments - `FLEXIBLE` \u2014 The flexible plan - `TRIAL` \u2014 The 30-day free trial plan. A subscription in trial will be suspended after the 30th free day if no payment plan is assigned. Calling `changePlan` will assign a payment plan to a trial but will not activate the plan. A trial will automatically begin its assigned payment plan after its 30th free day or immediately after calling `startPaidService`. - `FREE` \u2014 The free plan is exclusive to the Cloud Identity SKU and does not incur any billing. ", +"type": "string" +} +}, +"type": "object" +}, +"purchaseOrderId": { +"description": "This is an optional property. This purchase order (PO) information is for resellers to use for their company tracking usage. If a `purchaseOrderId` value is given it appears in the API responses and shows up in the invoice. The property accepts up to 80 plain text characters.", +"type": "string" +}, +"renewalSettings": { +"$ref": "RenewalSettings", +"description": "Renewal settings for the annual commitment plan. For more detailed information, see renewal options in the administrator help center." +}, +"resourceUiUrl": { +"description": "URL to customer's Subscriptions page in the Admin console. The read-only URL is generated by the API service. This is used if your client application requires the customer to complete a task using the Subscriptions page in the Admin console.", +"type": "string" +}, +"seats": { +"$ref": "Seats", +"description": "This is a required property. The number and limit of user seat licenses in the plan." +}, +"skuId": { +"description": "A required property. The `skuId` is a unique system identifier for a product's SKU assigned to a customer in the subscription. For products and SKUs available in this version of the API, see Product and SKU IDs.", +"type": "string" +}, +"skuName": { +"description": "Read-only external display name for a product's SKU assigned to a customer in the subscription. SKU names are subject to change at Google's discretion. For products and SKUs available in this version of the API, see Product and SKU IDs.", +"type": "string" +}, +"status": { +"description": "This is an optional property.", +"type": "string" +}, +"subscriptionId": { +"description": "The `subscriptionId` is the subscription identifier and is unique for each customer. This is a required property. Since a `subscriptionId` changes when a subscription is updated, we recommend not using this ID as a key for persistent data. Use the `subscriptionId` as described in retrieve all reseller subscriptions.", +"type": "string" +}, +"suspensionReasons": { +"description": "Read-only field containing an enumerable of all the current suspension reasons for a subscription. It is possible for a subscription to have many concurrent, overlapping suspension reasons. A subscription's `STATUS` is `SUSPENDED` until all pending suspensions are removed. Possible options include: - `PENDING_TOS_ACCEPTANCE` - The customer has not logged in and accepted the G Suite Resold Terms of Services. - `RENEWAL_WITH_TYPE_CANCEL` - The customer's commitment ended and their service was cancelled at the end of their term. - `RESELLER_INITIATED` - A manual suspension invoked by a Reseller. - `TRIAL_ENDED` - The customer's trial expired without a plan selected. - `OTHER` - The customer is suspended for an internal Google reason (e.g. abuse or otherwise). ", +"items": { +"type": "string" +}, +"type": "array" +}, +"transferInfo": { +"description": "Read-only transfer related information for the subscription. For more information, see retrieve transferable subscriptions for a customer.", +"properties": { +"currentLegacySkuId": { +"description": "The `skuId` of the current resold subscription. This is populated only when the customer has a subscription with a legacy SKU and the subscription resource is populated with the `skuId` of the SKU recommended for the transfer.", +"type": "string" +}, +"minimumTransferableSeats": { +"description": "When inserting a subscription, this is the minimum number of seats listed in the transfer order for this product. For example, if the customer has 20 users, the reseller cannot place a transfer order of 15 seats. The minimum is 20 seats.", +"format": "int32", +"type": "integer" +}, +"transferabilityExpirationTime": { +"description": "The time when transfer token or intent to transfer will expire. The time is in milliseconds using UNIX Epoch format.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"trialSettings": { +"description": "The G Suite annual commitment and flexible payment plans can be in a 30-day free trial. For more information, see the API concepts.", +"properties": { +"isInTrial": { +"description": "Determines if a subscription's plan is in a 30-day free trial or not: - `true` \u2014 The plan is in trial. - `false` \u2014 The plan is not in trial. ", +"type": "boolean" +}, +"trialEndTime": { +"description": "Date when the trial ends. The value is in milliseconds using the UNIX Epoch format. See an example Epoch converter.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +} +}, +"type": "object" +}, +"Subscriptions": { +"description": "A subscription manages the relationship of a Google customer's payment plan with a product's SKU, user licenses, 30-day free trial status, and renewal options. A primary role of a reseller is to manage the Google customer's subscriptions.", +"id": "Subscriptions", +"properties": { +"kind": { +"default": "reseller#subscriptions", +"description": "Identifies the resource as a collection of subscriptions. Value: reseller#subscriptions", +"type": "string" +}, +"nextPageToken": { +"description": "The continuation token, used to page through large result sets. Provide this value in a subsequent request to return the next page of results.", +"type": "string" +}, +"subscriptions": { +"description": "The subscriptions in this page of results.", +"items": { +"$ref": "Subscription" +}, +"type": "array" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Google Workspace Reseller API", +"version": "v1" +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/runtimeconfig.v1beta1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/runtimeconfig.v1beta1.json new file mode 100644 index 0000000000000000000000000000000000000000..15fad99640bbeff32b0ec1168948db0d46bfc1c7 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/runtimeconfig.v1beta1.json @@ -0,0 +1,1176 @@ +{ +"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/cloudruntimeconfig": { +"description": "Manage your Google Cloud Platform services' runtime configuration" +} +} +} +}, +"basePath": "", +"baseUrl": "https://runtimeconfig.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Cloud RuntimeConfig", +"description": "The Runtime Configurator allows you to dynamically configure and expose variables through Google Cloud Platform. In addition, you can also set Watchers and Waiters that will watch for changes to your data and return based on certain conditions.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/deployment-manager/runtime-configurator/", +"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": "runtimeconfig:v1beta1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://runtimeconfig.mtls.googleapis.com/", +"name": "runtimeconfig", +"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": { +"configs": { +"methods": { +"create": { +"description": "Creates a new RuntimeConfig resource. The configuration name must be unique within project.", +"flatPath": "v1beta1/projects/{projectsId}/configs", +"httpMethod": "POST", +"id": "runtimeconfig.projects.configs.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "The [project ID](https://support.google.com/cloud/answer/6158840?hl=en&ref_topic=6158848) for this request, in the format `projects/[PROJECT_ID]`.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "An optional but recommended unique `request_id`. If the server receives two `create()` requests with the same `request_id`, then the second request will be ignored and the first resource created and stored in the backend is returned. Empty `request_id` fields are ignored. It is responsibility of the client to ensure uniqueness of the `request_id` strings. `request_id` strings are limited to 64 characters.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+parent}/configs", +"request": { +"$ref": "RuntimeConfig" +}, +"response": { +"$ref": "RuntimeConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloudruntimeconfig" +] +}, +"delete": { +"description": "Deletes a RuntimeConfig resource.", +"flatPath": "v1beta1/projects/{projectsId}/configs/{configsId}", +"httpMethod": "DELETE", +"id": "runtimeconfig.projects.configs.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The RuntimeConfig resource to delete, in the format: `projects/[PROJECT_ID]/configs/[CONFIG_NAME]`", +"location": "path", +"pattern": "^projects/[^/]+/configs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloudruntimeconfig" +] +}, +"get": { +"description": "Gets information about a RuntimeConfig resource.", +"flatPath": "v1beta1/projects/{projectsId}/configs/{configsId}", +"httpMethod": "GET", +"id": "runtimeconfig.projects.configs.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the RuntimeConfig resource to retrieve, in the format: `projects/[PROJECT_ID]/configs/[CONFIG_NAME]`", +"location": "path", +"pattern": "^projects/[^/]+/configs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "RuntimeConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloudruntimeconfig" +] +}, +"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}/configs/{configsId}:getIamPolicy", +"httpMethod": "GET", +"id": "runtimeconfig.projects.configs.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/[^/]+/configs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloudruntimeconfig" +] +}, +"list": { +"description": "Lists all the RuntimeConfig resources within project.", +"flatPath": "v1beta1/projects/{projectsId}/configs", +"httpMethod": "GET", +"id": "runtimeconfig.projects.configs.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Specifies the number of results to return per page. If there are fewer elements than the specified number, returns all elements.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Specifies a page token to use. Set `pageToken` to a `nextPageToken` returned by a previous list request to get the next page of results.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "The [project ID](https://support.google.com/cloud/answer/6158840?hl=en&ref_topic=6158848) for this request, in the format `projects/[PROJECT_ID]`.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/configs", +"response": { +"$ref": "ListConfigsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloudruntimeconfig" +] +}, +"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}/configs/{configsId}:setIamPolicy", +"httpMethod": "POST", +"id": "runtimeconfig.projects.configs.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/[^/]+/configs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+resource}:setIamPolicy", +"request": { +"$ref": "SetIamPolicyRequest" +}, +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloudruntimeconfig" +] +}, +"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}/configs/{configsId}:testIamPermissions", +"httpMethod": "POST", +"id": "runtimeconfig.projects.configs.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/[^/]+/configs/[^/]+$", +"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/cloudruntimeconfig" +] +}, +"update": { +"description": "Updates a RuntimeConfig resource. The configuration must exist beforehand.", +"flatPath": "v1beta1/projects/{projectsId}/configs/{configsId}", +"httpMethod": "PUT", +"id": "runtimeconfig.projects.configs.update", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the RuntimeConfig resource to update, in the format: `projects/[PROJECT_ID]/configs/[CONFIG_NAME]`", +"location": "path", +"pattern": "^projects/[^/]+/configs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "RuntimeConfig" +}, +"response": { +"$ref": "RuntimeConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloudruntimeconfig" +] +} +}, +"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}/configs/{configsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "runtimeconfig.projects.configs.operations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource.", +"location": "path", +"pattern": "^projects/[^/]+/configs/[^/]+/operations/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloudruntimeconfig" +] +}, +"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}/configs/{configsId}/operations/{operationsId}:testIamPermissions", +"httpMethod": "POST", +"id": "runtimeconfig.projects.configs.operations.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/[^/]+/configs/[^/]+/operations/.*$", +"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/cloudruntimeconfig" +] +} +} +}, +"variables": { +"methods": { +"create": { +"description": "Creates a variable within the given configuration. You cannot create a variable with a name that is a prefix of an existing variable name, or a name that has an existing variable name as a prefix. To learn more about creating a variable, read the [Setting and Getting Data](/deployment-manager/runtime-configurator/set-and-get-variables) documentation.", +"flatPath": "v1beta1/projects/{projectsId}/configs/{configsId}/variables", +"httpMethod": "POST", +"id": "runtimeconfig.projects.configs.variables.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "The path to the RutimeConfig resource that this variable should belong to. The configuration must exist beforehand; the path must be in the format: `projects/[PROJECT_ID]/configs/[CONFIG_NAME]`", +"location": "path", +"pattern": "^projects/[^/]+/configs/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "An optional but recommended unique `request_id`. If the server receives two `create()` requests with the same `request_id`, then the second request will be ignored and the first resource created and stored in the backend is returned. Empty `request_id` fields are ignored. It is responsibility of the client to ensure uniqueness of the `request_id` strings. `request_id` strings are limited to 64 characters.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+parent}/variables", +"request": { +"$ref": "Variable" +}, +"response": { +"$ref": "Variable" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloudruntimeconfig" +] +}, +"delete": { +"description": "Deletes a variable or multiple variables. If you specify a variable name, then that variable is deleted. If you specify a prefix and `recursive` is true, then all variables with that prefix are deleted. You must set a `recursive` to true if you delete variables by prefix.", +"flatPath": "v1beta1/projects/{projectsId}/configs/{configsId}/variables/{variablesId}", +"httpMethod": "DELETE", +"id": "runtimeconfig.projects.configs.variables.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the variable to delete, in the format: `projects/[PROJECT_ID]/configs/[CONFIG_NAME]/variables/[VARIABLE_NAME]`", +"location": "path", +"pattern": "^projects/[^/]+/configs/[^/]+/variables/.*$", +"required": true, +"type": "string" +}, +"recursive": { +"description": "Set to `true` to recursively delete multiple variables with the same prefix.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloudruntimeconfig" +] +}, +"get": { +"description": "Gets information about a single variable.", +"flatPath": "v1beta1/projects/{projectsId}/configs/{configsId}/variables/{variablesId}", +"httpMethod": "GET", +"id": "runtimeconfig.projects.configs.variables.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the variable to return, in the format: `projects/[PROJECT_ID]/configs/[CONFIG_NAME]/variables/[VARIBLE_NAME]`", +"location": "path", +"pattern": "^projects/[^/]+/configs/[^/]+/variables/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Variable" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloudruntimeconfig" +] +}, +"list": { +"description": "Lists variables within given a configuration, matching any provided filters. This only lists variable names, not the values, unless `return_values` is true, in which case only variables that user has IAM permission to GetVariable will be returned.", +"flatPath": "v1beta1/projects/{projectsId}/configs/{configsId}/variables", +"httpMethod": "GET", +"id": "runtimeconfig.projects.configs.variables.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Filters variables by matching the specified filter. For example: `projects/example-project/config/[CONFIG_NAME]/variables/example-variable`.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Specifies the number of results to return per page. If there are fewer elements than the specified number, returns all elements.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Specifies a page token to use. Set `pageToken` to a `nextPageToken` returned by a previous list request to get the next page of results.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "The path to the RuntimeConfig resource for which you want to list variables. The configuration must exist beforehand; the path must be in the format: `projects/[PROJECT_ID]/configs/[CONFIG_NAME]`", +"location": "path", +"pattern": "^projects/[^/]+/configs/[^/]+$", +"required": true, +"type": "string" +}, +"returnValues": { +"description": "The flag indicates whether the user wants to return values of variables. If true, then only those variables that user has IAM GetVariable permission will be returned along with their values.", +"location": "query", +"type": "boolean" +} +}, +"path": "v1beta1/{+parent}/variables", +"response": { +"$ref": "ListVariablesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloudruntimeconfig" +] +}, +"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}/configs/{configsId}/variables/{variablesId}:testIamPermissions", +"httpMethod": "POST", +"id": "runtimeconfig.projects.configs.variables.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/[^/]+/configs/[^/]+/variables/.*$", +"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/cloudruntimeconfig" +] +}, +"update": { +"description": "Updates an existing variable with a new value.", +"flatPath": "v1beta1/projects/{projectsId}/configs/{configsId}/variables/{variablesId}", +"httpMethod": "PUT", +"id": "runtimeconfig.projects.configs.variables.update", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the variable to update, in the format: `projects/[PROJECT_ID]/configs/[CONFIG_NAME]/variables/[VARIABLE_NAME]`", +"location": "path", +"pattern": "^projects/[^/]+/configs/[^/]+/variables/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "Variable" +}, +"response": { +"$ref": "Variable" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloudruntimeconfig" +] +}, +"watch": { +"description": "Watches a specific variable and waits for a change in the variable's value. When there is a change, this method returns the new value or times out. If a variable is deleted while being watched, the `variableState` state is set to `DELETED` and the method returns the last known variable `value`. If you set the deadline for watching to a larger value than internal timeout (60 seconds), the current variable value is returned and the `variableState` will be `VARIABLE_STATE_UNSPECIFIED`. To learn more about creating a watcher, read the [Watching a Variable for Changes](/deployment-manager/runtime-configurator/watching-a-variable) documentation.", +"flatPath": "v1beta1/projects/{projectsId}/configs/{configsId}/variables/{variablesId}:watch", +"httpMethod": "POST", +"id": "runtimeconfig.projects.configs.variables.watch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the variable to watch, in the format: `projects/[PROJECT_ID]/configs/[CONFIG_NAME]`", +"location": "path", +"pattern": "^projects/[^/]+/configs/[^/]+/variables/.*$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}:watch", +"request": { +"$ref": "WatchVariableRequest" +}, +"response": { +"$ref": "Variable" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloudruntimeconfig" +] +} +} +}, +"waiters": { +"methods": { +"create": { +"description": "Creates a Waiter resource. This operation returns a long-running Operation resource which can be polled for completion. However, a waiter with the given name will exist (and can be retrieved) prior to the operation completing. If the operation fails, the failed Waiter resource will still exist and must be deleted prior to subsequent creation attempts.", +"flatPath": "v1beta1/projects/{projectsId}/configs/{configsId}/waiters", +"httpMethod": "POST", +"id": "runtimeconfig.projects.configs.waiters.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "The path to the configuration that will own the waiter. The configuration must exist beforehand; the path must be in the format: `projects/[PROJECT_ID]/configs/[CONFIG_NAME]`.", +"location": "path", +"pattern": "^projects/[^/]+/configs/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "An optional but recommended unique `request_id`. If the server receives two `create()` requests with the same `request_id`, then the second request will be ignored and the first resource created and stored in the backend is returned. Empty `request_id` fields are ignored. It is responsibility of the client to ensure uniqueness of the `request_id` strings. `request_id` strings are limited to 64 characters.", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+parent}/waiters", +"request": { +"$ref": "Waiter" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloudruntimeconfig" +] +}, +"delete": { +"description": "Deletes the waiter with the specified name.", +"flatPath": "v1beta1/projects/{projectsId}/configs/{configsId}/waiters/{waitersId}", +"httpMethod": "DELETE", +"id": "runtimeconfig.projects.configs.waiters.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The Waiter resource to delete, in the format: `projects/[PROJECT_ID]/configs/[CONFIG_NAME]/waiters/[WAITER_NAME]`", +"location": "path", +"pattern": "^projects/[^/]+/configs/[^/]+/waiters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloudruntimeconfig" +] +}, +"get": { +"description": "Gets information about a single waiter.", +"flatPath": "v1beta1/projects/{projectsId}/configs/{configsId}/waiters/{waitersId}", +"httpMethod": "GET", +"id": "runtimeconfig.projects.configs.waiters.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The fully-qualified name of the Waiter resource object to retrieve, in the format: `projects/[PROJECT_ID]/configs/[CONFIG_NAME]/waiters/[WAITER_NAME]`", +"location": "path", +"pattern": "^projects/[^/]+/configs/[^/]+/waiters/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Waiter" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloudruntimeconfig" +] +}, +"list": { +"description": "List waiters within the given configuration.", +"flatPath": "v1beta1/projects/{projectsId}/configs/{configsId}/waiters", +"httpMethod": "GET", +"id": "runtimeconfig.projects.configs.waiters.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Specifies the number of results to return per page. If there are fewer elements than the specified number, returns all elements.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Specifies a page token to use. Set `pageToken` to a `nextPageToken` returned by a previous list request to get the next page of results.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "The path to the configuration for which you want to get a list of waiters. The configuration must exist beforehand; the path must be in the format: `projects/[PROJECT_ID]/configs/[CONFIG_NAME]`", +"location": "path", +"pattern": "^projects/[^/]+/configs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/waiters", +"response": { +"$ref": "ListWaitersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloudruntimeconfig" +] +}, +"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}/configs/{configsId}/waiters/{waitersId}:testIamPermissions", +"httpMethod": "POST", +"id": "runtimeconfig.projects.configs.waiters.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/[^/]+/configs/[^/]+/waiters/[^/]+$", +"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/cloudruntimeconfig" +] +} +} +} +} +} +} +} +}, +"revision": "20240627", +"rootUrl": "https://runtimeconfig.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" +}, +"Cardinality": { +"description": "A Cardinality condition for the Waiter resource. A cardinality condition is met when the number of variables under a specified path prefix reaches a predefined number. For example, if you set a Cardinality condition where the `path` is set to `/foo` and the number of paths is set to `2`, the following variables would meet the condition in a RuntimeConfig resource: + `/foo/variable1 = \"value1\"` + `/foo/variable2 = \"value2\"` + `/bar/variable3 = \"value3\"` It would not satisfy the same condition with the `number` set to `3`, however, because there is only 2 paths that start with `/foo`. Cardinality conditions are recursive; all subtrees under the specific path prefix are counted.", +"id": "Cardinality", +"properties": { +"number": { +"description": "The number variables under the `path` that must exist to meet this condition. Defaults to 1 if not specified.", +"format": "int32", +"type": "integer" +}, +"path": { +"description": "The root of the variable subtree to monitor. For example, `/foo`.", +"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" +}, +"EndCondition": { +"description": "The condition that a Waiter resource is waiting for.", +"id": "EndCondition", +"properties": { +"cardinality": { +"$ref": "Cardinality", +"description": "The cardinality of the `EndCondition`." +} +}, +"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" +}, +"ListConfigsResponse": { +"description": "`ListConfigs()` returns the following response. The order of returned objects is arbitrary; that is, it is not ordered in any particular way.", +"id": "ListConfigsResponse", +"properties": { +"configs": { +"description": "A list of the configurations in the project. The order of returned objects is arbitrary; that is, it is not ordered in any particular way.", +"items": { +"$ref": "RuntimeConfig" +}, +"type": "array" +}, +"nextPageToken": { +"description": "This token allows you to get the next page of results for list requests. If the number of results is larger than `pageSize`, use the `nextPageToken` as a value for the query parameter `pageToken` in the next list request. Subsequent list requests will have their own `nextPageToken` to continue paging through the results", +"type": "string" +} +}, +"type": "object" +}, +"ListVariablesResponse": { +"description": "Response for the `ListVariables()` method.", +"id": "ListVariablesResponse", +"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 `pageSize`, use the `nextPageToken` as a value for the query parameter `pageToken` in the next list request. Subsequent list requests will have their own `nextPageToken` to continue paging through the results", +"type": "string" +}, +"variables": { +"description": "A list of variables and their values. The order of returned variable objects is arbitrary.", +"items": { +"$ref": "Variable" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListWaitersResponse": { +"description": "Response for the `ListWaiters()` method. Order of returned waiter objects is arbitrary.", +"id": "ListWaitersResponse", +"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 `pageSize`, use the `nextPageToken` as a value for the query parameter `pageToken` in the next list request. Subsequent list requests will have their own `nextPageToken` to continue paging through the results", +"type": "string" +}, +"waiters": { +"description": "Found waiters in the project.", +"items": { +"$ref": "Waiter" +}, +"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" +}, +"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" +}, +"RuntimeConfig": { +"description": "A RuntimeConfig resource is the primary resource in the Cloud RuntimeConfig service. A RuntimeConfig resource consists of metadata and a hierarchy of variables.", +"id": "RuntimeConfig", +"properties": { +"description": { +"description": "An optional description of the RuntimeConfig object.", +"type": "string" +}, +"name": { +"description": "The resource name of a runtime config. The name must have the format: projects/[PROJECT_ID]/configs/[CONFIG_NAME] The `[PROJECT_ID]` must be a valid project ID, and `[CONFIG_NAME]` is an arbitrary name that matches the `[0-9A-Za-z](?:[_.A-Za-z0-9-]{0,62}[_.A-Za-z0-9])?` regular expression. The length of `[CONFIG_NAME]` must be less than 64 characters. You pick the RuntimeConfig resource name, but the server will validate that the name adheres to this format. After you create the resource, you cannot change the resource's name.", +"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" +}, +"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" +}, +"Variable": { +"description": "Describes a single variable within a RuntimeConfig resource. The name denotes the hierarchical variable name. For example, `ports/serving_port` is a valid variable name. The variable value is an opaque string and only leaf variables can have values (that is, variables that do not have any child variables).", +"id": "Variable", +"properties": { +"name": { +"description": "The name of the variable resource, in the format: projects/[PROJECT_ID]/configs/[CONFIG_NAME]/variables/[VARIABLE_NAME] The `[PROJECT_ID]` must be a valid project ID, `[CONFIG_NAME]` must be a valid RuntimeConfig resource and `[VARIABLE_NAME]` follows Unix file system file path naming. The `[VARIABLE_NAME]` can contain ASCII letters, numbers, slashes and dashes. Slashes are used as path element separators and are not part of the `[VARIABLE_NAME]` itself, so `[VARIABLE_NAME]` must contain at least one non-slash character. Multiple slashes are coalesced into single slash character. Each path segment should match [0-9A-Za-z](?:[_.A-Za-z0-9-]{0,62}[_.A-Za-z0-9])? regular expression. The length of a `[VARIABLE_NAME]` must be less than 256 characters. Once you create a variable, you cannot change the variable name.", +"type": "string" +}, +"state": { +"description": "Output only. The current state of the variable. The variable state indicates the outcome of the `variables().watch` call and is visible through the `get` and `list` calls.", +"enum": [ +"VARIABLE_STATE_UNSPECIFIED", +"UPDATED", +"DELETED" +], +"enumDescriptions": [ +"Default variable state.", +"The variable was updated, while `variables().watch` was executing.", +"The variable was deleted, while `variables().watch` was executing." +], +"type": "string" +}, +"text": { +"description": "The string value of the variable. The length of the value must be less than 4096 bytes. Empty values are also accepted. For example, `text: \"my text value\"`. The string must be valid UTF-8.", +"type": "string" +}, +"updateTime": { +"description": "Output only. The time of the last variable update. Timestamp will be UTC timestamp.", +"format": "google-datetime", +"type": "string" +}, +"value": { +"description": "The binary value of the variable. The length of the value must be less than 4096 bytes. Empty values are also accepted. The value must be base64 encoded, and must comply with IETF RFC4648 (https://www.ietf.org/rfc/rfc4648.txt). Only one of `value` or `text` can be set.", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"Waiter": { +"description": "A Waiter resource waits for some end condition within a RuntimeConfig resource to be met before it returns. For example, assume you have a distributed system where each node writes to a Variable resource indicating the node's readiness as part of the startup process. You then configure a Waiter resource with the success condition set to wait until some number of nodes have checked in. Afterwards, your application runs some arbitrary code after the condition has been met and the waiter returns successfully. Once created, a Waiter resource is immutable. To learn more about using waiters, read the [Creating a Waiter](/deployment-manager/runtime-configurator/creating-a-waiter) documentation.", +"id": "Waiter", +"properties": { +"createTime": { +"description": "Output only. The instant at which this Waiter resource was created. Adding the value of `timeout` to this instant yields the timeout deadline for the waiter.", +"format": "google-datetime", +"type": "string" +}, +"done": { +"description": "Output only. If the value is `false`, it means the waiter is still waiting for one of its conditions to be met. If true, the waiter has finished. If the waiter finished due to a timeout or failure, `error` will be set.", +"type": "boolean" +}, +"error": { +"$ref": "Status", +"description": "Output only. If the waiter ended due to a failure or timeout, this value will be set." +}, +"failure": { +"$ref": "EndCondition", +"description": "[Optional] The failure condition of this waiter. If this condition is met, `done` will be set to `true` and the `error` code will be set to `ABORTED`. The failure condition takes precedence over the success condition. If both conditions are met, a failure will be indicated. This value is optional; if no failure condition is set, the only failure scenario will be a timeout." +}, +"name": { +"description": "The name of the Waiter resource, in the format: projects/[PROJECT_ID]/configs/[CONFIG_NAME]/waiters/[WAITER_NAME] The `[PROJECT_ID]` must be a valid Google Cloud project ID, the `[CONFIG_NAME]` must be a valid RuntimeConfig resource, the `[WAITER_NAME]` must match RFC 1035 segment specification, and the length of `[WAITER_NAME]` must be less than 64 bytes. After you create a Waiter resource, you cannot change the resource name.", +"type": "string" +}, +"success": { +"$ref": "EndCondition", +"description": "[Required] The success condition. If this condition is met, `done` will be set to `true` and the `error` value will remain unset. The failure condition takes precedence over the success condition. If both conditions are met, a failure will be indicated." +}, +"timeout": { +"description": "[Required] Specifies the timeout of the waiter in seconds, beginning from the instant that `waiters().create` method is called. If this time elapses before the success or failure conditions are met, the waiter fails and sets the `error` code to `DEADLINE_EXCEEDED`.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"WatchVariableRequest": { +"description": "Request for the `WatchVariable()` method.", +"id": "WatchVariableRequest", +"properties": { +"newerThan": { +"description": "If specified, checks the current timestamp of the variable and if the current timestamp is newer than `newerThan` timestamp, the method returns immediately. If not specified or the variable has an older timestamp, the watcher waits for a the value to change before returning.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Cloud Runtime Configuration 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/searchads360.v0.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/searchads360.v0.json new file mode 100644 index 0000000000000000000000000000000000000000..4c0ac4e2a7daaa5d39b9c1d790500240230cb4fd --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/searchads360.v0.json @@ -0,0 +1,8880 @@ +{ +"auth": { +"oauth2": { +"scopes": { +"https://www.googleapis.com/auth/doubleclicksearch": { +"description": "View and manage your advertising data in DoubleClick Search" +} +} +} +}, +"basePath": "", +"baseUrl": "https://searchads360.googleapis.com/", +"batchPath": "batch", +"canonicalName": "SA360", +"description": "The Search Ads 360 API allows developers to automate downloading reports from Search Ads 360.", +"discoveryVersion": "v1", +"documentationLink": "https://developers.google.com/search-ads/reporting", +"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": "searchads360:v0", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://searchads360.mtls.googleapis.com/", +"name": "searchads360", +"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": { +"listAccessibleCustomers": { +"description": "Returns resource names of customers directly accessible by the user authenticating the call. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()", +"flatPath": "v0/customers:listAccessibleCustomers", +"httpMethod": "GET", +"id": "searchads360.customers.listAccessibleCustomers", +"parameterOrder": [], +"parameters": {}, +"path": "v0/customers:listAccessibleCustomers", +"response": { +"$ref": "GoogleAdsSearchads360V0Services__ListAccessibleCustomersResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/doubleclicksearch" +] +} +}, +"resources": { +"customColumns": { +"methods": { +"get": { +"description": "Returns the requested custom column in full detail.", +"flatPath": "v0/customers/{customersId}/customColumns/{customColumnsId}", +"httpMethod": "GET", +"id": "searchads360.customers.customColumns.get", +"parameterOrder": [ +"resourceName" +], +"parameters": { +"resourceName": { +"description": "Required. The resource name of the custom column to fetch.", +"location": "path", +"pattern": "^customers/[^/]+/customColumns/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v0/{+resourceName}", +"response": { +"$ref": "GoogleAdsSearchads360V0Resources__CustomColumn" +}, +"scopes": [ +"https://www.googleapis.com/auth/doubleclicksearch" +] +}, +"list": { +"description": "Returns all the custom columns associated with the customer in full detail.", +"flatPath": "v0/customers/{customersId}/customColumns", +"httpMethod": "GET", +"id": "searchads360.customers.customColumns.list", +"parameterOrder": [ +"customerId" +], +"parameters": { +"customerId": { +"description": "Required. The ID of the customer to apply the CustomColumn list operation to.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v0/customers/{+customerId}/customColumns", +"response": { +"$ref": "GoogleAdsSearchads360V0Services__ListCustomColumnsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/doubleclicksearch" +] +} +} +}, +"searchAds360": { +"methods": { +"search": { +"description": "Returns all rows that match the search query. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QueryError]() [QuotaError]() [RequestError]()", +"flatPath": "v0/customers/{customersId}/searchAds360:search", +"httpMethod": "POST", +"id": "searchads360.customers.searchAds360.search", +"parameterOrder": [ +"customerId" +], +"parameters": { +"customerId": { +"description": "Required. The ID of the customer being queried.", +"location": "path", +"pattern": "^[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v0/customers/{+customerId}/searchAds360:search", +"request": { +"$ref": "GoogleAdsSearchads360V0Services__SearchSearchAds360Request" +}, +"response": { +"$ref": "GoogleAdsSearchads360V0Services__SearchSearchAds360Response" +}, +"scopes": [ +"https://www.googleapis.com/auth/doubleclicksearch" +] +} +} +} +} +}, +"searchAds360Fields": { +"methods": { +"get": { +"description": "Returns just the requested field. List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QuotaError]() [RequestError]()", +"flatPath": "v0/searchAds360Fields/{searchAds360FieldsId}", +"httpMethod": "GET", +"id": "searchads360.searchAds360Fields.get", +"parameterOrder": [ +"resourceName" +], +"parameters": { +"resourceName": { +"description": "Required. The resource name of the field to get.", +"location": "path", +"pattern": "^searchAds360Fields/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v0/{+resourceName}", +"response": { +"$ref": "GoogleAdsSearchads360V0Resources__SearchAds360Field" +}, +"scopes": [ +"https://www.googleapis.com/auth/doubleclicksearch" +] +}, +"search": { +"description": "Returns all fields that match the search [query](/search-ads/reporting/concepts/field-service#use_a_query_to_get_field_details). List of thrown errors: [AuthenticationError]() [AuthorizationError]() [HeaderError]() [InternalError]() [QueryError]() [QuotaError]() [RequestError]()", +"flatPath": "v0/searchAds360Fields:search", +"httpMethod": "POST", +"id": "searchads360.searchAds360Fields.search", +"parameterOrder": [], +"parameters": {}, +"path": "v0/searchAds360Fields:search", +"request": { +"$ref": "GoogleAdsSearchads360V0Services__SearchSearchAds360FieldsRequest" +}, +"response": { +"$ref": "GoogleAdsSearchads360V0Services__SearchSearchAds360FieldsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/doubleclicksearch" +] +} +} +} +}, +"revision": "20241108", +"rootUrl": "https://searchads360.googleapis.com/", +"schemas": { +"GoogleAdsSearchads360V0Common__AdScheduleInfo": { +"description": "Represents an AdSchedule criterion. AdSchedule is specified as the day of the week and a time interval within which ads will be shown. No more than six AdSchedules can be added for the same day.", +"id": "GoogleAdsSearchads360V0Common__AdScheduleInfo", +"properties": { +"dayOfWeek": { +"description": "Day of the week the schedule applies to. This field is required for CREATE operations and is prohibited on UPDATE operations.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"MONDAY", +"TUESDAY", +"WEDNESDAY", +"THURSDAY", +"FRIDAY", +"SATURDAY", +"SUNDAY" +], +"enumDescriptions": [ +"Not specified.", +"The value is unknown in this version.", +"Monday.", +"Tuesday.", +"Wednesday.", +"Thursday.", +"Friday.", +"Saturday.", +"Sunday." +], +"type": "string" +}, +"endHour": { +"description": "Ending hour in 24 hour time; 24 signifies end of the day. This field must be between 0 and 24, inclusive. This field is required for CREATE operations and is prohibited on UPDATE operations.", +"format": "int32", +"type": "integer" +}, +"endMinute": { +"description": "Minutes after the end hour at which this schedule ends. The schedule is exclusive of the end minute. This field is required for CREATE operations and is prohibited on UPDATE operations.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"ZERO", +"FIFTEEN", +"THIRTY", +"FORTY_FIVE" +], +"enumDescriptions": [ +"Not specified.", +"The value is unknown in this version.", +"Zero minutes past the hour.", +"Fifteen minutes past the hour.", +"Thirty minutes past the hour.", +"Forty-five minutes past the hour." +], +"type": "string" +}, +"startHour": { +"description": "Starting hour in 24 hour time. This field must be between 0 and 23, inclusive. This field is required for CREATE operations and is prohibited on UPDATE operations.", +"format": "int32", +"type": "integer" +}, +"startMinute": { +"description": "Minutes after the start hour at which this schedule starts. This field is required for CREATE operations and is prohibited on UPDATE operations.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"ZERO", +"FIFTEEN", +"THIRTY", +"FORTY_FIVE" +], +"enumDescriptions": [ +"Not specified.", +"The value is unknown in this version.", +"Zero minutes past the hour.", +"Fifteen minutes past the hour.", +"Thirty minutes past the hour.", +"Forty-five minutes past the hour." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Common__AdTextAsset": { +"description": "A text asset used inside an ad.", +"id": "GoogleAdsSearchads360V0Common__AdTextAsset", +"properties": { +"text": { +"description": "Asset text.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Common__AgeRangeInfo": { +"description": "An age range criterion.", +"id": "GoogleAdsSearchads360V0Common__AgeRangeInfo", +"properties": { +"type": { +"description": "Type of the age range.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"AGE_RANGE_18_24", +"AGE_RANGE_25_34", +"AGE_RANGE_35_44", +"AGE_RANGE_45_54", +"AGE_RANGE_55_64", +"AGE_RANGE_65_UP", +"AGE_RANGE_UNDETERMINED" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"Between 18 and 24 years old.", +"Between 25 and 34 years old.", +"Between 35 and 44 years old.", +"Between 45 and 54 years old.", +"Between 55 and 64 years old.", +"65 years old and beyond.", +"Undetermined age range." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Common__AssetInteractionTarget": { +"description": "An AssetInteractionTarget segment.", +"id": "GoogleAdsSearchads360V0Common__AssetInteractionTarget", +"properties": { +"asset": { +"description": "The asset resource name.", +"type": "string" +}, +"interactionOnThisAsset": { +"description": "Only used with CustomerAsset, CampaignAsset and AdGroupAsset metrics. Indicates whether the interaction metrics occurred on the asset itself or a different asset or ad unit.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Common__AssetUsage": { +"description": "Contains the usage information of the asset.", +"id": "GoogleAdsSearchads360V0Common__AssetUsage", +"properties": { +"asset": { +"description": "Resource name of the asset.", +"type": "string" +}, +"servedAssetFieldType": { +"description": "The served field type of the asset.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"HEADLINE_1", +"HEADLINE_2", +"HEADLINE_3", +"DESCRIPTION_1", +"DESCRIPTION_2", +"HEADLINE", +"HEADLINE_IN_PORTRAIT", +"LONG_HEADLINE", +"DESCRIPTION", +"DESCRIPTION_IN_PORTRAIT", +"BUSINESS_NAME_IN_PORTRAIT", +"BUSINESS_NAME", +"MARKETING_IMAGE", +"MARKETING_IMAGE_IN_PORTRAIT", +"SQUARE_MARKETING_IMAGE", +"PORTRAIT_MARKETING_IMAGE", +"LOGO", +"LANDSCAPE_LOGO", +"CALL_TO_ACTION", +"YOU_TUBE_VIDEO", +"SITELINK", +"CALL", +"MOBILE_APP", +"CALLOUT", +"STRUCTURED_SNIPPET", +"PRICE", +"PROMOTION", +"AD_IMAGE", +"LEAD_FORM", +"BUSINESS_LOGO" +], +"enumDescriptions": [ +"No value has been specified.", +"The received value is not known in this version. This is a response-only value.", +"The asset is used in headline 1.", +"The asset is used in headline 2.", +"The asset is used in headline 3.", +"The asset is used in description 1.", +"The asset is used in description 2.", +"The asset was used in a headline. Use this only if there is only one headline in the ad. Otherwise, use the HEADLINE_1, HEADLINE_2 or HEADLINE_3 enums", +"The asset was used as a headline in portrait image.", +"The asset was used in a long headline (used in MultiAssetResponsiveAd).", +"The asset was used in a description. Use this only if there is only one description in the ad. Otherwise, use the DESCRIPTION_1 or DESCRIPTION_@ enums", +"The asset was used as description in portrait image.", +"The asset was used as business name in portrait image.", +"The asset was used as business name.", +"The asset was used as a marketing image.", +"The asset was used as a marketing image in portrait image.", +"The asset was used as a square marketing image.", +"The asset was used as a portrait marketing image.", +"The asset was used as a logo.", +"The asset was used as a landscape logo.", +"The asset was used as a call-to-action.", +"The asset was used as a YouTube video.", +"This asset is used as a sitelink.", +"This asset is used as a call.", +"This asset is used as a mobile app.", +"This asset is used as a callout.", +"This asset is used as a structured snippet.", +"This asset is used as a price.", +"This asset is used as a promotion.", +"This asset is used as an image.", +"The asset is used as a lead form.", +"The asset is used as a business logo." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Common__AudienceInfo": { +"description": "An audience criterion.", +"id": "GoogleAdsSearchads360V0Common__AudienceInfo", +"properties": { +"audience": { +"description": "The Audience resource name.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Common__BusinessProfileLocation": { +"description": "Business Profile location data synced from the linked Business Profile account.", +"id": "GoogleAdsSearchads360V0Common__BusinessProfileLocation", +"properties": { +"labels": { +"description": "Advertiser specified label for the location on the Business Profile account. This is synced from the Business Profile account.", +"items": { +"type": "string" +}, +"type": "array" +}, +"listingId": { +"description": "Listing ID of this Business Profile location. This is synced from the linked Business Profile account.", +"format": "int64", +"type": "string" +}, +"storeCode": { +"description": "Business Profile store code of this location. This is synced from the Business Profile account.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Common__CallToActionAsset": { +"description": "A call to action asset.", +"id": "GoogleAdsSearchads360V0Common__CallToActionAsset", +"properties": { +"callToAction": { +"description": "Call to action.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"LEARN_MORE", +"GET_QUOTE", +"APPLY_NOW", +"SIGN_UP", +"CONTACT_US", +"SUBSCRIBE", +"DOWNLOAD", +"BOOK_NOW", +"SHOP_NOW", +"BUY_NOW", +"DONATE_NOW", +"ORDER_NOW", +"PLAY_NOW", +"SEE_MORE", +"START_NOW", +"VISIT_SITE", +"WATCH_NOW" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"The call to action type is learn more.", +"The call to action type is get quote.", +"The call to action type is apply now.", +"The call to action type is sign up.", +"The call to action type is contact us.", +"The call to action type is subscribe.", +"The call to action type is download.", +"The call to action type is book now.", +"The call to action type is shop now.", +"The call to action type is buy now.", +"The call to action type is donate now.", +"The call to action type is order now.", +"The call to action type is play now.", +"The call to action type is see more.", +"The call to action type is start now.", +"The call to action type is visit site.", +"The call to action type is watch now." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Common__CustomParameter": { +"description": "A mapping that can be used by custom parameter tags in a `tracking_url_template`, `final_urls`, or `mobile_final_urls`.", +"id": "GoogleAdsSearchads360V0Common__CustomParameter", +"properties": { +"key": { +"description": "The key matching the parameter tag name.", +"type": "string" +}, +"value": { +"description": "The value to be substituted.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Common__DeviceInfo": { +"description": "A device criterion.", +"id": "GoogleAdsSearchads360V0Common__DeviceInfo", +"properties": { +"type": { +"description": "Type of the device.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"MOBILE", +"TABLET", +"DESKTOP", +"CONNECTED_TV", +"OTHER" +], +"enumDescriptions": [ +"Not specified.", +"The value is unknown in this version.", +"Mobile devices with full browsers.", +"Tablets with full browsers.", +"Computers.", +"Smart TVs and game consoles.", +"Other device types." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Common__EnhancedCpc": { +"description": "An automated bidding strategy that raises bids for clicks that seem more likely to lead to a conversion and lowers them for clicks where they seem less likely. This bidding strategy is deprecated and cannot be created anymore. Use ManualCpc with enhanced_cpc_enabled set to true for equivalent functionality.", +"id": "GoogleAdsSearchads360V0Common__EnhancedCpc", +"properties": {}, +"type": "object" +}, +"GoogleAdsSearchads360V0Common__FrequencyCapEntry": { +"description": "A rule specifying the maximum number of times an ad (or some set of ads) can be shown to a user over a particular time period.", +"id": "GoogleAdsSearchads360V0Common__FrequencyCapEntry", +"properties": {}, +"type": "object" +}, +"GoogleAdsSearchads360V0Common__GenderInfo": { +"description": "A gender criterion.", +"id": "GoogleAdsSearchads360V0Common__GenderInfo", +"properties": { +"type": { +"description": "Type of the gender.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"MALE", +"FEMALE", +"UNDETERMINED" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"Male.", +"Female.", +"Undetermined gender." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Common__ImageAsset": { +"description": "An Image asset.", +"id": "GoogleAdsSearchads360V0Common__ImageAsset", +"properties": { +"fileSize": { +"description": "File size of the image asset in bytes.", +"format": "int64", +"type": "string" +}, +"fullSize": { +"$ref": "GoogleAdsSearchads360V0Common__ImageDimension", +"description": "Metadata for this image at its original size." +}, +"mimeType": { +"description": "MIME type of the image asset.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"IMAGE_JPEG", +"IMAGE_GIF", +"IMAGE_PNG", +"FLASH", +"TEXT_HTML", +"PDF", +"MSWORD", +"MSEXCEL", +"RTF", +"AUDIO_WAV", +"AUDIO_MP3", +"HTML5_AD_ZIP" +], +"enumDescriptions": [ +"The mime type has not been specified.", +"The received value is not known in this version. This is a response-only value.", +"MIME type of image/jpeg.", +"MIME type of image/gif.", +"MIME type of image/png.", +"MIME type of application/x-shockwave-flash.", +"MIME type of text/html.", +"MIME type of application/pdf.", +"MIME type of application/msword.", +"MIME type of application/vnd.ms-excel.", +"MIME type of application/rtf.", +"MIME type of audio/wav.", +"MIME type of audio/mp3.", +"MIME type of application/x-html5-ad-zip." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Common__ImageDimension": { +"description": "Metadata for an image at a certain size, either original or resized.", +"id": "GoogleAdsSearchads360V0Common__ImageDimension", +"properties": { +"heightPixels": { +"description": "Height of the image.", +"format": "int64", +"type": "string" +}, +"url": { +"description": "A URL that returns the image with this height and width.", +"type": "string" +}, +"widthPixels": { +"description": "Width of the image.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Common__Keyword": { +"description": "A Keyword criterion segment.", +"id": "GoogleAdsSearchads360V0Common__Keyword", +"properties": { +"adGroupCriterion": { +"description": "The AdGroupCriterion resource name.", +"type": "string" +}, +"info": { +"$ref": "GoogleAdsSearchads360V0Common__KeywordInfo", +"description": "Keyword info." +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Common__KeywordInfo": { +"description": "A keyword criterion.", +"id": "GoogleAdsSearchads360V0Common__KeywordInfo", +"properties": { +"matchType": { +"description": "The match type of the keyword.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"EXACT", +"PHRASE", +"BROAD" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"Exact match.", +"Phrase match.", +"Broad match." +], +"type": "string" +}, +"text": { +"description": "The text of the keyword (at most 80 characters and 10 words).", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Common__LanguageInfo": { +"description": "A language criterion.", +"id": "GoogleAdsSearchads360V0Common__LanguageInfo", +"properties": { +"languageConstant": { +"description": "The language constant resource name.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Common__ListingGroupInfo": { +"description": "A listing group criterion.", +"id": "GoogleAdsSearchads360V0Common__ListingGroupInfo", +"properties": { +"type": { +"description": "Type of the listing group.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"SUBDIVISION", +"UNIT" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"Subdivision of products along some listing dimension. These nodes are not used by serving to target listing entries, but is purely to define the structure of the tree.", +"Listing group unit that defines a bid." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Common__LocationGroupInfo": { +"description": "A radius around a list of locations specified through a feed.", +"id": "GoogleAdsSearchads360V0Common__LocationGroupInfo", +"properties": { +"feedItemSets": { +"description": "FeedItemSets whose FeedItems are targeted. If multiple IDs are specified, then all items that appear in at least one set are targeted. This field cannot be used with geo_target_constants. This is optional and can only be set in CREATE operations.", +"items": { +"type": "string" +}, +"type": "array" +}, +"geoTargetConstants": { +"description": "Geo target constant(s) restricting the scope of the geographic area within the feed. Currently only one geo target constant is allowed.", +"items": { +"type": "string" +}, +"type": "array" +}, +"radius": { +"description": "Distance in units specifying the radius around targeted locations. This is required and must be set in CREATE operations.", +"format": "int64", +"type": "string" +}, +"radiusUnits": { +"description": "Unit of the radius. Miles and meters are supported for geo target constants. Milli miles and meters are supported for feed item sets. This is required and must be set in CREATE operations.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"METERS", +"MILES", +"MILLI_MILES" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"Meters", +"Miles", +"Milli Miles" +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Common__LocationInfo": { +"description": "A location criterion.", +"id": "GoogleAdsSearchads360V0Common__LocationInfo", +"properties": { +"geoTargetConstant": { +"description": "The geo target constant resource name.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Common__ManualCpa": { +"description": "Manual bidding strategy that allows advertiser to set the bid per advertiser-specified action.", +"id": "GoogleAdsSearchads360V0Common__ManualCpa", +"properties": {}, +"type": "object" +}, +"GoogleAdsSearchads360V0Common__ManualCpc": { +"description": "Manual click-based bidding where user pays per click.", +"id": "GoogleAdsSearchads360V0Common__ManualCpc", +"properties": { +"enhancedCpcEnabled": { +"description": "Whether bids are to be enhanced based on conversion optimizer data.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Common__ManualCpm": { +"description": "Manual impression-based bidding where user pays per thousand impressions.", +"id": "GoogleAdsSearchads360V0Common__ManualCpm", +"properties": {}, +"type": "object" +}, +"GoogleAdsSearchads360V0Common__MaximizeConversionValue": { +"description": "An automated bidding strategy to help get the most conversion value for your campaigns while spending your budget.", +"id": "GoogleAdsSearchads360V0Common__MaximizeConversionValue", +"properties": { +"cpcBidCeilingMicros": { +"description": "Maximum bid limit that can be set by the bid strategy. The limit applies to all keywords managed by the strategy. Mutable for portfolio bidding strategies only.", +"format": "int64", +"type": "string" +}, +"cpcBidFloorMicros": { +"description": "Minimum bid limit that can be set by the bid strategy. The limit applies to all keywords managed by the strategy. Mutable for portfolio bidding strategies only.", +"format": "int64", +"type": "string" +}, +"targetRoas": { +"description": "The target return on ad spend (ROAS) option. If set, the bid strategy will maximize revenue while averaging the target return on ad spend. If the target ROAS is high, the bid strategy may not be able to spend the full budget. If the target ROAS is not set, the bid strategy will aim to achieve the highest possible ROAS for the budget.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Common__MaximizeConversions": { +"description": "An automated bidding strategy to help get the most conversions for your campaigns while spending your budget.", +"id": "GoogleAdsSearchads360V0Common__MaximizeConversions", +"properties": { +"cpcBidCeilingMicros": { +"description": "Maximum bid limit that can be set by the bid strategy. The limit applies to all keywords managed by the strategy. Mutable for portfolio bidding strategies only.", +"format": "int64", +"type": "string" +}, +"cpcBidFloorMicros": { +"description": "Minimum bid limit that can be set by the bid strategy. The limit applies to all keywords managed by the strategy. Mutable for portfolio bidding strategies only.", +"format": "int64", +"type": "string" +}, +"targetCpaMicros": { +"description": "The target cost-per-action (CPA) option. This is the average amount that you would like to spend per conversion action specified in micro units of the bidding strategy's currency. If set, the bid strategy will get as many conversions as possible at or below the target cost-per-action. If the target CPA is not set, the bid strategy will aim to achieve the lowest possible CPA given the budget.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Common__Metrics": { +"description": "Metrics data.", +"id": "GoogleAdsSearchads360V0Common__Metrics", +"properties": { +"absoluteTopImpressionPercentage": { +"description": "Search absolute top impression share is the percentage of your Search ad impressions that are shown in the most prominent Search position.", +"format": "double", +"type": "number" +}, +"allConversions": { +"description": "The total number of conversions. This includes all conversions regardless of the value of include_in_conversions_metric.", +"format": "double", +"type": "number" +}, +"allConversionsByConversionDate": { +"description": "The total number of conversions. This includes all conversions regardless of the value of include_in_conversions_metric. When this column is selected with date, the values in date column means the conversion date. Details for the by_conversion_date columns are available at https://support.google.com/sa360/answer/9250611.", +"format": "double", +"type": "number" +}, +"allConversionsFromClickToCall": { +"description": "The number of times people clicked the \"Call\" button to call a store during or after clicking an ad. This number doesn't include whether or not calls were connected, or the duration of any calls. This metric applies to feed items only.", +"format": "double", +"type": "number" +}, +"allConversionsFromDirections": { +"description": "The number of times people clicked a \"Get directions\" button to navigate to a store after clicking an ad. This metric applies to feed items only.", +"format": "double", +"type": "number" +}, +"allConversionsFromInteractionsRate": { +"description": "All conversions from interactions (as oppose to view through conversions) divided by the number of ad interactions.", +"format": "double", +"type": "number" +}, +"allConversionsFromInteractionsValuePerInteraction": { +"description": "The value of all conversions from interactions divided by the total number of interactions.", +"format": "double", +"type": "number" +}, +"allConversionsFromMenu": { +"description": "The number of times people clicked a link to view a store's menu after clicking an ad. This metric applies to feed items only.", +"format": "double", +"type": "number" +}, +"allConversionsFromOrder": { +"description": "The number of times people placed an order at a store after clicking an ad. This metric applies to feed items only.", +"format": "double", +"type": "number" +}, +"allConversionsFromOtherEngagement": { +"description": "The number of other conversions (for example, posting a review or saving a location for a store) that occurred after people clicked an ad. This metric applies to feed items only.", +"format": "double", +"type": "number" +}, +"allConversionsFromStoreVisit": { +"description": "Estimated number of times people visited a store after clicking an ad. This metric applies to feed items only.", +"format": "double", +"type": "number" +}, +"allConversionsFromStoreWebsite": { +"description": "The number of times that people were taken to a store's URL after clicking an ad. This metric applies to feed items only.", +"format": "double", +"type": "number" +}, +"allConversionsValue": { +"description": "The value of all conversions.", +"format": "double", +"type": "number" +}, +"allConversionsValueByConversionDate": { +"description": "The value of all conversions. When this column is selected with date, the values in date column means the conversion date. Details for the by_conversion_date columns are available at https://support.google.com/sa360/answer/9250611.", +"format": "double", +"type": "number" +}, +"allConversionsValuePerCost": { +"description": "The value of all conversions divided by the total cost of ad interactions (such as clicks for text ads or views for video ads).", +"format": "double", +"type": "number" +}, +"averageCost": { +"description": "The average amount you pay per interaction. This amount is the total cost of your ads divided by the total number of interactions.", +"format": "double", +"type": "number" +}, +"averageCpc": { +"description": "The total cost of all clicks divided by the total number of clicks received. This metric is a monetary value and returned in the customer's currency by default. See the metrics_currency parameter at https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause", +"format": "double", +"type": "number" +}, +"averageCpm": { +"description": "Average cost-per-thousand impressions (CPM). This metric is a monetary value and returned in the customer's currency by default. See the metrics_currency parameter at https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause", +"format": "double", +"type": "number" +}, +"averageQualityScore": { +"description": "The average quality score.", +"format": "double", +"type": "number" +}, +"clicks": { +"description": "The number of clicks.", +"format": "int64", +"type": "string" +}, +"clientAccountConversions": { +"description": "The number of client account conversions. This only includes conversion actions which include_in_client_account_conversions_metric attribute is set to true. If you use conversion-based bidding, your bid strategies will optimize for these conversions.", +"format": "double", +"type": "number" +}, +"clientAccountConversionsValue": { +"description": "The value of client account conversions. This only includes conversion actions which include_in_client_account_conversions_metric attribute is set to true. If you use conversion-based bidding, your bid strategies will optimize for these conversions.", +"format": "double", +"type": "number" +}, +"clientAccountCrossSellCostOfGoodsSoldMicros": { +"description": "Client account cross-sell cost of goods sold (COGS) is the total cost of products sold as a result of advertising a different product. How it works: You report conversions with cart data for completed purchases on your website. If the ad that was interacted with before the purchase has an associated product (see Shopping Ads) then this product is considered the advertised product. Any product included in the order the customer places is a sold product. If these products don't match then this is considered cross-sell. Cross-sell cost of goods sold is the total cost of the products sold that weren't advertised. Example: Someone clicked on a Shopping ad for a hat then bought the same hat and a shirt. The hat has a cost of goods sold value of $3, the shirt has a cost of goods sold value of $5. The cross-sell cost of goods sold for this order is $5. This metric is only available if you report conversions with cart data. This metric is a monetary value and returned in the customer's currency by default. See the metrics_currency parameter at https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause", +"format": "int64", +"type": "string" +}, +"clientAccountCrossSellGrossProfitMicros": { +"description": "Client account cross-sell gross profit is the profit you made from products sold as a result of advertising a different product, minus cost of goods sold (COGS). How it works: You report conversions with cart data for completed purchases on your website. If the ad that was interacted with before the purchase has an associated product (see Shopping Ads) then this product is considered the advertised product. Any product included in the purchase is a sold product. If these products don't match then this is considered cross-sell. Cross-sell gross profit is the revenue you made from cross-sell attributed to your ads minus the cost of the goods sold. Example: Someone clicked on a Shopping ad for a hat then bought the same hat and a shirt. The shirt is priced $20 and has a cost of goods sold value of $5. The cross-sell gross profit of this order is $15 = $20 - $5. This metric is only available if you report conversions with cart data. This metric is a monetary value and returned in the customer's currency by default. See the metrics_currency parameter at https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause", +"format": "int64", +"type": "string" +}, +"clientAccountCrossSellRevenueMicros": { +"description": "Client account cross-sell revenue is the total amount you made from products sold as a result of advertising a different product. How it works: You report conversions with cart data for completed purchases on your website. If the ad that was interacted with before the purchase has an associated product (see Shopping Ads) then this product is considered the advertised product. Any product included in the order the customer places is a sold product. If these products don't match then this is considered cross-sell. Cross-sell revenue is the total value you made from cross-sell attributed to your ads. Example: Someone clicked on a Shopping ad for a hat then bought the same hat and a shirt. The hat is priced $10 and the shirt is priced $20. The cross-sell revenue of this order is $20. This metric is only available if you report conversions with cart data. This metric is a monetary value and returned in the customer's currency by default. See the metrics_currency parameter at https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause", +"format": "int64", +"type": "string" +}, +"clientAccountCrossSellUnitsSold": { +"description": "Client account cross-sell units sold is the total number of products sold as a result of advertising a different product. How it works: You report conversions with cart data for completed purchases on your website. If the ad that was interacted with before the purchase has an associated product (see Shopping Ads) then this product is considered the advertised product. Any product included in the order the customer places is a sold product. If these products don't match then this is considered cross-sell. Cross-sell units sold is the total number of cross-sold products from all orders attributed to your ads. Example: Someone clicked on a Shopping ad for a hat then bought the same hat, a shirt and a jacket. The cross-sell units sold in this order is 2. This metric is only available if you report conversions with cart data.", +"format": "double", +"type": "number" +}, +"clientAccountLeadCostOfGoodsSoldMicros": { +"description": "Client account lead cost of goods sold (COGS) is the total cost of products sold as a result of advertising the same product. How it works: You report conversions with cart data for completed purchases on your website. If the ad that was interacted with has an associated product (see Shopping Ads) then this product is considered the advertised product. Any product included in the order the customer places is a sold product. If the advertised and sold products match, then the cost of these goods is counted under lead cost of goods sold. Example: Someone clicked on a Shopping ad for a hat then bought the same hat and a shirt. The hat has a cost of goods sold value of $3, the shirt has a cost of goods sold value of $5. The lead cost of goods sold for this order is $3. This metric is only available if you report conversions with cart data. This metric is a monetary value and returned in the customer's currency by default. See the metrics_currency parameter at https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause", +"format": "int64", +"type": "string" +}, +"clientAccountLeadGrossProfitMicros": { +"description": "Client account lead gross profit is the profit you made from products sold as a result of advertising the same product, minus cost of goods sold (COGS). How it works: You report conversions with cart data for completed purchases on your website. If the ad that was interacted with before the purchase has an associated product (see Shopping Ads) then this product is considered the advertised product. Any product included in the order the customer places is a sold product. If the advertised and sold products match, then the revenue you made from these sales minus the cost of goods sold is your lead gross profit. Example: Someone clicked on a Shopping ad for a hat then bought the same hat and a shirt. The hat is priced $10 and has a cost of goods sold value of $3. The lead gross profit of this order is $7 = $10 - $3. This metric is only available if you report conversions with cart data. This metric is a monetary value and returned in the customer's currency by default. See the metrics_currency parameter at https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause", +"format": "int64", +"type": "string" +}, +"clientAccountLeadRevenueMicros": { +"description": "Client account lead revenue is the total amount you made from products sold as a result of advertising the same product. How it works: You report conversions with cart data for completed purchases on your website. If the ad that was interacted with before the purchase has an associated product (see Shopping Ads) then this product is considered the advertised product. Any product included in the order the customer places is a sold product. If the advertised and sold products match, then the total value you made from the sales of these products is shown under lead revenue. Example: Someone clicked on a Shopping ad for a hat then bought the same hat and a shirt. The hat is priced $10 and the shirt is priced $20. The lead revenue of this order is $10. This metric is only available if you report conversions with cart data. This metric is a monetary value and returned in the customer's currency by default. See the metrics_currency parameter at https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause", +"format": "int64", +"type": "string" +}, +"clientAccountLeadUnitsSold": { +"description": "Client account lead units sold is the total number of products sold as a result of advertising the same product. How it works: You report conversions with cart data for completed purchases on your website. If the ad that was interacted with before the purchase has an associated product (see Shopping Ads) then this product is considered the advertised product. Any product included in the order the customer places is a sold product. If the advertised and sold products match, then the total number of these products sold is shown under lead units sold. Example: Someone clicked on a Shopping ad for a hat then bought the same hat, a shirt and a jacket. The lead units sold in this order is 1. This metric is only available if you report conversions with cart data.", +"format": "double", +"type": "number" +}, +"clientAccountViewThroughConversions": { +"description": "The total number of view-through conversions. These happen when a customer sees an image or rich media ad, then later completes a conversion on your site without interacting with (for example, clicking on) another ad.", +"format": "int64", +"type": "string" +}, +"contentBudgetLostImpressionShare": { +"description": "The estimated percent of times that your ad was eligible to show on the Display Network but didn't because your budget was too low. Note: Content budget lost impression share is reported in the range of 0 to 0.9. Any value above 0.9 is reported as 0.9001.", +"format": "double", +"type": "number" +}, +"contentImpressionShare": { +"description": "The impressions you've received on the Display Network divided by the estimated number of impressions you were eligible to receive. Note: Content impression share is reported in the range of 0.1 to 1. Any value below 0.1 is reported as 0.0999.", +"format": "double", +"type": "number" +}, +"contentRankLostImpressionShare": { +"description": "The estimated percentage of impressions on the Display Network that your ads didn't receive due to poor Ad Rank. Note: Content rank lost impression share is reported in the range of 0 to 0.9. Any value above 0.9 is reported as 0.9001.", +"format": "double", +"type": "number" +}, +"conversionCustomMetrics": { +"description": "The conversion custom metrics.", +"items": { +"$ref": "GoogleAdsSearchads360V0Common__Value" +}, +"type": "array" +}, +"conversions": { +"description": "The number of conversions. This only includes conversion actions which include_in_conversions_metric attribute is set to true. If you use conversion-based bidding, your bid strategies will optimize for these conversions.", +"format": "double", +"type": "number" +}, +"conversionsByConversionDate": { +"description": "The sum of conversions by conversion date for biddable conversion types. Can be fractional due to attribution modeling. When this column is selected with date, the values in date column means the conversion date.", +"format": "double", +"type": "number" +}, +"conversionsFromInteractionsRate": { +"description": "Average biddable conversions (from interaction) per conversion eligible interaction. Shows how often, on average, an ad interaction leads to a biddable conversion.", +"format": "double", +"type": "number" +}, +"conversionsFromInteractionsValuePerInteraction": { +"description": "The value of conversions from interactions divided by the number of ad interactions. This only includes conversion actions which include_in_conversions_metric attribute is set to true. If you use conversion-based bidding, your bid strategies will optimize for these conversions.", +"format": "double", +"type": "number" +}, +"conversionsValue": { +"description": "The sum of conversion values for the conversions included in the \"conversions\" field. This metric is useful only if you entered a value for your conversion actions.", +"format": "double", +"type": "number" +}, +"conversionsValueByConversionDate": { +"description": "The sum of biddable conversions value by conversion date. When this column is selected with date, the values in date column means the conversion date.", +"format": "double", +"type": "number" +}, +"conversionsValuePerCost": { +"description": "The value of biddable conversion divided by the total cost of conversion eligible interactions.", +"format": "double", +"type": "number" +}, +"costMicros": { +"description": "The sum of your cost-per-click (CPC) and cost-per-thousand impressions (CPM) costs during this period. This metric is a monetary value and returned in the customer's currency by default. See the metrics_currency parameter at https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause", +"format": "int64", +"type": "string" +}, +"costPerAllConversions": { +"description": "The cost of ad interactions divided by all conversions.", +"format": "double", +"type": "number" +}, +"costPerConversion": { +"description": "Average conversion eligible cost per biddable conversion.", +"format": "double", +"type": "number" +}, +"costPerCurrentModelAttributedConversion": { +"description": "The cost of ad interactions divided by current model attributed conversions. This only includes conversion actions which include_in_conversions_metric attribute is set to true. If you use conversion-based bidding, your bid strategies will optimize for these conversions.", +"format": "double", +"type": "number" +}, +"crossDeviceConversions": { +"description": "Conversions from when a customer clicks on an ad on one device, then converts on a different device or browser. Cross-device conversions are already included in all_conversions.", +"format": "double", +"type": "number" +}, +"crossDeviceConversionsByConversionDate": { +"description": "The number of cross-device conversions by conversion date. Details for the by_conversion_date columns are available at https://support.google.com/sa360/answer/9250611.", +"format": "double", +"type": "number" +}, +"crossDeviceConversionsValue": { +"description": "The sum of the value of cross-device conversions.", +"format": "double", +"type": "number" +}, +"crossDeviceConversionsValueByConversionDate": { +"description": "The sum of cross-device conversions value by conversion date. Details for the by_conversion_date columns are available at https://support.google.com/sa360/answer/9250611.", +"format": "double", +"type": "number" +}, +"crossSellCostOfGoodsSoldMicros": { +"description": "Cross-sell cost of goods sold (COGS) is the total cost of products sold as a result of advertising a different product. How it works: You report conversions with cart data for completed purchases on your website. If the ad that was interacted with before the purchase has an associated product (see Shopping Ads) then this product is considered the advertised product. Any product included in the order the customer places is a sold product. If these products don't match then this is considered cross-sell. Cross-sell cost of goods sold is the total cost of the products sold that weren't advertised. Example: Someone clicked on a Shopping ad for a hat then bought the same hat and a shirt. The hat has a cost of goods sold value of $3, the shirt has a cost of goods sold value of $5. The cross-sell cost of goods sold for this order is $5. This metric is only available if you report conversions with cart data. This metric is a monetary value and returned in the customer's currency by default. See the metrics_currency parameter at https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause", +"format": "int64", +"type": "string" +}, +"crossSellGrossProfitMicros": { +"description": "Cross-sell gross profit is the profit you made from products sold as a result of advertising a different product, minus cost of goods sold (COGS). How it works: You report conversions with cart data for completed purchases on your website. If the ad that was interacted with before the purchase has an associated product (see Shopping Ads) then this product is considered the advertised product. Any product included in the purchase is a sold product. If these products don't match then this is considered cross-sell. Cross-sell gross profit is the revenue you made from cross-sell attributed to your ads minus the cost of the goods sold. Example: Someone clicked on a Shopping ad for a hat then bought the same hat and a shirt. The shirt is priced $20 and has a cost of goods sold value of $5. The cross-sell gross profit of this order is $15 = $20 - $5. This metric is only available if you report conversions with cart data. This metric is a monetary value and returned in the customer's currency by default. See the metrics_currency parameter at https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause", +"format": "int64", +"type": "string" +}, +"crossSellRevenueMicros": { +"description": "Cross-sell revenue is the total amount you made from products sold as a result of advertising a different product. How it works: You report conversions with cart data for completed purchases on your website. If the ad that was interacted with before the purchase has an associated product (see Shopping Ads) then this product is considered the advertised product. Any product included in the order the customer places is a sold product. If these products don't match then this is considered cross-sell. Cross-sell revenue is the total value you made from cross-sell attributed to your ads. Example: Someone clicked on a Shopping ad for a hat then bought the same hat and a shirt. The hat is priced $10 and the shirt is priced $20. The cross-sell revenue of this order is $20. This metric is only available if you report conversions with cart data. This metric is a monetary value and returned in the customer's currency by default. See the metrics_currency parameter at https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause", +"format": "int64", +"type": "string" +}, +"crossSellUnitsSold": { +"description": "Cross-sell units sold is the total number of products sold as a result of advertising a different product. How it works: You report conversions with cart data for completed purchases on your website. If the ad that was interacted with before the purchase has an associated product (see Shopping Ads) then this product is considered the advertised product. Any product included in the order the customer places is a sold product. If these products don't match then this is considered cross-sell. Cross-sell units sold is the total number of cross-sold products from all orders attributed to your ads. Example: Someone clicked on a Shopping ad for a hat then bought the same hat, a shirt and a jacket. The cross-sell units sold in this order is 2. This metric is only available if you report conversions with cart data.", +"format": "double", +"type": "number" +}, +"ctr": { +"description": "The number of clicks your ad receives (Clicks) divided by the number of times your ad is shown (Impressions).", +"format": "double", +"type": "number" +}, +"generalInvalidClickRate": { +"description": "The percentage of clicks that have been filtered out of your total number of clicks (filtered + non-filtered clicks) due to being general invalid clicks. These are clicks Google considers illegitimate that are detected through routine means of filtration (that is, known invalid data-center traffic, bots and spiders or other crawlers, irregular patterns, etc). You're not charged for them, and they don't affect your account statistics. See the help page at https://support.google.com/campaignmanager/answer/6076504 for details.", +"format": "double", +"type": "number" +}, +"generalInvalidClicks": { +"description": "Number of general invalid clicks. These are a subset of your invalid clicks that are detected through routine means of filtration (such as known invalid data-center traffic, bots and spiders or other crawlers, irregular patterns, etc.). You're not charged for them, and they don't affect your account statistics. See the help page at https://support.google.com/campaignmanager/answer/6076504 for details.", +"format": "int64", +"type": "string" +}, +"historicalCreativeQualityScore": { +"description": "The creative historical quality score.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"BELOW_AVERAGE", +"AVERAGE", +"ABOVE_AVERAGE" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"Quality of the creative is below average.", +"Quality of the creative is average.", +"Quality of the creative is above average." +], +"type": "string" +}, +"historicalLandingPageQualityScore": { +"description": "The quality of historical landing page experience.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"BELOW_AVERAGE", +"AVERAGE", +"ABOVE_AVERAGE" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"Quality of the creative is below average.", +"Quality of the creative is average.", +"Quality of the creative is above average." +], +"type": "string" +}, +"historicalQualityScore": { +"description": "The historical quality score.", +"format": "int64", +"type": "string" +}, +"historicalSearchPredictedCtr": { +"description": "The historical search predicted click through rate (CTR).", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"BELOW_AVERAGE", +"AVERAGE", +"ABOVE_AVERAGE" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"Quality of the creative is below average.", +"Quality of the creative is average.", +"Quality of the creative is above average." +], +"type": "string" +}, +"impressions": { +"description": "Count of how often your ad has appeared on a search results page or website on the Google Network.", +"format": "int64", +"type": "string" +}, +"interactionEventTypes": { +"description": "The types of payable and free interactions.", +"items": { +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"CLICK", +"ENGAGEMENT", +"VIDEO_VIEW", +"NONE" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"Click to site. In most cases, this interaction navigates to an external location, usually the advertiser's landing page. This is also the default InteractionEventType for click events.", +"The user's expressed intent to engage with the ad in-place.", +"User viewed a video ad.", +"The default InteractionEventType for ad conversion events. This is used when an ad conversion row does NOT indicate that the free interactions (for example, the ad conversions) should be 'promoted' and reported as part of the core metrics. These are simply other (ad) conversions." +], +"type": "string" +}, +"type": "array" +}, +"interactionRate": { +"description": "How often people interact with your ad after it is shown to them. This is the number of interactions divided by the number of times your ad is shown.", +"format": "double", +"type": "number" +}, +"interactions": { +"description": "The number of interactions. An interaction is the main user action associated with an ad format-clicks for text and shopping ads, views for video ads, and so on.", +"format": "int64", +"type": "string" +}, +"invalidClickRate": { +"description": "The percentage of clicks filtered out of your total number of clicks (filtered + non-filtered clicks) during the reporting period.", +"format": "double", +"type": "number" +}, +"invalidClicks": { +"description": "Number of clicks Google considers illegitimate and doesn't charge you for.", +"format": "int64", +"type": "string" +}, +"leadCostOfGoodsSoldMicros": { +"description": "Lead cost of goods sold (COGS) is the total cost of products sold as a result of advertising the same product. How it works: You report conversions with cart data for completed purchases on your website. If the ad that was interacted with has an associated product (see Shopping Ads) then this product is considered the advertised product. Any product included in the order the customer places is a sold product. If the advertised and sold products match, then the cost of these goods is counted under lead cost of goods sold. Example: Someone clicked on a Shopping ad for a hat then bought the same hat and a shirt. The hat has a cost of goods sold value of $3, the shirt has a cost of goods sold value of $5. The lead cost of goods sold for this order is $3. This metric is only available if you report conversions with cart data. This metric is a monetary value and returned in the customer's currency by default. See the metrics_currency parameter at https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause", +"format": "int64", +"type": "string" +}, +"leadGrossProfitMicros": { +"description": "Lead gross profit is the profit you made from products sold as a result of advertising the same product, minus cost of goods sold (COGS). How it works: You report conversions with cart data for completed purchases on your website. If the ad that was interacted with before the purchase has an associated product (see Shopping Ads) then this product is considered the advertised product. Any product included in the order the customer places is a sold product. If the advertised and sold products match, then the revenue you made from these sales minus the cost of goods sold is your lead gross profit. Example: Someone clicked on a Shopping ad for a hat then bought the same hat and a shirt. The hat is priced $10 and has a cost of goods sold value of $3. The lead gross profit of this order is $7 = $10 - $3. This metric is only available if you report conversions with cart data. This metric is a monetary value and returned in the customer's currency by default. See the metrics_currency parameter at https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause", +"format": "int64", +"type": "string" +}, +"leadRevenueMicros": { +"description": "Lead revenue is the total amount you made from products sold as a result of advertising the same product. How it works: You report conversions with cart data for completed purchases on your website. If the ad that was interacted with before the purchase has an associated product (see Shopping Ads) then this product is considered the advertised product. Any product included in the order the customer places is a sold product. If the advertised and sold products match, then the total value you made from the sales of these products is shown under lead revenue. Example: Someone clicked on a Shopping ad for a hat then bought the same hat and a shirt. The hat is priced $10 and the shirt is priced $20. The lead revenue of this order is $10. This metric is only available if you report conversions with cart data. This metric is a monetary value and returned in the customer's currency by default. See the metrics_currency parameter at https://developers.google.com/search-ads/reporting/query/query-structure#parameters_clause", +"format": "int64", +"type": "string" +}, +"leadUnitsSold": { +"description": "Lead units sold is the total number of products sold as a result of advertising the same product. How it works: You report conversions with cart data for completed purchases on your website. If the ad that was interacted with before the purchase has an associated product (see Shopping Ads) then this product is considered the advertised product. Any product included in the order the customer places is a sold product. If the advertised and sold products match, then the total number of these products sold is shown under lead units sold. Example: Someone clicked on a Shopping ad for a hat then bought the same hat, a shirt and a jacket. The lead units sold in this order is 1. This metric is only available if you report conversions with cart data.", +"format": "double", +"type": "number" +}, +"mobileFriendlyClicksPercentage": { +"description": "The percentage of mobile clicks that go to a mobile-friendly page.", +"format": "double", +"type": "number" +}, +"rawEventConversionMetrics": { +"description": "The raw event conversion metrics.", +"items": { +"$ref": "GoogleAdsSearchads360V0Common__Value" +}, +"type": "array" +}, +"searchAbsoluteTopImpressionShare": { +"description": "The percentage of the customer's Shopping or Search ad impressions that are shown in the most prominent Shopping position. See https://support.google.com/sa360/answer/9566729 for details. Any value below 0.1 is reported as 0.0999.", +"format": "double", +"type": "number" +}, +"searchBudgetLostAbsoluteTopImpressionShare": { +"description": "The number estimating how often your ad wasn't the very first ad among the top ads in the search results due to a low budget. Note: Search budget lost absolute top impression share is reported in the range of 0 to 0.9. Any value above 0.9 is reported as 0.9001.", +"format": "double", +"type": "number" +}, +"searchBudgetLostImpressionShare": { +"description": "The estimated percent of times that your ad was eligible to show on the Search Network but didn't because your budget was too low. Note: Search budget lost impression share is reported in the range of 0 to 0.9. Any value above 0.9 is reported as 0.9001.", +"format": "double", +"type": "number" +}, +"searchBudgetLostTopImpressionShare": { +"description": "The number estimating how often your ad didn't show adjacent to the top organic search results due to a low budget. Note: Search budget lost top impression share is reported in the range of 0 to 0.9. Any value above 0.9 is reported as 0.9001.", +"format": "double", +"type": "number" +}, +"searchClickShare": { +"description": "The number of clicks you've received on the Search Network divided by the estimated number of clicks you were eligible to receive. Note: Search click share is reported in the range of 0.1 to 1. Any value below 0.1 is reported as 0.0999.", +"format": "double", +"type": "number" +}, +"searchExactMatchImpressionShare": { +"description": "The impressions you've received divided by the estimated number of impressions you were eligible to receive on the Search Network for search terms that matched your keywords exactly (or were close variants of your keyword), regardless of your keyword match types. Note: Search exact match impression share is reported in the range of 0.1 to 1. Any value below 0.1 is reported as 0.0999.", +"format": "double", +"type": "number" +}, +"searchImpressionShare": { +"description": "The impressions you've received on the Search Network divided by the estimated number of impressions you were eligible to receive. Note: Search impression share is reported in the range of 0.1 to 1. Any value below 0.1 is reported as 0.0999.", +"format": "double", +"type": "number" +}, +"searchRankLostAbsoluteTopImpressionShare": { +"description": "The number estimating how often your ad wasn't the very first ad among the top ads in the search results due to poor Ad Rank. Note: Search rank lost absolute top impression share is reported in the range of 0 to 0.9. Any value above 0.9 is reported as 0.9001.", +"format": "double", +"type": "number" +}, +"searchRankLostImpressionShare": { +"description": "The estimated percentage of impressions on the Search Network that your ads didn't receive due to poor Ad Rank. Note: Search rank lost impression share is reported in the range of 0 to 0.9. Any value above 0.9 is reported as 0.9001.", +"format": "double", +"type": "number" +}, +"searchRankLostTopImpressionShare": { +"description": "The number estimating how often your ad didn't show adjacent to the top organic search results due to poor Ad Rank. Note: Search rank lost top impression share is reported in the range of 0 to 0.9. Any value above 0.9 is reported as 0.9001.", +"format": "double", +"type": "number" +}, +"searchTopImpressionShare": { +"description": "The impressions you've received among the top ads compared to the estimated number of impressions you were eligible to receive among the top ads. Note: Search top impression share is reported in the range of 0.1 to 1. Any value below 0.1 is reported as 0.0999. Top ads are generally above the top organic results, although they may show below the top organic results on certain queries.", +"format": "double", +"type": "number" +}, +"topImpressionPercentage": { +"description": "The percent of your ad impressions that are shown adjacent to the top organic search results.", +"format": "double", +"type": "number" +}, +"valuePerAllConversions": { +"description": "The value of all conversions divided by the number of all conversions.", +"format": "double", +"type": "number" +}, +"valuePerAllConversionsByConversionDate": { +"description": "The value of all conversions divided by the number of all conversions. When this column is selected with date, the values in date column means the conversion date. Details for the by_conversion_date columns are available at https://support.google.com/sa360/answer/9250611.", +"format": "double", +"type": "number" +}, +"valuePerConversion": { +"description": "The value of biddable conversion divided by the number of biddable conversions. Shows how much, on average, each of the biddable conversions is worth.", +"format": "double", +"type": "number" +}, +"valuePerConversionsByConversionDate": { +"description": "Biddable conversions value by conversion date divided by biddable conversions by conversion date. Shows how much, on average, each of the biddable conversions is worth (by conversion date). When this column is selected with date, the values in date column means the conversion date.", +"format": "double", +"type": "number" +}, +"visits": { +"description": "Clicks that Search Ads 360 has successfully recorded and forwarded to an advertiser's landing page.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Common__MobileAppAsset": { +"description": "An asset representing a mobile app.", +"id": "GoogleAdsSearchads360V0Common__MobileAppAsset", +"properties": { +"appId": { +"description": "Required. A string that uniquely identifies a mobile application. It should just contain the platform native id, like \"com.android.ebay\" for Android or \"12345689\" for iOS.", +"type": "string" +}, +"appStore": { +"description": "Required. The application store that distributes this specific app.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"APPLE_APP_STORE", +"GOOGLE_APP_STORE" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"Mobile app vendor for Apple app store.", +"Mobile app vendor for Google app store." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Common__PercentCpc": { +"description": "A bidding strategy where bids are a fraction of the advertised price for some good or service.", +"id": "GoogleAdsSearchads360V0Common__PercentCpc", +"properties": { +"cpcBidCeilingMicros": { +"description": "Maximum bid limit that can be set by the bid strategy. This is an optional field entered by the advertiser and specified in local micros. Note: A zero value is interpreted in the same way as having bid_ceiling undefined.", +"format": "int64", +"type": "string" +}, +"enhancedCpcEnabled": { +"description": "Adjusts the bid for each auction upward or downward, depending on the likelihood of a conversion. Individual bids may exceed cpc_bid_ceiling_micros, but the average bid amount for a campaign should not.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Common__RealTimeBiddingSetting": { +"description": "Settings for Real-Time Bidding, a feature only available for campaigns targeting the Ad Exchange network.", +"id": "GoogleAdsSearchads360V0Common__RealTimeBiddingSetting", +"properties": { +"optIn": { +"description": "Whether the campaign is opted in to real-time bidding.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Common__SearchAds360ExpandedDynamicSearchAdInfo": { +"description": "An expanded dynamic search ad.", +"id": "GoogleAdsSearchads360V0Common__SearchAds360ExpandedDynamicSearchAdInfo", +"properties": { +"adTrackingId": { +"description": "The tracking id of the ad.", +"format": "int64", +"type": "string" +}, +"description1": { +"description": "The first line of the ad's description.", +"type": "string" +}, +"description2": { +"description": "The second line of the ad's description.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Common__SearchAds360ExpandedTextAdInfo": { +"description": "A Search Ads 360 expanded text ad.", +"id": "GoogleAdsSearchads360V0Common__SearchAds360ExpandedTextAdInfo", +"properties": { +"adTrackingId": { +"description": "The tracking id of the ad.", +"format": "int64", +"type": "string" +}, +"description1": { +"description": "The first line of the ad's description.", +"type": "string" +}, +"description2": { +"description": "The second line of the ad's description.", +"type": "string" +}, +"headline": { +"description": "The headline of the ad.", +"type": "string" +}, +"headline2": { +"description": "The second headline of the ad.", +"type": "string" +}, +"headline3": { +"description": "The third headline of the ad.", +"type": "string" +}, +"path1": { +"description": "Text appended to the auto-generated visible URL with a delimiter.", +"type": "string" +}, +"path2": { +"description": "Text appended to path1 with a delimiter.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Common__SearchAds360ProductAdInfo": { +"description": "A Search Ads 360 product ad.", +"id": "GoogleAdsSearchads360V0Common__SearchAds360ProductAdInfo", +"properties": {}, +"type": "object" +}, +"GoogleAdsSearchads360V0Common__SearchAds360ResponsiveSearchAdInfo": { +"description": "A Search Ads 360 responsive search ad.", +"id": "GoogleAdsSearchads360V0Common__SearchAds360ResponsiveSearchAdInfo", +"properties": { +"adTrackingId": { +"description": "The tracking id of the ad.", +"format": "int64", +"type": "string" +}, +"descriptions": { +"description": "List of text assets for descriptions. When the ad serves the descriptions will be selected from this list.", +"items": { +"$ref": "GoogleAdsSearchads360V0Common__AdTextAsset" +}, +"type": "array" +}, +"headlines": { +"description": "List of text assets for headlines. When the ad serves the headlines will be selected from this list.", +"items": { +"$ref": "GoogleAdsSearchads360V0Common__AdTextAsset" +}, +"type": "array" +}, +"path1": { +"description": "Text appended to the auto-generated visible URL with a delimiter.", +"type": "string" +}, +"path2": { +"description": "Text appended to path1 with a delimiter.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Common__SearchAds360TextAdInfo": { +"description": "A Search Ads 360 text ad.", +"id": "GoogleAdsSearchads360V0Common__SearchAds360TextAdInfo", +"properties": { +"adTrackingId": { +"description": "The tracking id of the ad.", +"format": "int64", +"type": "string" +}, +"description1": { +"description": "The first line of the ad's description.", +"type": "string" +}, +"description2": { +"description": "The second line of the ad's description.", +"type": "string" +}, +"displayMobileUrl": { +"description": "The displayed mobile URL of the ad.", +"type": "string" +}, +"displayUrl": { +"description": "The displayed URL of the ad.", +"type": "string" +}, +"headline": { +"description": "The headline of the ad.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Common__Segments": { +"description": "Segment only fields.", +"id": "GoogleAdsSearchads360V0Common__Segments", +"properties": { +"adNetworkType": { +"description": "Ad network type.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"SEARCH", +"SEARCH_PARTNERS", +"CONTENT", +"YOUTUBE_SEARCH", +"YOUTUBE_WATCH", +"MIXED" +], +"enumDescriptions": [ +"Not specified.", +"The value is unknown in this version.", +"Google search.", +"Search partners.", +"Display Network.", +"YouTube Search.", +"YouTube Videos", +"Cross-network." +], +"type": "string" +}, +"assetInteractionTarget": { +"$ref": "GoogleAdsSearchads360V0Common__AssetInteractionTarget", +"description": "Only used with CustomerAsset, CampaignAsset and AdGroupAsset metrics. Indicates whether the interaction metrics occurred on the asset itself or a different asset or ad unit. Interactions (for example, clicks) are counted across all the parts of the served ad (for example, Ad itself and other components like Sitelinks) when they are served together. When interaction_on_this_asset is true, it means the interactions are on this specific asset and when interaction_on_this_asset is false, it means the interactions is not on this specific asset but on other parts of the served ad this asset is served with." +}, +"conversionAction": { +"description": "Resource name of the conversion action.", +"type": "string" +}, +"conversionActionCategory": { +"description": "Conversion action category.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"DEFAULT", +"PAGE_VIEW", +"PURCHASE", +"SIGNUP", +"LEAD", +"DOWNLOAD", +"ADD_TO_CART", +"BEGIN_CHECKOUT", +"SUBSCRIBE_PAID", +"PHONE_CALL_LEAD", +"IMPORTED_LEAD", +"SUBMIT_LEAD_FORM", +"BOOK_APPOINTMENT", +"REQUEST_QUOTE", +"GET_DIRECTIONS", +"OUTBOUND_CLICK", +"CONTACT", +"ENGAGEMENT", +"STORE_VISIT", +"STORE_SALE", +"QUALIFIED_LEAD", +"CONVERTED_LEAD" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"Default category.", +"User visiting a page.", +"Purchase, sales, or \"order placed\" event.", +"Signup user action.", +"Lead-generating action.", +"Software download action (as for an app).", +"The addition of items to a shopping cart or bag on an advertiser site.", +"When someone enters the checkout flow on an advertiser site.", +"The start of a paid subscription for a product or service.", +"A call to indicate interest in an advertiser's offering.", +"A lead conversion imported from an external source into Google Ads.", +"A submission of a form on an advertiser site indicating business interest.", +"A booking of an appointment with an advertiser's business.", +"A quote or price estimate request.", +"A search for an advertiser's business location with intention to visit.", +"A click to an advertiser's partner's site.", +"A call, SMS, email, chat or other type of contact to an advertiser.", +"A website engagement event such as long site time or a Google Analytics (GA) Smart Goal. Intended to be used for GA, Firebase, GA Gold goal imports.", +"A visit to a physical store location.", +"A sale occurring in a physical store.", +"A lead conversion imported from an external source into Google Ads, that has been further qualified by the advertiser (marketing/sales team). In the lead-to-sale journey, advertisers get leads, then act on them by reaching out to the consumer. If the consumer is interested and may end up buying their product, the advertiser marks such leads as \"qualified leads\".", +"A lead conversion imported from an external source into Google Ads, that has further completed a chosen stage as defined by the lead gen advertiser." +], +"type": "string" +}, +"conversionActionName": { +"description": "Conversion action name.", +"type": "string" +}, +"conversionCustomDimensions": { +"description": "The conversion custom dimensions.", +"items": { +"$ref": "GoogleAdsSearchads360V0Common__Value" +}, +"type": "array" +}, +"date": { +"description": "Date to which metrics apply. yyyy-MM-dd format, for example, 2018-04-17.", +"type": "string" +}, +"dayOfWeek": { +"description": "Day of the week, for example, MONDAY.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"MONDAY", +"TUESDAY", +"WEDNESDAY", +"THURSDAY", +"FRIDAY", +"SATURDAY", +"SUNDAY" +], +"enumDescriptions": [ +"Not specified.", +"The value is unknown in this version.", +"Monday.", +"Tuesday.", +"Wednesday.", +"Thursday.", +"Friday.", +"Saturday.", +"Sunday." +], +"type": "string" +}, +"device": { +"description": "Device to which metrics apply.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"MOBILE", +"TABLET", +"DESKTOP", +"CONNECTED_TV", +"OTHER" +], +"enumDescriptions": [ +"Not specified.", +"The value is unknown in this version.", +"Mobile devices with full browsers.", +"Tablets with full browsers.", +"Computers.", +"Smart TVs and game consoles.", +"Other device types." +], +"type": "string" +}, +"geoTargetCity": { +"description": "Resource name of the geo target constant that represents a city.", +"type": "string" +}, +"geoTargetCountry": { +"description": "Resource name of the geo target constant that represents a country.", +"type": "string" +}, +"geoTargetMetro": { +"description": "Resource name of the geo target constant that represents a metro.", +"type": "string" +}, +"geoTargetRegion": { +"description": "Resource name of the geo target constant that represents a region.", +"type": "string" +}, +"hour": { +"description": "Hour of day as a number between 0 and 23, inclusive.", +"format": "int32", +"type": "integer" +}, +"keyword": { +"$ref": "GoogleAdsSearchads360V0Common__Keyword", +"description": "Keyword criterion." +}, +"month": { +"description": "Month as represented by the date of the first day of a month. Formatted as yyyy-MM-dd.", +"type": "string" +}, +"productBiddingCategoryLevel1": { +"description": "Bidding category (level 1) of the product.", +"type": "string" +}, +"productBiddingCategoryLevel2": { +"description": "Bidding category (level 2) of the product.", +"type": "string" +}, +"productBiddingCategoryLevel3": { +"description": "Bidding category (level 3) of the product.", +"type": "string" +}, +"productBiddingCategoryLevel4": { +"description": "Bidding category (level 4) of the product.", +"type": "string" +}, +"productBiddingCategoryLevel5": { +"description": "Bidding category (level 5) of the product.", +"type": "string" +}, +"productBrand": { +"description": "Brand of the product.", +"type": "string" +}, +"productChannel": { +"description": "Channel of the product.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"ONLINE", +"LOCAL" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"The item is sold online.", +"The item is sold in local stores." +], +"type": "string" +}, +"productChannelExclusivity": { +"description": "Channel exclusivity of the product.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"SINGLE_CHANNEL", +"MULTI_CHANNEL" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"The item is sold through one channel only, either local stores or online as indicated by its ProductChannel.", +"The item is matched to its online or local stores counterpart, indicating it is available for purchase in both ShoppingProductChannels." +], +"type": "string" +}, +"productCondition": { +"description": "Condition of the product.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"OLD", +"NEW", +"REFURBISHED", +"USED" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"The product condition is old.", +"The product condition is new.", +"The product condition is refurbished.", +"The product condition is used." +], +"type": "string" +}, +"productCountry": { +"description": "Resource name of the geo target constant for the country of sale of the product.", +"type": "string" +}, +"productCustomAttribute0": { +"description": "Custom attribute 0 of the product.", +"type": "string" +}, +"productCustomAttribute1": { +"description": "Custom attribute 1 of the product.", +"type": "string" +}, +"productCustomAttribute2": { +"description": "Custom attribute 2 of the product.", +"type": "string" +}, +"productCustomAttribute3": { +"description": "Custom attribute 3 of the product.", +"type": "string" +}, +"productCustomAttribute4": { +"description": "Custom attribute 4 of the product.", +"type": "string" +}, +"productItemId": { +"description": "Item ID of the product.", +"type": "string" +}, +"productLanguage": { +"description": "Resource name of the language constant for the language of the product.", +"type": "string" +}, +"productSoldBiddingCategoryLevel1": { +"description": "Bidding category (level 1) of the product sold.", +"type": "string" +}, +"productSoldBiddingCategoryLevel2": { +"description": "Bidding category (level 2) of the product sold.", +"type": "string" +}, +"productSoldBiddingCategoryLevel3": { +"description": "Bidding category (level 3) of the product sold.", +"type": "string" +}, +"productSoldBiddingCategoryLevel4": { +"description": "Bidding category (level 4) of the product sold.", +"type": "string" +}, +"productSoldBiddingCategoryLevel5": { +"description": "Bidding category (level 5) of the product sold.", +"type": "string" +}, +"productSoldBrand": { +"description": "Brand of the product sold.", +"type": "string" +}, +"productSoldCondition": { +"description": "Condition of the product sold.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"OLD", +"NEW", +"REFURBISHED", +"USED" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"The product condition is old.", +"The product condition is new.", +"The product condition is refurbished.", +"The product condition is used." +], +"type": "string" +}, +"productSoldCustomAttribute0": { +"description": "Custom attribute 0 of the product sold.", +"type": "string" +}, +"productSoldCustomAttribute1": { +"description": "Custom attribute 1 of the product sold.", +"type": "string" +}, +"productSoldCustomAttribute2": { +"description": "Custom attribute 2 of the product sold.", +"type": "string" +}, +"productSoldCustomAttribute3": { +"description": "Custom attribute 3 of the product sold.", +"type": "string" +}, +"productSoldCustomAttribute4": { +"description": "Custom attribute 4 of the product sold.", +"type": "string" +}, +"productSoldItemId": { +"description": "Item ID of the product sold.", +"type": "string" +}, +"productSoldTitle": { +"description": "Title of the product sold.", +"type": "string" +}, +"productSoldTypeL1": { +"description": "Type (level 1) of the product sold.", +"type": "string" +}, +"productSoldTypeL2": { +"description": "Type (level 2) of the product sold.", +"type": "string" +}, +"productSoldTypeL3": { +"description": "Type (level 3) of the product sold.", +"type": "string" +}, +"productSoldTypeL4": { +"description": "Type (level 4) of the product sold.", +"type": "string" +}, +"productSoldTypeL5": { +"description": "Type (level 5) of the product sold.", +"type": "string" +}, +"productStoreId": { +"description": "Store ID of the product.", +"type": "string" +}, +"productTitle": { +"description": "Title of the product.", +"type": "string" +}, +"productTypeL1": { +"description": "Type (level 1) of the product.", +"type": "string" +}, +"productTypeL2": { +"description": "Type (level 2) of the product.", +"type": "string" +}, +"productTypeL3": { +"description": "Type (level 3) of the product.", +"type": "string" +}, +"productTypeL4": { +"description": "Type (level 4) of the product.", +"type": "string" +}, +"productTypeL5": { +"description": "Type (level 5) of the product.", +"type": "string" +}, +"quarter": { +"description": "Quarter as represented by the date of the first day of a quarter. Uses the calendar year for quarters, for example, the second quarter of 2018 starts on 2018-04-01. Formatted as yyyy-MM-dd.", +"type": "string" +}, +"rawEventConversionDimensions": { +"description": "The raw event conversion dimensions.", +"items": { +"$ref": "GoogleAdsSearchads360V0Common__Value" +}, +"type": "array" +}, +"week": { +"description": "Week as defined as Monday through Sunday, and represented by the date of Monday. Formatted as yyyy-MM-dd.", +"type": "string" +}, +"year": { +"description": "Year, formatted as yyyy.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Common__TargetCpa": { +"description": "An automated bid strategy that sets bids to help get as many conversions as possible at the target cost-per-acquisition (CPA) you set.", +"id": "GoogleAdsSearchads360V0Common__TargetCpa", +"properties": { +"cpcBidCeilingMicros": { +"description": "Maximum bid limit that can be set by the bid strategy. The limit applies to all keywords managed by the strategy. This should only be set for portfolio bid strategies.", +"format": "int64", +"type": "string" +}, +"cpcBidFloorMicros": { +"description": "Minimum bid limit that can be set by the bid strategy. The limit applies to all keywords managed by the strategy. This should only be set for portfolio bid strategies.", +"format": "int64", +"type": "string" +}, +"targetCpaMicros": { +"description": "Average CPA target. This target should be greater than or equal to minimum billable unit based on the currency for the account.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Common__TargetCpm": { +"description": "Target CPM (cost per thousand impressions) is an automated bidding strategy that sets bids to optimize performance given the target CPM you set.", +"id": "GoogleAdsSearchads360V0Common__TargetCpm", +"properties": {}, +"type": "object" +}, +"GoogleAdsSearchads360V0Common__TargetImpressionShare": { +"description": "An automated bidding strategy that sets bids so that a certain percentage of search ads are shown at the top of the first page (or other targeted location).", +"id": "GoogleAdsSearchads360V0Common__TargetImpressionShare", +"properties": { +"cpcBidCeilingMicros": { +"description": "The highest CPC bid the automated bidding system is permitted to specify. This is a required field entered by the advertiser that sets the ceiling and specified in local micros.", +"format": "int64", +"type": "string" +}, +"location": { +"description": "The targeted location on the search results page.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"ANYWHERE_ON_PAGE", +"TOP_OF_PAGE", +"ABSOLUTE_TOP_OF_PAGE" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"Any location on the web page.", +"Top box of ads.", +"Top slot in the top box of ads." +], +"type": "string" +}, +"locationFractionMicros": { +"description": "The chosen fraction of ads to be shown in the targeted location in micros. For example, 1% equals 10,000.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Common__TargetOutrankShare": { +"description": "An automated bidding strategy that sets bids based on the target fraction of auctions where the advertiser should outrank a specific competitor. This strategy is deprecated.", +"id": "GoogleAdsSearchads360V0Common__TargetOutrankShare", +"properties": { +"cpcBidCeilingMicros": { +"description": "Maximum bid limit that can be set by the bid strategy. The limit applies to all keywords managed by the strategy.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Common__TargetRestriction": { +"description": "The list of per-targeting-dimension targeting settings.", +"id": "GoogleAdsSearchads360V0Common__TargetRestriction", +"properties": { +"bidOnly": { +"description": "Indicates whether to restrict your ads to show only for the criteria you have selected for this targeting_dimension, or to target all values for this targeting_dimension and show ads based on your targeting in other TargetingDimensions. A value of `true` means that these criteria will only apply bid modifiers, and not affect targeting. A value of `false` means that these criteria will restrict targeting as well as applying bid modifiers.", +"type": "boolean" +}, +"targetingDimension": { +"description": "The targeting dimension that these settings apply to.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"KEYWORD", +"AUDIENCE", +"TOPIC", +"GENDER", +"AGE_RANGE", +"PLACEMENT", +"PARENTAL_STATUS", +"INCOME_RANGE" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"Keyword criteria, for example, 'mars cruise'. KEYWORD may be used as a custom bid dimension. Keywords are always a targeting dimension, so may not be set as a target \"ALL\" dimension with TargetRestriction.", +"Audience criteria, which include user list, user interest, custom affinity, and custom in market.", +"Topic criteria for targeting categories of content, for example, 'category::Animals>Pets' Used for Display and Video targeting.", +"Criteria for targeting gender.", +"Criteria for targeting age ranges.", +"Placement criteria, which include websites like 'www.flowers4sale.com', as well as mobile applications, mobile app categories, YouTube videos, and YouTube channels.", +"Criteria for parental status targeting.", +"Criteria for income range targeting." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Common__TargetRoas": { +"description": "An automated bidding strategy that helps you maximize revenue while averaging a specific target return on ad spend (ROAS).", +"id": "GoogleAdsSearchads360V0Common__TargetRoas", +"properties": { +"cpcBidCeilingMicros": { +"description": "Maximum bid limit that can be set by the bid strategy. The limit applies to all keywords managed by the strategy. This should only be set for portfolio bid strategies.", +"format": "int64", +"type": "string" +}, +"cpcBidFloorMicros": { +"description": "Minimum bid limit that can be set by the bid strategy. The limit applies to all keywords managed by the strategy. This should only be set for portfolio bid strategies.", +"format": "int64", +"type": "string" +}, +"targetRoas": { +"description": "Required. The chosen revenue (based on conversion data) per unit of spend. Value must be between 0.01 and 1000.0, inclusive.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Common__TargetSpend": { +"description": "An automated bid strategy that sets your bids to help get as many clicks as possible within your budget.", +"id": "GoogleAdsSearchads360V0Common__TargetSpend", +"properties": { +"cpcBidCeilingMicros": { +"description": "Maximum bid limit that can be set by the bid strategy. The limit applies to all keywords managed by the strategy.", +"format": "int64", +"type": "string" +}, +"targetSpendMicros": { +"deprecated": true, +"description": "Deprecated: The spend target under which to maximize clicks. A TargetSpend bidder will attempt to spend the smaller of this value or the natural throttling spend amount. If not specified, the budget is used as the spend target. This field is deprecated and should no longer be used. See https://ads-developers.googleblog.com/2020/05/reminder-about-sunset-creation-of.html for details.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Common__TargetingSetting": { +"description": "Settings for the targeting-related features, at the campaign and ad group levels. For more details about the targeting setting, visit https://support.google.com/google-ads/answer/7365594", +"id": "GoogleAdsSearchads360V0Common__TargetingSetting", +"properties": { +"targetRestrictions": { +"description": "The per-targeting-dimension setting to restrict the reach of your campaign or ad group.", +"items": { +"$ref": "GoogleAdsSearchads360V0Common__TargetRestriction" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Common__TextAsset": { +"description": "A Text asset.", +"id": "GoogleAdsSearchads360V0Common__TextAsset", +"properties": { +"text": { +"description": "Text content of the text asset.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Common__TextLabel": { +"description": "A type of label displaying text on a colored background.", +"id": "GoogleAdsSearchads360V0Common__TextLabel", +"properties": { +"backgroundColor": { +"description": "Background color of the label in HEX format. This string must match the regular expression '^\\#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$'. Note: The background color may not be visible for manager accounts.", +"type": "string" +}, +"description": { +"description": "A short description of the label. The length must be no more than 200 characters.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Common__UnifiedCallAsset": { +"description": "A unified call asset.", +"id": "GoogleAdsSearchads360V0Common__UnifiedCallAsset", +"properties": { +"adScheduleTargets": { +"description": "List of non-overlapping schedules specifying all time intervals for which the asset may serve. There can be a maximum of 6 schedules per day, 42 in total.", +"items": { +"$ref": "GoogleAdsSearchads360V0Common__AdScheduleInfo" +}, +"type": "array" +}, +"callConversionAction": { +"description": "The conversion action to attribute a call conversion to. If not set, the default conversion action is used. This field only has effect if call_conversion_reporting_state is set to USE_RESOURCE_LEVEL_CALL_CONVERSION_ACTION.", +"type": "string" +}, +"callConversionReportingState": { +"description": "Output only. Indicates whether this CallAsset should use its own call conversion setting, follow the account level setting, or disable call conversion.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"DISABLED", +"USE_ACCOUNT_LEVEL_CALL_CONVERSION_ACTION", +"USE_RESOURCE_LEVEL_CALL_CONVERSION_ACTION" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"Call conversion action is disabled.", +"Call conversion action will use call conversion type set at the account level.", +"Call conversion action will use call conversion type set at the resource (call only ads/call extensions) level." +], +"readOnly": true, +"type": "string" +}, +"callOnly": { +"description": "Whether the call only shows the phone number without a link to the website. Applies to Microsoft Ads.", +"type": "boolean" +}, +"callTrackingEnabled": { +"description": "Whether the call should be enabled on call tracking. Applies to Microsoft Ads.", +"type": "boolean" +}, +"countryCode": { +"description": "Two-letter country code of the phone number. Examples: 'US', 'us'.", +"type": "string" +}, +"endDate": { +"description": "Last date of when this asset is effective and still serving, in yyyy-MM-dd format.", +"type": "string" +}, +"phoneNumber": { +"description": "The advertiser's raw phone number. Examples: '1234567890', '(123)456-7890'", +"type": "string" +}, +"startDate": { +"description": "Start date of when this asset is effective and can begin serving, in yyyy-MM-dd format.", +"type": "string" +}, +"useSearcherTimeZone": { +"description": "Whether to show the call extension in search user's time zone. Applies to Microsoft Ads.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Common__UnifiedCalloutAsset": { +"description": "A unified callout asset.", +"id": "GoogleAdsSearchads360V0Common__UnifiedCalloutAsset", +"properties": { +"adScheduleTargets": { +"description": "List of non-overlapping schedules specifying all time intervals for which the asset may serve. There can be a maximum of 6 schedules per day, 42 in total.", +"items": { +"$ref": "GoogleAdsSearchads360V0Common__AdScheduleInfo" +}, +"type": "array" +}, +"calloutText": { +"description": "The callout text. The length of this string should be between 1 and 25, inclusive.", +"type": "string" +}, +"endDate": { +"description": "Last date of when this asset is effective and still serving, in yyyy-MM-dd format.", +"type": "string" +}, +"startDate": { +"description": "Start date of when this asset is effective and can begin serving, in yyyy-MM-dd format.", +"type": "string" +}, +"useSearcherTimeZone": { +"description": "Whether to show the asset in search user's time zone. Applies to Microsoft Ads.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Common__UnifiedLocationAsset": { +"description": "A unified location asset.", +"id": "GoogleAdsSearchads360V0Common__UnifiedLocationAsset", +"properties": { +"businessProfileLocations": { +"description": "The list of business locations for the customer. This will only be returned if the Location Asset is syncing from the Business Profile account. It is possible to have multiple Business Profile listings under the same account that point to the same Place ID.", +"items": { +"$ref": "GoogleAdsSearchads360V0Common__BusinessProfileLocation" +}, +"type": "array" +}, +"locationOwnershipType": { +"description": "The type of location ownership. If the type is BUSINESS_OWNER, it will be served as a location extension. If the type is AFFILIATE, it will be served as an affiliate location.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"BUSINESS_OWNER", +"AFFILIATE" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"Business Owner of location(legacy location extension - LE).", +"Affiliate location(Third party location extension - ALE)." +], +"type": "string" +}, +"placeId": { +"description": "Place IDs uniquely identify a place in the Google Places database and on Google Maps. This field is unique for a given customer ID and asset type. See https://developers.google.com/places/web-service/place-id to learn more about Place ID.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Common__UnifiedPageFeedAsset": { +"description": "A Unified Page Feed asset.", +"id": "GoogleAdsSearchads360V0Common__UnifiedPageFeedAsset", +"properties": { +"labels": { +"description": "Labels used to group the page urls.", +"items": { +"type": "string" +}, +"type": "array" +}, +"pageUrl": { +"description": "The webpage that advertisers want to target.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Common__UnifiedSitelinkAsset": { +"description": "A unified sitelink asset.", +"id": "GoogleAdsSearchads360V0Common__UnifiedSitelinkAsset", +"properties": { +"adScheduleTargets": { +"description": "List of non-overlapping schedules specifying all time intervals for which the asset may serve. There can be a maximum of 6 schedules per day, 42 in total.", +"items": { +"$ref": "GoogleAdsSearchads360V0Common__AdScheduleInfo" +}, +"type": "array" +}, +"description1": { +"description": "First line of the description for the sitelink. If set, the length should be between 1 and 35, inclusive, and description2 must also be set.", +"type": "string" +}, +"description2": { +"description": "Second line of the description for the sitelink. If set, the length should be between 1 and 35, inclusive, and description1 must also be set.", +"type": "string" +}, +"endDate": { +"description": "Last date of when this asset is effective and still serving, in yyyy-MM-dd format.", +"type": "string" +}, +"linkText": { +"description": "URL display text for the sitelink. The length of this string should be between 1 and 25, inclusive.", +"type": "string" +}, +"mobilePreferred": { +"description": "Whether the preference is for the sitelink asset to be displayed on mobile devices. Applies to Microsoft Ads.", +"type": "boolean" +}, +"startDate": { +"description": "Start date of when this asset is effective and can begin serving, in yyyy-MM-dd format.", +"type": "string" +}, +"trackingId": { +"description": "ID used for tracking clicks for the sitelink asset. This is a Yahoo! Japan only field.", +"format": "int64", +"type": "string" +}, +"useSearcherTimeZone": { +"description": "Whether to show the sitelink asset in search user's time zone. Applies to Microsoft Ads.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Common__UserListInfo": { +"description": "A User List criterion. Represents a user list that is defined by the advertiser to be targeted.", +"id": "GoogleAdsSearchads360V0Common__UserListInfo", +"properties": { +"userList": { +"description": "The User List resource name.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Common__Value": { +"description": "A generic data container.", +"id": "GoogleAdsSearchads360V0Common__Value", +"properties": { +"booleanValue": { +"description": "A boolean.", +"type": "boolean" +}, +"doubleValue": { +"description": "A double.", +"format": "double", +"type": "number" +}, +"floatValue": { +"description": "A float.", +"format": "float", +"type": "number" +}, +"int64Value": { +"description": "An int64.", +"format": "int64", +"type": "string" +}, +"stringValue": { +"description": "A string.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Common__WebpageConditionInfo": { +"description": "Logical expression for targeting webpages of an advertiser's website.", +"id": "GoogleAdsSearchads360V0Common__WebpageConditionInfo", +"properties": { +"argument": { +"description": "Argument of webpage targeting condition.", +"type": "string" +}, +"operand": { +"description": "Operand of webpage targeting condition.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"URL", +"CATEGORY", +"PAGE_TITLE", +"PAGE_CONTENT", +"CUSTOM_LABEL" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"Operand denoting a webpage URL targeting condition.", +"Operand denoting a webpage category targeting condition.", +"Operand denoting a webpage title targeting condition.", +"Operand denoting a webpage content targeting condition.", +"Operand denoting a webpage custom label targeting condition." +], +"type": "string" +}, +"operator": { +"description": "Operator of webpage targeting condition.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"EQUALS", +"CONTAINS" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"The argument web condition is equal to the compared web condition.", +"The argument web condition is part of the compared web condition." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Common__WebpageInfo": { +"description": "Represents a criterion for targeting webpages of an advertiser's website.", +"id": "GoogleAdsSearchads360V0Common__WebpageInfo", +"properties": { +"conditions": { +"description": "Conditions, or logical expressions, for webpage targeting. The list of webpage targeting conditions are and-ed together when evaluated for targeting. An empty list of conditions indicates all pages of the campaign's website are targeted. This field is required for CREATE operations and is prohibited on UPDATE operations.", +"items": { +"$ref": "GoogleAdsSearchads360V0Common__WebpageConditionInfo" +}, +"type": "array" +}, +"coveragePercentage": { +"description": "Website criteria coverage percentage. This is the computed percentage of website coverage based on the website target, negative website target and negative keywords in the ad group and campaign. For instance, when coverage returns as 1, it indicates it has 100% coverage. This field is read-only.", +"format": "double", +"type": "number" +}, +"criterionName": { +"description": "The name of the criterion that is defined by this parameter. The name value will be used for identifying, sorting and filtering criteria with this type of parameters. This field is required for CREATE operations and is prohibited on UPDATE operations.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Common__YoutubeVideoAsset": { +"description": "A YouTube asset.", +"id": "GoogleAdsSearchads360V0Common__YoutubeVideoAsset", +"properties": { +"youtubeVideoId": { +"description": "YouTube video id. This is the 11 character string value used in the YouTube video URL.", +"type": "string" +}, +"youtubeVideoTitle": { +"description": "YouTube video title.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Errors_ErrorLocation_FieldPathElement": { +"description": "A part of a field path.", +"id": "GoogleAdsSearchads360V0Errors_ErrorLocation_FieldPathElement", +"properties": { +"fieldName": { +"description": "The name of a field or a oneof", +"type": "string" +}, +"index": { +"description": "If field_name is a repeated field, this is the element that failed", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Errors__ErrorCode": { +"description": "The error reason represented by type and enum.", +"id": "GoogleAdsSearchads360V0Errors__ErrorCode", +"properties": { +"authenticationError": { +"description": "Indicates failure to properly authenticate user.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"AUTHENTICATION_ERROR", +"CLIENT_CUSTOMER_ID_INVALID", +"CUSTOMER_NOT_FOUND", +"GOOGLE_ACCOUNT_DELETED", +"GOOGLE_ACCOUNT_COOKIE_INVALID", +"GOOGLE_ACCOUNT_AUTHENTICATION_FAILED", +"GOOGLE_ACCOUNT_USER_AND_ADS_USER_MISMATCH", +"LOGIN_COOKIE_REQUIRED", +"NOT_ADS_USER", +"OAUTH_TOKEN_INVALID", +"OAUTH_TOKEN_EXPIRED", +"OAUTH_TOKEN_DISABLED", +"OAUTH_TOKEN_REVOKED", +"OAUTH_TOKEN_HEADER_INVALID", +"LOGIN_COOKIE_INVALID", +"USER_ID_INVALID", +"TWO_STEP_VERIFICATION_NOT_ENROLLED", +"ADVANCED_PROTECTION_NOT_ENROLLED" +], +"enumDescriptions": [ +"Enum unspecified.", +"The received error code is not known in this version.", +"Authentication of the request failed.", +"Client customer ID is not a number.", +"No customer found for the provided customer ID.", +"Client's Google account is deleted.", +"Account login token in the cookie is invalid.", +"A problem occurred during Google account authentication.", +"The user in the Google account login token does not match the user ID in the cookie.", +"Login cookie is required for authentication.", +"The Google account that generated the OAuth access token is not associated with a Search Ads 360 account. Create a new account, or add the Google account to an existing Search Ads 360 account.", +"OAuth token in the header is not valid.", +"OAuth token in the header has expired.", +"OAuth token in the header has been disabled.", +"OAuth token in the header has been revoked.", +"OAuth token HTTP header is malformed.", +"Login cookie is not valid.", +"User ID in the header is not a valid ID.", +"An account administrator changed this account's authentication settings. To access this account, enable 2-Step Verification in your Google account at https://www.google.com/landing/2step.", +"An account administrator changed this account's authentication settings. To access this account, enable Advanced Protection in your Google account at https://landing.google.com/advancedprotection." +], +"type": "string" +}, +"authorizationError": { +"description": "An error encountered when trying to authorize a user.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"USER_PERMISSION_DENIED", +"PROJECT_DISABLED", +"AUTHORIZATION_ERROR", +"ACTION_NOT_PERMITTED", +"INCOMPLETE_SIGNUP", +"CUSTOMER_NOT_ENABLED", +"MISSING_TOS", +"INVALID_LOGIN_CUSTOMER_ID_SERVING_CUSTOMER_ID_COMBINATION", +"SERVICE_ACCESS_DENIED", +"ACCESS_DENIED_FOR_ACCOUNT_TYPE", +"METRIC_ACCESS_DENIED" +], +"enumDescriptions": [ +"Enum unspecified.", +"The received error code is not known in this version.", +"User doesn't have permission to access customer. Note: If you're accessing a client customer, the manager's customer ID must be set in the `login-customer-id` header. Learn more at https://developers.google.com/search-ads/reporting/concepts/call-structure#login_customer_id_header", +"The Google Cloud project sent in the request does not have permission to access the api.", +"Authorization of the client failed.", +"The user does not have permission to perform this action (for example, ADD, UPDATE, REMOVE) on the resource or call a method.", +"Signup not complete.", +"The customer account can't be accessed because it is not yet enabled or has been deactivated.", +"The developer must sign the terms of service. They can be found here: https://developers.google.com/terms", +"The login customer specified does not have access to the account specified, so the request is invalid.", +"The developer specified does not have access to the service.", +"The customer (or login customer) isn't allowed in Search Ads 360 API. It belongs to another ads system.", +"The developer does not have access to the metrics queried." +], +"type": "string" +}, +"customColumnError": { +"description": "The reasons for the custom column error", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"CUSTOM_COLUMN_NOT_FOUND", +"CUSTOM_COLUMN_NOT_AVAILABLE" +], +"enumDescriptions": [ +"Enum unspecified.", +"The received error code is not known in this version.", +"The custom column has not been found.", +"The custom column is not available." +], +"type": "string" +}, +"dateError": { +"description": "The reasons for the date error", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"INVALID_FIELD_VALUES_IN_DATE", +"INVALID_FIELD_VALUES_IN_DATE_TIME", +"INVALID_STRING_DATE", +"INVALID_STRING_DATE_TIME_MICROS", +"INVALID_STRING_DATE_TIME_SECONDS", +"INVALID_STRING_DATE_TIME_SECONDS_WITH_OFFSET", +"EARLIER_THAN_MINIMUM_DATE", +"LATER_THAN_MAXIMUM_DATE", +"DATE_RANGE_MINIMUM_DATE_LATER_THAN_MAXIMUM_DATE", +"DATE_RANGE_MINIMUM_AND_MAXIMUM_DATES_BOTH_NULL" +], +"enumDescriptions": [ +"Enum unspecified.", +"The received error code is not known in this version.", +"Given field values do not correspond to a valid date.", +"Given field values do not correspond to a valid date time.", +"The string date's format should be yyyy-mm-dd.", +"The string date time's format should be yyyy-mm-dd hh:mm:ss.ssssss.", +"The string date time's format should be yyyy-mm-dd hh:mm:ss.", +"The string date time's format should be yyyy-mm-dd hh:mm:ss+|-hh:mm.", +"Date is before allowed minimum.", +"Date is after allowed maximum.", +"Date range bounds are not in order.", +"Both dates in range are null." +], +"type": "string" +}, +"dateRangeError": { +"description": "The reasons for the date range error", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"INVALID_DATE", +"START_DATE_AFTER_END_DATE", +"CANNOT_SET_DATE_TO_PAST", +"AFTER_MAXIMUM_ALLOWABLE_DATE", +"CANNOT_MODIFY_START_DATE_IF_ALREADY_STARTED" +], +"enumDescriptions": [ +"Enum unspecified.", +"The received error code is not known in this version.", +"Invalid date.", +"The start date was after the end date.", +"Cannot set date to past time", +"A date was used that is past the system \"last\" date.", +"Trying to change start date on a resource that has started." +], +"type": "string" +}, +"distinctError": { +"description": "The reasons for the distinct error", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"DUPLICATE_ELEMENT", +"DUPLICATE_TYPE" +], +"enumDescriptions": [ +"Enum unspecified.", +"The received error code is not known in this version.", +"Duplicate element.", +"Duplicate type." +], +"type": "string" +}, +"headerError": { +"description": "The reasons for the header error.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"INVALID_USER_SELECTED_CUSTOMER_ID", +"INVALID_LOGIN_CUSTOMER_ID" +], +"enumDescriptions": [ +"Enum unspecified.", +"The received error code is not known in this version.", +"The user selected customer ID could not be validated.", +"The login customer ID could not be validated." +], +"type": "string" +}, +"internalError": { +"description": "An unexpected server-side error.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"INTERNAL_ERROR", +"ERROR_CODE_NOT_PUBLISHED", +"TRANSIENT_ERROR", +"DEADLINE_EXCEEDED" +], +"enumDescriptions": [ +"Enum unspecified.", +"The received error code is not known in this version.", +"API encountered unexpected internal error.", +"The intended error code doesn't exist in specified API version. It will be released in a future API version.", +"API encountered an unexpected transient error. The user should retry their request in these cases.", +"The request took longer than a deadline." +], +"type": "string" +}, +"invalidParameterError": { +"description": "The reasons for invalid parameter errors.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"INVALID_CURRENCY_CODE" +], +"enumDescriptions": [ +"Enum unspecified.", +"The received error code is not known in this version.", +"The specified currency code is invalid." +], +"type": "string" +}, +"queryError": { +"description": "An error with the query", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"QUERY_ERROR", +"BAD_ENUM_CONSTANT", +"BAD_ESCAPE_SEQUENCE", +"BAD_FIELD_NAME", +"BAD_LIMIT_VALUE", +"BAD_NUMBER", +"BAD_OPERATOR", +"BAD_PARAMETER_NAME", +"BAD_PARAMETER_VALUE", +"BAD_RESOURCE_TYPE_IN_FROM_CLAUSE", +"BAD_SYMBOL", +"BAD_VALUE", +"DATE_RANGE_TOO_WIDE", +"DATE_RANGE_TOO_NARROW", +"EXPECTED_AND", +"EXPECTED_BY", +"EXPECTED_DIMENSION_FIELD_IN_SELECT_CLAUSE", +"EXPECTED_FILTERS_ON_DATE_RANGE", +"EXPECTED_FROM", +"EXPECTED_LIST", +"EXPECTED_REFERENCED_FIELD_IN_SELECT_CLAUSE", +"EXPECTED_SELECT", +"EXPECTED_SINGLE_VALUE", +"EXPECTED_VALUE_WITH_BETWEEN_OPERATOR", +"INVALID_DATE_FORMAT", +"MISALIGNED_DATE_FOR_FILTER", +"INVALID_STRING_VALUE", +"INVALID_VALUE_WITH_BETWEEN_OPERATOR", +"INVALID_VALUE_WITH_DURING_OPERATOR", +"INVALID_VALUE_WITH_LIKE_OPERATOR", +"OPERATOR_FIELD_MISMATCH", +"PROHIBITED_EMPTY_LIST_IN_CONDITION", +"PROHIBITED_ENUM_CONSTANT", +"PROHIBITED_FIELD_COMBINATION_IN_SELECT_CLAUSE", +"PROHIBITED_FIELD_IN_ORDER_BY_CLAUSE", +"PROHIBITED_FIELD_IN_SELECT_CLAUSE", +"PROHIBITED_FIELD_IN_WHERE_CLAUSE", +"PROHIBITED_RESOURCE_TYPE_IN_FROM_CLAUSE", +"PROHIBITED_RESOURCE_TYPE_IN_SELECT_CLAUSE", +"PROHIBITED_RESOURCE_TYPE_IN_WHERE_CLAUSE", +"PROHIBITED_METRIC_IN_SELECT_OR_WHERE_CLAUSE", +"PROHIBITED_SEGMENT_IN_SELECT_OR_WHERE_CLAUSE", +"PROHIBITED_SEGMENT_WITH_METRIC_IN_SELECT_OR_WHERE_CLAUSE", +"LIMIT_VALUE_TOO_LOW", +"PROHIBITED_NEWLINE_IN_STRING", +"PROHIBITED_VALUE_COMBINATION_IN_LIST", +"PROHIBITED_VALUE_COMBINATION_WITH_BETWEEN_OPERATOR", +"STRING_NOT_TERMINATED", +"TOO_MANY_SEGMENTS", +"UNEXPECTED_END_OF_QUERY", +"UNEXPECTED_FROM_CLAUSE", +"UNRECOGNIZED_FIELD", +"UNEXPECTED_INPUT", +"REQUESTED_METRICS_FOR_MANAGER", +"FILTER_HAS_TOO_MANY_VALUES" +], +"enumDescriptions": [ +"Name unspecified.", +"The received error code is not known in this version.", +"Returned if all other query error reasons are not applicable.", +"A condition used in the query references an invalid enum constant.", +"Query contains an invalid escape sequence.", +"Field name is invalid.", +"Limit value is invalid (for example, not a number)", +"Encountered number can not be parsed.", +"Invalid operator encountered.", +"Parameter unknown or not supported.", +"Parameter have invalid value.", +"Invalid resource type was specified in the FROM clause.", +"Non-ASCII symbol encountered outside of strings.", +"Value is invalid.", +"Date filters fail to restrict date to a range smaller than 31 days. Applicable if the query is segmented by date.", +"Filters on date/week/month/quarter have a start date after end date.", +"Expected AND between values with BETWEEN operator.", +"Expecting ORDER BY to have BY.", +"There was no dimension field selected.", +"Missing filters on date related fields.", +"Missing FROM clause.", +"The operator used in the conditions requires the value to be a list.", +"Fields used in WHERE or ORDER BY clauses are missing from the SELECT clause.", +"SELECT is missing at the beginning of query.", +"A list was passed as a value to a condition whose operator expects a single value.", +"Missing one or both values with BETWEEN operator.", +"Invalid date format. Expected 'YYYY-MM-DD'.", +"Misaligned date value for the filter. The date should be the start of a week/month/quarter if the filtered field is segments.week/segments.month/segments.quarter.", +"Value passed was not a string when it should have been. For example, it was a number or unquoted literal.", +"A String value passed to the BETWEEN operator does not parse as a date.", +"The value passed to the DURING operator is not a Date range literal", +"A value was passed to the LIKE operator.", +"An operator was provided that is inapplicable to the field being filtered.", +"A Condition was found with an empty list.", +"A condition used in the query references an unsupported enum constant.", +"Fields that are not allowed to be selected together were included in the SELECT clause.", +"A field that is not orderable was included in the ORDER BY clause.", +"A field that is not selectable was included in the SELECT clause.", +"A field that is not filterable was included in the WHERE clause.", +"Resource type specified in the FROM clause is not supported by this service.", +"A field that comes from an incompatible resource was included in the SELECT clause.", +"A field that comes from an incompatible resource was included in the WHERE clause.", +"A metric incompatible with the main resource or other selected segmenting resources was included in the SELECT or WHERE clause.", +"A segment incompatible with the main resource or other selected segmenting resources was included in the SELECT or WHERE clause.", +"A segment in the SELECT clause is incompatible with a metric in the SELECT or WHERE clause.", +"The value passed to the limit clause is too low.", +"Query has a string containing a newline character.", +"List contains values of different types.", +"The values passed to the BETWEEN operator are not of the same type.", +"Query contains unterminated string.", +"Too many segments are specified in SELECT clause.", +"Query is incomplete and cannot be parsed.", +"FROM clause cannot be specified in this query.", +"Query contains one or more unrecognized fields.", +"Query has an unexpected extra part.", +"Metrics cannot be requested for a manager account. To retrieve metrics, issue separate requests against each client account under the manager account.", +"The number of values (right-hand-side operands) in a filter exceeds the limit." +], +"type": "string" +}, +"quotaError": { +"description": "An error with the amount of quota remaining.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"RESOURCE_EXHAUSTED", +"RESOURCE_TEMPORARILY_EXHAUSTED" +], +"enumDescriptions": [ +"Enum unspecified.", +"The received error code is not known in this version.", +"Too many requests.", +"Too many requests in a short amount of time." +], +"type": "string" +}, +"requestError": { +"description": "An error caused by the request", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"RESOURCE_NAME_MISSING", +"RESOURCE_NAME_MALFORMED", +"BAD_RESOURCE_ID", +"INVALID_PRODUCT_NAME", +"INVALID_CUSTOMER_ID", +"OPERATION_REQUIRED", +"RESOURCE_NOT_FOUND", +"INVALID_PAGE_TOKEN", +"EXPIRED_PAGE_TOKEN", +"INVALID_PAGE_SIZE", +"REQUIRED_FIELD_MISSING", +"IMMUTABLE_FIELD", +"TOO_MANY_MUTATE_OPERATIONS", +"CANNOT_BE_EXECUTED_BY_MANAGER_ACCOUNT", +"CANNOT_MODIFY_FOREIGN_FIELD", +"INVALID_ENUM_VALUE", +"LOGIN_CUSTOMER_ID_PARAMETER_MISSING", +"LOGIN_OR_LINKED_CUSTOMER_ID_PARAMETER_REQUIRED", +"VALIDATE_ONLY_REQUEST_HAS_PAGE_TOKEN", +"CANNOT_RETURN_SUMMARY_ROW_FOR_REQUEST_WITHOUT_METRICS", +"CANNOT_RETURN_SUMMARY_ROW_FOR_VALIDATE_ONLY_REQUESTS", +"INCONSISTENT_RETURN_SUMMARY_ROW_VALUE", +"TOTAL_RESULTS_COUNT_NOT_ORIGINALLY_REQUESTED", +"RPC_DEADLINE_TOO_SHORT", +"PRODUCT_NOT_SUPPORTED" +], +"enumDescriptions": [ +"Enum unspecified.", +"The received error code is not known in this version.", +"Resource name is required for this request.", +"Resource name provided is malformed.", +"Resource name provided is malformed.", +"Product name is invalid.", +"Customer ID is invalid.", +"Mutate operation should have either create, update, or remove specified.", +"Requested resource not found.", +"Next page token specified in user request is invalid.", +"Next page token specified in user request has expired.", +"Page size specified in user request is invalid.", +"Required field is missing.", +"The field cannot be modified because it's immutable. It's also possible that the field can be modified using 'create' operation but not 'update'.", +"Received too many entries in request.", +"Request cannot be executed by a manager account.", +"Mutate request was attempting to modify a readonly field. For instance, Budget fields can be requested for Ad Group, but are read-only for adGroups:mutate.", +"Enum value is not permitted.", +"The login-customer-id parameter is required for this request.", +"Either login-customer-id or linked-customer-id parameter is required for this request.", +"page_token is set in the validate only request", +"return_summary_row cannot be enabled if request did not select any metrics field.", +"return_summary_row should not be enabled for validate only requests.", +"return_summary_row parameter value should be the same between requests with page_token field set and their original request.", +"The total results count cannot be returned if it was not requested in the original request.", +"Deadline specified by the client was too short.", +"The product associated with the request is not supported for the current request." +], +"type": "string" +}, +"sizeLimitError": { +"description": "The reasons for the size limit error", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"REQUEST_SIZE_LIMIT_EXCEEDED", +"RESPONSE_SIZE_LIMIT_EXCEEDED" +], +"enumDescriptions": [ +"Enum unspecified.", +"The received error code is not known in this version.", +"The number of entries in the request exceeds the system limit, or the contents of the operations exceed transaction limits due to their size or complexity. Try reducing the number of entries per request.", +"The number of entries in the response exceeds the system limit." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Errors__ErrorDetails": { +"description": "Additional error details.", +"id": "GoogleAdsSearchads360V0Errors__ErrorDetails", +"properties": { +"quotaErrorDetails": { +"$ref": "GoogleAdsSearchads360V0Errors__QuotaErrorDetails", +"description": "Details on the quota error, including the scope (account or developer), the rate bucket name and the retry delay." +}, +"unpublishedErrorCode": { +"description": "The error code that should have been returned, but wasn't. This is used when the error code is not published in the client specified version.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Errors__ErrorLocation": { +"description": "Describes the part of the request proto that caused the error.", +"id": "GoogleAdsSearchads360V0Errors__ErrorLocation", +"properties": { +"fieldPathElements": { +"description": "A field path that indicates which field was invalid in the request.", +"items": { +"$ref": "GoogleAdsSearchads360V0Errors_ErrorLocation_FieldPathElement" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Errors__QuotaErrorDetails": { +"description": "Additional quota error details when there is QuotaError.", +"id": "GoogleAdsSearchads360V0Errors__QuotaErrorDetails", +"properties": { +"rateName": { +"description": "The high level description of the quota bucket. Examples are \"Get requests for standard access\" or \"Requests per account\".", +"type": "string" +}, +"rateScope": { +"description": "The rate scope of the quota limit.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"ACCOUNT", +"DEVELOPER" +], +"enumDescriptions": [ +"Unspecified enum", +"Used for return value only. Represents value unknown in this version.", +"Per customer account quota", +"Per project quota" +], +"type": "string" +}, +"retryDelay": { +"description": "Backoff period that customers should wait before sending next request.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Errors__SearchAds360Error": { +"description": "Search Ads 360-specific error.", +"id": "GoogleAdsSearchads360V0Errors__SearchAds360Error", +"properties": { +"details": { +"$ref": "GoogleAdsSearchads360V0Errors__ErrorDetails", +"description": "Additional error details, which are returned by certain error codes. Most error codes do not include details." +}, +"errorCode": { +"$ref": "GoogleAdsSearchads360V0Errors__ErrorCode", +"description": "An enum value that indicates which error occurred." +}, +"location": { +"$ref": "GoogleAdsSearchads360V0Errors__ErrorLocation", +"description": "Describes the part of the request proto that caused the error." +}, +"message": { +"description": "A human-readable description of the error.", +"type": "string" +}, +"trigger": { +"$ref": "GoogleAdsSearchads360V0Common__Value", +"description": "The value that triggered the error." +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Errors__SearchAds360Failure": { +"description": "Describes how a Search Ads 360 API call failed. It's returned inside google.rpc.Status.details when a call fails.", +"id": "GoogleAdsSearchads360V0Errors__SearchAds360Failure", +"properties": { +"errors": { +"description": "The list of errors that occurred.", +"items": { +"$ref": "GoogleAdsSearchads360V0Errors__SearchAds360Error" +}, +"type": "array" +}, +"requestId": { +"description": "The unique ID of the request that is used for debugging purposes.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources_AccessibleBiddingStrategy_MaximizeConversionValue": { +"description": "An automated bidding strategy to help get the most conversion value for your campaigns while spending your budget.", +"id": "GoogleAdsSearchads360V0Resources_AccessibleBiddingStrategy_MaximizeConversionValue", +"properties": { +"targetRoas": { +"description": "Output only. The target return on ad spend (ROAS) option. If set, the bid strategy will maximize revenue while averaging the target return on ad spend. If the target ROAS is high, the bid strategy may not be able to spend the full budget. If the target ROAS is not set, the bid strategy will aim to achieve the highest possible ROAS for the budget.", +"format": "double", +"readOnly": true, +"type": "number" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources_AccessibleBiddingStrategy_MaximizeConversions": { +"description": "An automated bidding strategy to help get the most conversions for your campaigns while spending your budget.", +"id": "GoogleAdsSearchads360V0Resources_AccessibleBiddingStrategy_MaximizeConversions", +"properties": { +"targetCpa": { +"description": "Output only. The target cost per acquisition (CPA) option. This is the average amount that you would like to spend per acquisition.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"targetCpaMicros": { +"description": "Output only. The target cost per acquisition (CPA) option. This is the average amount that you would like to spend per acquisition.", +"format": "int64", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources_AccessibleBiddingStrategy_TargetCpa": { +"description": "An automated bid strategy that sets bids to help get as many conversions as possible at the target cost-per-acquisition (CPA) you set.", +"id": "GoogleAdsSearchads360V0Resources_AccessibleBiddingStrategy_TargetCpa", +"properties": { +"targetCpaMicros": { +"description": "Output only. Average CPA target. This target should be greater than or equal to minimum billable unit based on the currency for the account.", +"format": "int64", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources_AccessibleBiddingStrategy_TargetImpressionShare": { +"description": "An automated bidding strategy that sets bids so that a certain percentage of search ads are shown at the top of the first page (or other targeted location).", +"id": "GoogleAdsSearchads360V0Resources_AccessibleBiddingStrategy_TargetImpressionShare", +"properties": { +"cpcBidCeilingMicros": { +"description": "Output only. The highest CPC bid the automated bidding system is permitted to specify. This is a required field entered by the advertiser that sets the ceiling and specified in local micros.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"location": { +"description": "Output only. The targeted location on the search results page.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"ANYWHERE_ON_PAGE", +"TOP_OF_PAGE", +"ABSOLUTE_TOP_OF_PAGE" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"Any location on the web page.", +"Top box of ads.", +"Top slot in the top box of ads." +], +"readOnly": true, +"type": "string" +}, +"locationFractionMicros": { +"description": "The chosen fraction of ads to be shown in the targeted location in micros. For example, 1% equals 10,000.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources_AccessibleBiddingStrategy_TargetRoas": { +"description": "An automated bidding strategy that helps you maximize revenue while averaging a specific target return on ad spend (ROAS).", +"id": "GoogleAdsSearchads360V0Resources_AccessibleBiddingStrategy_TargetRoas", +"properties": { +"targetRoas": { +"description": "Output only. The chosen revenue (based on conversion data) per unit of spend.", +"format": "double", +"readOnly": true, +"type": "number" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources_AccessibleBiddingStrategy_TargetSpend": { +"description": "An automated bid strategy that sets your bids to help get as many clicks as possible within your budget.", +"id": "GoogleAdsSearchads360V0Resources_AccessibleBiddingStrategy_TargetSpend", +"properties": { +"cpcBidCeilingMicros": { +"description": "Output only. Maximum bid limit that can be set by the bid strategy. The limit applies to all keywords managed by the strategy.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"targetSpendMicros": { +"deprecated": true, +"description": "Output only. The spend target under which to maximize clicks. A TargetSpend bidder will attempt to spend the smaller of this value or the natural throttling spend amount. If not specified, the budget is used as the spend target. This field is deprecated and should no longer be used. See https://ads-developers.googleblog.com/2020/05/reminder-about-sunset-creation-of.html for details.", +"format": "int64", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources_AdGroupCriterion_PositionEstimates": { +"description": "Estimates for criterion bids at various positions.", +"id": "GoogleAdsSearchads360V0Resources_AdGroupCriterion_PositionEstimates", +"properties": { +"topOfPageCpcMicros": { +"description": "Output only. The estimate of the CPC bid required for ad to be displayed at the top of the first page of search results.", +"format": "int64", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources_AdGroupCriterion_QualityInfo": { +"description": "A container for ad group criterion quality information.", +"id": "GoogleAdsSearchads360V0Resources_AdGroupCriterion_QualityInfo", +"properties": { +"qualityScore": { +"description": "Output only. The quality score. This field may not be populated if Google does not have enough information to determine a value.", +"format": "int32", +"readOnly": true, +"type": "integer" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources_Campaign_DynamicSearchAdsSetting": { +"description": "The setting for controlling Dynamic Search Ads (DSA).", +"id": "GoogleAdsSearchads360V0Resources_Campaign_DynamicSearchAdsSetting", +"properties": { +"domainName": { +"description": "Required. The Internet domain name that this setting represents, for example, \"google.com\" or \"www.google.com\".", +"type": "string" +}, +"languageCode": { +"description": "Required. The language code specifying the language of the domain, for example, \"en\".", +"type": "string" +}, +"useSuppliedUrlsOnly": { +"description": "Whether the campaign uses advertiser supplied URLs exclusively.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources_Campaign_GeoTargetTypeSetting": { +"description": "Represents a collection of settings related to ads geotargeting.", +"id": "GoogleAdsSearchads360V0Resources_Campaign_GeoTargetTypeSetting", +"properties": { +"negativeGeoTargetType": { +"description": "The setting used for negative geotargeting in this particular campaign.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"PRESENCE_OR_INTEREST", +"PRESENCE" +], +"enumDescriptions": [ +"Not specified.", +"The value is unknown in this version.", +"Specifies that a user is excluded from seeing the ad if they are in, or show interest in, advertiser's excluded locations.", +"Specifies that a user is excluded from seeing the ad if they are in advertiser's excluded locations." +], +"type": "string" +}, +"positiveGeoTargetType": { +"description": "The setting used for positive geotargeting in this particular campaign.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"PRESENCE_OR_INTEREST", +"SEARCH_INTEREST", +"PRESENCE" +], +"enumDescriptions": [ +"Not specified.", +"The value is unknown in this version.", +"Specifies that an ad is triggered if the user is in, or shows interest in, advertiser's targeted locations.", +"Specifies that an ad is triggered if the user searches for advertiser's targeted locations. This can only be used with Search and standard Shopping campaigns.", +"Specifies that an ad is triggered if the user is in or regularly in advertiser's targeted locations." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources_Campaign_NetworkSettings": { +"description": "The network settings for the campaign.", +"id": "GoogleAdsSearchads360V0Resources_Campaign_NetworkSettings", +"properties": { +"targetContentNetwork": { +"description": "Whether ads will be served on specified placements in the Google Display Network. Placements are specified using the Placement criterion.", +"type": "boolean" +}, +"targetGoogleSearch": { +"description": "Whether ads will be served with google.com search results.", +"type": "boolean" +}, +"targetPartnerSearchNetwork": { +"description": "Whether ads will be served on the Google Partner Network. This is available only to some select Google partner accounts.", +"type": "boolean" +}, +"targetSearchNetwork": { +"description": "Whether ads will be served on partner sites in the Google Search Network (requires `target_google_search` to also be `true`).", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources_Campaign_OptimizationGoalSetting": { +"description": "Optimization goal setting for this campaign, which includes a set of optimization goal types.", +"id": "GoogleAdsSearchads360V0Resources_Campaign_OptimizationGoalSetting", +"properties": { +"optimizationGoalTypes": { +"description": "The list of optimization goal types.", +"items": { +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"CALL_CLICKS", +"DRIVING_DIRECTIONS", +"APP_PRE_REGISTRATION" +], +"enumDescriptions": [ +"Not specified.", +"Used as a return value only. Represents value unknown in this version.", +"Optimize for call clicks. Call click conversions are times people selected 'Call' to contact a store after viewing an ad.", +"Optimize for driving directions. Driving directions conversions are times people selected 'Get directions' to navigate to a store after viewing an ad.", +"Optimize for pre-registration. Pre-registration conversions are the number of pre-registration signups to receive a notification when the app is released." +], +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources_Campaign_SelectiveOptimization": { +"description": "Selective optimization setting for this campaign, which includes a set of conversion actions to optimize this campaign towards. This feature only applies to app campaigns that use MULTI_CHANNEL as AdvertisingChannelType and APP_CAMPAIGN or APP_CAMPAIGN_FOR_ENGAGEMENT as AdvertisingChannelSubType.", +"id": "GoogleAdsSearchads360V0Resources_Campaign_SelectiveOptimization", +"properties": { +"conversionActions": { +"description": "The selected set of resource names for conversion actions for optimizing this campaign.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources_Campaign_ShoppingSetting": { +"description": "The setting for Shopping campaigns. Defines the universe of products that can be advertised by the campaign, and how this campaign interacts with other Shopping campaigns.", +"id": "GoogleAdsSearchads360V0Resources_Campaign_ShoppingSetting", +"properties": { +"campaignPriority": { +"description": "Priority of the campaign. Campaigns with numerically higher priorities take precedence over those with lower priorities. This field is required for Shopping campaigns, with values between 0 and 2, inclusive. This field is optional for Smart Shopping campaigns, but must be equal to 3 if set.", +"format": "int32", +"type": "integer" +}, +"enableLocal": { +"description": "Whether to include local products.", +"type": "boolean" +}, +"feedLabel": { +"description": "Feed label of products to include in the campaign. Only one of feed_label or sales_country can be set. If used instead of sales_country, the feed_label field accepts country codes in the same format for example: 'XX'. Otherwise can be any string used for feed label in Google Merchant Center.", +"type": "string" +}, +"merchantId": { +"description": "Immutable. ID of the Merchant Center account. This field is required for create operations. This field is immutable for Shopping campaigns.", +"format": "int64", +"type": "string" +}, +"salesCountry": { +"description": "Sales country of products to include in the campaign. ", +"type": "string" +}, +"useVehicleInventory": { +"description": "Immutable. Whether to target Vehicle Listing inventory.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources_Campaign_TrackingSetting": { +"description": "Campaign-level settings for tracking information.", +"id": "GoogleAdsSearchads360V0Resources_Campaign_TrackingSetting", +"properties": { +"trackingUrl": { +"description": "Output only. The url used for dynamic tracking.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources_ConversionAction_AttributionModelSettings": { +"description": "Settings related to this conversion action's attribution model.", +"id": "GoogleAdsSearchads360V0Resources_ConversionAction_AttributionModelSettings", +"properties": { +"attributionModel": { +"description": "The attribution model type of this conversion action.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"EXTERNAL", +"GOOGLE_ADS_LAST_CLICK", +"GOOGLE_SEARCH_ATTRIBUTION_FIRST_CLICK", +"GOOGLE_SEARCH_ATTRIBUTION_LINEAR", +"GOOGLE_SEARCH_ATTRIBUTION_TIME_DECAY", +"GOOGLE_SEARCH_ATTRIBUTION_POSITION_BASED", +"GOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVEN" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"Uses external attribution.", +"Attributes all credit for a conversion to its last click.", +"Attributes all credit for a conversion to its first click using Google Search attribution.", +"Attributes credit for a conversion equally across all of its clicks using Google Search attribution.", +"Attributes exponentially more credit for a conversion to its more recent clicks using Google Search attribution (half-life is 1 week).", +"Attributes 40% of the credit for a conversion to its first and last clicks. Remaining 20% is evenly distributed across all other clicks. This uses Google Search attribution.", +"Flexible model that uses machine learning to determine the appropriate distribution of credit among clicks using Google Search attribution." +], +"type": "string" +}, +"dataDrivenModelStatus": { +"description": "Output only. The status of the data-driven attribution model for the conversion action.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"AVAILABLE", +"STALE", +"EXPIRED", +"NEVER_GENERATED" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"The data driven model is available.", +"The data driven model is stale. It hasn't been updated for at least 7 days. It is still being used, but will become expired if it does not get updated for 30 days.", +"The data driven model expired. It hasn't been updated for at least 30 days and cannot be used. Most commonly this is because there hasn't been the required number of events in a recent 30-day period.", +"The data driven model has never been generated. Most commonly this is because there has never been the required number of events in any 30-day period." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources_ConversionAction_FloodlightSettings": { +"description": "Settings related to a Floodlight conversion action.", +"id": "GoogleAdsSearchads360V0Resources_ConversionAction_FloodlightSettings", +"properties": { +"activityGroupTag": { +"description": "Output only. String used to identify a Floodlight activity group when reporting conversions.", +"readOnly": true, +"type": "string" +}, +"activityId": { +"description": "Output only. ID of the Floodlight activity in DoubleClick Campaign Manager (DCM).", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"activityTag": { +"description": "Output only. String used to identify a Floodlight activity when reporting conversions.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources_ConversionAction_ValueSettings": { +"description": "Settings related to the value for conversion events associated with this conversion action.", +"id": "GoogleAdsSearchads360V0Resources_ConversionAction_ValueSettings", +"properties": { +"alwaysUseDefaultValue": { +"description": "Controls whether the default value and default currency code are used in place of the value and currency code specified in conversion events for this conversion action.", +"type": "boolean" +}, +"defaultCurrencyCode": { +"description": "The currency code to use when conversion events for this conversion action are sent with an invalid or missing currency code, or when this conversion action is configured to always use the default value.", +"type": "string" +}, +"defaultValue": { +"description": "The value to use when conversion events for this conversion action are sent with an invalid, disallowed or missing value, or when this conversion action is configured to always use the default value.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources_ConversionCustomVariable_FloodlightConversionCustomVariableInfo": { +"description": "Information for Search Ads 360 Floodlight Conversion Custom Variables.", +"id": "GoogleAdsSearchads360V0Resources_ConversionCustomVariable_FloodlightConversionCustomVariableInfo", +"properties": { +"floodlightVariableDataType": { +"description": "Output only. Floodlight variable data type defined in Search Ads 360.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"NUMBER", +"STRING" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"Represents a floodlight variable of \"Number\" type. This variable may be assigned to floodlight variables of DIMENSION or METRIC types.", +"Represents a floodlight variable of \"String\" type. This variable may be assigned to floodlight variables of DIMENSION type." +], +"readOnly": true, +"type": "string" +}, +"floodlightVariableType": { +"description": "Output only. Floodlight variable type defined in Search Ads 360.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"DIMENSION", +"METRIC", +"UNSET" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"Dimension floodlight variable type.", +"Metric floodlight variable type.", +"Floodlight variable type is unset." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources_ListingGroupFilterDimension_ProductBiddingCategory": { +"description": "One element of a bidding category at a certain level. Top-level categories are at level 1, their children at level 2, and so on. We currently support up to 5 levels. The user must specify a dimension type that indicates the level of the category. All cases of the same subdivision must have the same dimension type (category level).", +"id": "GoogleAdsSearchads360V0Resources_ListingGroupFilterDimension_ProductBiddingCategory", +"properties": { +"id": { +"description": "ID of the product bidding category. This ID is equivalent to the google_product_category ID as described in this article: https://support.google.com/merchants/answer/6324436", +"format": "int64", +"type": "string" +}, +"level": { +"description": "Indicates the level of the category in the taxonomy.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"LEVEL1", +"LEVEL2", +"LEVEL3", +"LEVEL4", +"LEVEL5" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"Level 1.", +"Level 2.", +"Level 3.", +"Level 4.", +"Level 5." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources_ListingGroupFilterDimension_ProductBrand": { +"description": "Brand of the product.", +"id": "GoogleAdsSearchads360V0Resources_ListingGroupFilterDimension_ProductBrand", +"properties": { +"value": { +"description": "String value of the product brand.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources_ListingGroupFilterDimension_ProductChannel": { +"description": "Locality of a product offer.", +"id": "GoogleAdsSearchads360V0Resources_ListingGroupFilterDimension_ProductChannel", +"properties": { +"channel": { +"description": "Value of the locality.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"ONLINE", +"LOCAL" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"The item is sold online.", +"The item is sold in local stores." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources_ListingGroupFilterDimension_ProductCondition": { +"description": "Condition of a product offer.", +"id": "GoogleAdsSearchads360V0Resources_ListingGroupFilterDimension_ProductCondition", +"properties": { +"condition": { +"description": "Value of the condition.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"NEW", +"REFURBISHED", +"USED" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"The product condition is new.", +"The product condition is refurbished.", +"The product condition is used." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources_ListingGroupFilterDimension_ProductCustomAttribute": { +"description": "Custom attribute of a product offer.", +"id": "GoogleAdsSearchads360V0Resources_ListingGroupFilterDimension_ProductCustomAttribute", +"properties": { +"index": { +"description": "Indicates the index of the custom attribute.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"INDEX0", +"INDEX1", +"INDEX2", +"INDEX3", +"INDEX4" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"First listing group filter custom attribute.", +"Second listing group filter custom attribute.", +"Third listing group filter custom attribute.", +"Fourth listing group filter custom attribute.", +"Fifth listing group filter custom attribute." +], +"type": "string" +}, +"value": { +"description": "String value of the product custom attribute.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources_ListingGroupFilterDimension_ProductItemId": { +"description": "Item id of a product offer.", +"id": "GoogleAdsSearchads360V0Resources_ListingGroupFilterDimension_ProductItemId", +"properties": { +"value": { +"description": "Value of the id.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources_ListingGroupFilterDimension_ProductType": { +"description": "Type of a product offer.", +"id": "GoogleAdsSearchads360V0Resources_ListingGroupFilterDimension_ProductType", +"properties": { +"level": { +"description": "Level of the type.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"LEVEL1", +"LEVEL2", +"LEVEL3", +"LEVEL4", +"LEVEL5" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"Level 1.", +"Level 2.", +"Level 3.", +"Level 4.", +"Level 5." +], +"type": "string" +}, +"value": { +"description": "Value of the type.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__AccessibleBiddingStrategy": { +"description": "Represents a view of BiddingStrategies owned by and shared with the customer. In contrast to BiddingStrategy, this resource includes strategies owned by managers of the customer and shared with this customer - in addition to strategies owned by this customer. This resource does not provide metrics and only exposes a limited subset of the BiddingStrategy attributes.", +"id": "GoogleAdsSearchads360V0Resources__AccessibleBiddingStrategy", +"properties": { +"id": { +"description": "Output only. The ID of the bidding strategy.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"maximizeConversionValue": { +"$ref": "GoogleAdsSearchads360V0Resources_AccessibleBiddingStrategy_MaximizeConversionValue", +"description": "Output only. An automated bidding strategy to help get the most conversion value for your campaigns while spending your budget.", +"readOnly": true +}, +"maximizeConversions": { +"$ref": "GoogleAdsSearchads360V0Resources_AccessibleBiddingStrategy_MaximizeConversions", +"description": "Output only. An automated bidding strategy to help get the most conversions for your campaigns while spending your budget.", +"readOnly": true +}, +"name": { +"description": "Output only. The name of the bidding strategy.", +"readOnly": true, +"type": "string" +}, +"ownerCustomerId": { +"description": "Output only. The ID of the Customer which owns the bidding strategy.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"ownerDescriptiveName": { +"description": "Output only. descriptive_name of the Customer which owns the bidding strategy.", +"readOnly": true, +"type": "string" +}, +"resourceName": { +"description": "Output only. The resource name of the accessible bidding strategy. AccessibleBiddingStrategy resource names have the form: `customers/{customer_id}/accessibleBiddingStrategies/{bidding_strategy_id}`", +"readOnly": true, +"type": "string" +}, +"targetCpa": { +"$ref": "GoogleAdsSearchads360V0Resources_AccessibleBiddingStrategy_TargetCpa", +"description": "Output only. A bidding strategy that sets bids to help get as many conversions as possible at the target cost-per-acquisition (CPA) you set.", +"readOnly": true +}, +"targetImpressionShare": { +"$ref": "GoogleAdsSearchads360V0Resources_AccessibleBiddingStrategy_TargetImpressionShare", +"description": "Output only. A bidding strategy that automatically optimizes towards a chosen percentage of impressions.", +"readOnly": true +}, +"targetRoas": { +"$ref": "GoogleAdsSearchads360V0Resources_AccessibleBiddingStrategy_TargetRoas", +"description": "Output only. A bidding strategy that helps you maximize revenue while averaging a specific target Return On Ad Spend (ROAS).", +"readOnly": true +}, +"targetSpend": { +"$ref": "GoogleAdsSearchads360V0Resources_AccessibleBiddingStrategy_TargetSpend", +"description": "Output only. A bid strategy that sets your bids to help get as many clicks as possible within your budget.", +"readOnly": true +}, +"type": { +"description": "Output only. The type of the bidding strategy.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"COMMISSION", +"ENHANCED_CPC", +"INVALID", +"MANUAL_CPA", +"MANUAL_CPC", +"MANUAL_CPM", +"MANUAL_CPV", +"MAXIMIZE_CONVERSIONS", +"MAXIMIZE_CONVERSION_VALUE", +"PAGE_ONE_PROMOTED", +"PERCENT_CPC", +"TARGET_CPA", +"TARGET_CPM", +"TARGET_IMPRESSION_SHARE", +"TARGET_OUTRANK_SHARE", +"TARGET_ROAS", +"TARGET_SPEND" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"Commission is an automatic bidding strategy in which the advertiser pays a certain portion of the conversion value.", +"Enhanced CPC is a bidding strategy that raises bids for clicks that seem more likely to lead to a conversion and lowers them for clicks where they seem less likely.", +"Used for return value only. Indicates that a campaign does not have a bidding strategy. This prevents the campaign from serving. For example, a campaign may be attached to a manager bidding strategy and the serving account is subsequently unlinked from the manager account. In this case the campaign will automatically be detached from the now inaccessible manager bidding strategy and transition to the INVALID bidding strategy type.", +"Manual bidding strategy that allows advertiser to set the bid per advertiser-specified action.", +"Manual click based bidding where user pays per click.", +"Manual impression based bidding where user pays per thousand impressions.", +"A bidding strategy that pays a configurable amount per video view.", +"A bidding strategy that automatically maximizes number of conversions given a daily budget.", +"An automated bidding strategy that automatically sets bids to maximize revenue while spending your budget.", +"Page-One Promoted bidding scheme, which sets max cpc bids to target impressions on page one or page one promoted slots on google.com. This enum value is deprecated.", +"Percent Cpc is bidding strategy where bids are a fraction of the advertised price for some good or service.", +"Target CPA is an automated bid strategy that sets bids to help get as many conversions as possible at the target cost-per-acquisition (CPA) you set.", +"Target CPM is an automated bid strategy that sets bids to help get as many impressions as possible at the target cost per one thousand impressions (CPM) you set.", +"An automated bidding strategy that sets bids so that a certain percentage of search ads are shown at the top of the first page (or other targeted location).", +"Target Outrank Share is an automated bidding strategy that sets bids based on the target fraction of auctions where the advertiser should outrank a specific competitor. This enum value is deprecated.", +"Target ROAS is an automated bidding strategy that helps you maximize revenue while averaging a specific target Return On Average Spend (ROAS).", +"Target Spend is an automated bid strategy that sets your bids to help get as many clicks as possible within your budget." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__Ad": { +"description": "An ad.", +"id": "GoogleAdsSearchads360V0Resources__Ad", +"properties": { +"displayUrl": { +"description": "The URL that appears in the ad description for some ad formats.", +"type": "string" +}, +"expandedDynamicSearchAd": { +"$ref": "GoogleAdsSearchads360V0Common__SearchAds360ExpandedDynamicSearchAdInfo", +"description": "Immutable. Details pertaining to an expanded dynamic search ad." +}, +"expandedTextAd": { +"$ref": "GoogleAdsSearchads360V0Common__SearchAds360ExpandedTextAdInfo", +"description": "Immutable. Details pertaining to an expanded text ad." +}, +"finalUrls": { +"description": "The list of possible final URLs after all cross-domain redirects for the ad.", +"items": { +"type": "string" +}, +"type": "array" +}, +"id": { +"description": "Output only. The ID of the ad.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Immutable. The name of the ad. This is only used to be able to identify the ad. It does not need to be unique and does not affect the served ad. The name field is currently only supported for DisplayUploadAd, ImageAd, ShoppingComparisonListingAd and VideoAd.", +"type": "string" +}, +"productAd": { +"$ref": "GoogleAdsSearchads360V0Common__SearchAds360ProductAdInfo", +"description": "Immutable. Details pertaining to a product ad." +}, +"resourceName": { +"description": "Immutable. The resource name of the ad. Ad resource names have the form: `customers/{customer_id}/ads/{ad_id}`", +"type": "string" +}, +"responsiveSearchAd": { +"$ref": "GoogleAdsSearchads360V0Common__SearchAds360ResponsiveSearchAdInfo", +"description": "Immutable. Details pertaining to a responsive search ad." +}, +"textAd": { +"$ref": "GoogleAdsSearchads360V0Common__SearchAds360TextAdInfo", +"description": "Immutable. Details pertaining to a text ad." +}, +"type": { +"description": "Output only. The type of ad.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"TEXT_AD", +"EXPANDED_TEXT_AD", +"CALL_ONLY_AD", +"EXPANDED_DYNAMIC_SEARCH_AD", +"HOTEL_AD", +"SHOPPING_SMART_AD", +"SHOPPING_PRODUCT_AD", +"VIDEO_AD", +"GMAIL_AD", +"IMAGE_AD", +"RESPONSIVE_SEARCH_AD", +"LEGACY_RESPONSIVE_DISPLAY_AD", +"APP_AD", +"LEGACY_APP_INSTALL_AD", +"RESPONSIVE_DISPLAY_AD", +"LOCAL_AD", +"HTML5_UPLOAD_AD", +"DYNAMIC_HTML5_AD", +"APP_ENGAGEMENT_AD", +"SHOPPING_COMPARISON_LISTING_AD", +"VIDEO_BUMPER_AD", +"VIDEO_NON_SKIPPABLE_IN_STREAM_AD", +"VIDEO_OUTSTREAM_AD", +"VIDEO_TRUEVIEW_DISCOVERY_AD", +"VIDEO_TRUEVIEW_IN_STREAM_AD", +"VIDEO_RESPONSIVE_AD", +"SMART_CAMPAIGN_AD", +"APP_PRE_REGISTRATION_AD", +"DISCOVERY_MULTI_ASSET_AD", +"DISCOVERY_CAROUSEL_AD", +"TRAVEL_AD", +"DISCOVERY_VIDEO_RESPONSIVE_AD", +"MULTIMEDIA_AD" +], +"enumDescriptions": [ +"No value has been specified.", +"The received value is not known in this version. This is a response-only value.", +"The ad is a text ad.", +"The ad is an expanded text ad.", +"The ad is a call only ad.", +"The ad is an expanded dynamic search ad.", +"The ad is a hotel ad.", +"The ad is a Smart Shopping ad.", +"The ad is a standard Shopping ad.", +"The ad is a video ad.", +"This ad is a Gmail ad.", +"This ad is an Image ad.", +"The ad is a responsive search ad.", +"The ad is a legacy responsive display ad.", +"The ad is an app ad.", +"The ad is a legacy app install ad.", +"The ad is a responsive display ad.", +"The ad is a local ad.", +"The ad is a display upload ad with the HTML5_UPLOAD_AD product type.", +"The ad is a display upload ad with one of the DYNAMIC_HTML5_* product types.", +"The ad is an app engagement ad.", +"The ad is a Shopping Comparison Listing ad.", +"Video bumper ad.", +"Video non-skippable in-stream ad.", +"Video outstream ad.", +"Video TrueView in-display ad.", +"Video TrueView in-stream ad.", +"Video responsive ad.", +"Smart campaign ad.", +"Universal app pre-registration ad.", +"Discovery multi asset ad.", +"Discovery carousel ad.", +"Travel ad.", +"Discovery video responsive ad.", +"Multimedia ad." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__AdGroup": { +"description": "An ad group.", +"id": "GoogleAdsSearchads360V0Resources__AdGroup", +"properties": { +"adRotationMode": { +"description": "The ad rotation mode of the ad group.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"OPTIMIZE", +"ROTATE_FOREVER" +], +"enumDescriptions": [ +"The ad rotation mode has not been specified.", +"The received value is not known in this version. This is a response-only value.", +"Optimize ad group ads based on clicks or conversions.", +"Rotate evenly forever." +], +"type": "string" +}, +"cpcBidMicros": { +"description": "The maximum CPC (cost-per-click) bid.", +"format": "int64", +"type": "string" +}, +"creationTime": { +"description": "Output only. The timestamp when this ad_group was created. The timestamp is in the customer's time zone and in \"yyyy-MM-dd HH:mm:ss\" format.", +"readOnly": true, +"type": "string" +}, +"effectiveLabels": { +"description": "Output only. The resource names of effective labels attached to this ad group. An effective label is a label inherited or directly assigned to this ad group.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"endDate": { +"description": "Output only. Date when the ad group ends serving ads. By default, the ad group ends on the ad group's end date. If this field is set, then the ad group ends at the end of the specified date in the customer's time zone. This field is only available for Microsoft Advertising and Facebook gateway accounts. Format: YYYY-MM-DD Example: 2019-03-14", +"readOnly": true, +"type": "string" +}, +"engineId": { +"description": "Output only. ID of the ad group in the external engine account. This field is for non-Google Ads account only, for example, Yahoo Japan, Microsoft, Baidu etc. For Google Ads entity, use \"ad_group.id\" instead.", +"readOnly": true, +"type": "string" +}, +"engineStatus": { +"description": "Output only. The Engine Status for ad group.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"AD_GROUP_ELIGIBLE", +"AD_GROUP_EXPIRED", +"AD_GROUP_REMOVED", +"AD_GROUP_DRAFT", +"AD_GROUP_PAUSED", +"AD_GROUP_SERVING", +"AD_GROUP_SUBMITTED", +"CAMPAIGN_PAUSED", +"ACCOUNT_PAUSED" +], +"enumDeprecated": [ +false, +false, +true, +false, +false, +false, +false, +false, +false, +false, +false +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"Deprecated. Do not use.", +"No ads are running for this ad group, because the ad group's end date has passed.", +"The ad group has been deleted.", +"No ads are running for this ad group because the associated ad group is still in draft form.", +"The ad group has been paused.", +"The ad group is active and currently serving ads.", +"The ad group has been submitted (Microsoft Bing Ads legacy status).", +"No ads are running for this ad group, because the campaign has been paused.", +"No ads are running for this ad group, because the account has been paused." +], +"readOnly": true, +"type": "string" +}, +"id": { +"description": "Output only. The ID of the ad group.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"labels": { +"description": "Output only. The resource names of labels attached to this ad group.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"languageCode": { +"description": "Output only. The language of the ads and keywords in an ad group. This field is only available for Microsoft Advertising accounts. More details: https://docs.microsoft.com/en-us/advertising/guides/ad-languages?view=bingads-13#adlanguage", +"readOnly": true, +"type": "string" +}, +"lastModifiedTime": { +"description": "Output only. The datetime when this ad group was last modified. The datetime is in the customer's time zone and in \"yyyy-MM-dd HH:mm:ss.ssssss\" format.", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "The name of the ad group. This field is required and should not be empty when creating new ad groups. It must contain fewer than 255 UTF-8 full-width characters. It must not contain any null (code point 0x0), NL line feed (code point 0xA) or carriage return (code point 0xD) characters.", +"type": "string" +}, +"resourceName": { +"description": "Immutable. The resource name of the ad group. Ad group resource names have the form: `customers/{customer_id}/adGroups/{ad_group_id}`", +"type": "string" +}, +"startDate": { +"description": "Output only. Date when this ad group starts serving ads. By default, the ad group starts now or the ad group's start date, whichever is later. If this field is set, then the ad group starts at the beginning of the specified date in the customer's time zone. This field is only available for Microsoft Advertising and Facebook gateway accounts. Format: YYYY-MM-DD Example: 2019-03-14", +"readOnly": true, +"type": "string" +}, +"status": { +"description": "The status of the ad group.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"ENABLED", +"PAUSED", +"REMOVED" +], +"enumDescriptions": [ +"The status has not been specified.", +"The received value is not known in this version. This is a response-only value.", +"The ad group is enabled.", +"The ad group is paused.", +"The ad group is removed." +], +"type": "string" +}, +"targetingSetting": { +"$ref": "GoogleAdsSearchads360V0Common__TargetingSetting", +"description": "Setting for targeting related features." +}, +"type": { +"description": "Immutable. The type of the ad group.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"SEARCH_STANDARD", +"DISPLAY_STANDARD", +"SHOPPING_PRODUCT_ADS", +"SHOPPING_SHOWCASE_ADS", +"HOTEL_ADS", +"SHOPPING_SMART_ADS", +"VIDEO_BUMPER", +"VIDEO_TRUE_VIEW_IN_STREAM", +"VIDEO_TRUE_VIEW_IN_DISPLAY", +"VIDEO_NON_SKIPPABLE_IN_STREAM", +"VIDEO_OUTSTREAM", +"SEARCH_DYNAMIC_ADS", +"SHOPPING_COMPARISON_LISTING_ADS", +"PROMOTED_HOTEL_ADS", +"VIDEO_RESPONSIVE", +"VIDEO_EFFICIENT_REACH", +"SMART_CAMPAIGN_ADS", +"TRAVEL_ADS" +], +"enumDescriptions": [ +"The type has not been specified.", +"The received value is not known in this version. This is a response-only value.", +"The default ad group type for Search campaigns.", +"The default ad group type for Display campaigns.", +"The ad group type for Shopping campaigns serving standard product ads.", +"The type for ad groups that are limited to serving Showcase or Merchant ads in Shopping results.", +"The default ad group type for Hotel campaigns.", +"The type for ad groups in Smart Shopping campaigns.", +"Short unskippable in-stream video ads.", +"TrueView (skippable) in-stream video ads.", +"TrueView in-display video ads.", +"Unskippable in-stream video ads.", +"Outstream video ads.", +"Ad group type for Dynamic Search Ads ad groups.", +"The type for ad groups in Shopping Comparison Listing campaigns.", +"The ad group type for Promoted Hotel ad groups.", +"Video responsive ad groups.", +"Video efficient reach ad groups.", +"Ad group type for Smart campaigns.", +"Ad group type for Travel campaigns." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__AdGroupAd": { +"description": "An ad group ad.", +"id": "GoogleAdsSearchads360V0Resources__AdGroupAd", +"properties": { +"ad": { +"$ref": "GoogleAdsSearchads360V0Resources__Ad", +"description": "Immutable. The ad." +}, +"creationTime": { +"description": "Output only. The timestamp when this ad_group_ad was created. The datetime is in the customer's time zone and in \"yyyy-MM-dd HH:mm:ss.ssssss\" format.", +"readOnly": true, +"type": "string" +}, +"effectiveLabels": { +"description": "Output only. The resource names of effective labels attached to this ad. An effective label is a label inherited or directly assigned to this ad.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"engineId": { +"description": "Output only. ID of the ad in the external engine account. This field is for Search Ads 360 account only, for example, Yahoo Japan, Microsoft, Baidu etc. For non-Search Ads 360 entity, use \"ad_group_ad.ad.id\" instead.", +"readOnly": true, +"type": "string" +}, +"engineStatus": { +"description": "Output only. Additional status of the ad in the external engine account. Possible statuses (depending on the type of external account) include active, eligible, pending review, etc.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"AD_GROUP_AD_ELIGIBLE", +"AD_GROUP_AD_INAPPROPRIATE_FOR_CAMPAIGN", +"AD_GROUP_AD_MOBILE_URL_UNDER_REVIEW", +"AD_GROUP_AD_PARTIALLY_INVALID", +"AD_GROUP_AD_TO_BE_ACTIVATED", +"AD_GROUP_AD_NOT_REVIEWED", +"AD_GROUP_AD_ON_HOLD", +"AD_GROUP_AD_PAUSED", +"AD_GROUP_AD_REMOVED", +"AD_GROUP_AD_PENDING_REVIEW", +"AD_GROUP_AD_UNDER_REVIEW", +"AD_GROUP_AD_APPROVED", +"AD_GROUP_AD_DISAPPROVED", +"AD_GROUP_AD_SERVING", +"AD_GROUP_AD_ACCOUNT_PAUSED", +"AD_GROUP_AD_CAMPAIGN_PAUSED", +"AD_GROUP_AD_AD_GROUP_PAUSED" +], +"enumDeprecated": [ +false, +false, +true, +false, +false, +false, +false, +false, +true, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false +], +"enumDescriptions": [ +"No value has been specified.", +"Used for return value only. Represents value unknown in this version.", +"Deprecated. Do not use.", +"Baidu: Creative was not approved.", +"Baidu: Mobile URL in process to be reviewed.", +"Baidu: Creative is invalid on mobile device but valid on desktop.", +"Baidu: Creative is ready for activation.", +"Baidu: Creative not reviewed.", +"Deprecated. Do not use. Previously used by Gemini", +"Creative has been paused.", +"Creative has been removed.", +"Creative is pending review.", +"Creative is under review.", +"Creative has been approved.", +"Creative has been disapproved.", +"Creative is serving.", +"Creative has been paused because the account is paused.", +"Creative has been paused because the campaign is paused.", +"Creative has been paused because the ad group is paused." +], +"readOnly": true, +"type": "string" +}, +"labels": { +"description": "Output only. The resource names of labels attached to this ad group ad.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"lastModifiedTime": { +"description": "Output only. The datetime when this ad group ad was last modified. The datetime is in the customer's time zone and in \"yyyy-MM-dd HH:mm:ss.ssssss\" format.", +"readOnly": true, +"type": "string" +}, +"resourceName": { +"description": "Immutable. The resource name of the ad. Ad group ad resource names have the form: `customers/{customer_id}/adGroupAds/{ad_group_id}~{ad_id}`", +"type": "string" +}, +"status": { +"description": "The status of the ad.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"ENABLED", +"PAUSED", +"REMOVED" +], +"enumDescriptions": [ +"No value has been specified.", +"The received value is not known in this version. This is a response-only value.", +"The ad group ad is enabled.", +"The ad group ad is paused.", +"The ad group ad is removed." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__AdGroupAdEffectiveLabel": { +"description": "A relationship between an ad group ad and an effective label. An effective label is a label inherited or directly assigned to this ad group ad.", +"id": "GoogleAdsSearchads360V0Resources__AdGroupAdEffectiveLabel", +"properties": { +"adGroupAd": { +"description": "Immutable. The ad group ad to which the effective label is attached.", +"type": "string" +}, +"label": { +"description": "Immutable. The effective label assigned to the ad group ad.", +"type": "string" +}, +"ownerCustomerId": { +"description": "Output only. The ID of the Customer which owns the effective label.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"resourceName": { +"description": "Immutable. The resource name of the ad group ad effective label. Ad group ad effective label resource names have the form: `customers/{customer_id}/adGroupAdEffectiveLabels/{ad_group_id}~{ad_id}~{label_id}`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__AdGroupAdLabel": { +"description": "A relationship between an ad group ad and a label.", +"id": "GoogleAdsSearchads360V0Resources__AdGroupAdLabel", +"properties": { +"adGroupAd": { +"description": "Immutable. The ad group ad to which the label is attached.", +"type": "string" +}, +"label": { +"description": "Immutable. The label assigned to the ad group ad.", +"type": "string" +}, +"ownerCustomerId": { +"description": "Output only. The ID of the Customer which owns the label.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"resourceName": { +"description": "Immutable. The resource name of the ad group ad label. Ad group ad label resource names have the form: `customers/{customer_id}/adGroupAdLabels/{ad_group_id}~{ad_id}~{label_id}`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__AdGroupAsset": { +"description": "A link between an ad group and an asset.", +"id": "GoogleAdsSearchads360V0Resources__AdGroupAsset", +"properties": { +"adGroup": { +"description": "Required. Immutable. The ad group to which the asset is linked.", +"type": "string" +}, +"asset": { +"description": "Required. Immutable. The asset which is linked to the ad group.", +"type": "string" +}, +"resourceName": { +"description": "Immutable. The resource name of the ad group asset. AdGroupAsset resource names have the form: `customers/{customer_id}/adGroupAssets/{ad_group_id}~{asset_id}~{field_type}`", +"type": "string" +}, +"status": { +"description": "Status of the ad group asset.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"ENABLED", +"REMOVED", +"PAUSED" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"Asset link is enabled.", +"Asset link has been removed.", +"Asset link is paused." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__AdGroupAssetSet": { +"description": "AdGroupAssetSet is the linkage between an ad group and an asset set. Creating an AdGroupAssetSet links an asset set with an ad group.", +"id": "GoogleAdsSearchads360V0Resources__AdGroupAssetSet", +"properties": { +"adGroup": { +"description": "Immutable. The ad group to which this asset set is linked.", +"type": "string" +}, +"assetSet": { +"description": "Immutable. The asset set which is linked to the ad group.", +"type": "string" +}, +"resourceName": { +"description": "Immutable. The resource name of the ad group asset set. Ad group asset set resource names have the form: `customers/{customer_id}/adGroupAssetSets/{ad_group_id}~{asset_set_id}`", +"type": "string" +}, +"status": { +"description": "Output only. The status of the ad group asset set. Read-only.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"ENABLED", +"REMOVED" +], +"enumDescriptions": [ +"The status has not been specified.", +"The received value is not known in this version. This is a response-only value.", +"The linkage between asset set and its container is enabled.", +"The linkage between asset set and its container is removed." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__AdGroupAudienceView": { +"description": "An ad group audience view. Includes performance data from interests and remarketing lists for Display Network and YouTube Network ads, and remarketing lists for search ads (RLSA), aggregated at the audience level.", +"id": "GoogleAdsSearchads360V0Resources__AdGroupAudienceView", +"properties": { +"resourceName": { +"description": "Output only. The resource name of the ad group audience view. Ad group audience view resource names have the form: `customers/{customer_id}/adGroupAudienceViews/{ad_group_id}~{criterion_id}`", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__AdGroupBidModifier": { +"description": "Represents an ad group bid modifier.", +"id": "GoogleAdsSearchads360V0Resources__AdGroupBidModifier", +"properties": { +"bidModifier": { +"description": "The modifier for the bid when the criterion matches. The modifier must be in the range: 0.1 - 10.0. The range is 1.0 - 6.0 for PreferredContent. Use 0 to opt out of a Device type.", +"format": "double", +"type": "number" +}, +"device": { +"$ref": "GoogleAdsSearchads360V0Common__DeviceInfo", +"description": "Immutable. A device criterion." +}, +"resourceName": { +"description": "Immutable. The resource name of the ad group bid modifier. Ad group bid modifier resource names have the form: `customers/{customer_id}/adGroupBidModifiers/{ad_group_id}~{criterion_id}`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__AdGroupCriterion": { +"description": "An ad group criterion. The ad_group_criterion report only returns criteria that were explicitly added to the ad group.", +"id": "GoogleAdsSearchads360V0Resources__AdGroupCriterion", +"properties": { +"adGroup": { +"description": "Immutable. The ad group to which the criterion belongs.", +"type": "string" +}, +"ageRange": { +"$ref": "GoogleAdsSearchads360V0Common__AgeRangeInfo", +"description": "Immutable. Age range." +}, +"bidModifier": { +"description": "The modifier for the bid when the criterion matches. The modifier must be in the range: 0.1 - 10.0. Most targetable criteria types support modifiers.", +"format": "double", +"type": "number" +}, +"cpcBidMicros": { +"description": "The CPC (cost-per-click) bid.", +"format": "int64", +"type": "string" +}, +"creationTime": { +"description": "Output only. The timestamp when this ad group criterion was created. The timestamp is in the customer's time zone and in \"yyyy-MM-dd HH:mm:ss\" format.", +"readOnly": true, +"type": "string" +}, +"criterionId": { +"description": "Output only. The ID of the criterion.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"effectiveCpcBidMicros": { +"description": "Output only. The effective CPC (cost-per-click) bid.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"effectiveLabels": { +"description": "Output only. The resource names of effective labels attached to this ad group criterion. An effective label is a label inherited or directly assigned to this ad group criterion.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"engineId": { +"description": "Output only. ID of the ad group criterion in the external engine account. This field is for non-Google Ads account only, for example, Yahoo Japan, Microsoft, Baidu etc. For Google Ads entity, use \"ad_group_criterion.criterion_id\" instead.", +"readOnly": true, +"type": "string" +}, +"engineStatus": { +"description": "Output only. The Engine Status for ad group criterion.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"AD_GROUP_CRITERION_ELIGIBLE", +"AD_GROUP_CRITERION_INAPPROPRIATE_FOR_CAMPAIGN", +"AD_GROUP_CRITERION_INVALID_MOBILE_SEARCH", +"AD_GROUP_CRITERION_INVALID_PC_SEARCH", +"AD_GROUP_CRITERION_INVALID_SEARCH", +"AD_GROUP_CRITERION_LOW_SEARCH_VOLUME", +"AD_GROUP_CRITERION_MOBILE_URL_UNDER_REVIEW", +"AD_GROUP_CRITERION_PARTIALLY_INVALID", +"AD_GROUP_CRITERION_TO_BE_ACTIVATED", +"AD_GROUP_CRITERION_UNDER_REVIEW", +"AD_GROUP_CRITERION_NOT_REVIEWED", +"AD_GROUP_CRITERION_ON_HOLD", +"AD_GROUP_CRITERION_PENDING_REVIEW", +"AD_GROUP_CRITERION_PAUSED", +"AD_GROUP_CRITERION_REMOVED", +"AD_GROUP_CRITERION_APPROVED", +"AD_GROUP_CRITERION_DISAPPROVED", +"AD_GROUP_CRITERION_SERVING", +"AD_GROUP_CRITERION_ACCOUNT_PAUSED" +], +"enumDeprecated": [ +false, +false, +true, +false, +false, +false, +false, +false, +false, +false, +false, +false, +false, +true, +false, +false, +false, +false, +false, +false, +false +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"Deprecated. Do not use.", +"Baidu: Bid or quality too low to be displayed.", +"Baidu: Bid or quality too low for mobile, but eligible to display for desktop.", +"Baidu: Bid or quality too low for desktop, but eligible to display for mobile.", +"Baidu: Bid or quality too low to be displayed.", +"Baidu: Paused by Baidu due to low search volume.", +"Baidu: Mobile URL in process to be reviewed.", +"Baidu: The landing page for one device is invalid, while the landing page for the other device is valid.", +"Baidu: Keyword has been created and paused by Baidu account management, and is now ready for you to activate it.", +"Baidu: In process to be reviewed by Baidu. Gemini: Criterion under review.", +"Baidu: Criterion to be reviewed.", +"Deprecated. Do not use. Previously used by Gemini", +"Y!J : Criterion pending review", +"Criterion has been paused.", +"Criterion has been removed.", +"Criterion has been approved.", +"Criterion has been disapproved.", +"Criterion is active and serving.", +"Criterion has been paused since the account is paused." +], +"readOnly": true, +"type": "string" +}, +"finalUrlSuffix": { +"description": "URL template for appending params to final URL.", +"type": "string" +}, +"finalUrls": { +"description": "The list of possible final URLs after all cross-domain redirects for the ad.", +"items": { +"type": "string" +}, +"type": "array" +}, +"gender": { +"$ref": "GoogleAdsSearchads360V0Common__GenderInfo", +"description": "Immutable. Gender." +}, +"keyword": { +"$ref": "GoogleAdsSearchads360V0Common__KeywordInfo", +"description": "Immutable. Keyword." +}, +"labels": { +"description": "Output only. The resource names of labels attached to this ad group criterion.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"lastModifiedTime": { +"description": "Output only. The datetime when this ad group criterion was last modified. The datetime is in the customer's time zone and in \"yyyy-MM-dd HH:mm:ss.ssssss\" format.", +"readOnly": true, +"type": "string" +}, +"listingGroup": { +"$ref": "GoogleAdsSearchads360V0Common__ListingGroupInfo", +"description": "Immutable. Listing group." +}, +"location": { +"$ref": "GoogleAdsSearchads360V0Common__LocationInfo", +"description": "Immutable. Location." +}, +"negative": { +"description": "Immutable. Whether to target (`false`) or exclude (`true`) the criterion. This field is immutable. To switch a criterion from positive to negative, remove then re-add it.", +"type": "boolean" +}, +"positionEstimates": { +"$ref": "GoogleAdsSearchads360V0Resources_AdGroupCriterion_PositionEstimates", +"description": "Output only. Estimates for criterion bids at various positions.", +"readOnly": true +}, +"qualityInfo": { +"$ref": "GoogleAdsSearchads360V0Resources_AdGroupCriterion_QualityInfo", +"description": "Output only. Information regarding the quality of the criterion.", +"readOnly": true +}, +"resourceName": { +"description": "Immutable. The resource name of the ad group criterion. Ad group criterion resource names have the form: `customers/{customer_id}/adGroupCriteria/{ad_group_id}~{criterion_id}`", +"type": "string" +}, +"status": { +"description": "The status of the criterion. This is the status of the ad group criterion entity, set by the client. Note: UI reports may incorporate additional information that affects whether a criterion is eligible to run. In some cases a criterion that's REMOVED in the API can still show as enabled in the UI. For example, campaigns by default show to users of all age ranges unless excluded. The UI will show each age range as \"enabled\", since they're eligible to see the ads; but AdGroupCriterion.status will show \"removed\", since no positive criterion was added.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"ENABLED", +"PAUSED", +"REMOVED" +], +"enumDescriptions": [ +"No value has been specified.", +"The received value is not known in this version. This is a response-only value.", +"The ad group criterion is enabled.", +"The ad group criterion is paused.", +"The ad group criterion is removed." +], +"type": "string" +}, +"trackingUrlTemplate": { +"description": "The URL template for constructing a tracking URL.", +"type": "string" +}, +"type": { +"description": "Output only. The type of the criterion.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"KEYWORD", +"PLACEMENT", +"MOBILE_APP_CATEGORY", +"MOBILE_APPLICATION", +"DEVICE", +"LOCATION", +"LISTING_GROUP", +"AD_SCHEDULE", +"AGE_RANGE", +"GENDER", +"INCOME_RANGE", +"PARENTAL_STATUS", +"YOUTUBE_VIDEO", +"YOUTUBE_CHANNEL", +"USER_LIST", +"PROXIMITY", +"TOPIC", +"LISTING_SCOPE", +"LANGUAGE", +"IP_BLOCK", +"CONTENT_LABEL", +"CARRIER", +"USER_INTEREST", +"WEBPAGE", +"OPERATING_SYSTEM_VERSION", +"APP_PAYMENT_MODEL", +"MOBILE_DEVICE", +"CUSTOM_AFFINITY", +"CUSTOM_INTENT", +"LOCATION_GROUP", +"CUSTOM_AUDIENCE", +"COMBINED_AUDIENCE", +"KEYWORD_THEME", +"AUDIENCE", +"LOCAL_SERVICE_ID", +"BRAND", +"BRAND_LIST", +"LIFE_EVENT" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"Keyword, for example, 'mars cruise'.", +"Placement, also known as Website, for example, 'www.flowers4sale.com'", +"Mobile application categories to target.", +"Mobile applications to target.", +"Devices to target.", +"Locations to target.", +"Listing groups to target.", +"Ad Schedule.", +"Age range.", +"Gender.", +"Income Range.", +"Parental status.", +"YouTube Video.", +"YouTube Channel.", +"User list.", +"Proximity.", +"A topic target on the display network (for example, \"Pets & Animals\").", +"Listing scope to target.", +"Language.", +"IpBlock.", +"Content Label for category exclusion.", +"Carrier.", +"A category the user is interested in.", +"Webpage criterion for dynamic search ads.", +"Operating system version.", +"App payment model.", +"Mobile device.", +"Custom affinity.", +"Custom intent.", +"Location group.", +"Custom audience", +"Combined audience", +"Smart Campaign keyword theme", +"Audience", +"Local Services Ads Service ID.", +"Brand", +"Brand List", +"Life Event" +], +"readOnly": true, +"type": "string" +}, +"userList": { +"$ref": "GoogleAdsSearchads360V0Common__UserListInfo", +"description": "Immutable. User List." +}, +"webpage": { +"$ref": "GoogleAdsSearchads360V0Common__WebpageInfo", +"description": "Immutable. Webpage" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__AdGroupCriterionEffectiveLabel": { +"description": "A relationship between an ad group criterion and an effective label. An effective label is a label inherited or directly assigned to this ad group criterion.", +"id": "GoogleAdsSearchads360V0Resources__AdGroupCriterionEffectiveLabel", +"properties": { +"adGroupCriterion": { +"description": "Immutable. The ad group criterion to which the effective label is attached.", +"type": "string" +}, +"label": { +"description": "Immutable. The effective label assigned to the ad group criterion.", +"type": "string" +}, +"ownerCustomerId": { +"description": "Output only. The ID of the Customer which owns the effective label.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"resourceName": { +"description": "Immutable. The resource name of the ad group criterion effective label. Ad group criterion effective label resource names have the form: `customers/{customer_id}/adGroupCriterionEffectiveLabels/{ad_group_id}~{criterion_id}~{label_id}`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__AdGroupCriterionLabel": { +"description": "A relationship between an ad group criterion and a label.", +"id": "GoogleAdsSearchads360V0Resources__AdGroupCriterionLabel", +"properties": { +"adGroupCriterion": { +"description": "Immutable. The ad group criterion to which the label is attached.", +"type": "string" +}, +"label": { +"description": "Immutable. The label assigned to the ad group criterion.", +"type": "string" +}, +"ownerCustomerId": { +"description": "Output only. The ID of the Customer which owns the label.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"resourceName": { +"description": "Immutable. The resource name of the ad group criterion label. Ad group criterion label resource names have the form: `customers/{customer_id}/adGroupCriterionLabels/{ad_group_id}~{criterion_id}~{label_id}`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__AdGroupEffectiveLabel": { +"description": "A relationship between an ad group and an effective label. An effective label is a label inherited or directly assigned to this ad group.", +"id": "GoogleAdsSearchads360V0Resources__AdGroupEffectiveLabel", +"properties": { +"adGroup": { +"description": "Immutable. The ad group to which the effective label is attached.", +"type": "string" +}, +"label": { +"description": "Immutable. The effective label assigned to the ad group.", +"type": "string" +}, +"ownerCustomerId": { +"description": "Output only. The ID of the Customer which owns the effective label.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"resourceName": { +"description": "Immutable. The resource name of the ad group effective label. Ad group effective label resource names have the form: `customers/{customer_id}/adGroupEffectiveLabels/{ad_group_id}~{label_id}`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__AdGroupLabel": { +"description": "A relationship between an ad group and a label.", +"id": "GoogleAdsSearchads360V0Resources__AdGroupLabel", +"properties": { +"adGroup": { +"description": "Immutable. The ad group to which the label is attached.", +"type": "string" +}, +"label": { +"description": "Immutable. The label assigned to the ad group.", +"type": "string" +}, +"ownerCustomerId": { +"description": "Output only. The ID of the Customer which owns the label.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"resourceName": { +"description": "Immutable. The resource name of the ad group label. Ad group label resource names have the form: `customers/{customer_id}/adGroupLabels/{ad_group_id}~{label_id}`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__AgeRangeView": { +"description": "An age range view.", +"id": "GoogleAdsSearchads360V0Resources__AgeRangeView", +"properties": { +"resourceName": { +"description": "Output only. The resource name of the age range view. Age range view resource names have the form: `customers/{customer_id}/ageRangeViews/{ad_group_id}~{criterion_id}`", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__Asset": { +"description": "Asset is a part of an ad which can be shared across multiple ads. It can be an image (ImageAsset), a video (YoutubeVideoAsset), etc. Assets are immutable and cannot be removed. To stop an asset from serving, remove the asset from the entity that is using it.", +"id": "GoogleAdsSearchads360V0Resources__Asset", +"properties": { +"callAsset": { +"$ref": "GoogleAdsSearchads360V0Common__UnifiedCallAsset", +"description": "Output only. A unified call asset.", +"readOnly": true +}, +"callToActionAsset": { +"$ref": "GoogleAdsSearchads360V0Common__CallToActionAsset", +"description": "Immutable. A call to action asset." +}, +"calloutAsset": { +"$ref": "GoogleAdsSearchads360V0Common__UnifiedCalloutAsset", +"description": "Output only. A unified callout asset.", +"readOnly": true +}, +"creationTime": { +"description": "Output only. The timestamp when this asset was created. The timestamp is in the customer's time zone and in \"yyyy-MM-dd HH:mm:ss\" format.", +"readOnly": true, +"type": "string" +}, +"engineStatus": { +"description": "Output only. The Engine Status for an asset.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"SERVING", +"SERVING_LIMITED", +"DISAPPROVED", +"DISABLED", +"REMOVED" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"The asset is active.", +"The asset is active limited.", +"The asset is disapproved (not eligible).", +"The asset is inactive (pending).", +"The asset has been removed." +], +"readOnly": true, +"type": "string" +}, +"finalUrls": { +"description": "A list of possible final URLs after all cross domain redirects.", +"items": { +"type": "string" +}, +"type": "array" +}, +"id": { +"description": "Output only. The ID of the asset.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"imageAsset": { +"$ref": "GoogleAdsSearchads360V0Common__ImageAsset", +"description": "Output only. An image asset.", +"readOnly": true +}, +"lastModifiedTime": { +"description": "Output only. The datetime when this asset was last modified. The datetime is in the customer's time zone and in \"yyyy-MM-dd HH:mm:ss.ssssss\" format.", +"readOnly": true, +"type": "string" +}, +"locationAsset": { +"$ref": "GoogleAdsSearchads360V0Common__UnifiedLocationAsset", +"description": "Output only. A unified location asset.", +"readOnly": true +}, +"mobileAppAsset": { +"$ref": "GoogleAdsSearchads360V0Common__MobileAppAsset", +"description": "A mobile app asset." +}, +"name": { +"description": "Optional name of the asset.", +"type": "string" +}, +"pageFeedAsset": { +"$ref": "GoogleAdsSearchads360V0Common__UnifiedPageFeedAsset", +"description": "Output only. A unified page feed asset.", +"readOnly": true +}, +"resourceName": { +"description": "Immutable. The resource name of the asset. Asset resource names have the form: `customers/{customer_id}/assets/{asset_id}`", +"type": "string" +}, +"sitelinkAsset": { +"$ref": "GoogleAdsSearchads360V0Common__UnifiedSitelinkAsset", +"description": "Output only. A unified sitelink asset.", +"readOnly": true +}, +"status": { +"description": "Output only. The status of the asset.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"ENABLED", +"REMOVED", +"ARCHIVED", +"PENDING_SYSTEM_GENERATED" +], +"enumDescriptions": [ +"The status has not been specified.", +"The received value is not known in this version. This is a response-only value.", +"The asset is enabled.", +"The asset is removed.", +"The asset is archived.", +"The asset is system generated pending user review." +], +"readOnly": true, +"type": "string" +}, +"textAsset": { +"$ref": "GoogleAdsSearchads360V0Common__TextAsset", +"description": "Output only. A text asset.", +"readOnly": true +}, +"trackingUrlTemplate": { +"description": "URL template for constructing a tracking URL.", +"type": "string" +}, +"type": { +"description": "Output only. Type of the asset.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"YOUTUBE_VIDEO", +"MEDIA_BUNDLE", +"IMAGE", +"TEXT", +"LEAD_FORM", +"BOOK_ON_GOOGLE", +"PROMOTION", +"CALLOUT", +"STRUCTURED_SNIPPET", +"SITELINK", +"PAGE_FEED", +"DYNAMIC_EDUCATION", +"MOBILE_APP", +"HOTEL_CALLOUT", +"CALL", +"PRICE", +"CALL_TO_ACTION", +"DYNAMIC_REAL_ESTATE", +"DYNAMIC_CUSTOM", +"DYNAMIC_HOTELS_AND_RENTALS", +"DYNAMIC_FLIGHTS", +"DISCOVERY_CAROUSEL_CARD", +"DYNAMIC_TRAVEL", +"DYNAMIC_LOCAL", +"DYNAMIC_JOBS", +"LOCATION", +"HOTEL_PROPERTY" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"YouTube video asset.", +"Media bundle asset.", +"Image asset.", +"Text asset.", +"Lead form asset.", +"Book on Google asset.", +"Promotion asset.", +"Callout asset.", +"Structured Snippet asset.", +"Sitelink asset.", +"Page Feed asset.", +"Dynamic Education asset.", +"Mobile app asset.", +"Hotel callout asset.", +"Call asset.", +"Price asset.", +"Call to action asset.", +"Dynamic real estate asset.", +"Dynamic custom asset.", +"Dynamic hotels and rentals asset.", +"Dynamic flights asset.", +"Discovery Carousel Card asset.", +"Dynamic travel asset.", +"Dynamic local asset.", +"Dynamic jobs asset.", +"Location asset.", +"Hotel property asset." +], +"readOnly": true, +"type": "string" +}, +"youtubeVideoAsset": { +"$ref": "GoogleAdsSearchads360V0Common__YoutubeVideoAsset", +"description": "Immutable. A YouTube video asset." +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__AssetGroup": { +"description": "An asset group. AssetGroupAsset is used to link an asset to the asset group. AssetGroupSignal is used to associate a signal to an asset group.", +"id": "GoogleAdsSearchads360V0Resources__AssetGroup", +"properties": { +"adStrength": { +"description": "Output only. Overall ad strength of this asset group.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"PENDING", +"NO_ADS", +"POOR", +"AVERAGE", +"GOOD", +"EXCELLENT" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"The ad strength is currently pending.", +"No ads could be generated.", +"Poor strength.", +"Average strength.", +"Good strength.", +"Excellent strength." +], +"readOnly": true, +"type": "string" +}, +"campaign": { +"description": "Immutable. The campaign with which this asset group is associated. The asset which is linked to the asset group.", +"type": "string" +}, +"finalMobileUrls": { +"description": "A list of final mobile URLs after all cross domain redirects. In performance max, by default, the urls are eligible for expansion unless opted out.", +"items": { +"type": "string" +}, +"type": "array" +}, +"finalUrls": { +"description": "A list of final URLs after all cross domain redirects. In performance max, by default, the urls are eligible for expansion unless opted out.", +"items": { +"type": "string" +}, +"type": "array" +}, +"id": { +"description": "Output only. The ID of the asset group.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Required. Name of the asset group. Required. It must have a minimum length of 1 and maximum length of 128. It must be unique under a campaign.", +"type": "string" +}, +"path1": { +"description": "First part of text that may appear appended to the url displayed in the ad.", +"type": "string" +}, +"path2": { +"description": "Second part of text that may appear appended to the url displayed in the ad. This field can only be set when path1 is set.", +"type": "string" +}, +"resourceName": { +"description": "Immutable. The resource name of the asset group. Asset group resource names have the form: `customers/{customer_id}/assetGroups/{asset_group_id}`", +"type": "string" +}, +"status": { +"description": "The status of the asset group.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"ENABLED", +"PAUSED", +"REMOVED" +], +"enumDescriptions": [ +"The status has not been specified.", +"The received value is not known in this version.", +"The asset group is enabled.", +"The asset group is paused.", +"The asset group is removed." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__AssetGroupAsset": { +"description": "AssetGroupAsset is the link between an asset and an asset group. Adding an AssetGroupAsset links an asset with an asset group.", +"id": "GoogleAdsSearchads360V0Resources__AssetGroupAsset", +"properties": { +"asset": { +"description": "Immutable. The asset which this asset group asset is linking.", +"type": "string" +}, +"assetGroup": { +"description": "Immutable. The asset group which this asset group asset is linking.", +"type": "string" +}, +"fieldType": { +"description": "The description of the placement of the asset within the asset group. For example: HEADLINE, YOUTUBE_VIDEO etc", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"HEADLINE", +"DESCRIPTION", +"MANDATORY_AD_TEXT", +"MARKETING_IMAGE", +"MEDIA_BUNDLE", +"YOUTUBE_VIDEO", +"BOOK_ON_GOOGLE", +"LEAD_FORM", +"PROMOTION", +"CALLOUT", +"STRUCTURED_SNIPPET", +"SITELINK", +"MOBILE_APP", +"HOTEL_CALLOUT", +"CALL", +"PRICE", +"LONG_HEADLINE", +"BUSINESS_NAME", +"SQUARE_MARKETING_IMAGE", +"PORTRAIT_MARKETING_IMAGE", +"LOGO", +"LANDSCAPE_LOGO", +"VIDEO", +"CALL_TO_ACTION_SELECTION", +"AD_IMAGE", +"BUSINESS_LOGO", +"HOTEL_PROPERTY", +"DISCOVERY_CAROUSEL_CARD" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"The asset is linked for use as a headline.", +"The asset is linked for use as a description.", +"The asset is linked for use as mandatory ad text.", +"The asset is linked for use as a marketing image.", +"The asset is linked for use as a media bundle.", +"The asset is linked for use as a YouTube video.", +"The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.", +"The asset is linked for use as a Lead Form extension.", +"The asset is linked for use as a Promotion extension.", +"The asset is linked for use as a Callout extension.", +"The asset is linked for use as a Structured Snippet extension.", +"The asset is linked for use as a Sitelink.", +"The asset is linked for use as a Mobile App extension.", +"The asset is linked for use as a Hotel Callout extension.", +"The asset is linked for use as a Call extension.", +"The asset is linked for use as a Price extension.", +"The asset is linked for use as a long headline.", +"The asset is linked for use as a business name.", +"The asset is linked for use as a square marketing image.", +"The asset is linked for use as a portrait marketing image.", +"The asset is linked for use as a logo.", +"The asset is linked for use as a landscape logo.", +"The asset is linked for use as a non YouTube logo.", +"The asset is linked for use to select a call-to-action.", +"The asset is linked for use to select an ad image.", +"The asset is linked for use as a business logo.", +"The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.", +"The asset is linked for use as a discovery carousel card." +], +"type": "string" +}, +"resourceName": { +"description": "Immutable. The resource name of the asset group asset. Asset group asset resource name have the form: `customers/{customer_id}/assetGroupAssets/{asset_group_id}~{asset_id}~{field_type}`", +"type": "string" +}, +"status": { +"description": "The status of the link between an asset and asset group.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"ENABLED", +"REMOVED", +"PAUSED" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"Asset link is enabled.", +"Asset link has been removed.", +"Asset link is paused." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__AssetGroupAssetCombinationData": { +"description": "Asset group asset combination data", +"id": "GoogleAdsSearchads360V0Resources__AssetGroupAssetCombinationData", +"properties": { +"assetCombinationServedAssets": { +"description": "Output only. Served assets.", +"items": { +"$ref": "GoogleAdsSearchads360V0Common__AssetUsage" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__AssetGroupListingGroupFilter": { +"description": "AssetGroupListingGroupFilter represents a listing group filter tree node in an asset group.", +"id": "GoogleAdsSearchads360V0Resources__AssetGroupListingGroupFilter", +"properties": { +"assetGroup": { +"description": "Immutable. The asset group which this asset group listing group filter is part of.", +"type": "string" +}, +"caseValue": { +"$ref": "GoogleAdsSearchads360V0Resources__ListingGroupFilterDimension", +"description": "Dimension value with which this listing group is refining its parent. Undefined for the root group." +}, +"id": { +"description": "Output only. The ID of the ListingGroupFilter.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"parentListingGroupFilter": { +"description": "Immutable. Resource name of the parent listing group subdivision. Null for the root listing group filter node.", +"type": "string" +}, +"path": { +"$ref": "GoogleAdsSearchads360V0Resources__ListingGroupFilterDimensionPath", +"description": "Output only. The path of dimensions defining this listing group filter.", +"readOnly": true +}, +"resourceName": { +"description": "Immutable. The resource name of the asset group listing group filter. Asset group listing group filter resource name have the form: `customers/{customer_id}/assetGroupListingGroupFilters/{asset_group_id}~{listing_group_filter_id}`", +"type": "string" +}, +"type": { +"description": "Immutable. Type of a listing group filter node.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"SUBDIVISION", +"UNIT_INCLUDED", +"UNIT_EXCLUDED" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"Subdivision of products along some listing dimensions.", +"An included listing group filter leaf node.", +"An excluded listing group filter leaf node." +], +"type": "string" +}, +"vertical": { +"description": "Immutable. The vertical the current node tree represents. All nodes in the same tree must belong to the same vertical.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"SHOPPING" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"Represents the shopping vertical. The vertical is allowed only in Performance Max for Retail campaigns." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__AssetGroupSignal": { +"description": "AssetGroupSignal represents a signal in an asset group. The existence of a signal tells the performance max campaign who's most likely to convert. Performance Max uses the signal to look for new people with similar or stronger intent to find conversions across Search, Display, Video, and more.", +"id": "GoogleAdsSearchads360V0Resources__AssetGroupSignal", +"properties": { +"assetGroup": { +"description": "Immutable. The asset group which this asset group signal belongs to.", +"type": "string" +}, +"audience": { +"$ref": "GoogleAdsSearchads360V0Common__AudienceInfo", +"description": "Immutable. The audience signal to be used by the performance max campaign." +}, +"resourceName": { +"description": "Immutable. The resource name of the asset group signal. Asset group signal resource name have the form: `customers/{customer_id}/assetGroupSignals/{asset_group_id}~{signal_id}`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__AssetGroupTopCombinationView": { +"description": "A view on the usage of ad group ad asset combination.", +"id": "GoogleAdsSearchads360V0Resources__AssetGroupTopCombinationView", +"properties": { +"assetGroupTopCombinations": { +"description": "Output only. The top combinations of assets that served together.", +"items": { +"$ref": "GoogleAdsSearchads360V0Resources__AssetGroupAssetCombinationData" +}, +"readOnly": true, +"type": "array" +}, +"resourceName": { +"description": "Output only. The resource name of the asset group top combination view. AssetGroup Top Combination view resource names have the form: `\"customers/{customer_id}/assetGroupTopCombinationViews/{asset_group_id}~{asset_combination_category}\"", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__AssetSet": { +"description": "An asset set representing a collection of assets. Use AssetSetAsset to link an asset to the asset set.", +"id": "GoogleAdsSearchads360V0Resources__AssetSet", +"properties": { +"id": { +"description": "Output only. The ID of the asset set.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"resourceName": { +"description": "Immutable. The resource name of the asset set. Asset set resource names have the form: `customers/{customer_id}/assetSets/{asset_set_id}`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__AssetSetAsset": { +"description": "AssetSetAsset is the link between an asset and an asset set. Adding an AssetSetAsset links an asset with an asset set.", +"id": "GoogleAdsSearchads360V0Resources__AssetSetAsset", +"properties": { +"asset": { +"description": "Immutable. The asset which this asset set asset is linking to.", +"type": "string" +}, +"assetSet": { +"description": "Immutable. The asset set which this asset set asset is linking to.", +"type": "string" +}, +"resourceName": { +"description": "Immutable. The resource name of the asset set asset. Asset set asset resource names have the form: `customers/{customer_id}/assetSetAssets/{asset_set_id}~{asset_id}`", +"type": "string" +}, +"status": { +"description": "Output only. The status of the asset set asset. Read-only.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"ENABLED", +"REMOVED" +], +"enumDescriptions": [ +"The status has not been specified.", +"The received value is not known in this version. This is a response-only value.", +"The asset set asset is enabled.", +"The asset set asset is removed." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__Audience": { +"description": "Audience is an effective targeting option that lets you intersect different segment attributes, such as detailed demographics and affinities, to create audiences that represent sections of your target segments.", +"id": "GoogleAdsSearchads360V0Resources__Audience", +"properties": { +"description": { +"description": "Description of this audience.", +"type": "string" +}, +"id": { +"description": "Output only. ID of the audience.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Required. Name of the audience. It should be unique across all audiences. It must have a minimum length of 1 and maximum length of 255.", +"type": "string" +}, +"resourceName": { +"description": "Immutable. The resource name of the audience. Audience names have the form: `customers/{customer_id}/audiences/{audience_id}`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__BiddingStrategy": { +"description": "A bidding strategy.", +"id": "GoogleAdsSearchads360V0Resources__BiddingStrategy", +"properties": { +"campaignCount": { +"description": "Output only. The number of campaigns attached to this bidding strategy. This field is read-only.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"currencyCode": { +"description": "Immutable. The currency used by the bidding strategy (ISO 4217 three-letter code). For bidding strategies in manager customers, this currency can be set on creation and defaults to the manager customer's currency. For serving customers, this field cannot be set; all strategies in a serving customer implicitly use the serving customer's currency. In all cases the effective_currency_code field returns the currency used by the strategy.", +"type": "string" +}, +"effectiveCurrencyCode": { +"description": "Output only. The currency used by the bidding strategy (ISO 4217 three-letter code). For bidding strategies in manager customers, this is the currency set by the advertiser when creating the strategy. For serving customers, this is the customer's currency_code. Bidding strategy metrics are reported in this currency. This field is read-only.", +"readOnly": true, +"type": "string" +}, +"enhancedCpc": { +"$ref": "GoogleAdsSearchads360V0Common__EnhancedCpc", +"description": "A bidding strategy that raises bids for clicks that seem more likely to lead to a conversion and lowers them for clicks where they seem less likely." +}, +"id": { +"description": "Output only. The ID of the bidding strategy.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"maximizeConversionValue": { +"$ref": "GoogleAdsSearchads360V0Common__MaximizeConversionValue", +"description": "An automated bidding strategy to help get the most conversion value for your campaigns while spending your budget." +}, +"maximizeConversions": { +"$ref": "GoogleAdsSearchads360V0Common__MaximizeConversions", +"description": "An automated bidding strategy to help get the most conversions for your campaigns while spending your budget." +}, +"name": { +"description": "The name of the bidding strategy. All bidding strategies within an account must be named distinctly. The length of this string should be between 1 and 255, inclusive, in UTF-8 bytes, (trimmed).", +"type": "string" +}, +"nonRemovedCampaignCount": { +"description": "Output only. The number of non-removed campaigns attached to this bidding strategy. This field is read-only.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"resourceName": { +"description": "Immutable. The resource name of the bidding strategy. Bidding strategy resource names have the form: `customers/{customer_id}/biddingStrategies/{bidding_strategy_id}`", +"type": "string" +}, +"status": { +"description": "Output only. The status of the bidding strategy. This field is read-only.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"ENABLED", +"REMOVED" +], +"enumDescriptions": [ +"No value has been specified.", +"The received value is not known in this version. This is a response-only value.", +"The bidding strategy is enabled.", +"The bidding strategy is removed." +], +"readOnly": true, +"type": "string" +}, +"targetCpa": { +"$ref": "GoogleAdsSearchads360V0Common__TargetCpa", +"description": "A bidding strategy that sets bids to help get as many conversions as possible at the target cost-per-acquisition (CPA) you set." +}, +"targetImpressionShare": { +"$ref": "GoogleAdsSearchads360V0Common__TargetImpressionShare", +"description": "A bidding strategy that automatically optimizes towards a chosen percentage of impressions." +}, +"targetOutrankShare": { +"$ref": "GoogleAdsSearchads360V0Common__TargetOutrankShare", +"description": "A bidding strategy that sets bids based on the target fraction of auctions where the advertiser should outrank a specific competitor. This field is deprecated. Creating a new bidding strategy with this field or attaching bidding strategies with this field to a campaign will fail. Mutates to strategies that already have this scheme populated are allowed." +}, +"targetRoas": { +"$ref": "GoogleAdsSearchads360V0Common__TargetRoas", +"description": "A bidding strategy that helps you maximize revenue while averaging a specific target Return On Ad Spend (ROAS)." +}, +"targetSpend": { +"$ref": "GoogleAdsSearchads360V0Common__TargetSpend", +"description": "A bid strategy that sets your bids to help get as many clicks as possible within your budget." +}, +"type": { +"description": "Output only. The type of the bidding strategy. Create a bidding strategy by setting the bidding scheme. This field is read-only.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"COMMISSION", +"ENHANCED_CPC", +"INVALID", +"MANUAL_CPA", +"MANUAL_CPC", +"MANUAL_CPM", +"MANUAL_CPV", +"MAXIMIZE_CONVERSIONS", +"MAXIMIZE_CONVERSION_VALUE", +"PAGE_ONE_PROMOTED", +"PERCENT_CPC", +"TARGET_CPA", +"TARGET_CPM", +"TARGET_IMPRESSION_SHARE", +"TARGET_OUTRANK_SHARE", +"TARGET_ROAS", +"TARGET_SPEND" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"Commission is an automatic bidding strategy in which the advertiser pays a certain portion of the conversion value.", +"Enhanced CPC is a bidding strategy that raises bids for clicks that seem more likely to lead to a conversion and lowers them for clicks where they seem less likely.", +"Used for return value only. Indicates that a campaign does not have a bidding strategy. This prevents the campaign from serving. For example, a campaign may be attached to a manager bidding strategy and the serving account is subsequently unlinked from the manager account. In this case the campaign will automatically be detached from the now inaccessible manager bidding strategy and transition to the INVALID bidding strategy type.", +"Manual bidding strategy that allows advertiser to set the bid per advertiser-specified action.", +"Manual click based bidding where user pays per click.", +"Manual impression based bidding where user pays per thousand impressions.", +"A bidding strategy that pays a configurable amount per video view.", +"A bidding strategy that automatically maximizes number of conversions given a daily budget.", +"An automated bidding strategy that automatically sets bids to maximize revenue while spending your budget.", +"Page-One Promoted bidding scheme, which sets max cpc bids to target impressions on page one or page one promoted slots on google.com. This enum value is deprecated.", +"Percent Cpc is bidding strategy where bids are a fraction of the advertised price for some good or service.", +"Target CPA is an automated bid strategy that sets bids to help get as many conversions as possible at the target cost-per-acquisition (CPA) you set.", +"Target CPM is an automated bid strategy that sets bids to help get as many impressions as possible at the target cost per one thousand impressions (CPM) you set.", +"An automated bidding strategy that sets bids so that a certain percentage of search ads are shown at the top of the first page (or other targeted location).", +"Target Outrank Share is an automated bidding strategy that sets bids based on the target fraction of auctions where the advertiser should outrank a specific competitor. This enum value is deprecated.", +"Target ROAS is an automated bidding strategy that helps you maximize revenue while averaging a specific target Return On Average Spend (ROAS).", +"Target Spend is an automated bid strategy that sets your bids to help get as many clicks as possible within your budget." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__Campaign": { +"description": "A campaign.", +"id": "GoogleAdsSearchads360V0Resources__Campaign", +"properties": { +"accessibleBiddingStrategy": { +"description": "Output only. Resource name of AccessibleBiddingStrategy, a read-only view of the unrestricted attributes of the attached portfolio bidding strategy identified by 'bidding_strategy'. Empty, if the campaign does not use a portfolio strategy. Unrestricted strategy attributes are available to all customers with whom the strategy is shared and are read from the AccessibleBiddingStrategy resource. In contrast, restricted attributes are only available to the owner customer of the strategy and their managers. Restricted attributes can only be read from the BiddingStrategy resource.", +"readOnly": true, +"type": "string" +}, +"adServingOptimizationStatus": { +"description": "The ad serving optimization status of the campaign.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"OPTIMIZE", +"CONVERSION_OPTIMIZE", +"ROTATE", +"ROTATE_INDEFINITELY", +"UNAVAILABLE" +], +"enumDescriptions": [ +"No value has been specified.", +"The received value is not known in this version. This is a response-only value.", +"Ad serving is optimized based on CTR for the campaign.", +"Ad serving is optimized based on CTR * Conversion for the campaign. If the campaign is not in the conversion optimizer bidding strategy, it will default to OPTIMIZED.", +"Ads are rotated evenly for 90 days, then optimized for clicks.", +"Show lower performing ads more evenly with higher performing ads, and do not optimize.", +"Ad serving optimization status is not available." +], +"type": "string" +}, +"advertisingChannelSubType": { +"description": "Immutable. Optional refinement to `advertising_channel_type`. Must be a valid sub-type of the parent channel type. Can be set only when creating campaigns. After campaign is created, the field can not be changed.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"SEARCH_MOBILE_APP", +"DISPLAY_MOBILE_APP", +"SEARCH_EXPRESS", +"DISPLAY_EXPRESS", +"SHOPPING_SMART_ADS", +"DISPLAY_GMAIL_AD", +"DISPLAY_SMART_CAMPAIGN", +"VIDEO_OUTSTREAM", +"VIDEO_ACTION", +"VIDEO_NON_SKIPPABLE", +"APP_CAMPAIGN", +"APP_CAMPAIGN_FOR_ENGAGEMENT", +"LOCAL_CAMPAIGN", +"SHOPPING_COMPARISON_LISTING_ADS", +"SMART_CAMPAIGN", +"VIDEO_SEQUENCE", +"APP_CAMPAIGN_FOR_PRE_REGISTRATION", +"VIDEO_REACH_TARGET_FREQUENCY", +"TRAVEL_ACTIVITIES", +"SOCIAL_FACEBOOK_TRACKING_ONLY" +], +"enumDescriptions": [ +"Not specified.", +"Used as a return value only. Represents value unknown in this version.", +"Mobile app campaigns for Search.", +"Mobile app campaigns for Display.", +"AdWords express campaigns for search.", +"AdWords Express campaigns for display.", +"Smart Shopping campaigns.", +"Gmail Ad campaigns.", +"Smart display campaigns. New campaigns of this sub type cannot be created.", +"Video Outstream campaigns.", +"Video TrueView for Action campaigns.", +"Video campaigns with non-skippable video ads.", +"App Campaign that lets you easily promote your Android or iOS app across Google's top properties including Search, Play, YouTube, and the Google Display Network.", +"App Campaign for engagement, focused on driving re-engagement with the app across several of Google's top properties including Search, YouTube, and the Google Display Network.", +"Campaigns specialized for local advertising.", +"Shopping Comparison Listing campaigns.", +"Standard Smart campaigns.", +"Video campaigns with sequence video ads.", +"App Campaign for pre registration, specialized for advertising mobile app pre-registration, that targets multiple advertising channels across Google Play, YouTube and Display Network.", +"Video reach campaign with Target Frequency bidding strategy.", +"Travel Activities campaigns.", +"Facebook tracking only social campaigns." +], +"type": "string" +}, +"advertisingChannelType": { +"description": "Immutable. The primary serving target for ads within the campaign. The targeting options can be refined in `network_settings`. This field is required and should not be empty when creating new campaigns. Can be set only when creating campaigns. After the campaign is created, the field can not be changed.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"SEARCH", +"DISPLAY", +"SHOPPING", +"HOTEL", +"VIDEO", +"MULTI_CHANNEL", +"LOCAL", +"SMART", +"PERFORMANCE_MAX", +"LOCAL_SERVICES", +"DISCOVERY", +"TRAVEL", +"SOCIAL" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"Search Network. Includes display bundled, and Search+ campaigns.", +"Google Display Network only.", +"Shopping campaigns serve on the shopping property and on google.com search results.", +"Hotel Ads campaigns.", +"Video campaigns.", +"App Campaigns, and App Campaigns for Engagement, that run across multiple channels.", +"Local ads campaigns.", +"Smart campaigns.", +"Performance Max campaigns.", +"Local services campaigns.", +"Discovery campaigns.", +"Travel campaigns.", +"Social campaigns." +], +"type": "string" +}, +"biddingStrategy": { +"description": "The resource name of the portfolio bidding strategy used by the campaign.", +"type": "string" +}, +"biddingStrategySystemStatus": { +"description": "Output only. The system status of the campaign's bidding strategy.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"ENABLED", +"LEARNING_NEW", +"LEARNING_SETTING_CHANGE", +"LEARNING_BUDGET_CHANGE", +"LEARNING_COMPOSITION_CHANGE", +"LEARNING_CONVERSION_TYPE_CHANGE", +"LEARNING_CONVERSION_SETTING_CHANGE", +"LIMITED_BY_CPC_BID_CEILING", +"LIMITED_BY_CPC_BID_FLOOR", +"LIMITED_BY_DATA", +"LIMITED_BY_BUDGET", +"LIMITED_BY_LOW_PRIORITY_SPEND", +"LIMITED_BY_LOW_QUALITY", +"LIMITED_BY_INVENTORY", +"MISCONFIGURED_ZERO_ELIGIBILITY", +"MISCONFIGURED_CONVERSION_TYPES", +"MISCONFIGURED_CONVERSION_SETTINGS", +"MISCONFIGURED_SHARED_BUDGET", +"MISCONFIGURED_STRATEGY_TYPE", +"PAUSED", +"UNAVAILABLE", +"MULTIPLE_LEARNING", +"MULTIPLE_LIMITED", +"MULTIPLE_MISCONFIGURED", +"MULTIPLE" +], +"enumDescriptions": [ +"Signals that an unexpected error occurred, for example, no bidding strategy type was found, or no status information was found.", +"Used for return value only. Represents value unknown in this version.", +"The bid strategy is active, and AdWords cannot find any specific issues with the strategy.", +"The bid strategy is learning because it has been recently created or recently reactivated.", +"The bid strategy is learning because of a recent setting change.", +"The bid strategy is learning because of a recent budget change.", +"The bid strategy is learning because of recent change in number of campaigns, ad groups or keywords attached to it.", +"The bid strategy depends on conversion reporting and the customer recently modified conversion types that were relevant to the bid strategy.", +"The bid strategy depends on conversion reporting and the customer recently changed their conversion settings.", +"The bid strategy is limited by its bid ceiling.", +"The bid strategy is limited by its bid floor.", +"The bid strategy is limited because there was not enough conversion traffic over the past weeks.", +"A significant fraction of keywords in this bid strategy are limited by budget.", +"The bid strategy cannot reach its target spend because its spend has been de-prioritized.", +"A significant fraction of keywords in this bid strategy have a low Quality Score.", +"The bid strategy cannot fully spend its budget because of narrow targeting.", +"Missing conversion tracking (no pings present) and/or remarketing lists for SSC.", +"The bid strategy depends on conversion reporting and the customer is lacking conversion types that might be reported against this strategy.", +"The bid strategy depends on conversion reporting and the customer's conversion settings are misconfigured.", +"There are campaigns outside the bid strategy that share budgets with campaigns included in the strategy.", +"The campaign has an invalid strategy type and is not serving.", +"The bid strategy is not active. Either there are no active campaigns, ad groups or keywords attached to the bid strategy. Or there are no active budgets connected to the bid strategy.", +"This bid strategy currently does not support status reporting.", +"There were multiple LEARNING_* system statuses for this bid strategy during the time in question.", +"There were multiple LIMITED_* system statuses for this bid strategy during the time in question.", +"There were multiple MISCONFIGURED_* system statuses for this bid strategy during the time in question.", +"There were multiple system statuses for this bid strategy during the time in question." +], +"readOnly": true, +"type": "string" +}, +"biddingStrategyType": { +"description": "Output only. The type of bidding strategy. A bidding strategy can be created by setting either the bidding scheme to create a standard bidding strategy or the `bidding_strategy` field to create a portfolio bidding strategy. This field is read-only.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"COMMISSION", +"ENHANCED_CPC", +"INVALID", +"MANUAL_CPA", +"MANUAL_CPC", +"MANUAL_CPM", +"MANUAL_CPV", +"MAXIMIZE_CONVERSIONS", +"MAXIMIZE_CONVERSION_VALUE", +"PAGE_ONE_PROMOTED", +"PERCENT_CPC", +"TARGET_CPA", +"TARGET_CPM", +"TARGET_IMPRESSION_SHARE", +"TARGET_OUTRANK_SHARE", +"TARGET_ROAS", +"TARGET_SPEND" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"Commission is an automatic bidding strategy in which the advertiser pays a certain portion of the conversion value.", +"Enhanced CPC is a bidding strategy that raises bids for clicks that seem more likely to lead to a conversion and lowers them for clicks where they seem less likely.", +"Used for return value only. Indicates that a campaign does not have a bidding strategy. This prevents the campaign from serving. For example, a campaign may be attached to a manager bidding strategy and the serving account is subsequently unlinked from the manager account. In this case the campaign will automatically be detached from the now inaccessible manager bidding strategy and transition to the INVALID bidding strategy type.", +"Manual bidding strategy that allows advertiser to set the bid per advertiser-specified action.", +"Manual click based bidding where user pays per click.", +"Manual impression based bidding where user pays per thousand impressions.", +"A bidding strategy that pays a configurable amount per video view.", +"A bidding strategy that automatically maximizes number of conversions given a daily budget.", +"An automated bidding strategy that automatically sets bids to maximize revenue while spending your budget.", +"Page-One Promoted bidding scheme, which sets max cpc bids to target impressions on page one or page one promoted slots on google.com. This enum value is deprecated.", +"Percent Cpc is bidding strategy where bids are a fraction of the advertised price for some good or service.", +"Target CPA is an automated bid strategy that sets bids to help get as many conversions as possible at the target cost-per-acquisition (CPA) you set.", +"Target CPM is an automated bid strategy that sets bids to help get as many impressions as possible at the target cost per one thousand impressions (CPM) you set.", +"An automated bidding strategy that sets bids so that a certain percentage of search ads are shown at the top of the first page (or other targeted location).", +"Target Outrank Share is an automated bidding strategy that sets bids based on the target fraction of auctions where the advertiser should outrank a specific competitor. This enum value is deprecated.", +"Target ROAS is an automated bidding strategy that helps you maximize revenue while averaging a specific target Return On Average Spend (ROAS).", +"Target Spend is an automated bid strategy that sets your bids to help get as many clicks as possible within your budget." +], +"readOnly": true, +"type": "string" +}, +"campaignBudget": { +"description": "The resource name of the campaign budget of the campaign.", +"type": "string" +}, +"createTime": { +"description": "Output only. The timestamp when this campaign was created. The timestamp is in the customer's time zone and in \"yyyy-MM-dd HH:mm:ss\" format. create_time will be deprecated in v1. Use creation_time instead.", +"readOnly": true, +"type": "string" +}, +"creationTime": { +"description": "Output only. The timestamp when this campaign was created. The timestamp is in the customer's time zone and in \"yyyy-MM-dd HH:mm:ss\" format.", +"readOnly": true, +"type": "string" +}, +"dynamicSearchAdsSetting": { +"$ref": "GoogleAdsSearchads360V0Resources_Campaign_DynamicSearchAdsSetting", +"description": "The setting for controlling Dynamic Search Ads (DSA)." +}, +"effectiveLabels": { +"description": "Output only. The resource names of effective labels attached to this campaign. An effective label is a label inherited or directly assigned to this campaign.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"endDate": { +"description": "The last day of the campaign in serving customer's timezone in YYYY-MM-DD format. On create, defaults to 2037-12-30, which means the campaign will run indefinitely. To set an existing campaign to run indefinitely, set this field to 2037-12-30.", +"type": "string" +}, +"engineId": { +"description": "Output only. ID of the campaign in the external engine account. This field is for non-Google Ads account only, for example, Yahoo Japan, Microsoft, Baidu etc. For Google Ads entity, use \"campaign.id\" instead.", +"readOnly": true, +"type": "string" +}, +"excludedParentAssetFieldTypes": { +"description": "The asset field types that should be excluded from this campaign. Asset links with these field types will not be inherited by this campaign from the upper level.", +"items": { +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"HEADLINE", +"DESCRIPTION", +"MANDATORY_AD_TEXT", +"MARKETING_IMAGE", +"MEDIA_BUNDLE", +"YOUTUBE_VIDEO", +"BOOK_ON_GOOGLE", +"LEAD_FORM", +"PROMOTION", +"CALLOUT", +"STRUCTURED_SNIPPET", +"SITELINK", +"MOBILE_APP", +"HOTEL_CALLOUT", +"CALL", +"PRICE", +"LONG_HEADLINE", +"BUSINESS_NAME", +"SQUARE_MARKETING_IMAGE", +"PORTRAIT_MARKETING_IMAGE", +"LOGO", +"LANDSCAPE_LOGO", +"VIDEO", +"CALL_TO_ACTION_SELECTION", +"AD_IMAGE", +"BUSINESS_LOGO", +"HOTEL_PROPERTY", +"DISCOVERY_CAROUSEL_CARD" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"The asset is linked for use as a headline.", +"The asset is linked for use as a description.", +"The asset is linked for use as mandatory ad text.", +"The asset is linked for use as a marketing image.", +"The asset is linked for use as a media bundle.", +"The asset is linked for use as a YouTube video.", +"The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.", +"The asset is linked for use as a Lead Form extension.", +"The asset is linked for use as a Promotion extension.", +"The asset is linked for use as a Callout extension.", +"The asset is linked for use as a Structured Snippet extension.", +"The asset is linked for use as a Sitelink.", +"The asset is linked for use as a Mobile App extension.", +"The asset is linked for use as a Hotel Callout extension.", +"The asset is linked for use as a Call extension.", +"The asset is linked for use as a Price extension.", +"The asset is linked for use as a long headline.", +"The asset is linked for use as a business name.", +"The asset is linked for use as a square marketing image.", +"The asset is linked for use as a portrait marketing image.", +"The asset is linked for use as a logo.", +"The asset is linked for use as a landscape logo.", +"The asset is linked for use as a non YouTube logo.", +"The asset is linked for use to select a call-to-action.", +"The asset is linked for use to select an ad image.", +"The asset is linked for use as a business logo.", +"The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.", +"The asset is linked for use as a discovery carousel card." +], +"type": "string" +}, +"type": "array" +}, +"finalUrlSuffix": { +"description": "Suffix used to append query parameters to landing pages that are served with parallel tracking.", +"type": "string" +}, +"frequencyCaps": { +"description": "A list that limits how often each user will see this campaign's ads.", +"items": { +"$ref": "GoogleAdsSearchads360V0Common__FrequencyCapEntry" +}, +"type": "array" +}, +"geoTargetTypeSetting": { +"$ref": "GoogleAdsSearchads360V0Resources_Campaign_GeoTargetTypeSetting", +"description": "The setting for ads geotargeting." +}, +"id": { +"description": "Output only. The ID of the campaign.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"labels": { +"description": "Output only. The resource names of labels attached to this campaign.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"lastModifiedTime": { +"description": "Output only. The datetime when this campaign was last modified. The datetime is in the customer's time zone and in \"yyyy-MM-dd HH:mm:ss.ssssss\" format.", +"readOnly": true, +"type": "string" +}, +"manualCpa": { +"$ref": "GoogleAdsSearchads360V0Common__ManualCpa", +"description": "Standard Manual CPA bidding strategy. Manual bidding strategy that allows advertiser to set the bid per advertiser-specified action. Supported only for Local Services campaigns." +}, +"manualCpc": { +"$ref": "GoogleAdsSearchads360V0Common__ManualCpc", +"description": "Standard Manual CPC bidding strategy. Manual click-based bidding where user pays per click." +}, +"manualCpm": { +"$ref": "GoogleAdsSearchads360V0Common__ManualCpm", +"description": "Standard Manual CPM bidding strategy. Manual impression-based bidding where user pays per thousand impressions." +}, +"maximizeConversionValue": { +"$ref": "GoogleAdsSearchads360V0Common__MaximizeConversionValue", +"description": "Standard Maximize Conversion Value bidding strategy that automatically sets bids to maximize revenue while spending your budget." +}, +"maximizeConversions": { +"$ref": "GoogleAdsSearchads360V0Common__MaximizeConversions", +"description": "Standard Maximize Conversions bidding strategy that automatically maximizes number of conversions while spending your budget." +}, +"name": { +"description": "The name of the campaign. This field is required and should not be empty when creating new campaigns. It must not contain any null (code point 0x0), NL line feed (code point 0xA) or carriage return (code point 0xD) characters.", +"type": "string" +}, +"networkSettings": { +"$ref": "GoogleAdsSearchads360V0Resources_Campaign_NetworkSettings", +"description": "The network settings for the campaign." +}, +"optimizationGoalSetting": { +"$ref": "GoogleAdsSearchads360V0Resources_Campaign_OptimizationGoalSetting", +"description": "Optimization goal setting for this campaign, which includes a set of optimization goal types." +}, +"percentCpc": { +"$ref": "GoogleAdsSearchads360V0Common__PercentCpc", +"description": "Standard Percent Cpc bidding strategy where bids are a fraction of the advertised price for some good or service." +}, +"realTimeBiddingSetting": { +"$ref": "GoogleAdsSearchads360V0Common__RealTimeBiddingSetting", +"description": "Settings for Real-Time Bidding, a feature only available for campaigns targeting the Ad Exchange network." +}, +"resourceName": { +"description": "Immutable. The resource name of the campaign. Campaign resource names have the form: `customers/{customer_id}/campaigns/{campaign_id}`", +"type": "string" +}, +"selectiveOptimization": { +"$ref": "GoogleAdsSearchads360V0Resources_Campaign_SelectiveOptimization", +"description": "Selective optimization setting for this campaign, which includes a set of conversion actions to optimize this campaign towards. This feature only applies to app campaigns that use MULTI_CHANNEL as AdvertisingChannelType and APP_CAMPAIGN or APP_CAMPAIGN_FOR_ENGAGEMENT as AdvertisingChannelSubType." +}, +"servingStatus": { +"description": "Output only. The ad serving status of the campaign.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"SERVING", +"NONE", +"ENDED", +"PENDING", +"SUSPENDED" +], +"enumDescriptions": [ +"No value has been specified.", +"The received value is not known in this version. This is a response-only value.", +"Serving.", +"None.", +"Ended.", +"Pending.", +"Suspended." +], +"readOnly": true, +"type": "string" +}, +"shoppingSetting": { +"$ref": "GoogleAdsSearchads360V0Resources_Campaign_ShoppingSetting", +"description": "The setting for controlling Shopping campaigns." +}, +"startDate": { +"description": "The date when campaign started in serving customer's timezone in YYYY-MM-DD format.", +"type": "string" +}, +"status": { +"description": "The status of the campaign. When a new campaign is added, the status defaults to ENABLED.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"ENABLED", +"PAUSED", +"REMOVED" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"Campaign is active and can show ads.", +"Campaign has been paused by the user.", +"Campaign has been removed." +], +"type": "string" +}, +"targetCpa": { +"$ref": "GoogleAdsSearchads360V0Common__TargetCpa", +"description": "Standard Target CPA bidding strategy that automatically sets bids to help get as many conversions as possible at the target cost-per-acquisition (CPA) you set." +}, +"targetCpm": { +"$ref": "GoogleAdsSearchads360V0Common__TargetCpm", +"description": "A bidding strategy that automatically optimizes cost per thousand impressions." +}, +"targetImpressionShare": { +"$ref": "GoogleAdsSearchads360V0Common__TargetImpressionShare", +"description": "Target Impression Share bidding strategy. An automated bidding strategy that sets bids to achieve a chosen percentage of impressions." +}, +"targetRoas": { +"$ref": "GoogleAdsSearchads360V0Common__TargetRoas", +"description": "Standard Target ROAS bidding strategy that automatically maximizes revenue while averaging a specific target return on ad spend (ROAS)." +}, +"targetSpend": { +"$ref": "GoogleAdsSearchads360V0Common__TargetSpend", +"description": "Standard Target Spend bidding strategy that automatically sets your bids to help get as many clicks as possible within your budget." +}, +"trackingSetting": { +"$ref": "GoogleAdsSearchads360V0Resources_Campaign_TrackingSetting", +"description": "Output only. Campaign-level settings for tracking information.", +"readOnly": true +}, +"trackingUrlTemplate": { +"description": "The URL template for constructing a tracking URL.", +"type": "string" +}, +"urlCustomParameters": { +"description": "The list of mappings used to substitute custom parameter tags in a `tracking_url_template`, `final_urls`, or `mobile_final_urls`.", +"items": { +"$ref": "GoogleAdsSearchads360V0Common__CustomParameter" +}, +"type": "array" +}, +"urlExpansionOptOut": { +"description": "Represents opting out of URL expansion to more targeted URLs. If opted out (true), only the final URLs in the asset group or URLs specified in the advertiser's Google Merchant Center or business data feeds are targeted. If opted in (false), the entire domain will be targeted. This field can only be set for Performance Max campaigns, where the default value is false.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__CampaignAsset": { +"description": "A link between a Campaign and an Asset.", +"id": "GoogleAdsSearchads360V0Resources__CampaignAsset", +"properties": { +"asset": { +"description": "Immutable. The asset which is linked to the campaign.", +"type": "string" +}, +"campaign": { +"description": "Immutable. The campaign to which the asset is linked.", +"type": "string" +}, +"resourceName": { +"description": "Immutable. The resource name of the campaign asset. CampaignAsset resource names have the form: `customers/{customer_id}/campaignAssets/{campaign_id}~{asset_id}~{field_type}`", +"type": "string" +}, +"status": { +"description": "Output only. Status of the campaign asset.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"ENABLED", +"REMOVED", +"PAUSED" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"Asset link is enabled.", +"Asset link has been removed.", +"Asset link is paused." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__CampaignAssetSet": { +"description": "CampaignAssetSet is the linkage between a campaign and an asset set. Adding a CampaignAssetSet links an asset set with a campaign.", +"id": "GoogleAdsSearchads360V0Resources__CampaignAssetSet", +"properties": { +"assetSet": { +"description": "Immutable. The asset set which is linked to the campaign.", +"type": "string" +}, +"campaign": { +"description": "Immutable. The campaign to which this asset set is linked.", +"type": "string" +}, +"resourceName": { +"description": "Immutable. The resource name of the campaign asset set. Asset set asset resource names have the form: `customers/{customer_id}/campaignAssetSets/{campaign_id}~{asset_set_id}`", +"type": "string" +}, +"status": { +"description": "Output only. The status of the campaign asset set asset. Read-only.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"ENABLED", +"REMOVED" +], +"enumDescriptions": [ +"The status has not been specified.", +"The received value is not known in this version. This is a response-only value.", +"The linkage between asset set and its container is enabled.", +"The linkage between asset set and its container is removed." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__CampaignAudienceView": { +"description": "A campaign audience view. Includes performance data from interests and remarketing lists for Display Network and YouTube Network ads, and remarketing lists for search ads (RLSA), aggregated by campaign and audience criterion. This view only includes audiences attached at the campaign level.", +"id": "GoogleAdsSearchads360V0Resources__CampaignAudienceView", +"properties": { +"resourceName": { +"description": "Output only. The resource name of the campaign audience view. Campaign audience view resource names have the form: `customers/{customer_id}/campaignAudienceViews/{campaign_id}~{criterion_id}`", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__CampaignBudget": { +"description": "A campaign budget.", +"id": "GoogleAdsSearchads360V0Resources__CampaignBudget", +"properties": { +"amountMicros": { +"description": "The amount of the budget, in the local currency for the account. Amount is specified in micros, where one million is equivalent to one currency unit. Monthly spend is capped at 30.4 times this amount.", +"format": "int64", +"type": "string" +}, +"deliveryMethod": { +"description": "The delivery method that determines the rate at which the campaign budget is spent. Defaults to STANDARD if unspecified in a create operation.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"STANDARD", +"ACCELERATED" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"The budget server will throttle serving evenly across the entire time period.", +"The budget server will not throttle serving, and ads will serve as fast as possible." +], +"type": "string" +}, +"period": { +"description": "Immutable. Period over which to spend the budget. Defaults to DAILY if not specified.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"DAILY", +"FIXED_DAILY", +"CUSTOM_PERIOD" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"Daily budget.", +"Fixed daily budget.", +"Custom budget can be used with total_amount to specify lifetime budget limit." +], +"type": "string" +}, +"resourceName": { +"description": "Immutable. The resource name of the campaign budget. Campaign budget resource names have the form: `customers/{customer_id}/campaignBudgets/{campaign_budget_id}`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__CampaignCriterion": { +"description": "A campaign criterion.", +"id": "GoogleAdsSearchads360V0Resources__CampaignCriterion", +"properties": { +"ageRange": { +"$ref": "GoogleAdsSearchads360V0Common__AgeRangeInfo", +"description": "Immutable. Age range." +}, +"bidModifier": { +"description": "The modifier for the bids when the criterion matches. The modifier must be in the range: 0.1 - 10.0. Most targetable criteria types support modifiers. Use 0 to opt out of a Device type.", +"format": "float", +"type": "number" +}, +"criterionId": { +"description": "Output only. The ID of the criterion. This field is ignored during mutate.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"device": { +"$ref": "GoogleAdsSearchads360V0Common__DeviceInfo", +"description": "Immutable. Device." +}, +"displayName": { +"description": "Output only. The display name of the criterion. This field is ignored for mutates.", +"readOnly": true, +"type": "string" +}, +"gender": { +"$ref": "GoogleAdsSearchads360V0Common__GenderInfo", +"description": "Immutable. Gender." +}, +"keyword": { +"$ref": "GoogleAdsSearchads360V0Common__KeywordInfo", +"description": "Immutable. Keyword." +}, +"language": { +"$ref": "GoogleAdsSearchads360V0Common__LanguageInfo", +"description": "Immutable. Language." +}, +"lastModifiedTime": { +"description": "Output only. The datetime when this campaign criterion was last modified. The datetime is in the customer's time zone and in \"yyyy-MM-dd HH:mm:ss.ssssss\" format.", +"readOnly": true, +"type": "string" +}, +"location": { +"$ref": "GoogleAdsSearchads360V0Common__LocationInfo", +"description": "Immutable. Location." +}, +"locationGroup": { +"$ref": "GoogleAdsSearchads360V0Common__LocationGroupInfo", +"description": "Immutable. Location Group" +}, +"negative": { +"description": "Immutable. Whether to target (`false`) or exclude (`true`) the criterion.", +"type": "boolean" +}, +"resourceName": { +"description": "Immutable. The resource name of the campaign criterion. Campaign criterion resource names have the form: `customers/{customer_id}/campaignCriteria/{campaign_id}~{criterion_id}`", +"type": "string" +}, +"status": { +"description": "The status of the criterion.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"ENABLED", +"PAUSED", +"REMOVED" +], +"enumDescriptions": [ +"No value has been specified.", +"The received value is not known in this version. This is a response-only value.", +"The campaign criterion is enabled.", +"The campaign criterion is paused.", +"The campaign criterion is removed." +], +"type": "string" +}, +"type": { +"description": "Output only. The type of the criterion.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"KEYWORD", +"PLACEMENT", +"MOBILE_APP_CATEGORY", +"MOBILE_APPLICATION", +"DEVICE", +"LOCATION", +"LISTING_GROUP", +"AD_SCHEDULE", +"AGE_RANGE", +"GENDER", +"INCOME_RANGE", +"PARENTAL_STATUS", +"YOUTUBE_VIDEO", +"YOUTUBE_CHANNEL", +"USER_LIST", +"PROXIMITY", +"TOPIC", +"LISTING_SCOPE", +"LANGUAGE", +"IP_BLOCK", +"CONTENT_LABEL", +"CARRIER", +"USER_INTEREST", +"WEBPAGE", +"OPERATING_SYSTEM_VERSION", +"APP_PAYMENT_MODEL", +"MOBILE_DEVICE", +"CUSTOM_AFFINITY", +"CUSTOM_INTENT", +"LOCATION_GROUP", +"CUSTOM_AUDIENCE", +"COMBINED_AUDIENCE", +"KEYWORD_THEME", +"AUDIENCE", +"LOCAL_SERVICE_ID", +"BRAND", +"BRAND_LIST", +"LIFE_EVENT" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"Keyword, for example, 'mars cruise'.", +"Placement, also known as Website, for example, 'www.flowers4sale.com'", +"Mobile application categories to target.", +"Mobile applications to target.", +"Devices to target.", +"Locations to target.", +"Listing groups to target.", +"Ad Schedule.", +"Age range.", +"Gender.", +"Income Range.", +"Parental status.", +"YouTube Video.", +"YouTube Channel.", +"User list.", +"Proximity.", +"A topic target on the display network (for example, \"Pets & Animals\").", +"Listing scope to target.", +"Language.", +"IpBlock.", +"Content Label for category exclusion.", +"Carrier.", +"A category the user is interested in.", +"Webpage criterion for dynamic search ads.", +"Operating system version.", +"App payment model.", +"Mobile device.", +"Custom affinity.", +"Custom intent.", +"Location group.", +"Custom audience", +"Combined audience", +"Smart Campaign keyword theme", +"Audience", +"Local Services Ads Service ID.", +"Brand", +"Brand List", +"Life Event" +], +"readOnly": true, +"type": "string" +}, +"userList": { +"$ref": "GoogleAdsSearchads360V0Common__UserListInfo", +"description": "Immutable. User List." +}, +"webpage": { +"$ref": "GoogleAdsSearchads360V0Common__WebpageInfo", +"description": "Immutable. Webpage." +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__CampaignEffectiveLabel": { +"description": "Represents a relationship between a campaign and an effective label. An effective label is a label inherited or directly assigned to this campaign.", +"id": "GoogleAdsSearchads360V0Resources__CampaignEffectiveLabel", +"properties": { +"campaign": { +"description": "Immutable. The campaign to which the effective label is attached.", +"type": "string" +}, +"label": { +"description": "Immutable. The effective label assigned to the campaign.", +"type": "string" +}, +"ownerCustomerId": { +"description": "Output only. The ID of the Customer which owns the effective label.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"resourceName": { +"description": "Immutable. Name of the resource. CampaignEffectivelabel resource names have the form: `customers/{customer_id}/campaignEffectiveLabels/{campaign_id}~{label_id}`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__CampaignLabel": { +"description": "Represents a relationship between a campaign and a label.", +"id": "GoogleAdsSearchads360V0Resources__CampaignLabel", +"properties": { +"campaign": { +"description": "Immutable. The campaign to which the label is attached.", +"type": "string" +}, +"label": { +"description": "Immutable. The label assigned to the campaign.", +"type": "string" +}, +"ownerCustomerId": { +"description": "Output only. The ID of the Customer which owns the label.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"resourceName": { +"description": "Immutable. Name of the resource. Campaign label resource names have the form: `customers/{customer_id}/campaignLabels/{campaign_id}~{label_id}`", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__CartDataSalesView": { +"description": "Cart data sales view.", +"id": "GoogleAdsSearchads360V0Resources__CartDataSalesView", +"properties": { +"resourceName": { +"description": "Output only. The resource name of the Cart data sales view. Cart data sales view resource names have the form: `customers/{customer_id}/cartDataSalesView`", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__Conversion": { +"description": "A conversion.", +"id": "GoogleAdsSearchads360V0Resources__Conversion", +"properties": { +"adId": { +"description": "Output only. Ad ID. A value of 0 indicates that the ad is unattributed.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"advertiserConversionId": { +"description": "Output only. For offline conversions, this is an ID provided by advertisers. If an advertiser doesn't specify such an ID, Search Ads 360 generates one. For online conversions, this is equal to the id column or the floodlight_order_id column depending on the advertiser's Floodlight instructions.", +"readOnly": true, +"type": "string" +}, +"assetFieldType": { +"description": "Output only. Asset field type of the conversion event.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"HEADLINE", +"DESCRIPTION", +"MANDATORY_AD_TEXT", +"MARKETING_IMAGE", +"MEDIA_BUNDLE", +"YOUTUBE_VIDEO", +"BOOK_ON_GOOGLE", +"LEAD_FORM", +"PROMOTION", +"CALLOUT", +"STRUCTURED_SNIPPET", +"SITELINK", +"MOBILE_APP", +"HOTEL_CALLOUT", +"CALL", +"PRICE", +"LONG_HEADLINE", +"BUSINESS_NAME", +"SQUARE_MARKETING_IMAGE", +"PORTRAIT_MARKETING_IMAGE", +"LOGO", +"LANDSCAPE_LOGO", +"VIDEO", +"CALL_TO_ACTION_SELECTION", +"AD_IMAGE", +"BUSINESS_LOGO", +"HOTEL_PROPERTY", +"DISCOVERY_CAROUSEL_CARD" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"The asset is linked for use as a headline.", +"The asset is linked for use as a description.", +"The asset is linked for use as mandatory ad text.", +"The asset is linked for use as a marketing image.", +"The asset is linked for use as a media bundle.", +"The asset is linked for use as a YouTube video.", +"The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.", +"The asset is linked for use as a Lead Form extension.", +"The asset is linked for use as a Promotion extension.", +"The asset is linked for use as a Callout extension.", +"The asset is linked for use as a Structured Snippet extension.", +"The asset is linked for use as a Sitelink.", +"The asset is linked for use as a Mobile App extension.", +"The asset is linked for use as a Hotel Callout extension.", +"The asset is linked for use as a Call extension.", +"The asset is linked for use as a Price extension.", +"The asset is linked for use as a long headline.", +"The asset is linked for use as a business name.", +"The asset is linked for use as a square marketing image.", +"The asset is linked for use as a portrait marketing image.", +"The asset is linked for use as a logo.", +"The asset is linked for use as a landscape logo.", +"The asset is linked for use as a non YouTube logo.", +"The asset is linked for use to select a call-to-action.", +"The asset is linked for use to select an ad image.", +"The asset is linked for use as a business logo.", +"The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.", +"The asset is linked for use as a discovery carousel card." +], +"readOnly": true, +"type": "string" +}, +"assetId": { +"description": "Output only. ID of the asset which was interacted with during the conversion event.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"attributionType": { +"description": "Output only. What the conversion is attributed to: Visit or Keyword+Ad.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"VISIT", +"CRITERION_AD" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"The conversion is attributed to a visit.", +"The conversion is attributed to a criterion and ad pair." +], +"readOnly": true, +"type": "string" +}, +"clickId": { +"description": "Output only. A unique string, for the visit that the conversion is attributed to, that is passed to the landing page as the click id URL parameter.", +"readOnly": true, +"type": "string" +}, +"conversionDateTime": { +"description": "Output only. The timestamp of the conversion event.", +"readOnly": true, +"type": "string" +}, +"conversionLastModifiedDateTime": { +"description": "Output only. The timestamp of the last time the conversion was modified.", +"readOnly": true, +"type": "string" +}, +"conversionQuantity": { +"description": "Output only. The quantity of items recorded by the conversion, as determined by the qty url parameter. The advertiser is responsible for dynamically populating the parameter (such as number of items sold in the conversion), otherwise it defaults to 1.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"conversionRevenueMicros": { +"description": "Output only. The adjusted revenue in micros for the conversion event. This will always be in the currency of the serving account.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"conversionVisitDateTime": { +"description": "Output only. The timestamp of the visit that the conversion is attributed to.", +"readOnly": true, +"type": "string" +}, +"criterionId": { +"description": "Output only. Search Ads 360 criterion ID. A value of 0 indicates that the criterion is unattributed.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"floodlightOrderId": { +"description": "Output only. The Floodlight order ID provided by the advertiser for the conversion.", +"readOnly": true, +"type": "string" +}, +"floodlightOriginalRevenue": { +"description": "Output only. The original, unchanged revenue associated with the Floodlight event (in the currency of the current report), before Floodlight currency instruction modifications.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"id": { +"description": "Output only. The ID of the conversion", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"merchantId": { +"description": "Output only. The Search Ads 360 inventory account ID containing the product that was clicked on. Search Ads 360 generates this ID when you link an inventory account in Search Ads 360.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"productChannel": { +"description": "Output only. The sales channel of the product that was clicked on: Online or Local.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"ONLINE", +"LOCAL" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"The item is sold online.", +"The item is sold in local stores." +], +"readOnly": true, +"type": "string" +}, +"productCountryCode": { +"description": "Output only. The country (ISO-3166-format) registered for the inventory feed that contains the product clicked on.", +"readOnly": true, +"type": "string" +}, +"productId": { +"description": "Output only. The ID of the product clicked on.", +"readOnly": true, +"type": "string" +}, +"productLanguageCode": { +"description": "Output only. The language (ISO-639-1) that has been set for the Merchant Center feed containing data about the product.", +"readOnly": true, +"type": "string" +}, +"productStoreId": { +"description": "Output only. The store in the Local Inventory Ad that was clicked on. This should match the store IDs used in your local products feed.", +"readOnly": true, +"type": "string" +}, +"resourceName": { +"description": "Output only. The resource name of the conversion. Conversion resource names have the form: `customers/{customer_id}/conversions/{ad_group_id}~{criterion_id}~{ds_conversion_id}`", +"readOnly": true, +"type": "string" +}, +"status": { +"description": "Output only. The status of the conversion, either ENABLED or REMOVED..", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"ENABLED", +"REMOVED" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"The conversion is enabled.", +"The conversion has been removed." +], +"readOnly": true, +"type": "string" +}, +"visitId": { +"description": "Output only. The Search Ads 360 visit ID that the conversion is attributed to.", +"format": "int64", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__ConversionAction": { +"description": "A conversion action.", +"id": "GoogleAdsSearchads360V0Resources__ConversionAction", +"properties": { +"appId": { +"description": "App ID for an app conversion action.", +"type": "string" +}, +"attributionModelSettings": { +"$ref": "GoogleAdsSearchads360V0Resources_ConversionAction_AttributionModelSettings", +"description": "Settings related to this conversion action's attribution model." +}, +"category": { +"description": "The category of conversions reported for this conversion action.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"DEFAULT", +"PAGE_VIEW", +"PURCHASE", +"SIGNUP", +"LEAD", +"DOWNLOAD", +"ADD_TO_CART", +"BEGIN_CHECKOUT", +"SUBSCRIBE_PAID", +"PHONE_CALL_LEAD", +"IMPORTED_LEAD", +"SUBMIT_LEAD_FORM", +"BOOK_APPOINTMENT", +"REQUEST_QUOTE", +"GET_DIRECTIONS", +"OUTBOUND_CLICK", +"CONTACT", +"ENGAGEMENT", +"STORE_VISIT", +"STORE_SALE", +"QUALIFIED_LEAD", +"CONVERTED_LEAD" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"Default category.", +"User visiting a page.", +"Purchase, sales, or \"order placed\" event.", +"Signup user action.", +"Lead-generating action.", +"Software download action (as for an app).", +"The addition of items to a shopping cart or bag on an advertiser site.", +"When someone enters the checkout flow on an advertiser site.", +"The start of a paid subscription for a product or service.", +"A call to indicate interest in an advertiser's offering.", +"A lead conversion imported from an external source into Google Ads.", +"A submission of a form on an advertiser site indicating business interest.", +"A booking of an appointment with an advertiser's business.", +"A quote or price estimate request.", +"A search for an advertiser's business location with intention to visit.", +"A click to an advertiser's partner's site.", +"A call, SMS, email, chat or other type of contact to an advertiser.", +"A website engagement event such as long site time or a Google Analytics (GA) Smart Goal. Intended to be used for GA, Firebase, GA Gold goal imports.", +"A visit to a physical store location.", +"A sale occurring in a physical store.", +"A lead conversion imported from an external source into Google Ads, that has been further qualified by the advertiser (marketing/sales team). In the lead-to-sale journey, advertisers get leads, then act on them by reaching out to the consumer. If the consumer is interested and may end up buying their product, the advertiser marks such leads as \"qualified leads\".", +"A lead conversion imported from an external source into Google Ads, that has further completed a chosen stage as defined by the lead gen advertiser." +], +"type": "string" +}, +"clickThroughLookbackWindowDays": { +"description": "The maximum number of days that may elapse between an interaction (for example, a click) and a conversion event.", +"format": "int64", +"type": "string" +}, +"creationTime": { +"description": "Output only. Timestamp of the Floodlight activity's creation, formatted in ISO 8601.", +"readOnly": true, +"type": "string" +}, +"floodlightSettings": { +"$ref": "GoogleAdsSearchads360V0Resources_ConversionAction_FloodlightSettings", +"description": "Output only. Floodlight settings for Floodlight conversion types.", +"readOnly": true +}, +"id": { +"description": "Output only. The ID of the conversion action.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"includeInClientAccountConversionsMetric": { +"description": "Whether this conversion action should be included in the \"client_account_conversions\" metric.", +"type": "boolean" +}, +"includeInConversionsMetric": { +"description": "Output only. Whether this conversion action should be included in the \"conversions\" metric.", +"readOnly": true, +"type": "boolean" +}, +"name": { +"description": "The name of the conversion action. This field is required and should not be empty when creating new conversion actions.", +"type": "string" +}, +"ownerCustomer": { +"description": "Output only. The resource name of the conversion action owner customer, or null if this is a system-defined conversion action.", +"readOnly": true, +"type": "string" +}, +"primaryForGoal": { +"description": "If a conversion action's primary_for_goal bit is false, the conversion action is non-biddable for all campaigns regardless of their customer conversion goal or campaign conversion goal. However, custom conversion goals do not respect primary_for_goal, so if a campaign has a custom conversion goal configured with a primary_for_goal = false conversion action, that conversion action is still biddable. By default, primary_for_goal will be true if not set. In V9, primary_for_goal can only be set to false after creation through an 'update' operation because it's not declared as optional.", +"type": "boolean" +}, +"resourceName": { +"description": "Immutable. The resource name of the conversion action. Conversion action resource names have the form: `customers/{customer_id}/conversionActions/{conversion_action_id}`", +"type": "string" +}, +"status": { +"description": "The status of this conversion action for conversion event accrual.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"ENABLED", +"REMOVED", +"HIDDEN" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"Conversions will be recorded.", +"Conversions will not be recorded.", +"Conversions will not be recorded and the conversion action will not appear in the UI." +], +"type": "string" +}, +"type": { +"description": "Immutable. The type of this conversion action.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"AD_CALL", +"CLICK_TO_CALL", +"GOOGLE_PLAY_DOWNLOAD", +"GOOGLE_PLAY_IN_APP_PURCHASE", +"UPLOAD_CALLS", +"UPLOAD_CLICKS", +"WEBPAGE", +"WEBSITE_CALL", +"STORE_SALES_DIRECT_UPLOAD", +"STORE_SALES", +"FIREBASE_ANDROID_FIRST_OPEN", +"FIREBASE_ANDROID_IN_APP_PURCHASE", +"FIREBASE_ANDROID_CUSTOM", +"FIREBASE_IOS_FIRST_OPEN", +"FIREBASE_IOS_IN_APP_PURCHASE", +"FIREBASE_IOS_CUSTOM", +"THIRD_PARTY_APP_ANALYTICS_ANDROID_FIRST_OPEN", +"THIRD_PARTY_APP_ANALYTICS_ANDROID_IN_APP_PURCHASE", +"THIRD_PARTY_APP_ANALYTICS_ANDROID_CUSTOM", +"THIRD_PARTY_APP_ANALYTICS_IOS_FIRST_OPEN", +"THIRD_PARTY_APP_ANALYTICS_IOS_IN_APP_PURCHASE", +"THIRD_PARTY_APP_ANALYTICS_IOS_CUSTOM", +"ANDROID_APP_PRE_REGISTRATION", +"ANDROID_INSTALLS_ALL_OTHER_APPS", +"FLOODLIGHT_ACTION", +"FLOODLIGHT_TRANSACTION", +"GOOGLE_HOSTED", +"LEAD_FORM_SUBMIT", +"SALESFORCE", +"SEARCH_ADS_360", +"SMART_CAMPAIGN_AD_CLICKS_TO_CALL", +"SMART_CAMPAIGN_MAP_CLICKS_TO_CALL", +"SMART_CAMPAIGN_MAP_DIRECTIONS", +"SMART_CAMPAIGN_TRACKED_CALLS", +"STORE_VISITS", +"WEBPAGE_CODELESS", +"UNIVERSAL_ANALYTICS_GOAL", +"UNIVERSAL_ANALYTICS_TRANSACTION", +"GOOGLE_ANALYTICS_4_CUSTOM", +"GOOGLE_ANALYTICS_4_PURCHASE" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"Conversions that occur when a user clicks on an ad's call extension.", +"Conversions that occur when a user on a mobile device clicks a phone number.", +"Conversions that occur when a user downloads a mobile app from the Google Play Store.", +"Conversions that occur when a user makes a purchase in an app through Android billing.", +"Call conversions that are tracked by the advertiser and uploaded.", +"Conversions that are tracked by the advertiser and uploaded with attributed clicks.", +"Conversions that occur on a webpage.", +"Conversions that occur when a user calls a dynamically-generated phone number from an advertiser's website.", +"Store Sales conversion based on first-party or third-party merchant data uploads. Only customers on the allowlist can use store sales direct upload types.", +"Store Sales conversion based on first-party or third-party merchant data uploads and/or from in-store purchases using cards from payment networks. Only customers on the allowlist can use store sales types. Read only.", +"Android app first open conversions tracked through Firebase.", +"Android app in app purchase conversions tracked through Firebase.", +"Android app custom conversions tracked through Firebase.", +"iOS app first open conversions tracked through Firebase.", +"iOS app in app purchase conversions tracked through Firebase.", +"iOS app custom conversions tracked through Firebase.", +"Android app first open conversions tracked through Third Party App Analytics.", +"Android app in app purchase conversions tracked through Third Party App Analytics.", +"Android app custom conversions tracked through Third Party App Analytics.", +"iOS app first open conversions tracked through Third Party App Analytics.", +"iOS app in app purchase conversions tracked through Third Party App Analytics.", +"iOS app custom conversions tracked through Third Party App Analytics.", +"Conversions that occur when a user pre-registers a mobile app from the Google Play Store. Read only.", +"Conversions that track all Google Play downloads which aren't tracked by an app-specific type. Read only.", +"Floodlight activity that counts the number of times that users have visited a particular webpage after seeing or clicking on one of an advertiser's ads. Read only.", +"Floodlight activity that tracks the number of sales made or the number of items purchased. Can also capture the total value of each sale. Read only.", +"Conversions that track local actions from Google's products and services after interacting with an ad. Read only.", +"Conversions reported when a user submits a lead form. Read only.", +"Conversions that come from Salesforce. Read only.", +"Conversions imported from Search Ads 360 Floodlight data. Read only.", +"Call conversions that occur on Smart campaign Ads without call tracking setup, using Smart campaign custom criteria. Read only.", +"The user clicks on a call element within Google Maps. Smart campaign only. Read only.", +"The user requests directions to a business location within Google Maps. Smart campaign only. Read only.", +"Call conversions that occur on Smart campaign Ads with call tracking setup, using Smart campaign custom criteria. Read only.", +"Conversions that occur when a user visits an advertiser's retail store. Read only.", +"Conversions created from website events (such as form submissions or page loads), that don't use individually coded event snippets. Read only.", +"Conversions that come from linked Universal Analytics goals.", +"Conversions that come from linked Universal Analytics transactions.", +"Conversions that come from linked Google Analytics 4 custom event conversions.", +"Conversions that come from linked Google Analytics 4 purchase conversions." +], +"type": "string" +}, +"valueSettings": { +"$ref": "GoogleAdsSearchads360V0Resources_ConversionAction_ValueSettings", +"description": "Settings related to the value for conversion events associated with this conversion action." +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__ConversionCustomVariable": { +"description": "A conversion custom variable. See \"About custom Floodlight metrics and dimensions in the new Search Ads 360\" at https://support.google.com/sa360/answer/13567857", +"id": "GoogleAdsSearchads360V0Resources__ConversionCustomVariable", +"properties": { +"cardinality": { +"description": "Output only. Cardinality of the conversion custom variable.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"BELOW_ALL_LIMITS", +"EXCEEDS_SEGMENTATION_LIMIT_BUT_NOT_STATS_LIMIT", +"APPROACHES_STATS_LIMIT", +"EXCEEDS_STATS_LIMIT" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"The conversion custom variable has cardinality below all limits. The variable can be used for segmentation, and stats can accrue for new values if the variable is enabled.", +"The conversion custom variable has cardinality that exceeds the segmentation limit, but does not exceed the stats limit. Segmentation will be disabled, but stats can accrue for new values if the variable is enabled.", +"The conversion custom variable has exceeded the segmentation limits, and is approaching the stats limits (> 90%). Segmentation will be disabled, but stats can accrue for new values if the variable is enabled.", +"The conversion custom variable has exceeded both the segmentation limits and stats limits. Segmentation will be disabled, and stats for enabled variables can accrue only if the existing values do not increase the cardinality of the variable any further." +], +"readOnly": true, +"type": "string" +}, +"customColumnIds": { +"description": "Output only. The IDs of custom columns that use this conversion custom variable.", +"items": { +"format": "int64", +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"family": { +"description": "Output only. Family of the conversion custom variable.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"STANDARD", +"FLOODLIGHT" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"The standard conversion custom variable. Customers are required to activate before use.", +"The conversion custom variable imported from a custom floodlight variable." +], +"readOnly": true, +"type": "string" +}, +"floodlightConversionCustomVariableInfo": { +"$ref": "GoogleAdsSearchads360V0Resources_ConversionCustomVariable_FloodlightConversionCustomVariableInfo", +"description": "Output only. Fields for Search Ads 360 floodlight conversion custom variables.", +"readOnly": true +}, +"id": { +"description": "Output only. The ID of the conversion custom variable.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Required. The name of the conversion custom variable. Name should be unique. The maximum length of name is 100 characters. There should not be any extra spaces before and after.", +"type": "string" +}, +"ownerCustomer": { +"description": "Output only. The resource name of the customer that owns the conversion custom variable.", +"readOnly": true, +"type": "string" +}, +"resourceName": { +"description": "Immutable. The resource name of the conversion custom variable. Conversion custom variable resource names have the form: `customers/{customer_id}/conversionCustomVariables/{conversion_custom_variable_id}`", +"type": "string" +}, +"status": { +"description": "The status of the conversion custom variable for conversion event accrual.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"ACTIVATION_NEEDED", +"ENABLED", +"PAUSED" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"The conversion custom variable is pending activation and will not accrue stats until set to ENABLED. This status can't be used in CREATE and UPDATE requests.", +"The conversion custom variable is enabled and will accrue stats.", +"The conversion custom variable is paused and will not accrue stats until set to ENABLED again." +], +"type": "string" +}, +"tag": { +"description": "Required. Immutable. The tag of the conversion custom variable. Tag should be unique and consist of a \"u\" character directly followed with a number less than ormequal to 100. For example: \"u4\".", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__ConversionTrackingSetting": { +"description": "A collection of customer-wide settings related to Search Ads 360 Conversion Tracking.", +"id": "GoogleAdsSearchads360V0Resources__ConversionTrackingSetting", +"properties": { +"acceptedCustomerDataTerms": { +"description": "Output only. Whether the customer has accepted customer data terms. If using cross-account conversion tracking, this value is inherited from the manager. This field is read-only. For more information, see https://support.google.com/adspolicy/answer/7475709.", +"readOnly": true, +"type": "boolean" +}, +"conversionTrackingId": { +"description": "Output only. The conversion tracking id used for this account. This id doesn't indicate whether the customer uses conversion tracking (conversion_tracking_status does). This field is read-only.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"conversionTrackingStatus": { +"description": "Output only. Conversion tracking status. It indicates whether the customer is using conversion tracking, and who is the conversion tracking owner of this customer. If this customer is using cross-account conversion tracking, the value returned will differ based on the `login-customer-id` of the request.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"NOT_CONVERSION_TRACKED", +"CONVERSION_TRACKING_MANAGED_BY_SELF", +"CONVERSION_TRACKING_MANAGED_BY_THIS_MANAGER", +"CONVERSION_TRACKING_MANAGED_BY_ANOTHER_MANAGER" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"Customer does not use any conversion tracking.", +"The conversion actions are created and managed by this customer.", +"The conversion actions are created and managed by the manager specified in the request's `login-customer-id`.", +"The conversion actions are created and managed by a manager different from the customer or manager specified in the request's `login-customer-id`." +], +"readOnly": true, +"type": "string" +}, +"crossAccountConversionTrackingId": { +"description": "Output only. The conversion tracking id of the customer's manager. This is set when the customer is opted into cross-account conversion tracking, and it overrides conversion_tracking_id.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"enhancedConversionsForLeadsEnabled": { +"description": "Output only. Whether the customer is opted-in for enhanced conversions for leads. If using cross-account conversion tracking, this value is inherited from the manager. This field is read-only.", +"readOnly": true, +"type": "boolean" +}, +"googleAdsConversionCustomer": { +"description": "Output only. The resource name of the customer where conversions are created and managed. This field is read-only.", +"readOnly": true, +"type": "string" +}, +"googleAdsCrossAccountConversionTrackingId": { +"description": "Output only. The conversion tracking id of the customer's manager. This is set when the customer is opted into conversion tracking, and it overrides conversion_tracking_id. This field can only be managed through the Google Ads UI. This field is read-only.", +"format": "int64", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__CustomColumn": { +"description": "A custom column. See Search Ads 360 custom column at https://support.google.com/sa360/answer/9633916", +"id": "GoogleAdsSearchads360V0Resources__CustomColumn", +"properties": { +"description": { +"description": "Output only. User-defined description of the custom column.", +"readOnly": true, +"type": "string" +}, +"id": { +"description": "Output only. ID of the custom column.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. User-defined name of the custom column.", +"readOnly": true, +"type": "string" +}, +"queryable": { +"description": "Output only. True when the custom column is available to be used in the query of SearchAds360Service.Search and SearchAds360Service.SearchStream.", +"readOnly": true, +"type": "boolean" +}, +"referencedSystemColumns": { +"description": "Output only. The list of the referenced system columns of this custom column. For example, A custom column \"sum of impressions and clicks\" has referenced system columns of {\"metrics.clicks\", \"metrics.impressions\"}.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"referencesAttributes": { +"description": "Output only. True when the custom column is referring to one or more attributes.", +"readOnly": true, +"type": "boolean" +}, +"referencesMetrics": { +"description": "Output only. True when the custom column is referring to one or more metrics.", +"readOnly": true, +"type": "boolean" +}, +"renderType": { +"description": "Output only. How the result value of the custom column should be interpreted.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"NUMBER", +"PERCENT", +"MONEY", +"STRING", +"BOOLEAN", +"DATE" +], +"enumDescriptions": [ +"Not specified.", +"Unknown.", +"The custom column is a raw numerical value. See value_type field to determine if it is an integer or a double.", +"The custom column should be multiplied by 100 to retrieve the percentage value.", +"The custom column value is a monetary value and is in micros.", +"The custom column value is a string.", +"The custom column value is a boolean.", +"The custom column value is a date represented as an integer in YYYYMMDD format." +], +"readOnly": true, +"type": "string" +}, +"resourceName": { +"description": "Immutable. The resource name of the custom column. Custom column resource names have the form: `customers/{customer_id}/customColumns/{custom_column_id}`", +"type": "string" +}, +"valueType": { +"description": "Output only. The type of the result value of the custom column.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"STRING", +"INT64", +"DOUBLE", +"BOOLEAN", +"DATE" +], +"enumDescriptions": [ +"Not specified.", +"Unknown.", +"The custom column value is a string.", +"The custom column value is an int64 number.", +"The custom column value is a double number.", +"The custom column value is a boolean.", +"The custom column value is a date, in YYYYMMDD format." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__Customer": { +"description": "A customer.", +"id": "GoogleAdsSearchads360V0Resources__Customer", +"properties": { +"accountStatus": { +"description": "Output only. Account status, for example, Enabled, Paused, Removed, etc.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"ENABLED", +"PAUSED", +"SUSPENDED", +"REMOVED", +"DRAFT" +], +"enumDescriptions": [ +"Default value.", +"Unknown value.", +"Account is able to serve ads.", +"Account is deactivated by the user.", +"Account is deactivated by an internal process.", +"Account is irrevocably deactivated.", +"Account is still in the process of setup, not ENABLED yet." +], +"readOnly": true, +"type": "string" +}, +"accountType": { +"description": "Output only. Engine account type, for example, Google Ads, Microsoft Advertising, Yahoo Japan, Baidu, Facebook, Engine Track, etc.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"BAIDU", +"ENGINE_TRACK", +"FACEBOOK", +"FACEBOOK_GATEWAY", +"GOOGLE_ADS", +"MICROSOFT", +"SEARCH_ADS_360", +"YAHOO_JAPAN" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"Baidu account.", +"Engine track account.", +"Facebook account.", +"Facebook account managed through gateway.", +"Google Ads account.", +"Microsoft Advertising account.", +"Search Ads 360 manager account.", +"Yahoo Japan account." +], +"readOnly": true, +"type": "string" +}, +"autoTaggingEnabled": { +"description": "Whether auto-tagging is enabled for the customer.", +"type": "boolean" +}, +"conversionTrackingSetting": { +"$ref": "GoogleAdsSearchads360V0Resources__ConversionTrackingSetting", +"description": "Output only. Conversion tracking setting for a customer.", +"readOnly": true +}, +"creationTime": { +"description": "Output only. The timestamp when this customer was created. The timestamp is in the customer's time zone and in \"yyyy-MM-dd HH:mm:ss\" format.", +"readOnly": true, +"type": "string" +}, +"currencyCode": { +"description": "Immutable. The currency in which the account operates. A subset of the currency codes from the ISO 4217 standard is supported.", +"type": "string" +}, +"descriptiveName": { +"description": "Optional, non-unique descriptive name of the customer.", +"type": "string" +}, +"doubleClickCampaignManagerSetting": { +"$ref": "GoogleAdsSearchads360V0Resources__DoubleClickCampaignManagerSetting", +"description": "Output only. DoubleClick Campaign Manager (DCM) setting for a manager customer.", +"readOnly": true +}, +"engineId": { +"description": "Output only. ID of the account in the external engine account.", +"readOnly": true, +"type": "string" +}, +"finalUrlSuffix": { +"description": "The URL template for appending params to the final URL.", +"type": "string" +}, +"id": { +"description": "Output only. The ID of the customer.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"lastModifiedTime": { +"description": "Output only. The datetime when this customer was last modified. The datetime is in the customer's time zone and in \"yyyy-MM-dd HH:mm:ss.ssssss\" format.", +"readOnly": true, +"type": "string" +}, +"manager": { +"description": "Output only. Whether the customer is a manager.", +"readOnly": true, +"type": "boolean" +}, +"resourceName": { +"description": "Immutable. The resource name of the customer. Customer resource names have the form: `customers/{customer_id}`", +"type": "string" +}, +"status": { +"description": "Output only. The status of the customer.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"ENABLED", +"CANCELED", +"SUSPENDED", +"CLOSED" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"Indicates an active account able to serve ads.", +"Indicates a canceled account unable to serve ads. Can be reactivated by an admin user.", +"Indicates a suspended account unable to serve ads. May only be activated by Google support.", +"Indicates a closed account unable to serve ads. Test account will also have CLOSED status. Status is permanent and may not be reopened." +], +"readOnly": true, +"type": "string" +}, +"timeZone": { +"description": "Immutable. The local timezone ID of the customer.", +"type": "string" +}, +"trackingUrlTemplate": { +"description": "The URL template for constructing a tracking URL out of parameters.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__CustomerAsset": { +"description": "A link between a customer and an asset.", +"id": "GoogleAdsSearchads360V0Resources__CustomerAsset", +"properties": { +"asset": { +"description": "Required. Immutable. The asset which is linked to the customer.", +"type": "string" +}, +"resourceName": { +"description": "Immutable. The resource name of the customer asset. CustomerAsset resource names have the form: `customers/{customer_id}/customerAssets/{asset_id}~{field_type}`", +"type": "string" +}, +"status": { +"description": "Status of the customer asset.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"ENABLED", +"REMOVED", +"PAUSED" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"Asset link is enabled.", +"Asset link has been removed.", +"Asset link is paused." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__CustomerAssetSet": { +"description": "CustomerAssetSet is the linkage between a customer and an asset set. Adding a CustomerAssetSet links an asset set with a customer.", +"id": "GoogleAdsSearchads360V0Resources__CustomerAssetSet", +"properties": { +"assetSet": { +"description": "Immutable. The asset set which is linked to the customer.", +"type": "string" +}, +"customer": { +"description": "Immutable. The customer to which this asset set is linked.", +"type": "string" +}, +"resourceName": { +"description": "Immutable. The resource name of the customer asset set. Asset set asset resource names have the form: `customers/{customer_id}/customerAssetSets/{asset_set_id}`", +"type": "string" +}, +"status": { +"description": "Output only. The status of the customer asset set asset. Read-only.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"ENABLED", +"REMOVED" +], +"enumDescriptions": [ +"The status has not been specified.", +"The received value is not known in this version. This is a response-only value.", +"The linkage between asset set and its container is enabled.", +"The linkage between asset set and its container is removed." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__CustomerClient": { +"description": "A link between the given customer and a client customer. CustomerClients only exist for manager customers. All direct and indirect client customers are included, as well as the manager itself.", +"id": "GoogleAdsSearchads360V0Resources__CustomerClient", +"properties": { +"appliedLabels": { +"description": "Output only. The resource names of the labels owned by the requesting customer that are applied to the client customer. Label resource names have the form: `customers/{customer_id}/labels/{label_id}`", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"clientCustomer": { +"description": "Output only. The resource name of the client-customer which is linked to the given customer. Read only.", +"readOnly": true, +"type": "string" +}, +"currencyCode": { +"description": "Output only. Currency code (for example, 'USD', 'EUR') for the client. Read only.", +"readOnly": true, +"type": "string" +}, +"descriptiveName": { +"description": "Output only. Descriptive name for the client. Read only.", +"readOnly": true, +"type": "string" +}, +"hidden": { +"description": "Output only. Specifies whether this is a hidden account. Read only.", +"readOnly": true, +"type": "boolean" +}, +"id": { +"description": "Output only. The ID of the client customer. Read only.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"level": { +"description": "Output only. Distance between given customer and client. For self link, the level value will be 0. Read only.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"manager": { +"description": "Output only. Identifies if the client is a manager. Read only.", +"readOnly": true, +"type": "boolean" +}, +"resourceName": { +"description": "Output only. The resource name of the customer client. CustomerClient resource names have the form: `customers/{customer_id}/customerClients/{client_customer_id}`", +"readOnly": true, +"type": "string" +}, +"status": { +"description": "Output only. The status of the client customer. Read only.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"ENABLED", +"CANCELED", +"SUSPENDED", +"CLOSED" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"Indicates an active account able to serve ads.", +"Indicates a canceled account unable to serve ads. Can be reactivated by an admin user.", +"Indicates a suspended account unable to serve ads. May only be activated by Google support.", +"Indicates a closed account unable to serve ads. Test account will also have CLOSED status. Status is permanent and may not be reopened." +], +"readOnly": true, +"type": "string" +}, +"testAccount": { +"description": "Output only. Identifies if the client is a test account. Read only.", +"readOnly": true, +"type": "boolean" +}, +"timeZone": { +"description": "Output only. Common Locale Data Repository (CLDR) string representation of the time zone of the client, for example, America/Los_Angeles. Read only.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__CustomerManagerLink": { +"description": "Represents customer-manager link relationship.", +"id": "GoogleAdsSearchads360V0Resources__CustomerManagerLink", +"properties": { +"managerCustomer": { +"description": "Output only. The manager customer linked to the customer.", +"readOnly": true, +"type": "string" +}, +"managerLinkId": { +"description": "Output only. ID of the customer-manager link. This field is read only.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"resourceName": { +"description": "Immutable. Name of the resource. CustomerManagerLink resource names have the form: `customers/{customer_id}/customerManagerLinks/{manager_customer_id}~{manager_link_id}`", +"type": "string" +}, +"startTime": { +"description": "Output only. The timestamp when the CustomerManagerLink was created. The timestamp is in the customer's time zone and in \"yyyy-MM-dd HH:mm:ss\" format.", +"readOnly": true, +"type": "string" +}, +"status": { +"description": "Status of the link between the customer and the manager.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"ACTIVE", +"INACTIVE", +"PENDING", +"REFUSED", +"CANCELED" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"Indicates current in-effect relationship", +"Indicates terminated relationship", +"Indicates relationship has been requested by manager, but the client hasn't accepted yet.", +"Relationship was requested by the manager, but the client has refused.", +"Indicates relationship has been requested by manager, but manager canceled it." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__DoubleClickCampaignManagerSetting": { +"description": "DoubleClick Campaign Manager (DCM) setting for a manager customer.", +"id": "GoogleAdsSearchads360V0Resources__DoubleClickCampaignManagerSetting", +"properties": { +"advertiserId": { +"description": "Output only. ID of the Campaign Manager advertiser associated with this customer.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"networkId": { +"description": "Output only. ID of the Campaign Manager network associated with this customer.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"timeZone": { +"description": "Output only. Time zone of the Campaign Manager network associated with this customer in IANA Time Zone Database format, such as America/New_York.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__DynamicSearchAdsSearchTermView": { +"description": "A dynamic search ads search term view.", +"id": "GoogleAdsSearchads360V0Resources__DynamicSearchAdsSearchTermView", +"properties": { +"landingPage": { +"description": "Output only. The dynamically selected landing page URL of the impression. This field is read-only.", +"readOnly": true, +"type": "string" +}, +"resourceName": { +"description": "Output only. The resource name of the dynamic search ads search term view. Dynamic search ads search term view resource names have the form: `customers/{customer_id}/dynamicSearchAdsSearchTermViews/{ad_group_id}~{search_term_fingerprint}~{headline_fingerprint}~{landing_page_fingerprint}~{page_url_fingerprint}`", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__GenderView": { +"description": "A gender view. The gender_view resource reflects the effective serving state, rather than what criteria were added. An ad group without gender criteria by default shows to all genders, so all genders appear in gender_view with stats.", +"id": "GoogleAdsSearchads360V0Resources__GenderView", +"properties": { +"resourceName": { +"description": "Output only. The resource name of the gender view. Gender view resource names have the form: `customers/{customer_id}/genderViews/{ad_group_id}~{criterion_id}`", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__GeoTargetConstant": { +"description": "A geo target constant.", +"id": "GoogleAdsSearchads360V0Resources__GeoTargetConstant", +"properties": { +"canonicalName": { +"description": "Output only. The fully qualified English name, consisting of the target's name and that of its parent and country.", +"readOnly": true, +"type": "string" +}, +"countryCode": { +"description": "Output only. The ISO-3166-1 alpha-2 country code that is associated with the target.", +"readOnly": true, +"type": "string" +}, +"id": { +"description": "Output only. The ID of the geo target constant.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. Geo target constant English name.", +"readOnly": true, +"type": "string" +}, +"parentGeoTarget": { +"description": "Output only. The resource name of the parent geo target constant. Geo target constant resource names have the form: `geoTargetConstants/{parent_geo_target_constant_id}`", +"readOnly": true, +"type": "string" +}, +"resourceName": { +"description": "Output only. The resource name of the geo target constant. Geo target constant resource names have the form: `geoTargetConstants/{geo_target_constant_id}`", +"readOnly": true, +"type": "string" +}, +"status": { +"description": "Output only. Geo target constant status.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"ENABLED", +"REMOVAL_PLANNED" +], +"enumDescriptions": [ +"No value has been specified.", +"The received value is not known in this version. This is a response-only value.", +"The geo target constant is valid.", +"The geo target constant is obsolete and will be removed." +], +"readOnly": true, +"type": "string" +}, +"targetType": { +"description": "Output only. Geo target constant target type.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__KeywordView": { +"description": "A keyword view.", +"id": "GoogleAdsSearchads360V0Resources__KeywordView", +"properties": { +"resourceName": { +"description": "Output only. The resource name of the keyword view. Keyword view resource names have the form: `customers/{customer_id}/keywordViews/{ad_group_id}~{criterion_id}`", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__Label": { +"description": "A label.", +"id": "GoogleAdsSearchads360V0Resources__Label", +"properties": { +"id": { +"description": "Output only. ID of the label. Read only.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "The name of the label. This field is required and should not be empty when creating a new label. The length of this string should be between 1 and 80, inclusive.", +"type": "string" +}, +"resourceName": { +"description": "Immutable. Name of the resource. Label resource names have the form: `customers/{customer_id}/labels/{label_id}`", +"type": "string" +}, +"status": { +"description": "Output only. Status of the label. Read only.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"ENABLED", +"REMOVED" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"Label is enabled.", +"Label is removed." +], +"readOnly": true, +"type": "string" +}, +"textLabel": { +"$ref": "GoogleAdsSearchads360V0Common__TextLabel", +"description": "A type of label displaying text on a colored background." +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__LanguageConstant": { +"description": "A language.", +"id": "GoogleAdsSearchads360V0Resources__LanguageConstant", +"properties": { +"code": { +"description": "Output only. The language code, for example, \"en_US\", \"en_AU\", \"es\", \"fr\", etc.", +"readOnly": true, +"type": "string" +}, +"id": { +"description": "Output only. The ID of the language constant.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Output only. The full name of the language in English, for example, \"English (US)\", \"Spanish\", etc.", +"readOnly": true, +"type": "string" +}, +"resourceName": { +"description": "Output only. The resource name of the language constant. Language constant resource names have the form: `languageConstants/{criterion_id}`", +"readOnly": true, +"type": "string" +}, +"targetable": { +"description": "Output only. Whether the language is targetable.", +"readOnly": true, +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__ListingGroupFilterDimension": { +"description": "Listing dimensions for the asset group listing group filter.", +"id": "GoogleAdsSearchads360V0Resources__ListingGroupFilterDimension", +"properties": { +"productBiddingCategory": { +"$ref": "GoogleAdsSearchads360V0Resources_ListingGroupFilterDimension_ProductBiddingCategory", +"description": "Bidding category of a product offer." +}, +"productBrand": { +"$ref": "GoogleAdsSearchads360V0Resources_ListingGroupFilterDimension_ProductBrand", +"description": "Brand of a product offer." +}, +"productChannel": { +"$ref": "GoogleAdsSearchads360V0Resources_ListingGroupFilterDimension_ProductChannel", +"description": "Locality of a product offer." +}, +"productCondition": { +"$ref": "GoogleAdsSearchads360V0Resources_ListingGroupFilterDimension_ProductCondition", +"description": "Condition of a product offer." +}, +"productCustomAttribute": { +"$ref": "GoogleAdsSearchads360V0Resources_ListingGroupFilterDimension_ProductCustomAttribute", +"description": "Custom attribute of a product offer." +}, +"productItemId": { +"$ref": "GoogleAdsSearchads360V0Resources_ListingGroupFilterDimension_ProductItemId", +"description": "Item id of a product offer." +}, +"productType": { +"$ref": "GoogleAdsSearchads360V0Resources_ListingGroupFilterDimension_ProductType", +"description": "Type of a product offer." +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__ListingGroupFilterDimensionPath": { +"description": "The path defining of dimensions defining a listing group filter.", +"id": "GoogleAdsSearchads360V0Resources__ListingGroupFilterDimensionPath", +"properties": { +"dimensions": { +"description": "Output only. The complete path of dimensions through the listing group filter hierarchy (excluding the root node) to this listing group filter.", +"items": { +"$ref": "GoogleAdsSearchads360V0Resources__ListingGroupFilterDimension" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__LocationView": { +"description": "A location view summarizes the performance of campaigns by a Location criterion.", +"id": "GoogleAdsSearchads360V0Resources__LocationView", +"properties": { +"resourceName": { +"description": "Output only. The resource name of the location view. Location view resource names have the form: `customers/{customer_id}/locationViews/{campaign_id}~{criterion_id}`", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__ProductBiddingCategoryConstant": { +"description": "A Product Bidding Category.", +"id": "GoogleAdsSearchads360V0Resources__ProductBiddingCategoryConstant", +"properties": { +"countryCode": { +"description": "Output only. Two-letter upper-case country code of the product bidding category.", +"readOnly": true, +"type": "string" +}, +"id": { +"description": "Output only. ID of the product bidding category. This ID is equivalent to the google_product_category ID as described in this article: https://support.google.com/merchants/answer/6324436.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"languageCode": { +"description": "Output only. Language code of the product bidding category.", +"readOnly": true, +"type": "string" +}, +"level": { +"description": "Output only. Level of the product bidding category.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"LEVEL1", +"LEVEL2", +"LEVEL3", +"LEVEL4", +"LEVEL5" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"Level 1.", +"Level 2.", +"Level 3.", +"Level 4.", +"Level 5." +], +"readOnly": true, +"type": "string" +}, +"localizedName": { +"description": "Output only. Display value of the product bidding category localized according to language_code.", +"readOnly": true, +"type": "string" +}, +"productBiddingCategoryConstantParent": { +"description": "Output only. Resource name of the parent product bidding category.", +"readOnly": true, +"type": "string" +}, +"resourceName": { +"description": "Output only. The resource name of the product bidding category. Product bidding category resource names have the form: `productBiddingCategoryConstants/{country_code}~{level}~{id}`", +"readOnly": true, +"type": "string" +}, +"status": { +"description": "Output only. Status of the product bidding category.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"ACTIVE", +"OBSOLETE" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"The category is active and can be used for bidding.", +"The category is obsolete. Used only for reporting purposes." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__ProductGroupView": { +"description": "A product group view.", +"id": "GoogleAdsSearchads360V0Resources__ProductGroupView", +"properties": { +"resourceName": { +"description": "Output only. The resource name of the product group view. Product group view resource names have the form: `customers/{customer_id}/productGroupViews/{ad_group_id}~{criterion_id}`", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__SearchAds360Field": { +"description": "A field or resource (artifact) used by SearchAds360Service.", +"id": "GoogleAdsSearchads360V0Resources__SearchAds360Field", +"properties": { +"attributeResources": { +"description": "Output only. The names of all resources that are selectable with the described artifact. Fields from these resources do not segment metrics when included in search queries. This field is only set for artifacts whose category is RESOURCE.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"category": { +"description": "Output only. The category of the artifact.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"RESOURCE", +"ATTRIBUTE", +"SEGMENT", +"METRIC" +], +"enumDescriptions": [ +"Unspecified", +"Unknown", +"The described artifact is a resource.", +"The described artifact is a field and is an attribute of a resource. Including a resource attribute field in a query may segment the query if the resource to which it is attributed segments the resource found in the FROM clause.", +"The described artifact is a field and always segments search queries.", +"The described artifact is a field and is a metric. It never segments search queries." +], +"readOnly": true, +"type": "string" +}, +"dataType": { +"description": "Output only. This field determines the operators that can be used with the artifact in WHERE clauses.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"BOOLEAN", +"DATE", +"DOUBLE", +"ENUM", +"FLOAT", +"INT32", +"INT64", +"MESSAGE", +"RESOURCE_NAME", +"STRING", +"UINT64" +], +"enumDescriptions": [ +"Unspecified", +"Unknown", +"Maps to google.protobuf.BoolValue Applicable operators: =, !=", +"Maps to google.protobuf.StringValue. It can be compared using the set of operators specific to dates however. Applicable operators: =, <, >, <=, >=, BETWEEN, DURING, and IN", +"Maps to google.protobuf.DoubleValue Applicable operators: =, !=, <, >, IN, NOT IN", +"Maps to an enum. It's specific definition can be found at type_url. Applicable operators: =, !=, IN, NOT IN", +"Maps to google.protobuf.FloatValue Applicable operators: =, !=, <, >, IN, NOT IN", +"Maps to google.protobuf.Int32Value Applicable operators: =, !=, <, >, <=, >=, BETWEEN, IN, NOT IN", +"Maps to google.protobuf.Int64Value Applicable operators: =, !=, <, >, <=, >=, BETWEEN, IN, NOT IN", +"Maps to a protocol buffer message type. The data type's details can be found in type_url. No operators work with MESSAGE fields.", +"Maps to google.protobuf.StringValue. Represents the resource name (unique id) of a resource or one of its foreign keys. No operators work with RESOURCE_NAME fields.", +"Maps to google.protobuf.StringValue. Applicable operators: =, !=, LIKE, NOT LIKE, IN, NOT IN", +"Maps to google.protobuf.UInt64Value Applicable operators: =, !=, <, >, <=, >=, BETWEEN, IN, NOT IN" +], +"readOnly": true, +"type": "string" +}, +"enumValues": { +"description": "Output only. Values the artifact can assume if it is a field of type ENUM. This field is only set for artifacts of category SEGMENT or ATTRIBUTE.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"filterable": { +"description": "Output only. Whether the artifact can be used in a WHERE clause in search queries.", +"readOnly": true, +"type": "boolean" +}, +"isRepeated": { +"description": "Output only. Whether the field artifact is repeated.", +"readOnly": true, +"type": "boolean" +}, +"metrics": { +"description": "Output only. This field lists the names of all metrics that are selectable with the described artifact when it is used in the FROM clause. It is only set for artifacts whose category is RESOURCE.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"name": { +"description": "Output only. The name of the artifact.", +"readOnly": true, +"type": "string" +}, +"resourceName": { +"description": "Output only. The resource name of the artifact. Artifact resource names have the form: `SearchAds360Fields/{name}`", +"readOnly": true, +"type": "string" +}, +"segments": { +"description": "Output only. This field lists the names of all artifacts, whether a segment or another resource, that segment metrics when included in search queries and when the described artifact is used in the FROM clause. It is only set for artifacts whose category is RESOURCE.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"selectable": { +"description": "Output only. Whether the artifact can be used in a SELECT clause in search queries.", +"readOnly": true, +"type": "boolean" +}, +"selectableWith": { +"description": "Output only. The names of all resources, segments, and metrics that are selectable with the described artifact.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"sortable": { +"description": "Output only. Whether the artifact can be used in a ORDER BY clause in search queries.", +"readOnly": true, +"type": "boolean" +}, +"typeUrl": { +"description": "Output only. The URL of proto describing the artifact's data type.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__ShoppingPerformanceView": { +"description": "Shopping performance view. Provides Shopping campaign statistics aggregated at several product dimension levels. Product dimension values from Merchant Center such as brand, category, custom attributes, product condition and product type will reflect the state of each dimension as of the date and time when the corresponding event was recorded.", +"id": "GoogleAdsSearchads360V0Resources__ShoppingPerformanceView", +"properties": { +"resourceName": { +"description": "Output only. The resource name of the Shopping performance view. Shopping performance view resource names have the form: `customers/{customer_id}/shoppingPerformanceView`", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__UserList": { +"description": "A user list. This is a list of users a customer may target.", +"id": "GoogleAdsSearchads360V0Resources__UserList", +"properties": { +"id": { +"description": "Output only. Id of the user list.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Name of this user list. Depending on its access_reason, the user list name may not be unique (for example, if access_reason=SHARED)", +"type": "string" +}, +"resourceName": { +"description": "Immutable. The resource name of the user list. User list resource names have the form: `customers/{customer_id}/userLists/{user_list_id}`", +"type": "string" +}, +"type": { +"description": "Output only. Type of this list. This field is read-only.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"REMARKETING", +"LOGICAL", +"EXTERNAL_REMARKETING", +"RULE_BASED", +"SIMILAR", +"CRM_BASED" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"UserList represented as a collection of conversion types.", +"UserList represented as a combination of other user lists/interests.", +"UserList created in the Google Ad Manager platform.", +"UserList associated with a rule.", +"UserList with users similar to users of another UserList.", +"UserList of first-party CRM data provided by advertiser in the form of emails or other formats." +], +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__UserLocationView": { +"description": "A user location view. User Location View includes all metrics aggregated at the country level, one row per country. It reports metrics at the actual physical location of the user by targeted or not targeted location. If other segment fields are used, you may get more than one row per country.", +"id": "GoogleAdsSearchads360V0Resources__UserLocationView", +"properties": { +"countryCriterionId": { +"description": "Output only. Criterion Id for the country.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"resourceName": { +"description": "Output only. The resource name of the user location view. UserLocation view resource names have the form: `customers/{customer_id}/userLocationViews/{country_criterion_id}~{targeting_location}`", +"readOnly": true, +"type": "string" +}, +"targetingLocation": { +"description": "Output only. Indicates whether location was targeted or not.", +"readOnly": true, +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__Visit": { +"description": "A visit.", +"id": "GoogleAdsSearchads360V0Resources__Visit", +"properties": { +"adId": { +"description": "Output only. Ad ID. A value of 0 indicates that the ad is unattributed.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"assetFieldType": { +"description": "Output only. Asset field type of the visit event.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"HEADLINE", +"DESCRIPTION", +"MANDATORY_AD_TEXT", +"MARKETING_IMAGE", +"MEDIA_BUNDLE", +"YOUTUBE_VIDEO", +"BOOK_ON_GOOGLE", +"LEAD_FORM", +"PROMOTION", +"CALLOUT", +"STRUCTURED_SNIPPET", +"SITELINK", +"MOBILE_APP", +"HOTEL_CALLOUT", +"CALL", +"PRICE", +"LONG_HEADLINE", +"BUSINESS_NAME", +"SQUARE_MARKETING_IMAGE", +"PORTRAIT_MARKETING_IMAGE", +"LOGO", +"LANDSCAPE_LOGO", +"VIDEO", +"CALL_TO_ACTION_SELECTION", +"AD_IMAGE", +"BUSINESS_LOGO", +"HOTEL_PROPERTY", +"DISCOVERY_CAROUSEL_CARD" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"The asset is linked for use as a headline.", +"The asset is linked for use as a description.", +"The asset is linked for use as mandatory ad text.", +"The asset is linked for use as a marketing image.", +"The asset is linked for use as a media bundle.", +"The asset is linked for use as a YouTube video.", +"The asset is linked to indicate that a hotels campaign is \"Book on Google\" enabled.", +"The asset is linked for use as a Lead Form extension.", +"The asset is linked for use as a Promotion extension.", +"The asset is linked for use as a Callout extension.", +"The asset is linked for use as a Structured Snippet extension.", +"The asset is linked for use as a Sitelink.", +"The asset is linked for use as a Mobile App extension.", +"The asset is linked for use as a Hotel Callout extension.", +"The asset is linked for use as a Call extension.", +"The asset is linked for use as a Price extension.", +"The asset is linked for use as a long headline.", +"The asset is linked for use as a business name.", +"The asset is linked for use as a square marketing image.", +"The asset is linked for use as a portrait marketing image.", +"The asset is linked for use as a logo.", +"The asset is linked for use as a landscape logo.", +"The asset is linked for use as a non YouTube logo.", +"The asset is linked for use to select a call-to-action.", +"The asset is linked for use to select an ad image.", +"The asset is linked for use as a business logo.", +"The asset is linked for use as a hotel property in a Performance Max for travel goals campaign.", +"The asset is linked for use as a discovery carousel card." +], +"readOnly": true, +"type": "string" +}, +"assetId": { +"description": "Output only. ID of the asset which was interacted with during the visit event.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"clickId": { +"description": "Output only. A unique string for each visit that is passed to the landing page as the click id URL parameter.", +"readOnly": true, +"type": "string" +}, +"criterionId": { +"description": "Output only. Search Ads 360 keyword ID. A value of 0 indicates that the keyword is unattributed.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"id": { +"description": "Output only. The ID of the visit.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"merchantId": { +"description": "Output only. The Search Ads 360 inventory account ID containing the product that was clicked on. Search Ads 360 generates this ID when you link an inventory account in Search Ads 360.", +"format": "int64", +"readOnly": true, +"type": "string" +}, +"productChannel": { +"description": "Output only. The sales channel of the product that was clicked on: Online or Local.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"ONLINE", +"LOCAL" +], +"enumDescriptions": [ +"Not specified.", +"Used for return value only. Represents value unknown in this version.", +"The item is sold online.", +"The item is sold in local stores." +], +"readOnly": true, +"type": "string" +}, +"productCountryCode": { +"description": "Output only. The country (ISO-3166 format) registered for the inventory feed that contains the product clicked on.", +"readOnly": true, +"type": "string" +}, +"productId": { +"description": "Output only. The ID of the product clicked on.", +"readOnly": true, +"type": "string" +}, +"productLanguageCode": { +"description": "Output only. The language (ISO-639-1) that has been set for the Merchant Center feed containing data about the product.", +"readOnly": true, +"type": "string" +}, +"productStoreId": { +"description": "Output only. The store in the Local Inventory Ad that was clicked on. This should match the store IDs used in your local products feed.", +"readOnly": true, +"type": "string" +}, +"resourceName": { +"description": "Output only. The resource name of the visit. Visit resource names have the form: `customers/{customer_id}/visits/{ad_group_id}~{criterion_id}~{ds_visit_id}`", +"readOnly": true, +"type": "string" +}, +"visitDateTime": { +"description": "Output only. The timestamp of the visit event. The timestamp is in the customer's time zone and in \"yyyy-MM-dd HH:mm:ss\" format.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Resources__WebpageView": { +"description": "A webpage view.", +"id": "GoogleAdsSearchads360V0Resources__WebpageView", +"properties": { +"resourceName": { +"description": "Output only. The resource name of the webpage view. Webpage view resource names have the form: `customers/{customer_id}/webpageViews/{ad_group_id}~{criterion_id}`", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Services__ConversionCustomDimensionHeader": { +"description": "Message for conversion custom dimension header.", +"id": "GoogleAdsSearchads360V0Services__ConversionCustomDimensionHeader", +"properties": { +"id": { +"description": "The conversion custom dimension ID.", +"format": "int64", +"type": "string" +}, +"name": { +"description": "The user defined name of the conversion custom dimension.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Services__ConversionCustomMetricHeader": { +"description": "Message for conversion custom metric header.", +"id": "GoogleAdsSearchads360V0Services__ConversionCustomMetricHeader", +"properties": { +"id": { +"description": "The conversion custom metric ID.", +"format": "int64", +"type": "string" +}, +"name": { +"description": "The user defined name of the conversion custom metric.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Services__CustomColumnHeader": { +"description": "Message for custom column header.", +"id": "GoogleAdsSearchads360V0Services__CustomColumnHeader", +"properties": { +"id": { +"description": "The custom column ID.", +"format": "int64", +"type": "string" +}, +"name": { +"description": "The user defined name of the custom column.", +"type": "string" +}, +"referencesMetrics": { +"description": "True when the custom column references metrics.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Services__ListAccessibleCustomersResponse": { +"description": "Response message for CustomerService.ListAccessibleCustomers.", +"id": "GoogleAdsSearchads360V0Services__ListAccessibleCustomersResponse", +"properties": { +"resourceNames": { +"description": "Resource name of customers directly accessible by the user authenticating the call.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Services__ListCustomColumnsResponse": { +"description": "Response message for fetching all custom columns associated with a customer.", +"id": "GoogleAdsSearchads360V0Services__ListCustomColumnsResponse", +"properties": { +"customColumns": { +"description": "The CustomColumns owned by the provided customer.", +"items": { +"$ref": "GoogleAdsSearchads360V0Resources__CustomColumn" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Services__RawEventConversionDimensionHeader": { +"description": "Message for raw event conversion dimension header.", +"id": "GoogleAdsSearchads360V0Services__RawEventConversionDimensionHeader", +"properties": { +"id": { +"description": "The conversion custom variable ID.", +"format": "int64", +"type": "string" +}, +"name": { +"description": "The user defined name of the raw event dimension.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Services__RawEventConversionMetricHeader": { +"description": "Message for raw event conversion metric header.", +"id": "GoogleAdsSearchads360V0Services__RawEventConversionMetricHeader", +"properties": { +"id": { +"description": "The conversion custom variable ID.", +"format": "int64", +"type": "string" +}, +"name": { +"description": "The user defined name of the raw event metric.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Services__SearchAds360Row": { +"description": "A returned row from the query.", +"id": "GoogleAdsSearchads360V0Services__SearchAds360Row", +"properties": { +"accessibleBiddingStrategy": { +"$ref": "GoogleAdsSearchads360V0Resources__AccessibleBiddingStrategy", +"description": "The accessible bidding strategy referenced in the query." +}, +"adGroup": { +"$ref": "GoogleAdsSearchads360V0Resources__AdGroup", +"description": "The ad group referenced in the query." +}, +"adGroupAd": { +"$ref": "GoogleAdsSearchads360V0Resources__AdGroupAd", +"description": "The ad referenced in the query." +}, +"adGroupAdEffectiveLabel": { +"$ref": "GoogleAdsSearchads360V0Resources__AdGroupAdEffectiveLabel", +"description": "The ad group ad effective label referenced in the query." +}, +"adGroupAdLabel": { +"$ref": "GoogleAdsSearchads360V0Resources__AdGroupAdLabel", +"description": "The ad group ad label referenced in the query." +}, +"adGroupAsset": { +"$ref": "GoogleAdsSearchads360V0Resources__AdGroupAsset", +"description": "The ad group asset referenced in the query." +}, +"adGroupAssetSet": { +"$ref": "GoogleAdsSearchads360V0Resources__AdGroupAssetSet", +"description": "The ad group asset set referenced in the query." +}, +"adGroupAudienceView": { +"$ref": "GoogleAdsSearchads360V0Resources__AdGroupAudienceView", +"description": "The ad group audience view referenced in the query." +}, +"adGroupBidModifier": { +"$ref": "GoogleAdsSearchads360V0Resources__AdGroupBidModifier", +"description": "The bid modifier referenced in the query." +}, +"adGroupCriterion": { +"$ref": "GoogleAdsSearchads360V0Resources__AdGroupCriterion", +"description": "The criterion referenced in the query." +}, +"adGroupCriterionEffectiveLabel": { +"$ref": "GoogleAdsSearchads360V0Resources__AdGroupCriterionEffectiveLabel", +"description": "The ad group criterion effective label referenced in the query." +}, +"adGroupCriterionLabel": { +"$ref": "GoogleAdsSearchads360V0Resources__AdGroupCriterionLabel", +"description": "The ad group criterion label referenced in the query." +}, +"adGroupEffectiveLabel": { +"$ref": "GoogleAdsSearchads360V0Resources__AdGroupEffectiveLabel", +"description": "The ad group effective label referenced in the query." +}, +"adGroupLabel": { +"$ref": "GoogleAdsSearchads360V0Resources__AdGroupLabel", +"description": "The ad group label referenced in the query." +}, +"ageRangeView": { +"$ref": "GoogleAdsSearchads360V0Resources__AgeRangeView", +"description": "The age range view referenced in the query." +}, +"asset": { +"$ref": "GoogleAdsSearchads360V0Resources__Asset", +"description": "The asset referenced in the query." +}, +"assetGroup": { +"$ref": "GoogleAdsSearchads360V0Resources__AssetGroup", +"description": "The asset group referenced in the query." +}, +"assetGroupAsset": { +"$ref": "GoogleAdsSearchads360V0Resources__AssetGroupAsset", +"description": "The asset group asset referenced in the query." +}, +"assetGroupListingGroupFilter": { +"$ref": "GoogleAdsSearchads360V0Resources__AssetGroupListingGroupFilter", +"description": "The asset group listing group filter referenced in the query." +}, +"assetGroupSignal": { +"$ref": "GoogleAdsSearchads360V0Resources__AssetGroupSignal", +"description": "The asset group signal referenced in the query." +}, +"assetGroupTopCombinationView": { +"$ref": "GoogleAdsSearchads360V0Resources__AssetGroupTopCombinationView", +"description": "The asset group top combination view referenced in the query." +}, +"assetSet": { +"$ref": "GoogleAdsSearchads360V0Resources__AssetSet", +"description": "The asset set referenced in the query." +}, +"assetSetAsset": { +"$ref": "GoogleAdsSearchads360V0Resources__AssetSetAsset", +"description": "The asset set asset referenced in the query." +}, +"audience": { +"$ref": "GoogleAdsSearchads360V0Resources__Audience", +"description": "The Audience referenced in the query." +}, +"biddingStrategy": { +"$ref": "GoogleAdsSearchads360V0Resources__BiddingStrategy", +"description": "The bidding strategy referenced in the query." +}, +"campaign": { +"$ref": "GoogleAdsSearchads360V0Resources__Campaign", +"description": "The campaign referenced in the query." +}, +"campaignAsset": { +"$ref": "GoogleAdsSearchads360V0Resources__CampaignAsset", +"description": "The campaign asset referenced in the query." +}, +"campaignAssetSet": { +"$ref": "GoogleAdsSearchads360V0Resources__CampaignAssetSet", +"description": "The campaign asset set referenced in the query." +}, +"campaignAudienceView": { +"$ref": "GoogleAdsSearchads360V0Resources__CampaignAudienceView", +"description": "The campaign audience view referenced in the query." +}, +"campaignBudget": { +"$ref": "GoogleAdsSearchads360V0Resources__CampaignBudget", +"description": "The campaign budget referenced in the query." +}, +"campaignCriterion": { +"$ref": "GoogleAdsSearchads360V0Resources__CampaignCriterion", +"description": "The campaign criterion referenced in the query." +}, +"campaignEffectiveLabel": { +"$ref": "GoogleAdsSearchads360V0Resources__CampaignEffectiveLabel", +"description": "The campaign effective label referenced in the query." +}, +"campaignLabel": { +"$ref": "GoogleAdsSearchads360V0Resources__CampaignLabel", +"description": "The campaign label referenced in the query." +}, +"cartDataSalesView": { +"$ref": "GoogleAdsSearchads360V0Resources__CartDataSalesView", +"description": "The cart data sales view referenced in the query." +}, +"conversion": { +"$ref": "GoogleAdsSearchads360V0Resources__Conversion", +"description": "The event level conversion referenced in the query." +}, +"conversionAction": { +"$ref": "GoogleAdsSearchads360V0Resources__ConversionAction", +"description": "The conversion action referenced in the query." +}, +"conversionCustomVariable": { +"$ref": "GoogleAdsSearchads360V0Resources__ConversionCustomVariable", +"description": "The conversion custom variable referenced in the query." +}, +"customColumns": { +"description": "The custom columns.", +"items": { +"$ref": "GoogleAdsSearchads360V0Common__Value" +}, +"type": "array" +}, +"customer": { +"$ref": "GoogleAdsSearchads360V0Resources__Customer", +"description": "The customer referenced in the query." +}, +"customerAsset": { +"$ref": "GoogleAdsSearchads360V0Resources__CustomerAsset", +"description": "The customer asset referenced in the query." +}, +"customerAssetSet": { +"$ref": "GoogleAdsSearchads360V0Resources__CustomerAssetSet", +"description": "The customer asset set referenced in the query." +}, +"customerClient": { +"$ref": "GoogleAdsSearchads360V0Resources__CustomerClient", +"description": "The CustomerClient referenced in the query." +}, +"customerManagerLink": { +"$ref": "GoogleAdsSearchads360V0Resources__CustomerManagerLink", +"description": "The CustomerManagerLink referenced in the query." +}, +"dynamicSearchAdsSearchTermView": { +"$ref": "GoogleAdsSearchads360V0Resources__DynamicSearchAdsSearchTermView", +"description": "The dynamic search ads search term view referenced in the query." +}, +"genderView": { +"$ref": "GoogleAdsSearchads360V0Resources__GenderView", +"description": "The gender view referenced in the query." +}, +"geoTargetConstant": { +"$ref": "GoogleAdsSearchads360V0Resources__GeoTargetConstant", +"description": "The geo target constant referenced in the query." +}, +"keywordView": { +"$ref": "GoogleAdsSearchads360V0Resources__KeywordView", +"description": "The keyword view referenced in the query." +}, +"label": { +"$ref": "GoogleAdsSearchads360V0Resources__Label", +"description": "The label referenced in the query." +}, +"languageConstant": { +"$ref": "GoogleAdsSearchads360V0Resources__LanguageConstant", +"description": "The language constant referenced in the query." +}, +"locationView": { +"$ref": "GoogleAdsSearchads360V0Resources__LocationView", +"description": "The location view referenced in the query." +}, +"metrics": { +"$ref": "GoogleAdsSearchads360V0Common__Metrics", +"description": "The metrics." +}, +"productBiddingCategoryConstant": { +"$ref": "GoogleAdsSearchads360V0Resources__ProductBiddingCategoryConstant", +"description": "The Product Bidding Category referenced in the query." +}, +"productGroupView": { +"$ref": "GoogleAdsSearchads360V0Resources__ProductGroupView", +"description": "The product group view referenced in the query." +}, +"segments": { +"$ref": "GoogleAdsSearchads360V0Common__Segments", +"description": "The segments." +}, +"shoppingPerformanceView": { +"$ref": "GoogleAdsSearchads360V0Resources__ShoppingPerformanceView", +"description": "The shopping performance view referenced in the query." +}, +"userList": { +"$ref": "GoogleAdsSearchads360V0Resources__UserList", +"description": "The user list referenced in the query." +}, +"userLocationView": { +"$ref": "GoogleAdsSearchads360V0Resources__UserLocationView", +"description": "The user location view referenced in the query." +}, +"visit": { +"$ref": "GoogleAdsSearchads360V0Resources__Visit", +"description": "The event level visit referenced in the query." +}, +"webpageView": { +"$ref": "GoogleAdsSearchads360V0Resources__WebpageView", +"description": "The webpage view referenced in the query." +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Services__SearchSearchAds360FieldsRequest": { +"description": "Request message for SearchAds360FieldService.SearchSearchAds360Fields.", +"id": "GoogleAdsSearchads360V0Services__SearchSearchAds360FieldsRequest", +"properties": { +"pageSize": { +"description": "Number of elements to retrieve in a single page. When too large a page is requested, the server may decide to further limit the number of returned resources.", +"format": "int32", +"type": "integer" +}, +"pageToken": { +"description": "Token of the page to retrieve. If not specified, the first page of results will be returned. Use the value obtained from `next_page_token` in the previous response in order to request the next page of results.", +"type": "string" +}, +"query": { +"description": "Required. The query string.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Services__SearchSearchAds360FieldsResponse": { +"description": "Response message for SearchAds360FieldService.SearchSearchAds360Fields.", +"id": "GoogleAdsSearchads360V0Services__SearchSearchAds360FieldsResponse", +"properties": { +"nextPageToken": { +"description": "Pagination token used to retrieve the next page of results. Pass the content of this string as the `page_token` attribute of the next request. `next_page_token` is not returned for the last page.", +"type": "string" +}, +"results": { +"description": "The list of fields that matched the query.", +"items": { +"$ref": "GoogleAdsSearchads360V0Resources__SearchAds360Field" +}, +"type": "array" +}, +"totalResultsCount": { +"description": "Total number of results that match the query ignoring the LIMIT clause.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Services__SearchSearchAds360Request": { +"description": "Request message for SearchAds360Service.Search.", +"id": "GoogleAdsSearchads360V0Services__SearchSearchAds360Request", +"properties": { +"pageSize": { +"description": "Number of elements to retrieve in a single page. When too large a page is requested, the server may decide to further limit the number of returned resources.", +"format": "int32", +"type": "integer" +}, +"pageToken": { +"description": "Token of the page to retrieve. If not specified, the first page of results will be returned. Use the value obtained from `next_page_token` in the previous response in order to request the next page of results.", +"type": "string" +}, +"query": { +"description": "Required. The query string.", +"type": "string" +}, +"returnTotalResultsCount": { +"description": "If true, the total number of results that match the query ignoring the LIMIT clause will be included in the response. Default is false.", +"type": "boolean" +}, +"summaryRowSetting": { +"description": "Determines whether a summary row will be returned. By default, summary row is not returned. If requested, the summary row will be sent in a response by itself after all other query results are returned.", +"enum": [ +"UNSPECIFIED", +"UNKNOWN", +"NO_SUMMARY_ROW", +"SUMMARY_ROW_WITH_RESULTS", +"SUMMARY_ROW_ONLY" +], +"enumDescriptions": [ +"Not specified.", +"Represent unknown values of return summary row.", +"Do not return summary row.", +"Return summary row along with results. The summary row will be returned in the last batch alone (last batch will contain no results).", +"Return summary row only and return no results." +], +"type": "string" +}, +"validateOnly": { +"description": "If true, the request is validated but not executed.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleAdsSearchads360V0Services__SearchSearchAds360Response": { +"description": "Response message for SearchAds360Service.Search.", +"id": "GoogleAdsSearchads360V0Services__SearchSearchAds360Response", +"properties": { +"conversionCustomDimensionHeaders": { +"description": "The headers of the conversion custom dimensions in the results.", +"items": { +"$ref": "GoogleAdsSearchads360V0Services__ConversionCustomDimensionHeader" +}, +"type": "array" +}, +"conversionCustomMetricHeaders": { +"description": "The headers of the conversion custom metrics in the results.", +"items": { +"$ref": "GoogleAdsSearchads360V0Services__ConversionCustomMetricHeader" +}, +"type": "array" +}, +"customColumnHeaders": { +"description": "The headers of the custom columns in the results.", +"items": { +"$ref": "GoogleAdsSearchads360V0Services__CustomColumnHeader" +}, +"type": "array" +}, +"fieldMask": { +"description": "FieldMask that represents what fields were requested by the user.", +"format": "google-fieldmask", +"type": "string" +}, +"nextPageToken": { +"description": "Pagination token used to retrieve the next page of results. Pass the content of this string as the `page_token` attribute of the next request. `next_page_token` is not returned for the last page.", +"type": "string" +}, +"rawEventConversionDimensionHeaders": { +"description": "The headers of the raw event conversion dimensions in the results.", +"items": { +"$ref": "GoogleAdsSearchads360V0Services__RawEventConversionDimensionHeader" +}, +"type": "array" +}, +"rawEventConversionMetricHeaders": { +"description": "The headers of the raw event conversion metrics in the results.", +"items": { +"$ref": "GoogleAdsSearchads360V0Services__RawEventConversionMetricHeader" +}, +"type": "array" +}, +"results": { +"description": "The list of rows that matched the query.", +"items": { +"$ref": "GoogleAdsSearchads360V0Services__SearchAds360Row" +}, +"type": "array" +}, +"summaryRow": { +"$ref": "GoogleAdsSearchads360V0Services__SearchAds360Row", +"description": "Summary row that contains summary of metrics in results. Summary of metrics means aggregation of metrics across all results, here aggregation could be sum, average, rate, etc." +}, +"totalResultsCount": { +"description": "Total number of results that match the query ignoring the LIMIT clause.", +"format": "int64", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Search Ads 360 Reporting API", +"version": "v0", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/secretmanager.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/secretmanager.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..c95a5dbe27222af96eef3cb5be085da1b10a0425 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/secretmanager.v1.json @@ -0,0 +1,1857 @@ +{ +"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:v1", +"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": "v1/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": "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": "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": "v1/{+name}/locations", +"response": { +"$ref": "ListLocationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"secrets": { +"methods": { +"addVersion": { +"description": "Creates a new SecretVersion containing secret data and attaches it to an existing Secret.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/secrets/{secretsId}:addVersion", +"httpMethod": "POST", +"id": "secretmanager.projects.locations.secrets.addVersion", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The resource name of the Secret to associate with the SecretVersion in the format `projects/*/secrets/*` or `projects/*/locations/*/secrets/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/secrets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+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": "v1/projects/{projectsId}/locations/{locationsId}/secrets", +"httpMethod": "POST", +"id": "secretmanager.projects.locations.secrets.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The resource name of the project to associate with the Secret, in the format `projects/*` or `projects/*/locations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"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": "v1/{+parent}/secrets", +"request": { +"$ref": "Secret" +}, +"response": { +"$ref": "Secret" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a Secret.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/secrets/{secretsId}", +"httpMethod": "DELETE", +"id": "secretmanager.projects.locations.secrets.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"etag": { +"description": "Optional. Etag of the Secret. The request succeeds if it matches the etag of the currently stored secret object. If the etag is omitted, the request succeeds.", +"location": "query", +"type": "string" +}, +"name": { +"description": "Required. The resource name of the Secret to delete in the format `projects/*/secrets/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/secrets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets metadata for a given Secret.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/secrets/{secretsId}", +"httpMethod": "GET", +"id": "secretmanager.projects.locations.secrets.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the Secret, in the format `projects/*/secrets/*` or `projects/*/locations/*/secrets/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/secrets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+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": "v1/projects/{projectsId}/locations/{locationsId}/secrets/{secretsId}:getIamPolicy", +"httpMethod": "GET", +"id": "secretmanager.projects.locations.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/[^/]+/locations/[^/]+/secrets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists Secrets.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/secrets", +"httpMethod": "GET", +"id": "secretmanager.projects.locations.secrets.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filter string, adhering to the rules in [List-operation filtering](https://cloud.google.com/secret-manager/docs/filtering). List only secrets matching the filter. If filter is empty, all secrets are listed.", +"location": "query", +"type": "string" +}, +"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/*` or `projects/*/locations/*`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/secrets", +"response": { +"$ref": "ListSecretsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates metadata of an existing Secret.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/secrets/{secretsId}", +"httpMethod": "PATCH", +"id": "secretmanager.projects.locations.secrets.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Output only. The resource name of the Secret in the format `projects/*/secrets/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/secrets/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. Specifies the fields to be updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1/{+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": "v1/projects/{projectsId}/locations/{locationsId}/secrets/{secretsId}:setIamPolicy", +"httpMethod": "POST", +"id": "secretmanager.projects.locations.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/[^/]+/locations/[^/]+/secrets/[^/]+$", +"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 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": "v1/projects/{projectsId}/locations/{locationsId}/secrets/{secretsId}:testIamPermissions", +"httpMethod": "POST", +"id": "secretmanager.projects.locations.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/[^/]+/locations/[^/]+/secrets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+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 most recently created SecretVersion.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/secrets/{secretsId}/versions/{versionsId}:access", +"httpMethod": "GET", +"id": "secretmanager.projects.locations.secrets.versions.access", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the SecretVersion in the format `projects/*/secrets/*/versions/*` or `projects/*/locations/*/secrets/*/versions/*`. `projects/*/secrets/*/versions/latest` or `projects/*/locations/*/secrets/*/versions/latest` is an alias to the most recently created SecretVersion.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/secrets/[^/]+/versions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+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": "v1/projects/{projectsId}/locations/{locationsId}/secrets/{secretsId}/versions/{versionsId}:destroy", +"httpMethod": "POST", +"id": "secretmanager.projects.locations.secrets.versions.destroy", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the SecretVersion to destroy in the format `projects/*/secrets/*/versions/*` or `projects/*/locations/*/secrets/*/versions/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/secrets/[^/]+/versions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+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": "v1/projects/{projectsId}/locations/{locationsId}/secrets/{secretsId}/versions/{versionsId}:disable", +"httpMethod": "POST", +"id": "secretmanager.projects.locations.secrets.versions.disable", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the SecretVersion to disable in the format `projects/*/secrets/*/versions/*` or `projects/*/locations/*/secrets/*/versions/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/secrets/[^/]+/versions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+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": "v1/projects/{projectsId}/locations/{locationsId}/secrets/{secretsId}/versions/{versionsId}:enable", +"httpMethod": "POST", +"id": "secretmanager.projects.locations.secrets.versions.enable", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the SecretVersion to enable in the format `projects/*/secrets/*/versions/*` or `projects/*/locations/*/secrets/*/versions/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/secrets/[^/]+/versions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+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 most recently created SecretVersion.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/secrets/{secretsId}/versions/{versionsId}", +"httpMethod": "GET", +"id": "secretmanager.projects.locations.secrets.versions.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the SecretVersion in the format `projects/*/secrets/*/versions/*` or `projects/*/locations/*/secrets/*/versions/*`. `projects/*/secrets/*/versions/latest` or `projects/*/locations/*/secrets/*/versions/latest` is an alias to the most recently created SecretVersion.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/secrets/[^/]+/versions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "SecretVersion" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists SecretVersions. This call does not return secret data.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/secrets/{secretsId}/versions", +"httpMethod": "GET", +"id": "secretmanager.projects.locations.secrets.versions.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filter string, adhering to the rules in [List-operation filtering](https://cloud.google.com/secret-manager/docs/filtering). List only secret versions matching the filter. If filter is empty, all secret versions are listed.", +"location": "query", +"type": "string" +}, +"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/*` or `projects/*/locations/*/secrets/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/secrets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/versions", +"response": { +"$ref": "ListSecretVersionsResponse" +}, +"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": "v1/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/*` or `projects/*/locations/*/secrets/*`.", +"location": "path", +"pattern": "^projects/[^/]+/secrets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+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": "v1/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/*` or `projects/*/locations/*`.", +"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": "v1/{+parent}/secrets", +"request": { +"$ref": "Secret" +}, +"response": { +"$ref": "Secret" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a Secret.", +"flatPath": "v1/projects/{projectsId}/secrets/{secretsId}", +"httpMethod": "DELETE", +"id": "secretmanager.projects.secrets.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"etag": { +"description": "Optional. Etag of the Secret. The request succeeds if it matches the etag of the currently stored secret object. If the etag is omitted, the request succeeds.", +"location": "query", +"type": "string" +}, +"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": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets metadata for a given Secret.", +"flatPath": "v1/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/*` or `projects/*/locations/*/secrets/*`.", +"location": "path", +"pattern": "^projects/[^/]+/secrets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+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": "v1/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": "v1/{+resource}:getIamPolicy", +"response": { +"$ref": "Policy" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists Secrets.", +"flatPath": "v1/projects/{projectsId}/secrets", +"httpMethod": "GET", +"id": "secretmanager.projects.secrets.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filter string, adhering to the rules in [List-operation filtering](https://cloud.google.com/secret-manager/docs/filtering). List only secrets matching the filter. If filter is empty, all secrets are listed.", +"location": "query", +"type": "string" +}, +"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/*` or `projects/*/locations/*`", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/secrets", +"response": { +"$ref": "ListSecretsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates metadata of an existing Secret.", +"flatPath": "v1/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": "v1/{+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": "v1/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": "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 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": "v1/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": "v1/{+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 most recently created SecretVersion.", +"flatPath": "v1/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/*` or `projects/*/locations/*/secrets/*/versions/*`. `projects/*/secrets/*/versions/latest` or `projects/*/locations/*/secrets/*/versions/latest` is an alias to the most recently created SecretVersion.", +"location": "path", +"pattern": "^projects/[^/]+/secrets/[^/]+/versions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+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": "v1/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/*` or `projects/*/locations/*/secrets/*/versions/*`.", +"location": "path", +"pattern": "^projects/[^/]+/secrets/[^/]+/versions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+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": "v1/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/*` or `projects/*/locations/*/secrets/*/versions/*`.", +"location": "path", +"pattern": "^projects/[^/]+/secrets/[^/]+/versions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+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": "v1/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/*` or `projects/*/locations/*/secrets/*/versions/*`.", +"location": "path", +"pattern": "^projects/[^/]+/secrets/[^/]+/versions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+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 most recently created SecretVersion.", +"flatPath": "v1/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/*` or `projects/*/locations/*/secrets/*/versions/*`. `projects/*/secrets/*/versions/latest` or `projects/*/locations/*/secrets/*/versions/latest` is an alias to the most recently created SecretVersion.", +"location": "path", +"pattern": "^projects/[^/]+/secrets/[^/]+/versions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "SecretVersion" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists SecretVersions. This call does not return secret data.", +"flatPath": "v1/projects/{projectsId}/secrets/{secretsId}/versions", +"httpMethod": "GET", +"id": "secretmanager.projects.secrets.versions.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filter string, adhering to the rules in [List-operation filtering](https://cloud.google.com/secret-manager/docs/filtering). List only secret versions matching the filter. If filter is empty, all secret versions are listed.", +"location": "query", +"type": "string" +}, +"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/*` or `projects/*/locations/*/secrets/*`.", +"location": "path", +"pattern": "^projects/[^/]+/secrets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/versions", +"response": { +"$ref": "ListSecretVersionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +}, +"revision": "20241114", +"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/*` or `projects/*/locations/*/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": { +"customerManagedEncryption": { +"$ref": "CustomerManagedEncryption", +"description": "Optional. The customer-managed encryption configuration of the Secret. If no configuration is provided, Google-managed default encryption is used. Updates to the Secret encryption configuration only apply to SecretVersions added afterwards. They do not apply retroactively to existing SecretVersions." +} +}, +"type": "object" +}, +"AutomaticStatus": { +"description": "The replication status of a SecretVersion using automatic replication. Only populated if the parent Secret has an automatic replication policy.", +"id": "AutomaticStatus", +"properties": { +"customerManagedEncryption": { +"$ref": "CustomerManagedEncryptionStatus", +"description": "Output only. The customer-managed encryption status of the SecretVersion. Only populated if customer-managed encryption is used.", +"readOnly": true +} +}, +"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" +}, +"CustomerManagedEncryption": { +"description": "Configuration for encrypting secret payloads using customer-managed encryption keys (CMEK).", +"id": "CustomerManagedEncryption", +"properties": { +"kmsKeyName": { +"description": "Required. The resource name of the Cloud KMS CryptoKey used to encrypt secret payloads. For secrets using the UserManaged replication policy type, Cloud KMS CryptoKeys must reside in the same location as the replica location. For secrets using the Automatic replication policy type, Cloud KMS CryptoKeys must reside in `global`. The expected format is `projects/*/locations/*/keyRings/*/cryptoKeys/*`.", +"type": "string" +} +}, +"type": "object" +}, +"CustomerManagedEncryptionStatus": { +"description": "Describes the status of customer-managed encryption.", +"id": "CustomerManagedEncryptionStatus", +"properties": { +"kmsKeyVersionName": { +"description": "Required. The resource name of the Cloud KMS CryptoKeyVersion used to encrypt the secret payload, in the following format: `projects/*/locations/*/keyRings/*/cryptoKeys/*/versions/*`.", +"type": "string" +} +}, +"type": "object" +}, +"DestroySecretVersionRequest": { +"description": "Request message for SecretManagerService.DestroySecretVersion.", +"id": "DestroySecretVersionRequest", +"properties": { +"etag": { +"description": "Optional. Etag of the SecretVersion. The request succeeds if it matches the etag of the currently stored secret version object. If the etag is omitted, the request succeeds.", +"type": "string" +} +}, +"type": "object" +}, +"DisableSecretVersionRequest": { +"description": "Request message for SecretManagerService.DisableSecretVersion.", +"id": "DisableSecretVersionRequest", +"properties": { +"etag": { +"description": "Optional. Etag of the SecretVersion. The request succeeds if it matches the etag of the currently stored secret version object. If the etag is omitted, the request succeeds.", +"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" +}, +"EnableSecretVersionRequest": { +"description": "Request message for SecretManagerService.EnableSecretVersion.", +"id": "EnableSecretVersionRequest", +"properties": { +"etag": { +"description": "Optional. Etag of the SecretVersion. The request succeeds if it matches the etag of the currently stored secret version object. If the etag is omitted, the request succeeds.", +"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" +}, +"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 but 0 when the ListSecretsRequest.filter field is set.", +"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 but 0 when the ListSecretsRequest.filter field is set.", +"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": { +"customerManagedEncryption": { +"$ref": "CustomerManagedEncryption", +"description": "Optional. The customer-managed encryption configuration of the User-Managed Replica. If no configuration is provided, Google-managed default encryption is used. Updates to the Secret encryption configuration only apply to SecretVersions added afterwards. They do not apply retroactively to existing SecretVersions." +}, +"location": { +"description": "The canonical IDs of the location to replicate data. For example: `\"us-east1\"`.", +"type": "string" +} +}, +"type": "object" +}, +"ReplicaStatus": { +"description": "Describes the status of a user-managed replica for the SecretVersion.", +"id": "ReplicaStatus", +"properties": { +"customerManagedEncryption": { +"$ref": "CustomerManagedEncryptionStatus", +"description": "Output only. The customer-managed encryption status of the SecretVersion. Only populated if customer-managed encryption is used.", +"readOnly": true +}, +"location": { +"description": "Output only. The canonical ID of the replica location. For example: `\"us-east1\"`.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"Replication": { +"description": "A policy that defines the replication and encryption 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" +}, +"ReplicationStatus": { +"description": "The replication status of a SecretVersion.", +"id": "ReplicationStatus", +"properties": { +"automatic": { +"$ref": "AutomaticStatus", +"description": "Describes the replication status of a SecretVersion with automatic replication. Only populated if the parent Secret has an automatic replication policy." +}, +"userManaged": { +"$ref": "UserManagedStatus", +"description": "Describes the replication status of a SecretVersion with user-managed replication. Only populated if the parent Secret has a user-managed replication policy." +} +}, +"type": "object" +}, +"Rotation": { +"description": "The rotation time and period for a Secret. At next_rotation_time, Secret Manager will send a Pub/Sub notification to the topics configured on the Secret. Secret.topics must be set to configure rotation.", +"id": "Rotation", +"properties": { +"nextRotationTime": { +"description": "Optional. Timestamp in UTC at which the Secret is scheduled to rotate. Cannot be set to less than 300s (5 min) in the future and at most 3153600000s (100 years). next_rotation_time MUST be set if rotation_period is set.", +"format": "google-datetime", +"type": "string" +}, +"rotationPeriod": { +"description": "Input only. The Duration between rotation notifications. Must be in seconds and at least 3600s (1h) and at most 3153600000s (100 years). If rotation_period is set, next_rotation_time must be set. next_rotation_time will be advanced by this period when the service automatically sends rotation notifications.", +"format": "google-duration", +"type": "string" +} +}, +"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": { +"annotations": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. Custom metadata about the secret. Annotations are distinct from various forms of labels. Annotations exist to allow client tools to store their own state information without requiring a database. Annotation keys must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes, begin and end with an alphanumeric character ([a-z0-9A-Z]), and may have dashes (-), underscores (_), dots (.), and alphanumerics in between these symbols. The total size of annotation keys and values must be less than 16KiB.", +"type": "object" +}, +"createTime": { +"description": "Output only. The time at which the Secret was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"customerManagedEncryption": { +"$ref": "CustomerManagedEncryption", +"description": "Optional. The customer-managed encryption configuration of the regionalized secrets. If no configuration is provided, Google-managed default encryption is used. Updates to the Secret encryption configuration only apply to SecretVersions added afterwards. They do not apply retroactively to existing SecretVersions." +}, +"etag": { +"description": "Optional. Etag of the currently stored Secret.", +"type": "string" +}, +"expireTime": { +"description": "Optional. Timestamp in UTC when the Secret is scheduled to expire. This is always provided on output, regardless of what was sent on input.", +"format": "google-datetime", +"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": "Optional. Immutable. The replication policy of the secret data attached to the Secret. The replication policy cannot be changed after the Secret has been created." +}, +"rotation": { +"$ref": "Rotation", +"description": "Optional. Rotation policy attached to the Secret. May be excluded if there is no rotation policy." +}, +"topics": { +"description": "Optional. A list of up to 10 Pub/Sub topics to which messages are published when control plane operations are called on the secret or its versions.", +"items": { +"$ref": "Topic" +}, +"type": "array" +}, +"ttl": { +"description": "Input only. The TTL for the Secret.", +"format": "google-duration", +"type": "string" +}, +"versionAliases": { +"additionalProperties": { +"format": "int64", +"type": "string" +}, +"description": "Optional. Mapping from version alias to version name. A version alias is a string with a maximum length of 63 characters and can contain uppercase and lowercase letters, numerals, and the hyphen (`-`) and underscore ('_') characters. An alias string must start with a letter and cannot be the string 'latest' or 'NEW'. No more than 50 aliases can be assigned to a given secret. Version-Alias pairs will be viewable via GetSecret and modifiable via UpdateSecret. Access by alias is only be supported on GetSecretVersion and AccessSecretVersion.", +"type": "object" +}, +"versionDestroyTtl": { +"description": "Optional. Secret Version TTL after destruction request This is a part of the Delayed secret version destroy feature. For secret with TTL>0, version destruction doesn't happen immediately on calling destroy instead the version goes to a disabled state and destruction happens after the TTL expires.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"SecretPayload": { +"description": "A secret payload resource in the Secret Manager API. This contains the sensitive secret payload that is associated with a SecretVersion.", +"id": "SecretPayload", +"properties": { +"data": { +"description": "The secret data. Must be no larger than 64KiB.", +"format": "byte", +"type": "string" +}, +"dataCrc32c": { +"description": "Optional. If specified, SecretManagerService will verify the integrity of the received data on SecretManagerService.AddSecretVersion calls using the crc32c checksum and store it to include in future SecretManagerService.AccessSecretVersion responses. If a checksum is not provided in the SecretManagerService.AddSecretVersion request, the SecretManagerService will generate and store one for you. The CRC32C value is encoded as a Int64 for compatibility, and can be safely downconverted to uint32 in languages that support this type. https://cloud.google.com/apis/design/design_patterns#integer_types", +"format": "int64", +"type": "string" +} +}, +"type": "object" +}, +"SecretVersion": { +"description": "A secret version resource in the Secret Manager API.", +"id": "SecretVersion", +"properties": { +"clientSpecifiedPayloadChecksum": { +"description": "Output only. True if payload checksum specified in SecretPayload object has been received by SecretManagerService on SecretManagerService.AddSecretVersion.", +"readOnly": true, +"type": "boolean" +}, +"createTime": { +"description": "Output only. The time at which the SecretVersion was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"customerManagedEncryption": { +"$ref": "CustomerManagedEncryptionStatus", +"description": "Output only. The customer-managed encryption status of the SecretVersion. Only populated if customer-managed encryption is used and Secret is a regionalized secret.", +"readOnly": true +}, +"destroyTime": { +"description": "Output only. The time this SecretVersion was destroyed. Only present if state is DESTROYED.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"etag": { +"description": "Output only. Etag of the currently stored SecretVersion.", +"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" +}, +"replicationStatus": { +"$ref": "ReplicationStatus", +"description": "The replication status of the SecretVersion." +}, +"scheduledDestroyTime": { +"description": "Optional. Output only. Scheduled destroy time for secret version. This is a part of the Delayed secret version destroy feature. For a Secret with a valid version destroy TTL, when a secert version is destroyed, version is moved to disabled state and it is scheduled for destruction Version is destroyed only after the scheduled_destroy_time.", +"format": "google-datetime", +"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" +}, +"Topic": { +"description": "A Pub/Sub topic which Secret Manager will publish to when control plane events occur on this secret.", +"id": "Topic", +"properties": { +"name": { +"description": "Identifier. The resource name of the Pub/Sub topic that will be published to, in the following format: `projects/*/topics/*`. For publication to succeed, the Secret Manager service agent must have the `pubsub.topic.publish` permission on the topic. The Pub/Sub Publisher role (`roles/pubsub.publisher`) includes this permission.", +"type": "string" +} +}, +"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" +}, +"UserManagedStatus": { +"description": "The replication status of a SecretVersion using user-managed replication. Only populated if the parent Secret has a user-managed replication policy.", +"id": "UserManagedStatus", +"properties": { +"replicas": { +"description": "Output only. The list of replica statuses for the SecretVersion.", +"items": { +"$ref": "ReplicaStatus" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Secret Manager 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/tpu.v1alpha1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/tpu.v1alpha1.json new file mode 100644 index 0000000000000000000000000000000000000000..9b071e23eddbed507159da5ac9a16a5167c560c7 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/tpu.v1alpha1.json @@ -0,0 +1,1223 @@ +{ +"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://tpu.googleapis.com/", +"batchPath": "batch", +"canonicalName": "TPU", +"description": "TPU API provides customers with access to Google TPU technology.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/tpu/", +"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": "tpu:v1alpha1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://tpu.mtls.googleapis.com/", +"name": "tpu", +"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": "v1alpha1/projects/{projectsId}/locations/{locationsId}", +"httpMethod": "GET", +"id": "tpu.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": "tpu.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": { +"acceleratorTypes": { +"methods": { +"get": { +"description": "Gets AcceleratorType.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/acceleratorTypes/{acceleratorTypesId}", +"httpMethod": "GET", +"id": "tpu.projects.locations.acceleratorTypes.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/acceleratorTypes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"response": { +"$ref": "AcceleratorType" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists accelerator types supported by this API.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/acceleratorTypes", +"httpMethod": "GET", +"id": "tpu.projects.locations.acceleratorTypes.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "List filter.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Sort results.", +"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 parent resource name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+parent}/acceleratorTypes", +"response": { +"$ref": "ListAcceleratorTypesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"nodes": { +"methods": { +"create": { +"description": "Creates a node.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/nodes", +"httpMethod": "POST", +"id": "tpu.projects.locations.nodes.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"nodeId": { +"description": "The unqualified resource name.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Idempotent request UUID.", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha1/{+parent}/nodes", +"request": { +"$ref": "Node" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a node.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/nodes/{nodesId}", +"httpMethod": "DELETE", +"id": "tpu.projects.locations.nodes.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/nodes/[^/]+$", +"required": true, +"type": "string" +}, +"requestId": { +"description": "Idempotent request UUID.", +"location": "query", +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets the details of a node.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/nodes/{nodesId}", +"httpMethod": "GET", +"id": "tpu.projects.locations.nodes.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/nodes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"response": { +"$ref": "Node" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists nodes.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/nodes", +"httpMethod": "GET", +"id": "tpu.projects.locations.nodes.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 returned from a previous List request, if any.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+parent}/nodes", +"response": { +"$ref": "ListNodesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"reimage": { +"description": "Reimages a node's OS.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/nodes/{nodesId}:reimage", +"httpMethod": "POST", +"id": "tpu.projects.locations.nodes.reimage", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The resource name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/nodes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}:reimage", +"request": { +"$ref": "ReimageNodeRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"start": { +"description": "Starts a node.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/nodes/{nodesId}:start", +"httpMethod": "POST", +"id": "tpu.projects.locations.nodes.start", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The resource name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/nodes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}:start", +"request": { +"$ref": "StartNodeRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"stop": { +"description": "Stops a node. This operation is only available with single TPU nodes.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/nodes/{nodesId}:stop", +"httpMethod": "POST", +"id": "tpu.projects.locations.nodes.stop", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The resource name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/nodes/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}:stop", +"request": { +"$ref": "StopNodeRequest" +}, +"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": "tpu.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", +"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": "tpu.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": "tpu.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": "tpu.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" +] +} +} +}, +"tensorflowVersions": { +"methods": { +"get": { +"description": "Gets TensorFlow Version.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/tensorflowVersions/{tensorflowVersionsId}", +"httpMethod": "GET", +"id": "tpu.projects.locations.tensorflowVersions.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/tensorflowVersions/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+name}", +"response": { +"$ref": "TensorFlowVersion" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists TensorFlow versions supported by this API.", +"flatPath": "v1alpha1/projects/{projectsId}/locations/{locationsId}/tensorflowVersions", +"httpMethod": "GET", +"id": "tpu.projects.locations.tensorflowVersions.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "List filter.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "Sort results.", +"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 parent resource name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1alpha1/{+parent}/tensorflowVersions", +"response": { +"$ref": "ListTensorFlowVersionsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +}, +"revision": "20241126", +"rootUrl": "https://tpu.googleapis.com/", +"schemas": { +"AcceleratorType": { +"description": "A accelerator type that a Node can be configured with.", +"id": "AcceleratorType", +"properties": { +"name": { +"description": "The resource name.", +"type": "string" +}, +"type": { +"description": "the accelerator type.", +"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" +}, +"ListAcceleratorTypesResponse": { +"description": "Response for ListAcceleratorTypes.", +"id": "ListAcceleratorTypesResponse", +"properties": { +"acceleratorTypes": { +"description": "The listed nodes.", +"items": { +"$ref": "AcceleratorType" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The next page token or empty if none.", +"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" +}, +"ListNodesResponse": { +"description": "Response for ListNodes.", +"id": "ListNodesResponse", +"properties": { +"nextPageToken": { +"description": "The next page token or empty if none.", +"type": "string" +}, +"nodes": { +"description": "The listed nodes.", +"items": { +"$ref": "Node" +}, +"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" +}, +"ListTensorFlowVersionsResponse": { +"description": "Response for ListTensorFlowVersions.", +"id": "ListTensorFlowVersionsResponse", +"properties": { +"nextPageToken": { +"description": "The next page token or empty if none.", +"type": "string" +}, +"tensorflowVersions": { +"description": "The listed nodes.", +"items": { +"$ref": "TensorFlowVersion" +}, +"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" +}, +"NetworkEndpoint": { +"description": "A network endpoint over which a TPU worker can be reached.", +"id": "NetworkEndpoint", +"properties": { +"ipAddress": { +"description": "The IP address of this network endpoint.", +"type": "string" +}, +"port": { +"description": "The port of this network endpoint.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"Node": { +"description": "A TPU instance.", +"id": "Node", +"properties": { +"acceleratorType": { +"description": "Required. The type of hardware accelerators associated with this node.", +"type": "string" +}, +"apiVersion": { +"description": "Output only. The API version that created this Node.", +"enum": [ +"API_VERSION_UNSPECIFIED", +"V1_ALPHA1", +"V1", +"V2_ALPHA1" +], +"enumDescriptions": [ +"API version is unknown.", +"TPU API V1Alpha1 version.", +"TPU API V1 version.", +"TPU API V2Alpha1 version." +], +"readOnly": true, +"type": "string" +}, +"cidrBlock": { +"description": "The CIDR block that the TPU node will use when selecting an IP address. This CIDR block must be a /29 block; the Compute Engine networks API forbids a smaller block, and using a larger block would be wasteful (a node can only consume one IP address). Errors will occur if the CIDR block has already been used for a currently existing TPU node, the CIDR block conflicts with any subnetworks in the user's provided network, or the provided network is peered with another network that is using that CIDR block.", +"type": "string" +}, +"createTime": { +"description": "Output only. The time when the node was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"description": { +"description": "The user-supplied description of the TPU. Maximum of 512 characters.", +"type": "string" +}, +"health": { +"description": "The health status of the TPU node.", +"enum": [ +"HEALTH_UNSPECIFIED", +"HEALTHY", +"DEPRECATED_UNHEALTHY", +"TIMEOUT", +"UNHEALTHY_TENSORFLOW", +"UNHEALTHY_MAINTENANCE" +], +"enumDescriptions": [ +"Health status is unknown: not initialized or failed to retrieve.", +"The resource is healthy.", +"The resource is unhealthy.", +"The resource is unresponsive.", +"The in-guest ML stack is unhealthy.", +"The node is under maintenance/priority boost caused rescheduling and will resume running once rescheduled." +], +"type": "string" +}, +"healthDescription": { +"description": "Output only. If this field is populated, it contains a description of why the TPU Node is unhealthy.", +"readOnly": true, +"type": "string" +}, +"ipAddress": { +"deprecated": true, +"description": "Output only. DEPRECATED! Use network_endpoints instead. The network address for the TPU Node as visible to Compute Engine instances.", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "Resource labels to represent user-provided metadata.", +"type": "object" +}, +"name": { +"description": "Output only. Immutable. The name of the TPU", +"readOnly": true, +"type": "string" +}, +"network": { +"description": "The name of a network they wish to peer the TPU node to. It must be a preexisting Compute Engine network inside of the project on which this API has been activated. If none is provided, \"default\" will be used.", +"type": "string" +}, +"networkEndpoints": { +"description": "Output only. The network endpoints where TPU workers can be accessed and sent work. It is recommended that Tensorflow clients of the node reach out to the 0th entry in this map first.", +"items": { +"$ref": "NetworkEndpoint" +}, +"readOnly": true, +"type": "array" +}, +"port": { +"deprecated": true, +"description": "Output only. DEPRECATED! Use network_endpoints instead. The network port for the TPU Node as visible to Compute Engine instances.", +"type": "string" +}, +"schedulingConfig": { +"$ref": "SchedulingConfig", +"description": "The scheduling options for this node." +}, +"serviceAccount": { +"description": "Output only. The service account used to run the tensor flow services within the node. To share resources, including Google Cloud Storage data, with the Tensorflow job running in the Node, this account must have permissions to that data.", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. The current state for the TPU Node.", +"enum": [ +"STATE_UNSPECIFIED", +"CREATING", +"READY", +"RESTARTING", +"REIMAGING", +"DELETING", +"REPAIRING", +"STOPPED", +"STOPPING", +"STARTING", +"PREEMPTED", +"TERMINATED", +"HIDING", +"HIDDEN", +"UNHIDING", +"UNKNOWN" +], +"enumDescriptions": [ +"TPU node state is not known/set.", +"TPU node is being created.", +"TPU node has been created.", +"TPU node is restarting.", +"TPU node is undergoing reimaging.", +"TPU node is being deleted.", +"TPU node is being repaired and may be unusable. Details can be found in the `help_description` field.", +"TPU node is stopped.", +"TPU node is currently stopping.", +"TPU node is currently starting.", +"TPU node has been preempted. Only applies to Preemptible TPU Nodes.", +"TPU node has been terminated due to maintenance or has reached the end of its life cycle (for preemptible nodes).", +"TPU node is currently hiding.", +"TPU node has been hidden.", +"TPU node is currently unhiding.", +"TPU node has unknown state after a failed repair." +], +"readOnly": true, +"type": "string" +}, +"symptoms": { +"description": "Output only. The Symptoms that have occurred to the TPU Node.", +"items": { +"$ref": "Symptom" +}, +"readOnly": true, +"type": "array" +}, +"tensorflowVersion": { +"description": "Required. The version of Tensorflow running in the Node.", +"type": "string" +}, +"useServiceNetworking": { +"description": "Whether the VPC peering for the node is set up through Service Networking API. The VPC Peering should be set up before provisioning the node. If this field is set, cidr_block field should not be specified. If the network, that you want to peer the TPU Node to, is Shared VPC networks, the node must be created with this this field enabled.", +"type": "boolean" +} +}, +"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/connectivityTests/test-1", +"type": "string" +}, +"verb": { +"description": "Name of the verb executed by the operation.", +"type": "string" +} +}, +"type": "object" +}, +"ReimageNodeRequest": { +"description": "Request for ReimageNode.", +"id": "ReimageNodeRequest", +"properties": { +"tensorflowVersion": { +"description": "The version for reimage to create.", +"type": "string" +} +}, +"type": "object" +}, +"SchedulingConfig": { +"description": "Sets the scheduling options for this node.", +"id": "SchedulingConfig", +"properties": { +"preemptible": { +"description": "Defines whether the node is preemptible.", +"type": "boolean" +}, +"reserved": { +"description": "Whether the node is created under a reservation.", +"type": "boolean" +} +}, +"type": "object" +}, +"StartNodeRequest": { +"description": "Request for StartNode.", +"id": "StartNodeRequest", +"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" +}, +"StopNodeRequest": { +"description": "Request for StopNode.", +"id": "StopNodeRequest", +"properties": {}, +"type": "object" +}, +"Symptom": { +"description": "A Symptom instance.", +"id": "Symptom", +"properties": { +"createTime": { +"description": "Timestamp when the Symptom is created.", +"format": "google-datetime", +"type": "string" +}, +"details": { +"description": "Detailed information of the current Symptom.", +"type": "string" +}, +"symptomType": { +"description": "Type of the Symptom.", +"enum": [ +"SYMPTOM_TYPE_UNSPECIFIED", +"LOW_MEMORY", +"OUT_OF_MEMORY", +"EXECUTE_TIMED_OUT", +"MESH_BUILD_FAIL", +"HBM_OUT_OF_MEMORY", +"PROJECT_ABUSE" +], +"enumDescriptions": [ +"Unspecified symptom.", +"TPU VM memory is low.", +"TPU runtime is out of memory.", +"TPU runtime execution has timed out.", +"TPU runtime fails to construct a mesh that recognizes each TPU device's neighbors.", +"TPU HBM is out of memory.", +"Abusive behaviors have been identified on the current project." +], +"type": "string" +}, +"workerId": { +"description": "A string used to uniquely distinguish a worker within a TPU node.", +"type": "string" +} +}, +"type": "object" +}, +"TensorFlowVersion": { +"description": "A tensorflow version that a Node can be configured with.", +"id": "TensorFlowVersion", +"properties": { +"name": { +"description": "The resource name.", +"type": "string" +}, +"version": { +"description": "the tensorflow version.", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Cloud TPU 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/transcoder.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/transcoder.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..9f827f0e145e90101da78ba462549f40c78fbd2f --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/transcoder.v1.json @@ -0,0 +1,1954 @@ +{ +"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://transcoder.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Transcoder", +"description": "This API converts video files into formats suitable for consumer distribution. For more information, see the Transcoder API overview. ", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/transcoder/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": "transcoder:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://transcoder.mtls.googleapis.com/", +"name": "transcoder", +"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": { +"jobTemplates": { +"methods": { +"create": { +"description": "Creates a job template in the specified region.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/jobTemplates", +"httpMethod": "POST", +"id": "transcoder.projects.locations.jobTemplates.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"jobTemplateId": { +"description": "Required. The ID to use for the job template, which will become the final component of the job template's resource name. This value should be 4-63 characters, and valid characters must match the regular expression `a-zA-Z*`.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent location to create this job template. Format: `projects/{project}/locations/{location}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/jobTemplates", +"request": { +"$ref": "JobTemplate" +}, +"response": { +"$ref": "JobTemplate" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a job template.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/jobTemplates/{jobTemplatesId}", +"httpMethod": "DELETE", +"id": "transcoder.projects.locations.jobTemplates.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"allowMissing": { +"description": "If set to true, and the job template is not found, the request will succeed but no action will be taken on the server.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Required. The name of the job template to delete. `projects/{project}/locations/{location}/jobTemplates/{job_template}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/jobTemplates/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Returns the job template data.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/jobTemplates/{jobTemplatesId}", +"httpMethod": "GET", +"id": "transcoder.projects.locations.jobTemplates.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the job template to retrieve. Format: `projects/{project}/locations/{location}/jobTemplates/{job_template}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/jobTemplates/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "JobTemplate" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists job templates in the specified region.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/jobTemplates", +"httpMethod": "GET", +"id": "transcoder.projects.locations.jobTemplates.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "The filter expression, following the syntax outlined in https://google.aip.dev/160.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "One or more fields to compare and use to sort the output. See https://google.aip.dev/132#ordering.", +"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 parent location from which to retrieve the collection of job templates. Format: `projects/{project}/locations/{location}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/jobTemplates", +"response": { +"$ref": "ListJobTemplatesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"jobs": { +"methods": { +"create": { +"description": "Creates a job in the specified region.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/jobs", +"httpMethod": "POST", +"id": "transcoder.projects.locations.jobs.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent location to create and process this job. Format: `projects/{project}/locations/{location}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/jobs", +"request": { +"$ref": "Job" +}, +"response": { +"$ref": "Job" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a job.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/jobs/{jobsId}", +"httpMethod": "DELETE", +"id": "transcoder.projects.locations.jobs.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"allowMissing": { +"description": "If set to true, and the job is not found, the request will succeed but no action will be taken on the server.", +"location": "query", +"type": "boolean" +}, +"name": { +"description": "Required. The name of the job to delete. Format: `projects/{project}/locations/{location}/jobs/{job}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/jobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Returns the job data.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/jobs/{jobsId}", +"httpMethod": "GET", +"id": "transcoder.projects.locations.jobs.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the job to retrieve. Format: `projects/{project}/locations/{location}/jobs/{job}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/jobs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Job" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists jobs in the specified region.", +"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/jobs", +"httpMethod": "GET", +"id": "transcoder.projects.locations.jobs.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "The filter expression, following the syntax outlined in https://google.aip.dev/160.", +"location": "query", +"type": "string" +}, +"orderBy": { +"description": "One or more fields to compare and use to sort the output. See https://google.aip.dev/132#ordering.", +"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. Format: `projects/{project}/locations/{location}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/jobs", +"response": { +"$ref": "ListJobsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +}, +"revision": "20241009", +"rootUrl": "https://transcoder.googleapis.com/", +"schemas": { +"AdBreak": { +"description": "Ad break.", +"id": "AdBreak", +"properties": { +"startTimeOffset": { +"description": "Start time in seconds for the ad break, relative to the output file timeline. The default is `0s`.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"Aes128Encryption": { +"description": "Configuration for AES-128 encryption.", +"id": "Aes128Encryption", +"properties": {}, +"type": "object" +}, +"Animation": { +"description": "Animation types.", +"id": "Animation", +"properties": { +"animationEnd": { +"$ref": "AnimationEnd", +"description": "End previous animation." +}, +"animationFade": { +"$ref": "AnimationFade", +"description": "Display overlay object with fade animation." +}, +"animationStatic": { +"$ref": "AnimationStatic", +"description": "Display static overlay object." +} +}, +"type": "object" +}, +"AnimationEnd": { +"description": "End previous overlay animation from the video. Without `AnimationEnd`, the overlay object will keep the state of previous animation until the end of the video.", +"id": "AnimationEnd", +"properties": { +"startTimeOffset": { +"description": "The time to end overlay object, in seconds. Default: 0", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"AnimationFade": { +"description": "Display overlay object with fade animation.", +"id": "AnimationFade", +"properties": { +"endTimeOffset": { +"description": "The time to end the fade animation, in seconds. Default: `start_time_offset` + 1s", +"format": "google-duration", +"type": "string" +}, +"fadeType": { +"description": "Required. Type of fade animation: `FADE_IN` or `FADE_OUT`.", +"enum": [ +"FADE_TYPE_UNSPECIFIED", +"FADE_IN", +"FADE_OUT" +], +"enumDescriptions": [ +"The fade type is not specified.", +"Fade the overlay object into view.", +"Fade the overlay object out of view." +], +"type": "string" +}, +"startTimeOffset": { +"description": "The time to start the fade animation, in seconds. Default: 0", +"format": "google-duration", +"type": "string" +}, +"xy": { +"$ref": "NormalizedCoordinate", +"description": "Normalized coordinates based on output video resolution. Valid values: `0.0`\u2013`1.0`. `xy` is the upper-left coordinate of the overlay object. For example, use the x and y coordinates {0,0} to position the top-left corner of the overlay animation in the top-left corner of the output video." +} +}, +"type": "object" +}, +"AnimationStatic": { +"description": "Display static overlay object.", +"id": "AnimationStatic", +"properties": { +"startTimeOffset": { +"description": "The time to start displaying the overlay object, in seconds. Default: 0", +"format": "google-duration", +"type": "string" +}, +"xy": { +"$ref": "NormalizedCoordinate", +"description": "Normalized coordinates based on output video resolution. Valid values: `0.0`\u2013`1.0`. `xy` is the upper-left coordinate of the overlay object. For example, use the x and y coordinates {0,0} to position the top-left corner of the overlay animation in the top-left corner of the output video." +} +}, +"type": "object" +}, +"Audio": { +"description": "Audio preprocessing configuration.", +"id": "Audio", +"properties": { +"highBoost": { +"description": "Enable boosting high frequency components. The default is `false`. **Note:** This field is not supported.", +"type": "boolean" +}, +"lowBoost": { +"description": "Enable boosting low frequency components. The default is `false`. **Note:** This field is not supported.", +"type": "boolean" +}, +"lufs": { +"description": "Specify audio loudness normalization in loudness units relative to full scale (LUFS). Enter a value between -24 and 0 (the default), where: * -24 is the Advanced Television Systems Committee (ATSC A/85) standard * -23 is the EU R128 broadcast standard * -19 is the prior standard for online mono audio * -18 is the ReplayGain standard * -16 is the prior standard for stereo audio * -14 is the new online audio standard recommended by Spotify, as well as Amazon Echo * 0 disables normalization", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"AudioMapping": { +"description": "The mapping for the JobConfig.edit_list atoms with audio EditAtom.inputs.", +"id": "AudioMapping", +"properties": { +"atomKey": { +"description": "Required. The EditAtom.key that references the atom with audio inputs in the JobConfig.edit_list.", +"type": "string" +}, +"gainDb": { +"description": "Audio volume control in dB. Negative values decrease volume, positive values increase. The default is 0.", +"format": "double", +"type": "number" +}, +"inputChannel": { +"description": "Required. The zero-based index of the channel in the input audio stream.", +"format": "int32", +"type": "integer" +}, +"inputKey": { +"description": "Required. The Input.key that identifies the input file.", +"type": "string" +}, +"inputTrack": { +"description": "Required. The zero-based index of the track in the input file.", +"format": "int32", +"type": "integer" +}, +"outputChannel": { +"description": "Required. The zero-based index of the channel in the output audio stream.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"AudioStream": { +"description": "Audio stream resource.", +"id": "AudioStream", +"properties": { +"bitrateBps": { +"description": "Required. Audio bitrate in bits per second. Must be between 1 and 10,000,000.", +"format": "int32", +"type": "integer" +}, +"channelCount": { +"description": "Number of audio channels. Must be between 1 and 6. The default is 2.", +"format": "int32", +"type": "integer" +}, +"channelLayout": { +"description": "A list of channel names specifying layout of the audio channels. This only affects the metadata embedded in the container headers, if supported by the specified format. The default is `[\"fl\", \"fr\"]`. Supported channel names: - `fl` - Front left channel - `fr` - Front right channel - `sl` - Side left channel - `sr` - Side right channel - `fc` - Front center channel - `lfe` - Low frequency", +"items": { +"type": "string" +}, +"type": "array" +}, +"codec": { +"description": "The codec for this audio stream. The default is `aac`. Supported audio codecs: - `aac` - `aac-he` - `aac-he-v2` - `mp3` - `ac3` - `eac3` - `vorbis`", +"type": "string" +}, +"displayName": { +"description": "The name for this particular audio stream that will be added to the HLS/DASH manifest. Not supported in MP4 files.", +"type": "string" +}, +"languageCode": { +"description": "The BCP-47 language code, such as `en-US` or `sr-Latn`. For more information, see https://www.unicode.org/reports/tr35/#Unicode_locale_identifier. Not supported in MP4 files.", +"type": "string" +}, +"mapping": { +"description": "The mapping for the JobConfig.edit_list atoms with audio EditAtom.inputs.", +"items": { +"$ref": "AudioMapping" +}, +"type": "array" +}, +"sampleRateHertz": { +"description": "The audio sample rate in Hertz. The default is 48000 Hertz.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"BwdifConfig": { +"description": "Bob Weaver Deinterlacing Filter Configuration.", +"id": "BwdifConfig", +"properties": { +"deinterlaceAllFrames": { +"description": "Deinterlace all frames rather than just the frames identified as interlaced. The default is `false`.", +"type": "boolean" +}, +"mode": { +"description": "Specifies the deinterlacing mode to adopt. The default is `send_frame`. Supported values: - `send_frame`: Output one frame for each frame - `send_field`: Output one frame for each field", +"type": "string" +}, +"parity": { +"description": "The picture field parity assumed for the input interlaced video. The default is `auto`. Supported values: - `tff`: Assume the top field is first - `bff`: Assume the bottom field is first - `auto`: Enable automatic detection of field parity", +"type": "string" +} +}, +"type": "object" +}, +"Clearkey": { +"description": "Clearkey configuration.", +"id": "Clearkey", +"properties": {}, +"type": "object" +}, +"Color": { +"description": "Color preprocessing configuration. **Note:** This configuration is not supported.", +"id": "Color", +"properties": { +"brightness": { +"description": "Control brightness of the video. Enter a value between -1 and 1, where -1 is minimum brightness and 1 is maximum brightness. 0 is no change. The default is 0.", +"format": "double", +"type": "number" +}, +"contrast": { +"description": "Control black and white contrast of the video. Enter a value between -1 and 1, where -1 is minimum contrast and 1 is maximum contrast. 0 is no change. The default is 0.", +"format": "double", +"type": "number" +}, +"saturation": { +"description": "Control color saturation of the video. Enter a value between -1 and 1, where -1 is fully desaturated and 1 is maximum saturation. 0 is no change. The default is 0.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"Crop": { +"description": "Video cropping configuration for the input video. The cropped input video is scaled to match the output resolution.", +"id": "Crop", +"properties": { +"bottomPixels": { +"description": "The number of pixels to crop from the bottom. The default is 0.", +"format": "int32", +"type": "integer" +}, +"leftPixels": { +"description": "The number of pixels to crop from the left. The default is 0.", +"format": "int32", +"type": "integer" +}, +"rightPixels": { +"description": "The number of pixels to crop from the right. The default is 0.", +"format": "int32", +"type": "integer" +}, +"topPixels": { +"description": "The number of pixels to crop from the top. The default is 0.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"DashConfig": { +"description": "`DASH` manifest configuration.", +"id": "DashConfig", +"properties": { +"segmentReferenceScheme": { +"description": "The segment reference scheme for a `DASH` manifest. The default is `SEGMENT_LIST`.", +"enum": [ +"SEGMENT_REFERENCE_SCHEME_UNSPECIFIED", +"SEGMENT_LIST", +"SEGMENT_TEMPLATE_NUMBER" +], +"enumDescriptions": [ +"The segment reference scheme is not specified.", +"Explicitly lists the URLs of media files for each segment. For example, if SegmentSettings.individual_segments is `true`, then the manifest contains fields similar to the following: ```xml ... ```", +"SegmentSettings.individual_segments must be set to `true` to use this segment reference scheme. Uses the DASH specification `` tag to determine the URLs of media files for each segment. For example: ```xml ... ```" +], +"type": "string" +} +}, +"type": "object" +}, +"Deblock": { +"description": "Deblock preprocessing configuration. **Note:** This configuration is not supported.", +"id": "Deblock", +"properties": { +"enabled": { +"description": "Enable deblocker. The default is `false`.", +"type": "boolean" +}, +"strength": { +"description": "Set strength of the deblocker. Enter a value between 0 and 1. The higher the value, the stronger the block removal. 0 is no deblocking. The default is 0.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"Deinterlace": { +"description": "Deinterlace configuration for input video.", +"id": "Deinterlace", +"properties": { +"bwdif": { +"$ref": "BwdifConfig", +"description": "Specifies the Bob Weaver Deinterlacing Filter Configuration." +}, +"yadif": { +"$ref": "YadifConfig", +"description": "Specifies the Yet Another Deinterlacing Filter Configuration." +} +}, +"type": "object" +}, +"Denoise": { +"description": "Denoise preprocessing configuration. **Note:** This configuration is not supported.", +"id": "Denoise", +"properties": { +"strength": { +"description": "Set strength of the denoise. Enter a value between 0 and 1. The higher the value, the smoother the image. 0 is no denoising. The default is 0.", +"format": "double", +"type": "number" +}, +"tune": { +"description": "Set the denoiser mode. The default is `standard`. Supported denoiser modes: - `standard` - `grain`", +"type": "string" +} +}, +"type": "object" +}, +"DrmSystems": { +"description": "Defines configuration for DRM systems in use.", +"id": "DrmSystems", +"properties": { +"clearkey": { +"$ref": "Clearkey", +"description": "Clearkey configuration." +}, +"fairplay": { +"$ref": "Fairplay", +"description": "Fairplay configuration." +}, +"playready": { +"$ref": "Playready", +"description": "Playready configuration." +}, +"widevine": { +"$ref": "Widevine", +"description": "Widevine configuration." +} +}, +"type": "object" +}, +"EditAtom": { +"description": "Edit atom.", +"id": "EditAtom", +"properties": { +"endTimeOffset": { +"description": "End time in seconds for the atom, relative to the input file timeline. When `end_time_offset` is not specified, the `inputs` are used until the end of the atom.", +"format": "google-duration", +"type": "string" +}, +"inputs": { +"description": "List of Input.key values identifying files that should be used in this atom. The listed `inputs` must have the same timeline.", +"items": { +"type": "string" +}, +"type": "array" +}, +"key": { +"description": "A unique key for this atom. Must be specified when using advanced mapping.", +"type": "string" +}, +"startTimeOffset": { +"description": "Start time in seconds for the atom, relative to the input file timeline. The default is `0s`.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"ElementaryStream": { +"description": "Encoding of an input file such as an audio, video, or text track. Elementary streams must be packaged before mapping and sharing between different output formats.", +"id": "ElementaryStream", +"properties": { +"audioStream": { +"$ref": "AudioStream", +"description": "Encoding of an audio stream." +}, +"key": { +"description": "A unique key for this elementary stream.", +"type": "string" +}, +"textStream": { +"$ref": "TextStream", +"description": "Encoding of a text stream. For example, closed captions or subtitles." +}, +"videoStream": { +"$ref": "VideoStream", +"description": "Encoding of a video stream." +} +}, +"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" +}, +"Encryption": { +"description": "Encryption settings.", +"id": "Encryption", +"properties": { +"aes128": { +"$ref": "Aes128Encryption", +"description": "Configuration for AES-128 encryption." +}, +"drmSystems": { +"$ref": "DrmSystems", +"description": "Required. DRM system(s) to use; at least one must be specified. If a DRM system is omitted, it is considered disabled." +}, +"id": { +"description": "Required. Identifier for this set of encryption options.", +"type": "string" +}, +"mpegCenc": { +"$ref": "MpegCommonEncryption", +"description": "Configuration for MPEG Common Encryption (MPEG-CENC)." +}, +"sampleAes": { +"$ref": "SampleAesEncryption", +"description": "Configuration for SAMPLE-AES encryption." +}, +"secretManagerKeySource": { +"$ref": "SecretManagerSource", +"description": "Keys are stored in Google Secret Manager." +} +}, +"type": "object" +}, +"Fairplay": { +"description": "Fairplay configuration.", +"id": "Fairplay", +"properties": {}, +"type": "object" +}, +"Fmp4Config": { +"description": "`fmp4` container configuration.", +"id": "Fmp4Config", +"properties": { +"codecTag": { +"description": "Optional. Specify the codec tag string that will be used in the media bitstream. When not specified, the codec appropriate value is used. Supported H265 codec tags: - `hvc1` (default) - `hev1`", +"type": "string" +} +}, +"type": "object" +}, +"H264CodecSettings": { +"description": "H264 codec settings.", +"id": "H264CodecSettings", +"properties": { +"allowOpenGop": { +"description": "Specifies whether an open Group of Pictures (GOP) structure should be allowed or not. The default is `false`.", +"type": "boolean" +}, +"aqStrength": { +"description": "Specify the intensity of the adaptive quantizer (AQ). Must be between 0 and 1, where 0 disables the quantizer and 1 maximizes the quantizer. A higher value equals a lower bitrate but smoother image. The default is 0.", +"format": "double", +"type": "number" +}, +"bFrameCount": { +"description": "The number of consecutive B-frames. Must be greater than or equal to zero. Must be less than H264CodecSettings.gop_frame_count if set. The default is 0.", +"format": "int32", +"type": "integer" +}, +"bPyramid": { +"description": "Allow B-pyramid for reference frame selection. This may not be supported on all decoders. The default is `false`.", +"type": "boolean" +}, +"bitrateBps": { +"description": "Required. The video bitrate in bits per second. The minimum value is 1,000. The maximum value is 800,000,000.", +"format": "int32", +"type": "integer" +}, +"crfLevel": { +"description": "Target CRF level. Must be between 10 and 36, where 10 is the highest quality and 36 is the most efficient compression. The default is 21.", +"format": "int32", +"type": "integer" +}, +"enableTwoPass": { +"description": "Use two-pass encoding strategy to achieve better video quality. H264CodecSettings.rate_control_mode must be `vbr`. The default is `false`.", +"type": "boolean" +}, +"entropyCoder": { +"description": "The entropy coder to use. The default is `cabac`. Supported entropy coders: - `cavlc` - `cabac`", +"type": "string" +}, +"frameRate": { +"description": "Required. The target video frame rate in frames per second (FPS). Must be less than or equal to 120.", +"format": "double", +"type": "number" +}, +"frameRateConversionStrategy": { +"description": "Optional. Frame rate conversion strategy for desired frame rate. The default is `DOWNSAMPLE`.", +"enum": [ +"FRAME_RATE_CONVERSION_STRATEGY_UNSPECIFIED", +"DOWNSAMPLE", +"DROP_DUPLICATE" +], +"enumDescriptions": [ +"Unspecified frame rate conversion strategy.", +"Selectively retain frames to reduce the output frame rate. Every _n_ th frame is kept, where `n = ceil(input frame rate / target frame rate)`. When _n_ = 1 (that is, the target frame rate is greater than the input frame rate), the output frame rate matches the input frame rate. When _n_ > 1, frames are dropped and the output frame rate is equal to `(input frame rate / n)`. For more information, see [Calculate frame rate](https://cloud.google.com/transcoder/docs/concepts/frame-rate).", +"Drop or duplicate frames to match the specified frame rate." +], +"type": "string" +}, +"gopDuration": { +"description": "Select the GOP size based on the specified duration. The default is `3s`. Note that `gopDuration` must be less than or equal to [`segmentDuration`](#SegmentSettings), and [`segmentDuration`](#SegmentSettings) must be divisible by `gopDuration`.", +"format": "google-duration", +"type": "string" +}, +"gopFrameCount": { +"description": "Select the GOP size based on the specified frame count. Must be greater than zero.", +"format": "int32", +"type": "integer" +}, +"heightPixels": { +"description": "The height of the video in pixels. Must be an even integer. When not specified, the height is adjusted to match the specified width and input aspect ratio. If both are omitted, the input height is used. For portrait videos that contain horizontal ASR and rotation metadata, provide the height, in pixels, per the horizontal ASR. The API calculates the width per the horizontal ASR. The API detects any rotation metadata and swaps the requested height and width for the output.", +"format": "int32", +"type": "integer" +}, +"hlg": { +"$ref": "H264ColorFormatHLG", +"description": "Optional. HLG color format setting for H264." +}, +"pixelFormat": { +"description": "Pixel format to use. The default is `yuv420p`. Supported pixel formats: - `yuv420p` pixel format - `yuv422p` pixel format - `yuv444p` pixel format - `yuv420p10` 10-bit HDR pixel format - `yuv422p10` 10-bit HDR pixel format - `yuv444p10` 10-bit HDR pixel format - `yuv420p12` 12-bit HDR pixel format - `yuv422p12` 12-bit HDR pixel format - `yuv444p12` 12-bit HDR pixel format", +"type": "string" +}, +"preset": { +"description": "Enforces the specified codec preset. The default is `veryfast`. The available options are [FFmpeg-compatible](https://trac.ffmpeg.org/wiki/Encode/H.264#Preset). Note that certain values for this field may cause the transcoder to override other fields you set in the `H264CodecSettings` message.", +"type": "string" +}, +"profile": { +"description": "Enforces the specified codec profile. The following profiles are supported: * `baseline` * `main` * `high` (default) The available options are [FFmpeg-compatible](https://trac.ffmpeg.org/wiki/Encode/H.264#Tune). Note that certain values for this field may cause the transcoder to override other fields you set in the `H264CodecSettings` message.", +"type": "string" +}, +"rateControlMode": { +"description": "Specify the mode. The default is `vbr`. Supported rate control modes: - `vbr` - variable bitrate - `crf` - constant rate factor", +"type": "string" +}, +"sdr": { +"$ref": "H264ColorFormatSDR", +"description": "Optional. SDR color format setting for H264." +}, +"tune": { +"description": "Enforces the specified codec tune. The available options are [FFmpeg-compatible](https://trac.ffmpeg.org/wiki/Encode/H.264#Tune). Note that certain values for this field may cause the transcoder to override other fields you set in the `H264CodecSettings` message.", +"type": "string" +}, +"vbvFullnessBits": { +"description": "Initial fullness of the Video Buffering Verifier (VBV) buffer in bits. Must be greater than zero. The default is equal to 90% of H264CodecSettings.vbv_size_bits.", +"format": "int32", +"type": "integer" +}, +"vbvSizeBits": { +"description": "Size of the Video Buffering Verifier (VBV) buffer in bits. Must be greater than zero. The default is equal to H264CodecSettings.bitrate_bps.", +"format": "int32", +"type": "integer" +}, +"widthPixels": { +"description": "The width of the video in pixels. Must be an even integer. When not specified, the width is adjusted to match the specified height and input aspect ratio. If both are omitted, the input width is used. For portrait videos that contain horizontal ASR and rotation metadata, provide the width, in pixels, per the horizontal ASR. The API calculates the height per the horizontal ASR. The API detects any rotation metadata and swaps the requested height and width for the output.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"H264ColorFormatHLG": { +"description": "Convert the input video to a Hybrid Log Gamma (HLG) video.", +"id": "H264ColorFormatHLG", +"properties": {}, +"type": "object" +}, +"H264ColorFormatSDR": { +"description": "Convert the input video to a Standard Dynamic Range (SDR) video.", +"id": "H264ColorFormatSDR", +"properties": {}, +"type": "object" +}, +"H265CodecSettings": { +"description": "H265 codec settings.", +"id": "H265CodecSettings", +"properties": { +"allowOpenGop": { +"description": "Specifies whether an open Group of Pictures (GOP) structure should be allowed or not. The default is `false`.", +"type": "boolean" +}, +"aqStrength": { +"description": "Specify the intensity of the adaptive quantizer (AQ). Must be between 0 and 1, where 0 disables the quantizer and 1 maximizes the quantizer. A higher value equals a lower bitrate but smoother image. The default is 0.", +"format": "double", +"type": "number" +}, +"bFrameCount": { +"description": "The number of consecutive B-frames. Must be greater than or equal to zero. Must be less than H265CodecSettings.gop_frame_count if set. The default is 0.", +"format": "int32", +"type": "integer" +}, +"bPyramid": { +"description": "Allow B-pyramid for reference frame selection. This may not be supported on all decoders. The default is `false`.", +"type": "boolean" +}, +"bitrateBps": { +"description": "Required. The video bitrate in bits per second. The minimum value is 1,000. The maximum value is 800,000,000.", +"format": "int32", +"type": "integer" +}, +"crfLevel": { +"description": "Target CRF level. Must be between 10 and 36, where 10 is the highest quality and 36 is the most efficient compression. The default is 21.", +"format": "int32", +"type": "integer" +}, +"enableTwoPass": { +"description": "Use two-pass encoding strategy to achieve better video quality. H265CodecSettings.rate_control_mode must be `vbr`. The default is `false`.", +"type": "boolean" +}, +"frameRate": { +"description": "Required. The target video frame rate in frames per second (FPS). Must be less than or equal to 120.", +"format": "double", +"type": "number" +}, +"frameRateConversionStrategy": { +"description": "Optional. Frame rate conversion strategy for desired frame rate. The default is `DOWNSAMPLE`.", +"enum": [ +"FRAME_RATE_CONVERSION_STRATEGY_UNSPECIFIED", +"DOWNSAMPLE", +"DROP_DUPLICATE" +], +"enumDescriptions": [ +"Unspecified frame rate conversion strategy.", +"Selectively retain frames to reduce the output frame rate. Every _n_ th frame is kept, where `n = ceil(input frame rate / target frame rate)`. When _n_ = 1 (that is, the target frame rate is greater than the input frame rate), the output frame rate matches the input frame rate. When _n_ > 1, frames are dropped and the output frame rate is equal to `(input frame rate / n)`. For more information, see [Calculate frame rate](https://cloud.google.com/transcoder/docs/concepts/frame-rate).", +"Drop or duplicate frames to match the specified frame rate." +], +"type": "string" +}, +"gopDuration": { +"description": "Select the GOP size based on the specified duration. The default is `3s`. Note that `gopDuration` must be less than or equal to [`segmentDuration`](#SegmentSettings), and [`segmentDuration`](#SegmentSettings) must be divisible by `gopDuration`.", +"format": "google-duration", +"type": "string" +}, +"gopFrameCount": { +"description": "Select the GOP size based on the specified frame count. Must be greater than zero.", +"format": "int32", +"type": "integer" +}, +"hdr10": { +"$ref": "H265ColorFormatHDR10", +"description": "Optional. HDR10 color format setting for H265." +}, +"heightPixels": { +"description": "The height of the video in pixels. Must be an even integer. When not specified, the height is adjusted to match the specified width and input aspect ratio. If both are omitted, the input height is used. For portrait videos that contain horizontal ASR and rotation metadata, provide the height, in pixels, per the horizontal ASR. The API calculates the width per the horizontal ASR. The API detects any rotation metadata and swaps the requested height and width for the output.", +"format": "int32", +"type": "integer" +}, +"hlg": { +"$ref": "H265ColorFormatHLG", +"description": "Optional. HLG color format setting for H265." +}, +"pixelFormat": { +"description": "Pixel format to use. The default is `yuv420p`. Supported pixel formats: - `yuv420p` pixel format - `yuv422p` pixel format - `yuv444p` pixel format - `yuv420p10` 10-bit HDR pixel format - `yuv422p10` 10-bit HDR pixel format - `yuv444p10` 10-bit HDR pixel format - `yuv420p12` 12-bit HDR pixel format - `yuv422p12` 12-bit HDR pixel format - `yuv444p12` 12-bit HDR pixel format", +"type": "string" +}, +"preset": { +"description": "Enforces the specified codec preset. The default is `veryfast`. The available options are [FFmpeg-compatible](https://trac.ffmpeg.org/wiki/Encode/H.265). Note that certain values for this field may cause the transcoder to override other fields you set in the `H265CodecSettings` message.", +"type": "string" +}, +"profile": { +"description": "Enforces the specified codec profile. The following profiles are supported: * 8-bit profiles * `main` (default) * `main-intra` * `mainstillpicture` * 10-bit profiles * `main10` (default) * `main10-intra` * `main422-10` * `main422-10-intra` * `main444-10` * `main444-10-intra` * 12-bit profiles * `main12` (default) * `main12-intra` * `main422-12` * `main422-12-intra` * `main444-12` * `main444-12-intra` The available options are [FFmpeg-compatible](https://x265.readthedocs.io/). Note that certain values for this field may cause the transcoder to override other fields you set in the `H265CodecSettings` message.", +"type": "string" +}, +"rateControlMode": { +"description": "Specify the mode. The default is `vbr`. Supported rate control modes: - `vbr` - variable bitrate - `crf` - constant rate factor", +"type": "string" +}, +"sdr": { +"$ref": "H265ColorFormatSDR", +"description": "Optional. SDR color format setting for H265." +}, +"tune": { +"description": "Enforces the specified codec tune. The available options are [FFmpeg-compatible](https://trac.ffmpeg.org/wiki/Encode/H.265). Note that certain values for this field may cause the transcoder to override other fields you set in the `H265CodecSettings` message.", +"type": "string" +}, +"vbvFullnessBits": { +"description": "Initial fullness of the Video Buffering Verifier (VBV) buffer in bits. Must be greater than zero. The default is equal to 90% of H265CodecSettings.vbv_size_bits.", +"format": "int32", +"type": "integer" +}, +"vbvSizeBits": { +"description": "Size of the Video Buffering Verifier (VBV) buffer in bits. Must be greater than zero. The default is equal to `VideoStream.bitrate_bps`.", +"format": "int32", +"type": "integer" +}, +"widthPixels": { +"description": "The width of the video in pixels. Must be an even integer. When not specified, the width is adjusted to match the specified height and input aspect ratio. If both are omitted, the input width is used. For portrait videos that contain horizontal ASR and rotation metadata, provide the width, in pixels, per the horizontal ASR. The API calculates the height per the horizontal ASR. The API detects any rotation metadata and swaps the requested height and width for the output.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"H265ColorFormatHDR10": { +"description": "Convert the input video to a High Dynamic Range 10 (HDR10) video.", +"id": "H265ColorFormatHDR10", +"properties": {}, +"type": "object" +}, +"H265ColorFormatHLG": { +"description": "Convert the input video to a Hybrid Log Gamma (HLG) video.", +"id": "H265ColorFormatHLG", +"properties": {}, +"type": "object" +}, +"H265ColorFormatSDR": { +"description": "Convert the input video to a Standard Dynamic Range (SDR) video.", +"id": "H265ColorFormatSDR", +"properties": {}, +"type": "object" +}, +"Image": { +"description": "Overlaid image.", +"id": "Image", +"properties": { +"alpha": { +"description": "Target image opacity. Valid values are from `1.0` (solid, default) to `0.0` (transparent), exclusive. Set this to a value greater than `0.0`.", +"format": "double", +"type": "number" +}, +"resolution": { +"$ref": "NormalizedCoordinate", +"description": "Normalized image resolution, based on output video resolution. Valid values: `0.0`\u2013`1.0`. To respect the original image aspect ratio, set either `x` or `y` to `0.0`. To use the original image resolution, set both `x` and `y` to `0.0`." +}, +"uri": { +"description": "Required. URI of the image in Cloud Storage. For example, `gs://bucket/inputs/image.png`. Only PNG and JPEG images are supported.", +"type": "string" +} +}, +"type": "object" +}, +"Input": { +"description": "Input asset.", +"id": "Input", +"properties": { +"key": { +"description": "A unique key for this input. Must be specified when using advanced mapping and edit lists.", +"type": "string" +}, +"preprocessingConfig": { +"$ref": "PreprocessingConfig", +"description": "Preprocessing configurations." +}, +"uri": { +"description": "URI of the media. Input files must be at least 5 seconds in duration and stored in Cloud Storage (for example, `gs://bucket/inputs/file.mp4`). If empty, the value is populated from Job.input_uri. See [Supported input and output formats](https://cloud.google.com/transcoder/docs/concepts/supported-input-and-output-formats).", +"type": "string" +} +}, +"type": "object" +}, +"Job": { +"description": "Transcoding job resource.", +"id": "Job", +"properties": { +"batchModePriority": { +"description": "The processing priority of a batch job. This field can only be set for batch mode jobs. The default value is 0. This value cannot be negative. Higher values correspond to higher priorities for the job.", +"format": "int32", +"type": "integer" +}, +"config": { +"$ref": "JobConfig", +"description": "The configuration for this job." +}, +"createTime": { +"description": "Output only. The time the job was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. The time the transcoding finished.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"error": { +"$ref": "Status", +"description": "Output only. An error object that describes the reason for the failure. This property is always present when ProcessingState is `FAILED`.", +"readOnly": true +}, +"inputUri": { +"description": "Input only. Specify the `input_uri` to populate empty `uri` fields in each element of `Job.config.inputs` or `JobTemplate.config.inputs` when using template. URI of the media. Input files must be at least 5 seconds in duration and stored in Cloud Storage (for example, `gs://bucket/inputs/file.mp4`). See [Supported input and output formats](https://cloud.google.com/transcoder/docs/concepts/supported-input-and-output-formats).", +"type": "string" +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "The labels associated with this job. You can use these to organize and group your jobs.", +"type": "object" +}, +"mode": { +"description": "The processing mode of the job. The default is `PROCESSING_MODE_INTERACTIVE`.", +"enum": [ +"PROCESSING_MODE_UNSPECIFIED", +"PROCESSING_MODE_INTERACTIVE", +"PROCESSING_MODE_BATCH" +], +"enumDescriptions": [ +"The job processing mode is not specified.", +"The job processing mode is interactive mode. Interactive job will either be ran or rejected if quota does not allow for it.", +"The job processing mode is batch mode. Batch mode allows queuing of jobs." +], +"type": "string" +}, +"name": { +"description": "The resource name of the job. Format: `projects/{project_number}/locations/{location}/jobs/{job}`", +"type": "string" +}, +"optimization": { +"description": "Optional. The optimization strategy of the job. The default is `AUTODETECT`.", +"enum": [ +"OPTIMIZATION_STRATEGY_UNSPECIFIED", +"AUTODETECT", +"DISABLED" +], +"enumDescriptions": [ +"The optimization strategy is not specified.", +"Prioritize job processing speed.", +"Disable all optimizations." +], +"type": "string" +}, +"outputUri": { +"description": "Input only. Specify the `output_uri` to populate an empty `Job.config.output.uri` or `JobTemplate.config.output.uri` when using template. URI for the output file(s). For example, `gs://my-bucket/outputs/`. See [Supported input and output formats](https://cloud.google.com/transcoder/docs/concepts/supported-input-and-output-formats).", +"type": "string" +}, +"startTime": { +"description": "Output only. The time the transcoding started.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"state": { +"description": "Output only. The current state of the job.", +"enum": [ +"PROCESSING_STATE_UNSPECIFIED", +"PENDING", +"RUNNING", +"SUCCEEDED", +"FAILED" +], +"enumDescriptions": [ +"The processing state is not specified.", +"The job is enqueued and will be picked up for processing soon.", +"The job is being processed.", +"The job has been completed successfully.", +"The job has failed. For additional information, see [Troubleshooting](https://cloud.google.com/transcoder/docs/troubleshooting)." +], +"readOnly": true, +"type": "string" +}, +"templateId": { +"description": "Input only. Specify the `template_id` to use for populating `Job.config`. The default is `preset/web-hd`, which is the only supported preset. User defined JobTemplate: `{job_template_id}`", +"type": "string" +}, +"ttlAfterCompletionDays": { +"description": "Job time to live value in days, which will be effective after job completion. Job should be deleted automatically after the given TTL. Enter a value between 1 and 90. The default is 30.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"JobConfig": { +"description": "Job configuration", +"id": "JobConfig", +"properties": { +"adBreaks": { +"description": "List of ad breaks. Specifies where to insert ad break tags in the output manifests.", +"items": { +"$ref": "AdBreak" +}, +"type": "array" +}, +"editList": { +"description": "List of edit atoms. Defines the ultimate timeline of the resulting file or manifest.", +"items": { +"$ref": "EditAtom" +}, +"type": "array" +}, +"elementaryStreams": { +"description": "List of elementary streams.", +"items": { +"$ref": "ElementaryStream" +}, +"type": "array" +}, +"encryptions": { +"description": "List of encryption configurations for the content. Each configuration has an ID. Specify this ID in the MuxStream.encryption_id field to indicate the configuration to use for that `MuxStream` output.", +"items": { +"$ref": "Encryption" +}, +"type": "array" +}, +"inputs": { +"description": "List of input assets stored in Cloud Storage.", +"items": { +"$ref": "Input" +}, +"type": "array" +}, +"manifests": { +"description": "List of output manifests.", +"items": { +"$ref": "Manifest" +}, +"type": "array" +}, +"muxStreams": { +"description": "List of multiplexing settings for output streams.", +"items": { +"$ref": "MuxStream" +}, +"type": "array" +}, +"output": { +"$ref": "Output", +"description": "Output configuration." +}, +"overlays": { +"description": "List of overlays on the output video, in descending Z-order.", +"items": { +"$ref": "Overlay" +}, +"type": "array" +}, +"pubsubDestination": { +"$ref": "PubsubDestination", +"description": "Destination on Pub/Sub." +}, +"spriteSheets": { +"description": "List of output sprite sheets. Spritesheets require at least one VideoStream in the Jobconfig.", +"items": { +"$ref": "SpriteSheet" +}, +"type": "array" +} +}, +"type": "object" +}, +"JobTemplate": { +"description": "Transcoding job template resource.", +"id": "JobTemplate", +"properties": { +"config": { +"$ref": "JobConfig", +"description": "The configuration for this template." +}, +"labels": { +"additionalProperties": { +"type": "string" +}, +"description": "The labels associated with this job template. You can use these to organize and group your job templates.", +"type": "object" +}, +"name": { +"description": "The resource name of the job template. Format: `projects/{project_number}/locations/{location}/jobTemplates/{job_template}`", +"type": "string" +} +}, +"type": "object" +}, +"ListJobTemplatesResponse": { +"description": "Response message for `TranscoderService.ListJobTemplates`.", +"id": "ListJobTemplatesResponse", +"properties": { +"jobTemplates": { +"description": "List of job templates in the specified region.", +"items": { +"$ref": "JobTemplate" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The pagination token.", +"type": "string" +}, +"unreachable": { +"description": "List of regions that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListJobsResponse": { +"description": "Response message for `TranscoderService.ListJobs`.", +"id": "ListJobsResponse", +"properties": { +"jobs": { +"description": "List of jobs in the specified region.", +"items": { +"$ref": "Job" +}, +"type": "array" +}, +"nextPageToken": { +"description": "The pagination token.", +"type": "string" +}, +"unreachable": { +"description": "List of regions that could not be reached.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Manifest": { +"description": "Manifest configuration.", +"id": "Manifest", +"properties": { +"dash": { +"$ref": "DashConfig", +"description": "`DASH` manifest configuration." +}, +"fileName": { +"description": "The name of the generated file. The default is `manifest` with the extension suffix corresponding to the Manifest.type.", +"type": "string" +}, +"muxStreams": { +"description": "Required. List of user supplied MuxStream.key values that should appear in this manifest. When Manifest.type is `HLS`, a media manifest with name MuxStream.key and `.m3u8` extension is generated for each element in this list.", +"items": { +"type": "string" +}, +"type": "array" +}, +"type": { +"description": "Required. Type of the manifest.", +"enum": [ +"MANIFEST_TYPE_UNSPECIFIED", +"HLS", +"DASH" +], +"enumDescriptions": [ +"The manifest type is not specified.", +"Create an HLS manifest. The corresponding file extension is `.m3u8`.", +"Create an MPEG-DASH manifest. The corresponding file extension is `.mpd`." +], +"type": "string" +} +}, +"type": "object" +}, +"MpegCommonEncryption": { +"description": "Configuration for MPEG Common Encryption (MPEG-CENC).", +"id": "MpegCommonEncryption", +"properties": { +"scheme": { +"description": "Required. Specify the encryption scheme. Supported encryption schemes: - `cenc` - `cbcs`", +"type": "string" +} +}, +"type": "object" +}, +"MuxStream": { +"description": "Multiplexing settings for output stream.", +"id": "MuxStream", +"properties": { +"container": { +"description": "The container format. The default is `mp4` Supported container formats: - `ts` - `fmp4`- the corresponding file extension is `.m4s` - `mp4` - `vtt` - `ogg` See also: [Supported input and output formats](https://cloud.google.com/transcoder/docs/concepts/supported-input-and-output-formats)", +"type": "string" +}, +"elementaryStreams": { +"description": "List of ElementaryStream.key values multiplexed in this stream.", +"items": { +"type": "string" +}, +"type": "array" +}, +"encryptionId": { +"description": "Identifier of the encryption configuration to use. If omitted, output will be unencrypted.", +"type": "string" +}, +"fileName": { +"description": "The name of the generated file. The default is MuxStream.key with the extension suffix corresponding to the MuxStream.container. Individual segments also have an incremental 10-digit zero-padded suffix starting from 0 before the extension, such as `mux_stream0000000123.ts`.", +"type": "string" +}, +"fmp4": { +"$ref": "Fmp4Config", +"description": "Optional. `fmp4` container configuration." +}, +"key": { +"description": "A unique key for this multiplexed stream.", +"type": "string" +}, +"segmentSettings": { +"$ref": "SegmentSettings", +"description": "Segment settings for `ts`, `fmp4` and `vtt`." +} +}, +"type": "object" +}, +"NormalizedCoordinate": { +"description": "2D normalized coordinates. Default: `{0.0, 0.0}`", +"id": "NormalizedCoordinate", +"properties": { +"x": { +"description": "Normalized x coordinate.", +"format": "double", +"type": "number" +}, +"y": { +"description": "Normalized y coordinate.", +"format": "double", +"type": "number" +} +}, +"type": "object" +}, +"Output": { +"description": "Location of output file(s) in a Cloud Storage bucket.", +"id": "Output", +"properties": { +"uri": { +"description": "URI for the output file(s). For example, `gs://my-bucket/outputs/`. Must be a directory and not a top-level bucket. If empty, the value is populated from Job.output_uri. See [Supported input and output formats](https://cloud.google.com/transcoder/docs/concepts/supported-input-and-output-formats).", +"type": "string" +} +}, +"type": "object" +}, +"Overlay": { +"description": "Overlay configuration.", +"id": "Overlay", +"properties": { +"animations": { +"description": "List of animations. The list should be chronological, without any time overlap.", +"items": { +"$ref": "Animation" +}, +"type": "array" +}, +"image": { +"$ref": "Image", +"description": "Image overlay." +} +}, +"type": "object" +}, +"Pad": { +"description": "Pad filter configuration for the input video. The padded input video is scaled after padding with black to match the output resolution.", +"id": "Pad", +"properties": { +"bottomPixels": { +"description": "The number of pixels to add to the bottom. The default is 0.", +"format": "int32", +"type": "integer" +}, +"leftPixels": { +"description": "The number of pixels to add to the left. The default is 0.", +"format": "int32", +"type": "integer" +}, +"rightPixels": { +"description": "The number of pixels to add to the right. The default is 0.", +"format": "int32", +"type": "integer" +}, +"topPixels": { +"description": "The number of pixels to add to the top. The default is 0.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"Playready": { +"description": "Playready configuration.", +"id": "Playready", +"properties": {}, +"type": "object" +}, +"PreprocessingConfig": { +"description": "Preprocessing configurations.", +"id": "PreprocessingConfig", +"properties": { +"audio": { +"$ref": "Audio", +"description": "Audio preprocessing configuration." +}, +"color": { +"$ref": "Color", +"description": "Color preprocessing configuration." +}, +"crop": { +"$ref": "Crop", +"description": "Specify the video cropping configuration." +}, +"deblock": { +"$ref": "Deblock", +"description": "Deblock preprocessing configuration." +}, +"deinterlace": { +"$ref": "Deinterlace", +"description": "Specify the video deinterlace configuration." +}, +"denoise": { +"$ref": "Denoise", +"description": "Denoise preprocessing configuration." +}, +"pad": { +"$ref": "Pad", +"description": "Specify the video pad filter configuration." +} +}, +"type": "object" +}, +"PubsubDestination": { +"description": "A Pub/Sub destination.", +"id": "PubsubDestination", +"properties": { +"topic": { +"description": "The name of the Pub/Sub topic to publish job completion notification to. For example: `projects/{project}/topics/{topic}`.", +"type": "string" +} +}, +"type": "object" +}, +"SampleAesEncryption": { +"description": "Configuration for SAMPLE-AES encryption.", +"id": "SampleAesEncryption", +"properties": {}, +"type": "object" +}, +"SecretManagerSource": { +"description": "Configuration for secrets stored in Google Secret Manager.", +"id": "SecretManagerSource", +"properties": { +"secretVersion": { +"description": "Required. The name of the Secret Version containing the encryption key in the following format: `projects/{project}/secrets/{secret_id}/versions/{version_number}` Note that only numbered versions are supported. Aliases like \"latest\" are not supported.", +"type": "string" +} +}, +"type": "object" +}, +"SegmentSettings": { +"description": "Segment settings for `ts`, `fmp4` and `vtt`.", +"id": "SegmentSettings", +"properties": { +"individualSegments": { +"description": "Required. Create an individual segment file. The default is `false`.", +"type": "boolean" +}, +"segmentDuration": { +"description": "Duration of the segments in seconds. The default is `6.0s`. Note that `segmentDuration` must be greater than or equal to [`gopDuration`](#videostream), and `segmentDuration` must be divisible by [`gopDuration`](#videostream).", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"SpriteSheet": { +"description": "Sprite sheet configuration.", +"id": "SpriteSheet", +"properties": { +"columnCount": { +"description": "The maximum number of sprites per row in a sprite sheet. The default is 0, which indicates no maximum limit.", +"format": "int32", +"type": "integer" +}, +"endTimeOffset": { +"description": "End time in seconds, relative to the output file timeline. When `end_time_offset` is not specified, the sprites are generated until the end of the output file.", +"format": "google-duration", +"type": "string" +}, +"filePrefix": { +"description": "Required. File name prefix for the generated sprite sheets. Each sprite sheet has an incremental 10-digit zero-padded suffix starting from 0 before the extension, such as `sprite_sheet0000000123.jpeg`.", +"type": "string" +}, +"format": { +"description": "Format type. The default is `jpeg`. Supported formats: - `jpeg`", +"type": "string" +}, +"interval": { +"description": "Starting from `0s`, create sprites at regular intervals. Specify the interval value in seconds.", +"format": "google-duration", +"type": "string" +}, +"quality": { +"description": "The quality of the generated sprite sheet. Enter a value between 1 and 100, where 1 is the lowest quality and 100 is the highest quality. The default is 100. A high quality value corresponds to a low image data compression ratio.", +"format": "int32", +"type": "integer" +}, +"rowCount": { +"description": "The maximum number of rows per sprite sheet. When the sprite sheet is full, a new sprite sheet is created. The default is 0, which indicates no maximum limit.", +"format": "int32", +"type": "integer" +}, +"spriteHeightPixels": { +"description": "Required. The height of sprite in pixels. Must be an even integer. To preserve the source aspect ratio, set the SpriteSheet.sprite_height_pixels field or the SpriteSheet.sprite_width_pixels field, but not both (the API will automatically calculate the missing field). For portrait videos that contain horizontal ASR and rotation metadata, provide the height, in pixels, per the horizontal ASR. The API calculates the width per the horizontal ASR. The API detects any rotation metadata and swaps the requested height and width for the output.", +"format": "int32", +"type": "integer" +}, +"spriteWidthPixels": { +"description": "Required. The width of sprite in pixels. Must be an even integer. To preserve the source aspect ratio, set the SpriteSheet.sprite_width_pixels field or the SpriteSheet.sprite_height_pixels field, but not both (the API will automatically calculate the missing field). For portrait videos that contain horizontal ASR and rotation metadata, provide the width, in pixels, per the horizontal ASR. The API calculates the height per the horizontal ASR. The API detects any rotation metadata and swaps the requested height and width for the output.", +"format": "int32", +"type": "integer" +}, +"startTimeOffset": { +"description": "Start time in seconds, relative to the output file timeline. Determines the first sprite to pick. The default is `0s`.", +"format": "google-duration", +"type": "string" +}, +"totalCount": { +"description": "Total number of sprites. Create the specified number of sprites distributed evenly across the timeline of the output media. The default is 100.", +"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" +}, +"TextMapping": { +"description": "The mapping for the JobConfig.edit_list atoms with text EditAtom.inputs.", +"id": "TextMapping", +"properties": { +"atomKey": { +"description": "Required. The EditAtom.key that references atom with text inputs in the JobConfig.edit_list.", +"type": "string" +}, +"inputKey": { +"description": "Required. The Input.key that identifies the input file.", +"type": "string" +}, +"inputTrack": { +"description": "Required. The zero-based index of the track in the input file.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"TextStream": { +"description": "Encoding of a text stream. For example, closed captions or subtitles.", +"id": "TextStream", +"properties": { +"codec": { +"description": "The codec for this text stream. The default is `webvtt`. Supported text codecs: - `srt` - `ttml` - `cea608` - `cea708` - `webvtt`", +"type": "string" +}, +"displayName": { +"description": "The name for this particular text stream that will be added to the HLS/DASH manifest. Not supported in MP4 files.", +"type": "string" +}, +"languageCode": { +"description": "The BCP-47 language code, such as `en-US` or `sr-Latn`. For more information, see https://www.unicode.org/reports/tr35/#Unicode_locale_identifier. Not supported in MP4 files.", +"type": "string" +}, +"mapping": { +"description": "The mapping for the JobConfig.edit_list atoms with text EditAtom.inputs.", +"items": { +"$ref": "TextMapping" +}, +"type": "array" +} +}, +"type": "object" +}, +"VideoStream": { +"description": "Video stream resource.", +"id": "VideoStream", +"properties": { +"h264": { +"$ref": "H264CodecSettings", +"description": "H264 codec settings." +}, +"h265": { +"$ref": "H265CodecSettings", +"description": "H265 codec settings." +}, +"vp9": { +"$ref": "Vp9CodecSettings", +"description": "VP9 codec settings." +} +}, +"type": "object" +}, +"Vp9CodecSettings": { +"description": "VP9 codec settings.", +"id": "Vp9CodecSettings", +"properties": { +"bitrateBps": { +"description": "Required. The video bitrate in bits per second. The minimum value is 1,000. The maximum value is 480,000,000.", +"format": "int32", +"type": "integer" +}, +"crfLevel": { +"description": "Target CRF level. Must be between 10 and 36, where 10 is the highest quality and 36 is the most efficient compression. The default is 21. **Note:** This field is not supported.", +"format": "int32", +"type": "integer" +}, +"frameRate": { +"description": "Required. The target video frame rate in frames per second (FPS). Must be less than or equal to 120.", +"format": "double", +"type": "number" +}, +"frameRateConversionStrategy": { +"description": "Optional. Frame rate conversion strategy for desired frame rate. The default is `DOWNSAMPLE`.", +"enum": [ +"FRAME_RATE_CONVERSION_STRATEGY_UNSPECIFIED", +"DOWNSAMPLE", +"DROP_DUPLICATE" +], +"enumDescriptions": [ +"Unspecified frame rate conversion strategy.", +"Selectively retain frames to reduce the output frame rate. Every _n_ th frame is kept, where `n = ceil(input frame rate / target frame rate)`. When _n_ = 1 (that is, the target frame rate is greater than the input frame rate), the output frame rate matches the input frame rate. When _n_ > 1, frames are dropped and the output frame rate is equal to `(input frame rate / n)`. For more information, see [Calculate frame rate](https://cloud.google.com/transcoder/docs/concepts/frame-rate).", +"Drop or duplicate frames to match the specified frame rate." +], +"type": "string" +}, +"gopDuration": { +"description": "Select the GOP size based on the specified duration. The default is `3s`. Note that `gopDuration` must be less than or equal to [`segmentDuration`](#SegmentSettings), and [`segmentDuration`](#SegmentSettings) must be divisible by `gopDuration`.", +"format": "google-duration", +"type": "string" +}, +"gopFrameCount": { +"description": "Select the GOP size based on the specified frame count. Must be greater than zero.", +"format": "int32", +"type": "integer" +}, +"heightPixels": { +"description": "The height of the video in pixels. Must be an even integer. When not specified, the height is adjusted to match the specified width and input aspect ratio. If both are omitted, the input height is used. For portrait videos that contain horizontal ASR and rotation metadata, provide the height, in pixels, per the horizontal ASR. The API calculates the width per the horizontal ASR. The API detects any rotation metadata and swaps the requested height and width for the output.", +"format": "int32", +"type": "integer" +}, +"hlg": { +"$ref": "Vp9ColorFormatHLG", +"description": "Optional. HLG color format setting for VP9." +}, +"pixelFormat": { +"description": "Pixel format to use. The default is `yuv420p`. Supported pixel formats: - `yuv420p` pixel format - `yuv422p` pixel format - `yuv444p` pixel format - `yuv420p10` 10-bit HDR pixel format - `yuv422p10` 10-bit HDR pixel format - `yuv444p10` 10-bit HDR pixel format - `yuv420p12` 12-bit HDR pixel format - `yuv422p12` 12-bit HDR pixel format - `yuv444p12` 12-bit HDR pixel format", +"type": "string" +}, +"profile": { +"description": "Enforces the specified codec profile. The following profiles are supported: * `profile0` (default) * `profile1` * `profile2` * `profile3` The available options are [WebM-compatible](https://www.webmproject.org/vp9/profiles/). Note that certain values for this field may cause the transcoder to override other fields you set in the `Vp9CodecSettings` message.", +"type": "string" +}, +"rateControlMode": { +"description": "Specify the mode. The default is `vbr`. Supported rate control modes: - `vbr` - variable bitrate", +"type": "string" +}, +"sdr": { +"$ref": "Vp9ColorFormatSDR", +"description": "Optional. SDR color format setting for VP9." +}, +"widthPixels": { +"description": "The width of the video in pixels. Must be an even integer. When not specified, the width is adjusted to match the specified height and input aspect ratio. If both are omitted, the input width is used. For portrait videos that contain horizontal ASR and rotation metadata, provide the width, in pixels, per the horizontal ASR. The API calculates the height per the horizontal ASR. The API detects any rotation metadata and swaps the requested height and width for the output.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"Vp9ColorFormatHLG": { +"description": "Convert the input video to a Hybrid Log Gamma (HLG) video.", +"id": "Vp9ColorFormatHLG", +"properties": {}, +"type": "object" +}, +"Vp9ColorFormatSDR": { +"description": "Convert the input video to a Standard Dynamic Range (SDR) video.", +"id": "Vp9ColorFormatSDR", +"properties": {}, +"type": "object" +}, +"Widevine": { +"description": "Widevine configuration.", +"id": "Widevine", +"properties": {}, +"type": "object" +}, +"YadifConfig": { +"description": "Yet Another Deinterlacing Filter Configuration.", +"id": "YadifConfig", +"properties": { +"deinterlaceAllFrames": { +"description": "Deinterlace all frames rather than just the frames identified as interlaced. The default is `false`.", +"type": "boolean" +}, +"disableSpatialInterlacing": { +"description": "Disable spacial interlacing. The default is `false`.", +"type": "boolean" +}, +"mode": { +"description": "Specifies the deinterlacing mode to adopt. The default is `send_frame`. Supported values: - `send_frame`: Output one frame for each frame - `send_field`: Output one frame for each field", +"type": "string" +}, +"parity": { +"description": "The picture field parity assumed for the input interlaced video. The default is `auto`. Supported values: - `tff`: Assume the top field is first - `bff`: Assume the bottom field is first - `auto`: Enable automatic detection of field parity", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Transcoder 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/translate.v3.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/translate.v3.json new file mode 100644 index 0000000000000000000000000000000000000000..6d8087699bdc8b886304227bb7894c96edfeb03f --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/translate.v3.json @@ -0,0 +1,3263 @@ +{ +"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-translation": { +"description": "Translate text from one language to another using Google Translate" +} +} +} +}, +"basePath": "", +"baseUrl": "https://translation.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Translate", +"description": "Integrates text translation into your website or application.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/translate/docs/quickstarts", +"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": "translate:v3", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://translation.mtls.googleapis.com/", +"name": "translate", +"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": { +"detectLanguage": { +"description": "Detects the language of text within a request.", +"flatPath": "v3/projects/{projectsId}:detectLanguage", +"httpMethod": "POST", +"id": "translate.projects.detectLanguage", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Project or location to make a call. Must refer to a caller's project. Format: `projects/{project-number-or-id}/locations/{location-id}` or `projects/{project-number-or-id}`. For global calls, use `projects/{project-number-or-id}/locations/global` or `projects/{project-number-or-id}`. Only models within the same region (has same location-id) can be used. Otherwise an INVALID_ARGUMENT (400) error is returned.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}:detectLanguage", +"request": { +"$ref": "DetectLanguageRequest" +}, +"response": { +"$ref": "DetectLanguageResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-translation" +] +}, +"getSupportedLanguages": { +"description": "Returns a list of supported languages for translation.", +"flatPath": "v3/projects/{projectsId}/supportedLanguages", +"httpMethod": "GET", +"id": "translate.projects.getSupportedLanguages", +"parameterOrder": [ +"parent" +], +"parameters": { +"displayLanguageCode": { +"description": "Optional. The language to use to return localized, human readable names of supported languages. If missing, then display names are not returned in a response.", +"location": "query", +"type": "string" +}, +"model": { +"description": "Optional. Get supported languages of this model. The format depends on model type: - AutoML Translation models: `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` - General (built-in) models: `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, Returns languages supported by the specified model. If missing, we get supported languages of Google general NMT model.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Project or location to make a call. Must refer to a caller's project. Format: `projects/{project-number-or-id}` or `projects/{project-number-or-id}/locations/{location-id}`. For global calls, use `projects/{project-number-or-id}/locations/global` or `projects/{project-number-or-id}`. Non-global location is required for AutoML models. Only models within the same region (have same location-id) can be used, otherwise an INVALID_ARGUMENT (400) error is returned.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/supportedLanguages", +"response": { +"$ref": "SupportedLanguages" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-translation" +] +}, +"romanizeText": { +"description": "Romanize input text written in non-Latin scripts to Latin text.", +"flatPath": "v3/projects/{projectsId}:romanizeText", +"httpMethod": "POST", +"id": "translate.projects.romanizeText", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Project or location to make a call. Must refer to a caller's project. Format: `projects/{project-number-or-id}/locations/{location-id}` or `projects/{project-number-or-id}`. For global calls, use `projects/{project-number-or-id}/locations/global` or `projects/{project-number-or-id}`.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}:romanizeText", +"request": { +"$ref": "RomanizeTextRequest" +}, +"response": { +"$ref": "RomanizeTextResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-translation" +] +}, +"translateText": { +"description": "Translates input text and returns translated text.", +"flatPath": "v3/projects/{projectsId}:translateText", +"httpMethod": "POST", +"id": "translate.projects.translateText", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Project or location to make a call. Must refer to a caller's project. Format: `projects/{project-number-or-id}` or `projects/{project-number-or-id}/locations/{location-id}`. For global calls, use `projects/{project-number-or-id}/locations/global` or `projects/{project-number-or-id}`. Non-global location is required for requests using AutoML models or custom glossaries. Models and glossaries must be within the same region (have same location-id), otherwise an INVALID_ARGUMENT (400) error is returned.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}:translateText", +"request": { +"$ref": "TranslateTextRequest" +}, +"response": { +"$ref": "TranslateTextResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-translation" +] +} +}, +"resources": { +"locations": { +"methods": { +"adaptiveMtTranslate": { +"description": "Translate text using Adaptive MT.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}:adaptiveMtTranslate", +"httpMethod": "POST", +"id": "translate.projects.locations.adaptiveMtTranslate", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Location to make a regional call. Format: `projects/{project-number-or-id}/locations/{location-id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}:adaptiveMtTranslate", +"request": { +"$ref": "AdaptiveMtTranslateRequest" +}, +"response": { +"$ref": "AdaptiveMtTranslateResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-translation" +] +}, +"batchTranslateDocument": { +"description": "Translates a large volume of document in asynchronous batch mode. This function provides real-time output as the inputs are being processed. If caller cancels a request, the partial results (for an input file, it's all or nothing) may still be available on the specified output location. This call returns immediately and you can use google.longrunning.Operation.name to poll the status of the call.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}:batchTranslateDocument", +"httpMethod": "POST", +"id": "translate.projects.locations.batchTranslateDocument", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Location to make a regional call. Format: `projects/{project-number-or-id}/locations/{location-id}`. The `global` location is not supported for batch translation. Only AutoML Translation models or glossaries within the same region (have the same location-id) can be used, otherwise an INVALID_ARGUMENT (400) error is returned.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}:batchTranslateDocument", +"request": { +"$ref": "BatchTranslateDocumentRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-translation" +] +}, +"batchTranslateText": { +"description": "Translates a large volume of text in asynchronous batch mode. This function provides real-time output as the inputs are being processed. If caller cancels a request, the partial results (for an input file, it's all or nothing) may still be available on the specified output location. This call returns immediately and you can use google.longrunning.Operation.name to poll the status of the call.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}:batchTranslateText", +"httpMethod": "POST", +"id": "translate.projects.locations.batchTranslateText", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Location to make a call. Must refer to a caller's project. Format: `projects/{project-number-or-id}/locations/{location-id}`. The `global` location is not supported for batch translation. Only AutoML Translation models or glossaries within the same region (have the same location-id) can be used, otherwise an INVALID_ARGUMENT (400) error is returned.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}:batchTranslateText", +"request": { +"$ref": "BatchTranslateTextRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-translation" +] +}, +"detectLanguage": { +"description": "Detects the language of text within a request.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}:detectLanguage", +"httpMethod": "POST", +"id": "translate.projects.locations.detectLanguage", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Project or location to make a call. Must refer to a caller's project. Format: `projects/{project-number-or-id}/locations/{location-id}` or `projects/{project-number-or-id}`. For global calls, use `projects/{project-number-or-id}/locations/global` or `projects/{project-number-or-id}`. Only models within the same region (has same location-id) can be used. Otherwise an INVALID_ARGUMENT (400) error is returned.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}:detectLanguage", +"request": { +"$ref": "DetectLanguageRequest" +}, +"response": { +"$ref": "DetectLanguageResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-translation" +] +}, +"get": { +"description": "Gets information about a location.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}", +"httpMethod": "GET", +"id": "translate.projects.locations.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Resource name for the location.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "Location" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-translation" +] +}, +"getSupportedLanguages": { +"description": "Returns a list of supported languages for translation.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/supportedLanguages", +"httpMethod": "GET", +"id": "translate.projects.locations.getSupportedLanguages", +"parameterOrder": [ +"parent" +], +"parameters": { +"displayLanguageCode": { +"description": "Optional. The language to use to return localized, human readable names of supported languages. If missing, then display names are not returned in a response.", +"location": "query", +"type": "string" +}, +"model": { +"description": "Optional. Get supported languages of this model. The format depends on model type: - AutoML Translation models: `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` - General (built-in) models: `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, Returns languages supported by the specified model. If missing, we get supported languages of Google general NMT model.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Project or location to make a call. Must refer to a caller's project. Format: `projects/{project-number-or-id}` or `projects/{project-number-or-id}/locations/{location-id}`. For global calls, use `projects/{project-number-or-id}/locations/global` or `projects/{project-number-or-id}`. Non-global location is required for AutoML models. Only models within the same region (have same location-id) can be used, otherwise an INVALID_ARGUMENT (400) error is returned.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/supportedLanguages", +"response": { +"$ref": "SupportedLanguages" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-translation" +] +}, +"list": { +"description": "Lists information about the supported locations for this service.", +"flatPath": "v3/projects/{projectsId}/locations", +"httpMethod": "GET", +"id": "translate.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": "v3/{+name}/locations", +"response": { +"$ref": "ListLocationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-translation" +] +}, +"romanizeText": { +"description": "Romanize input text written in non-Latin scripts to Latin text.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}:romanizeText", +"httpMethod": "POST", +"id": "translate.projects.locations.romanizeText", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Project or location to make a call. Must refer to a caller's project. Format: `projects/{project-number-or-id}/locations/{location-id}` or `projects/{project-number-or-id}`. For global calls, use `projects/{project-number-or-id}/locations/global` or `projects/{project-number-or-id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}:romanizeText", +"request": { +"$ref": "RomanizeTextRequest" +}, +"response": { +"$ref": "RomanizeTextResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-translation" +] +}, +"translateDocument": { +"description": "Translates documents in synchronous mode.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}:translateDocument", +"httpMethod": "POST", +"id": "translate.projects.locations.translateDocument", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Location to make a regional call. Format: `projects/{project-number-or-id}/locations/{location-id}`. For global calls, use `projects/{project-number-or-id}/locations/global` or `projects/{project-number-or-id}`. Non-global location is required for requests using AutoML models or custom glossaries. Models and glossaries must be within the same region (have the same location-id), otherwise an INVALID_ARGUMENT (400) error is returned.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}:translateDocument", +"request": { +"$ref": "TranslateDocumentRequest" +}, +"response": { +"$ref": "TranslateDocumentResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-translation" +] +}, +"translateText": { +"description": "Translates input text and returns translated text.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}:translateText", +"httpMethod": "POST", +"id": "translate.projects.locations.translateText", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Project or location to make a call. Must refer to a caller's project. Format: `projects/{project-number-or-id}` or `projects/{project-number-or-id}/locations/{location-id}`. For global calls, use `projects/{project-number-or-id}/locations/global` or `projects/{project-number-or-id}`. Non-global location is required for requests using AutoML models or custom glossaries. Models and glossaries must be within the same region (have same location-id), otherwise an INVALID_ARGUMENT (400) error is returned.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}:translateText", +"request": { +"$ref": "TranslateTextRequest" +}, +"response": { +"$ref": "TranslateTextResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-translation" +] +} +}, +"resources": { +"adaptiveMtDatasets": { +"methods": { +"create": { +"description": "Creates an Adaptive MT dataset.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/adaptiveMtDatasets", +"httpMethod": "POST", +"id": "translate.projects.locations.adaptiveMtDatasets.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. Name of the parent project. In form of `projects/{project-number-or-id}/locations/{location-id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/adaptiveMtDatasets", +"request": { +"$ref": "AdaptiveMtDataset" +}, +"response": { +"$ref": "AdaptiveMtDataset" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-translation" +] +}, +"delete": { +"description": "Deletes an Adaptive MT dataset, including all its entries and associated metadata.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/adaptiveMtDatasets/{adaptiveMtDatasetsId}", +"httpMethod": "DELETE", +"id": "translate.projects.locations.adaptiveMtDatasets.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the dataset. In the form of `projects/{project-number-or-id}/locations/{location-id}/adaptiveMtDatasets/{adaptive-mt-dataset-id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/adaptiveMtDatasets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-translation" +] +}, +"get": { +"description": "Gets the Adaptive MT dataset.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/adaptiveMtDatasets/{adaptiveMtDatasetsId}", +"httpMethod": "GET", +"id": "translate.projects.locations.adaptiveMtDatasets.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of the dataset. In the form of `projects/{project-number-or-id}/locations/{location-id}/adaptiveMtDatasets/{adaptive-mt-dataset-id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/adaptiveMtDatasets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "AdaptiveMtDataset" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-translation" +] +}, +"importAdaptiveMtFile": { +"description": "Imports an AdaptiveMtFile and adds all of its sentences into the AdaptiveMtDataset.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/adaptiveMtDatasets/{adaptiveMtDatasetsId}:importAdaptiveMtFile", +"httpMethod": "POST", +"id": "translate.projects.locations.adaptiveMtDatasets.importAdaptiveMtFile", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The resource name of the file, in form of `projects/{project-number-or-id}/locations/{location_id}/adaptiveMtDatasets/{dataset}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/adaptiveMtDatasets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}:importAdaptiveMtFile", +"request": { +"$ref": "ImportAdaptiveMtFileRequest" +}, +"response": { +"$ref": "ImportAdaptiveMtFileResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-translation" +] +}, +"list": { +"description": "Lists all Adaptive MT datasets for which the caller has read permission.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/adaptiveMtDatasets", +"httpMethod": "GET", +"id": "translate.projects.locations.adaptiveMtDatasets.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. An expression for filtering the results of the request. Filter is not supported yet.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Requested page size. The server may return fewer results 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 the server should return. Typically, this is the value of ListAdaptiveMtDatasetsResponse.next_page_token returned from the previous call to `ListAdaptiveMtDatasets` method. The first page is returned if `page_token`is empty or missing.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the project from which to list the Adaptive MT datasets. `projects/{project-number-or-id}/locations/{location-id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/adaptiveMtDatasets", +"response": { +"$ref": "ListAdaptiveMtDatasetsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-translation" +] +} +}, +"resources": { +"adaptiveMtFiles": { +"methods": { +"delete": { +"description": "Deletes an AdaptiveMtFile along with its sentences.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/adaptiveMtDatasets/{adaptiveMtDatasetsId}/adaptiveMtFiles/{adaptiveMtFilesId}", +"httpMethod": "DELETE", +"id": "translate.projects.locations.adaptiveMtDatasets.adaptiveMtFiles.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the file to delete, in form of `projects/{project-number-or-id}/locations/{location_id}/adaptiveMtDatasets/{dataset}/adaptiveMtFiles/{file}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/adaptiveMtDatasets/[^/]+/adaptiveMtFiles/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-translation" +] +}, +"get": { +"description": "Gets and AdaptiveMtFile", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/adaptiveMtDatasets/{adaptiveMtDatasetsId}/adaptiveMtFiles/{adaptiveMtFilesId}", +"httpMethod": "GET", +"id": "translate.projects.locations.adaptiveMtDatasets.adaptiveMtFiles.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the file, in form of `projects/{project-number-or-id}/locations/{location_id}/adaptiveMtDatasets/{dataset}/adaptiveMtFiles/{file}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/adaptiveMtDatasets/[^/]+/adaptiveMtFiles/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "AdaptiveMtFile" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-translation" +] +}, +"list": { +"description": "Lists all AdaptiveMtFiles associated to an AdaptiveMtDataset.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/adaptiveMtDatasets/{adaptiveMtDatasetsId}/adaptiveMtFiles", +"httpMethod": "GET", +"id": "translate.projects.locations.adaptiveMtDatasets.adaptiveMtFiles.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. ", +"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 ListAdaptiveMtFilesResponse.next_page_token returned from the previous call to `ListAdaptiveMtFiles` method. The first page is returned if `page_token`is empty or missing.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the project from which to list the Adaptive MT files. `projects/{project}/locations/{location}/adaptiveMtDatasets/{dataset}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/adaptiveMtDatasets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/adaptiveMtFiles", +"response": { +"$ref": "ListAdaptiveMtFilesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-translation" +] +} +}, +"resources": { +"adaptiveMtSentences": { +"methods": { +"list": { +"description": "Lists all AdaptiveMtSentences under a given file/dataset.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/adaptiveMtDatasets/{adaptiveMtDatasetsId}/adaptiveMtFiles/{adaptiveMtFilesId}/adaptiveMtSentences", +"httpMethod": "GET", +"id": "translate.projects.locations.adaptiveMtDatasets.adaptiveMtFiles.adaptiveMtSentences.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"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 ListAdaptiveMtSentencesRequest.next_page_token returned from the previous call to `ListTranslationMemories` method. The first page is returned if `page_token` is empty or missing.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the project from which to list the Adaptive MT files. The following format lists all sentences under a file. `projects/{project}/locations/{location}/adaptiveMtDatasets/{dataset}/adaptiveMtFiles/{file}` The following format lists all sentences within a dataset. `projects/{project}/locations/{location}/adaptiveMtDatasets/{dataset}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/adaptiveMtDatasets/[^/]+/adaptiveMtFiles/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/adaptiveMtSentences", +"response": { +"$ref": "ListAdaptiveMtSentencesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-translation" +] +} +} +} +} +}, +"adaptiveMtSentences": { +"methods": { +"list": { +"description": "Lists all AdaptiveMtSentences under a given file/dataset.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/adaptiveMtDatasets/{adaptiveMtDatasetsId}/adaptiveMtSentences", +"httpMethod": "GET", +"id": "translate.projects.locations.adaptiveMtDatasets.adaptiveMtSentences.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"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 ListAdaptiveMtSentencesRequest.next_page_token returned from the previous call to `ListTranslationMemories` method. The first page is returned if `page_token` is empty or missing.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The resource name of the project from which to list the Adaptive MT files. The following format lists all sentences under a file. `projects/{project}/locations/{location}/adaptiveMtDatasets/{dataset}/adaptiveMtFiles/{file}` The following format lists all sentences within a dataset. `projects/{project}/locations/{location}/adaptiveMtDatasets/{dataset}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/adaptiveMtDatasets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/adaptiveMtSentences", +"response": { +"$ref": "ListAdaptiveMtSentencesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-translation" +] +} +} +} +} +}, +"datasets": { +"methods": { +"create": { +"description": "Creates a Dataset.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/datasets", +"httpMethod": "POST", +"id": "translate.projects.locations.datasets.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The project name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/datasets", +"request": { +"$ref": "Dataset" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-translation" +] +}, +"delete": { +"description": "Deletes a dataset and all of its contents.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}", +"httpMethod": "DELETE", +"id": "translate.projects.locations.datasets.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the dataset to delete.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-translation" +] +}, +"exportData": { +"description": "Exports dataset's data to the provided output location.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}:exportData", +"httpMethod": "POST", +"id": "translate.projects.locations.datasets.exportData", +"parameterOrder": [ +"dataset" +], +"parameters": { +"dataset": { +"description": "Required. Name of the dataset. In form of `projects/{project-number-or-id}/locations/{location-id}/datasets/{dataset-id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+dataset}:exportData", +"request": { +"$ref": "ExportDataRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-translation" +] +}, +"get": { +"description": "Gets a Dataset.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}", +"httpMethod": "GET", +"id": "translate.projects.locations.datasets.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the dataset to retrieve.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "Dataset" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-translation" +] +}, +"importData": { +"description": "Import sentence pairs into translation Dataset.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}:importData", +"httpMethod": "POST", +"id": "translate.projects.locations.datasets.importData", +"parameterOrder": [ +"dataset" +], +"parameters": { +"dataset": { +"description": "Required. Name of the dataset. In form of `projects/{project-number-or-id}/locations/{location-id}/datasets/{dataset-id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+dataset}:importData", +"request": { +"$ref": "ImportDataRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-translation" +] +}, +"list": { +"description": "Lists datasets.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/datasets", +"httpMethod": "GET", +"id": "translate.projects.locations.datasets.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. Requested page size. The server can return fewer results than requested.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A token identifying a page of results for the server to return. Typically obtained from next_page_token field in the response of a ListDatasets call.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of the parent project. In form of `projects/{project-number-or-id}/locations/{location-id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/datasets", +"response": { +"$ref": "ListDatasetsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-translation" +] +} +}, +"resources": { +"examples": { +"methods": { +"list": { +"description": "Lists sentence pairs in the dataset.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/examples", +"httpMethod": "GET", +"id": "translate.projects.locations.datasets.examples.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. An expression for filtering the examples that will be returned. Example filter: * `usage=TRAIN`", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Requested page size. The server can return fewer results than requested.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A token identifying a page of results for the server to return. Typically obtained from next_page_token field in the response of a ListExamples call.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of the parent dataset. In form of `projects/{project-number-or-id}/locations/{location-id}/datasets/{dataset-id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/examples", +"response": { +"$ref": "ListExamplesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-translation" +] +} +} +} +} +}, +"glossaries": { +"methods": { +"create": { +"description": "Creates a glossary and returns the long-running operation. Returns NOT_FOUND, if the project doesn't exist.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/glossaries", +"httpMethod": "POST", +"id": "translate.projects.locations.glossaries.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The project name.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/glossaries", +"request": { +"$ref": "Glossary" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-translation" +] +}, +"delete": { +"description": "Deletes a glossary, or cancels glossary construction if the glossary isn't created yet. Returns NOT_FOUND, if the glossary doesn't exist.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/glossaries/{glossariesId}", +"httpMethod": "DELETE", +"id": "translate.projects.locations.glossaries.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the glossary to delete.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/glossaries/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-translation" +] +}, +"get": { +"description": "Gets a glossary. Returns NOT_FOUND, if the glossary doesn't exist.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/glossaries/{glossariesId}", +"httpMethod": "GET", +"id": "translate.projects.locations.glossaries.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the glossary to retrieve.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/glossaries/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "Glossary" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-translation" +] +}, +"list": { +"description": "Lists glossaries in a project. Returns NOT_FOUND, if the project doesn't exist.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/glossaries", +"httpMethod": "GET", +"id": "translate.projects.locations.glossaries.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. Filter specifying constraints of a list operation. Specify the constraint by the format of \"key=value\", where key must be \"src\" or \"tgt\", and the value must be a valid language code. For multiple restrictions, concatenate them by \"AND\" (uppercase only), such as: \"src=en-US AND tgt=zh-CN\". Notice that the exact match is used here, which means using 'en-US' and 'en' can lead to different results, which depends on the language code you used when you create the glossary. For the unidirectional glossaries, the \"src\" and \"tgt\" add restrictions on the source and target language code separately. For the equivalent term set glossaries, the \"src\" and/or \"tgt\" add restrictions on the term set. For example: \"src=en-US AND tgt=zh-CN\" will only pick the unidirectional glossaries which exactly match the source language code as \"en-US\" and the target language code \"zh-CN\", but all equivalent term set glossaries which contain \"en-US\" and \"zh-CN\" in their language set will be picked. If missing, no filtering is performed.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Requested page size. The server may return fewer glossaries 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 the server should return. Typically, this is the value of [ListGlossariesResponse.next_page_token] returned from the previous call to `ListGlossaries` method. The first page is returned if `page_token`is empty or missing.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The name of the project from which to list all of the glossaries.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/glossaries", +"response": { +"$ref": "ListGlossariesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-translation" +] +}, +"patch": { +"description": "Updates a glossary. A LRO is used since the update can be async if the glossary's entry file is updated.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/glossaries/{glossariesId}", +"httpMethod": "PATCH", +"id": "translate.projects.locations.glossaries.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the glossary. Glossary names have the form `projects/{project-number-or-id}/locations/{location-id}/glossaries/{glossary-id}`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/glossaries/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The list of fields to be updated. Currently only `display_name` and 'input_config'", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v3/{+name}", +"request": { +"$ref": "Glossary" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-translation" +] +} +}, +"resources": { +"glossaryEntries": { +"methods": { +"create": { +"description": "Creates a glossary entry.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/glossaries/{glossariesId}/glossaryEntries", +"httpMethod": "POST", +"id": "translate.projects.locations.glossaries.glossaryEntries.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The resource name of the glossary to create the entry under.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/glossaries/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/glossaryEntries", +"request": { +"$ref": "GlossaryEntry" +}, +"response": { +"$ref": "GlossaryEntry" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-translation" +] +}, +"delete": { +"description": "Deletes a single entry from the glossary", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/glossaries/{glossariesId}/glossaryEntries/{glossaryEntriesId}", +"httpMethod": "DELETE", +"id": "translate.projects.locations.glossaries.glossaryEntries.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the glossary entry to delete", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/glossaries/[^/]+/glossaryEntries/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-translation" +] +}, +"get": { +"description": "Gets a single glossary entry by the given id.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/glossaries/{glossariesId}/glossaryEntries/{glossaryEntriesId}", +"httpMethod": "GET", +"id": "translate.projects.locations.glossaries.glossaryEntries.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the glossary entry to get", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/glossaries/[^/]+/glossaryEntries/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "GlossaryEntry" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-translation" +] +}, +"list": { +"description": "List the entries for the glossary.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/glossaries/{glossariesId}/glossaryEntries", +"httpMethod": "GET", +"id": "translate.projects.locations.glossaries.glossaryEntries.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Optional. Requested page size. The server may return fewer glossary entries 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 the server should return. Typically, this is the value of [ListGlossaryEntriesResponse.next_page_token] returned from the previous call. The first page is returned if `page_token`is empty or missing.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent glossary resource name for listing the glossary's entries.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/glossaries/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/glossaryEntries", +"response": { +"$ref": "ListGlossaryEntriesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-translation" +] +}, +"patch": { +"description": "Updates a glossary entry.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/glossaries/{glossariesId}/glossaryEntries/{glossaryEntriesId}", +"httpMethod": "PATCH", +"id": "translate.projects.locations.glossaries.glossaryEntries.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Identifier. The resource name of the entry. Format: `projects/*/locations/*/glossaries/*/glossaryEntries/*`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/glossaries/[^/]+/glossaryEntries/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"request": { +"$ref": "GlossaryEntry" +}, +"response": { +"$ref": "GlossaryEntry" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-translation" +] +} +} +} +} +}, +"models": { +"methods": { +"create": { +"description": "Creates a Model.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/models", +"httpMethod": "POST", +"id": "translate.projects.locations.models.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The project name, in form of `projects/{project}/locations/{location}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/models", +"request": { +"$ref": "Model" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-translation" +] +}, +"delete": { +"description": "Deletes a model.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/models/{modelsId}", +"httpMethod": "DELETE", +"id": "translate.projects.locations.models.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The name of the model to delete.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/models/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-translation" +] +}, +"get": { +"description": "Gets a model.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/models/{modelsId}", +"httpMethod": "GET", +"id": "translate.projects.locations.models.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the model to retrieve.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/models/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+name}", +"response": { +"$ref": "Model" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-translation" +] +}, +"list": { +"description": "Lists models.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/models", +"httpMethod": "GET", +"id": "translate.projects.locations.models.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "Optional. An expression for filtering the models that will be returned. Supported filter: `dataset_id=${dataset_id}`", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "Optional. Requested page size. The server can return fewer results than requested.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Optional. A token identifying a page of results for the server to return. Typically obtained from next_page_token field in the response of a ListModels call.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. Name of the parent project. In form of `projects/{project-number-or-id}/locations/{location-id}`", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v3/{+parent}/models", +"response": { +"$ref": "ListModelsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-translation" +] +} +} +}, +"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": "v3/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel", +"httpMethod": "POST", +"id": "translate.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": "v3/{+name}:cancel", +"request": { +"$ref": "CancelOperationRequest" +}, +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-translation" +] +}, +"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": "v3/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "DELETE", +"id": "translate.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": "v3/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-translation" +] +}, +"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": "v3/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "translate.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": "v3/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-translation" +] +}, +"list": { +"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", +"flatPath": "v3/projects/{projectsId}/locations/{locationsId}/operations", +"httpMethod": "GET", +"id": "translate.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": "v3/{+name}/operations", +"response": { +"$ref": "ListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-translation" +] +}, +"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": "v3/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:wait", +"httpMethod": "POST", +"id": "translate.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": "v3/{+name}:wait", +"request": { +"$ref": "WaitOperationRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-translation" +] +} +} +} +} +} +} +} +}, +"revision": "20241218", +"rootUrl": "https://translation.googleapis.com/", +"schemas": { +"AdaptiveMtDataset": { +"description": "An Adaptive MT Dataset.", +"id": "AdaptiveMtDataset", +"properties": { +"createTime": { +"description": "Output only. Timestamp when this dataset was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "The name of the dataset to show in the interface. 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.", +"type": "string" +}, +"exampleCount": { +"description": "The number of examples in the dataset.", +"format": "int32", +"type": "integer" +}, +"name": { +"description": "Required. The resource name of the dataset, in form of `projects/{project-number-or-id}/locations/{location_id}/adaptiveMtDatasets/{dataset_id}`", +"type": "string" +}, +"sourceLanguageCode": { +"description": "The BCP-47 language code of the source language.", +"type": "string" +}, +"targetLanguageCode": { +"description": "The BCP-47 language code of the target language.", +"type": "string" +}, +"updateTime": { +"description": "Output only. Timestamp when this dataset was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"AdaptiveMtFile": { +"description": "An AdaptiveMtFile.", +"id": "AdaptiveMtFile", +"properties": { +"createTime": { +"description": "Output only. Timestamp when this file was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "The file's display name.", +"type": "string" +}, +"entryCount": { +"description": "The number of entries that the file contains.", +"format": "int32", +"type": "integer" +}, +"name": { +"description": "Required. The resource name of the file, in form of `projects/{project-number-or-id}/locations/{location_id}/adaptiveMtDatasets/{dataset}/adaptiveMtFiles/{file}`", +"type": "string" +}, +"updateTime": { +"description": "Output only. Timestamp when this file was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"AdaptiveMtSentence": { +"description": "An AdaptiveMt sentence entry.", +"id": "AdaptiveMtSentence", +"properties": { +"createTime": { +"description": "Output only. Timestamp when this sentence was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"name": { +"description": "Required. The resource name of the file, in form of `projects/{project-number-or-id}/locations/{location_id}/adaptiveMtDatasets/{dataset}/adaptiveMtFiles/{file}/adaptiveMtSentences/{sentence}`", +"type": "string" +}, +"sourceSentence": { +"description": "Required. The source sentence.", +"type": "string" +}, +"targetSentence": { +"description": "Required. The target sentence.", +"type": "string" +}, +"updateTime": { +"description": "Output only. Timestamp when this sentence was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"AdaptiveMtTranslateRequest": { +"description": "The request for sending an AdaptiveMt translation query.", +"id": "AdaptiveMtTranslateRequest", +"properties": { +"content": { +"description": "Required. The content of the input in string format.", +"items": { +"type": "string" +}, +"type": "array" +}, +"dataset": { +"description": "Required. The resource name for the dataset to use for adaptive MT. `projects/{project}/locations/{location-id}/adaptiveMtDatasets/{dataset}`", +"type": "string" +}, +"glossaryConfig": { +"$ref": "GlossaryConfig", +"description": "Optional. Glossary to be applied. The glossary must be within the same region (have the same location-id) as the model, otherwise an INVALID_ARGUMENT (400) error is returned." +}, +"referenceSentenceConfig": { +"$ref": "ReferenceSentenceConfig", +"description": "Configuration for caller provided reference sentences." +} +}, +"type": "object" +}, +"AdaptiveMtTranslateResponse": { +"description": "An AdaptiveMtTranslate response.", +"id": "AdaptiveMtTranslateResponse", +"properties": { +"glossaryTranslations": { +"description": "Text translation response if a glossary is provided in the request. This could be the same as 'translation' above if no terms apply.", +"items": { +"$ref": "AdaptiveMtTranslation" +}, +"type": "array" +}, +"languageCode": { +"description": "Output only. The translation's language code.", +"readOnly": true, +"type": "string" +}, +"translations": { +"description": "Output only. The translation.", +"items": { +"$ref": "AdaptiveMtTranslation" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"AdaptiveMtTranslation": { +"description": "An AdaptiveMt translation.", +"id": "AdaptiveMtTranslation", +"properties": { +"translatedText": { +"description": "Output only. The translated text.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"BatchDocumentInputConfig": { +"description": "Input configuration for BatchTranslateDocument request.", +"id": "BatchDocumentInputConfig", +"properties": { +"gcsSource": { +"$ref": "GcsSource", +"description": "Google Cloud Storage location for the source input. This can be a single file (for example, `gs://translation-test/input.docx`) or a wildcard (for example, `gs://translation-test/*`). File mime type is determined based on extension. Supported mime type includes: - `pdf`, application/pdf - `docx`, application/vnd.openxmlformats-officedocument.wordprocessingml.document - `pptx`, application/vnd.openxmlformats-officedocument.presentationml.presentation - `xlsx`, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet The max file size to support for `.docx`, `.pptx` and `.xlsx` is 100MB. The max file size to support for `.pdf` is 1GB and the max page limit is 1000 pages. The max file size to support for all input documents is 1GB." +} +}, +"type": "object" +}, +"BatchDocumentOutputConfig": { +"description": "Output configuration for BatchTranslateDocument request.", +"id": "BatchDocumentOutputConfig", +"properties": { +"gcsDestination": { +"$ref": "GcsDestination", +"description": "Google Cloud Storage destination for output content. For every single input document (for example, gs://a/b/c.[extension]), we generate at most 2 * n output files. (n is the # of target_language_codes in the BatchTranslateDocumentRequest). While the input documents are being processed, we write/update an index file `index.csv` under `gcs_destination.output_uri_prefix` (for example, gs://translation_output/index.csv) The index file is generated/updated as new files are being translated. The format is: input_document,target_language_code,translation_output,error_output, glossary_translation_output,glossary_error_output `input_document` is one file we matched using gcs_source.input_uri. `target_language_code` is provided in the request. `translation_output` contains the translations. (details provided below) `error_output` contains the error message during processing of the file. Both translations_file and errors_file could be empty strings if we have no content to output. `glossary_translation_output` and `glossary_error_output` are the translated output/error when we apply glossaries. They could also be empty if we have no content to output. Once a row is present in index.csv, the input/output matching never changes. Callers should also expect all the content in input_file are processed and ready to be consumed (that is, no partial output file is written). Since index.csv will be keeping updated during the process, please make sure there is no custom retention policy applied on the output bucket that may avoid file updating. (https://cloud.google.com/storage/docs/bucket-lock#retention-policy) The naming format of translation output files follows (for target language code [trg]): `translation_output`: `gs://translation_output/a_b_c_[trg]_translation.[extension]` `glossary_translation_output`: `gs://translation_test/a_b_c_[trg]_glossary_translation.[extension]`. The output document will maintain the same file format as the input document. The naming format of error output files follows (for target language code [trg]): `error_output`: `gs://translation_test/a_b_c_[trg]_errors.txt` `glossary_error_output`: `gs://translation_test/a_b_c_[trg]_glossary_translation.txt`. The error output is a txt file containing error details." +} +}, +"type": "object" +}, +"BatchTranslateDocumentRequest": { +"description": "The BatchTranslateDocument request.", +"id": "BatchTranslateDocumentRequest", +"properties": { +"customizedAttribution": { +"description": "Optional. This flag is to support user customized attribution. If not provided, the default is `Machine Translated by Google`. Customized attribution should follow rules in https://cloud.google.com/translate/attribution#attribution_and_logos", +"type": "string" +}, +"enableRotationCorrection": { +"description": "Optional. If true, enable auto rotation correction in DVS.", +"type": "boolean" +}, +"enableShadowRemovalNativePdf": { +"description": "Optional. If true, use the text removal server to remove the shadow text on background image for native pdf translation. Shadow removal feature can only be enabled when is_translate_native_pdf_only: false && pdf_native_only: false", +"type": "boolean" +}, +"formatConversions": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. The file format conversion map that is applied to all input files. The map key is the original mime_type. The map value is the target mime_type of translated documents. Supported file format conversion includes: - `application/pdf` to `application/vnd.openxmlformats-officedocument.wordprocessingml.document` If nothing specified, output files will be in the same format as the original file.", +"type": "object" +}, +"glossaries": { +"additionalProperties": { +"$ref": "TranslateTextGlossaryConfig" +}, +"description": "Optional. Glossaries to be applied. It's keyed by target language code.", +"type": "object" +}, +"inputConfigs": { +"description": "Required. Input configurations. The total number of files matched should be <= 100. The total content size to translate should be <= 100M Unicode codepoints. The files must use UTF-8 encoding.", +"items": { +"$ref": "BatchDocumentInputConfig" +}, +"type": "array" +}, +"models": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. The models to use for translation. Map's key is target language code. Map's value is the model name. Value can be a built-in general model, or an AutoML Translation model. The value format depends on model type: - AutoML Translation models: `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` - General (built-in) models: `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, If the map is empty or a specific model is not requested for a language pair, then default google model (nmt) is used.", +"type": "object" +}, +"outputConfig": { +"$ref": "BatchDocumentOutputConfig", +"description": "Required. Output configuration. If 2 input configs match to the same file (that is, same input path), we don't generate output for duplicate inputs." +}, +"sourceLanguageCode": { +"description": "Required. The ISO-639 language code of the input document if known, for example, \"en-US\" or \"sr-Latn\". Supported language codes are listed in [Language Support](https://cloud.google.com/translate/docs/languages).", +"type": "string" +}, +"targetLanguageCodes": { +"description": "Required. The ISO-639 language code to use for translation of the input document. Specify up to 10 language codes here.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"BatchTranslateTextRequest": { +"description": "The batch translation request.", +"id": "BatchTranslateTextRequest", +"properties": { +"glossaries": { +"additionalProperties": { +"$ref": "TranslateTextGlossaryConfig" +}, +"description": "Optional. Glossaries to be applied for translation. It's keyed by target language code.", +"type": "object" +}, +"inputConfigs": { +"description": "Required. Input configurations. The total number of files matched should be <= 100. The total content size should be <= 100M Unicode codepoints. The files must use UTF-8 encoding.", +"items": { +"$ref": "InputConfig" +}, +"type": "array" +}, +"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. See https://cloud.google.com/translate/docs/advanced/labels for more information.", +"type": "object" +}, +"models": { +"additionalProperties": { +"type": "string" +}, +"description": "Optional. The models to use for translation. Map's key is target language code. Map's value is model name. Value can be a built-in general model, or an AutoML Translation model. The value format depends on model type: - AutoML Translation models: `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` - General (built-in) models: `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, If the map is empty or a specific model is not requested for a language pair, then default google model (nmt) is used.", +"type": "object" +}, +"outputConfig": { +"$ref": "OutputConfig", +"description": "Required. Output configuration. If 2 input configs match to the same file (that is, same input path), we don't generate output for duplicate inputs." +}, +"sourceLanguageCode": { +"description": "Required. Source language code.", +"type": "string" +}, +"targetLanguageCodes": { +"description": "Required. Specify up to 10 language codes here.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"CancelOperationRequest": { +"description": "The request message for Operations.CancelOperation.", +"id": "CancelOperationRequest", +"properties": {}, +"type": "object" +}, +"Dataset": { +"description": "A dataset that hosts the examples (sentence pairs) used for translation models.", +"id": "Dataset", +"properties": { +"createTime": { +"description": "Output only. Timestamp when this dataset was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"displayName": { +"description": "The name of the dataset to show in the interface. 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.", +"type": "string" +}, +"exampleCount": { +"description": "Output only. The number of examples in the dataset.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"name": { +"description": "The resource name of the dataset, in form of `projects/{project-number-or-id}/locations/{location_id}/datasets/{dataset_id}`", +"type": "string" +}, +"sourceLanguageCode": { +"description": "The BCP-47 language code of the source language.", +"type": "string" +}, +"targetLanguageCode": { +"description": "The BCP-47 language code of the target language.", +"type": "string" +}, +"testExampleCount": { +"description": "Output only. Number of test examples (sentence pairs).", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"trainExampleCount": { +"description": "Output only. Number of training examples (sentence pairs).", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"updateTime": { +"description": "Output only. Timestamp when this dataset was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"validateExampleCount": { +"description": "Output only. Number of validation examples (sentence pairs).", +"format": "int32", +"readOnly": true, +"type": "integer" +} +}, +"type": "object" +}, +"DatasetInputConfig": { +"description": "Input configuration for datasets.", +"id": "DatasetInputConfig", +"properties": { +"inputFiles": { +"description": "Files containing the sentence pairs to be imported to the dataset.", +"items": { +"$ref": "InputFile" +}, +"type": "array" +} +}, +"type": "object" +}, +"DatasetOutputConfig": { +"description": "Output configuration for datasets.", +"id": "DatasetOutputConfig", +"properties": { +"gcsDestination": { +"$ref": "GcsOutputDestination", +"description": "Google Cloud Storage destination to write the output." +} +}, +"type": "object" +}, +"DetectLanguageRequest": { +"description": "The request message for language detection.", +"id": "DetectLanguageRequest", +"properties": { +"content": { +"description": "The content of the input stored as a string.", +"type": "string" +}, +"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. See https://cloud.google.com/translate/docs/advanced/labels for more information.", +"type": "object" +}, +"mimeType": { +"description": "Optional. The format of the source text, for example, \"text/html\", \"text/plain\". If left blank, the MIME type defaults to \"text/html\".", +"type": "string" +}, +"model": { +"description": "Optional. The language detection model to be used. Format: `projects/{project-number-or-id}/locations/{location-id}/models/language-detection/{model-id}` Only one language detection model is currently supported: `projects/{project-number-or-id}/locations/{location-id}/models/language-detection/default`. If not specified, the default model is used.", +"type": "string" +} +}, +"type": "object" +}, +"DetectLanguageResponse": { +"description": "The response message for language detection.", +"id": "DetectLanguageResponse", +"properties": { +"languages": { +"description": "The most probable language detected by the Translation API. For each request, the Translation API will always return only one result.", +"items": { +"$ref": "DetectedLanguage" +}, +"type": "array" +} +}, +"type": "object" +}, +"DetectedLanguage": { +"description": "The response message for language detection.", +"id": "DetectedLanguage", +"properties": { +"confidence": { +"description": "The confidence of the detection result for this language.", +"format": "float", +"type": "number" +}, +"languageCode": { +"description": "The ISO-639 language code of the source content in the request, detected automatically.", +"type": "string" +} +}, +"type": "object" +}, +"DocumentInputConfig": { +"description": "A document translation request input config.", +"id": "DocumentInputConfig", +"properties": { +"content": { +"description": "Document's content represented as a stream of bytes.", +"format": "byte", +"type": "string" +}, +"gcsSource": { +"$ref": "GcsSource", +"description": "Google Cloud Storage location. This must be a single file. For example: gs://example_bucket/example_file.pdf" +}, +"mimeType": { +"description": "Specifies the input document's mime_type. If not specified it will be determined using the file extension for gcs_source provided files. For a file provided through bytes content the mime_type must be provided. Currently supported mime types are: - application/pdf - application/vnd.openxmlformats-officedocument.wordprocessingml.document - application/vnd.openxmlformats-officedocument.presentationml.presentation - application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", +"type": "string" +} +}, +"type": "object" +}, +"DocumentOutputConfig": { +"description": "A document translation request output config.", +"id": "DocumentOutputConfig", +"properties": { +"gcsDestination": { +"$ref": "GcsDestination", +"description": "Optional. Google Cloud Storage destination for the translation output, e.g., `gs://my_bucket/my_directory/`. The destination directory provided does not have to be empty, but the bucket must exist. If a file with the same name as the output file already exists in the destination an error will be returned. For a DocumentInputConfig.contents provided document, the output file will have the name \"output_[trg]_translations.[ext]\", where - [trg] corresponds to the translated file's language code, - [ext] corresponds to the translated file's extension according to its mime type. For a DocumentInputConfig.gcs_uri provided document, the output file will have a name according to its URI. For example: an input file with URI: `gs://a/b/c.[extension]` stored in a gcs_destination bucket with name \"my_bucket\" will have an output URI: `gs://my_bucket/a_b_c_[trg]_translations.[ext]`, where - [trg] corresponds to the translated file's language code, - [ext] corresponds to the translated file's extension according to its mime type. If the document was directly provided through the request, then the output document will have the format: `gs://my_bucket/translated_document_[trg]_translations.[ext]`, where - [trg] corresponds to the translated file's language code, - [ext] corresponds to the translated file's extension according to its mime type. If a glossary was provided, then the output URI for the glossary translation will be equal to the default output URI but have `glossary_translations` instead of `translations`. For the previous example, its glossary URI would be: `gs://my_bucket/a_b_c_[trg]_glossary_translations.[ext]`. Thus the max number of output files will be 2 (Translated document, Glossary translated document). Callers should expect no partial outputs. If there is any error during document translation, no output will be stored in the Cloud Storage bucket." +}, +"mimeType": { +"description": "Optional. Specifies the translated document's mime_type. If not specified, the translated file's mime type will be the same as the input file's mime type. Currently only support the output mime type to be the same as input mime type. - application/pdf - application/vnd.openxmlformats-officedocument.wordprocessingml.document - application/vnd.openxmlformats-officedocument.presentationml.presentation - application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", +"type": "string" +} +}, +"type": "object" +}, +"DocumentTranslation": { +"description": "A translated document message.", +"id": "DocumentTranslation", +"properties": { +"byteStreamOutputs": { +"description": "The array of translated documents. It is expected to be size 1 for now. We may produce multiple translated documents in the future for other type of file formats.", +"items": { +"format": "byte", +"type": "string" +}, +"type": "array" +}, +"detectedLanguageCode": { +"description": "The detected language for the input document. If the user did not provide the source language for the input document, this field will have the language code automatically detected. If the source language was passed, auto-detection of the language does not occur and this field is empty.", +"type": "string" +}, +"mimeType": { +"description": "The translated document's mime type.", +"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" +}, +"Example": { +"description": "A sentence pair.", +"id": "Example", +"properties": { +"name": { +"description": "Output only. The resource name of the example, in form of `projects/{project-number-or-id}/locations/{location_id}/datasets/{dataset_id}/examples/{example_id}`", +"readOnly": true, +"type": "string" +}, +"sourceText": { +"description": "Sentence in source language.", +"type": "string" +}, +"targetText": { +"description": "Sentence in target language.", +"type": "string" +}, +"usage": { +"description": "Output only. Usage of the sentence pair. Options are TRAIN|VALIDATION|TEST.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"ExportDataRequest": { +"description": "Request message for ExportData.", +"id": "ExportDataRequest", +"properties": { +"outputConfig": { +"$ref": "DatasetOutputConfig", +"description": "Required. The config for the output content." +} +}, +"type": "object" +}, +"FileInputSource": { +"description": "An inlined file.", +"id": "FileInputSource", +"properties": { +"content": { +"description": "Required. The file's byte contents.", +"format": "byte", +"type": "string" +}, +"displayName": { +"description": "Required. The file's display name.", +"type": "string" +}, +"mimeType": { +"description": "Required. The file's mime type.", +"type": "string" +} +}, +"type": "object" +}, +"GcsDestination": { +"description": "The Google Cloud Storage location for the output content.", +"id": "GcsDestination", +"properties": { +"outputUriPrefix": { +"description": "Required. The bucket used in 'output_uri_prefix' must exist and there must be no files under 'output_uri_prefix'. 'output_uri_prefix' must end with \"/\" and start with \"gs://\". One 'output_uri_prefix' can only be used by one batch translation job at a time. Otherwise an INVALID_ARGUMENT (400) error is returned.", +"type": "string" +} +}, +"type": "object" +}, +"GcsInputSource": { +"description": "The Google Cloud Storage location for the input content.", +"id": "GcsInputSource", +"properties": { +"inputUri": { +"description": "Required. Source data URI. For example, `gs://my_bucket/my_object`.", +"type": "string" +} +}, +"type": "object" +}, +"GcsOutputDestination": { +"description": "The Google Cloud Storage location for the output content.", +"id": "GcsOutputDestination", +"properties": { +"outputUriPrefix": { +"description": "Required. Google Cloud Storage URI to output directory. For example, `gs://bucket/directory`. The requesting user must have write permission to the bucket. The directory will be created if it doesn't exist.", +"type": "string" +} +}, +"type": "object" +}, +"GcsSource": { +"description": "The Google Cloud Storage location for the input content.", +"id": "GcsSource", +"properties": { +"inputUri": { +"description": "Required. Source data URI. For example, `gs://my_bucket/my_object`.", +"type": "string" +} +}, +"type": "object" +}, +"Glossary": { +"description": "Represents a glossary built from user-provided data.", +"id": "Glossary", +"properties": { +"displayName": { +"description": "Optional. The display name of the glossary.", +"type": "string" +}, +"endTime": { +"description": "Output only. When the glossary creation was finished.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"entryCount": { +"description": "Output only. The number of entries defined in the glossary.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"inputConfig": { +"$ref": "GlossaryInputConfig", +"description": "Required. Provides examples to build the glossary from. Total glossary must not exceed 10M Unicode codepoints." +}, +"languageCodesSet": { +"$ref": "LanguageCodesSet", +"description": "Used with equivalent term set glossaries." +}, +"languagePair": { +"$ref": "LanguageCodePair", +"description": "Used with unidirectional glossaries." +}, +"name": { +"description": "Required. The resource name of the glossary. Glossary names have the form `projects/{project-number-or-id}/locations/{location-id}/glossaries/{glossary-id}`.", +"type": "string" +}, +"submitTime": { +"description": "Output only. When CreateGlossary was called.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GlossaryConfig": { +"description": "Configures which glossary is used for a specific target language and defines options for applying that glossary.", +"id": "GlossaryConfig", +"properties": { +"contextualTranslationEnabled": { +"description": "Optional. If set to true, the glossary will be used for contextual translation.", +"type": "boolean" +}, +"glossary": { +"description": "Required. The `glossary` to be applied for this translation. The format depends on the glossary: - User-provided custom glossary: `projects/{project-number-or-id}/locations/{location-id}/glossaries/{glossary-id}`", +"type": "string" +}, +"ignoreCase": { +"description": "Optional. Indicates match is case insensitive. The default value is `false` if missing.", +"type": "boolean" +} +}, +"type": "object" +}, +"GlossaryEntry": { +"description": "Represents a single entry in a glossary.", +"id": "GlossaryEntry", +"properties": { +"description": { +"description": "Describes the glossary entry.", +"type": "string" +}, +"name": { +"description": "Identifier. The resource name of the entry. Format: `projects/*/locations/*/glossaries/*/glossaryEntries/*`", +"type": "string" +}, +"termsPair": { +"$ref": "GlossaryTermsPair", +"description": "Used for an unidirectional glossary." +}, +"termsSet": { +"$ref": "GlossaryTermsSet", +"description": "Used for an equivalent term sets glossary." +} +}, +"type": "object" +}, +"GlossaryInputConfig": { +"description": "Input configuration for glossaries.", +"id": "GlossaryInputConfig", +"properties": { +"gcsSource": { +"$ref": "GcsSource", +"description": "Required. Google Cloud Storage location of glossary data. File format is determined based on the filename extension. API returns [google.rpc.Code.INVALID_ARGUMENT] for unsupported URI-s and file formats. Wildcards are not allowed. This must be a single file in one of the following formats: For unidirectional glossaries: - TSV/CSV (`.tsv`/`.csv`): Two column file, tab- or comma-separated. The first column is source text. The second column is target text. No headers in this file. The first row contains data and not column names. - TMX (`.tmx`): TMX file with parallel data defining source/target term pairs. For equivalent term sets glossaries: - CSV (`.csv`): Multi-column CSV file defining equivalent glossary terms in multiple languages. See documentation for more information - [glossaries](https://cloud.google.com/translate/docs/advanced/glossary)." +} +}, +"type": "object" +}, +"GlossaryTerm": { +"description": "Represents a single glossary term", +"id": "GlossaryTerm", +"properties": { +"languageCode": { +"description": "The language for this glossary term.", +"type": "string" +}, +"text": { +"description": "The text for the glossary term.", +"type": "string" +} +}, +"type": "object" +}, +"GlossaryTermsPair": { +"description": "Represents a single entry for an unidirectional glossary.", +"id": "GlossaryTermsPair", +"properties": { +"sourceTerm": { +"$ref": "GlossaryTerm", +"description": "The source term is the term that will get match in the text," +}, +"targetTerm": { +"$ref": "GlossaryTerm", +"description": "The term that will replace the match source term." +} +}, +"type": "object" +}, +"GlossaryTermsSet": { +"description": "Represents a single entry for an equivalent term set glossary. This is used for equivalent term sets where each term can be replaced by the other terms in the set.", +"id": "GlossaryTermsSet", +"properties": { +"terms": { +"description": "Each term in the set represents a term that can be replaced by the other terms.", +"items": { +"$ref": "GlossaryTerm" +}, +"type": "array" +} +}, +"type": "object" +}, +"ImportAdaptiveMtFileRequest": { +"description": "The request for importing an AdaptiveMt file along with its sentences.", +"id": "ImportAdaptiveMtFileRequest", +"properties": { +"fileInputSource": { +"$ref": "FileInputSource", +"description": "Inline file source." +}, +"gcsInputSource": { +"$ref": "GcsInputSource", +"description": "Google Cloud Storage file source." +} +}, +"type": "object" +}, +"ImportAdaptiveMtFileResponse": { +"description": "The response for importing an AdaptiveMtFile", +"id": "ImportAdaptiveMtFileResponse", +"properties": { +"adaptiveMtFile": { +"$ref": "AdaptiveMtFile", +"description": "Output only. The Adaptive MT file that was imported.", +"readOnly": true +} +}, +"type": "object" +}, +"ImportDataRequest": { +"description": "Request message for ImportData.", +"id": "ImportDataRequest", +"properties": { +"inputConfig": { +"$ref": "DatasetInputConfig", +"description": "Required. The config for the input content." +} +}, +"type": "object" +}, +"InputConfig": { +"description": "Input configuration for BatchTranslateText request.", +"id": "InputConfig", +"properties": { +"gcsSource": { +"$ref": "GcsSource", +"description": "Required. Google Cloud Storage location for the source input. This can be a single file (for example, `gs://translation-test/input.tsv`) or a wildcard (for example, `gs://translation-test/*`). If a file extension is `.tsv`, it can contain either one or two columns. The first column (optional) is the id of the text request. If the first column is missing, we use the row number (0-based) from the input file as the ID in the output file. The second column is the actual text to be translated. We recommend each row be <= 10K Unicode codepoints, otherwise an error might be returned. Note that the input tsv must be RFC 4180 compliant. You could use https://github.com/Clever/csvlint to check potential formatting errors in your tsv file. csvlint --delimiter='\\t' your_input_file.tsv The other supported file extensions are `.txt` or `.html`, which is treated as a single large chunk of text." +}, +"mimeType": { +"description": "Optional. Can be \"text/plain\" or \"text/html\". For `.tsv`, \"text/html\" is used if mime_type is missing. For `.html`, this field must be \"text/html\" or empty. For `.txt`, this field must be \"text/plain\" or empty.", +"type": "string" +} +}, +"type": "object" +}, +"InputFile": { +"description": "An input file.", +"id": "InputFile", +"properties": { +"gcsSource": { +"$ref": "GcsInputSource", +"description": "Google Cloud Storage file source." +}, +"usage": { +"description": "Optional. Usage of the file contents. Options are TRAIN|VALIDATION|TEST, or UNASSIGNED (by default) for auto split.", +"type": "string" +} +}, +"type": "object" +}, +"LanguageCodePair": { +"description": "Used with unidirectional glossaries.", +"id": "LanguageCodePair", +"properties": { +"sourceLanguageCode": { +"description": "Required. The ISO-639 language code of the input text, for example, \"en-US\". Expected to be an exact match for GlossaryTerm.language_code.", +"type": "string" +}, +"targetLanguageCode": { +"description": "Required. The ISO-639 language code for translation output, for example, \"zh-CN\". Expected to be an exact match for GlossaryTerm.language_code.", +"type": "string" +} +}, +"type": "object" +}, +"LanguageCodesSet": { +"description": "Used with equivalent term set glossaries.", +"id": "LanguageCodesSet", +"properties": { +"languageCodes": { +"description": "The ISO-639 language code(s) for terms defined in the glossary. All entries are unique. The list contains at least two entries. Expected to be an exact match for GlossaryTerm.language_code.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListAdaptiveMtDatasetsResponse": { +"description": "A list of AdaptiveMtDatasets.", +"id": "ListAdaptiveMtDatasetsResponse", +"properties": { +"adaptiveMtDatasets": { +"description": "Output only. A list of Adaptive MT datasets.", +"items": { +"$ref": "AdaptiveMtDataset" +}, +"readOnly": true, +"type": "array" +}, +"nextPageToken": { +"description": "Optional. A token to retrieve a page of results. Pass this value in the [ListAdaptiveMtDatasetsRequest.page_token] field in the subsequent call to `ListAdaptiveMtDatasets` method to retrieve the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListAdaptiveMtFilesResponse": { +"description": "The response for listing all AdaptiveMt files under a given dataset.", +"id": "ListAdaptiveMtFilesResponse", +"properties": { +"adaptiveMtFiles": { +"description": "Output only. The Adaptive MT files.", +"items": { +"$ref": "AdaptiveMtFile" +}, +"readOnly": true, +"type": "array" +}, +"nextPageToken": { +"description": "Optional. A token to retrieve a page of results. Pass this value in the ListAdaptiveMtFilesRequest.page_token field in the subsequent call to `ListAdaptiveMtFiles` method to retrieve the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListAdaptiveMtSentencesResponse": { +"description": "List AdaptiveMt sentences response.", +"id": "ListAdaptiveMtSentencesResponse", +"properties": { +"adaptiveMtSentences": { +"description": "Output only. The list of AdaptiveMtSentences.", +"items": { +"$ref": "AdaptiveMtSentence" +}, +"readOnly": true, +"type": "array" +}, +"nextPageToken": { +"description": "Optional. ", +"type": "string" +} +}, +"type": "object" +}, +"ListDatasetsResponse": { +"description": "Response message for ListDatasets.", +"id": "ListDatasetsResponse", +"properties": { +"datasets": { +"description": "The datasets read.", +"items": { +"$ref": "Dataset" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve next page of results. Pass this token to the page_token field in the ListDatasetsRequest to obtain the corresponding page.", +"type": "string" +} +}, +"type": "object" +}, +"ListExamplesResponse": { +"description": "Response message for ListExamples.", +"id": "ListExamplesResponse", +"properties": { +"examples": { +"description": "The sentence pairs.", +"items": { +"$ref": "Example" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve next page of results. Pass this token to the page_token field in the ListExamplesRequest to obtain the corresponding page.", +"type": "string" +} +}, +"type": "object" +}, +"ListGlossariesResponse": { +"description": "Response message for ListGlossaries.", +"id": "ListGlossariesResponse", +"properties": { +"glossaries": { +"description": "The list of glossaries for a project.", +"items": { +"$ref": "Glossary" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve a page of results. Pass this value in the [ListGlossariesRequest.page_token] field in the subsequent call to `ListGlossaries` method to retrieve the next page of results.", +"type": "string" +} +}, +"type": "object" +}, +"ListGlossaryEntriesResponse": { +"description": "Response message for ListGlossaryEntries", +"id": "ListGlossaryEntriesResponse", +"properties": { +"glossaryEntries": { +"description": "Optional. The Glossary Entries", +"items": { +"$ref": "GlossaryEntry" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Optional. A token to retrieve a page of results. Pass this value in the [ListGLossaryEntriesRequest.page_token] field in the subsequent calls.", +"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" +}, +"ListModelsResponse": { +"description": "Response message for ListModels.", +"id": "ListModelsResponse", +"properties": { +"models": { +"description": "The models read.", +"items": { +"$ref": "Model" +}, +"type": "array" +}, +"nextPageToken": { +"description": "A token to retrieve next page of results. Pass this token to the page_token field in the ListModelsRequest to obtain the corresponding page.", +"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" +}, +"Model": { +"description": "A trained translation model.", +"id": "Model", +"properties": { +"createTime": { +"description": "Output only. Timestamp when the model resource was created, which is also when the training started.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"dataset": { +"description": "The dataset from which the model is trained, in form of `projects/{project-number-or-id}/locations/{location_id}/datasets/{dataset_id}`", +"type": "string" +}, +"displayName": { +"description": "The name of the model to show in the interface. 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.", +"type": "string" +}, +"name": { +"description": "The resource name of the model, in form of `projects/{project-number-or-id}/locations/{location_id}/models/{model_id}`", +"type": "string" +}, +"sourceLanguageCode": { +"description": "Output only. The BCP-47 language code of the source language.", +"readOnly": true, +"type": "string" +}, +"targetLanguageCode": { +"description": "Output only. The BCP-47 language code of the target language.", +"readOnly": true, +"type": "string" +}, +"testExampleCount": { +"description": "Output only. Number of examples (sentence pairs) used to test the model.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"trainExampleCount": { +"description": "Output only. Number of examples (sentence pairs) used to train the model.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"updateTime": { +"description": "Output only. Timestamp when this model was last updated.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"validateExampleCount": { +"description": "Output only. Number of examples (sentence pairs) used to validate the model.", +"format": "int32", +"readOnly": true, +"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" +}, +"OutputConfig": { +"description": "Output configuration for BatchTranslateText request.", +"id": "OutputConfig", +"properties": { +"gcsDestination": { +"$ref": "GcsDestination", +"description": "Google Cloud Storage destination for output content. For every single input file (for example, gs://a/b/c.[extension]), we generate at most 2 * n output files. (n is the # of target_language_codes in the BatchTranslateTextRequest). Output files (tsv) generated are compliant with RFC 4180 except that record delimiters are '\\n' instead of '\\r\\n'. We don't provide any way to change record delimiters. While the input files are being processed, we write/update an index file 'index.csv' under 'output_uri_prefix' (for example, gs://translation-test/index.csv) The index file is generated/updated as new files are being translated. The format is: input_file,target_language_code,translations_file,errors_file, glossary_translations_file,glossary_errors_file input_file is one file we matched using gcs_source.input_uri. target_language_code is provided in the request. translations_file contains the translations. (details provided below) errors_file contains the errors during processing of the file. (details below). Both translations_file and errors_file could be empty strings if we have no content to output. glossary_translations_file and glossary_errors_file are always empty strings if the input_file is tsv. They could also be empty if we have no content to output. Once a row is present in index.csv, the input/output matching never changes. Callers should also expect all the content in input_file are processed and ready to be consumed (that is, no partial output file is written). Since index.csv will be keeping updated during the process, please make sure there is no custom retention policy applied on the output bucket that may avoid file updating. (https://cloud.google.com/storage/docs/bucket-lock#retention-policy) The format of translations_file (for target language code 'trg') is: `gs://translation_test/a_b_c_'trg'_translations.[extension]` If the input file extension is tsv, the output has the following columns: Column 1: ID of the request provided in the input, if it's not provided in the input, then the input row number is used (0-based). Column 2: source sentence. Column 3: translation without applying a glossary. Empty string if there is an error. Column 4 (only present if a glossary is provided in the request): translation after applying the glossary. Empty string if there is an error applying the glossary. Could be same string as column 3 if there is no glossary applied. If input file extension is a txt or html, the translation is directly written to the output file. If glossary is requested, a separate glossary_translations_file has format of `gs://translation_test/a_b_c_'trg'_glossary_translations.[extension]` The format of errors file (for target language code 'trg') is: `gs://translation_test/a_b_c_'trg'_errors.[extension]` If the input file extension is tsv, errors_file contains the following: Column 1: ID of the request provided in the input, if it's not provided in the input, then the input row number is used (0-based). Column 2: source sentence. Column 3: Error detail for the translation. Could be empty. Column 4 (only present if a glossary is provided in the request): Error when applying the glossary. If the input file extension is txt or html, glossary_error_file will be generated that contains error details. glossary_error_file has format of `gs://translation_test/a_b_c_'trg'_glossary_errors.[extension]`" +} +}, +"type": "object" +}, +"ReferenceSentenceConfig": { +"description": "Message of caller-provided reference configuration.", +"id": "ReferenceSentenceConfig", +"properties": { +"referenceSentencePairLists": { +"description": "Reference sentences pair lists. Each list will be used as the references to translate the sentence under \"content\" field at the corresponding index. Length of the list is required to be equal to the length of \"content\" field.", +"items": { +"$ref": "ReferenceSentencePairList" +}, +"type": "array" +}, +"sourceLanguageCode": { +"description": "Source language code.", +"type": "string" +}, +"targetLanguageCode": { +"description": "Target language code.", +"type": "string" +} +}, +"type": "object" +}, +"ReferenceSentencePair": { +"description": "A pair of sentences used as reference in source and target languages.", +"id": "ReferenceSentencePair", +"properties": { +"sourceSentence": { +"description": "Source sentence in the sentence pair.", +"type": "string" +}, +"targetSentence": { +"description": "Target sentence in the sentence pair.", +"type": "string" +} +}, +"type": "object" +}, +"ReferenceSentencePairList": { +"description": "A list of reference sentence pairs.", +"id": "ReferenceSentencePairList", +"properties": { +"referenceSentencePairs": { +"description": "Reference sentence pairs.", +"items": { +"$ref": "ReferenceSentencePair" +}, +"type": "array" +} +}, +"type": "object" +}, +"Romanization": { +"description": "A single romanization response.", +"id": "Romanization", +"properties": { +"detectedLanguageCode": { +"description": "The ISO-639 language code of source text in the initial request, detected automatically, if no source language was passed within the initial request. If the source language was passed, auto-detection of the language does not occur and this field is empty.", +"type": "string" +}, +"romanizedText": { +"description": "Romanized text. If an error occurs during romanization, this field might be excluded from the response.", +"type": "string" +} +}, +"type": "object" +}, +"RomanizeTextRequest": { +"description": "The request message for synchronous romanization.", +"id": "RomanizeTextRequest", +"properties": { +"contents": { +"description": "Required. The content of the input in string format.", +"items": { +"type": "string" +}, +"type": "array" +}, +"sourceLanguageCode": { +"description": "Optional. The ISO-639 language code of the input text if known, for example, \"hi\" or \"zh\". If the source language isn't specified, the API attempts to identify the source language automatically and returns the source language for each content in the response.", +"type": "string" +} +}, +"type": "object" +}, +"RomanizeTextResponse": { +"description": "The response message for synchronous romanization.", +"id": "RomanizeTextResponse", +"properties": { +"romanizations": { +"description": "Text romanization responses. This field has the same length as `contents`.", +"items": { +"$ref": "Romanization" +}, +"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" +}, +"SupportedLanguage": { +"description": "A single supported language response corresponds to information related to one supported language.", +"id": "SupportedLanguage", +"properties": { +"displayName": { +"description": "Human-readable name of the language localized in the display language specified in the request.", +"type": "string" +}, +"languageCode": { +"description": "Supported language code, generally consisting of its ISO 639-1 identifier, for example, 'en', 'ja'. In certain cases, ISO-639 codes including language and region identifiers are returned (for example, 'zh-TW' and 'zh-CN').", +"type": "string" +}, +"supportSource": { +"description": "Can be used as a source language.", +"type": "boolean" +}, +"supportTarget": { +"description": "Can be used as a target language.", +"type": "boolean" +} +}, +"type": "object" +}, +"SupportedLanguages": { +"description": "The response message for discovering supported languages.", +"id": "SupportedLanguages", +"properties": { +"languages": { +"description": "A list of supported language responses. This list contains an entry for each language the Translation API supports.", +"items": { +"$ref": "SupportedLanguage" +}, +"type": "array" +} +}, +"type": "object" +}, +"TranslateDocumentRequest": { +"description": "A document translation request.", +"id": "TranslateDocumentRequest", +"properties": { +"customizedAttribution": { +"description": "Optional. This flag is to support user customized attribution. If not provided, the default is `Machine Translated by Google`. Customized attribution should follow rules in https://cloud.google.com/translate/attribution#attribution_and_logos", +"type": "string" +}, +"documentInputConfig": { +"$ref": "DocumentInputConfig", +"description": "Required. Input configurations." +}, +"documentOutputConfig": { +"$ref": "DocumentOutputConfig", +"description": "Optional. Output configurations. Defines if the output file should be stored within Cloud Storage as well as the desired output format. If not provided the translated file will only be returned through a byte-stream and its output mime type will be the same as the input file's mime type." +}, +"enableRotationCorrection": { +"description": "Optional. If true, enable auto rotation correction in DVS.", +"type": "boolean" +}, +"enableShadowRemovalNativePdf": { +"description": "Optional. If true, use the text removal server to remove the shadow text on background image for native pdf translation. Shadow removal feature can only be enabled when is_translate_native_pdf_only: false && pdf_native_only: false", +"type": "boolean" +}, +"glossaryConfig": { +"$ref": "TranslateTextGlossaryConfig", +"description": "Optional. Glossary to be applied. The glossary must be within the same region (have the same location-id) as the model, otherwise an INVALID_ARGUMENT (400) error is returned." +}, +"isTranslateNativePdfOnly": { +"description": "Optional. is_translate_native_pdf_only field for external customers. If true, the page limit of online native pdf translation is 300 and only native pdf pages will be translated.", +"type": "boolean" +}, +"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. See https://cloud.google.com/translate/docs/advanced/labels for more information.", +"type": "object" +}, +"model": { +"description": "Optional. The `model` type requested for this translation. The format depends on model type: - AutoML Translation models: `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` - General (built-in) models: `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, If not provided, the default Google model (NMT) will be used for translation.", +"type": "string" +}, +"sourceLanguageCode": { +"description": "Optional. The ISO-639 language code of the input document if known, for example, \"en-US\" or \"sr-Latn\". Supported language codes are listed in Language Support. If the source language isn't specified, the API attempts to identify the source language automatically and returns the source language within the response. Source language must be specified if the request contains a glossary or a custom model.", +"type": "string" +}, +"targetLanguageCode": { +"description": "Required. The ISO-639 language code to use for translation of the input document, set to one of the language codes listed in Language Support.", +"type": "string" +} +}, +"type": "object" +}, +"TranslateDocumentResponse": { +"description": "A translated document response message.", +"id": "TranslateDocumentResponse", +"properties": { +"documentTranslation": { +"$ref": "DocumentTranslation", +"description": "Translated document." +}, +"glossaryConfig": { +"$ref": "TranslateTextGlossaryConfig", +"description": "The `glossary_config` used for this translation." +}, +"glossaryDocumentTranslation": { +"$ref": "DocumentTranslation", +"description": "The document's translation output if a glossary is provided in the request. This can be the same as [TranslateDocumentResponse.document_translation] if no glossary terms apply." +}, +"model": { +"description": "Only present when 'model' is present in the request. 'model' is normalized to have a project number. For example: If the 'model' field in TranslateDocumentRequest is: `projects/{project-id}/locations/{location-id}/models/general/nmt` then `model` here would be normalized to `projects/{project-number}/locations/{location-id}/models/general/nmt`.", +"type": "string" +} +}, +"type": "object" +}, +"TranslateTextGlossaryConfig": { +"description": "Configures which glossary is used for a specific target language and defines options for applying that glossary.", +"id": "TranslateTextGlossaryConfig", +"properties": { +"contextualTranslationEnabled": { +"description": "Optional. If set to true, the glossary will be used for contextual translation.", +"type": "boolean" +}, +"glossary": { +"description": "Required. The `glossary` to be applied for this translation. The format depends on the glossary: - User-provided custom glossary: `projects/{project-number-or-id}/locations/{location-id}/glossaries/{glossary-id}`", +"type": "string" +}, +"ignoreCase": { +"description": "Optional. Indicates match is case insensitive. The default value is `false` if missing.", +"type": "boolean" +} +}, +"type": "object" +}, +"TranslateTextRequest": { +"description": "The request message for synchronous translation.", +"id": "TranslateTextRequest", +"properties": { +"contents": { +"description": "Required. The content of the input in string format. We recommend the total content be less than 30,000 codepoints. The max length of this field is 1024. Use BatchTranslateText for larger text.", +"items": { +"type": "string" +}, +"type": "array" +}, +"glossaryConfig": { +"$ref": "TranslateTextGlossaryConfig", +"description": "Optional. Glossary to be applied. The glossary must be within the same region (have the same location-id) as the model, otherwise an INVALID_ARGUMENT (400) error is returned." +}, +"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. See https://cloud.google.com/translate/docs/advanced/labels for more information.", +"type": "object" +}, +"mimeType": { +"description": "Optional. The format of the source text, for example, \"text/html\", \"text/plain\". If left blank, the MIME type defaults to \"text/html\".", +"type": "string" +}, +"model": { +"description": "Optional. The `model` type requested for this translation. The format depends on model type: - AutoML Translation models: `projects/{project-number-or-id}/locations/{location-id}/models/{model-id}` - General (built-in) models: `projects/{project-number-or-id}/locations/{location-id}/models/general/nmt`, - Translation LLM models: `projects/{project-number-or-id}/locations/{location-id}/models/general/translation-llm`, For global (non-regionalized) requests, use `location-id` `global`. For example, `projects/{project-number-or-id}/locations/global/models/general/nmt`. If not provided, the default Google model (NMT) will be used", +"type": "string" +}, +"sourceLanguageCode": { +"description": "Optional. The ISO-639 language code of the input text if known, for example, \"en-US\" or \"sr-Latn\". Supported language codes are listed in Language Support. If the source language isn't specified, the API attempts to identify the source language automatically and returns the source language within the response.", +"type": "string" +}, +"targetLanguageCode": { +"description": "Required. The ISO-639 language code to use for translation of the input text, set to one of the language codes listed in Language Support.", +"type": "string" +}, +"transliterationConfig": { +"$ref": "TransliterationConfig", +"description": "Optional. Transliteration to be applied." +} +}, +"type": "object" +}, +"TranslateTextResponse": { +"id": "TranslateTextResponse", +"properties": { +"glossaryTranslations": { +"description": "Text translation responses if a glossary is provided in the request. This can be the same as `translations` if no terms apply. This field has the same length as `contents`.", +"items": { +"$ref": "Translation" +}, +"type": "array" +}, +"translations": { +"description": "Text translation responses with no glossary applied. This field has the same length as `contents`.", +"items": { +"$ref": "Translation" +}, +"type": "array" +} +}, +"type": "object" +}, +"Translation": { +"description": "A single translation response.", +"id": "Translation", +"properties": { +"detectedLanguageCode": { +"description": "The ISO-639 language code of source text in the initial request, detected automatically, if no source language was passed within the initial request. If the source language was passed, auto-detection of the language does not occur and this field is empty.", +"type": "string" +}, +"glossaryConfig": { +"$ref": "TranslateTextGlossaryConfig", +"description": "The `glossary_config` used for this translation." +}, +"model": { +"description": "Only present when `model` is present in the request. `model` here is normalized to have project number. For example: If the `model` requested in TranslationTextRequest is `projects/{project-id}/locations/{location-id}/models/general/nmt` then `model` here would be normalized to `projects/{project-number}/locations/{location-id}/models/general/nmt`.", +"type": "string" +}, +"translatedText": { +"description": "Text translated into the target language. If an error occurs during translation, this field might be excluded from the response.", +"type": "string" +} +}, +"type": "object" +}, +"TransliterationConfig": { +"description": "Configures transliteration feature on top of translation.", +"id": "TransliterationConfig", +"properties": { +"enableTransliteration": { +"description": "If true, source text in romanized form can be translated to the target language.", +"type": "boolean" +} +}, +"type": "object" +}, +"WaitOperationRequest": { +"description": "The request message for Operations.WaitOperation.", +"id": "WaitOperationRequest", +"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" +} +}, +"servicePath": "", +"title": "Cloud Translation 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/videointelligence.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/videointelligence.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..acec478c2b72d71d4797024289bc2af0d1b08f53 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/videointelligence.v1.json @@ -0,0 +1,5027 @@ +{ +"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://videointelligence.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Cloud Video Intelligence", +"description": "Detects objects, explicit content, and scene changes in videos. It also specifies the region for annotation and transcribes speech to text. Supports both asynchronous API and streaming API.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/video-intelligence/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": "videointelligence:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://videointelligence.mtls.googleapis.com/", +"name": "videointelligence", +"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": { +"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": "v1/operations/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel", +"httpMethod": "POST", +"id": "videointelligence.operations.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/operations/{+name}:cancel", +"response": { +"$ref": "GoogleProtobuf_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/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "DELETE", +"id": "videointelligence.operations.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/operations/{+name}", +"response": { +"$ref": "GoogleProtobuf_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/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "videointelligence.operations.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/operations/{+name}", +"response": { +"$ref": "GoogleLongrunning_Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +} +}, +"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": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel", +"httpMethod": "POST", +"id": "videointelligence.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": "GoogleLongrunning_CancelOperationRequest" +}, +"response": { +"$ref": "GoogleProtobuf_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": "videointelligence.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": "GoogleProtobuf_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": "videointelligence.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": "GoogleLongrunning_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": "videointelligence.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": "GoogleLongrunning_ListOperationsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +}, +"videos": { +"methods": { +"annotate": { +"description": "Performs asynchronous video annotation. Progress and results can be retrieved through the `google.longrunning.Operations` interface. `Operation.metadata` contains `AnnotateVideoProgress` (progress). `Operation.response` contains `AnnotateVideoResponse` (results).", +"flatPath": "v1/videos:annotate", +"httpMethod": "POST", +"id": "videointelligence.videos.annotate", +"parameterOrder": [], +"parameters": {}, +"path": "v1/videos:annotate", +"request": { +"$ref": "GoogleCloudVideointelligenceV1_AnnotateVideoRequest" +}, +"response": { +"$ref": "GoogleLongrunning_Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +}, +"revision": "20240704", +"rootUrl": "https://videointelligence.googleapis.com/", +"schemas": { +"GoogleCloudVideointelligenceV1_AnnotateVideoProgress": { +"description": "Video annotation progress. Included in the `metadata` field of the `Operation` returned by the `GetOperation` call of the `google::longrunning::Operations` service.", +"id": "GoogleCloudVideointelligenceV1_AnnotateVideoProgress", +"properties": { +"annotationProgress": { +"description": "Progress metadata for all videos specified in `AnnotateVideoRequest`.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1_VideoAnnotationProgress" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1_AnnotateVideoRequest": { +"description": "Video annotation request.", +"id": "GoogleCloudVideointelligenceV1_AnnotateVideoRequest", +"properties": { +"features": { +"description": "Required. Requested video annotation features.", +"items": { +"enum": [ +"FEATURE_UNSPECIFIED", +"LABEL_DETECTION", +"SHOT_CHANGE_DETECTION", +"EXPLICIT_CONTENT_DETECTION", +"FACE_DETECTION", +"SPEECH_TRANSCRIPTION", +"TEXT_DETECTION", +"OBJECT_TRACKING", +"LOGO_RECOGNITION", +"PERSON_DETECTION" +], +"enumDescriptions": [ +"Unspecified.", +"Label detection. Detect objects, such as dog or flower.", +"Shot change detection.", +"Explicit content detection.", +"Human face detection.", +"Speech transcription.", +"OCR text detection and tracking.", +"Object detection and tracking.", +"Logo detection, tracking, and recognition.", +"Person detection." +], +"type": "string" +}, +"type": "array" +}, +"inputContent": { +"description": "The video data bytes. If unset, the input video(s) should be specified via the `input_uri`. If set, `input_uri` must be unset.", +"format": "byte", +"type": "string" +}, +"inputUri": { +"description": "Input video location. Currently, only [Cloud Storage](https://cloud.google.com/storage/) URIs are supported. URIs must be specified in the following format: `gs://bucket-id/object-id` (other URI formats return google.rpc.Code.INVALID_ARGUMENT). For more information, see [Request URIs](https://cloud.google.com/storage/docs/request-endpoints). To identify multiple videos, a video URI may include wildcards in the `object-id`. Supported wildcards: '*' to match 0 or more characters; '?' to match 1 character. If unset, the input video should be embedded in the request as `input_content`. If set, `input_content` must be unset.", +"type": "string" +}, +"locationId": { +"description": "Optional. Cloud region where annotation should take place. Supported cloud regions are: `us-east1`, `us-west1`, `europe-west1`, `asia-east1`. If no region is specified, the region will be determined based on video file location.", +"type": "string" +}, +"outputUri": { +"description": "Optional. Location where the output (in JSON format) should be stored. Currently, only [Cloud Storage](https://cloud.google.com/storage/) URIs are supported. These must be specified in the following format: `gs://bucket-id/object-id` (other URI formats return google.rpc.Code.INVALID_ARGUMENT). For more information, see [Request URIs](https://cloud.google.com/storage/docs/request-endpoints).", +"type": "string" +}, +"videoContext": { +"$ref": "GoogleCloudVideointelligenceV1_VideoContext", +"description": "Additional video context and/or feature-specific parameters." +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1_AnnotateVideoResponse": { +"description": "Video annotation response. Included in the `response` field of the `Operation` returned by the `GetOperation` call of the `google::longrunning::Operations` service.", +"id": "GoogleCloudVideointelligenceV1_AnnotateVideoResponse", +"properties": { +"annotationResults": { +"description": "Annotation results for all videos specified in `AnnotateVideoRequest`.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1_VideoAnnotationResults" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1_DetectedAttribute": { +"description": "A generic detected attribute represented by name in string format.", +"id": "GoogleCloudVideointelligenceV1_DetectedAttribute", +"properties": { +"confidence": { +"description": "Detected attribute confidence. Range [0, 1].", +"format": "float", +"type": "number" +}, +"name": { +"description": "The name of the attribute, for example, glasses, dark_glasses, mouth_open. A full list of supported type names will be provided in the document.", +"type": "string" +}, +"value": { +"description": "Text value of the detection result. For example, the value for \"HairColor\" can be \"black\", \"blonde\", etc.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1_DetectedLandmark": { +"description": "A generic detected landmark represented by name in string format and a 2D location.", +"id": "GoogleCloudVideointelligenceV1_DetectedLandmark", +"properties": { +"confidence": { +"description": "The confidence score of the detected landmark. Range [0, 1].", +"format": "float", +"type": "number" +}, +"name": { +"description": "The name of this landmark, for example, left_hand, right_shoulder.", +"type": "string" +}, +"point": { +"$ref": "GoogleCloudVideointelligenceV1_NormalizedVertex", +"description": "The 2D point of the detected landmark using the normalized image coordindate system. The normalized coordinates have the range from 0 to 1." +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1_Entity": { +"description": "Detected entity from video analysis.", +"id": "GoogleCloudVideointelligenceV1_Entity", +"properties": { +"description": { +"description": "Textual description, e.g., `Fixed-gear bicycle`.", +"type": "string" +}, +"entityId": { +"description": "Opaque entity ID. Some IDs may be available in [Google Knowledge Graph Search API](https://developers.google.com/knowledge-graph/).", +"type": "string" +}, +"languageCode": { +"description": "Language code for `description` in BCP-47 format.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1_ExplicitContentAnnotation": { +"description": "Explicit content annotation (based on per-frame visual signals only). If no explicit content has been detected in a frame, no annotations are present for that frame.", +"id": "GoogleCloudVideointelligenceV1_ExplicitContentAnnotation", +"properties": { +"frames": { +"description": "All video frames where explicit content was detected.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1_ExplicitContentFrame" +}, +"type": "array" +}, +"version": { +"description": "Feature version.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1_ExplicitContentDetectionConfig": { +"description": "Config for EXPLICIT_CONTENT_DETECTION.", +"id": "GoogleCloudVideointelligenceV1_ExplicitContentDetectionConfig", +"properties": { +"model": { +"description": "Model to use for explicit content detection. Supported values: \"builtin/stable\" (the default if unset) and \"builtin/latest\".", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1_ExplicitContentFrame": { +"description": "Video frame level annotation results for explicit content.", +"id": "GoogleCloudVideointelligenceV1_ExplicitContentFrame", +"properties": { +"pornographyLikelihood": { +"description": "Likelihood of the pornography content..", +"enum": [ +"LIKELIHOOD_UNSPECIFIED", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unspecified likelihood.", +"Very unlikely.", +"Unlikely.", +"Possible.", +"Likely.", +"Very likely." +], +"type": "string" +}, +"timeOffset": { +"description": "Time-offset, relative to the beginning of the video, corresponding to the video frame for this location.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1_FaceAnnotation": { +"deprecated": true, +"description": "Deprecated. No effect.", +"id": "GoogleCloudVideointelligenceV1_FaceAnnotation", +"properties": { +"frames": { +"description": "All video frames where a face was detected.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1_FaceFrame" +}, +"type": "array" +}, +"segments": { +"description": "All video segments where a face was detected.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1_FaceSegment" +}, +"type": "array" +}, +"thumbnail": { +"description": "Thumbnail of a representative face view (in JPEG format).", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1_FaceDetectionAnnotation": { +"description": "Face detection annotation.", +"id": "GoogleCloudVideointelligenceV1_FaceDetectionAnnotation", +"properties": { +"thumbnail": { +"description": "The thumbnail of a person's face.", +"format": "byte", +"type": "string" +}, +"tracks": { +"description": "The face tracks with attributes.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1_Track" +}, +"type": "array" +}, +"version": { +"description": "Feature version.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1_FaceDetectionConfig": { +"description": "Config for FACE_DETECTION.", +"id": "GoogleCloudVideointelligenceV1_FaceDetectionConfig", +"properties": { +"includeAttributes": { +"description": "Whether to enable face attributes detection, such as glasses, dark_glasses, mouth_open etc. Ignored if 'include_bounding_boxes' is set to false.", +"type": "boolean" +}, +"includeBoundingBoxes": { +"description": "Whether bounding boxes are included in the face annotation output.", +"type": "boolean" +}, +"model": { +"description": "Model to use for face detection. Supported values: \"builtin/stable\" (the default if unset) and \"builtin/latest\".", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1_FaceFrame": { +"deprecated": true, +"description": "Deprecated. No effect.", +"id": "GoogleCloudVideointelligenceV1_FaceFrame", +"properties": { +"normalizedBoundingBoxes": { +"description": "Normalized Bounding boxes in a frame. There can be more than one boxes if the same face is detected in multiple locations within the current frame.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1_NormalizedBoundingBox" +}, +"type": "array" +}, +"timeOffset": { +"description": "Time-offset, relative to the beginning of the video, corresponding to the video frame for this location.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1_FaceSegment": { +"description": "Video segment level annotation results for face detection.", +"id": "GoogleCloudVideointelligenceV1_FaceSegment", +"properties": { +"segment": { +"$ref": "GoogleCloudVideointelligenceV1_VideoSegment", +"description": "Video segment where a face was detected." +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1_LabelAnnotation": { +"description": "Label annotation.", +"id": "GoogleCloudVideointelligenceV1_LabelAnnotation", +"properties": { +"categoryEntities": { +"description": "Common categories for the detected entity. For example, when the label is `Terrier`, the category is likely `dog`. And in some cases there might be more than one categories e.g., `Terrier` could also be a `pet`.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1_Entity" +}, +"type": "array" +}, +"entity": { +"$ref": "GoogleCloudVideointelligenceV1_Entity", +"description": "Detected entity." +}, +"frames": { +"description": "All video frames where a label was detected.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1_LabelFrame" +}, +"type": "array" +}, +"segments": { +"description": "All video segments where a label was detected.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1_LabelSegment" +}, +"type": "array" +}, +"version": { +"description": "Feature version.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1_LabelDetectionConfig": { +"description": "Config for LABEL_DETECTION.", +"id": "GoogleCloudVideointelligenceV1_LabelDetectionConfig", +"properties": { +"frameConfidenceThreshold": { +"description": "The confidence threshold we perform filtering on the labels from frame-level detection. If not set, it is set to 0.4 by default. The valid range for this threshold is [0.1, 0.9]. Any value set outside of this range will be clipped. Note: For best results, follow the default threshold. We will update the default threshold everytime when we release a new model.", +"format": "float", +"type": "number" +}, +"labelDetectionMode": { +"description": "What labels should be detected with LABEL_DETECTION, in addition to video-level labels or segment-level labels. If unspecified, defaults to `SHOT_MODE`.", +"enum": [ +"LABEL_DETECTION_MODE_UNSPECIFIED", +"SHOT_MODE", +"FRAME_MODE", +"SHOT_AND_FRAME_MODE" +], +"enumDescriptions": [ +"Unspecified.", +"Detect shot-level labels.", +"Detect frame-level labels.", +"Detect both shot-level and frame-level labels." +], +"type": "string" +}, +"model": { +"description": "Model to use for label detection. Supported values: \"builtin/stable\" (the default if unset) and \"builtin/latest\".", +"type": "string" +}, +"stationaryCamera": { +"description": "Whether the video has been shot from a stationary (i.e., non-moving) camera. When set to true, might improve detection accuracy for moving objects. Should be used with `SHOT_AND_FRAME_MODE` enabled.", +"type": "boolean" +}, +"videoConfidenceThreshold": { +"description": "The confidence threshold we perform filtering on the labels from video-level and shot-level detections. If not set, it's set to 0.3 by default. The valid range for this threshold is [0.1, 0.9]. Any value set outside of this range will be clipped. Note: For best results, follow the default threshold. We will update the default threshold everytime when we release a new model.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1_LabelFrame": { +"description": "Video frame level annotation results for label detection.", +"id": "GoogleCloudVideointelligenceV1_LabelFrame", +"properties": { +"confidence": { +"description": "Confidence that the label is accurate. Range: [0, 1].", +"format": "float", +"type": "number" +}, +"timeOffset": { +"description": "Time-offset, relative to the beginning of the video, corresponding to the video frame for this location.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1_LabelSegment": { +"description": "Video segment level annotation results for label detection.", +"id": "GoogleCloudVideointelligenceV1_LabelSegment", +"properties": { +"confidence": { +"description": "Confidence that the label is accurate. Range: [0, 1].", +"format": "float", +"type": "number" +}, +"segment": { +"$ref": "GoogleCloudVideointelligenceV1_VideoSegment", +"description": "Video segment where a label was detected." +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1_LogoRecognitionAnnotation": { +"description": "Annotation corresponding to one detected, tracked and recognized logo class.", +"id": "GoogleCloudVideointelligenceV1_LogoRecognitionAnnotation", +"properties": { +"entity": { +"$ref": "GoogleCloudVideointelligenceV1_Entity", +"description": "Entity category information to specify the logo class that all the logo tracks within this LogoRecognitionAnnotation are recognized as." +}, +"segments": { +"description": "All video segments where the recognized logo appears. There might be multiple instances of the same logo class appearing in one VideoSegment.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1_VideoSegment" +}, +"type": "array" +}, +"tracks": { +"description": "All logo tracks where the recognized logo appears. Each track corresponds to one logo instance appearing in consecutive frames.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1_Track" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1_NormalizedBoundingBox": { +"description": "Normalized bounding box. The normalized vertex coordinates are relative to the original image. Range: [0, 1].", +"id": "GoogleCloudVideointelligenceV1_NormalizedBoundingBox", +"properties": { +"bottom": { +"description": "Bottom Y coordinate.", +"format": "float", +"type": "number" +}, +"left": { +"description": "Left X coordinate.", +"format": "float", +"type": "number" +}, +"right": { +"description": "Right X coordinate.", +"format": "float", +"type": "number" +}, +"top": { +"description": "Top Y coordinate.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1_NormalizedBoundingPoly": { +"description": "Normalized bounding polygon for text (that might not be aligned with axis). Contains list of the corner points in clockwise order starting from top-left corner. For example, for a rectangular bounding box: When the text is horizontal it might look like: 0----1 | | 3----2 When it's clockwise 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). Note that values can be less than 0, or greater than 1 due to trignometric calculations for location of the box.", +"id": "GoogleCloudVideointelligenceV1_NormalizedBoundingPoly", +"properties": { +"vertices": { +"description": "Normalized vertices of the bounding polygon.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1_NormalizedVertex" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1_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": "GoogleCloudVideointelligenceV1_NormalizedVertex", +"properties": { +"x": { +"description": "X coordinate.", +"format": "float", +"type": "number" +}, +"y": { +"description": "Y coordinate.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1_ObjectTrackingAnnotation": { +"description": "Annotations corresponding to one tracked object.", +"id": "GoogleCloudVideointelligenceV1_ObjectTrackingAnnotation", +"properties": { +"confidence": { +"description": "Object category's labeling confidence of this track.", +"format": "float", +"type": "number" +}, +"entity": { +"$ref": "GoogleCloudVideointelligenceV1_Entity", +"description": "Entity to specify the object category that this track is labeled as." +}, +"frames": { +"description": "Information corresponding to all frames where this object track appears. Non-streaming batch mode: it may be one or multiple ObjectTrackingFrame messages in frames. Streaming mode: it can only be one ObjectTrackingFrame message in frames.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1_ObjectTrackingFrame" +}, +"type": "array" +}, +"segment": { +"$ref": "GoogleCloudVideointelligenceV1_VideoSegment", +"description": "Non-streaming batch mode ONLY. Each object track corresponds to one video segment where it appears." +}, +"trackId": { +"description": "Streaming mode ONLY. In streaming mode, we do not know the end time of a tracked object before it is completed. Hence, there is no VideoSegment info returned. Instead, we provide a unique identifiable integer track_id so that the customers can correlate the results of the ongoing ObjectTrackAnnotation of the same track_id over time.", +"format": "int64", +"type": "string" +}, +"version": { +"description": "Feature version.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1_ObjectTrackingConfig": { +"description": "Config for OBJECT_TRACKING.", +"id": "GoogleCloudVideointelligenceV1_ObjectTrackingConfig", +"properties": { +"model": { +"description": "Model to use for object tracking. Supported values: \"builtin/stable\" (the default if unset) and \"builtin/latest\".", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1_ObjectTrackingFrame": { +"description": "Video frame level annotations for object detection and tracking. This field stores per frame location, time offset, and confidence.", +"id": "GoogleCloudVideointelligenceV1_ObjectTrackingFrame", +"properties": { +"normalizedBoundingBox": { +"$ref": "GoogleCloudVideointelligenceV1_NormalizedBoundingBox", +"description": "The normalized bounding box location of this object track for the frame." +}, +"timeOffset": { +"description": "The timestamp of the frame in microseconds.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1_PersonDetectionAnnotation": { +"description": "Person detection annotation per video.", +"id": "GoogleCloudVideointelligenceV1_PersonDetectionAnnotation", +"properties": { +"tracks": { +"description": "The detected tracks of a person.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1_Track" +}, +"type": "array" +}, +"version": { +"description": "Feature version.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1_PersonDetectionConfig": { +"description": "Config for PERSON_DETECTION.", +"id": "GoogleCloudVideointelligenceV1_PersonDetectionConfig", +"properties": { +"includeAttributes": { +"description": "Whether to enable person attributes detection, such as cloth color (black, blue, etc), type (coat, dress, etc), pattern (plain, floral, etc), hair, etc. Ignored if 'include_bounding_boxes' is set to false.", +"type": "boolean" +}, +"includeBoundingBoxes": { +"description": "Whether bounding boxes are included in the person detection annotation output.", +"type": "boolean" +}, +"includePoseLandmarks": { +"description": "Whether to enable pose landmarks detection. Ignored if 'include_bounding_boxes' is set to false.", +"type": "boolean" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1_ShotChangeDetectionConfig": { +"description": "Config for SHOT_CHANGE_DETECTION.", +"id": "GoogleCloudVideointelligenceV1_ShotChangeDetectionConfig", +"properties": { +"model": { +"description": "Model to use for shot change detection. Supported values: \"builtin/stable\" (the default if unset), \"builtin/latest\", and \"builtin/legacy\".", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1_SpeechContext": { +"description": "Provides \"hints\" to the speech recognizer to favor specific words and phrases in the results.", +"id": "GoogleCloudVideointelligenceV1_SpeechContext", +"properties": { +"phrases": { +"description": "Optional. A list of strings containing words and phrases \"hints\" so that the speech recognition is more likely to recognize them. This can be used to improve the accuracy for specific words and phrases, for example, if specific commands are typically spoken by the user. This can also be used to add additional words to the vocabulary of the recognizer. See [usage limits](https://cloud.google.com/speech/limits#content).", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1_SpeechRecognitionAlternative": { +"description": "Alternative hypotheses (a.k.a. n-best list).", +"id": "GoogleCloudVideointelligenceV1_SpeechRecognitionAlternative", +"properties": { +"confidence": { +"description": "Output only. The confidence estimate between 0.0 and 1.0. A higher number indicates an estimated greater likelihood that the recognized words are correct. This field is set only for the top alternative. This field is not guaranteed to be accurate and users should not rely on it to be always provided. The default of 0.0 is a sentinel value indicating `confidence` was not set.", +"format": "float", +"readOnly": true, +"type": "number" +}, +"transcript": { +"description": "Transcript text representing the words that the user spoke.", +"type": "string" +}, +"words": { +"description": "Output only. A list of word-specific information for each recognized word. Note: When `enable_speaker_diarization` is set to true, you will see all the words from the beginning of the audio.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1_WordInfo" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1_SpeechTranscription": { +"description": "A speech recognition result corresponding to a portion of the audio.", +"id": "GoogleCloudVideointelligenceV1_SpeechTranscription", +"properties": { +"alternatives": { +"description": "May contain one or more recognition hypotheses (up to the maximum specified in `max_alternatives`). These alternatives are ordered in terms of accuracy, with the top (first) alternative being the most probable, as ranked by the recognizer.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1_SpeechRecognitionAlternative" +}, +"type": "array" +}, +"languageCode": { +"description": "Output only. The [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tag of the language in this result. This language code was detected to have the most likelihood of being spoken in the audio.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1_SpeechTranscriptionConfig": { +"description": "Config for SPEECH_TRANSCRIPTION.", +"id": "GoogleCloudVideointelligenceV1_SpeechTranscriptionConfig", +"properties": { +"audioTracks": { +"description": "Optional. For file formats, such as MXF or MKV, supporting multiple audio tracks, specify up to two tracks. Default: track 0.", +"items": { +"format": "int32", +"type": "integer" +}, +"type": "array" +}, +"diarizationSpeakerCount": { +"description": "Optional. If set, specifies the estimated number of speakers in the conversation. If not set, defaults to '2'. Ignored unless enable_speaker_diarization is set to true.", +"format": "int32", +"type": "integer" +}, +"enableAutomaticPunctuation": { +"description": "Optional. If 'true', adds punctuation to recognition result hypotheses. This feature is only available in select languages. Setting this for requests in other languages has no effect at all. The default 'false' value does not add punctuation to result hypotheses. NOTE: \"This is currently offered as an experimental service, complimentary to all users. In the future this may be exclusively available as a premium feature.\"", +"type": "boolean" +}, +"enableSpeakerDiarization": { +"description": "Optional. If 'true', enables speaker detection for each recognized word in the top alternative of the recognition result using a speaker_tag provided in the WordInfo. Note: When this is true, we send all the words from the beginning of the audio for the top alternative in every consecutive response. This is done in order to improve our speaker tags as our models learn to identify the speakers in the conversation over time.", +"type": "boolean" +}, +"enableWordConfidence": { +"description": "Optional. If `true`, the top result includes a list of words and the confidence for those words. If `false`, no word-level confidence information is returned. The default is `false`.", +"type": "boolean" +}, +"filterProfanity": { +"description": "Optional. If set to `true`, the server will attempt to filter out profanities, replacing all but the initial character in each filtered word with asterisks, e.g. \"f***\". If set to `false` or omitted, profanities won't be filtered out.", +"type": "boolean" +}, +"languageCode": { +"description": "Required. *Required* The language of the supplied audio as a [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tag. Example: \"en-US\". See [Language Support](https://cloud.google.com/speech/docs/languages) for a list of the currently supported language codes.", +"type": "string" +}, +"maxAlternatives": { +"description": "Optional. Maximum number of recognition hypotheses to be returned. Specifically, the maximum number of `SpeechRecognitionAlternative` messages within each `SpeechTranscription`. The server may return fewer than `max_alternatives`. Valid values are `0`-`30`. A value of `0` or `1` will return a maximum of one. If omitted, will return a maximum of one.", +"format": "int32", +"type": "integer" +}, +"speechContexts": { +"description": "Optional. A means to provide context to assist the speech recognition.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1_SpeechContext" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1_TextAnnotation": { +"description": "Annotations related to one detected OCR text snippet. This will contain the corresponding text, confidence value, and frame level information for each detection.", +"id": "GoogleCloudVideointelligenceV1_TextAnnotation", +"properties": { +"segments": { +"description": "All video segments where OCR detected text appears.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1_TextSegment" +}, +"type": "array" +}, +"text": { +"description": "The detected text.", +"type": "string" +}, +"version": { +"description": "Feature version.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1_TextDetectionConfig": { +"description": "Config for TEXT_DETECTION.", +"id": "GoogleCloudVideointelligenceV1_TextDetectionConfig", +"properties": { +"languageHints": { +"description": "Language hint can be specified if the language to be detected is known a priori. It can increase the accuracy of the detection. Language hint must be language code in BCP-47 format. Automatic language detection is performed if no hint is provided.", +"items": { +"type": "string" +}, +"type": "array" +}, +"model": { +"description": "Model to use for text detection. Supported values: \"builtin/stable\" (the default if unset) and \"builtin/latest\".", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1_TextFrame": { +"description": "Video frame level annotation results for text annotation (OCR). Contains information regarding timestamp and bounding box locations for the frames containing detected OCR text snippets.", +"id": "GoogleCloudVideointelligenceV1_TextFrame", +"properties": { +"rotatedBoundingBox": { +"$ref": "GoogleCloudVideointelligenceV1_NormalizedBoundingPoly", +"description": "Bounding polygon of the detected text for this frame." +}, +"timeOffset": { +"description": "Timestamp of this frame.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1_TextSegment": { +"description": "Video segment level annotation results for text detection.", +"id": "GoogleCloudVideointelligenceV1_TextSegment", +"properties": { +"confidence": { +"description": "Confidence for the track of detected text. It is calculated as the highest over all frames where OCR detected text appears.", +"format": "float", +"type": "number" +}, +"frames": { +"description": "Information related to the frames where OCR detected text appears.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1_TextFrame" +}, +"type": "array" +}, +"segment": { +"$ref": "GoogleCloudVideointelligenceV1_VideoSegment", +"description": "Video segment where a text snippet was detected." +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1_TimestampedObject": { +"description": "For tracking related features. An object at time_offset with attributes, and located with normalized_bounding_box.", +"id": "GoogleCloudVideointelligenceV1_TimestampedObject", +"properties": { +"attributes": { +"description": "Optional. The attributes of the object in the bounding box.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1_DetectedAttribute" +}, +"type": "array" +}, +"landmarks": { +"description": "Optional. The detected landmarks.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1_DetectedLandmark" +}, +"type": "array" +}, +"normalizedBoundingBox": { +"$ref": "GoogleCloudVideointelligenceV1_NormalizedBoundingBox", +"description": "Normalized Bounding box in a frame, where the object is located." +}, +"timeOffset": { +"description": "Time-offset, relative to the beginning of the video, corresponding to the video frame for this object.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1_Track": { +"description": "A track of an object instance.", +"id": "GoogleCloudVideointelligenceV1_Track", +"properties": { +"attributes": { +"description": "Optional. Attributes in the track level.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1_DetectedAttribute" +}, +"type": "array" +}, +"confidence": { +"description": "Optional. The confidence score of the tracked object.", +"format": "float", +"type": "number" +}, +"segment": { +"$ref": "GoogleCloudVideointelligenceV1_VideoSegment", +"description": "Video segment of a track." +}, +"timestampedObjects": { +"description": "The object with timestamp and attributes per frame in the track.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1_TimestampedObject" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1_VideoAnnotationProgress": { +"description": "Annotation progress for a single video.", +"id": "GoogleCloudVideointelligenceV1_VideoAnnotationProgress", +"properties": { +"feature": { +"description": "Specifies which feature is being tracked if the request contains more than one feature.", +"enum": [ +"FEATURE_UNSPECIFIED", +"LABEL_DETECTION", +"SHOT_CHANGE_DETECTION", +"EXPLICIT_CONTENT_DETECTION", +"FACE_DETECTION", +"SPEECH_TRANSCRIPTION", +"TEXT_DETECTION", +"OBJECT_TRACKING", +"LOGO_RECOGNITION", +"PERSON_DETECTION" +], +"enumDescriptions": [ +"Unspecified.", +"Label detection. Detect objects, such as dog or flower.", +"Shot change detection.", +"Explicit content detection.", +"Human face detection.", +"Speech transcription.", +"OCR text detection and tracking.", +"Object detection and tracking.", +"Logo detection, tracking, and recognition.", +"Person detection." +], +"type": "string" +}, +"inputUri": { +"description": "Video file location in [Cloud Storage](https://cloud.google.com/storage/).", +"type": "string" +}, +"progressPercent": { +"description": "Approximate percentage processed thus far. Guaranteed to be 100 when fully processed.", +"format": "int32", +"type": "integer" +}, +"segment": { +"$ref": "GoogleCloudVideointelligenceV1_VideoSegment", +"description": "Specifies which segment is being tracked if the request contains more than one segment." +}, +"startTime": { +"description": "Time when the request was received.", +"format": "google-datetime", +"type": "string" +}, +"updateTime": { +"description": "Time of the most recent update.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1_VideoAnnotationResults": { +"description": "Annotation results for a single video.", +"id": "GoogleCloudVideointelligenceV1_VideoAnnotationResults", +"properties": { +"error": { +"$ref": "GoogleRpc_Status", +"description": "If set, indicates an error. Note that for a single `AnnotateVideoRequest` some videos may succeed and some may fail." +}, +"explicitAnnotation": { +"$ref": "GoogleCloudVideointelligenceV1_ExplicitContentAnnotation", +"description": "Explicit content annotation." +}, +"faceAnnotations": { +"deprecated": true, +"description": "Deprecated. Please use `face_detection_annotations` instead.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1_FaceAnnotation" +}, +"type": "array" +}, +"faceDetectionAnnotations": { +"description": "Face detection annotations.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1_FaceDetectionAnnotation" +}, +"type": "array" +}, +"frameLabelAnnotations": { +"description": "Label annotations on frame level. There is exactly one element for each unique label.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1_LabelAnnotation" +}, +"type": "array" +}, +"inputUri": { +"description": "Video file location in [Cloud Storage](https://cloud.google.com/storage/).", +"type": "string" +}, +"logoRecognitionAnnotations": { +"description": "Annotations for list of logos detected, tracked and recognized in video.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1_LogoRecognitionAnnotation" +}, +"type": "array" +}, +"objectAnnotations": { +"description": "Annotations for list of objects detected and tracked in video.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1_ObjectTrackingAnnotation" +}, +"type": "array" +}, +"personDetectionAnnotations": { +"description": "Person detection annotations.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1_PersonDetectionAnnotation" +}, +"type": "array" +}, +"segment": { +"$ref": "GoogleCloudVideointelligenceV1_VideoSegment", +"description": "Video segment on which the annotation is run." +}, +"segmentLabelAnnotations": { +"description": "Topical label annotations on video level or user-specified segment level. There is exactly one element for each unique label.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1_LabelAnnotation" +}, +"type": "array" +}, +"segmentPresenceLabelAnnotations": { +"description": "Presence label annotations on video level or user-specified segment level. There is exactly one element for each unique label. Compared to the existing topical `segment_label_annotations`, this field presents more fine-grained, segment-level labels detected in video content and is made available only when the client sets `LabelDetectionConfig.model` to \"builtin/latest\" in the request.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1_LabelAnnotation" +}, +"type": "array" +}, +"shotAnnotations": { +"description": "Shot annotations. Each shot is represented as a video segment.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1_VideoSegment" +}, +"type": "array" +}, +"shotLabelAnnotations": { +"description": "Topical label annotations on shot level. There is exactly one element for each unique label.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1_LabelAnnotation" +}, +"type": "array" +}, +"shotPresenceLabelAnnotations": { +"description": "Presence label annotations on shot level. There is exactly one element for each unique label. Compared to the existing topical `shot_label_annotations`, this field presents more fine-grained, shot-level labels detected in video content and is made available only when the client sets `LabelDetectionConfig.model` to \"builtin/latest\" in the request.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1_LabelAnnotation" +}, +"type": "array" +}, +"speechTranscriptions": { +"description": "Speech transcription.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1_SpeechTranscription" +}, +"type": "array" +}, +"textAnnotations": { +"description": "OCR text detection and tracking. Annotations for list of detected text snippets. Each will have list of frame information associated with it.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1_TextAnnotation" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1_VideoContext": { +"description": "Video context and/or feature-specific parameters.", +"id": "GoogleCloudVideointelligenceV1_VideoContext", +"properties": { +"explicitContentDetectionConfig": { +"$ref": "GoogleCloudVideointelligenceV1_ExplicitContentDetectionConfig", +"description": "Config for EXPLICIT_CONTENT_DETECTION." +}, +"faceDetectionConfig": { +"$ref": "GoogleCloudVideointelligenceV1_FaceDetectionConfig", +"description": "Config for FACE_DETECTION." +}, +"labelDetectionConfig": { +"$ref": "GoogleCloudVideointelligenceV1_LabelDetectionConfig", +"description": "Config for LABEL_DETECTION." +}, +"objectTrackingConfig": { +"$ref": "GoogleCloudVideointelligenceV1_ObjectTrackingConfig", +"description": "Config for OBJECT_TRACKING." +}, +"personDetectionConfig": { +"$ref": "GoogleCloudVideointelligenceV1_PersonDetectionConfig", +"description": "Config for PERSON_DETECTION." +}, +"segments": { +"description": "Video segments to annotate. The segments may overlap and are not required to be contiguous or span the whole video. If unspecified, each video is treated as a single segment.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1_VideoSegment" +}, +"type": "array" +}, +"shotChangeDetectionConfig": { +"$ref": "GoogleCloudVideointelligenceV1_ShotChangeDetectionConfig", +"description": "Config for SHOT_CHANGE_DETECTION." +}, +"speechTranscriptionConfig": { +"$ref": "GoogleCloudVideointelligenceV1_SpeechTranscriptionConfig", +"description": "Config for SPEECH_TRANSCRIPTION." +}, +"textDetectionConfig": { +"$ref": "GoogleCloudVideointelligenceV1_TextDetectionConfig", +"description": "Config for TEXT_DETECTION." +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1_VideoSegment": { +"description": "Video segment.", +"id": "GoogleCloudVideointelligenceV1_VideoSegment", +"properties": { +"endTimeOffset": { +"description": "Time-offset, relative to the beginning of the video, corresponding to the end of the segment (inclusive).", +"format": "google-duration", +"type": "string" +}, +"startTimeOffset": { +"description": "Time-offset, relative to the beginning of the video, corresponding to the start of the segment (inclusive).", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1_WordInfo": { +"description": "Word-specific information for recognized words. Word information is only included in the response when certain request parameters are set, such as `enable_word_time_offsets`.", +"id": "GoogleCloudVideointelligenceV1_WordInfo", +"properties": { +"confidence": { +"description": "Output only. The confidence estimate between 0.0 and 1.0. A higher number indicates an estimated greater likelihood that the recognized words are correct. This field is set only for the top alternative. This field is not guaranteed to be accurate and users should not rely on it to be always provided. The default of 0.0 is a sentinel value indicating `confidence` was not set.", +"format": "float", +"readOnly": true, +"type": "number" +}, +"endTime": { +"description": "Time offset relative to the beginning of the audio, and corresponding to the end of the spoken word. This field is only set if `enable_word_time_offsets=true` and only in the top hypothesis. This is an experimental feature and the accuracy of the time offset can vary.", +"format": "google-duration", +"type": "string" +}, +"speakerTag": { +"description": "Output only. A distinct integer value is assigned for every speaker within the audio. This field specifies which one of those speakers was detected to have spoken this word. Value ranges from 1 up to diarization_speaker_count, and is only set if speaker diarization is enabled.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"startTime": { +"description": "Time offset relative to the beginning of the audio, and corresponding to the start of the spoken word. This field is only set if `enable_word_time_offsets=true` and only in the top hypothesis. This is an experimental feature and the accuracy of the time offset can vary.", +"format": "google-duration", +"type": "string" +}, +"word": { +"description": "The word corresponding to this set of information.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1beta2_AnnotateVideoProgress": { +"description": "Video annotation progress. Included in the `metadata` field of the `Operation` returned by the `GetOperation` call of the `google::longrunning::Operations` service.", +"id": "GoogleCloudVideointelligenceV1beta2_AnnotateVideoProgress", +"properties": { +"annotationProgress": { +"description": "Progress metadata for all videos specified in `AnnotateVideoRequest`.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1beta2_VideoAnnotationProgress" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1beta2_AnnotateVideoResponse": { +"description": "Video annotation response. Included in the `response` field of the `Operation` returned by the `GetOperation` call of the `google::longrunning::Operations` service.", +"id": "GoogleCloudVideointelligenceV1beta2_AnnotateVideoResponse", +"properties": { +"annotationResults": { +"description": "Annotation results for all videos specified in `AnnotateVideoRequest`.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1beta2_VideoAnnotationResults" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1beta2_DetectedAttribute": { +"description": "A generic detected attribute represented by name in string format.", +"id": "GoogleCloudVideointelligenceV1beta2_DetectedAttribute", +"properties": { +"confidence": { +"description": "Detected attribute confidence. Range [0, 1].", +"format": "float", +"type": "number" +}, +"name": { +"description": "The name of the attribute, for example, glasses, dark_glasses, mouth_open. A full list of supported type names will be provided in the document.", +"type": "string" +}, +"value": { +"description": "Text value of the detection result. For example, the value for \"HairColor\" can be \"black\", \"blonde\", etc.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1beta2_DetectedLandmark": { +"description": "A generic detected landmark represented by name in string format and a 2D location.", +"id": "GoogleCloudVideointelligenceV1beta2_DetectedLandmark", +"properties": { +"confidence": { +"description": "The confidence score of the detected landmark. Range [0, 1].", +"format": "float", +"type": "number" +}, +"name": { +"description": "The name of this landmark, for example, left_hand, right_shoulder.", +"type": "string" +}, +"point": { +"$ref": "GoogleCloudVideointelligenceV1beta2_NormalizedVertex", +"description": "The 2D point of the detected landmark using the normalized image coordindate system. The normalized coordinates have the range from 0 to 1." +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1beta2_Entity": { +"description": "Detected entity from video analysis.", +"id": "GoogleCloudVideointelligenceV1beta2_Entity", +"properties": { +"description": { +"description": "Textual description, e.g., `Fixed-gear bicycle`.", +"type": "string" +}, +"entityId": { +"description": "Opaque entity ID. Some IDs may be available in [Google Knowledge Graph Search API](https://developers.google.com/knowledge-graph/).", +"type": "string" +}, +"languageCode": { +"description": "Language code for `description` in BCP-47 format.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1beta2_ExplicitContentAnnotation": { +"description": "Explicit content annotation (based on per-frame visual signals only). If no explicit content has been detected in a frame, no annotations are present for that frame.", +"id": "GoogleCloudVideointelligenceV1beta2_ExplicitContentAnnotation", +"properties": { +"frames": { +"description": "All video frames where explicit content was detected.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1beta2_ExplicitContentFrame" +}, +"type": "array" +}, +"version": { +"description": "Feature version.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1beta2_ExplicitContentFrame": { +"description": "Video frame level annotation results for explicit content.", +"id": "GoogleCloudVideointelligenceV1beta2_ExplicitContentFrame", +"properties": { +"pornographyLikelihood": { +"description": "Likelihood of the pornography content..", +"enum": [ +"LIKELIHOOD_UNSPECIFIED", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unspecified likelihood.", +"Very unlikely.", +"Unlikely.", +"Possible.", +"Likely.", +"Very likely." +], +"type": "string" +}, +"timeOffset": { +"description": "Time-offset, relative to the beginning of the video, corresponding to the video frame for this location.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1beta2_FaceAnnotation": { +"deprecated": true, +"description": "Deprecated. No effect.", +"id": "GoogleCloudVideointelligenceV1beta2_FaceAnnotation", +"properties": { +"frames": { +"description": "All video frames where a face was detected.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1beta2_FaceFrame" +}, +"type": "array" +}, +"segments": { +"description": "All video segments where a face was detected.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1beta2_FaceSegment" +}, +"type": "array" +}, +"thumbnail": { +"description": "Thumbnail of a representative face view (in JPEG format).", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1beta2_FaceDetectionAnnotation": { +"description": "Face detection annotation.", +"id": "GoogleCloudVideointelligenceV1beta2_FaceDetectionAnnotation", +"properties": { +"thumbnail": { +"description": "The thumbnail of a person's face.", +"format": "byte", +"type": "string" +}, +"tracks": { +"description": "The face tracks with attributes.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1beta2_Track" +}, +"type": "array" +}, +"version": { +"description": "Feature version.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1beta2_FaceFrame": { +"deprecated": true, +"description": "Deprecated. No effect.", +"id": "GoogleCloudVideointelligenceV1beta2_FaceFrame", +"properties": { +"normalizedBoundingBoxes": { +"description": "Normalized Bounding boxes in a frame. There can be more than one boxes if the same face is detected in multiple locations within the current frame.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1beta2_NormalizedBoundingBox" +}, +"type": "array" +}, +"timeOffset": { +"description": "Time-offset, relative to the beginning of the video, corresponding to the video frame for this location.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1beta2_FaceSegment": { +"description": "Video segment level annotation results for face detection.", +"id": "GoogleCloudVideointelligenceV1beta2_FaceSegment", +"properties": { +"segment": { +"$ref": "GoogleCloudVideointelligenceV1beta2_VideoSegment", +"description": "Video segment where a face was detected." +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1beta2_LabelAnnotation": { +"description": "Label annotation.", +"id": "GoogleCloudVideointelligenceV1beta2_LabelAnnotation", +"properties": { +"categoryEntities": { +"description": "Common categories for the detected entity. For example, when the label is `Terrier`, the category is likely `dog`. And in some cases there might be more than one categories e.g., `Terrier` could also be a `pet`.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1beta2_Entity" +}, +"type": "array" +}, +"entity": { +"$ref": "GoogleCloudVideointelligenceV1beta2_Entity", +"description": "Detected entity." +}, +"frames": { +"description": "All video frames where a label was detected.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1beta2_LabelFrame" +}, +"type": "array" +}, +"segments": { +"description": "All video segments where a label was detected.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1beta2_LabelSegment" +}, +"type": "array" +}, +"version": { +"description": "Feature version.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1beta2_LabelFrame": { +"description": "Video frame level annotation results for label detection.", +"id": "GoogleCloudVideointelligenceV1beta2_LabelFrame", +"properties": { +"confidence": { +"description": "Confidence that the label is accurate. Range: [0, 1].", +"format": "float", +"type": "number" +}, +"timeOffset": { +"description": "Time-offset, relative to the beginning of the video, corresponding to the video frame for this location.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1beta2_LabelSegment": { +"description": "Video segment level annotation results for label detection.", +"id": "GoogleCloudVideointelligenceV1beta2_LabelSegment", +"properties": { +"confidence": { +"description": "Confidence that the label is accurate. Range: [0, 1].", +"format": "float", +"type": "number" +}, +"segment": { +"$ref": "GoogleCloudVideointelligenceV1beta2_VideoSegment", +"description": "Video segment where a label was detected." +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1beta2_LogoRecognitionAnnotation": { +"description": "Annotation corresponding to one detected, tracked and recognized logo class.", +"id": "GoogleCloudVideointelligenceV1beta2_LogoRecognitionAnnotation", +"properties": { +"entity": { +"$ref": "GoogleCloudVideointelligenceV1beta2_Entity", +"description": "Entity category information to specify the logo class that all the logo tracks within this LogoRecognitionAnnotation are recognized as." +}, +"segments": { +"description": "All video segments where the recognized logo appears. There might be multiple instances of the same logo class appearing in one VideoSegment.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1beta2_VideoSegment" +}, +"type": "array" +}, +"tracks": { +"description": "All logo tracks where the recognized logo appears. Each track corresponds to one logo instance appearing in consecutive frames.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1beta2_Track" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1beta2_NormalizedBoundingBox": { +"description": "Normalized bounding box. The normalized vertex coordinates are relative to the original image. Range: [0, 1].", +"id": "GoogleCloudVideointelligenceV1beta2_NormalizedBoundingBox", +"properties": { +"bottom": { +"description": "Bottom Y coordinate.", +"format": "float", +"type": "number" +}, +"left": { +"description": "Left X coordinate.", +"format": "float", +"type": "number" +}, +"right": { +"description": "Right X coordinate.", +"format": "float", +"type": "number" +}, +"top": { +"description": "Top Y coordinate.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1beta2_NormalizedBoundingPoly": { +"description": "Normalized bounding polygon for text (that might not be aligned with axis). Contains list of the corner points in clockwise order starting from top-left corner. For example, for a rectangular bounding box: When the text is horizontal it might look like: 0----1 | | 3----2 When it's clockwise 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). Note that values can be less than 0, or greater than 1 due to trignometric calculations for location of the box.", +"id": "GoogleCloudVideointelligenceV1beta2_NormalizedBoundingPoly", +"properties": { +"vertices": { +"description": "Normalized vertices of the bounding polygon.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1beta2_NormalizedVertex" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1beta2_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": "GoogleCloudVideointelligenceV1beta2_NormalizedVertex", +"properties": { +"x": { +"description": "X coordinate.", +"format": "float", +"type": "number" +}, +"y": { +"description": "Y coordinate.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1beta2_ObjectTrackingAnnotation": { +"description": "Annotations corresponding to one tracked object.", +"id": "GoogleCloudVideointelligenceV1beta2_ObjectTrackingAnnotation", +"properties": { +"confidence": { +"description": "Object category's labeling confidence of this track.", +"format": "float", +"type": "number" +}, +"entity": { +"$ref": "GoogleCloudVideointelligenceV1beta2_Entity", +"description": "Entity to specify the object category that this track is labeled as." +}, +"frames": { +"description": "Information corresponding to all frames where this object track appears. Non-streaming batch mode: it may be one or multiple ObjectTrackingFrame messages in frames. Streaming mode: it can only be one ObjectTrackingFrame message in frames.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1beta2_ObjectTrackingFrame" +}, +"type": "array" +}, +"segment": { +"$ref": "GoogleCloudVideointelligenceV1beta2_VideoSegment", +"description": "Non-streaming batch mode ONLY. Each object track corresponds to one video segment where it appears." +}, +"trackId": { +"description": "Streaming mode ONLY. In streaming mode, we do not know the end time of a tracked object before it is completed. Hence, there is no VideoSegment info returned. Instead, we provide a unique identifiable integer track_id so that the customers can correlate the results of the ongoing ObjectTrackAnnotation of the same track_id over time.", +"format": "int64", +"type": "string" +}, +"version": { +"description": "Feature version.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1beta2_ObjectTrackingFrame": { +"description": "Video frame level annotations for object detection and tracking. This field stores per frame location, time offset, and confidence.", +"id": "GoogleCloudVideointelligenceV1beta2_ObjectTrackingFrame", +"properties": { +"normalizedBoundingBox": { +"$ref": "GoogleCloudVideointelligenceV1beta2_NormalizedBoundingBox", +"description": "The normalized bounding box location of this object track for the frame." +}, +"timeOffset": { +"description": "The timestamp of the frame in microseconds.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1beta2_PersonDetectionAnnotation": { +"description": "Person detection annotation per video.", +"id": "GoogleCloudVideointelligenceV1beta2_PersonDetectionAnnotation", +"properties": { +"tracks": { +"description": "The detected tracks of a person.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1beta2_Track" +}, +"type": "array" +}, +"version": { +"description": "Feature version.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1beta2_SpeechRecognitionAlternative": { +"description": "Alternative hypotheses (a.k.a. n-best list).", +"id": "GoogleCloudVideointelligenceV1beta2_SpeechRecognitionAlternative", +"properties": { +"confidence": { +"description": "Output only. The confidence estimate between 0.0 and 1.0. A higher number indicates an estimated greater likelihood that the recognized words are correct. This field is set only for the top alternative. This field is not guaranteed to be accurate and users should not rely on it to be always provided. The default of 0.0 is a sentinel value indicating `confidence` was not set.", +"format": "float", +"readOnly": true, +"type": "number" +}, +"transcript": { +"description": "Transcript text representing the words that the user spoke.", +"type": "string" +}, +"words": { +"description": "Output only. A list of word-specific information for each recognized word. Note: When `enable_speaker_diarization` is set to true, you will see all the words from the beginning of the audio.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1beta2_WordInfo" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1beta2_SpeechTranscription": { +"description": "A speech recognition result corresponding to a portion of the audio.", +"id": "GoogleCloudVideointelligenceV1beta2_SpeechTranscription", +"properties": { +"alternatives": { +"description": "May contain one or more recognition hypotheses (up to the maximum specified in `max_alternatives`). These alternatives are ordered in terms of accuracy, with the top (first) alternative being the most probable, as ranked by the recognizer.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1beta2_SpeechRecognitionAlternative" +}, +"type": "array" +}, +"languageCode": { +"description": "Output only. The [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tag of the language in this result. This language code was detected to have the most likelihood of being spoken in the audio.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1beta2_TextAnnotation": { +"description": "Annotations related to one detected OCR text snippet. This will contain the corresponding text, confidence value, and frame level information for each detection.", +"id": "GoogleCloudVideointelligenceV1beta2_TextAnnotation", +"properties": { +"segments": { +"description": "All video segments where OCR detected text appears.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1beta2_TextSegment" +}, +"type": "array" +}, +"text": { +"description": "The detected text.", +"type": "string" +}, +"version": { +"description": "Feature version.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1beta2_TextFrame": { +"description": "Video frame level annotation results for text annotation (OCR). Contains information regarding timestamp and bounding box locations for the frames containing detected OCR text snippets.", +"id": "GoogleCloudVideointelligenceV1beta2_TextFrame", +"properties": { +"rotatedBoundingBox": { +"$ref": "GoogleCloudVideointelligenceV1beta2_NormalizedBoundingPoly", +"description": "Bounding polygon of the detected text for this frame." +}, +"timeOffset": { +"description": "Timestamp of this frame.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1beta2_TextSegment": { +"description": "Video segment level annotation results for text detection.", +"id": "GoogleCloudVideointelligenceV1beta2_TextSegment", +"properties": { +"confidence": { +"description": "Confidence for the track of detected text. It is calculated as the highest over all frames where OCR detected text appears.", +"format": "float", +"type": "number" +}, +"frames": { +"description": "Information related to the frames where OCR detected text appears.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1beta2_TextFrame" +}, +"type": "array" +}, +"segment": { +"$ref": "GoogleCloudVideointelligenceV1beta2_VideoSegment", +"description": "Video segment where a text snippet was detected." +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1beta2_TimestampedObject": { +"description": "For tracking related features. An object at time_offset with attributes, and located with normalized_bounding_box.", +"id": "GoogleCloudVideointelligenceV1beta2_TimestampedObject", +"properties": { +"attributes": { +"description": "Optional. The attributes of the object in the bounding box.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1beta2_DetectedAttribute" +}, +"type": "array" +}, +"landmarks": { +"description": "Optional. The detected landmarks.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1beta2_DetectedLandmark" +}, +"type": "array" +}, +"normalizedBoundingBox": { +"$ref": "GoogleCloudVideointelligenceV1beta2_NormalizedBoundingBox", +"description": "Normalized Bounding box in a frame, where the object is located." +}, +"timeOffset": { +"description": "Time-offset, relative to the beginning of the video, corresponding to the video frame for this object.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1beta2_Track": { +"description": "A track of an object instance.", +"id": "GoogleCloudVideointelligenceV1beta2_Track", +"properties": { +"attributes": { +"description": "Optional. Attributes in the track level.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1beta2_DetectedAttribute" +}, +"type": "array" +}, +"confidence": { +"description": "Optional. The confidence score of the tracked object.", +"format": "float", +"type": "number" +}, +"segment": { +"$ref": "GoogleCloudVideointelligenceV1beta2_VideoSegment", +"description": "Video segment of a track." +}, +"timestampedObjects": { +"description": "The object with timestamp and attributes per frame in the track.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1beta2_TimestampedObject" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1beta2_VideoAnnotationProgress": { +"description": "Annotation progress for a single video.", +"id": "GoogleCloudVideointelligenceV1beta2_VideoAnnotationProgress", +"properties": { +"feature": { +"description": "Specifies which feature is being tracked if the request contains more than one feature.", +"enum": [ +"FEATURE_UNSPECIFIED", +"LABEL_DETECTION", +"SHOT_CHANGE_DETECTION", +"EXPLICIT_CONTENT_DETECTION", +"FACE_DETECTION", +"SPEECH_TRANSCRIPTION", +"TEXT_DETECTION", +"OBJECT_TRACKING", +"LOGO_RECOGNITION", +"PERSON_DETECTION" +], +"enumDescriptions": [ +"Unspecified.", +"Label detection. Detect objects, such as dog or flower.", +"Shot change detection.", +"Explicit content detection.", +"Human face detection.", +"Speech transcription.", +"OCR text detection and tracking.", +"Object detection and tracking.", +"Logo detection, tracking, and recognition.", +"Person detection." +], +"type": "string" +}, +"inputUri": { +"description": "Video file location in [Cloud Storage](https://cloud.google.com/storage/).", +"type": "string" +}, +"progressPercent": { +"description": "Approximate percentage processed thus far. Guaranteed to be 100 when fully processed.", +"format": "int32", +"type": "integer" +}, +"segment": { +"$ref": "GoogleCloudVideointelligenceV1beta2_VideoSegment", +"description": "Specifies which segment is being tracked if the request contains more than one segment." +}, +"startTime": { +"description": "Time when the request was received.", +"format": "google-datetime", +"type": "string" +}, +"updateTime": { +"description": "Time of the most recent update.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1beta2_VideoAnnotationResults": { +"description": "Annotation results for a single video.", +"id": "GoogleCloudVideointelligenceV1beta2_VideoAnnotationResults", +"properties": { +"error": { +"$ref": "GoogleRpc_Status", +"description": "If set, indicates an error. Note that for a single `AnnotateVideoRequest` some videos may succeed and some may fail." +}, +"explicitAnnotation": { +"$ref": "GoogleCloudVideointelligenceV1beta2_ExplicitContentAnnotation", +"description": "Explicit content annotation." +}, +"faceAnnotations": { +"deprecated": true, +"description": "Deprecated. Please use `face_detection_annotations` instead.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1beta2_FaceAnnotation" +}, +"type": "array" +}, +"faceDetectionAnnotations": { +"description": "Face detection annotations.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1beta2_FaceDetectionAnnotation" +}, +"type": "array" +}, +"frameLabelAnnotations": { +"description": "Label annotations on frame level. There is exactly one element for each unique label.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1beta2_LabelAnnotation" +}, +"type": "array" +}, +"inputUri": { +"description": "Video file location in [Cloud Storage](https://cloud.google.com/storage/).", +"type": "string" +}, +"logoRecognitionAnnotations": { +"description": "Annotations for list of logos detected, tracked and recognized in video.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1beta2_LogoRecognitionAnnotation" +}, +"type": "array" +}, +"objectAnnotations": { +"description": "Annotations for list of objects detected and tracked in video.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1beta2_ObjectTrackingAnnotation" +}, +"type": "array" +}, +"personDetectionAnnotations": { +"description": "Person detection annotations.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1beta2_PersonDetectionAnnotation" +}, +"type": "array" +}, +"segment": { +"$ref": "GoogleCloudVideointelligenceV1beta2_VideoSegment", +"description": "Video segment on which the annotation is run." +}, +"segmentLabelAnnotations": { +"description": "Topical label annotations on video level or user-specified segment level. There is exactly one element for each unique label.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1beta2_LabelAnnotation" +}, +"type": "array" +}, +"segmentPresenceLabelAnnotations": { +"description": "Presence label annotations on video level or user-specified segment level. There is exactly one element for each unique label. Compared to the existing topical `segment_label_annotations`, this field presents more fine-grained, segment-level labels detected in video content and is made available only when the client sets `LabelDetectionConfig.model` to \"builtin/latest\" in the request.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1beta2_LabelAnnotation" +}, +"type": "array" +}, +"shotAnnotations": { +"description": "Shot annotations. Each shot is represented as a video segment.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1beta2_VideoSegment" +}, +"type": "array" +}, +"shotLabelAnnotations": { +"description": "Topical label annotations on shot level. There is exactly one element for each unique label.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1beta2_LabelAnnotation" +}, +"type": "array" +}, +"shotPresenceLabelAnnotations": { +"description": "Presence label annotations on shot level. There is exactly one element for each unique label. Compared to the existing topical `shot_label_annotations`, this field presents more fine-grained, shot-level labels detected in video content and is made available only when the client sets `LabelDetectionConfig.model` to \"builtin/latest\" in the request.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1beta2_LabelAnnotation" +}, +"type": "array" +}, +"speechTranscriptions": { +"description": "Speech transcription.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1beta2_SpeechTranscription" +}, +"type": "array" +}, +"textAnnotations": { +"description": "OCR text detection and tracking. Annotations for list of detected text snippets. Each will have list of frame information associated with it.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1beta2_TextAnnotation" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1beta2_VideoSegment": { +"description": "Video segment.", +"id": "GoogleCloudVideointelligenceV1beta2_VideoSegment", +"properties": { +"endTimeOffset": { +"description": "Time-offset, relative to the beginning of the video, corresponding to the end of the segment (inclusive).", +"format": "google-duration", +"type": "string" +}, +"startTimeOffset": { +"description": "Time-offset, relative to the beginning of the video, corresponding to the start of the segment (inclusive).", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1beta2_WordInfo": { +"description": "Word-specific information for recognized words. Word information is only included in the response when certain request parameters are set, such as `enable_word_time_offsets`.", +"id": "GoogleCloudVideointelligenceV1beta2_WordInfo", +"properties": { +"confidence": { +"description": "Output only. The confidence estimate between 0.0 and 1.0. A higher number indicates an estimated greater likelihood that the recognized words are correct. This field is set only for the top alternative. This field is not guaranteed to be accurate and users should not rely on it to be always provided. The default of 0.0 is a sentinel value indicating `confidence` was not set.", +"format": "float", +"readOnly": true, +"type": "number" +}, +"endTime": { +"description": "Time offset relative to the beginning of the audio, and corresponding to the end of the spoken word. This field is only set if `enable_word_time_offsets=true` and only in the top hypothesis. This is an experimental feature and the accuracy of the time offset can vary.", +"format": "google-duration", +"type": "string" +}, +"speakerTag": { +"description": "Output only. A distinct integer value is assigned for every speaker within the audio. This field specifies which one of those speakers was detected to have spoken this word. Value ranges from 1 up to diarization_speaker_count, and is only set if speaker diarization is enabled.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"startTime": { +"description": "Time offset relative to the beginning of the audio, and corresponding to the start of the spoken word. This field is only set if `enable_word_time_offsets=true` and only in the top hypothesis. This is an experimental feature and the accuracy of the time offset can vary.", +"format": "google-duration", +"type": "string" +}, +"word": { +"description": "The word corresponding to this set of information.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p1beta1_AnnotateVideoProgress": { +"description": "Video annotation progress. Included in the `metadata` field of the `Operation` returned by the `GetOperation` call of the `google::longrunning::Operations` service.", +"id": "GoogleCloudVideointelligenceV1p1beta1_AnnotateVideoProgress", +"properties": { +"annotationProgress": { +"description": "Progress metadata for all videos specified in `AnnotateVideoRequest`.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p1beta1_VideoAnnotationProgress" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p1beta1_AnnotateVideoResponse": { +"description": "Video annotation response. Included in the `response` field of the `Operation` returned by the `GetOperation` call of the `google::longrunning::Operations` service.", +"id": "GoogleCloudVideointelligenceV1p1beta1_AnnotateVideoResponse", +"properties": { +"annotationResults": { +"description": "Annotation results for all videos specified in `AnnotateVideoRequest`.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p1beta1_VideoAnnotationResults" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p1beta1_DetectedAttribute": { +"description": "A generic detected attribute represented by name in string format.", +"id": "GoogleCloudVideointelligenceV1p1beta1_DetectedAttribute", +"properties": { +"confidence": { +"description": "Detected attribute confidence. Range [0, 1].", +"format": "float", +"type": "number" +}, +"name": { +"description": "The name of the attribute, for example, glasses, dark_glasses, mouth_open. A full list of supported type names will be provided in the document.", +"type": "string" +}, +"value": { +"description": "Text value of the detection result. For example, the value for \"HairColor\" can be \"black\", \"blonde\", etc.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p1beta1_DetectedLandmark": { +"description": "A generic detected landmark represented by name in string format and a 2D location.", +"id": "GoogleCloudVideointelligenceV1p1beta1_DetectedLandmark", +"properties": { +"confidence": { +"description": "The confidence score of the detected landmark. Range [0, 1].", +"format": "float", +"type": "number" +}, +"name": { +"description": "The name of this landmark, for example, left_hand, right_shoulder.", +"type": "string" +}, +"point": { +"$ref": "GoogleCloudVideointelligenceV1p1beta1_NormalizedVertex", +"description": "The 2D point of the detected landmark using the normalized image coordindate system. The normalized coordinates have the range from 0 to 1." +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p1beta1_Entity": { +"description": "Detected entity from video analysis.", +"id": "GoogleCloudVideointelligenceV1p1beta1_Entity", +"properties": { +"description": { +"description": "Textual description, e.g., `Fixed-gear bicycle`.", +"type": "string" +}, +"entityId": { +"description": "Opaque entity ID. Some IDs may be available in [Google Knowledge Graph Search API](https://developers.google.com/knowledge-graph/).", +"type": "string" +}, +"languageCode": { +"description": "Language code for `description` in BCP-47 format.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p1beta1_ExplicitContentAnnotation": { +"description": "Explicit content annotation (based on per-frame visual signals only). If no explicit content has been detected in a frame, no annotations are present for that frame.", +"id": "GoogleCloudVideointelligenceV1p1beta1_ExplicitContentAnnotation", +"properties": { +"frames": { +"description": "All video frames where explicit content was detected.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p1beta1_ExplicitContentFrame" +}, +"type": "array" +}, +"version": { +"description": "Feature version.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p1beta1_ExplicitContentFrame": { +"description": "Video frame level annotation results for explicit content.", +"id": "GoogleCloudVideointelligenceV1p1beta1_ExplicitContentFrame", +"properties": { +"pornographyLikelihood": { +"description": "Likelihood of the pornography content..", +"enum": [ +"LIKELIHOOD_UNSPECIFIED", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unspecified likelihood.", +"Very unlikely.", +"Unlikely.", +"Possible.", +"Likely.", +"Very likely." +], +"type": "string" +}, +"timeOffset": { +"description": "Time-offset, relative to the beginning of the video, corresponding to the video frame for this location.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p1beta1_FaceAnnotation": { +"deprecated": true, +"description": "Deprecated. No effect.", +"id": "GoogleCloudVideointelligenceV1p1beta1_FaceAnnotation", +"properties": { +"frames": { +"description": "All video frames where a face was detected.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p1beta1_FaceFrame" +}, +"type": "array" +}, +"segments": { +"description": "All video segments where a face was detected.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p1beta1_FaceSegment" +}, +"type": "array" +}, +"thumbnail": { +"description": "Thumbnail of a representative face view (in JPEG format).", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p1beta1_FaceDetectionAnnotation": { +"description": "Face detection annotation.", +"id": "GoogleCloudVideointelligenceV1p1beta1_FaceDetectionAnnotation", +"properties": { +"thumbnail": { +"description": "The thumbnail of a person's face.", +"format": "byte", +"type": "string" +}, +"tracks": { +"description": "The face tracks with attributes.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p1beta1_Track" +}, +"type": "array" +}, +"version": { +"description": "Feature version.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p1beta1_FaceFrame": { +"deprecated": true, +"description": "Deprecated. No effect.", +"id": "GoogleCloudVideointelligenceV1p1beta1_FaceFrame", +"properties": { +"normalizedBoundingBoxes": { +"description": "Normalized Bounding boxes in a frame. There can be more than one boxes if the same face is detected in multiple locations within the current frame.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p1beta1_NormalizedBoundingBox" +}, +"type": "array" +}, +"timeOffset": { +"description": "Time-offset, relative to the beginning of the video, corresponding to the video frame for this location.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p1beta1_FaceSegment": { +"description": "Video segment level annotation results for face detection.", +"id": "GoogleCloudVideointelligenceV1p1beta1_FaceSegment", +"properties": { +"segment": { +"$ref": "GoogleCloudVideointelligenceV1p1beta1_VideoSegment", +"description": "Video segment where a face was detected." +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p1beta1_LabelAnnotation": { +"description": "Label annotation.", +"id": "GoogleCloudVideointelligenceV1p1beta1_LabelAnnotation", +"properties": { +"categoryEntities": { +"description": "Common categories for the detected entity. For example, when the label is `Terrier`, the category is likely `dog`. And in some cases there might be more than one categories e.g., `Terrier` could also be a `pet`.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p1beta1_Entity" +}, +"type": "array" +}, +"entity": { +"$ref": "GoogleCloudVideointelligenceV1p1beta1_Entity", +"description": "Detected entity." +}, +"frames": { +"description": "All video frames where a label was detected.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p1beta1_LabelFrame" +}, +"type": "array" +}, +"segments": { +"description": "All video segments where a label was detected.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p1beta1_LabelSegment" +}, +"type": "array" +}, +"version": { +"description": "Feature version.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p1beta1_LabelFrame": { +"description": "Video frame level annotation results for label detection.", +"id": "GoogleCloudVideointelligenceV1p1beta1_LabelFrame", +"properties": { +"confidence": { +"description": "Confidence that the label is accurate. Range: [0, 1].", +"format": "float", +"type": "number" +}, +"timeOffset": { +"description": "Time-offset, relative to the beginning of the video, corresponding to the video frame for this location.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p1beta1_LabelSegment": { +"description": "Video segment level annotation results for label detection.", +"id": "GoogleCloudVideointelligenceV1p1beta1_LabelSegment", +"properties": { +"confidence": { +"description": "Confidence that the label is accurate. Range: [0, 1].", +"format": "float", +"type": "number" +}, +"segment": { +"$ref": "GoogleCloudVideointelligenceV1p1beta1_VideoSegment", +"description": "Video segment where a label was detected." +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p1beta1_LogoRecognitionAnnotation": { +"description": "Annotation corresponding to one detected, tracked and recognized logo class.", +"id": "GoogleCloudVideointelligenceV1p1beta1_LogoRecognitionAnnotation", +"properties": { +"entity": { +"$ref": "GoogleCloudVideointelligenceV1p1beta1_Entity", +"description": "Entity category information to specify the logo class that all the logo tracks within this LogoRecognitionAnnotation are recognized as." +}, +"segments": { +"description": "All video segments where the recognized logo appears. There might be multiple instances of the same logo class appearing in one VideoSegment.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p1beta1_VideoSegment" +}, +"type": "array" +}, +"tracks": { +"description": "All logo tracks where the recognized logo appears. Each track corresponds to one logo instance appearing in consecutive frames.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p1beta1_Track" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p1beta1_NormalizedBoundingBox": { +"description": "Normalized bounding box. The normalized vertex coordinates are relative to the original image. Range: [0, 1].", +"id": "GoogleCloudVideointelligenceV1p1beta1_NormalizedBoundingBox", +"properties": { +"bottom": { +"description": "Bottom Y coordinate.", +"format": "float", +"type": "number" +}, +"left": { +"description": "Left X coordinate.", +"format": "float", +"type": "number" +}, +"right": { +"description": "Right X coordinate.", +"format": "float", +"type": "number" +}, +"top": { +"description": "Top Y coordinate.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p1beta1_NormalizedBoundingPoly": { +"description": "Normalized bounding polygon for text (that might not be aligned with axis). Contains list of the corner points in clockwise order starting from top-left corner. For example, for a rectangular bounding box: When the text is horizontal it might look like: 0----1 | | 3----2 When it's clockwise 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). Note that values can be less than 0, or greater than 1 due to trignometric calculations for location of the box.", +"id": "GoogleCloudVideointelligenceV1p1beta1_NormalizedBoundingPoly", +"properties": { +"vertices": { +"description": "Normalized vertices of the bounding polygon.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p1beta1_NormalizedVertex" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p1beta1_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": "GoogleCloudVideointelligenceV1p1beta1_NormalizedVertex", +"properties": { +"x": { +"description": "X coordinate.", +"format": "float", +"type": "number" +}, +"y": { +"description": "Y coordinate.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p1beta1_ObjectTrackingAnnotation": { +"description": "Annotations corresponding to one tracked object.", +"id": "GoogleCloudVideointelligenceV1p1beta1_ObjectTrackingAnnotation", +"properties": { +"confidence": { +"description": "Object category's labeling confidence of this track.", +"format": "float", +"type": "number" +}, +"entity": { +"$ref": "GoogleCloudVideointelligenceV1p1beta1_Entity", +"description": "Entity to specify the object category that this track is labeled as." +}, +"frames": { +"description": "Information corresponding to all frames where this object track appears. Non-streaming batch mode: it may be one or multiple ObjectTrackingFrame messages in frames. Streaming mode: it can only be one ObjectTrackingFrame message in frames.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p1beta1_ObjectTrackingFrame" +}, +"type": "array" +}, +"segment": { +"$ref": "GoogleCloudVideointelligenceV1p1beta1_VideoSegment", +"description": "Non-streaming batch mode ONLY. Each object track corresponds to one video segment where it appears." +}, +"trackId": { +"description": "Streaming mode ONLY. In streaming mode, we do not know the end time of a tracked object before it is completed. Hence, there is no VideoSegment info returned. Instead, we provide a unique identifiable integer track_id so that the customers can correlate the results of the ongoing ObjectTrackAnnotation of the same track_id over time.", +"format": "int64", +"type": "string" +}, +"version": { +"description": "Feature version.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p1beta1_ObjectTrackingFrame": { +"description": "Video frame level annotations for object detection and tracking. This field stores per frame location, time offset, and confidence.", +"id": "GoogleCloudVideointelligenceV1p1beta1_ObjectTrackingFrame", +"properties": { +"normalizedBoundingBox": { +"$ref": "GoogleCloudVideointelligenceV1p1beta1_NormalizedBoundingBox", +"description": "The normalized bounding box location of this object track for the frame." +}, +"timeOffset": { +"description": "The timestamp of the frame in microseconds.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p1beta1_PersonDetectionAnnotation": { +"description": "Person detection annotation per video.", +"id": "GoogleCloudVideointelligenceV1p1beta1_PersonDetectionAnnotation", +"properties": { +"tracks": { +"description": "The detected tracks of a person.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p1beta1_Track" +}, +"type": "array" +}, +"version": { +"description": "Feature version.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p1beta1_SpeechRecognitionAlternative": { +"description": "Alternative hypotheses (a.k.a. n-best list).", +"id": "GoogleCloudVideointelligenceV1p1beta1_SpeechRecognitionAlternative", +"properties": { +"confidence": { +"description": "Output only. The confidence estimate between 0.0 and 1.0. A higher number indicates an estimated greater likelihood that the recognized words are correct. This field is set only for the top alternative. This field is not guaranteed to be accurate and users should not rely on it to be always provided. The default of 0.0 is a sentinel value indicating `confidence` was not set.", +"format": "float", +"readOnly": true, +"type": "number" +}, +"transcript": { +"description": "Transcript text representing the words that the user spoke.", +"type": "string" +}, +"words": { +"description": "Output only. A list of word-specific information for each recognized word. Note: When `enable_speaker_diarization` is set to true, you will see all the words from the beginning of the audio.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p1beta1_WordInfo" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p1beta1_SpeechTranscription": { +"description": "A speech recognition result corresponding to a portion of the audio.", +"id": "GoogleCloudVideointelligenceV1p1beta1_SpeechTranscription", +"properties": { +"alternatives": { +"description": "May contain one or more recognition hypotheses (up to the maximum specified in `max_alternatives`). These alternatives are ordered in terms of accuracy, with the top (first) alternative being the most probable, as ranked by the recognizer.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p1beta1_SpeechRecognitionAlternative" +}, +"type": "array" +}, +"languageCode": { +"description": "Output only. The [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tag of the language in this result. This language code was detected to have the most likelihood of being spoken in the audio.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p1beta1_TextAnnotation": { +"description": "Annotations related to one detected OCR text snippet. This will contain the corresponding text, confidence value, and frame level information for each detection.", +"id": "GoogleCloudVideointelligenceV1p1beta1_TextAnnotation", +"properties": { +"segments": { +"description": "All video segments where OCR detected text appears.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p1beta1_TextSegment" +}, +"type": "array" +}, +"text": { +"description": "The detected text.", +"type": "string" +}, +"version": { +"description": "Feature version.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p1beta1_TextFrame": { +"description": "Video frame level annotation results for text annotation (OCR). Contains information regarding timestamp and bounding box locations for the frames containing detected OCR text snippets.", +"id": "GoogleCloudVideointelligenceV1p1beta1_TextFrame", +"properties": { +"rotatedBoundingBox": { +"$ref": "GoogleCloudVideointelligenceV1p1beta1_NormalizedBoundingPoly", +"description": "Bounding polygon of the detected text for this frame." +}, +"timeOffset": { +"description": "Timestamp of this frame.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p1beta1_TextSegment": { +"description": "Video segment level annotation results for text detection.", +"id": "GoogleCloudVideointelligenceV1p1beta1_TextSegment", +"properties": { +"confidence": { +"description": "Confidence for the track of detected text. It is calculated as the highest over all frames where OCR detected text appears.", +"format": "float", +"type": "number" +}, +"frames": { +"description": "Information related to the frames where OCR detected text appears.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p1beta1_TextFrame" +}, +"type": "array" +}, +"segment": { +"$ref": "GoogleCloudVideointelligenceV1p1beta1_VideoSegment", +"description": "Video segment where a text snippet was detected." +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p1beta1_TimestampedObject": { +"description": "For tracking related features. An object at time_offset with attributes, and located with normalized_bounding_box.", +"id": "GoogleCloudVideointelligenceV1p1beta1_TimestampedObject", +"properties": { +"attributes": { +"description": "Optional. The attributes of the object in the bounding box.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p1beta1_DetectedAttribute" +}, +"type": "array" +}, +"landmarks": { +"description": "Optional. The detected landmarks.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p1beta1_DetectedLandmark" +}, +"type": "array" +}, +"normalizedBoundingBox": { +"$ref": "GoogleCloudVideointelligenceV1p1beta1_NormalizedBoundingBox", +"description": "Normalized Bounding box in a frame, where the object is located." +}, +"timeOffset": { +"description": "Time-offset, relative to the beginning of the video, corresponding to the video frame for this object.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p1beta1_Track": { +"description": "A track of an object instance.", +"id": "GoogleCloudVideointelligenceV1p1beta1_Track", +"properties": { +"attributes": { +"description": "Optional. Attributes in the track level.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p1beta1_DetectedAttribute" +}, +"type": "array" +}, +"confidence": { +"description": "Optional. The confidence score of the tracked object.", +"format": "float", +"type": "number" +}, +"segment": { +"$ref": "GoogleCloudVideointelligenceV1p1beta1_VideoSegment", +"description": "Video segment of a track." +}, +"timestampedObjects": { +"description": "The object with timestamp and attributes per frame in the track.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p1beta1_TimestampedObject" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p1beta1_VideoAnnotationProgress": { +"description": "Annotation progress for a single video.", +"id": "GoogleCloudVideointelligenceV1p1beta1_VideoAnnotationProgress", +"properties": { +"feature": { +"description": "Specifies which feature is being tracked if the request contains more than one feature.", +"enum": [ +"FEATURE_UNSPECIFIED", +"LABEL_DETECTION", +"SHOT_CHANGE_DETECTION", +"EXPLICIT_CONTENT_DETECTION", +"FACE_DETECTION", +"SPEECH_TRANSCRIPTION", +"TEXT_DETECTION", +"OBJECT_TRACKING", +"LOGO_RECOGNITION", +"PERSON_DETECTION" +], +"enumDescriptions": [ +"Unspecified.", +"Label detection. Detect objects, such as dog or flower.", +"Shot change detection.", +"Explicit content detection.", +"Human face detection.", +"Speech transcription.", +"OCR text detection and tracking.", +"Object detection and tracking.", +"Logo detection, tracking, and recognition.", +"Person detection." +], +"type": "string" +}, +"inputUri": { +"description": "Video file location in [Cloud Storage](https://cloud.google.com/storage/).", +"type": "string" +}, +"progressPercent": { +"description": "Approximate percentage processed thus far. Guaranteed to be 100 when fully processed.", +"format": "int32", +"type": "integer" +}, +"segment": { +"$ref": "GoogleCloudVideointelligenceV1p1beta1_VideoSegment", +"description": "Specifies which segment is being tracked if the request contains more than one segment." +}, +"startTime": { +"description": "Time when the request was received.", +"format": "google-datetime", +"type": "string" +}, +"updateTime": { +"description": "Time of the most recent update.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p1beta1_VideoAnnotationResults": { +"description": "Annotation results for a single video.", +"id": "GoogleCloudVideointelligenceV1p1beta1_VideoAnnotationResults", +"properties": { +"error": { +"$ref": "GoogleRpc_Status", +"description": "If set, indicates an error. Note that for a single `AnnotateVideoRequest` some videos may succeed and some may fail." +}, +"explicitAnnotation": { +"$ref": "GoogleCloudVideointelligenceV1p1beta1_ExplicitContentAnnotation", +"description": "Explicit content annotation." +}, +"faceAnnotations": { +"deprecated": true, +"description": "Deprecated. Please use `face_detection_annotations` instead.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p1beta1_FaceAnnotation" +}, +"type": "array" +}, +"faceDetectionAnnotations": { +"description": "Face detection annotations.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p1beta1_FaceDetectionAnnotation" +}, +"type": "array" +}, +"frameLabelAnnotations": { +"description": "Label annotations on frame level. There is exactly one element for each unique label.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p1beta1_LabelAnnotation" +}, +"type": "array" +}, +"inputUri": { +"description": "Video file location in [Cloud Storage](https://cloud.google.com/storage/).", +"type": "string" +}, +"logoRecognitionAnnotations": { +"description": "Annotations for list of logos detected, tracked and recognized in video.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p1beta1_LogoRecognitionAnnotation" +}, +"type": "array" +}, +"objectAnnotations": { +"description": "Annotations for list of objects detected and tracked in video.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p1beta1_ObjectTrackingAnnotation" +}, +"type": "array" +}, +"personDetectionAnnotations": { +"description": "Person detection annotations.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p1beta1_PersonDetectionAnnotation" +}, +"type": "array" +}, +"segment": { +"$ref": "GoogleCloudVideointelligenceV1p1beta1_VideoSegment", +"description": "Video segment on which the annotation is run." +}, +"segmentLabelAnnotations": { +"description": "Topical label annotations on video level or user-specified segment level. There is exactly one element for each unique label.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p1beta1_LabelAnnotation" +}, +"type": "array" +}, +"segmentPresenceLabelAnnotations": { +"description": "Presence label annotations on video level or user-specified segment level. There is exactly one element for each unique label. Compared to the existing topical `segment_label_annotations`, this field presents more fine-grained, segment-level labels detected in video content and is made available only when the client sets `LabelDetectionConfig.model` to \"builtin/latest\" in the request.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p1beta1_LabelAnnotation" +}, +"type": "array" +}, +"shotAnnotations": { +"description": "Shot annotations. Each shot is represented as a video segment.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p1beta1_VideoSegment" +}, +"type": "array" +}, +"shotLabelAnnotations": { +"description": "Topical label annotations on shot level. There is exactly one element for each unique label.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p1beta1_LabelAnnotation" +}, +"type": "array" +}, +"shotPresenceLabelAnnotations": { +"description": "Presence label annotations on shot level. There is exactly one element for each unique label. Compared to the existing topical `shot_label_annotations`, this field presents more fine-grained, shot-level labels detected in video content and is made available only when the client sets `LabelDetectionConfig.model` to \"builtin/latest\" in the request.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p1beta1_LabelAnnotation" +}, +"type": "array" +}, +"speechTranscriptions": { +"description": "Speech transcription.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p1beta1_SpeechTranscription" +}, +"type": "array" +}, +"textAnnotations": { +"description": "OCR text detection and tracking. Annotations for list of detected text snippets. Each will have list of frame information associated with it.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p1beta1_TextAnnotation" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p1beta1_VideoSegment": { +"description": "Video segment.", +"id": "GoogleCloudVideointelligenceV1p1beta1_VideoSegment", +"properties": { +"endTimeOffset": { +"description": "Time-offset, relative to the beginning of the video, corresponding to the end of the segment (inclusive).", +"format": "google-duration", +"type": "string" +}, +"startTimeOffset": { +"description": "Time-offset, relative to the beginning of the video, corresponding to the start of the segment (inclusive).", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p1beta1_WordInfo": { +"description": "Word-specific information for recognized words. Word information is only included in the response when certain request parameters are set, such as `enable_word_time_offsets`.", +"id": "GoogleCloudVideointelligenceV1p1beta1_WordInfo", +"properties": { +"confidence": { +"description": "Output only. The confidence estimate between 0.0 and 1.0. A higher number indicates an estimated greater likelihood that the recognized words are correct. This field is set only for the top alternative. This field is not guaranteed to be accurate and users should not rely on it to be always provided. The default of 0.0 is a sentinel value indicating `confidence` was not set.", +"format": "float", +"readOnly": true, +"type": "number" +}, +"endTime": { +"description": "Time offset relative to the beginning of the audio, and corresponding to the end of the spoken word. This field is only set if `enable_word_time_offsets=true` and only in the top hypothesis. This is an experimental feature and the accuracy of the time offset can vary.", +"format": "google-duration", +"type": "string" +}, +"speakerTag": { +"description": "Output only. A distinct integer value is assigned for every speaker within the audio. This field specifies which one of those speakers was detected to have spoken this word. Value ranges from 1 up to diarization_speaker_count, and is only set if speaker diarization is enabled.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"startTime": { +"description": "Time offset relative to the beginning of the audio, and corresponding to the start of the spoken word. This field is only set if `enable_word_time_offsets=true` and only in the top hypothesis. This is an experimental feature and the accuracy of the time offset can vary.", +"format": "google-duration", +"type": "string" +}, +"word": { +"description": "The word corresponding to this set of information.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p2beta1_AnnotateVideoProgress": { +"description": "Video annotation progress. Included in the `metadata` field of the `Operation` returned by the `GetOperation` call of the `google::longrunning::Operations` service.", +"id": "GoogleCloudVideointelligenceV1p2beta1_AnnotateVideoProgress", +"properties": { +"annotationProgress": { +"description": "Progress metadata for all videos specified in `AnnotateVideoRequest`.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p2beta1_VideoAnnotationProgress" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p2beta1_AnnotateVideoResponse": { +"description": "Video annotation response. Included in the `response` field of the `Operation` returned by the `GetOperation` call of the `google::longrunning::Operations` service.", +"id": "GoogleCloudVideointelligenceV1p2beta1_AnnotateVideoResponse", +"properties": { +"annotationResults": { +"description": "Annotation results for all videos specified in `AnnotateVideoRequest`.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p2beta1_VideoAnnotationResults" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p2beta1_DetectedAttribute": { +"description": "A generic detected attribute represented by name in string format.", +"id": "GoogleCloudVideointelligenceV1p2beta1_DetectedAttribute", +"properties": { +"confidence": { +"description": "Detected attribute confidence. Range [0, 1].", +"format": "float", +"type": "number" +}, +"name": { +"description": "The name of the attribute, for example, glasses, dark_glasses, mouth_open. A full list of supported type names will be provided in the document.", +"type": "string" +}, +"value": { +"description": "Text value of the detection result. For example, the value for \"HairColor\" can be \"black\", \"blonde\", etc.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p2beta1_DetectedLandmark": { +"description": "A generic detected landmark represented by name in string format and a 2D location.", +"id": "GoogleCloudVideointelligenceV1p2beta1_DetectedLandmark", +"properties": { +"confidence": { +"description": "The confidence score of the detected landmark. Range [0, 1].", +"format": "float", +"type": "number" +}, +"name": { +"description": "The name of this landmark, for example, left_hand, right_shoulder.", +"type": "string" +}, +"point": { +"$ref": "GoogleCloudVideointelligenceV1p2beta1_NormalizedVertex", +"description": "The 2D point of the detected landmark using the normalized image coordindate system. The normalized coordinates have the range from 0 to 1." +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p2beta1_Entity": { +"description": "Detected entity from video analysis.", +"id": "GoogleCloudVideointelligenceV1p2beta1_Entity", +"properties": { +"description": { +"description": "Textual description, e.g., `Fixed-gear bicycle`.", +"type": "string" +}, +"entityId": { +"description": "Opaque entity ID. Some IDs may be available in [Google Knowledge Graph Search API](https://developers.google.com/knowledge-graph/).", +"type": "string" +}, +"languageCode": { +"description": "Language code for `description` in BCP-47 format.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p2beta1_ExplicitContentAnnotation": { +"description": "Explicit content annotation (based on per-frame visual signals only). If no explicit content has been detected in a frame, no annotations are present for that frame.", +"id": "GoogleCloudVideointelligenceV1p2beta1_ExplicitContentAnnotation", +"properties": { +"frames": { +"description": "All video frames where explicit content was detected.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p2beta1_ExplicitContentFrame" +}, +"type": "array" +}, +"version": { +"description": "Feature version.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p2beta1_ExplicitContentFrame": { +"description": "Video frame level annotation results for explicit content.", +"id": "GoogleCloudVideointelligenceV1p2beta1_ExplicitContentFrame", +"properties": { +"pornographyLikelihood": { +"description": "Likelihood of the pornography content..", +"enum": [ +"LIKELIHOOD_UNSPECIFIED", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unspecified likelihood.", +"Very unlikely.", +"Unlikely.", +"Possible.", +"Likely.", +"Very likely." +], +"type": "string" +}, +"timeOffset": { +"description": "Time-offset, relative to the beginning of the video, corresponding to the video frame for this location.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p2beta1_FaceAnnotation": { +"deprecated": true, +"description": "Deprecated. No effect.", +"id": "GoogleCloudVideointelligenceV1p2beta1_FaceAnnotation", +"properties": { +"frames": { +"description": "All video frames where a face was detected.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p2beta1_FaceFrame" +}, +"type": "array" +}, +"segments": { +"description": "All video segments where a face was detected.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p2beta1_FaceSegment" +}, +"type": "array" +}, +"thumbnail": { +"description": "Thumbnail of a representative face view (in JPEG format).", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p2beta1_FaceDetectionAnnotation": { +"description": "Face detection annotation.", +"id": "GoogleCloudVideointelligenceV1p2beta1_FaceDetectionAnnotation", +"properties": { +"thumbnail": { +"description": "The thumbnail of a person's face.", +"format": "byte", +"type": "string" +}, +"tracks": { +"description": "The face tracks with attributes.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p2beta1_Track" +}, +"type": "array" +}, +"version": { +"description": "Feature version.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p2beta1_FaceFrame": { +"deprecated": true, +"description": "Deprecated. No effect.", +"id": "GoogleCloudVideointelligenceV1p2beta1_FaceFrame", +"properties": { +"normalizedBoundingBoxes": { +"description": "Normalized Bounding boxes in a frame. There can be more than one boxes if the same face is detected in multiple locations within the current frame.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p2beta1_NormalizedBoundingBox" +}, +"type": "array" +}, +"timeOffset": { +"description": "Time-offset, relative to the beginning of the video, corresponding to the video frame for this location.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p2beta1_FaceSegment": { +"description": "Video segment level annotation results for face detection.", +"id": "GoogleCloudVideointelligenceV1p2beta1_FaceSegment", +"properties": { +"segment": { +"$ref": "GoogleCloudVideointelligenceV1p2beta1_VideoSegment", +"description": "Video segment where a face was detected." +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p2beta1_LabelAnnotation": { +"description": "Label annotation.", +"id": "GoogleCloudVideointelligenceV1p2beta1_LabelAnnotation", +"properties": { +"categoryEntities": { +"description": "Common categories for the detected entity. For example, when the label is `Terrier`, the category is likely `dog`. And in some cases there might be more than one categories e.g., `Terrier` could also be a `pet`.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p2beta1_Entity" +}, +"type": "array" +}, +"entity": { +"$ref": "GoogleCloudVideointelligenceV1p2beta1_Entity", +"description": "Detected entity." +}, +"frames": { +"description": "All video frames where a label was detected.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p2beta1_LabelFrame" +}, +"type": "array" +}, +"segments": { +"description": "All video segments where a label was detected.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p2beta1_LabelSegment" +}, +"type": "array" +}, +"version": { +"description": "Feature version.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p2beta1_LabelFrame": { +"description": "Video frame level annotation results for label detection.", +"id": "GoogleCloudVideointelligenceV1p2beta1_LabelFrame", +"properties": { +"confidence": { +"description": "Confidence that the label is accurate. Range: [0, 1].", +"format": "float", +"type": "number" +}, +"timeOffset": { +"description": "Time-offset, relative to the beginning of the video, corresponding to the video frame for this location.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p2beta1_LabelSegment": { +"description": "Video segment level annotation results for label detection.", +"id": "GoogleCloudVideointelligenceV1p2beta1_LabelSegment", +"properties": { +"confidence": { +"description": "Confidence that the label is accurate. Range: [0, 1].", +"format": "float", +"type": "number" +}, +"segment": { +"$ref": "GoogleCloudVideointelligenceV1p2beta1_VideoSegment", +"description": "Video segment where a label was detected." +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p2beta1_LogoRecognitionAnnotation": { +"description": "Annotation corresponding to one detected, tracked and recognized logo class.", +"id": "GoogleCloudVideointelligenceV1p2beta1_LogoRecognitionAnnotation", +"properties": { +"entity": { +"$ref": "GoogleCloudVideointelligenceV1p2beta1_Entity", +"description": "Entity category information to specify the logo class that all the logo tracks within this LogoRecognitionAnnotation are recognized as." +}, +"segments": { +"description": "All video segments where the recognized logo appears. There might be multiple instances of the same logo class appearing in one VideoSegment.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p2beta1_VideoSegment" +}, +"type": "array" +}, +"tracks": { +"description": "All logo tracks where the recognized logo appears. Each track corresponds to one logo instance appearing in consecutive frames.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p2beta1_Track" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p2beta1_NormalizedBoundingBox": { +"description": "Normalized bounding box. The normalized vertex coordinates are relative to the original image. Range: [0, 1].", +"id": "GoogleCloudVideointelligenceV1p2beta1_NormalizedBoundingBox", +"properties": { +"bottom": { +"description": "Bottom Y coordinate.", +"format": "float", +"type": "number" +}, +"left": { +"description": "Left X coordinate.", +"format": "float", +"type": "number" +}, +"right": { +"description": "Right X coordinate.", +"format": "float", +"type": "number" +}, +"top": { +"description": "Top Y coordinate.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p2beta1_NormalizedBoundingPoly": { +"description": "Normalized bounding polygon for text (that might not be aligned with axis). Contains list of the corner points in clockwise order starting from top-left corner. For example, for a rectangular bounding box: When the text is horizontal it might look like: 0----1 | | 3----2 When it's clockwise 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). Note that values can be less than 0, or greater than 1 due to trignometric calculations for location of the box.", +"id": "GoogleCloudVideointelligenceV1p2beta1_NormalizedBoundingPoly", +"properties": { +"vertices": { +"description": "Normalized vertices of the bounding polygon.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p2beta1_NormalizedVertex" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p2beta1_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": "GoogleCloudVideointelligenceV1p2beta1_NormalizedVertex", +"properties": { +"x": { +"description": "X coordinate.", +"format": "float", +"type": "number" +}, +"y": { +"description": "Y coordinate.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p2beta1_ObjectTrackingAnnotation": { +"description": "Annotations corresponding to one tracked object.", +"id": "GoogleCloudVideointelligenceV1p2beta1_ObjectTrackingAnnotation", +"properties": { +"confidence": { +"description": "Object category's labeling confidence of this track.", +"format": "float", +"type": "number" +}, +"entity": { +"$ref": "GoogleCloudVideointelligenceV1p2beta1_Entity", +"description": "Entity to specify the object category that this track is labeled as." +}, +"frames": { +"description": "Information corresponding to all frames where this object track appears. Non-streaming batch mode: it may be one or multiple ObjectTrackingFrame messages in frames. Streaming mode: it can only be one ObjectTrackingFrame message in frames.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p2beta1_ObjectTrackingFrame" +}, +"type": "array" +}, +"segment": { +"$ref": "GoogleCloudVideointelligenceV1p2beta1_VideoSegment", +"description": "Non-streaming batch mode ONLY. Each object track corresponds to one video segment where it appears." +}, +"trackId": { +"description": "Streaming mode ONLY. In streaming mode, we do not know the end time of a tracked object before it is completed. Hence, there is no VideoSegment info returned. Instead, we provide a unique identifiable integer track_id so that the customers can correlate the results of the ongoing ObjectTrackAnnotation of the same track_id over time.", +"format": "int64", +"type": "string" +}, +"version": { +"description": "Feature version.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p2beta1_ObjectTrackingFrame": { +"description": "Video frame level annotations for object detection and tracking. This field stores per frame location, time offset, and confidence.", +"id": "GoogleCloudVideointelligenceV1p2beta1_ObjectTrackingFrame", +"properties": { +"normalizedBoundingBox": { +"$ref": "GoogleCloudVideointelligenceV1p2beta1_NormalizedBoundingBox", +"description": "The normalized bounding box location of this object track for the frame." +}, +"timeOffset": { +"description": "The timestamp of the frame in microseconds.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p2beta1_PersonDetectionAnnotation": { +"description": "Person detection annotation per video.", +"id": "GoogleCloudVideointelligenceV1p2beta1_PersonDetectionAnnotation", +"properties": { +"tracks": { +"description": "The detected tracks of a person.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p2beta1_Track" +}, +"type": "array" +}, +"version": { +"description": "Feature version.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p2beta1_SpeechRecognitionAlternative": { +"description": "Alternative hypotheses (a.k.a. n-best list).", +"id": "GoogleCloudVideointelligenceV1p2beta1_SpeechRecognitionAlternative", +"properties": { +"confidence": { +"description": "Output only. The confidence estimate between 0.0 and 1.0. A higher number indicates an estimated greater likelihood that the recognized words are correct. This field is set only for the top alternative. This field is not guaranteed to be accurate and users should not rely on it to be always provided. The default of 0.0 is a sentinel value indicating `confidence` was not set.", +"format": "float", +"readOnly": true, +"type": "number" +}, +"transcript": { +"description": "Transcript text representing the words that the user spoke.", +"type": "string" +}, +"words": { +"description": "Output only. A list of word-specific information for each recognized word. Note: When `enable_speaker_diarization` is set to true, you will see all the words from the beginning of the audio.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p2beta1_WordInfo" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p2beta1_SpeechTranscription": { +"description": "A speech recognition result corresponding to a portion of the audio.", +"id": "GoogleCloudVideointelligenceV1p2beta1_SpeechTranscription", +"properties": { +"alternatives": { +"description": "May contain one or more recognition hypotheses (up to the maximum specified in `max_alternatives`). These alternatives are ordered in terms of accuracy, with the top (first) alternative being the most probable, as ranked by the recognizer.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p2beta1_SpeechRecognitionAlternative" +}, +"type": "array" +}, +"languageCode": { +"description": "Output only. The [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tag of the language in this result. This language code was detected to have the most likelihood of being spoken in the audio.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p2beta1_TextAnnotation": { +"description": "Annotations related to one detected OCR text snippet. This will contain the corresponding text, confidence value, and frame level information for each detection.", +"id": "GoogleCloudVideointelligenceV1p2beta1_TextAnnotation", +"properties": { +"segments": { +"description": "All video segments where OCR detected text appears.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p2beta1_TextSegment" +}, +"type": "array" +}, +"text": { +"description": "The detected text.", +"type": "string" +}, +"version": { +"description": "Feature version.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p2beta1_TextFrame": { +"description": "Video frame level annotation results for text annotation (OCR). Contains information regarding timestamp and bounding box locations for the frames containing detected OCR text snippets.", +"id": "GoogleCloudVideointelligenceV1p2beta1_TextFrame", +"properties": { +"rotatedBoundingBox": { +"$ref": "GoogleCloudVideointelligenceV1p2beta1_NormalizedBoundingPoly", +"description": "Bounding polygon of the detected text for this frame." +}, +"timeOffset": { +"description": "Timestamp of this frame.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p2beta1_TextSegment": { +"description": "Video segment level annotation results for text detection.", +"id": "GoogleCloudVideointelligenceV1p2beta1_TextSegment", +"properties": { +"confidence": { +"description": "Confidence for the track of detected text. It is calculated as the highest over all frames where OCR detected text appears.", +"format": "float", +"type": "number" +}, +"frames": { +"description": "Information related to the frames where OCR detected text appears.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p2beta1_TextFrame" +}, +"type": "array" +}, +"segment": { +"$ref": "GoogleCloudVideointelligenceV1p2beta1_VideoSegment", +"description": "Video segment where a text snippet was detected." +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p2beta1_TimestampedObject": { +"description": "For tracking related features. An object at time_offset with attributes, and located with normalized_bounding_box.", +"id": "GoogleCloudVideointelligenceV1p2beta1_TimestampedObject", +"properties": { +"attributes": { +"description": "Optional. The attributes of the object in the bounding box.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p2beta1_DetectedAttribute" +}, +"type": "array" +}, +"landmarks": { +"description": "Optional. The detected landmarks.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p2beta1_DetectedLandmark" +}, +"type": "array" +}, +"normalizedBoundingBox": { +"$ref": "GoogleCloudVideointelligenceV1p2beta1_NormalizedBoundingBox", +"description": "Normalized Bounding box in a frame, where the object is located." +}, +"timeOffset": { +"description": "Time-offset, relative to the beginning of the video, corresponding to the video frame for this object.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p2beta1_Track": { +"description": "A track of an object instance.", +"id": "GoogleCloudVideointelligenceV1p2beta1_Track", +"properties": { +"attributes": { +"description": "Optional. Attributes in the track level.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p2beta1_DetectedAttribute" +}, +"type": "array" +}, +"confidence": { +"description": "Optional. The confidence score of the tracked object.", +"format": "float", +"type": "number" +}, +"segment": { +"$ref": "GoogleCloudVideointelligenceV1p2beta1_VideoSegment", +"description": "Video segment of a track." +}, +"timestampedObjects": { +"description": "The object with timestamp and attributes per frame in the track.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p2beta1_TimestampedObject" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p2beta1_VideoAnnotationProgress": { +"description": "Annotation progress for a single video.", +"id": "GoogleCloudVideointelligenceV1p2beta1_VideoAnnotationProgress", +"properties": { +"feature": { +"description": "Specifies which feature is being tracked if the request contains more than one feature.", +"enum": [ +"FEATURE_UNSPECIFIED", +"LABEL_DETECTION", +"SHOT_CHANGE_DETECTION", +"EXPLICIT_CONTENT_DETECTION", +"FACE_DETECTION", +"SPEECH_TRANSCRIPTION", +"TEXT_DETECTION", +"OBJECT_TRACKING", +"LOGO_RECOGNITION", +"PERSON_DETECTION" +], +"enumDescriptions": [ +"Unspecified.", +"Label detection. Detect objects, such as dog or flower.", +"Shot change detection.", +"Explicit content detection.", +"Human face detection.", +"Speech transcription.", +"OCR text detection and tracking.", +"Object detection and tracking.", +"Logo detection, tracking, and recognition.", +"Person detection." +], +"type": "string" +}, +"inputUri": { +"description": "Video file location in [Cloud Storage](https://cloud.google.com/storage/).", +"type": "string" +}, +"progressPercent": { +"description": "Approximate percentage processed thus far. Guaranteed to be 100 when fully processed.", +"format": "int32", +"type": "integer" +}, +"segment": { +"$ref": "GoogleCloudVideointelligenceV1p2beta1_VideoSegment", +"description": "Specifies which segment is being tracked if the request contains more than one segment." +}, +"startTime": { +"description": "Time when the request was received.", +"format": "google-datetime", +"type": "string" +}, +"updateTime": { +"description": "Time of the most recent update.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p2beta1_VideoAnnotationResults": { +"description": "Annotation results for a single video.", +"id": "GoogleCloudVideointelligenceV1p2beta1_VideoAnnotationResults", +"properties": { +"error": { +"$ref": "GoogleRpc_Status", +"description": "If set, indicates an error. Note that for a single `AnnotateVideoRequest` some videos may succeed and some may fail." +}, +"explicitAnnotation": { +"$ref": "GoogleCloudVideointelligenceV1p2beta1_ExplicitContentAnnotation", +"description": "Explicit content annotation." +}, +"faceAnnotations": { +"deprecated": true, +"description": "Deprecated. Please use `face_detection_annotations` instead.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p2beta1_FaceAnnotation" +}, +"type": "array" +}, +"faceDetectionAnnotations": { +"description": "Face detection annotations.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p2beta1_FaceDetectionAnnotation" +}, +"type": "array" +}, +"frameLabelAnnotations": { +"description": "Label annotations on frame level. There is exactly one element for each unique label.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p2beta1_LabelAnnotation" +}, +"type": "array" +}, +"inputUri": { +"description": "Video file location in [Cloud Storage](https://cloud.google.com/storage/).", +"type": "string" +}, +"logoRecognitionAnnotations": { +"description": "Annotations for list of logos detected, tracked and recognized in video.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p2beta1_LogoRecognitionAnnotation" +}, +"type": "array" +}, +"objectAnnotations": { +"description": "Annotations for list of objects detected and tracked in video.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p2beta1_ObjectTrackingAnnotation" +}, +"type": "array" +}, +"personDetectionAnnotations": { +"description": "Person detection annotations.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p2beta1_PersonDetectionAnnotation" +}, +"type": "array" +}, +"segment": { +"$ref": "GoogleCloudVideointelligenceV1p2beta1_VideoSegment", +"description": "Video segment on which the annotation is run." +}, +"segmentLabelAnnotations": { +"description": "Topical label annotations on video level or user-specified segment level. There is exactly one element for each unique label.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p2beta1_LabelAnnotation" +}, +"type": "array" +}, +"segmentPresenceLabelAnnotations": { +"description": "Presence label annotations on video level or user-specified segment level. There is exactly one element for each unique label. Compared to the existing topical `segment_label_annotations`, this field presents more fine-grained, segment-level labels detected in video content and is made available only when the client sets `LabelDetectionConfig.model` to \"builtin/latest\" in the request.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p2beta1_LabelAnnotation" +}, +"type": "array" +}, +"shotAnnotations": { +"description": "Shot annotations. Each shot is represented as a video segment.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p2beta1_VideoSegment" +}, +"type": "array" +}, +"shotLabelAnnotations": { +"description": "Topical label annotations on shot level. There is exactly one element for each unique label.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p2beta1_LabelAnnotation" +}, +"type": "array" +}, +"shotPresenceLabelAnnotations": { +"description": "Presence label annotations on shot level. There is exactly one element for each unique label. Compared to the existing topical `shot_label_annotations`, this field presents more fine-grained, shot-level labels detected in video content and is made available only when the client sets `LabelDetectionConfig.model` to \"builtin/latest\" in the request.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p2beta1_LabelAnnotation" +}, +"type": "array" +}, +"speechTranscriptions": { +"description": "Speech transcription.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p2beta1_SpeechTranscription" +}, +"type": "array" +}, +"textAnnotations": { +"description": "OCR text detection and tracking. Annotations for list of detected text snippets. Each will have list of frame information associated with it.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p2beta1_TextAnnotation" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p2beta1_VideoSegment": { +"description": "Video segment.", +"id": "GoogleCloudVideointelligenceV1p2beta1_VideoSegment", +"properties": { +"endTimeOffset": { +"description": "Time-offset, relative to the beginning of the video, corresponding to the end of the segment (inclusive).", +"format": "google-duration", +"type": "string" +}, +"startTimeOffset": { +"description": "Time-offset, relative to the beginning of the video, corresponding to the start of the segment (inclusive).", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p2beta1_WordInfo": { +"description": "Word-specific information for recognized words. Word information is only included in the response when certain request parameters are set, such as `enable_word_time_offsets`.", +"id": "GoogleCloudVideointelligenceV1p2beta1_WordInfo", +"properties": { +"confidence": { +"description": "Output only. The confidence estimate between 0.0 and 1.0. A higher number indicates an estimated greater likelihood that the recognized words are correct. This field is set only for the top alternative. This field is not guaranteed to be accurate and users should not rely on it to be always provided. The default of 0.0 is a sentinel value indicating `confidence` was not set.", +"format": "float", +"readOnly": true, +"type": "number" +}, +"endTime": { +"description": "Time offset relative to the beginning of the audio, and corresponding to the end of the spoken word. This field is only set if `enable_word_time_offsets=true` and only in the top hypothesis. This is an experimental feature and the accuracy of the time offset can vary.", +"format": "google-duration", +"type": "string" +}, +"speakerTag": { +"description": "Output only. A distinct integer value is assigned for every speaker within the audio. This field specifies which one of those speakers was detected to have spoken this word. Value ranges from 1 up to diarization_speaker_count, and is only set if speaker diarization is enabled.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"startTime": { +"description": "Time offset relative to the beginning of the audio, and corresponding to the start of the spoken word. This field is only set if `enable_word_time_offsets=true` and only in the top hypothesis. This is an experimental feature and the accuracy of the time offset can vary.", +"format": "google-duration", +"type": "string" +}, +"word": { +"description": "The word corresponding to this set of information.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p3beta1_AnnotateVideoProgress": { +"description": "Video annotation progress. Included in the `metadata` field of the `Operation` returned by the `GetOperation` call of the `google::longrunning::Operations` service.", +"id": "GoogleCloudVideointelligenceV1p3beta1_AnnotateVideoProgress", +"properties": { +"annotationProgress": { +"description": "Progress metadata for all videos specified in `AnnotateVideoRequest`.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_VideoAnnotationProgress" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p3beta1_AnnotateVideoResponse": { +"description": "Video annotation response. Included in the `response` field of the `Operation` returned by the `GetOperation` call of the `google::longrunning::Operations` service.", +"id": "GoogleCloudVideointelligenceV1p3beta1_AnnotateVideoResponse", +"properties": { +"annotationResults": { +"description": "Annotation results for all videos specified in `AnnotateVideoRequest`.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_VideoAnnotationResults" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p3beta1_Celebrity": { +"description": "Celebrity definition.", +"id": "GoogleCloudVideointelligenceV1p3beta1_Celebrity", +"properties": { +"description": { +"description": "Textual description of additional information about the celebrity, if applicable.", +"type": "string" +}, +"displayName": { +"description": "The celebrity name.", +"type": "string" +}, +"name": { +"description": "The resource name of the celebrity. Have the format `video-intelligence/kg-mid` indicates a celebrity from preloaded gallery. kg-mid is the id in Google knowledge graph, which is unique for the celebrity.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p3beta1_CelebrityRecognitionAnnotation": { +"description": "Celebrity recognition annotation per video.", +"id": "GoogleCloudVideointelligenceV1p3beta1_CelebrityRecognitionAnnotation", +"properties": { +"celebrityTracks": { +"description": "The tracks detected from the input video, including recognized celebrities and other detected faces in the video.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_CelebrityTrack" +}, +"type": "array" +}, +"version": { +"description": "Feature version.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p3beta1_CelebrityTrack": { +"description": "The annotation result of a celebrity face track. RecognizedCelebrity field could be empty if the face track does not have any matched celebrities.", +"id": "GoogleCloudVideointelligenceV1p3beta1_CelebrityTrack", +"properties": { +"celebrities": { +"description": "Top N match of the celebrities for the face in this track.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_RecognizedCelebrity" +}, +"type": "array" +}, +"faceTrack": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_Track", +"description": "A track of a person's face." +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p3beta1_DetectedAttribute": { +"description": "A generic detected attribute represented by name in string format.", +"id": "GoogleCloudVideointelligenceV1p3beta1_DetectedAttribute", +"properties": { +"confidence": { +"description": "Detected attribute confidence. Range [0, 1].", +"format": "float", +"type": "number" +}, +"name": { +"description": "The name of the attribute, for example, glasses, dark_glasses, mouth_open. A full list of supported type names will be provided in the document.", +"type": "string" +}, +"value": { +"description": "Text value of the detection result. For example, the value for \"HairColor\" can be \"black\", \"blonde\", etc.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p3beta1_DetectedLandmark": { +"description": "A generic detected landmark represented by name in string format and a 2D location.", +"id": "GoogleCloudVideointelligenceV1p3beta1_DetectedLandmark", +"properties": { +"confidence": { +"description": "The confidence score of the detected landmark. Range [0, 1].", +"format": "float", +"type": "number" +}, +"name": { +"description": "The name of this landmark, for example, left_hand, right_shoulder.", +"type": "string" +}, +"point": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_NormalizedVertex", +"description": "The 2D point of the detected landmark using the normalized image coordindate system. The normalized coordinates have the range from 0 to 1." +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p3beta1_Entity": { +"description": "Detected entity from video analysis.", +"id": "GoogleCloudVideointelligenceV1p3beta1_Entity", +"properties": { +"description": { +"description": "Textual description, e.g., `Fixed-gear bicycle`.", +"type": "string" +}, +"entityId": { +"description": "Opaque entity ID. Some IDs may be available in [Google Knowledge Graph Search API](https://developers.google.com/knowledge-graph/).", +"type": "string" +}, +"languageCode": { +"description": "Language code for `description` in BCP-47 format.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p3beta1_ExplicitContentAnnotation": { +"description": "Explicit content annotation (based on per-frame visual signals only). If no explicit content has been detected in a frame, no annotations are present for that frame.", +"id": "GoogleCloudVideointelligenceV1p3beta1_ExplicitContentAnnotation", +"properties": { +"frames": { +"description": "All video frames where explicit content was detected.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_ExplicitContentFrame" +}, +"type": "array" +}, +"version": { +"description": "Feature version.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p3beta1_ExplicitContentFrame": { +"description": "Video frame level annotation results for explicit content.", +"id": "GoogleCloudVideointelligenceV1p3beta1_ExplicitContentFrame", +"properties": { +"pornographyLikelihood": { +"description": "Likelihood of the pornography content..", +"enum": [ +"LIKELIHOOD_UNSPECIFIED", +"VERY_UNLIKELY", +"UNLIKELY", +"POSSIBLE", +"LIKELY", +"VERY_LIKELY" +], +"enumDescriptions": [ +"Unspecified likelihood.", +"Very unlikely.", +"Unlikely.", +"Possible.", +"Likely.", +"Very likely." +], +"type": "string" +}, +"timeOffset": { +"description": "Time-offset, relative to the beginning of the video, corresponding to the video frame for this location.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p3beta1_FaceAnnotation": { +"deprecated": true, +"description": "Deprecated. No effect.", +"id": "GoogleCloudVideointelligenceV1p3beta1_FaceAnnotation", +"properties": { +"frames": { +"description": "All video frames where a face was detected.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_FaceFrame" +}, +"type": "array" +}, +"segments": { +"description": "All video segments where a face was detected.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_FaceSegment" +}, +"type": "array" +}, +"thumbnail": { +"description": "Thumbnail of a representative face view (in JPEG format).", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p3beta1_FaceDetectionAnnotation": { +"description": "Face detection annotation.", +"id": "GoogleCloudVideointelligenceV1p3beta1_FaceDetectionAnnotation", +"properties": { +"thumbnail": { +"description": "The thumbnail of a person's face.", +"format": "byte", +"type": "string" +}, +"tracks": { +"description": "The face tracks with attributes.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_Track" +}, +"type": "array" +}, +"version": { +"description": "Feature version.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p3beta1_FaceFrame": { +"deprecated": true, +"description": "Deprecated. No effect.", +"id": "GoogleCloudVideointelligenceV1p3beta1_FaceFrame", +"properties": { +"normalizedBoundingBoxes": { +"description": "Normalized Bounding boxes in a frame. There can be more than one boxes if the same face is detected in multiple locations within the current frame.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_NormalizedBoundingBox" +}, +"type": "array" +}, +"timeOffset": { +"description": "Time-offset, relative to the beginning of the video, corresponding to the video frame for this location.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p3beta1_FaceSegment": { +"description": "Video segment level annotation results for face detection.", +"id": "GoogleCloudVideointelligenceV1p3beta1_FaceSegment", +"properties": { +"segment": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_VideoSegment", +"description": "Video segment where a face was detected." +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p3beta1_LabelAnnotation": { +"description": "Label annotation.", +"id": "GoogleCloudVideointelligenceV1p3beta1_LabelAnnotation", +"properties": { +"categoryEntities": { +"description": "Common categories for the detected entity. For example, when the label is `Terrier`, the category is likely `dog`. And in some cases there might be more than one categories e.g., `Terrier` could also be a `pet`.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_Entity" +}, +"type": "array" +}, +"entity": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_Entity", +"description": "Detected entity." +}, +"frames": { +"description": "All video frames where a label was detected.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_LabelFrame" +}, +"type": "array" +}, +"segments": { +"description": "All video segments where a label was detected.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_LabelSegment" +}, +"type": "array" +}, +"version": { +"description": "Feature version.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p3beta1_LabelFrame": { +"description": "Video frame level annotation results for label detection.", +"id": "GoogleCloudVideointelligenceV1p3beta1_LabelFrame", +"properties": { +"confidence": { +"description": "Confidence that the label is accurate. Range: [0, 1].", +"format": "float", +"type": "number" +}, +"timeOffset": { +"description": "Time-offset, relative to the beginning of the video, corresponding to the video frame for this location.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p3beta1_LabelSegment": { +"description": "Video segment level annotation results for label detection.", +"id": "GoogleCloudVideointelligenceV1p3beta1_LabelSegment", +"properties": { +"confidence": { +"description": "Confidence that the label is accurate. Range: [0, 1].", +"format": "float", +"type": "number" +}, +"segment": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_VideoSegment", +"description": "Video segment where a label was detected." +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p3beta1_LogoRecognitionAnnotation": { +"description": "Annotation corresponding to one detected, tracked and recognized logo class.", +"id": "GoogleCloudVideointelligenceV1p3beta1_LogoRecognitionAnnotation", +"properties": { +"entity": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_Entity", +"description": "Entity category information to specify the logo class that all the logo tracks within this LogoRecognitionAnnotation are recognized as." +}, +"segments": { +"description": "All video segments where the recognized logo appears. There might be multiple instances of the same logo class appearing in one VideoSegment.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_VideoSegment" +}, +"type": "array" +}, +"tracks": { +"description": "All logo tracks where the recognized logo appears. Each track corresponds to one logo instance appearing in consecutive frames.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_Track" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p3beta1_NormalizedBoundingBox": { +"description": "Normalized bounding box. The normalized vertex coordinates are relative to the original image. Range: [0, 1].", +"id": "GoogleCloudVideointelligenceV1p3beta1_NormalizedBoundingBox", +"properties": { +"bottom": { +"description": "Bottom Y coordinate.", +"format": "float", +"type": "number" +}, +"left": { +"description": "Left X coordinate.", +"format": "float", +"type": "number" +}, +"right": { +"description": "Right X coordinate.", +"format": "float", +"type": "number" +}, +"top": { +"description": "Top Y coordinate.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p3beta1_NormalizedBoundingPoly": { +"description": "Normalized bounding polygon for text (that might not be aligned with axis). Contains list of the corner points in clockwise order starting from top-left corner. For example, for a rectangular bounding box: When the text is horizontal it might look like: 0----1 | | 3----2 When it's clockwise 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). Note that values can be less than 0, or greater than 1 due to trignometric calculations for location of the box.", +"id": "GoogleCloudVideointelligenceV1p3beta1_NormalizedBoundingPoly", +"properties": { +"vertices": { +"description": "Normalized vertices of the bounding polygon.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_NormalizedVertex" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p3beta1_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": "GoogleCloudVideointelligenceV1p3beta1_NormalizedVertex", +"properties": { +"x": { +"description": "X coordinate.", +"format": "float", +"type": "number" +}, +"y": { +"description": "Y coordinate.", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p3beta1_ObjectTrackingAnnotation": { +"description": "Annotations corresponding to one tracked object.", +"id": "GoogleCloudVideointelligenceV1p3beta1_ObjectTrackingAnnotation", +"properties": { +"confidence": { +"description": "Object category's labeling confidence of this track.", +"format": "float", +"type": "number" +}, +"entity": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_Entity", +"description": "Entity to specify the object category that this track is labeled as." +}, +"frames": { +"description": "Information corresponding to all frames where this object track appears. Non-streaming batch mode: it may be one or multiple ObjectTrackingFrame messages in frames. Streaming mode: it can only be one ObjectTrackingFrame message in frames.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_ObjectTrackingFrame" +}, +"type": "array" +}, +"segment": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_VideoSegment", +"description": "Non-streaming batch mode ONLY. Each object track corresponds to one video segment where it appears." +}, +"trackId": { +"description": "Streaming mode ONLY. In streaming mode, we do not know the end time of a tracked object before it is completed. Hence, there is no VideoSegment info returned. Instead, we provide a unique identifiable integer track_id so that the customers can correlate the results of the ongoing ObjectTrackAnnotation of the same track_id over time.", +"format": "int64", +"type": "string" +}, +"version": { +"description": "Feature version.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p3beta1_ObjectTrackingFrame": { +"description": "Video frame level annotations for object detection and tracking. This field stores per frame location, time offset, and confidence.", +"id": "GoogleCloudVideointelligenceV1p3beta1_ObjectTrackingFrame", +"properties": { +"normalizedBoundingBox": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_NormalizedBoundingBox", +"description": "The normalized bounding box location of this object track for the frame." +}, +"timeOffset": { +"description": "The timestamp of the frame in microseconds.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p3beta1_PersonDetectionAnnotation": { +"description": "Person detection annotation per video.", +"id": "GoogleCloudVideointelligenceV1p3beta1_PersonDetectionAnnotation", +"properties": { +"tracks": { +"description": "The detected tracks of a person.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_Track" +}, +"type": "array" +}, +"version": { +"description": "Feature version.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p3beta1_RecognizedCelebrity": { +"description": "The recognized celebrity with confidence score.", +"id": "GoogleCloudVideointelligenceV1p3beta1_RecognizedCelebrity", +"properties": { +"celebrity": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_Celebrity", +"description": "The recognized celebrity." +}, +"confidence": { +"description": "Recognition confidence. Range [0, 1].", +"format": "float", +"type": "number" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p3beta1_SpeechRecognitionAlternative": { +"description": "Alternative hypotheses (a.k.a. n-best list).", +"id": "GoogleCloudVideointelligenceV1p3beta1_SpeechRecognitionAlternative", +"properties": { +"confidence": { +"description": "Output only. The confidence estimate between 0.0 and 1.0. A higher number indicates an estimated greater likelihood that the recognized words are correct. This field is set only for the top alternative. This field is not guaranteed to be accurate and users should not rely on it to be always provided. The default of 0.0 is a sentinel value indicating `confidence` was not set.", +"format": "float", +"readOnly": true, +"type": "number" +}, +"transcript": { +"description": "Transcript text representing the words that the user spoke.", +"type": "string" +}, +"words": { +"description": "Output only. A list of word-specific information for each recognized word. Note: When `enable_speaker_diarization` is set to true, you will see all the words from the beginning of the audio.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_WordInfo" +}, +"readOnly": true, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p3beta1_SpeechTranscription": { +"description": "A speech recognition result corresponding to a portion of the audio.", +"id": "GoogleCloudVideointelligenceV1p3beta1_SpeechTranscription", +"properties": { +"alternatives": { +"description": "May contain one or more recognition hypotheses (up to the maximum specified in `max_alternatives`). These alternatives are ordered in terms of accuracy, with the top (first) alternative being the most probable, as ranked by the recognizer.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_SpeechRecognitionAlternative" +}, +"type": "array" +}, +"languageCode": { +"description": "Output only. The [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tag of the language in this result. This language code was detected to have the most likelihood of being spoken in the audio.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p3beta1_StreamingAnnotateVideoResponse": { +"description": "`StreamingAnnotateVideoResponse` is the only message returned to the client by `StreamingAnnotateVideo`. A series of zero or more `StreamingAnnotateVideoResponse` messages are streamed back to the client.", +"id": "GoogleCloudVideointelligenceV1p3beta1_StreamingAnnotateVideoResponse", +"properties": { +"annotationResults": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_StreamingVideoAnnotationResults", +"description": "Streaming annotation results." +}, +"annotationResultsUri": { +"description": "Google Cloud Storage URI that stores annotation results of one streaming session in JSON format. It is the annotation_result_storage_directory from the request followed by '/cloud_project_number-session_id'.", +"type": "string" +}, +"error": { +"$ref": "GoogleRpc_Status", +"description": "If set, returns a google.rpc.Status message that specifies the error for the operation." +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p3beta1_StreamingVideoAnnotationResults": { +"description": "Streaming annotation results corresponding to a portion of the video that is currently being processed. Only ONE type of annotation will be specified in the response.", +"id": "GoogleCloudVideointelligenceV1p3beta1_StreamingVideoAnnotationResults", +"properties": { +"explicitAnnotation": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_ExplicitContentAnnotation", +"description": "Explicit content annotation results." +}, +"frameTimestamp": { +"description": "Timestamp of the processed frame in microseconds.", +"format": "google-duration", +"type": "string" +}, +"labelAnnotations": { +"description": "Label annotation results.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_LabelAnnotation" +}, +"type": "array" +}, +"objectAnnotations": { +"description": "Object tracking results.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_ObjectTrackingAnnotation" +}, +"type": "array" +}, +"shotAnnotations": { +"description": "Shot annotation results. Each shot is represented as a video segment.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_VideoSegment" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p3beta1_TextAnnotation": { +"description": "Annotations related to one detected OCR text snippet. This will contain the corresponding text, confidence value, and frame level information for each detection.", +"id": "GoogleCloudVideointelligenceV1p3beta1_TextAnnotation", +"properties": { +"segments": { +"description": "All video segments where OCR detected text appears.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_TextSegment" +}, +"type": "array" +}, +"text": { +"description": "The detected text.", +"type": "string" +}, +"version": { +"description": "Feature version.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p3beta1_TextFrame": { +"description": "Video frame level annotation results for text annotation (OCR). Contains information regarding timestamp and bounding box locations for the frames containing detected OCR text snippets.", +"id": "GoogleCloudVideointelligenceV1p3beta1_TextFrame", +"properties": { +"rotatedBoundingBox": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_NormalizedBoundingPoly", +"description": "Bounding polygon of the detected text for this frame." +}, +"timeOffset": { +"description": "Timestamp of this frame.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p3beta1_TextSegment": { +"description": "Video segment level annotation results for text detection.", +"id": "GoogleCloudVideointelligenceV1p3beta1_TextSegment", +"properties": { +"confidence": { +"description": "Confidence for the track of detected text. It is calculated as the highest over all frames where OCR detected text appears.", +"format": "float", +"type": "number" +}, +"frames": { +"description": "Information related to the frames where OCR detected text appears.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_TextFrame" +}, +"type": "array" +}, +"segment": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_VideoSegment", +"description": "Video segment where a text snippet was detected." +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p3beta1_TimestampedObject": { +"description": "For tracking related features. An object at time_offset with attributes, and located with normalized_bounding_box.", +"id": "GoogleCloudVideointelligenceV1p3beta1_TimestampedObject", +"properties": { +"attributes": { +"description": "Optional. The attributes of the object in the bounding box.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_DetectedAttribute" +}, +"type": "array" +}, +"landmarks": { +"description": "Optional. The detected landmarks.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_DetectedLandmark" +}, +"type": "array" +}, +"normalizedBoundingBox": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_NormalizedBoundingBox", +"description": "Normalized Bounding box in a frame, where the object is located." +}, +"timeOffset": { +"description": "Time-offset, relative to the beginning of the video, corresponding to the video frame for this object.", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p3beta1_Track": { +"description": "A track of an object instance.", +"id": "GoogleCloudVideointelligenceV1p3beta1_Track", +"properties": { +"attributes": { +"description": "Optional. Attributes in the track level.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_DetectedAttribute" +}, +"type": "array" +}, +"confidence": { +"description": "Optional. The confidence score of the tracked object.", +"format": "float", +"type": "number" +}, +"segment": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_VideoSegment", +"description": "Video segment of a track." +}, +"timestampedObjects": { +"description": "The object with timestamp and attributes per frame in the track.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_TimestampedObject" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p3beta1_VideoAnnotationProgress": { +"description": "Annotation progress for a single video.", +"id": "GoogleCloudVideointelligenceV1p3beta1_VideoAnnotationProgress", +"properties": { +"feature": { +"description": "Specifies which feature is being tracked if the request contains more than one feature.", +"enum": [ +"FEATURE_UNSPECIFIED", +"LABEL_DETECTION", +"SHOT_CHANGE_DETECTION", +"EXPLICIT_CONTENT_DETECTION", +"FACE_DETECTION", +"SPEECH_TRANSCRIPTION", +"TEXT_DETECTION", +"OBJECT_TRACKING", +"LOGO_RECOGNITION", +"CELEBRITY_RECOGNITION", +"PERSON_DETECTION" +], +"enumDescriptions": [ +"Unspecified.", +"Label detection. Detect objects, such as dog or flower.", +"Shot change detection.", +"Explicit content detection.", +"Human face detection.", +"Speech transcription.", +"OCR text detection and tracking.", +"Object detection and tracking.", +"Logo detection, tracking, and recognition.", +"Celebrity recognition.", +"Person detection." +], +"type": "string" +}, +"inputUri": { +"description": "Video file location in [Cloud Storage](https://cloud.google.com/storage/).", +"type": "string" +}, +"progressPercent": { +"description": "Approximate percentage processed thus far. Guaranteed to be 100 when fully processed.", +"format": "int32", +"type": "integer" +}, +"segment": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_VideoSegment", +"description": "Specifies which segment is being tracked if the request contains more than one segment." +}, +"startTime": { +"description": "Time when the request was received.", +"format": "google-datetime", +"type": "string" +}, +"updateTime": { +"description": "Time of the most recent update.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p3beta1_VideoAnnotationResults": { +"description": "Annotation results for a single video.", +"id": "GoogleCloudVideointelligenceV1p3beta1_VideoAnnotationResults", +"properties": { +"celebrityRecognitionAnnotations": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_CelebrityRecognitionAnnotation", +"description": "Celebrity recognition annotations." +}, +"error": { +"$ref": "GoogleRpc_Status", +"description": "If set, indicates an error. Note that for a single `AnnotateVideoRequest` some videos may succeed and some may fail." +}, +"explicitAnnotation": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_ExplicitContentAnnotation", +"description": "Explicit content annotation." +}, +"faceAnnotations": { +"deprecated": true, +"description": "Deprecated. Please use `face_detection_annotations` instead.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_FaceAnnotation" +}, +"type": "array" +}, +"faceDetectionAnnotations": { +"description": "Face detection annotations.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_FaceDetectionAnnotation" +}, +"type": "array" +}, +"frameLabelAnnotations": { +"description": "Label annotations on frame level. There is exactly one element for each unique label.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_LabelAnnotation" +}, +"type": "array" +}, +"inputUri": { +"description": "Video file location in [Cloud Storage](https://cloud.google.com/storage/).", +"type": "string" +}, +"logoRecognitionAnnotations": { +"description": "Annotations for list of logos detected, tracked and recognized in video.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_LogoRecognitionAnnotation" +}, +"type": "array" +}, +"objectAnnotations": { +"description": "Annotations for list of objects detected and tracked in video.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_ObjectTrackingAnnotation" +}, +"type": "array" +}, +"personDetectionAnnotations": { +"description": "Person detection annotations.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_PersonDetectionAnnotation" +}, +"type": "array" +}, +"segment": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_VideoSegment", +"description": "Video segment on which the annotation is run." +}, +"segmentLabelAnnotations": { +"description": "Topical label annotations on video level or user-specified segment level. There is exactly one element for each unique label.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_LabelAnnotation" +}, +"type": "array" +}, +"segmentPresenceLabelAnnotations": { +"description": "Presence label annotations on video level or user-specified segment level. There is exactly one element for each unique label. Compared to the existing topical `segment_label_annotations`, this field presents more fine-grained, segment-level labels detected in video content and is made available only when the client sets `LabelDetectionConfig.model` to \"builtin/latest\" in the request.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_LabelAnnotation" +}, +"type": "array" +}, +"shotAnnotations": { +"description": "Shot annotations. Each shot is represented as a video segment.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_VideoSegment" +}, +"type": "array" +}, +"shotLabelAnnotations": { +"description": "Topical label annotations on shot level. There is exactly one element for each unique label.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_LabelAnnotation" +}, +"type": "array" +}, +"shotPresenceLabelAnnotations": { +"description": "Presence label annotations on shot level. There is exactly one element for each unique label. Compared to the existing topical `shot_label_annotations`, this field presents more fine-grained, shot-level labels detected in video content and is made available only when the client sets `LabelDetectionConfig.model` to \"builtin/latest\" in the request.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_LabelAnnotation" +}, +"type": "array" +}, +"speechTranscriptions": { +"description": "Speech transcription.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_SpeechTranscription" +}, +"type": "array" +}, +"textAnnotations": { +"description": "OCR text detection and tracking. Annotations for list of detected text snippets. Each will have list of frame information associated with it.", +"items": { +"$ref": "GoogleCloudVideointelligenceV1p3beta1_TextAnnotation" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p3beta1_VideoSegment": { +"description": "Video segment.", +"id": "GoogleCloudVideointelligenceV1p3beta1_VideoSegment", +"properties": { +"endTimeOffset": { +"description": "Time-offset, relative to the beginning of the video, corresponding to the end of the segment (inclusive).", +"format": "google-duration", +"type": "string" +}, +"startTimeOffset": { +"description": "Time-offset, relative to the beginning of the video, corresponding to the start of the segment (inclusive).", +"format": "google-duration", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudVideointelligenceV1p3beta1_WordInfo": { +"description": "Word-specific information for recognized words. Word information is only included in the response when certain request parameters are set, such as `enable_word_time_offsets`.", +"id": "GoogleCloudVideointelligenceV1p3beta1_WordInfo", +"properties": { +"confidence": { +"description": "Output only. The confidence estimate between 0.0 and 1.0. A higher number indicates an estimated greater likelihood that the recognized words are correct. This field is set only for the top alternative. This field is not guaranteed to be accurate and users should not rely on it to be always provided. The default of 0.0 is a sentinel value indicating `confidence` was not set.", +"format": "float", +"readOnly": true, +"type": "number" +}, +"endTime": { +"description": "Time offset relative to the beginning of the audio, and corresponding to the end of the spoken word. This field is only set if `enable_word_time_offsets=true` and only in the top hypothesis. This is an experimental feature and the accuracy of the time offset can vary.", +"format": "google-duration", +"type": "string" +}, +"speakerTag": { +"description": "Output only. A distinct integer value is assigned for every speaker within the audio. This field specifies which one of those speakers was detected to have spoken this word. Value ranges from 1 up to diarization_speaker_count, and is only set if speaker diarization is enabled.", +"format": "int32", +"readOnly": true, +"type": "integer" +}, +"startTime": { +"description": "Time offset relative to the beginning of the audio, and corresponding to the start of the spoken word. This field is only set if `enable_word_time_offsets=true` and only in the top hypothesis. This is an experimental feature and the accuracy of the time offset can vary.", +"format": "google-duration", +"type": "string" +}, +"word": { +"description": "The word corresponding to this set of information.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleLongrunning_CancelOperationRequest": { +"description": "The request message for Operations.CancelOperation.", +"id": "GoogleLongrunning_CancelOperationRequest", +"properties": {}, +"type": "object" +}, +"GoogleLongrunning_ListOperationsResponse": { +"description": "The response message for Operations.ListOperations.", +"id": "GoogleLongrunning_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": "GoogleLongrunning_Operation" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleLongrunning_Operation": { +"description": "This resource represents a long-running operation that is the result of a network API call.", +"id": "GoogleLongrunning_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": "GoogleRpc_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" +}, +"GoogleProtobuf_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": "GoogleProtobuf_Empty", +"properties": {}, +"type": "object" +}, +"GoogleRpc_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": "GoogleRpc_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 Video Intelligence 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.v1p1beta1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/vision.v1p1beta1.json new file mode 100644 index 0000000000000000000000000000000000000000..8af3ea5ba834c8d7b688b435cb78944f437593b8 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/vision.v1p1beta1.json @@ -0,0 +1,8373 @@ +{ +"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:v1p1beta1", +"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": "v1p1beta1/files:annotate", +"httpMethod": "POST", +"id": "vision.files.annotate", +"parameterOrder": [], +"parameters": {}, +"path": "v1p1beta1/files:annotate", +"request": { +"$ref": "GoogleCloudVisionV1p1beta1BatchAnnotateFilesRequest" +}, +"response": { +"$ref": "GoogleCloudVisionV1p1beta1BatchAnnotateFilesResponse" +}, +"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": "v1p1beta1/files:asyncBatchAnnotate", +"httpMethod": "POST", +"id": "vision.files.asyncBatchAnnotate", +"parameterOrder": [], +"parameters": {}, +"path": "v1p1beta1/files:asyncBatchAnnotate", +"request": { +"$ref": "GoogleCloudVisionV1p1beta1AsyncBatchAnnotateFilesRequest" +}, +"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": "v1p1beta1/images:annotate", +"httpMethod": "POST", +"id": "vision.images.annotate", +"parameterOrder": [], +"parameters": {}, +"path": "v1p1beta1/images:annotate", +"request": { +"$ref": "GoogleCloudVisionV1p1beta1BatchAnnotateImagesRequest" +}, +"response": { +"$ref": "GoogleCloudVisionV1p1beta1BatchAnnotateImagesResponse" +}, +"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": "v1p1beta1/images:asyncBatchAnnotate", +"httpMethod": "POST", +"id": "vision.images.asyncBatchAnnotate", +"parameterOrder": [], +"parameters": {}, +"path": "v1p1beta1/images:asyncBatchAnnotate", +"request": { +"$ref": "GoogleCloudVisionV1p1beta1AsyncBatchAnnotateImagesRequest" +}, +"response": { +"$ref": "Operation" +}, +"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": "v1p1beta1/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": "v1p1beta1/{+parent}/files:annotate", +"request": { +"$ref": "GoogleCloudVisionV1p1beta1BatchAnnotateFilesRequest" +}, +"response": { +"$ref": "GoogleCloudVisionV1p1beta1BatchAnnotateFilesResponse" +}, +"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": "v1p1beta1/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": "v1p1beta1/{+parent}/files:asyncBatchAnnotate", +"request": { +"$ref": "GoogleCloudVisionV1p1beta1AsyncBatchAnnotateFilesRequest" +}, +"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": "v1p1beta1/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": "v1p1beta1/{+parent}/images:annotate", +"request": { +"$ref": "GoogleCloudVisionV1p1beta1BatchAnnotateImagesRequest" +}, +"response": { +"$ref": "GoogleCloudVisionV1p1beta1BatchAnnotateImagesResponse" +}, +"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": "v1p1beta1/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": "v1p1beta1/{+parent}/images:asyncBatchAnnotate", +"request": { +"$ref": "GoogleCloudVisionV1p1beta1AsyncBatchAnnotateImagesRequest" +}, +"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": "v1p1beta1/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": "v1p1beta1/{+parent}/files:annotate", +"request": { +"$ref": "GoogleCloudVisionV1p1beta1BatchAnnotateFilesRequest" +}, +"response": { +"$ref": "GoogleCloudVisionV1p1beta1BatchAnnotateFilesResponse" +}, +"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": "v1p1beta1/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": "v1p1beta1/{+parent}/files:asyncBatchAnnotate", +"request": { +"$ref": "GoogleCloudVisionV1p1beta1AsyncBatchAnnotateFilesRequest" +}, +"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": "v1p1beta1/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": "v1p1beta1/{+parent}/images:annotate", +"request": { +"$ref": "GoogleCloudVisionV1p1beta1BatchAnnotateImagesRequest" +}, +"response": { +"$ref": "GoogleCloudVisionV1p1beta1BatchAnnotateImagesResponse" +}, +"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": "v1p1beta1/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": "v1p1beta1/{+parent}/images:asyncBatchAnnotate", +"request": { +"$ref": "GoogleCloudVisionV1p1beta1AsyncBatchAnnotateImagesRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-vision" +] +} +} +} +} +} +} +} +}, +"revision": "20240823", +"rootUrl": "https://vision.googleapis.com/", +"schemas": { +"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" +}, +"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" +}, +"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" +}, +"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" +}, +"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" +}, +"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" +}, +"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" +}, +"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" +}, +"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" +}, +"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" +}, +"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" +}, +"GoogleCloudVisionV1p1beta1AnnotateFileRequest": { +"description": "A request to annotate one single file, e.g. a PDF, TIFF or GIF file.", +"id": "GoogleCloudVisionV1p1beta1AnnotateFileRequest", +"properties": { +"features": { +"description": "Required. Requested features.", +"items": { +"$ref": "GoogleCloudVisionV1p1beta1Feature" +}, +"type": "array" +}, +"imageContext": { +"$ref": "GoogleCloudVisionV1p1beta1ImageContext", +"description": "Additional context that may accompany the image(s) in the file." +}, +"inputConfig": { +"$ref": "GoogleCloudVisionV1p1beta1InputConfig", +"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" +}, +"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" +}, +"GoogleCloudVisionV1p1beta1AnnotateImageRequest": { +"description": "Request for performing Google Cloud Vision API tasks over a user-provided image, with user-requested features, and with context information.", +"id": "GoogleCloudVisionV1p1beta1AnnotateImageRequest", +"properties": { +"features": { +"description": "Requested features.", +"items": { +"$ref": "GoogleCloudVisionV1p1beta1Feature" +}, +"type": "array" +}, +"image": { +"$ref": "GoogleCloudVisionV1p1beta1Image", +"description": "The image to be processed." +}, +"imageContext": { +"$ref": "GoogleCloudVisionV1p1beta1ImageContext", +"description": "Additional context that may accompany the image." +} +}, +"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" +}, +"GoogleCloudVisionV1p1beta1AsyncAnnotateFileRequest": { +"description": "An offline file annotation request.", +"id": "GoogleCloudVisionV1p1beta1AsyncAnnotateFileRequest", +"properties": { +"features": { +"description": "Required. Requested features.", +"items": { +"$ref": "GoogleCloudVisionV1p1beta1Feature" +}, +"type": "array" +}, +"imageContext": { +"$ref": "GoogleCloudVisionV1p1beta1ImageContext", +"description": "Additional context that may accompany the image(s) in the file." +}, +"inputConfig": { +"$ref": "GoogleCloudVisionV1p1beta1InputConfig", +"description": "Required. Information about the input file." +}, +"outputConfig": { +"$ref": "GoogleCloudVisionV1p1beta1OutputConfig", +"description": "Required. The desired output location and metadata (e.g. format)." +} +}, +"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" +}, +"GoogleCloudVisionV1p1beta1AsyncBatchAnnotateFilesRequest": { +"description": "Multiple async file annotation requests are batched into a single service call.", +"id": "GoogleCloudVisionV1p1beta1AsyncBatchAnnotateFilesRequest", +"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": "GoogleCloudVisionV1p1beta1AsyncAnnotateFileRequest" +}, +"type": "array" +} +}, +"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" +}, +"GoogleCloudVisionV1p1beta1AsyncBatchAnnotateImagesRequest": { +"description": "Request for async image annotation for a list of images.", +"id": "GoogleCloudVisionV1p1beta1AsyncBatchAnnotateImagesRequest", +"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": "GoogleCloudVisionV1p1beta1OutputConfig", +"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": "GoogleCloudVisionV1p1beta1AnnotateImageRequest" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p1beta1BatchAnnotateFilesRequest": { +"description": "A list of requests to annotate files using the BatchAnnotateFiles API.", +"id": "GoogleCloudVisionV1p1beta1BatchAnnotateFilesRequest", +"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": "GoogleCloudVisionV1p1beta1AnnotateFileRequest" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p1beta1BatchAnnotateFilesResponse": { +"description": "A list of file annotation responses.", +"id": "GoogleCloudVisionV1p1beta1BatchAnnotateFilesResponse", +"properties": { +"responses": { +"description": "The list of file annotation responses, each response corresponding to each AnnotateFileRequest in BatchAnnotateFilesRequest.", +"items": { +"$ref": "GoogleCloudVisionV1p1beta1AnnotateFileResponse" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p1beta1BatchAnnotateImagesRequest": { +"description": "Multiple image annotation requests are batched into a single service call.", +"id": "GoogleCloudVisionV1p1beta1BatchAnnotateImagesRequest", +"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": "GoogleCloudVisionV1p1beta1AnnotateImageRequest" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p1beta1BatchAnnotateImagesResponse": { +"description": "Response to a batch image annotation request.", +"id": "GoogleCloudVisionV1p1beta1BatchAnnotateImagesResponse", +"properties": { +"responses": { +"description": "Individual responses to image annotation requests within the batch.", +"items": { +"$ref": "GoogleCloudVisionV1p1beta1AnnotateImageResponse" +}, +"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" +}, +"GoogleCloudVisionV1p1beta1CropHintsParams": { +"description": "Parameters for crop hints annotation request.", +"id": "GoogleCloudVisionV1p1beta1CropHintsParams", +"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" +}, +"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" +}, +"GoogleCloudVisionV1p1beta1Feature": { +"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": "GoogleCloudVisionV1p1beta1Feature", +"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" +}, +"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" +}, +"GoogleCloudVisionV1p1beta1Image": { +"description": "Client image to perform Google Cloud Vision API tasks over.", +"id": "GoogleCloudVisionV1p1beta1Image", +"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": "GoogleCloudVisionV1p1beta1ImageSource", +"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" +}, +"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" +}, +"GoogleCloudVisionV1p1beta1ImageContext": { +"description": "Image context and/or feature-specific parameters.", +"id": "GoogleCloudVisionV1p1beta1ImageContext", +"properties": { +"cropHintsParams": { +"$ref": "GoogleCloudVisionV1p1beta1CropHintsParams", +"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": "GoogleCloudVisionV1p1beta1LatLongRect", +"description": "Not used." +}, +"productSearchParams": { +"$ref": "GoogleCloudVisionV1p1beta1ProductSearchParams", +"description": "Parameters for product search." +}, +"textDetectionParams": { +"$ref": "GoogleCloudVisionV1p1beta1TextDetectionParams", +"description": "Parameters for text detection and document text detection." +}, +"webDetectionParams": { +"$ref": "GoogleCloudVisionV1p1beta1WebDetectionParams", +"description": "Parameters for web detection." +} +}, +"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" +}, +"GoogleCloudVisionV1p1beta1ImageSource": { +"description": "External image source (Google Cloud Storage or web URL image location).", +"id": "GoogleCloudVisionV1p1beta1ImageSource", +"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" +}, +"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" +}, +"GoogleCloudVisionV1p1beta1LatLongRect": { +"description": "Rectangle determined by min and max `LatLng` pairs.", +"id": "GoogleCloudVisionV1p1beta1LatLongRect", +"properties": { +"maxLatLng": { +"$ref": "LatLng", +"description": "Max lat/long pair." +}, +"minLatLng": { +"$ref": "LatLng", +"description": "Min lat/long pair." +} +}, +"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" +}, +"GoogleCloudVisionV1p1beta1ProductSearchParams": { +"description": "Parameters for a product search request.", +"id": "GoogleCloudVisionV1p1beta1ProductSearchParams", +"properties": { +"boundingPoly": { +"$ref": "GoogleCloudVisionV1p1beta1BoundingPoly", +"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" +}, +"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" +}, +"GoogleCloudVisionV1p1beta1TextDetectionParams": { +"description": "Parameters for text detections. This is used to control TEXT_DETECTION and DOCUMENT_TEXT_DETECTION features.", +"id": "GoogleCloudVisionV1p1beta1TextDetectionParams", +"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" +}, +"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" +}, +"GoogleCloudVisionV1p1beta1WebDetectionParams": { +"description": "Parameters for web detection request.", +"id": "GoogleCloudVisionV1p1beta1WebDetectionParams", +"properties": { +"includeGeoResults": { +"deprecated": true, +"description": "This field has no effect on results.", +"type": "boolean" +} +}, +"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" +}, +"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" +}, +"ImageProperties": { +"description": "Stores image properties, such as dominant colors.", +"id": "ImageProperties", +"properties": { +"dominantColors": { +"$ref": "DominantColorsAnnotation", +"description": "If present, dominant colors completed successfully." +} +}, +"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" +}, +"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" +}, +"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" +}, +"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" +}, +"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" +}, +"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" +}, +"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" +}, +"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": "v1p1beta1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/vision.v1p2beta1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/vision.v1p2beta1.json new file mode 100644 index 0000000000000000000000000000000000000000..f1107338425009b371f647ee35edb0f3db493c64 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/vision.v1p2beta1.json @@ -0,0 +1,8373 @@ +{ +"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:v1p2beta1", +"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": "v1p2beta1/files:annotate", +"httpMethod": "POST", +"id": "vision.files.annotate", +"parameterOrder": [], +"parameters": {}, +"path": "v1p2beta1/files:annotate", +"request": { +"$ref": "GoogleCloudVisionV1p2beta1BatchAnnotateFilesRequest" +}, +"response": { +"$ref": "GoogleCloudVisionV1p2beta1BatchAnnotateFilesResponse" +}, +"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": "v1p2beta1/files:asyncBatchAnnotate", +"httpMethod": "POST", +"id": "vision.files.asyncBatchAnnotate", +"parameterOrder": [], +"parameters": {}, +"path": "v1p2beta1/files:asyncBatchAnnotate", +"request": { +"$ref": "GoogleCloudVisionV1p2beta1AsyncBatchAnnotateFilesRequest" +}, +"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": "v1p2beta1/images:annotate", +"httpMethod": "POST", +"id": "vision.images.annotate", +"parameterOrder": [], +"parameters": {}, +"path": "v1p2beta1/images:annotate", +"request": { +"$ref": "GoogleCloudVisionV1p2beta1BatchAnnotateImagesRequest" +}, +"response": { +"$ref": "GoogleCloudVisionV1p2beta1BatchAnnotateImagesResponse" +}, +"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": "v1p2beta1/images:asyncBatchAnnotate", +"httpMethod": "POST", +"id": "vision.images.asyncBatchAnnotate", +"parameterOrder": [], +"parameters": {}, +"path": "v1p2beta1/images:asyncBatchAnnotate", +"request": { +"$ref": "GoogleCloudVisionV1p2beta1AsyncBatchAnnotateImagesRequest" +}, +"response": { +"$ref": "Operation" +}, +"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": "v1p2beta1/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": "v1p2beta1/{+parent}/files:annotate", +"request": { +"$ref": "GoogleCloudVisionV1p2beta1BatchAnnotateFilesRequest" +}, +"response": { +"$ref": "GoogleCloudVisionV1p2beta1BatchAnnotateFilesResponse" +}, +"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": "v1p2beta1/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": "v1p2beta1/{+parent}/files:asyncBatchAnnotate", +"request": { +"$ref": "GoogleCloudVisionV1p2beta1AsyncBatchAnnotateFilesRequest" +}, +"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": "v1p2beta1/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": "v1p2beta1/{+parent}/images:annotate", +"request": { +"$ref": "GoogleCloudVisionV1p2beta1BatchAnnotateImagesRequest" +}, +"response": { +"$ref": "GoogleCloudVisionV1p2beta1BatchAnnotateImagesResponse" +}, +"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": "v1p2beta1/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": "v1p2beta1/{+parent}/images:asyncBatchAnnotate", +"request": { +"$ref": "GoogleCloudVisionV1p2beta1AsyncBatchAnnotateImagesRequest" +}, +"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": "v1p2beta1/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": "v1p2beta1/{+parent}/files:annotate", +"request": { +"$ref": "GoogleCloudVisionV1p2beta1BatchAnnotateFilesRequest" +}, +"response": { +"$ref": "GoogleCloudVisionV1p2beta1BatchAnnotateFilesResponse" +}, +"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": "v1p2beta1/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": "v1p2beta1/{+parent}/files:asyncBatchAnnotate", +"request": { +"$ref": "GoogleCloudVisionV1p2beta1AsyncBatchAnnotateFilesRequest" +}, +"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": "v1p2beta1/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": "v1p2beta1/{+parent}/images:annotate", +"request": { +"$ref": "GoogleCloudVisionV1p2beta1BatchAnnotateImagesRequest" +}, +"response": { +"$ref": "GoogleCloudVisionV1p2beta1BatchAnnotateImagesResponse" +}, +"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": "v1p2beta1/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": "v1p2beta1/{+parent}/images:asyncBatchAnnotate", +"request": { +"$ref": "GoogleCloudVisionV1p2beta1AsyncBatchAnnotateImagesRequest" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform", +"https://www.googleapis.com/auth/cloud-vision" +] +} +} +} +} +} +} +} +}, +"revision": "20240823", +"rootUrl": "https://vision.googleapis.com/", +"schemas": { +"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" +}, +"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" +}, +"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" +}, +"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" +}, +"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" +}, +"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" +}, +"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" +}, +"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" +}, +"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" +}, +"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" +}, +"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" +}, +"GoogleCloudVisionV1p2beta1AnnotateFileRequest": { +"description": "A request to annotate one single file, e.g. a PDF, TIFF or GIF file.", +"id": "GoogleCloudVisionV1p2beta1AnnotateFileRequest", +"properties": { +"features": { +"description": "Required. Requested features.", +"items": { +"$ref": "GoogleCloudVisionV1p2beta1Feature" +}, +"type": "array" +}, +"imageContext": { +"$ref": "GoogleCloudVisionV1p2beta1ImageContext", +"description": "Additional context that may accompany the image(s) in the file." +}, +"inputConfig": { +"$ref": "GoogleCloudVisionV1p2beta1InputConfig", +"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" +}, +"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" +}, +"GoogleCloudVisionV1p2beta1AnnotateImageRequest": { +"description": "Request for performing Google Cloud Vision API tasks over a user-provided image, with user-requested features, and with context information.", +"id": "GoogleCloudVisionV1p2beta1AnnotateImageRequest", +"properties": { +"features": { +"description": "Requested features.", +"items": { +"$ref": "GoogleCloudVisionV1p2beta1Feature" +}, +"type": "array" +}, +"image": { +"$ref": "GoogleCloudVisionV1p2beta1Image", +"description": "The image to be processed." +}, +"imageContext": { +"$ref": "GoogleCloudVisionV1p2beta1ImageContext", +"description": "Additional context that may accompany the image." +} +}, +"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" +}, +"GoogleCloudVisionV1p2beta1AsyncAnnotateFileRequest": { +"description": "An offline file annotation request.", +"id": "GoogleCloudVisionV1p2beta1AsyncAnnotateFileRequest", +"properties": { +"features": { +"description": "Required. Requested features.", +"items": { +"$ref": "GoogleCloudVisionV1p2beta1Feature" +}, +"type": "array" +}, +"imageContext": { +"$ref": "GoogleCloudVisionV1p2beta1ImageContext", +"description": "Additional context that may accompany the image(s) in the file." +}, +"inputConfig": { +"$ref": "GoogleCloudVisionV1p2beta1InputConfig", +"description": "Required. Information about the input file." +}, +"outputConfig": { +"$ref": "GoogleCloudVisionV1p2beta1OutputConfig", +"description": "Required. The desired output location and metadata (e.g. format)." +} +}, +"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" +}, +"GoogleCloudVisionV1p2beta1AsyncBatchAnnotateFilesRequest": { +"description": "Multiple async file annotation requests are batched into a single service call.", +"id": "GoogleCloudVisionV1p2beta1AsyncBatchAnnotateFilesRequest", +"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": "GoogleCloudVisionV1p2beta1AsyncAnnotateFileRequest" +}, +"type": "array" +} +}, +"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" +}, +"GoogleCloudVisionV1p2beta1AsyncBatchAnnotateImagesRequest": { +"description": "Request for async image annotation for a list of images.", +"id": "GoogleCloudVisionV1p2beta1AsyncBatchAnnotateImagesRequest", +"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": "GoogleCloudVisionV1p2beta1OutputConfig", +"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": "GoogleCloudVisionV1p2beta1AnnotateImageRequest" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p2beta1BatchAnnotateFilesRequest": { +"description": "A list of requests to annotate files using the BatchAnnotateFiles API.", +"id": "GoogleCloudVisionV1p2beta1BatchAnnotateFilesRequest", +"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": "GoogleCloudVisionV1p2beta1AnnotateFileRequest" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p2beta1BatchAnnotateFilesResponse": { +"description": "A list of file annotation responses.", +"id": "GoogleCloudVisionV1p2beta1BatchAnnotateFilesResponse", +"properties": { +"responses": { +"description": "The list of file annotation responses, each response corresponding to each AnnotateFileRequest in BatchAnnotateFilesRequest.", +"items": { +"$ref": "GoogleCloudVisionV1p2beta1AnnotateFileResponse" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p2beta1BatchAnnotateImagesRequest": { +"description": "Multiple image annotation requests are batched into a single service call.", +"id": "GoogleCloudVisionV1p2beta1BatchAnnotateImagesRequest", +"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": "GoogleCloudVisionV1p2beta1AnnotateImageRequest" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudVisionV1p2beta1BatchAnnotateImagesResponse": { +"description": "Response to a batch image annotation request.", +"id": "GoogleCloudVisionV1p2beta1BatchAnnotateImagesResponse", +"properties": { +"responses": { +"description": "Individual responses to image annotation requests within the batch.", +"items": { +"$ref": "GoogleCloudVisionV1p2beta1AnnotateImageResponse" +}, +"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" +}, +"GoogleCloudVisionV1p2beta1CropHintsParams": { +"description": "Parameters for crop hints annotation request.", +"id": "GoogleCloudVisionV1p2beta1CropHintsParams", +"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" +}, +"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" +}, +"GoogleCloudVisionV1p2beta1Feature": { +"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": "GoogleCloudVisionV1p2beta1Feature", +"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" +}, +"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" +}, +"GoogleCloudVisionV1p2beta1Image": { +"description": "Client image to perform Google Cloud Vision API tasks over.", +"id": "GoogleCloudVisionV1p2beta1Image", +"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": "GoogleCloudVisionV1p2beta1ImageSource", +"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" +}, +"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" +}, +"GoogleCloudVisionV1p2beta1ImageContext": { +"description": "Image context and/or feature-specific parameters.", +"id": "GoogleCloudVisionV1p2beta1ImageContext", +"properties": { +"cropHintsParams": { +"$ref": "GoogleCloudVisionV1p2beta1CropHintsParams", +"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": "GoogleCloudVisionV1p2beta1LatLongRect", +"description": "Not used." +}, +"productSearchParams": { +"$ref": "GoogleCloudVisionV1p2beta1ProductSearchParams", +"description": "Parameters for product search." +}, +"textDetectionParams": { +"$ref": "GoogleCloudVisionV1p2beta1TextDetectionParams", +"description": "Parameters for text detection and document text detection." +}, +"webDetectionParams": { +"$ref": "GoogleCloudVisionV1p2beta1WebDetectionParams", +"description": "Parameters for web detection." +} +}, +"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" +}, +"GoogleCloudVisionV1p2beta1ImageSource": { +"description": "External image source (Google Cloud Storage or web URL image location).", +"id": "GoogleCloudVisionV1p2beta1ImageSource", +"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" +}, +"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" +}, +"GoogleCloudVisionV1p2beta1LatLongRect": { +"description": "Rectangle determined by min and max `LatLng` pairs.", +"id": "GoogleCloudVisionV1p2beta1LatLongRect", +"properties": { +"maxLatLng": { +"$ref": "LatLng", +"description": "Max lat/long pair." +}, +"minLatLng": { +"$ref": "LatLng", +"description": "Min lat/long pair." +} +}, +"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" +}, +"GoogleCloudVisionV1p2beta1ProductSearchParams": { +"description": "Parameters for a product search request.", +"id": "GoogleCloudVisionV1p2beta1ProductSearchParams", +"properties": { +"boundingPoly": { +"$ref": "GoogleCloudVisionV1p2beta1BoundingPoly", +"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" +}, +"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" +}, +"GoogleCloudVisionV1p2beta1TextDetectionParams": { +"description": "Parameters for text detections. This is used to control TEXT_DETECTION and DOCUMENT_TEXT_DETECTION features.", +"id": "GoogleCloudVisionV1p2beta1TextDetectionParams", +"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" +}, +"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" +}, +"GoogleCloudVisionV1p2beta1WebDetectionParams": { +"description": "Parameters for web detection request.", +"id": "GoogleCloudVisionV1p2beta1WebDetectionParams", +"properties": { +"includeGeoResults": { +"deprecated": true, +"description": "This field has no effect on results.", +"type": "boolean" +} +}, +"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" +}, +"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" +}, +"ImageProperties": { +"description": "Stores image properties, such as dominant colors.", +"id": "ImageProperties", +"properties": { +"dominantColors": { +"$ref": "DominantColorsAnnotation", +"description": "If present, dominant colors completed successfully." +} +}, +"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" +}, +"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" +}, +"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" +}, +"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" +}, +"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" +}, +"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" +}, +"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" +}, +"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": "v1p2beta1", +"version_module": true +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/vpcaccess.v1beta1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/vpcaccess.v1beta1.json new file mode 100644 index 0000000000000000000000000000000000000000..47e72cf6f4d0b7559e9c4f27a7fcba7c2f420d6a --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/vpcaccess.v1beta1.json @@ -0,0 +1,737 @@ +{ +"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://vpcaccess.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Serverless VPC Access", +"description": "API for managing VPC access connectors.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/vpc/docs/configure-serverless-vpc-access", +"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": "vpcaccess:v1beta1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://vpcaccess.mtls.googleapis.com/", +"name": "vpcaccess", +"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": { +"list": { +"description": "Lists information about the supported locations for this service.", +"flatPath": "v1beta1/projects/{projectsId}/locations", +"httpMethod": "GET", +"id": "vpcaccess.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": { +"connectors": { +"methods": { +"create": { +"description": "Creates a Serverless VPC Access connector, returns an operation.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/connectors", +"httpMethod": "POST", +"id": "vpcaccess.projects.locations.connectors.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"connectorId": { +"description": "Required. The ID to use for this connector.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project ID and location in which the configuration should be created, specified in the format `projects/*/locations/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/connectors", +"request": { +"$ref": "Connector" +}, +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes a Serverless VPC Access connector. Returns NOT_FOUND if the resource does not exist.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/connectors/{connectorsId}", +"httpMethod": "DELETE", +"id": "vpcaccess.projects.locations.connectors.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of a Serverless VPC Access connector to delete.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/connectors/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Operation" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a Serverless VPC Access connector. Returns NOT_FOUND if the resource does not exist.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/connectors/{connectorsId}", +"httpMethod": "GET", +"id": "vpcaccess.projects.locations.connectors.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. Name of a Serverless VPC Access connector to get.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/connectors/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"response": { +"$ref": "Connector" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists Serverless VPC Access connectors.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/connectors", +"httpMethod": "GET", +"id": "vpcaccess.projects.locations.connectors.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "Maximum number of functions to return per call.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "Continuation token.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The project and location from which the routes should be listed.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1beta1/{+parent}/connectors", +"response": { +"$ref": "ListConnectorsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a Serverless VPC Access connector, returns an operation.", +"flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/connectors/{connectorsId}", +"httpMethod": "PATCH", +"id": "vpcaccess.projects.locations.connectors.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The resource name in the format `projects/*/locations/*/connectors/*`.", +"location": "path", +"pattern": "^projects/[^/]+/locations/[^/]+/connectors/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "The fields to update on the entry group. If absent or empty, all modifiable fields are updated.", +"format": "google-fieldmask", +"location": "query", +"type": "string" +} +}, +"path": "v1beta1/{+name}", +"request": { +"$ref": "Connector" +}, +"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": "v1beta1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", +"httpMethod": "GET", +"id": "vpcaccess.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": "vpcaccess.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": "20240905", +"rootUrl": "https://vpcaccess.googleapis.com/", +"schemas": { +"Connector": { +"description": "Definition of a Serverless VPC Access connector.", +"id": "Connector", +"properties": { +"connectedProjects": { +"description": "Output only. List of projects using the connector.", +"items": { +"type": "string" +}, +"readOnly": true, +"type": "array" +}, +"createTime": { +"description": "Output only. The creation time of the connector.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"ipCidrRange": { +"description": "Optional. The range of internal addresses that follows RFC 4632 notation. Example: `10.132.0.0/28`.", +"type": "string" +}, +"lastRestartTime": { +"description": "Output only. The last restart time of the connector.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"machineType": { +"description": "Machine type of VM Instance underlying connector. Default is e2-micro", +"type": "string" +}, +"maxInstances": { +"description": "Maximum value of instances in autoscaling group underlying the connector.", +"format": "int32", +"type": "integer" +}, +"maxThroughput": { +"deprecated": true, +"description": "Maximum throughput of the connector in Mbps. Refers to the expected throughput when using an `e2-micro` machine type. Value must be a multiple of 100 from 300 through 1000. Must be higher than the value specified by --min-throughput. If both max-throughput and max-instances are provided, max-instances takes precedence over max-throughput. The use of `max-throughput` is discouraged in favor of `max-instances`.", +"format": "int32", +"type": "integer" +}, +"minInstances": { +"description": "Minimum value of instances in autoscaling group underlying the connector.", +"format": "int32", +"type": "integer" +}, +"minThroughput": { +"deprecated": true, +"description": "Minimum throughput of the connector in Mbps. Refers to the expected throughput when using an `e2-micro` machine type. Value must be a multiple of 100 from 200 through 900. Must be lower than the value specified by --max-throughput. If both min-throughput and min-instances are provided, min-instances takes precedence over min-throughput. The use of `min-throughput` is discouraged in favor of `min-instances`.", +"format": "int32", +"type": "integer" +}, +"name": { +"description": "The resource name in the format `projects/*/locations/*/connectors/*`.", +"type": "string" +}, +"network": { +"description": "Optional. Name of a VPC network.", +"type": "string" +}, +"state": { +"description": "Output only. State of the VPC access connector.", +"enum": [ +"STATE_UNSPECIFIED", +"READY", +"CREATING", +"DELETING", +"ERROR", +"UPDATING" +], +"enumDescriptions": [ +"Invalid state.", +"Connector is deployed and ready to receive traffic.", +"An Insert operation is in progress. Transient condition.", +"A Delete operation is in progress. Transient condition.", +"Connector is in a bad state, manual deletion recommended.", +"The connector is being updated." +], +"readOnly": true, +"type": "string" +}, +"subnet": { +"$ref": "Subnet", +"description": "Optional. The subnet in which to house the VPC Access Connector." +} +}, +"type": "object" +}, +"ListConnectorsResponse": { +"description": "Response for listing Serverless VPC Access connectors.", +"id": "ListConnectorsResponse", +"properties": { +"connectors": { +"description": "List of Serverless VPC Access connectors.", +"items": { +"$ref": "Connector" +}, +"type": "array" +}, +"nextPageToken": { +"description": "Continuation token.", +"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" +}, +"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 google.longrunning.Operation.", +"id": "OperationMetadata", +"properties": { +"createTime": { +"description": "Output only. Time when the operation was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. Time when the operation completed.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"method": { +"description": "Output only. Method that initiated the operation e.g. google.cloud.vpcaccess.v1.Connectors.CreateConnector.", +"readOnly": true, +"type": "string" +}, +"target": { +"description": "Output only. Name of the resource that this operation is acting on e.g. projects/my-project/locations/us-central1/connectors/v1.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"OperationMetadataV1Alpha1": { +"description": "Metadata for google.longrunning.Operation.", +"id": "OperationMetadataV1Alpha1", +"properties": { +"endTime": { +"description": "Output only. Time when the operation completed.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"insertTime": { +"description": "Output only. Time when the operation was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"method": { +"description": "Output only. Method that initiated the operation e.g. google.cloud.vpcaccess.v1alpha1.Connectors.CreateConnector.", +"readOnly": true, +"type": "string" +}, +"target": { +"description": "Output only. Name of the resource that this operation is acting on e.g. projects/my-project/locations/us-central1/connectors/v1.", +"readOnly": true, +"type": "string" +} +}, +"type": "object" +}, +"OperationMetadataV1Beta1": { +"description": "Metadata for google.longrunning.Operation.", +"id": "OperationMetadataV1Beta1", +"properties": { +"createTime": { +"description": "Output only. Time when the operation was created.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"endTime": { +"description": "Output only. Time when the operation completed.", +"format": "google-datetime", +"readOnly": true, +"type": "string" +}, +"method": { +"description": "Output only. Method that initiated the operation e.g. google.cloud.vpcaccess.v1beta1.Connectors.CreateConnector.", +"readOnly": true, +"type": "string" +}, +"target": { +"description": "Output only. Name of the resource that this operation is acting on e.g. projects/my-project/locations/us-central1/connectors/v1.", +"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" +}, +"Subnet": { +"description": "The subnet in which to house the connector", +"id": "Subnet", +"properties": { +"name": { +"description": "Optional. Subnet name (relative, not fully qualified). E.g. if the full subnet selfLink is https://compute.googleapis.com/compute/v1/projects/{project}/regions/{region}/subnetworks/{subnetName} the correct input for this field would be {subnetName}", +"type": "string" +}, +"projectId": { +"description": "Optional. Project in which the subnet exists. If not set, this project is assumed to be the project for which the connector create request was issued.", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Serverless VPC Access 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/webfonts.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/webfonts.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..1c2ca6dd0122c3677c6d128bb7d914120268dd1f --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/webfonts.v1.json @@ -0,0 +1,276 @@ +{ +"basePath": "", +"baseUrl": "https://webfonts.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Webfonts", +"description": "The Google Web Fonts Developer API lets you retrieve information about web fonts served by Google.", +"discoveryVersion": "v1", +"documentationLink": "https://developers.google.com/fonts/docs/developer_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": "webfonts:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://webfonts.mtls.googleapis.com/", +"name": "webfonts", +"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": { +"webfonts": { +"methods": { +"list": { +"description": "Retrieves the list of fonts currently served by the Google Fonts Developer API.", +"flatPath": "v1/webfonts", +"httpMethod": "GET", +"id": "webfonts.webfonts.list", +"parameterOrder": [], +"parameters": { +"capability": { +"description": "Controls the font urls in `Webfont.files`, by default, static ttf fonts are sent.", +"enum": [ +"CAPABILITY_UNSPECIFIED", +"WOFF2", +"VF" +], +"enumDescriptions": [ +"Default means static ttf fonts.", +"Use WOFF2(Compressed)instead of ttf.", +"Prefer variable font files instead of static fonts instantiated at standard weights." +], +"location": "query", +"repeated": true, +"type": "string" +}, +"family": { +"description": "Filters by Webfont.family, using literal match. If not set, returns all families", +"location": "query", +"repeated": true, +"type": "string" +}, +"sort": { +"description": "Enables sorting of the list.", +"enum": [ +"SORT_UNDEFINED", +"ALPHA", +"DATE", +"POPULARITY", +"STYLE", +"TRENDING" +], +"enumDescriptions": [ +"No sorting specified, use the default sorting method.", +"Sort alphabetically", +"Sort by date added", +"Sort by popularity", +"Sort by number of styles", +"Sort by trending" +], +"location": "query", +"type": "string" +}, +"subset": { +"description": "Filters by Webfont.subset, if subset is found in Webfont.subsets. If not set, returns all families.", +"location": "query", +"type": "string" +} +}, +"path": "v1/webfonts", +"response": { +"$ref": "WebfontList" +} +} +} +} +}, +"revision": "20240703", +"rootUrl": "https://webfonts.googleapis.com/", +"schemas": { +"Axis": { +"description": "Metadata for a variable font axis.", +"id": "Axis", +"properties": { +"end": { +"description": "maximum value", +"format": "float", +"type": "number" +}, +"start": { +"description": "minimum value", +"format": "float", +"type": "number" +}, +"tag": { +"description": "tag name.", +"type": "string" +} +}, +"type": "object" +}, +"Webfont": { +"description": "Metadata describing a family of fonts.", +"id": "Webfont", +"properties": { +"axes": { +"description": "Axis for variable fonts.", +"items": { +"$ref": "Axis" +}, +"type": "array" +}, +"category": { +"description": "The category of the font.", +"type": "string" +}, +"colorCapabilities": { +"description": "The color format(s) available for this family.", +"items": { +"type": "string" +}, +"type": "array" +}, +"family": { +"description": "The name of the font.", +"type": "string" +}, +"files": { +"additionalProperties": { +"type": "string" +}, +"description": "The font files (with all supported scripts) for each one of the available variants, as a key : value map.", +"type": "object" +}, +"kind": { +"description": "This kind represents a webfont object in the webfonts service.", +"type": "string" +}, +"lastModified": { +"description": "The date (format \"yyyy-MM-dd\") the font was modified for the last time.", +"type": "string" +}, +"menu": { +"description": "Font URL for menu subset, a subset of the font that is enough to display the font name", +"type": "string" +}, +"subsets": { +"description": "The scripts supported by the font.", +"items": { +"type": "string" +}, +"type": "array" +}, +"variants": { +"description": "The available variants for the font.", +"items": { +"type": "string" +}, +"type": "array" +}, +"version": { +"description": "The font version.", +"type": "string" +} +}, +"type": "object" +}, +"WebfontList": { +"description": "Response containing the list of fonts currently served by the Google Fonts API.", +"id": "WebfontList", +"properties": { +"items": { +"description": "The list of fonts currently served by the Google Fonts API.", +"items": { +"$ref": "Webfont" +}, +"type": "array" +}, +"kind": { +"description": "This kind represents a list of webfont objects in the webfonts service.", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Web Fonts Developer API", +"version": "v1" +} \ No newline at end of file diff --git a/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/webrisk.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/webrisk.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..68db15558e506b194789dd11c5a5539c506450db --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/webrisk.v1.json @@ -0,0 +1,779 @@ +{ +"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://webrisk.googleapis.com/", +"batchPath": "batch", +"canonicalName": "Web Risk", +"description": "", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/web-risk/", +"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": "webrisk:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://webrisk.mtls.googleapis.com/", +"name": "webrisk", +"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": { +"hashes": { +"methods": { +"search": { +"description": "Gets the full hashes that match the requested hash prefix. This is used after a hash prefix is looked up in a threatList and there is a match. The client side threatList only holds partial hashes so the client must query this method to determine if there is a full hash match of a threat.", +"flatPath": "v1/hashes:search", +"httpMethod": "GET", +"id": "webrisk.hashes.search", +"parameterOrder": [], +"parameters": { +"hashPrefix": { +"description": "A hash prefix, consisting of the most significant 4-32 bytes of a SHA256 hash. For JSON requests, this field is base64-encoded. Note that if this parameter is provided by a URI, it must be encoded using the web safe base64 variant (RFC 4648).", +"format": "byte", +"location": "query", +"type": "string" +}, +"threatTypes": { +"description": "Required. The ThreatLists to search in. Multiple ThreatLists may be specified.", +"enum": [ +"THREAT_TYPE_UNSPECIFIED", +"MALWARE", +"SOCIAL_ENGINEERING", +"UNWANTED_SOFTWARE", +"SOCIAL_ENGINEERING_EXTENDED_COVERAGE" +], +"enumDescriptions": [ +"No entries should match this threat type. This threat type is unused.", +"Malware targeting any platform.", +"Social engineering targeting any platform.", +"Unwanted software targeting any platform.", +"A list of extended coverage social engineering URIs targeting any platform." +], +"location": "query", +"repeated": true, +"type": "string" +} +}, +"path": "v1/hashes:search", +"response": { +"$ref": "GoogleCloudWebriskV1SearchHashesResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"projects": { +"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}/operations/{operationsId}:cancel", +"httpMethod": "POST", +"id": "webrisk.projects.operations.cancel", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be cancelled.", +"location": "path", +"pattern": "^projects/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:cancel", +"request": { +"$ref": "GoogleLongrunningCancelOperationRequest" +}, +"response": { +"$ref": "GoogleProtobufEmpty" +} +}, +"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}/operations/{operationsId}", +"httpMethod": "DELETE", +"id": "webrisk.projects.operations.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The name of the operation resource to be deleted.", +"location": "path", +"pattern": "^projects/[^/]+/operations/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "GoogleProtobufEmpty" +} +}, +"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": "webrisk.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": "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}/operations", +"httpMethod": "GET", +"id": "webrisk.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": "v1/{+name}/operations", +"response": { +"$ref": "GoogleLongrunningListOperationsResponse" +} +} +} +}, +"submissions": { +"methods": { +"create": { +"description": "Creates a Submission of a URI suspected of containing phishing content to be reviewed. If the result verifies the existence of malicious phishing content, the site will be added to the [Google's Social Engineering lists](https://support.google.com/webmasters/answer/6350487/) in order to protect users that could get exposed to this threat in the future. Only allowlisted projects can use this method during Early Access. Please reach out to Sales or your customer engineer to obtain access.", +"flatPath": "v1/projects/{projectsId}/submissions", +"httpMethod": "POST", +"id": "webrisk.projects.submissions.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The name of the project that is making the submission. This string is in the format \"projects/{project_number}\".", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/submissions", +"request": { +"$ref": "GoogleCloudWebriskV1Submission" +}, +"response": { +"$ref": "GoogleCloudWebriskV1Submission" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +}, +"threatLists": { +"methods": { +"computeDiff": { +"description": "Gets the most recent threat list diffs. These diffs should be applied to a local database of hashes to keep it up-to-date. If the local database is empty or excessively out-of-date, a complete snapshot of the database will be returned. This Method only updates a single ThreatList at a time. To update multiple ThreatList databases, this method needs to be called once for each list.", +"flatPath": "v1/threatLists:computeDiff", +"httpMethod": "GET", +"id": "webrisk.threatLists.computeDiff", +"parameterOrder": [], +"parameters": { +"constraints.maxDatabaseEntries": { +"description": "Sets the maximum number of entries that the client is willing to have in the local database. This should be a power of 2 between 2**10 and 2**20. If zero, no database size limit is set.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"constraints.maxDiffEntries": { +"description": "The maximum size in number of entries. The diff will not contain more entries than this value. This should be a power of 2 between 2**10 and 2**20. If zero, no diff size limit is set.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"constraints.supportedCompressions": { +"description": "The compression types supported by the client.", +"enum": [ +"COMPRESSION_TYPE_UNSPECIFIED", +"RAW", +"RICE" +], +"enumDescriptions": [ +"Unknown.", +"Raw, uncompressed data.", +"Rice-Golomb encoded data." +], +"location": "query", +"repeated": true, +"type": "string" +}, +"threatType": { +"description": "Required. The threat list to update. Only a single ThreatType should be specified per request. If you want to handle multiple ThreatTypes, you must make one request per ThreatType.", +"enum": [ +"THREAT_TYPE_UNSPECIFIED", +"MALWARE", +"SOCIAL_ENGINEERING", +"UNWANTED_SOFTWARE", +"SOCIAL_ENGINEERING_EXTENDED_COVERAGE" +], +"enumDescriptions": [ +"No entries should match this threat type. This threat type is unused.", +"Malware targeting any platform.", +"Social engineering targeting any platform.", +"Unwanted software targeting any platform.", +"A list of extended coverage social engineering URIs targeting any platform." +], +"location": "query", +"type": "string" +}, +"versionToken": { +"description": "The current version token of the client for the requested list (the client version that was received from the last successful diff). If the client does not have a version token (this is the first time calling ComputeThreatListDiff), this may be left empty and a full database snapshot will be returned.", +"format": "byte", +"location": "query", +"type": "string" +} +}, +"path": "v1/threatLists:computeDiff", +"response": { +"$ref": "GoogleCloudWebriskV1ComputeThreatListDiffResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"uris": { +"methods": { +"search": { +"description": "This method is used to check whether a URI is on a given threatList. Multiple threatLists may be searched in a single query. The response will list all requested threatLists the URI was found to match. If the URI is not found on any of the requested ThreatList an empty response will be returned.", +"flatPath": "v1/uris:search", +"httpMethod": "GET", +"id": "webrisk.uris.search", +"parameterOrder": [], +"parameters": { +"threatTypes": { +"description": "Required. The ThreatLists to search in. Multiple ThreatLists may be specified.", +"enum": [ +"THREAT_TYPE_UNSPECIFIED", +"MALWARE", +"SOCIAL_ENGINEERING", +"UNWANTED_SOFTWARE", +"SOCIAL_ENGINEERING_EXTENDED_COVERAGE" +], +"enumDescriptions": [ +"No entries should match this threat type. This threat type is unused.", +"Malware targeting any platform.", +"Social engineering targeting any platform.", +"Unwanted software targeting any platform.", +"A list of extended coverage social engineering URIs targeting any platform." +], +"location": "query", +"repeated": true, +"type": "string" +}, +"uri": { +"description": "Required. The URI to be checked for matches.", +"location": "query", +"type": "string" +} +}, +"path": "v1/uris:search", +"response": { +"$ref": "GoogleCloudWebriskV1SearchUrisResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +}, +"revision": "20241117", +"rootUrl": "https://webrisk.googleapis.com/", +"schemas": { +"GoogleCloudWebriskV1ComputeThreatListDiffResponse": { +"id": "GoogleCloudWebriskV1ComputeThreatListDiffResponse", +"properties": { +"additions": { +"$ref": "GoogleCloudWebriskV1ThreatEntryAdditions", +"description": "A set of entries to add to a local threat type's list." +}, +"checksum": { +"$ref": "GoogleCloudWebriskV1ComputeThreatListDiffResponseChecksum", +"description": "The expected SHA256 hash of the client state; that is, of the sorted list of all hashes present in the database after applying the provided diff. If the client state doesn't match the expected state, the client must discard this diff and retry later." +}, +"newVersionToken": { +"description": "The new opaque client version token. This should be retained by the client and passed into the next call of ComputeThreatListDiff as 'version_token'. A separate version token should be stored and used for each threatList.", +"format": "byte", +"type": "string" +}, +"recommendedNextDiff": { +"description": "The soonest the client should wait before issuing any diff request. Querying sooner is unlikely to produce a meaningful diff. Waiting longer is acceptable considering the use case. If this field is not set clients may update as soon as they want.", +"format": "google-datetime", +"type": "string" +}, +"removals": { +"$ref": "GoogleCloudWebriskV1ThreatEntryRemovals", +"description": "A set of entries to remove from a local threat type's list. This field may be empty." +}, +"responseType": { +"description": "The type of response. This may indicate that an action must be taken by the client when the response is received.", +"enum": [ +"RESPONSE_TYPE_UNSPECIFIED", +"DIFF", +"RESET" +], +"enumDescriptions": [ +"Unknown.", +"Partial updates are applied to the client's existing local database.", +"Full updates resets the client's entire local database. This means that either the client had no state, was seriously out-of-date, or the client is believed to be corrupt." +], +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudWebriskV1ComputeThreatListDiffResponseChecksum": { +"description": "The expected state of a client's local database.", +"id": "GoogleCloudWebriskV1ComputeThreatListDiffResponseChecksum", +"properties": { +"sha256": { +"description": "The SHA256 hash of the client state; that is, of the sorted list of all hashes present in the database.", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudWebriskV1RawHashes": { +"description": "The uncompressed threat entries in hash format. Hashes can be anywhere from 4 to 32 bytes in size. A large majority are 4 bytes, but some hashes are lengthened if they collide with the hash of a popular URI. Used for sending ThreatEntryAdditons to clients that do not support compression, or when sending non-4-byte hashes to clients that do support compression.", +"id": "GoogleCloudWebriskV1RawHashes", +"properties": { +"prefixSize": { +"description": "The number of bytes for each prefix encoded below. This field can be anywhere from 4 (shortest prefix) to 32 (full SHA256 hash). In practice this is almost always 4, except in exceptional circumstances.", +"format": "int32", +"type": "integer" +}, +"rawHashes": { +"description": "The hashes, in binary format, concatenated into one long string. Hashes are sorted in lexicographic order. For JSON API users, hashes are base64-encoded.", +"format": "byte", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudWebriskV1RawIndices": { +"description": "A set of raw indices to remove from a local list.", +"id": "GoogleCloudWebriskV1RawIndices", +"properties": { +"indices": { +"description": "The indices to remove from a lexicographically-sorted local list.", +"items": { +"format": "int32", +"type": "integer" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudWebriskV1RiceDeltaEncoding": { +"description": "The Rice-Golomb encoded data. Used for sending compressed 4-byte hashes or compressed removal indices.", +"id": "GoogleCloudWebriskV1RiceDeltaEncoding", +"properties": { +"encodedData": { +"description": "The encoded deltas that are encoded using the Golomb-Rice coder.", +"format": "byte", +"type": "string" +}, +"entryCount": { +"description": "The number of entries that are delta encoded in the encoded data. If only a single integer was encoded, this will be zero and the single value will be stored in `first_value`.", +"format": "int32", +"type": "integer" +}, +"firstValue": { +"description": "The offset of the first entry in the encoded data, or, if only a single integer was encoded, that single integer's value. If the field is empty or missing, assume zero.", +"format": "int64", +"type": "string" +}, +"riceParameter": { +"description": "The Golomb-Rice parameter, which is a number between 2 and 28. This field is missing (that is, zero) if `num_entries` is zero.", +"format": "int32", +"type": "integer" +} +}, +"type": "object" +}, +"GoogleCloudWebriskV1SearchHashesResponse": { +"id": "GoogleCloudWebriskV1SearchHashesResponse", +"properties": { +"negativeExpireTime": { +"description": "For requested entities that did not match the threat list, how long to cache the response until.", +"format": "google-datetime", +"type": "string" +}, +"threats": { +"description": "The full hashes that matched the requested prefixes. The hash will be populated in the key.", +"items": { +"$ref": "GoogleCloudWebriskV1SearchHashesResponseThreatHash" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudWebriskV1SearchHashesResponseThreatHash": { +"description": "Contains threat information on a matching hash.", +"id": "GoogleCloudWebriskV1SearchHashesResponseThreatHash", +"properties": { +"expireTime": { +"description": "The cache lifetime for the returned match. Clients must not cache this response past this timestamp to avoid false positives.", +"format": "google-datetime", +"type": "string" +}, +"hash": { +"description": "A 32 byte SHA256 hash. This field is in binary format. For JSON requests, hashes are base64-encoded.", +"format": "byte", +"type": "string" +}, +"threatTypes": { +"description": "The ThreatList this threat belongs to. This must contain at least one entry.", +"items": { +"enum": [ +"THREAT_TYPE_UNSPECIFIED", +"MALWARE", +"SOCIAL_ENGINEERING", +"UNWANTED_SOFTWARE", +"SOCIAL_ENGINEERING_EXTENDED_COVERAGE" +], +"enumDescriptions": [ +"No entries should match this threat type. This threat type is unused.", +"Malware targeting any platform.", +"Social engineering targeting any platform.", +"Unwanted software targeting any platform.", +"A list of extended coverage social engineering URIs targeting any platform." +], +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudWebriskV1SearchUrisResponse": { +"id": "GoogleCloudWebriskV1SearchUrisResponse", +"properties": { +"threat": { +"$ref": "GoogleCloudWebriskV1SearchUrisResponseThreatUri", +"description": "The threat list matches. This might be empty if the URI is on no list." +} +}, +"type": "object" +}, +"GoogleCloudWebriskV1SearchUrisResponseThreatUri": { +"description": "Contains threat information on a matching uri.", +"id": "GoogleCloudWebriskV1SearchUrisResponseThreatUri", +"properties": { +"expireTime": { +"description": "The cache lifetime for the returned match. Clients must not cache this response past this timestamp to avoid false positives.", +"format": "google-datetime", +"type": "string" +}, +"threatTypes": { +"description": "The ThreatList this threat belongs to.", +"items": { +"enum": [ +"THREAT_TYPE_UNSPECIFIED", +"MALWARE", +"SOCIAL_ENGINEERING", +"UNWANTED_SOFTWARE", +"SOCIAL_ENGINEERING_EXTENDED_COVERAGE" +], +"enumDescriptions": [ +"No entries should match this threat type. This threat type is unused.", +"Malware targeting any platform.", +"Social engineering targeting any platform.", +"Unwanted software targeting any platform.", +"A list of extended coverage social engineering URIs targeting any platform." +], +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleCloudWebriskV1Submission": { +"description": "Wraps a URI that might be displaying malicious content.", +"id": "GoogleCloudWebriskV1Submission", +"properties": { +"uri": { +"description": "Required. The URI that is being reported for malicious content to be analyzed.", +"type": "string" +} +}, +"type": "object" +}, +"GoogleCloudWebriskV1ThreatEntryAdditions": { +"description": "Contains the set of entries to add to a local database. May contain a combination of compressed and raw data in a single response.", +"id": "GoogleCloudWebriskV1ThreatEntryAdditions", +"properties": { +"rawHashes": { +"description": "The raw SHA256-formatted entries. Repeated to allow returning sets of hashes with different prefix sizes.", +"items": { +"$ref": "GoogleCloudWebriskV1RawHashes" +}, +"type": "array" +}, +"riceHashes": { +"$ref": "GoogleCloudWebriskV1RiceDeltaEncoding", +"description": "The encoded 4-byte prefixes of SHA256-formatted entries, using a Golomb-Rice encoding. The hashes are converted to uint32, sorted in ascending order, then delta encoded and stored as encoded_data." +} +}, +"type": "object" +}, +"GoogleCloudWebriskV1ThreatEntryRemovals": { +"description": "Contains the set of entries to remove from a local database.", +"id": "GoogleCloudWebriskV1ThreatEntryRemovals", +"properties": { +"rawIndices": { +"$ref": "GoogleCloudWebriskV1RawIndices", +"description": "The raw removal indices for a local list." +}, +"riceIndices": { +"$ref": "GoogleCloudWebriskV1RiceDeltaEncoding", +"description": "The encoded local, lexicographically-sorted list indices, using a Golomb-Rice encoding. Used for sending compressed removal indices. The removal indices (uint32) are sorted in ascending order, then delta encoded and stored as encoded_data." +} +}, +"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": "Contains a `SubmitUriMetadata` object.", +"type": "object" +}, +"name": { +"description": "Matches the `/v1/{project-name}/operations/{operation-id}` pattern.", +"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": "Web Risk 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/websecurityscanner.v1.json b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/websecurityscanner.v1.json new file mode 100644 index 0000000000000000000000000000000000000000..e8966429e28594c5017e2d4a809d36e00c1b75e2 --- /dev/null +++ b/.venv/lib/python3.11/site-packages/googleapiclient/discovery_cache/documents/websecurityscanner.v1.json @@ -0,0 +1,1408 @@ +{ +"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://websecurityscanner.googleapis.com/", +"batchPath": "batch", +"canonicalName": "WebSecurityScanner", +"description": "Scans your Compute and App Engine apps for common web vulnerabilities.", +"discoveryVersion": "v1", +"documentationLink": "https://cloud.google.com/security-command-center/docs/concepts-web-security-scanner-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": "websecurityscanner:v1", +"kind": "discovery#restDescription", +"mtlsRootUrl": "https://websecurityscanner.mtls.googleapis.com/", +"name": "websecurityscanner", +"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": { +"scanConfigs": { +"methods": { +"create": { +"description": "Creates a new ScanConfig.", +"flatPath": "v1/projects/{projectsId}/scanConfigs", +"httpMethod": "POST", +"id": "websecurityscanner.projects.scanConfigs.create", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource name where the scan is created, which should be a project resource name in the format 'projects/{projectId}'.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/scanConfigs", +"request": { +"$ref": "ScanConfig" +}, +"response": { +"$ref": "ScanConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"delete": { +"description": "Deletes an existing ScanConfig and its child resources.", +"flatPath": "v1/projects/{projectsId}/scanConfigs/{scanConfigsId}", +"httpMethod": "DELETE", +"id": "websecurityscanner.projects.scanConfigs.delete", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the ScanConfig to be deleted. The name follows the format of 'projects/{projectId}/scanConfigs/{scanConfigId}'.", +"location": "path", +"pattern": "^projects/[^/]+/scanConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Empty" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"get": { +"description": "Gets a ScanConfig.", +"flatPath": "v1/projects/{projectsId}/scanConfigs/{scanConfigsId}", +"httpMethod": "GET", +"id": "websecurityscanner.projects.scanConfigs.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the ScanConfig to be returned. The name follows the format of 'projects/{projectId}/scanConfigs/{scanConfigId}'.", +"location": "path", +"pattern": "^projects/[^/]+/scanConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "ScanConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists ScanConfigs under a given project.", +"flatPath": "v1/projects/{projectsId}/scanConfigs", +"httpMethod": "GET", +"id": "websecurityscanner.projects.scanConfigs.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of ScanConfigs to return, can be limited by server. If not specified or not positive, the implementation will select a reasonable value.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results to be returned. This should be a `next_page_token` value returned from a previous List request. If unspecified, the first page of results is returned.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource name, which should be a project resource name in the format 'projects/{projectId}'.", +"location": "path", +"pattern": "^projects/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/scanConfigs", +"response": { +"$ref": "ListScanConfigsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"patch": { +"description": "Updates a ScanConfig. This method support partial update of a ScanConfig.", +"flatPath": "v1/projects/{projectsId}/scanConfigs/{scanConfigsId}", +"httpMethod": "PATCH", +"id": "websecurityscanner.projects.scanConfigs.patch", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "The resource name of the ScanConfig. The name follows the format of 'projects/{projectId}/scanConfigs/{scanConfigId}'. The ScanConfig IDs are generated by the system.", +"location": "path", +"pattern": "^projects/[^/]+/scanConfigs/[^/]+$", +"required": true, +"type": "string" +}, +"updateMask": { +"description": "Required. 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": "v1/{+name}", +"request": { +"$ref": "ScanConfig" +}, +"response": { +"$ref": "ScanConfig" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"start": { +"description": "Start a ScanRun according to the given ScanConfig.", +"flatPath": "v1/projects/{projectsId}/scanConfigs/{scanConfigsId}:start", +"httpMethod": "POST", +"id": "websecurityscanner.projects.scanConfigs.start", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the ScanConfig to be used. The name follows the format of 'projects/{projectId}/scanConfigs/{scanConfigId}'.", +"location": "path", +"pattern": "^projects/[^/]+/scanConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:start", +"request": { +"$ref": "StartScanRunRequest" +}, +"response": { +"$ref": "ScanRun" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"scanRuns": { +"methods": { +"get": { +"description": "Gets a ScanRun.", +"flatPath": "v1/projects/{projectsId}/scanConfigs/{scanConfigsId}/scanRuns/{scanRunsId}", +"httpMethod": "GET", +"id": "websecurityscanner.projects.scanConfigs.scanRuns.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the ScanRun to be returned. The name follows the format of 'projects/{projectId}/scanConfigs/{scanConfigId}/scanRuns/{scanRunId}'.", +"location": "path", +"pattern": "^projects/[^/]+/scanConfigs/[^/]+/scanRuns/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "ScanRun" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "Lists ScanRuns under a given ScanConfig, in descending order of ScanRun stop time.", +"flatPath": "v1/projects/{projectsId}/scanConfigs/{scanConfigsId}/scanRuns", +"httpMethod": "GET", +"id": "websecurityscanner.projects.scanConfigs.scanRuns.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of ScanRuns to return, can be limited by server. If not specified or not positive, the implementation will select a reasonable value.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results to be returned. This should be a `next_page_token` value returned from a previous List request. If unspecified, the first page of results is returned.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource name, which should be a scan resource name in the format 'projects/{projectId}/scanConfigs/{scanConfigId}'.", +"location": "path", +"pattern": "^projects/[^/]+/scanConfigs/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/scanRuns", +"response": { +"$ref": "ListScanRunsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"stop": { +"description": "Stops a ScanRun. The stopped ScanRun is returned.", +"flatPath": "v1/projects/{projectsId}/scanConfigs/{scanConfigsId}/scanRuns/{scanRunsId}:stop", +"httpMethod": "POST", +"id": "websecurityscanner.projects.scanConfigs.scanRuns.stop", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the ScanRun to be stopped. The name follows the format of 'projects/{projectId}/scanConfigs/{scanConfigId}/scanRuns/{scanRunId}'.", +"location": "path", +"pattern": "^projects/[^/]+/scanConfigs/[^/]+/scanRuns/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}:stop", +"request": { +"$ref": "StopScanRunRequest" +}, +"response": { +"$ref": "ScanRun" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +}, +"resources": { +"crawledUrls": { +"methods": { +"list": { +"description": "List CrawledUrls under a given ScanRun.", +"flatPath": "v1/projects/{projectsId}/scanConfigs/{scanConfigsId}/scanRuns/{scanRunsId}/crawledUrls", +"httpMethod": "GET", +"id": "websecurityscanner.projects.scanConfigs.scanRuns.crawledUrls.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"pageSize": { +"description": "The maximum number of CrawledUrls to return, can be limited by server. If not specified or not positive, the implementation will select a reasonable value.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results to be returned. This should be a `next_page_token` value returned from a previous List request. If unspecified, the first page of results is returned.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource name, which should be a scan run resource name in the format 'projects/{projectId}/scanConfigs/{scanConfigId}/scanRuns/{scanRunId}'.", +"location": "path", +"pattern": "^projects/[^/]+/scanConfigs/[^/]+/scanRuns/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/crawledUrls", +"response": { +"$ref": "ListCrawledUrlsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"findingTypeStats": { +"methods": { +"list": { +"description": "List all FindingTypeStats under a given ScanRun.", +"flatPath": "v1/projects/{projectsId}/scanConfigs/{scanConfigsId}/scanRuns/{scanRunsId}/findingTypeStats", +"httpMethod": "GET", +"id": "websecurityscanner.projects.scanConfigs.scanRuns.findingTypeStats.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"parent": { +"description": "Required. The parent resource name, which should be a scan run resource name in the format 'projects/{projectId}/scanConfigs/{scanConfigId}/scanRuns/{scanRunId}'.", +"location": "path", +"pattern": "^projects/[^/]+/scanConfigs/[^/]+/scanRuns/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/findingTypeStats", +"response": { +"$ref": "ListFindingTypeStatsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +}, +"findings": { +"methods": { +"get": { +"description": "Gets a Finding.", +"flatPath": "v1/projects/{projectsId}/scanConfigs/{scanConfigsId}/scanRuns/{scanRunsId}/findings/{findingsId}", +"httpMethod": "GET", +"id": "websecurityscanner.projects.scanConfigs.scanRuns.findings.get", +"parameterOrder": [ +"name" +], +"parameters": { +"name": { +"description": "Required. The resource name of the Finding to be returned. The name follows the format of 'projects/{projectId}/scanConfigs/{scanConfigId}/scanRuns/{scanRunId}/findings/{findingId}'.", +"location": "path", +"pattern": "^projects/[^/]+/scanConfigs/[^/]+/scanRuns/[^/]+/findings/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+name}", +"response": { +"$ref": "Finding" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +}, +"list": { +"description": "List Findings under a given ScanRun.", +"flatPath": "v1/projects/{projectsId}/scanConfigs/{scanConfigsId}/scanRuns/{scanRunsId}/findings", +"httpMethod": "GET", +"id": "websecurityscanner.projects.scanConfigs.scanRuns.findings.list", +"parameterOrder": [ +"parent" +], +"parameters": { +"filter": { +"description": "The filter expression. The expression must be in the format: . Supported field: 'finding_type'. Supported operator: '='.", +"location": "query", +"type": "string" +}, +"pageSize": { +"description": "The maximum number of Findings to return, can be limited by server. If not specified or not positive, the implementation will select a reasonable value.", +"format": "int32", +"location": "query", +"type": "integer" +}, +"pageToken": { +"description": "A token identifying a page of results to be returned. This should be a `next_page_token` value returned from a previous List request. If unspecified, the first page of results is returned.", +"location": "query", +"type": "string" +}, +"parent": { +"description": "Required. The parent resource name, which should be a scan run resource name in the format 'projects/{projectId}/scanConfigs/{scanConfigId}/scanRuns/{scanRunId}'.", +"location": "path", +"pattern": "^projects/[^/]+/scanConfigs/[^/]+/scanRuns/[^/]+$", +"required": true, +"type": "string" +} +}, +"path": "v1/{+parent}/findings", +"response": { +"$ref": "ListFindingsResponse" +}, +"scopes": [ +"https://www.googleapis.com/auth/cloud-platform" +] +} +} +} +} +} +} +} +} +} +}, +"revision": "20240623", +"rootUrl": "https://websecurityscanner.googleapis.com/", +"schemas": { +"Authentication": { +"description": "Scan authentication configuration.", +"id": "Authentication", +"properties": { +"customAccount": { +"$ref": "CustomAccount", +"description": "Authentication using a custom account." +}, +"googleAccount": { +"$ref": "GoogleAccount", +"deprecated": true, +"description": "Authentication using a Google account." +}, +"iapCredential": { +"$ref": "IapCredential", +"description": "Authentication using Identity-Aware-Proxy (IAP)." +} +}, +"type": "object" +}, +"CrawledUrl": { +"description": "A CrawledUrl resource represents a URL that was crawled during a ScanRun. Web Security Scanner Service crawls the web applications, following all links within the scope of sites, to find the URLs to test against.", +"id": "CrawledUrl", +"properties": { +"body": { +"description": "Output only. The body of the request that was used to visit the URL.", +"type": "string" +}, +"httpMethod": { +"description": "Output only. The http method of the request that was used to visit the URL, in uppercase.", +"type": "string" +}, +"url": { +"description": "Output only. The URL that was crawled.", +"type": "string" +} +}, +"type": "object" +}, +"CustomAccount": { +"description": "Describes authentication configuration that uses a custom account.", +"id": "CustomAccount", +"properties": { +"loginUrl": { +"description": "Required. The login form URL of the website.", +"type": "string" +}, +"password": { +"description": "Required. Input only. The password of the custom account. The credential is stored encrypted and not returned in any response nor included in audit logs.", +"type": "string" +}, +"username": { +"description": "Required. The user name of the custom account.", +"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" +}, +"Finding": { +"description": "A Finding resource represents a vulnerability instance identified during a ScanRun.", +"id": "Finding", +"properties": { +"body": { +"description": "Output only. The body of the request that triggered the vulnerability.", +"type": "string" +}, +"description": { +"description": "Output only. The description of the vulnerability.", +"type": "string" +}, +"finalUrl": { +"description": "Output only. The URL where the browser lands when the vulnerability is detected.", +"type": "string" +}, +"findingType": { +"description": "Output only. The type of the Finding. Detailed and up-to-date information on findings can be found here: https://cloud.google.com/security-command-center/docs/how-to-remediate-web-security-scanner-findings", +"type": "string" +}, +"form": { +"$ref": "Form", +"description": "Output only. An addon containing information reported for a vulnerability with an HTML form, if any." +}, +"frameUrl": { +"description": "Output only. If the vulnerability was originated from nested IFrame, the immediate parent IFrame is reported.", +"type": "string" +}, +"fuzzedUrl": { +"description": "Output only. The URL produced by the server-side fuzzer and used in the request that triggered the vulnerability.", +"type": "string" +}, +"httpMethod": { +"description": "Output only. The http method of the request that triggered the vulnerability, in uppercase.", +"type": "string" +}, +"name": { +"description": "Output only. The resource name of the Finding. The name follows the format of 'projects/{projectId}/scanConfigs/{scanConfigId}/scanruns/{scanRunId}/findings/{findingId}'. The finding IDs are generated by the system.", +"type": "string" +}, +"outdatedLibrary": { +"$ref": "OutdatedLibrary", +"description": "Output only. An addon containing information about outdated libraries." +}, +"reproductionUrl": { +"description": "Output only. The URL containing human-readable payload that user can leverage to reproduce the vulnerability.", +"type": "string" +}, +"severity": { +"description": "Output only. The severity level of the reported vulnerability.", +"enum": [ +"SEVERITY_UNSPECIFIED", +"CRITICAL", +"HIGH", +"MEDIUM", +"LOW" +], +"enumDescriptions": [ +"No severity specified. The default value.", +"Critical severity.", +"High severity.", +"Medium severity.", +"Low severity." +], +"readOnly": true, +"type": "string" +}, +"trackingId": { +"description": "Output only. The tracking ID uniquely identifies a vulnerability instance across multiple ScanRuns.", +"type": "string" +}, +"violatingResource": { +"$ref": "ViolatingResource", +"description": "Output only. An addon containing detailed information regarding any resource causing the vulnerability such as JavaScript sources, image, audio files, etc." +}, +"vulnerableHeaders": { +"$ref": "VulnerableHeaders", +"description": "Output only. An addon containing information about vulnerable or missing HTTP headers." +}, +"vulnerableParameters": { +"$ref": "VulnerableParameters", +"description": "Output only. An addon containing information about request parameters which were found to be vulnerable." +}, +"xss": { +"$ref": "Xss", +"description": "Output only. An addon containing information reported for an XSS, if any." +}, +"xxe": { +"$ref": "Xxe", +"description": "Output only. An addon containing information reported for an XXE, if any.", +"readOnly": true +} +}, +"type": "object" +}, +"FindingTypeStats": { +"description": "A FindingTypeStats resource represents stats regarding a specific FindingType of Findings under a given ScanRun.", +"id": "FindingTypeStats", +"properties": { +"findingCount": { +"description": "Output only. The count of findings belonging to this finding type.", +"format": "int32", +"type": "integer" +}, +"findingType": { +"description": "Output only. The finding type associated with the stats.", +"type": "string" +} +}, +"type": "object" +}, +"Form": { +"description": "! Information about a vulnerability with an HTML.", +"id": "Form", +"properties": { +"actionUri": { +"description": "! The URI where to send the form when it's submitted.", +"type": "string" +}, +"fields": { +"description": "! The names of form fields related to the vulnerability.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"GoogleAccount": { +"deprecated": true, +"description": "Describes authentication configuration that uses a Google account.", +"id": "GoogleAccount", +"properties": { +"password": { +"description": "Required. Input only. The password of the Google account. The credential is stored encrypted and not returned in any response nor included in audit logs.", +"type": "string" +}, +"username": { +"description": "Required. The user name of the Google account.", +"type": "string" +} +}, +"type": "object" +}, +"Header": { +"description": "Describes a HTTP Header.", +"id": "Header", +"properties": { +"name": { +"description": "Header name.", +"type": "string" +}, +"value": { +"description": "Header value.", +"type": "string" +} +}, +"type": "object" +}, +"IapCredential": { +"description": "Describes authentication configuration for Identity-Aware-Proxy (IAP).", +"id": "IapCredential", +"properties": { +"iapTestServiceAccountInfo": { +"$ref": "IapTestServiceAccountInfo", +"description": "Authentication configuration when Web-Security-Scanner service account is added in Identity-Aware-Proxy (IAP) access policies." +} +}, +"type": "object" +}, +"IapTestServiceAccountInfo": { +"description": "Describes authentication configuration when Web-Security-Scanner service account is added in Identity-Aware-Proxy (IAP) access policies.", +"id": "IapTestServiceAccountInfo", +"properties": { +"targetAudienceClientId": { +"description": "Required. Describes OAuth2 client id of resources protected by Identity-Aware-Proxy (IAP).", +"type": "string" +} +}, +"type": "object" +}, +"ListCrawledUrlsResponse": { +"description": "Response for the `ListCrawledUrls` method.", +"id": "ListCrawledUrlsResponse", +"properties": { +"crawledUrls": { +"description": "The list of CrawledUrls returned.", +"items": { +"$ref": "CrawledUrl" +}, +"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" +}, +"ListFindingTypeStatsResponse": { +"description": "Response for the `ListFindingTypeStats` method.", +"id": "ListFindingTypeStatsResponse", +"properties": { +"findingTypeStats": { +"description": "The list of FindingTypeStats returned.", +"items": { +"$ref": "FindingTypeStats" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListFindingsResponse": { +"description": "Response for the `ListFindings` method.", +"id": "ListFindingsResponse", +"properties": { +"findings": { +"description": "The list of Findings returned.", +"items": { +"$ref": "Finding" +}, +"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" +}, +"ListScanConfigsResponse": { +"description": "Response for the `ListScanConfigs` method.", +"id": "ListScanConfigsResponse", +"properties": { +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +}, +"scanConfigs": { +"description": "The list of ScanConfigs returned.", +"items": { +"$ref": "ScanConfig" +}, +"type": "array" +} +}, +"type": "object" +}, +"ListScanRunsResponse": { +"description": "Response for the `ListScanRuns` method.", +"id": "ListScanRunsResponse", +"properties": { +"nextPageToken": { +"description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", +"type": "string" +}, +"scanRuns": { +"description": "The list of ScanRuns returned.", +"items": { +"$ref": "ScanRun" +}, +"type": "array" +} +}, +"type": "object" +}, +"OutdatedLibrary": { +"description": "Information reported for an outdated library.", +"id": "OutdatedLibrary", +"properties": { +"learnMoreUrls": { +"description": "URLs to learn more information about the vulnerabilities in the library.", +"items": { +"type": "string" +}, +"type": "array" +}, +"libraryName": { +"description": "The name of the outdated library.", +"type": "string" +}, +"version": { +"description": "The version number.", +"type": "string" +} +}, +"type": "object" +}, +"ScanConfig": { +"description": "A ScanConfig resource contains the configurations to launch a scan.", +"id": "ScanConfig", +"properties": { +"authentication": { +"$ref": "Authentication", +"description": "The authentication configuration. If specified, service will use the authentication configuration during scanning." +}, +"blacklistPatterns": { +"description": "The excluded URL patterns as described in https://cloud.google.com/security-command-center/docs/how-to-use-web-security-scanner#excluding_urls", +"items": { +"type": "string" +}, +"type": "array" +}, +"displayName": { +"description": "Required. The user provided display name of the ScanConfig.", +"type": "string" +}, +"exportToSecurityCommandCenter": { +"description": "Controls export of scan configurations and results to Security Command Center.", +"enum": [ +"EXPORT_TO_SECURITY_COMMAND_CENTER_UNSPECIFIED", +"ENABLED", +"DISABLED" +], +"enumDescriptions": [ +"Use default, which is ENABLED.", +"Export results of this scan to Security Command Center.", +"Do not export results of this scan to Security Command Center." +], +"type": "string" +}, +"ignoreHttpStatusErrors": { +"description": "Whether to keep scanning even if most requests return HTTP error codes.", +"type": "boolean" +}, +"managedScan": { +"description": "Whether the scan config is managed by Web Security Scanner, output only.", +"type": "boolean" +}, +"maxQps": { +"description": "The maximum QPS during scanning. A valid value ranges from 5 to 20 inclusively. If the field is unspecified or its value is set 0, server will default to 15. Other values outside of [5, 20] range will be rejected with INVALID_ARGUMENT error.", +"format": "int32", +"type": "integer" +}, +"name": { +"description": "The resource name of the ScanConfig. The name follows the format of 'projects/{projectId}/scanConfigs/{scanConfigId}'. The ScanConfig IDs are generated by the system.", +"type": "string" +}, +"riskLevel": { +"description": "The risk level selected for the scan", +"enum": [ +"RISK_LEVEL_UNSPECIFIED", +"NORMAL", +"LOW" +], +"enumDescriptions": [ +"Use default, which is NORMAL.", +"Normal scanning (Recommended)", +"Lower impact scanning" +], +"type": "string" +}, +"schedule": { +"$ref": "Schedule", +"description": "The schedule of the ScanConfig." +}, +"startingUrls": { +"description": "Required. The starting URLs from which the scanner finds site pages.", +"items": { +"type": "string" +}, +"type": "array" +}, +"staticIpScan": { +"description": "Whether the scan configuration has enabled static IP address scan feature. If enabled, the scanner will access applications from static IP addresses.", +"type": "boolean" +}, +"userAgent": { +"description": "The user agent used during scanning.", +"enum": [ +"USER_AGENT_UNSPECIFIED", +"CHROME_LINUX", +"CHROME_ANDROID", +"SAFARI_IPHONE" +], +"enumDescriptions": [ +"The user agent is unknown. Service will default to CHROME_LINUX.", +"Chrome on Linux. This is the service default if unspecified.", +"Chrome on Android.", +"Safari on IPhone." +], +"type": "string" +} +}, +"type": "object" +}, +"ScanConfigError": { +"description": "Defines a custom error message used by CreateScanConfig and UpdateScanConfig APIs when scan configuration validation fails. It is also reported as part of a ScanRunErrorTrace message if scan validation fails due to a scan configuration error.", +"id": "ScanConfigError", +"properties": { +"code": { +"description": "Output only. Indicates the reason code for a configuration failure.", +"enum": [ +"CODE_UNSPECIFIED", +"OK", +"INTERNAL_ERROR", +"APPENGINE_API_BACKEND_ERROR", +"APPENGINE_API_NOT_ACCESSIBLE", +"APPENGINE_DEFAULT_HOST_MISSING", +"CANNOT_USE_GOOGLE_COM_ACCOUNT", +"CANNOT_USE_OWNER_ACCOUNT", +"COMPUTE_API_BACKEND_ERROR", +"COMPUTE_API_NOT_ACCESSIBLE", +"CUSTOM_LOGIN_URL_DOES_NOT_BELONG_TO_CURRENT_PROJECT", +"CUSTOM_LOGIN_URL_MALFORMED", +"CUSTOM_LOGIN_URL_MAPPED_TO_NON_ROUTABLE_ADDRESS", +"CUSTOM_LOGIN_URL_MAPPED_TO_UNRESERVED_ADDRESS", +"CUSTOM_LOGIN_URL_HAS_NON_ROUTABLE_IP_ADDRESS", +"CUSTOM_LOGIN_URL_HAS_UNRESERVED_IP_ADDRESS", +"DUPLICATE_SCAN_NAME", +"INVALID_FIELD_VALUE", +"FAILED_TO_AUTHENTICATE_TO_TARGET", +"FINDING_TYPE_UNSPECIFIED", +"FORBIDDEN_TO_SCAN_COMPUTE", +"FORBIDDEN_UPDATE_TO_MANAGED_SCAN", +"MALFORMED_FILTER", +"MALFORMED_RESOURCE_NAME", +"PROJECT_INACTIVE", +"REQUIRED_FIELD", +"RESOURCE_NAME_INCONSISTENT", +"SCAN_ALREADY_RUNNING", +"SCAN_NOT_RUNNING", +"SEED_URL_DOES_NOT_BELONG_TO_CURRENT_PROJECT", +"SEED_URL_MALFORMED", +"SEED_URL_MAPPED_TO_NON_ROUTABLE_ADDRESS", +"SEED_URL_MAPPED_TO_UNRESERVED_ADDRESS", +"SEED_URL_HAS_NON_ROUTABLE_IP_ADDRESS", +"SEED_URL_HAS_UNRESERVED_IP_ADDRESS", +"SERVICE_ACCOUNT_NOT_CONFIGURED", +"TOO_MANY_SCANS", +"UNABLE_TO_RESOLVE_PROJECT_INFO", +"UNSUPPORTED_BLACKLIST_PATTERN_FORMAT", +"UNSUPPORTED_FILTER", +"UNSUPPORTED_FINDING_TYPE", +"UNSUPPORTED_URL_SCHEME", +"CLOUD_ASSET_INVENTORY_ASSET_NOT_FOUND" +], +"enumDescriptions": [ +"There is no error.", +"There is no error.", +"Indicates an internal server error. Please DO NOT USE THIS ERROR CODE unless the root cause is truly unknown.", +"One of the seed URLs is an App Engine URL but we cannot validate the scan settings due to an App Engine API backend error.", +"One of the seed URLs is an App Engine URL but we cannot access the App Engine API to validate scan settings.", +"One of the seed URLs is an App Engine URL but the Default Host of the App Engine is not set.", +"Google corporate accounts can not be used for scanning.", +"The account of the scan creator can not be used for scanning.", +"This scan targets Compute Engine, but we cannot validate scan settings due to a Compute Engine API backend error.", +"This scan targets Compute Engine, but we cannot access the Compute Engine API to validate the scan settings.", +"The Custom Login URL does not belong to the current project.", +"The Custom Login URL is malformed (can not be parsed).", +"The Custom Login URL is mapped to a non-routable IP address in DNS.", +"The Custom Login URL is mapped to an IP address which is not reserved for the current project.", +"The Custom Login URL has a non-routable IP address.", +"The Custom Login URL has an IP address which is not reserved for the current project.", +"Another scan with the same name (case-sensitive) already exists.", +"A field is set to an invalid value.", +"There was an error trying to authenticate to the scan target.", +"Finding type value is not specified in the list findings request.", +"Scan targets Compute Engine, yet current project was not whitelisted for Google Compute Engine Scanning Alpha access.", +"User tries to update managed scan", +"The supplied filter is malformed. For example, it can not be parsed, does not have a filter type in expression, or the same filter type appears more than once.", +"The supplied resource name is malformed (can not be parsed).", +"The current project is not in an active state.", +"A required field is not set.", +"Project id, scanconfig id, scanrun id, or finding id are not consistent with each other in resource name.", +"The scan being requested to start is already running.", +"The scan that was requested to be stopped is not running.", +"One of the seed URLs does not belong to the current project.", +"One of the seed URLs is malformed (can not be parsed).", +"One of the seed URLs is mapped to a non-routable IP address in DNS.", +"One of the seed URLs is mapped to an IP address which is not reserved for the current project.", +"One of the seed URLs has on-routable IP address.", +"One of the seed URLs has an IP address that is not reserved for the current project.", +"The Web Security Scanner service account is not configured under the project.", +"A project has reached the maximum number of scans.", +"Resolving the details of the current project fails.", +"One or more blacklist patterns were in the wrong format.", +"The supplied filter is not supported.", +"The supplied finding type is not supported. For example, we do not provide findings of the given finding type.", +"The URL scheme of one or more of the supplied URLs is not supported.", +"CAI is not able to list assets." +], +"type": "string" +}, +"fieldName": { +"description": "Output only. Indicates the full name of the ScanConfig field that triggers this error, for example \"scan_config.max_qps\". This field is provided for troubleshooting purposes only and its actual value can change in the future.", +"type": "string" +} +}, +"type": "object" +}, +"ScanRun": { +"description": "A ScanRun is a output-only resource representing an actual run of the scan. Next id: 12", +"id": "ScanRun", +"properties": { +"endTime": { +"description": "Output only. The time at which the ScanRun reached termination state - that the ScanRun is either finished or stopped by user.", +"format": "google-datetime", +"type": "string" +}, +"errorTrace": { +"$ref": "ScanRunErrorTrace", +"description": "Output only. If result_state is an ERROR, this field provides the primary reason for scan's termination and more details, if such are available." +}, +"executionState": { +"description": "Output only. The execution state of the ScanRun.", +"enum": [ +"EXECUTION_STATE_UNSPECIFIED", +"QUEUED", +"SCANNING", +"FINISHED" +], +"enumDescriptions": [ +"Represents an invalid state caused by internal server error. This value should never be returned.", +"The scan is waiting in the queue.", +"The scan is in progress.", +"The scan is either finished or stopped by user." +], +"type": "string" +}, +"hasVulnerabilities": { +"description": "Output only. Whether the scan run has found any vulnerabilities.", +"type": "boolean" +}, +"name": { +"description": "Output only. The resource name of the ScanRun. The name follows the format of 'projects/{projectId}/scanConfigs/{scanConfigId}/scanRuns/{scanRunId}'. The ScanRun IDs are generated by the system.", +"type": "string" +}, +"progressPercent": { +"description": "Output only. The percentage of total completion ranging from 0 to 100. If the scan is in queue, the value is 0. If the scan is running, the value ranges from 0 to 100. If the scan is finished, the value is 100.", +"format": "int32", +"type": "integer" +}, +"resultState": { +"description": "Output only. The result state of the ScanRun. This field is only available after the execution state reaches \"FINISHED\".", +"enum": [ +"RESULT_STATE_UNSPECIFIED", +"SUCCESS", +"ERROR", +"KILLED" +], +"enumDescriptions": [ +"Default value. This value is returned when the ScanRun is not yet finished.", +"The scan finished without errors.", +"The scan finished with errors.", +"The scan was terminated by user." +], +"type": "string" +}, +"startTime": { +"description": "Output only. The time at which the ScanRun started.", +"format": "google-datetime", +"type": "string" +}, +"urlsCrawledCount": { +"description": "Output only. The number of URLs crawled during this ScanRun. If the scan is in progress, the value represents the number of URLs crawled up to now.", +"format": "int64", +"type": "string" +}, +"urlsTestedCount": { +"description": "Output only. The number of URLs tested during this ScanRun. If the scan is in progress, the value represents the number of URLs tested up to now. The number of URLs tested is usually larger than the number URLS crawled because typically a crawled URL is tested with multiple test payloads.", +"format": "int64", +"type": "string" +}, +"warningTraces": { +"description": "Output only. A list of warnings, if such are encountered during this scan run.", +"items": { +"$ref": "ScanRunWarningTrace" +}, +"type": "array" +} +}, +"type": "object" +}, +"ScanRunErrorTrace": { +"description": "Output only. Defines an error trace message for a ScanRun.", +"id": "ScanRunErrorTrace", +"properties": { +"code": { +"description": "Output only. Indicates the error reason code.", +"enum": [ +"CODE_UNSPECIFIED", +"INTERNAL_ERROR", +"SCAN_CONFIG_ISSUE", +"AUTHENTICATION_CONFIG_ISSUE", +"TIMED_OUT_WHILE_SCANNING", +"TOO_MANY_REDIRECTS", +"TOO_MANY_HTTP_ERRORS", +"STARTING_URLS_CRAWL_HTTP_ERRORS" +], +"enumDescriptions": [ +"Default value is never used.", +"Indicates that the scan run failed due to an internal server error.", +"Indicates a scan configuration error, usually due to outdated ScanConfig settings, such as starting_urls or the DNS configuration.", +"Indicates an authentication error, usually due to outdated ScanConfig authentication settings.", +"Indicates a scan operation timeout, usually caused by a very large site.", +"Indicates that a scan encountered excessive redirects, either to authentication or some other page outside of the scan scope.", +"Indicates that a scan encountered numerous errors from the web site pages. When available, most_common_http_error_code field indicates the most common HTTP error code encountered during the scan.", +"Indicates that some of the starting web urls returned HTTP errors during the scan." +], +"type": "string" +}, +"mostCommonHttpErrorCode": { +"description": "Output only. If the scan encounters TOO_MANY_HTTP_ERRORS, this field indicates the most common HTTP error code, if such is available. For example, if this code is 404, the scan has encountered too many NOT_FOUND responses.", +"format": "int32", +"type": "integer" +}, +"scanConfigError": { +"$ref": "ScanConfigError", +"description": "Output only. If the scan encounters SCAN_CONFIG_ISSUE error, this field has the error message encountered during scan configuration validation that is performed before each scan run." +} +}, +"type": "object" +}, +"ScanRunWarningTrace": { +"description": "Output only. Defines a warning trace message for ScanRun. Warning traces provide customers with useful information that helps make the scanning process more effective.", +"id": "ScanRunWarningTrace", +"properties": { +"code": { +"description": "Output only. Indicates the warning code.", +"enum": [ +"CODE_UNSPECIFIED", +"INSUFFICIENT_CRAWL_RESULTS", +"TOO_MANY_CRAWL_RESULTS", +"TOO_MANY_FUZZ_TASKS", +"BLOCKED_BY_IAP", +"NO_STARTING_URL_FOUND_FOR_MANAGED_SCAN" +], +"enumDescriptions": [ +"Default value is never used.", +"Indicates that a scan discovered an unexpectedly low number of URLs. This is sometimes caused by complex navigation features or by using a single URL for numerous pages.", +"Indicates that a scan discovered too many URLs to test, or excessive redundant URLs.", +"Indicates that too many tests have been generated for the scan. Customer should try reducing the number of starting URLs, increasing the QPS rate, or narrowing down the scope of the scan using the excluded patterns.", +"Indicates that a scan is blocked by IAP.", +"Indicates that no seeds is found for a scan" +], +"type": "string" +} +}, +"type": "object" +}, +"Schedule": { +"description": "Scan schedule configuration.", +"id": "Schedule", +"properties": { +"intervalDurationDays": { +"description": "Required. The duration of time between executions in days.", +"format": "int32", +"type": "integer" +}, +"scheduleTime": { +"description": "A timestamp indicates when the next run will be scheduled. The value is refreshed by the server after each run. If unspecified, it will default to current server time, which means the scan will be scheduled to start immediately.", +"format": "google-datetime", +"type": "string" +} +}, +"type": "object" +}, +"StartScanRunRequest": { +"description": "Request for the `StartScanRun` method.", +"id": "StartScanRunRequest", +"properties": {}, +"type": "object" +}, +"StopScanRunRequest": { +"description": "Request for the `StopScanRun` method.", +"id": "StopScanRunRequest", +"properties": {}, +"type": "object" +}, +"ViolatingResource": { +"description": "Information regarding any resource causing the vulnerability such as JavaScript sources, image, audio files, etc.", +"id": "ViolatingResource", +"properties": { +"contentType": { +"description": "The MIME type of this resource.", +"type": "string" +}, +"resourceUrl": { +"description": "URL of this violating resource.", +"type": "string" +} +}, +"type": "object" +}, +"VulnerableHeaders": { +"description": "Information about vulnerable or missing HTTP Headers.", +"id": "VulnerableHeaders", +"properties": { +"headers": { +"description": "List of vulnerable headers.", +"items": { +"$ref": "Header" +}, +"type": "array" +}, +"missingHeaders": { +"description": "List of missing headers.", +"items": { +"$ref": "Header" +}, +"type": "array" +} +}, +"type": "object" +}, +"VulnerableParameters": { +"description": "Information about vulnerable request parameters.", +"id": "VulnerableParameters", +"properties": { +"parameterNames": { +"description": "The vulnerable parameter names.", +"items": { +"type": "string" +}, +"type": "array" +} +}, +"type": "object" +}, +"Xss": { +"description": "Information reported for an XSS.", +"id": "Xss", +"properties": { +"attackVector": { +"description": "The attack vector of the payload triggering this XSS.", +"enum": [ +"ATTACK_VECTOR_UNSPECIFIED", +"LOCAL_STORAGE", +"SESSION_STORAGE", +"WINDOW_NAME", +"REFERRER", +"FORM_INPUT", +"COOKIE", +"POST_MESSAGE", +"GET_PARAMETERS", +"URL_FRAGMENT", +"HTML_COMMENT", +"POST_PARAMETERS", +"PROTOCOL", +"STORED_XSS", +"SAME_ORIGIN", +"USER_CONTROLLABLE_URL" +], +"enumDescriptions": [ +"Unknown attack vector.", +"The attack comes from fuzzing the browser's localStorage.", +"The attack comes from fuzzing the browser's sessionStorage.", +"The attack comes from fuzzing the window's name property.", +"The attack comes from fuzzing the referrer property.", +"The attack comes from fuzzing an input element.", +"The attack comes from fuzzing the browser's cookies.", +"The attack comes from hijacking the post messaging mechanism.", +"The attack comes from fuzzing parameters in the url.", +"The attack comes from fuzzing the fragment in the url.", +"The attack comes from fuzzing the HTML comments.", +"The attack comes from fuzzing the POST parameters.", +"The attack comes from fuzzing the protocol.", +"The attack comes from the server side and is stored.", +"The attack is a Same-Origin Method Execution attack via a GET parameter.", +"The attack payload is received from a third-party host via a URL that is user-controllable" +], +"type": "string" +}, +"errorMessage": { +"description": "An error message generated by a javascript breakage.", +"type": "string" +}, +"stackTraces": { +"description": "Stack traces leading to the point where the XSS occurred.", +"items": { +"type": "string" +}, +"type": "array" +}, +"storedXssSeedingUrl": { +"description": "The reproduction url for the seeding POST request of a Stored XSS.", +"type": "string" +} +}, +"type": "object" +}, +"Xxe": { +"description": "Information reported for an XXE.", +"id": "Xxe", +"properties": { +"payloadLocation": { +"description": "Location within the request where the payload was placed.", +"enum": [ +"LOCATION_UNSPECIFIED", +"COMPLETE_REQUEST_BODY" +], +"enumDescriptions": [ +"Unknown Location.", +"The XML payload replaced the complete request body." +], +"type": "string" +}, +"payloadValue": { +"description": "The XML string that triggered the XXE vulnerability. Non-payload values might be redacted.", +"type": "string" +} +}, +"type": "object" +} +}, +"servicePath": "", +"title": "Web Security Scanner API", +"version": "v1", +"version_module": true +} \ No newline at end of file