diff --git a/etc/api/abusiveexperiencereport/v1/abusiveexperiencereport-api.json b/etc/api/abusiveexperiencereport/v1/abusiveexperiencereport-api.json index 719a5ba100..a7bd2de3b3 100644 --- a/etc/api/abusiveexperiencereport/v1/abusiveexperiencereport-api.json +++ b/etc/api/abusiveexperiencereport/v1/abusiveexperiencereport-api.json @@ -139,7 +139,7 @@ } } }, - "revision": "20240207", + "revision": "20240415", "rootUrl": "https://abusiveexperiencereport.googleapis.com/", "schemas": { "SiteSummaryResponse": { diff --git a/etc/api/acceleratedmobilepageurl/v1/acceleratedmobilepageurl-api.json b/etc/api/acceleratedmobilepageurl/v1/acceleratedmobilepageurl-api.json index 588936aeee..d15e23080e 100644 --- a/etc/api/acceleratedmobilepageurl/v1/acceleratedmobilepageurl-api.json +++ b/etc/api/acceleratedmobilepageurl/v1/acceleratedmobilepageurl-api.json @@ -115,7 +115,7 @@ } } }, - "revision": "20240303", + "revision": "20240417", "rootUrl": "https://acceleratedmobilepageurl.googleapis.com/", "schemas": { "AmpUrl": { diff --git a/etc/api/accessapproval/v1/accessapproval-api.json b/etc/api/accessapproval/v1/accessapproval-api.json index fb6518ffdd..44edba763b 100644 --- a/etc/api/accessapproval/v1/accessapproval-api.json +++ b/etc/api/accessapproval/v1/accessapproval-api.json @@ -913,7 +913,7 @@ } } }, - "revision": "20240223", + "revision": "20240412", "rootUrl": "https://accessapproval.googleapis.com/", "schemas": { "AccessApprovalServiceAccount": { diff --git a/etc/api/accesscontextmanager/v1/accesscontextmanager-api.json b/etc/api/accesscontextmanager/v1/accesscontextmanager-api.json index 1fd444f0f9..1a49790930 100644 --- a/etc/api/accesscontextmanager/v1/accesscontextmanager-api.json +++ b/etc/api/accesscontextmanager/v1/accesscontextmanager-api.json @@ -1290,7 +1290,7 @@ } } }, - "revision": "20240226", + "revision": "20240417", "rootUrl": "https://accesscontextmanager.googleapis.com/", "schemas": { "AccessContextManagerOperationMetadata": { @@ -1689,7 +1689,7 @@ "id": "EgressFrom", "properties": { "identities": { - "description": "A list of identities that are allowed access through this [EgressPolicy], in the format of `user:{email_id}` or `serviceAccount:{email_id}`.", + "description": "A list of identities that are allowed access through [EgressPolicy]. Identities can be an individual user, service account, Google group, or third-party identity. The `v1` identities that have the prefix `user`, `group`, `serviceAccount`, `principal`, and `principalSet` in https://cloud.google.com/iam/docs/principal-identifiers#v1 are supported.", "items": { "type": "string" }, @@ -1766,7 +1766,7 @@ "id": "EgressTo", "properties": { "externalResources": { - "description": "A list of external resources that are allowed to be accessed. Only AWS and Azure resources are supported. For Amazon S3, the supported format is s3://BUCKET_NAME. For Azure Storage, the supported format is azure://myaccount.blob.core.windows.net/CONTAINER_NAME. A request matches if it contains an external resource in this list (Example: s3://bucket/path). Currently '*' is not allowed.", + "description": "A list of external resources that are allowed to be accessed. Only AWS and Azure resources are supported. For Amazon S3, the supported formats are s3://BUCKET_NAME, s3a://BUCKET_NAME, and s3n://BUCKET_NAME. For Azure Storage, the supported format is azure://myaccount.blob.core.windows.net/CONTAINER_NAME. A request matches if it contains an external resource in this list (Example: s3://bucket/path). Currently '*' is not allowed.", "items": { "type": "string" }, @@ -1881,7 +1881,7 @@ "id": "IngressFrom", "properties": { "identities": { - "description": "A list of identities that are allowed access through this ingress policy, in the format of `user:{email_id}` or `serviceAccount:{email_id}`.", + "description": "A list of identities that are allowed access through [IngressPolicy]. Identities can be an individual user, service account, Google group, or third-party identity. The `v1` identities that have the prefix `user`, `group`, `serviceAccount`, `principal`, and `principalSet` in https://cloud.google.com/iam/docs/principal-identifiers#v1 are supported.", "items": { "type": "string" }, diff --git a/etc/api/adexchangebuyer2/v2beta1/adexchangebuyer2-api.json b/etc/api/adexchangebuyer2/v2beta1/adexchangebuyer2-api.json index 8f32533389..a0ea25174f 100644 --- a/etc/api/adexchangebuyer2/v2beta1/adexchangebuyer2-api.json +++ b/etc/api/adexchangebuyer2/v2beta1/adexchangebuyer2-api.json @@ -3115,7 +3115,7 @@ } } }, - "revision": "20240305", + "revision": "20240418", "rootUrl": "https://adexchangebuyer.googleapis.com/", "schemas": { "AbsoluteDateRange": { diff --git a/etc/api/adexperiencereport/v1/adexperiencereport-api.json b/etc/api/adexperiencereport/v1/adexperiencereport-api.json index 800c3ec8b3..39a5b11792 100644 --- a/etc/api/adexperiencereport/v1/adexperiencereport-api.json +++ b/etc/api/adexperiencereport/v1/adexperiencereport-api.json @@ -139,7 +139,7 @@ } } }, - "revision": "20240207", + "revision": "20240415", "rootUrl": "https://adexperiencereport.googleapis.com/", "schemas": { "PlatformSummary": { diff --git a/etc/api/admin/datatransfer_v1/admin-api.json b/etc/api/admin/datatransfer_v1/admin-api.json index 247037c95b..3b70ddd595 100644 --- a/etc/api/admin/datatransfer_v1/admin-api.json +++ b/etc/api/admin/datatransfer_v1/admin-api.json @@ -272,7 +272,7 @@ } } }, - "revision": "20240227", + "revision": "20240409", "rootUrl": "https://admin.googleapis.com/", "schemas": { "Application": { diff --git a/etc/api/admin/directory_v1/admin-api.json b/etc/api/admin/directory_v1/admin-api.json index 027aa37308..0af7b491ad 100644 --- a/etc/api/admin/directory_v1/admin-api.json +++ b/etc/api/admin/directory_v1/admin-api.json @@ -4671,7 +4671,7 @@ } } }, - "revision": "20240227", + "revision": "20240409", "rootUrl": "https://admin.googleapis.com/", "schemas": { "Alias": { @@ -4810,6 +4810,30 @@ }, "type": "object" }, + "BacklightInfo": { + "description": "Information about the device's backlights.", + "id": "BacklightInfo", + "properties": { + "brightness": { + "description": "Output only. Current brightness of the backlight, between 0 and max_brightness.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "maxBrightness": { + "description": "Output only. Maximum brightness for the backlight.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "path": { + "description": "Output only. Path to this backlight on the system. Useful if the caller needs to correlate with other information.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "BatchChangeChromeOsDeviceStatusRequest": { "description": "A request for changing the status of a batch of ChromeOS devices.", "id": "BatchChangeChromeOsDeviceStatusRequest", @@ -5383,6 +5407,14 @@ "format": "int64", "type": "string" }, + "backlightInfo": { + "description": "Output only. Contains backlight information for the device.", + "items": { + "$ref": "BacklightInfo" + }, + "readOnly": true, + "type": "array" + }, "bootMode": { "description": "The boot mode for the device. The possible values are: * `Verified`: The device is running a valid version of the Chrome OS. * `Dev`: The devices's developer hardware switch is enabled. When booted, the device has a command line shell. For an example of a developer switch, see the [Chromebook developer information](https://www.chromium.org/chromium-os/developer-information-for-chrome-os-devices/samsung-series-5-chromebook#TOC-Developer-switch).", "type": "string" diff --git a/etc/api/admin/reports_v1/admin-api.json b/etc/api/admin/reports_v1/admin-api.json index 0c1d896265..1a3d1ccd0d 100644 --- a/etc/api/admin/reports_v1/admin-api.json +++ b/etc/api/admin/reports_v1/admin-api.json @@ -626,7 +626,7 @@ } } }, - "revision": "20240227", + "revision": "20240409", "rootUrl": "https://admin.googleapis.com/", "schemas": { "Activities": { diff --git a/etc/api/admob/v1/admob-api.json b/etc/api/admob/v1/admob-api.json index 2d820241f7..11637b0d81 100644 --- a/etc/api/admob/v1/admob-api.json +++ b/etc/api/admob/v1/admob-api.json @@ -321,7 +321,7 @@ } } }, - "revision": "20240223", + "revision": "20240418", "rootUrl": "https://admob.googleapis.com/", "schemas": { "AdUnit": { diff --git a/etc/api/admob/v1beta/admob-api.json b/etc/api/admob/v1beta/admob-api.json index ce28bf9e8f..9f7039ed5a 100644 --- a/etc/api/admob/v1beta/admob-api.json +++ b/etc/api/admob/v1beta/admob-api.json @@ -758,7 +758,7 @@ } } }, - "revision": "20240223", + "revision": "20240418", "rootUrl": "https://admob.googleapis.com/", "schemas": { "AdSource": { diff --git a/etc/api/adsense/v2/adsense-api.json b/etc/api/adsense/v2/adsense-api.json index 9e7a43e9b3..754019b13d 100644 --- a/etc/api/adsense/v2/adsense-api.json +++ b/etc/api/adsense/v2/adsense-api.json @@ -17,6 +17,7 @@ "description": "The AdSense Management API allows publishers to access their inventory and run earnings and performance reports.", "discoveryVersion": "v1", "documentationLink": "https://developers.google.com/adsense/management/", + "fullyEncodeReservedExpansion": true, "icons": { "x16": "http://www.google.com/images/icons/product/search-16.gif", "x32": "http://www.google.com/images/icons/product/search-32.gif" @@ -323,7 +324,7 @@ "adunits": { "methods": { "create": { - "description": "Creates an ad unit. This method can only be used by projects enabled for the [AdSense for Platforms](https://developers.google.com/adsense/platforms/) product. Note that ad units can only be created for ad clients with an \"AFC\" product code. For more info see the [AdClient resource](/adsense/management/reference/rest/v2/accounts.adclients). For now, this method can only be used to create `DISPLAY` ad units. See: https://support.google.com/adsense/answer/9183566", + "description": "Creates an ad unit. This method can be called only by a restricted set of projects, which are usually owned by [AdSense for Platforms](https://developers.google.com/adsense/platforms/) publishers. Contact your account manager if you need to use this method. Note that ad units can only be created for ad clients with an \"AFC\" product code. For more info see the [AdClient resource](/adsense/management/reference/rest/v2/accounts.adclients). For now, this method can only be used to create `DISPLAY` ad units. See: https://support.google.com/adsense/answer/9183566", "flatPath": "v2/accounts/{accountsId}/adclients/{adclientsId}/adunits", "httpMethod": "POST", "id": "adsense.accounts.adclients.adunits.create", @@ -477,7 +478,7 @@ ] }, "patch": { - "description": "Updates an ad unit. This method can only be used by projects enabled for the [AdSense for Platforms](https://developers.google.com/adsense/platforms/) product. For now, this method can only be used to update `DISPLAY` ad units. See: https://support.google.com/adsense/answer/9183566", + "description": "Updates an ad unit. This method can be called only by a restricted set of projects, which are usually owned by [AdSense for Platforms](https://developers.google.com/adsense/platforms/) publishers. Contact your account manager if you need to use this method. For now, this method can only be used to update `DISPLAY` ad units. See: https://support.google.com/adsense/answer/9183566", "flatPath": "v2/accounts/{accountsId}/adclients/{adclientsId}/adunits/{adunitsId}", "httpMethod": "PATCH", "id": "adsense.accounts.adclients.adunits.patch", @@ -515,7 +516,7 @@ "customchannels": { "methods": { "create": { - "description": "Creates a custom channel. This method can only be used by projects enabled for the [AdSense for Platforms](https://developers.google.com/adsense/platforms/) product.", + "description": "Creates a custom channel. This method can be called only by a restricted set of projects, which are usually owned by [AdSense for Platforms](https://developers.google.com/adsense/platforms/) publishers. Contact your account manager if you need to use this method.", "flatPath": "v2/accounts/{accountsId}/adclients/{adclientsId}/customchannels", "httpMethod": "POST", "id": "adsense.accounts.adclients.customchannels.create", @@ -543,7 +544,7 @@ ] }, "delete": { - "description": "Deletes a custom channel. This method can only be used by projects enabled for the [AdSense for Platforms](https://developers.google.com/adsense/platforms/) product.", + "description": "Deletes a custom channel. This method can be called only by a restricted set of projects, which are usually owned by [AdSense for Platforms](https://developers.google.com/adsense/platforms/) publishers. Contact your account manager if you need to use this method.", "flatPath": "v2/accounts/{accountsId}/adclients/{adclientsId}/customchannels/{customchannelsId}", "httpMethod": "DELETE", "id": "adsense.accounts.adclients.customchannels.delete", @@ -668,7 +669,7 @@ ] }, "patch": { - "description": "Updates a custom channel. This method can only be used by projects enabled for the [AdSense for Platforms](https://developers.google.com/adsense/platforms/) product.", + "description": "Updates a custom channel. This method can be called only by a restricted set of projects, which are usually owned by [AdSense for Platforms](https://developers.google.com/adsense/platforms/) publishers. Contact your account manager if you need to use this method.", "flatPath": "v2/accounts/{accountsId}/adclients/{adclientsId}/customchannels/{customchannelsId}", "httpMethod": "PATCH", "id": "adsense.accounts.adclients.customchannels.patch", @@ -837,6 +838,73 @@ } } }, + "policyIssues": { + "methods": { + "get": { + "description": "Gets information about the selected policy issue.", + "flatPath": "v2/accounts/{accountsId}/policyIssues/{policyIssuesId}", + "httpMethod": "GET", + "id": "adsense.accounts.policyIssues.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the policy issue. Format: accounts/{account}/policyIssues/{policy_issue}", + "location": "path", + "pattern": "^accounts/[^/]+/policyIssues/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}", + "response": { + "$ref": "PolicyIssue" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + }, + "list": { + "description": "Lists all the policy issues for the specified account.", + "flatPath": "v2/accounts/{accountsId}/policyIssues", + "httpMethod": "GET", + "id": "adsense.accounts.policyIssues.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "The maximum number of policy issues to include in the response, used for paging. If unspecified, at most 10000 policy issues will be returned. The maximum value is 10000; values above 10000 will be coerced to 10000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token, received from a previous `ListPolicyIssues` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListPolicyIssues` must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The account for which policy issues are being retrieved. Format: accounts/{account}", + "location": "path", + "pattern": "^accounts/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+parent}/policyIssues", + "response": { + "$ref": "ListPolicyIssuesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/adsense", + "https://www.googleapis.com/auth/adsense.readonly" + ] + } + } + }, "reports": { "methods": { "generate": { @@ -1844,7 +1912,7 @@ } } }, - "revision": "20240305", + "revision": "20240418", "rootUrl": "https://adsense.googleapis.com/", "schemas": { "Account": { @@ -2391,6 +2459,24 @@ }, "type": "object" }, + "ListPolicyIssuesResponse": { + "description": "Response definition for the policy issues list rpc. Policy issues are reported only if the publisher has at least one AFC ad client in READY or GETTING_READY state. If the publisher has no such AFC ad client, the response will be an empty list.", + "id": "ListPolicyIssuesResponse", + "properties": { + "nextPageToken": { + "description": "Continuation token used to page through policy issues. To retrieve the next page of the results, set the next request's \"page_token\" value to this.", + "type": "string" + }, + "policyIssues": { + "description": "The policy issues returned in the list response.", + "items": { + "$ref": "PolicyIssue" + }, + "type": "array" + } + }, + "type": "object" + }, "ListSavedReportsResponse": { "description": "Response definition for the saved reports list rpc.", "id": "ListSavedReportsResponse", @@ -2467,6 +2553,111 @@ }, "type": "object" }, + "PolicyIssue": { + "description": "Representation of a policy issue for a single entity (site, site-section, or page). All issues for a single entity are represented by a single PolicyIssue resource, though that PolicyIssue can have multiple causes (or \"topics\") that can change over time. Policy issues are removed if there are no issues detected recently or if there's a recent successful appeal for the entity.", + "id": "PolicyIssue", + "properties": { + "action": { + "description": "Required. The most severe action taken on the entity over the past seven days.", + "enum": [ + "ENFORCEMENT_ACTION_UNSPECIFIED", + "WARNED", + "AD_SERVING_RESTRICTED", + "AD_SERVING_DISABLED", + "AD_SERVED_WITH_CLICK_CONFIRMATION", + "AD_PERSONALIZATION_RESTRICTED" + ], + "enumDescriptions": [ + "The action is unspecified.", + "No ad serving enforcement is currently present, but enforcement will start on the `warning_escalation_date` if the issue is not resolved.", + "Ad serving demand has been restricted on the entity.", + "Ad serving has been disabled on the entity.", + "Ads are being served for the entity but Confirmed Click is being applied to the ads. See https://support.google.com/adsense/answer/10025624.", + "Ad personalization is restricted because the ad requests coming from the EEA and UK do not have a TCF string or the Consent Management Platform (CMP) indicated by the TCF string is not Google certified. As a result, basic/limited ads will be served. See https://support.google.com/adsense/answer/13554116" + ], + "type": "string" + }, + "adClients": { + "description": "Optional. List of ad clients associated with the policy issue (either as the primary ad client or an associated host/secondary ad client). In the latter case, this will be an ad client that is not owned by the current account.", + "items": { + "type": "string" + }, + "type": "array" + }, + "adRequestCount": { + "description": "Required. Total number of ad requests affected by the policy violations over the past seven days.", + "format": "int64", + "type": "string" + }, + "entityType": { + "description": "Required. Type of the entity indicating if the entity is a site, site-section, or page.", + "enum": [ + "ENTITY_TYPE_UNSPECIFIED", + "SITE", + "SITE_SECTION", + "PAGE" + ], + "enumDescriptions": [ + "The entity type is unspecified.", + "The enforced entity is an entire website.", + "The enforced entity is a particular section of a website. All the pages with this prefix are enforced.", + "The enforced entity is a single web page." + ], + "type": "string" + }, + "firstDetectedDate": { + "$ref": "Date", + "description": "Required. The date (in the America/Los_Angeles timezone) when policy violations were first detected on the entity." + }, + "lastDetectedDate": { + "$ref": "Date", + "description": "Required. The date (in the America/Los_Angeles timezone) when policy violations were last detected on the entity." + }, + "name": { + "description": "Required. Resource name of the entity with policy issues. Format: accounts/{account}/policyIssues/{policy_issue}", + "type": "string" + }, + "policyTopics": { + "description": "Required. Unordered list. The policy topics that this entity was found to violate over the past seven days.", + "items": { + "$ref": "PolicyTopic" + }, + "type": "array" + }, + "site": { + "description": "Required. Hostname/domain of the entity (for example \"foo.com\" or \"www.foo.com\"). This _should_ be a bare domain/host name without any protocol. This will be present for all policy issues.", + "type": "string" + }, + "siteSection": { + "description": "Optional. Prefix of the site-section having policy issues (For example \"foo.com/bar-section\"). This will be present if the `entity_type` is `SITE_SECTION` and will be absent for other entity types.", + "type": "string" + }, + "uri": { + "description": "Optional. URI of the page having policy violations (for example \"foo.com/bar\" or \"www.foo.com/bar\"). This will be present if the `entity_type` is `PAGE` and will be absent for other entity types.", + "type": "string" + }, + "warningEscalationDate": { + "$ref": "Date", + "description": "Optional. The date (in the America/Los_Angeles timezone) when the entity will have ad serving demand restricted or ad serving disabled. This is present only for issues with a `WARNED` enforcement action. See https://support.google.com/adsense/answer/11066888." + } + }, + "type": "object" + }, + "PolicyTopic": { + "description": "Information about a particular policy topic. A policy topic represents a single class of policy issue that can impact ad serving for your site. For example, sexual content or having ads that obscure your content. A single policy issue can have multiple policy topics for a single entity.", + "id": "PolicyTopic", + "properties": { + "mustFix": { + "description": "Required. Indicates if this is a policy violation or not. When the value is true, issues that are instances of this topic must be addressed to remain in compliance with the partner's agreements with Google. A false value indicates that it's not mandatory to fix the issues but advertising demand might be restricted.", + "type": "boolean" + }, + "topic": { + "description": "Required. The policy topic. For example, \"sexual-content\" or \"ads-obscuring-content\".\"", + "type": "string" + } + }, + "type": "object" + }, "ReportResult": { "description": "Result of a generated report.", "id": "ReportResult", diff --git a/etc/api/alertcenter/v1beta1/alertcenter-api.json b/etc/api/alertcenter/v1beta1/alertcenter-api.json index 36e23895dc..74dbe8c32d 100644 --- a/etc/api/alertcenter/v1beta1/alertcenter-api.json +++ b/etc/api/alertcenter/v1beta1/alertcenter-api.json @@ -423,7 +423,7 @@ } } }, - "revision": "20240304", + "revision": "20240415", "rootUrl": "https://alertcenter.googleapis.com/", "schemas": { "AbuseDetected": { @@ -1177,14 +1177,26 @@ "description": "The email of the user this alert was created for.", "type": "string" }, + "id": { + "description": "ID of the rule that triggered the alert", + "type": "string" + }, "iosVendorId": { "description": "Required for iOS, empty for others.", "type": "string" }, + "ownerId": { + "description": "Obfuscated ID of the owner of the device", + "type": "string" + }, "resourceId": { "description": "The device resource ID.", "type": "string" }, + "ruleAction": { + "description": "Action taken as result of the rule", + "type": "string" + }, "serialNumber": { "description": "The serial number of the device.", "type": "string" @@ -1631,6 +1643,18 @@ "description": "Proto that contains resource information.", "id": "ResourceInfo", "properties": { + "chatAttachmentId": { + "description": "Chat attachment ID.", + "type": "string" + }, + "chatMessageId": { + "description": "Chat message ID.", + "type": "string" + }, + "deviceId": { + "description": "Id to identify a device. For example, for Android devices, this is the \"Android Device Id\" and for Chrome OS devices, it's the \"Device Virtual Id\".", + "type": "string" + }, "documentId": { "description": "Drive file ID.", "type": "string" @@ -1665,11 +1689,29 @@ "description": "Source of the data.", "enum": [ "DATA_SOURCE_UNSPECIFIED", - "DRIVE" + "DRIVE", + "CHROME", + "CHAT" ], "enumDescriptions": [ "Data source is unspecified.", - "Drive data source." + "Drive data source.", + "Chrome data source.", + "Chat data source." + ], + "type": "string" + }, + "eventType": { + "description": "Event associated with this alert after applying the rule.", + "enum": [ + "EVENT_TYPE_UNSPECIFIED", + "ACCESS_BLOCKED", + "SHARING_BLOCKED" + ], + "enumDescriptions": [ + "Event type wasn't set.", + "An access attempt was blocked.", + "A sharing attempt was blocked." ], "type": "string" }, @@ -1702,7 +1744,22 @@ "ACTION_TYPE_UNSPECIFIED", "DRIVE_BLOCK_EXTERNAL_SHARING", "DRIVE_WARN_ON_EXTERNAL_SHARING", + "DRIVE_RESTRICT_DOWNLOAD_PRINT_COPY", + "DRIVE_APPLY_DRIVE_LABELS", + "CHROME_BLOCK_FILE_DOWNLOAD", + "CHROME_WARN_FILE_DOWNLOAD", + "CHROME_BLOCK_FILE_UPLOAD", + "CHROME_WARN_FILE_UPLOAD", + "CHROME_BLOCK_WEB_CONTENT_UPLOAD", + "CHROME_WARN_WEB_CONTENT_UPLOAD", + "CHROME_BLOCK_PAGE_PRINT", + "CHROME_WARN_PAGE_PRINT", + "CHROME_BLOCK_URL_VISITED", + "CHROME_WARN_URL_VISITED", + "CHROME_STORE_CONTENT", "DELETE_WEBPROTECT_EVIDENCE", + "CHAT_BLOCK_CONTENT", + "CHAT_WARN_USER", "ALERT", "RULE_ACTIVATE", "RULE_DEACTIVATE" @@ -1711,7 +1768,22 @@ "Action type is unspecified.", "Block sharing a file externally.", "Show a warning message when sharing a file externally.", + "Disable download, print, and copy for commenters and viewers in drive.", + "Apply customer specified Drive labels to the file.", + "Chrome actions. Block file download.", + "Warn user about downloaded file.", + "Block file upload.", + "Warn user about uploaded file.", + "Block web content upload.", + "Warn user about uploaded web content.", + "Block page print.", + "Warn user about printed page.", + "Block Chrome URL visit.", + "Warn user about Chrome URL visited.", + "Store the content that violated the rule.", "Delete web protect evidence file", + "Chat actions. Block Chat content to be sent out.", + "Warn end user about Chat content.", "Send alert.", "Activate Rule Action", "Deactivate Rule Action" @@ -1724,11 +1796,25 @@ "description": "Trigger of the rule.", "enum": [ "TRIGGER_UNSPECIFIED", - "DRIVE_SHARE" + "DRIVE_SHARE", + "CHROME_FILE_DOWNLOAD", + "CHROME_FILE_UPLOAD", + "CHROME_WEB_CONTENT_UPLOAD", + "CHAT_MESSAGE_SENT", + "CHAT_ATTACHMENT_UPLOADED", + "CHROME_PAGE_PRINT", + "CHROME_URL_VISITED" ], "enumDescriptions": [ "Trigger is unspecified.", - "A Drive file is shared." + "A Drive file is shared.", + "A file being downloaded in a Chrome browser.", + "A file being uploaded from a Chrome browser.", + "Web content being uploaded from a Chrome browser.", + "A Chat message is sent.", + "A Chat attachment is uploaded.", + "A page is being printed by Chrome.", + "A URL is visited within Chrome." ], "type": "string" }, @@ -1746,7 +1832,22 @@ "ACTION_TYPE_UNSPECIFIED", "DRIVE_BLOCK_EXTERNAL_SHARING", "DRIVE_WARN_ON_EXTERNAL_SHARING", + "DRIVE_RESTRICT_DOWNLOAD_PRINT_COPY", + "DRIVE_APPLY_DRIVE_LABELS", + "CHROME_BLOCK_FILE_DOWNLOAD", + "CHROME_WARN_FILE_DOWNLOAD", + "CHROME_BLOCK_FILE_UPLOAD", + "CHROME_WARN_FILE_UPLOAD", + "CHROME_BLOCK_WEB_CONTENT_UPLOAD", + "CHROME_WARN_WEB_CONTENT_UPLOAD", + "CHROME_BLOCK_PAGE_PRINT", + "CHROME_WARN_PAGE_PRINT", + "CHROME_BLOCK_URL_VISITED", + "CHROME_WARN_URL_VISITED", + "CHROME_STORE_CONTENT", "DELETE_WEBPROTECT_EVIDENCE", + "CHAT_BLOCK_CONTENT", + "CHAT_WARN_USER", "ALERT", "RULE_ACTIVATE", "RULE_DEACTIVATE" @@ -1755,7 +1856,22 @@ "Action type is unspecified.", "Block sharing a file externally.", "Show a warning message when sharing a file externally.", + "Disable download, print, and copy for commenters and viewers in drive.", + "Apply customer specified Drive labels to the file.", + "Chrome actions. Block file download.", + "Warn user about downloaded file.", + "Block file upload.", + "Warn user about uploaded file.", + "Block web content upload.", + "Warn user about uploaded web content.", + "Block page print.", + "Warn user about printed page.", + "Block Chrome URL visit.", + "Warn user about Chrome URL visited.", + "Store the content that violated the rule.", "Delete web protect evidence file", + "Chat actions. Block Chat content to be sent out.", + "Warn end user about Chat content.", "Send alert.", "Activate Rule Action", "Deactivate Rule Action" diff --git a/etc/api/analyticsadmin/v1alpha/analyticsadmin-api.json b/etc/api/analyticsadmin/v1alpha/analyticsadmin-api.json index e56eac6484..41fdc01d12 100644 --- a/etc/api/analyticsadmin/v1alpha/analyticsadmin-api.json +++ b/etc/api/analyticsadmin/v1alpha/analyticsadmin-api.json @@ -2089,8 +2089,10 @@ } }, "conversionEvents": { + "deprecated": true, "methods": { "create": { + "deprecated": true, "description": "Creates a conversion event with the specified attributes.", "flatPath": "v1alpha/properties/{propertiesId}/conversionEvents", "httpMethod": "POST", @@ -2119,6 +2121,7 @@ ] }, "delete": { + "deprecated": true, "description": "Deletes a conversion event in a property.", "flatPath": "v1alpha/properties/{propertiesId}/conversionEvents/{conversionEventsId}", "httpMethod": "DELETE", @@ -2144,6 +2147,7 @@ ] }, "get": { + "deprecated": true, "description": "Retrieve a single conversion event.", "flatPath": "v1alpha/properties/{propertiesId}/conversionEvents/{conversionEventsId}", "httpMethod": "GET", @@ -2170,6 +2174,7 @@ ] }, "list": { + "deprecated": true, "description": "Returns a list of conversion events in the specified parent property. Returns an empty list if no conversion events are found.", "flatPath": "v1alpha/properties/{propertiesId}/conversionEvents", "httpMethod": "GET", @@ -2207,6 +2212,7 @@ ] }, "patch": { + "deprecated": true, "description": "Updates a conversion event with the specified attributes.", "flatPath": "v1alpha/properties/{propertiesId}/conversionEvents/{conversionEventsId}", "httpMethod": "PATCH", @@ -4026,6 +4032,160 @@ } } }, + "keyEvents": { + "methods": { + "create": { + "description": "Creates a Key Event.", + "flatPath": "v1alpha/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": "v1alpha/{+parent}/keyEvents", + "request": { + "$ref": "GoogleAnalyticsAdminV1alphaKeyEvent" + }, + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaKeyEvent" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + }, + "delete": { + "description": "Deletes a Key Event.", + "flatPath": "v1alpha/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": "v1alpha/{+name}", + "response": { + "$ref": "GoogleProtobufEmpty" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + }, + "get": { + "description": "Retrieve a single Key Event.", + "flatPath": "v1alpha/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": "v1alpha/{+name}", + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaKeyEvent" + }, + "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": "v1alpha/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": "v1alpha/{+parent}/keyEvents", + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaListKeyEventsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit", + "https://www.googleapis.com/auth/analytics.readonly" + ] + }, + "patch": { + "description": "Updates a Key Event.", + "flatPath": "v1alpha/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": "v1alpha/{+name}", + "request": { + "$ref": "GoogleAnalyticsAdminV1alphaKeyEvent" + }, + "response": { + "$ref": "GoogleAnalyticsAdminV1alphaKeyEvent" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics.edit" + ] + } + } + }, "rollupPropertySourceLinks": { "methods": { "create": { @@ -4457,7 +4617,7 @@ } } }, - "revision": "20240303", + "revision": "20240417", "rootUrl": "https://analyticsadmin.googleapis.com/", "schemas": { "GoogleAnalyticsAdminV1alphaAccessBetweenFilter": { @@ -4870,6 +5030,11 @@ "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, @@ -5904,6 +6069,10 @@ "readOnly": true, "type": "string" }, + "primary": { + "description": "Optional. If true, this channel group will be used as the default channel group for reports. Only one channel group can be set as `primary` at any time. If the `primary` field gets set on a channel group, it will get unset on the previous primary channel group. The Google Analytics predefined channel group is the primary by default.", + "type": "boolean" + }, "systemDefined": { "description": "Output only. If true, then this channel group is the Default Channel Group predefined by Google Analytics. Display name and grouping rules cannot be updated for this channel group.", "readOnly": true, @@ -7106,6 +7275,72 @@ }, "type": "object" }, + "GoogleAnalyticsAdminV1alphaKeyEvent": { + "description": "A key event in a Google Analytics property.", + "id": "GoogleAnalyticsAdminV1alphaKeyEvent", + "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": "GoogleAnalyticsAdminV1alphaKeyEventDefaultValue", + "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" + }, + "GoogleAnalyticsAdminV1alphaKeyEventDefaultValue": { + "description": "Defines a default value/currency for a key event.", + "id": "GoogleAnalyticsAdminV1alphaKeyEventDefaultValue", + "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" + }, "GoogleAnalyticsAdminV1alphaLinkProposalStatusDetails": { "description": "Status information for a link proposal.", "id": "GoogleAnalyticsAdminV1alphaLinkProposalStatusDetails", @@ -7505,6 +7740,24 @@ }, "type": "object" }, + "GoogleAnalyticsAdminV1alphaListKeyEventsResponse": { + "description": "Response message for ListKeyEvents RPC.", + "id": "GoogleAnalyticsAdminV1alphaListKeyEventsResponse", + "properties": { + "keyEvents": { + "description": "The requested Key Events", + "items": { + "$ref": "GoogleAnalyticsAdminV1alphaKeyEvent" + }, + "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" + }, "GoogleAnalyticsAdminV1alphaListMeasurementProtocolSecretsResponse": { "description": "Response message for ListMeasurementProtocolSecret RPC", "id": "GoogleAnalyticsAdminV1alphaListMeasurementProtocolSecretsResponse", diff --git a/etc/api/analyticsdata/v1beta/analyticsdata-api.json b/etc/api/analyticsdata/v1beta/analyticsdata-api.json index 72db9a6a45..6817906861 100644 --- a/etc/api/analyticsdata/v1beta/analyticsdata-api.json +++ b/etc/api/analyticsdata/v1beta/analyticsdata-api.json @@ -440,7 +440,7 @@ } } }, - "revision": "20240304", + "revision": "20240417", "rootUrl": "https://analyticsdata.googleapis.com/", "schemas": { "ActiveMetricRestriction": { diff --git a/etc/api/androiddeviceprovisioning/v1/androiddeviceprovisioning-api.json b/etc/api/androiddeviceprovisioning/v1/androiddeviceprovisioning-api.json index 116fa23bce..f54aeac095 100644 --- a/etc/api/androiddeviceprovisioning/v1/androiddeviceprovisioning-api.json +++ b/etc/api/androiddeviceprovisioning/v1/androiddeviceprovisioning-api.json @@ -851,7 +851,7 @@ } } }, - "revision": "20240304", + "revision": "20240416", "rootUrl": "https://androiddeviceprovisioning.googleapis.com/", "schemas": { "ClaimDeviceRequest": { diff --git a/etc/api/androidenterprise/v1/androidenterprise-api.json b/etc/api/androidenterprise/v1/androidenterprise-api.json index 7d6ae34684..3b7a0092e6 100644 --- a/etc/api/androidenterprise/v1/androidenterprise-api.json +++ b/etc/api/androidenterprise/v1/androidenterprise-api.json @@ -423,7 +423,7 @@ ] }, "createWebToken": { - "description": "Returns a unique token to access an embeddable UI. To generate a web UI, pass the generated token into the managed Google Play javascript API. Each token may only be used to start one UI session. See the javascript API documentation for further information.", + "description": "Returns a unique token to access an embeddable UI. To generate a web UI, pass the generated token into the managed Google Play javascript API. Each token may only be used to start one UI session. See the JavaScript API documentation for further information.", "flatPath": "androidenterprise/v1/enterprises/{enterpriseId}/createWebToken", "httpMethod": "POST", "id": "androidenterprise.enterprises.createWebToken", @@ -2649,7 +2649,7 @@ } } }, - "revision": "20240304", + "revision": "20240417", "rootUrl": "https://androidenterprise.googleapis.com/", "schemas": { "Administrator": { @@ -4372,7 +4372,7 @@ "Unspecified. Defaults to AUTO_UPDATE_DEFAULT.", "The app is automatically updated with low priority to minimize the impact on the user. The app is updated when the following constraints are met: * The device is not actively used * The device is connected to an unmetered network * The device is charging The device is notified about a new update within 24 hours after it is published by the developer, after which the app is updated the next time the constraints above are met.", "The app is not automatically updated for a maximum of 90 days after the app becomes out of date. 90 days after the app becomes out of date, the latest available version is installed automatically with low priority (see AUTO_UPDATE_DEFAULT). After the app is updated it is not automatically updated again until 90 days after it becomes out of date again. The user can still manually update the app from the Play Store at any time.", - "The app is updated as soon as possible. No constraints are applied. The device is notified immediately about a new app update after it is published by the developer." + "The app is updated as soon as possible. No constraints are applied. The device is notified as soon as possible about a new app update after it is published by the developer." ], "type": "string" }, diff --git a/etc/api/androidmanagement/v1/androidmanagement-api.json b/etc/api/androidmanagement/v1/androidmanagement-api.json index 18a1100186..fc5d1fb52e 100644 --- a/etc/api/androidmanagement/v1/androidmanagement-api.json +++ b/etc/api/androidmanagement/v1/androidmanagement-api.json @@ -703,7 +703,7 @@ "migrationTokens": { "methods": { "create": { - "description": "Creates a migration token, to migrate an existing device from being managed by the EMM's Device Policy Controller (DPC) to being managed by the Android Management API.", + "description": "Creates a migration token, to migrate an existing device from being managed by the EMM's Device Policy Controller (DPC) to being managed by the Android Management API. See the guide (https://developers.google.com/android/management/dpc-migration) for more details.", "flatPath": "v1/enterprises/{enterprisesId}/migrationTokens", "httpMethod": "POST", "id": "androidmanagement.enterprises.migrationTokens.create", @@ -712,7 +712,7 @@ ], "parameters": { "parent": { - "description": "Required. The enterprise in which this migration token will be created. Format: enterprises/{enterprise}", + "description": "Required. The enterprise in which this migration token is created. This must be the same enterprise which already manages the device in the Play EMM API. Format: enterprises/{enterprise}", "location": "path", "pattern": "^enterprises/[^/]+$", "required": true, @@ -1163,7 +1163,7 @@ } } }, - "revision": "20240221", + "revision": "20240416", "rootUrl": "https://androidmanagement.googleapis.com/", "schemas": { "AdbShellCommandEvent": { @@ -1654,7 +1654,7 @@ "Unspecified. Defaults to AUTO_UPDATE_DEFAULT.", "The default update mode.The app is automatically updated with low priority to minimize the impact on the user.The app is updated when all of the following constraints are met: The device is not actively used. The device is connected to an unmetered network. The device is charging. The app to be updated is not running in the foreground.The device is notified about a new update within 24 hours after it is published by the developer, after which the app is updated the next time the constraints above are met.", "The app is not automatically updated for a maximum of 90 days after the app becomes out of date.90 days after the app becomes out of date, the latest available version is installed automatically with low priority (see AUTO_UPDATE_DEFAULT). After the app is updated it is not automatically updated again until 90 days after it becomes out of date again.The user can still manually update the app from the Play Store at any time.", - "The app is updated as soon as possible. No constraints are applied.The device is notified immediately about a new update after it becomes available." + "The app is updated as soon as possible. No constraints are applied.The device is notified as soon as possible about a new update after it becomes available." ], "type": "string" }, @@ -2716,7 +2716,7 @@ "DISALLOW_USB_DATA_TRANSFER" ], "enumDescriptions": [ - "Unspecified. Defaults to ALLOW_USB_DATA_TRANSFER, unless usbFileTransferDisabled is set to true. If usbFileTransferDisabled is set to true, this is equivalent to DISALLOW_USB_FILE_TRANSFER.", + "Unspecified. Defaults to DISALLOW_USB_FILE_TRANSFER.", "All types of USB data transfers are allowed. usbFileTransferDisabled is ignored.", "Transferring files over USB is disallowed. Other types of USB data connections, such as mouse and keyboard connection, are allowed. usbFileTransferDisabled is ignored.", "When set, all types of USB data transfers are prohibited. Supported for devices running Android 12 or above with USB HAL 1.3 or above. If the setting is not supported, DISALLOW_USB_FILE_TRANSFER will be set. A nonComplianceDetail with API_LEVEL is reported if the Android version is less than 12. A nonComplianceDetail with DEVICE_INCOMPATIBLE is reported if the device does not have USB HAL 1.3 or above. usbFileTransferDisabled is ignored." @@ -2778,13 +2778,15 @@ "MINIMUM_WIFI_SECURITY_LEVEL_UNSPECIFIED", "OPEN_NETWORK_SECURITY", "PERSONAL_NETWORK_SECURITY", - "ENTERPRISE_NETWORK_SECURITY" + "ENTERPRISE_NETWORK_SECURITY", + "ENTERPRISE_BIT192_NETWORK_SECURITY" ], "enumDescriptions": [ "Defaults to OPEN_NETWORK_SECURITY, which means the device will be able to connect to all types of Wi-Fi networks.", "The device will be able to connect to all types of Wi-Fi networks.", "A personal network such as WEP, WPA2-PSK is the minimum required security. The device will not be able to connect to open wifi networks. This is stricter than OPEN_NETWORK_SECURITY. A nonComplianceDetail with API_LEVEL is reported if the Android version is less than 13.", - "An enterprise EAP network is the minimum required security level. The device will not be able to connect to Wi-Fi network below this security level. This is stricter than PERSONAL_NETWORK_SECURITY. A nonComplianceDetail with API_LEVEL is reported if the Android version is less than 13." + "An enterprise EAP network is the minimum required security level. The device will not be able to connect to Wi-Fi network below this security level. This is stricter than PERSONAL_NETWORK_SECURITY. A nonComplianceDetail with API_LEVEL is reported if the Android version is less than 13.", + "A 192-bit enterprise network is the minimum required security level. The device will not be able to connect to Wi-Fi network below this security level. This is stricter than ENTERPRISE_NETWORK_SECURITY. A nonComplianceDetail with API_LEVEL is reported if the Android version is less than 13." ], "type": "string" }, @@ -3034,7 +3036,8 @@ }, "user": { "$ref": "User", - "description": "The user associated with this enrollment token. If it's specified when the enrollment token is created and the user does not exist, the user will be created. This field must not contain personally identifiable information. Only the account_identifier field needs to be set." + "deprecated": true, + "description": "This field is deprecated and the value is ignored." }, "value": { "description": "The token value that's passed to the device and authorizes the device to enroll. This is a read-only field generated by the server.", @@ -3126,7 +3129,7 @@ "type": "object" }, "ExtensionConfig": { - "description": "Configuration to enable an app as an extension app, with the capability of interacting with Android Device Policy offline. For Android versions 13 and above, extension apps are exempt from battery restrictions so will not be placed into the restricted App Standby Bucket (https://developer.android.com/topic/performance/appstandby#restricted-bucket). Extensions apps are also protected against users clearing their data or force-closing the application, although admins can continue to use the clear app data command (https://developer.android.com/management/reference/rest/v1/enterprises.devices/issueCommand#CommandType) on extension apps if needed for Android 13 and above.", + "description": "Configuration to enable an app as an extension app, with the capability of interacting with Android Device Policy offline. For Android versions 13 and above, extension apps are exempt from battery restrictions so will not be placed into the restricted App Standby Bucket (https://developer.android.com/topic/performance/appstandby#restricted-bucket). Extensions apps are also protected against users clearing their data or force-closing the application, although admins can continue to use the clear app data command on extension apps if needed for Android 13 and above.", "id": "ExtensionConfig", "properties": { "notificationReceiver": { @@ -4012,7 +4015,7 @@ "type": "object" }, "MigrationToken": { - "description": "A token to initiate the migration of a device from being managed by a third-party DPC to being managed by Android Management API. A migration token is valid only for a single device.", + "description": "A token to initiate the migration of a device from being managed by a third-party DPC to being managed by Android Management API. A migration token is valid only for a single device. See the guide (https://developers.google.com/android/management/dpc-migration) for more details.", "id": "MigrationToken", "properties": { "additionalData": { @@ -5448,6 +5451,10 @@ "description": "The name of the enterprise in the form enterprises/{enterprise}.", "type": "string" }, + "imei": { + "description": "IMEI number of the GSM device. For example, A1000031212.", + "type": "string" + }, "managementMode": { "description": "The management mode of the device or profile.", "enum": [ @@ -5462,6 +5469,10 @@ ], "type": "string" }, + "meid": { + "description": "MEID number of the CDMA device. For example, A00000292788E1.", + "type": "string" + }, "model": { "description": "The model of the device. For example, Asus Nexus 7.", "type": "string" @@ -5483,6 +5494,10 @@ "Device is personally-owned." ], "type": "string" + }, + "serialNumber": { + "description": "The device serial number.", + "type": "string" } }, "type": "object" @@ -5722,7 +5737,7 @@ }, "lostPhoneNumber": { "$ref": "UserFacingMessage", - "description": "The phone number displayed to the user when the device is in lost mode." + "description": "The phone number that will be called when the device is in lost mode and the call owner button is tapped." }, "lostStreetAddress": { "$ref": "UserFacingMessage", @@ -6111,7 +6126,9 @@ "STOP_LOST_MODE_USER_ATTEMPT", "LOST_MODE_OUTGOING_PHONE_CALL", "LOST_MODE_LOCATION", - "ENROLLMENT_COMPLETE" + "ENROLLMENT_COMPLETE", + "MAX_DEVICES_REGISTRATION_QUOTA_WARNING", + "MAX_DEVICES_REGISTRATION_QUOTA_EXHAUSTED" ], "enumDescriptions": [ "This value is not used", @@ -6145,7 +6162,9 @@ "Indicates stopLostModeUserAttemptEvent has been set.", "Indicates lostModeOutgoingPhoneCallEvent has been set.", "Indicates lostModeLocationEvent has been set.", - "Indicates enrollment_complete_event has been set." + "Indicates enrollment_complete_event has been set.", + "Indicates max_devices_registration_quota_warning_event has been set.", + "Indicates max_devices_registration_quota_exhausted_event has been set." ], "type": "string" }, diff --git a/etc/api/androidpublisher/v3/androidpublisher-api.json b/etc/api/androidpublisher/v3/androidpublisher-api.json index 28ad9f19fe..94ae9b1ca4 100644 --- a/etc/api/androidpublisher/v3/androidpublisher-api.json +++ b/etc/api/androidpublisher/v3/androidpublisher-api.json @@ -2085,7 +2085,7 @@ ], "parameters": { "externalTransactionId": { - "description": "Required. The id to use for the external transaction. Must be unique across all other transactions for the app. This value should be 1-63 characters and valid characters are /a-z0-9_-/. Do not use this field to store any Personally Identifiable Information (PII) such as emails. Attempting to store PII in this field may result in requests being blocked.", + "description": "Required. The id to use for the external transaction. Must be unique across all other transactions for the app. This value should be 1-63 characters and valid characters are /a-zA-Z0-9_-/. Do not use this field to store any Personally Identifiable Information (PII) such as emails. Attempting to store PII in this field may result in requests being blocked.", "location": "query", "type": "string" }, @@ -4279,6 +4279,11 @@ "location": "query", "type": "string" }, + "includeQuantityBasedPartialRefund": { + "description": "Optional. Whether to include voided purchases of quantity-based partial refunds, which are applicable only to multi-quantity purchases. If true, additional voided purchases may be returned with voidedQuantity that indicates the refund quantity of a quantity-based partial refund. The default value is false.", + "location": "query", + "type": "boolean" + }, "maxResults": { "description": "Defines how many results the list operation should return. The default number depends on the resource collection.", "format": "uint32", @@ -4726,7 +4731,7 @@ } } }, - "revision": "20240229", + "revision": "20240418", "rootUrl": "https://androidpublisher.googleapis.com/", "schemas": { "Abi": { @@ -6642,7 +6647,8 @@ "CAN_MANAGE_ORDERS", "CAN_MANAGE_APP_CONTENT", "CAN_VIEW_NON_FINANCIAL_DATA", - "CAN_VIEW_APP_QUALITY" + "CAN_VIEW_APP_QUALITY", + "CAN_MANAGE_DEEPLINKS" ], "enumDeprecated": [ false, @@ -6658,6 +6664,7 @@ false, false, false, + false, false ], "enumDescriptions": [ @@ -6674,7 +6681,8 @@ "Manage orders and subscriptions.", "Manage policy related pages.", "View app information (read-only).", - "View app quality data such as Vitals, Crashes etc." + "View app quality data such as Vitals, Crashes etc.", + "Manage the deep links setup of an app." ], "type": "string" }, @@ -7478,6 +7486,12 @@ }, "type": "object" }, + "OtherRecurringProduct": { + "description": "Details of a recurring external transaction product which doesn't belong to any other more specific category.", + "id": "OtherRecurringProduct", + "properties": {}, + "type": "object" + }, "OtherRegionsBasePlanConfig": { "description": "Pricing information for any new locations Play may launch in.", "id": "OtherRegionsBasePlanConfig", @@ -7516,6 +7530,10 @@ "$ref": "OtherRegionsSubscriptionOfferPhasePrices", "description": "The absolute amount of money subtracted from the base plan price prorated over the phase duration that the user pays for this offer phase. For example, if the base plan price for this region is $12 for a period of 1 year, then a $1 absolute discount for a phase of a duration of 3 months would correspond to a price of $2. The resulting price may not be smaller than the minimum price allowed for any new locations Play may launch in." }, + "free": { + "$ref": "OtherRegionsSubscriptionOfferPhaseFreePriceOverride", + "description": "Set to specify this offer is free to obtain." + }, "otherRegionsPrices": { "$ref": "OtherRegionsSubscriptionOfferPhasePrices", "description": "The absolute price the user pays for this offer phase. The price must not be smaller than the minimum price allowed for any new locations Play may launch in." @@ -7528,6 +7546,12 @@ }, "type": "object" }, + "OtherRegionsSubscriptionOfferPhaseFreePriceOverride": { + "description": "Represents the free price override configuration for any new locations Play may launch for a single offer phase.", + "id": "OtherRegionsSubscriptionOfferPhaseFreePriceOverride", + "properties": {}, + "type": "object" + }, "OtherRegionsSubscriptionOfferPhasePrices": { "description": "Pricing information for any new locations Play may launch in.", "id": "OtherRegionsSubscriptionOfferPhasePrices", @@ -7697,7 +7721,7 @@ "type": "string" }, "purchaseType": { - "description": "The type of purchase of the inapp product. This field is only set if this purchase was not made using the standard in-app billing flow. Possible values are: 0. Test (i.e. purchased from a license testing account) 1. Promo (i.e. purchased using a promo code) 2. Rewarded (i.e. from watching a video ad instead of paying)", + "description": "The type of purchase of the inapp product. This field is only set if this purchase was not made using the standard in-app billing flow. Possible values are: 0. Test (i.e. purchased from a license testing account) 1. Promo (i.e. purchased using a promo code). Does not include Play Points purchases. 2. Rewarded (i.e. from watching a video ad instead of paying)", "format": "int32", "type": "integer" }, @@ -7706,6 +7730,11 @@ "format": "int32", "type": "integer" }, + "refundableQuantity": { + "description": "The quantity eligible for refund, i.e. quantity that hasn't been refunded. The value reflects quantity-based partial refunds and full refunds.", + "format": "int32", + "type": "integer" + }, "regionCode": { "description": "ISO 3166-1 alpha-2 billing region code of the user at the time the product was granted.", "type": "string" @@ -7745,14 +7774,18 @@ "enum": [ "EXTERNAL_TRANSACTION_PROGRAM_UNSPECIFIED", "USER_CHOICE_BILLING", - "ALTERTNATIVE_BILLING_ONLY" + "ALTERNATIVE_BILLING_ONLY" ], "enumDescriptions": [ "Unspecified transaction program. Not used.", "User choice billing, where a user may choose between Google Play Billing developer-managed billing.", - "Alternatively billing only, where users may only use developer-manager billing." + "Alternative billing only, where users may only use developer-manager billing." ], "type": "string" + }, + "otherRecurringProduct": { + "$ref": "OtherRecurringProduct", + "description": "Details of a recurring external transaction product which doesn't belong to any other specific category." } }, "type": "object" @@ -7849,6 +7882,10 @@ "$ref": "Money", "description": "The absolute amount of money subtracted from the base plan price prorated over the phase duration that the user pays for this offer phase. For example, if the base plan price for this region is $12 for a period of 1 year, then a $1 absolute discount for a phase of a duration of 3 months would correspond to a price of $2. The resulting price may not be smaller than the minimum price allowed for this region." }, + "free": { + "$ref": "RegionalSubscriptionOfferPhaseFreePriceOverride", + "description": "Set to specify this offer is free to obtain." + }, "price": { "$ref": "Money", "description": "The absolute price the user pays for this offer phase. The price must not be smaller than the minimum price allowed for this region." @@ -7865,6 +7902,12 @@ }, "type": "object" }, + "RegionalSubscriptionOfferPhaseFreePriceOverride": { + "description": "Represents the free price override configuration for a single phase of a subscription offer", + "id": "RegionalSubscriptionOfferPhaseFreePriceOverride", + "properties": {}, + "type": "object" + }, "RegionalTaxRateInfo": { "description": "Specified details about taxation in a given geographical region.", "id": "RegionalTaxRateInfo", @@ -9002,13 +9045,33 @@ "description": "Defines the scope of subscriptions which a targeting rule can match to target offers to users based on past or current entitlement.", "id": "TargetingRuleScope", "properties": { + "anySubscriptionInApp": { + "$ref": "TargetingRuleScopeAnySubscriptionInApp", + "description": "The scope of the current targeting rule is any subscription in the parent app." + }, "specificSubscriptionInApp": { "description": "The scope of the current targeting rule is the subscription with the specified subscription ID. Must be a subscription within the same parent app.", "type": "string" + }, + "thisSubscription": { + "$ref": "TargetingRuleScopeThisSubscription", + "description": "The scope of the current targeting rule is the subscription in which this offer is defined." } }, "type": "object" }, + "TargetingRuleScopeAnySubscriptionInApp": { + "description": "Represents the targeting rule scope corresponding to any subscription in the parent app.", + "id": "TargetingRuleScopeAnySubscriptionInApp", + "properties": {}, + "type": "object" + }, + "TargetingRuleScopeThisSubscription": { + "description": "Represents the targeting rule scope corresponding to the subscriptions in which this offer is defined.", + "id": "TargetingRuleScopeThisSubscription", + "properties": {}, + "type": "object" + }, "TargetingUpdate": { "description": "Update type for targeting. Note it is always a subset Targeting.", "id": "TargetingUpdate", @@ -9472,7 +9535,8 @@ "CAN_MANAGE_ORDERS_GLOBAL", "CAN_MANAGE_APP_CONTENT_GLOBAL", "CAN_VIEW_NON_FINANCIAL_DATA_GLOBAL", - "CAN_VIEW_APP_QUALITY_GLOBAL" + "CAN_VIEW_APP_QUALITY_GLOBAL", + "CAN_MANAGE_DEEPLINKS_GLOBAL" ], "enumDeprecated": [ false, @@ -9492,6 +9556,7 @@ false, false, false, + false, false ], "enumDescriptions": [ @@ -9512,7 +9577,8 @@ "Manage orders and subscriptions.", "Manage policy related pages on all apps for the developer.", "View app information and download bulk reports (read-only).", - "View app quality information for all apps for the developer." + "View app quality information for all apps for the developer.", + "Manage the deep links setup for all apps for the developer." ], "type": "string" }, @@ -9744,6 +9810,11 @@ "description": "The token which uniquely identifies a one-time purchase or subscription. To uniquely identify subscription renewals use order_id (available starting from version 3 of the API).", "type": "string" }, + "voidedQuantity": { + "description": "The voided quantity as the result of a quantity-based partial refund. Voided purchases of quantity-based partial refunds may only be returned when includeQuantityBasedPartialRefund is set to true.", + "format": "int32", + "type": "integer" + }, "voidedReason": { "description": "The reason why the purchase was voided, possible values are: 0. Other 1. Remorse 2. Not_received 3. Defective 4. Accidental_purchase 5. Fraud 6. Friendly_fraud 7. Chargeback", "format": "int32", diff --git a/etc/api/apigateway/v1/apigateway-api.json b/etc/api/apigateway/v1/apigateway-api.json index 81f9396a61..c5cd2f4520 100644 --- a/etc/api/apigateway/v1/apigateway-api.json +++ b/etc/api/apigateway/v1/apigateway-api.json @@ -1083,7 +1083,7 @@ } } }, - "revision": "20240221", + "revision": "20240410", "rootUrl": "https://apigateway.googleapis.com/", "schemas": { "ApigatewayApi": { diff --git a/etc/api/apigateway/v1beta/apigateway-api.json b/etc/api/apigateway/v1beta/apigateway-api.json index b57f14315f..af26287955 100644 --- a/etc/api/apigateway/v1beta/apigateway-api.json +++ b/etc/api/apigateway/v1beta/apigateway-api.json @@ -1083,7 +1083,7 @@ } } }, - "revision": "20240221", + "revision": "20240410", "rootUrl": "https://apigateway.googleapis.com/", "schemas": { "ApigatewayApi": { diff --git a/etc/api/apigee/v1/apigee-api.json b/etc/api/apigee/v1/apigee-api.json index 7f4fb86595..71e80092db 100644 --- a/etc/api/apigee/v1/apigee-api.json +++ b/etc/api/apigee/v1/apigee-api.json @@ -9079,6 +9079,38 @@ } } }, + "securityAssessmentResults": { + "methods": { + "batchCompute": { + "description": "Compute RAV2 security scores for a set of resources.", + "flatPath": "v1/organizations/{organizationsId}/securityAssessmentResults:batchCompute", + "httpMethod": "POST", + "id": "apigee.organizations.securityAssessmentResults.batchCompute", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the organization for which the score needs to be computed in the following format: `organizations/{org}/securityAssessmentResults`", + "location": "path", + "pattern": "^organizations/[^/]+/securityAssessmentResults$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:batchCompute", + "request": { + "$ref": "GoogleCloudApigeeV1BatchComputeSecurityAssessmentResultsRequest" + }, + "response": { + "$ref": "GoogleCloudApigeeV1BatchComputeSecurityAssessmentResultsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "securityProfiles": { "methods": { "create": { @@ -10013,7 +10045,7 @@ } } }, - "revision": "20240222", + "revision": "20240415", "rootUrl": "https://apigee.googleapis.com/", "schemas": { "EdgeConfigstoreBundleBadBundle": { @@ -10115,6 +10147,21 @@ }, "type": "object" }, + "GoogleCloudApigeeV1AccessLoggingConfig": { + "description": "Access logging configuration enables customers to ship the access logs from the tenant projects to their own project's cloud logging. The feature is at the instance level ad disabled by default. It can be enabled during CreateInstance or UpdateInstance.", + "id": "GoogleCloudApigeeV1AccessLoggingConfig", + "properties": { + "enabled": { + "description": "Optional. Boolean flag that specifies whether the customer access log feature is enabled.", + "type": "boolean" + }, + "filter": { + "description": "Optional. Ship the access log entries that match the status_code defined in the filter. The status_code is the only expected/supported filter field. (Ex: status_code) The filter will parse it to the Common Expression Language semantics for expression evaluation to build the filter condition. (Ex: \"filter\": status_code >= 200 && status_code < 300 )", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudApigeeV1AccessRemove": { "description": "Remove action. For example, \"Remove\" : { \"name\" : \"target.name\", \"success\" : true }", "id": "GoogleCloudApigeeV1AccessRemove", @@ -10353,11 +10400,11 @@ "type": "object" }, "GoogleCloudApigeeV1ApiDoc": { - "description": "`ApiDoc` represents an API catalog item. Catalog items are used in two ways in a portal: - Users can browse and interact with a visual representation of the API documentation - The `api_product_name` field provides a link to a backing API product. Through this link, portal users can create and manage developer apps linked to one or more API products.", + "description": "`ApiDoc` represents an API catalog item. Catalog items are used in two ways in a portal: - Users can browse and interact with a visual representation of the API documentation - The `api_product_name` field provides a link to a backing [API product] (/apigee/docs/reference/apis/apigee/rest/v1/organizations.apiproducts). Through this link, portal users can create and manage developer apps linked to one or more API products.", "id": "GoogleCloudApigeeV1ApiDoc", "properties": { "anonAllowed": { - "description": "Optional. Boolean flag that manages user access to the catalog item. When true, the catalog item can be viewed anonymously; otherwise, only registered users may view it. Note: when the parent portal is enrolled in the [audience management feature](https://cloud.google.com/apigee/docs/api-platform/publish/portal/portal-audience#enrolling_in_the_beta_release_of_the_audience_management_feature), this flag is ignored; instead visibility must be further managed in the management UI (see [Manage the visibility of an API in your portal](https://cloud.google.com/apigee/docs/api-platform/publish/portal/publish-apis#visibility)).", + "description": "Optional. Boolean flag that manages user access to the catalog item. When true, the catalog item has public visibility and can be viewed anonymously; otherwise, only registered users may view it. Note: when the parent portal is enrolled in the [audience management feature](https://cloud.google.com/apigee/docs/api-platform/publish/portal/portal-audience#enrolling_in_the_beta_release_of_the_audience_management_feature), and this flag is set to false, visibility is set to an indeterminate state and must be explicitly specified in the management UI (see [Manage the visibility of an API in your portal](https://cloud.google.com/apigee/docs/api-platform/publish/portal/publish-apis#visibility)). Additionally, when enrolled in the audience management feature, updates to this flag will be ignored as visibility permissions must be updated in the management UI.", "type": "boolean" }, "apiProductName": { @@ -10401,7 +10448,7 @@ "type": "string" }, "imageUrl": { - "description": "Optional. Location of the image used for the catalog item in the catalog. For portal files, this can have the format `/files/{filename}`. Max length is 2,083 characters.", + "description": "Optional. Location of the image used for the catalog item in the catalog. This can be either an image with an external URL or a file path for [image files stored in the portal](/apigee/docs/api-platform/publish/portal/portal-files\"), for example, `/files/book-tree.jpg`. When specifying the URL of an external image, the image won't be uploaded to your assets; additionally, loading the image in the integrated portal will be subject to its availability, which may be blocked or restricted by [content security policies](/apigee/docs/api-platform/publish/portal/csp). Max length of file path is 2,083 characters.", "type": "string" }, "modified": { @@ -10411,7 +10458,7 @@ "type": "string" }, "published": { - "description": "Optional. Denotes whether the catalog item is published to the portal or is in a draft state. When the parent portal is enrolled in the [audience management feature](https://cloud.google.com/apigee/docs/api-platform/publish/portal/portal-audience#enrolling_in_the_beta_release_of_the_audience_management_feature), the visibility must be further managed in the management UI (see [Manage the visibility of an API in your portal](https://cloud.google.com/apigee/docs/api-platform/publish/portal/publish-apis#visibility)) before it can be visible to any users. If not enrolled in the audience management feature, the visibility is further managed by the `anonAllowed` flag.", + "description": "Optional. Denotes whether the catalog item is published to the portal or is in a draft state. When the parent portal is enrolled in the [audience management feature](https://cloud.google.com/apigee/docs/api-platform/publish/portal/portal-audience#enrolling_in_the_beta_release_of_the_audience_management_feature), the visibility can be set to public on creation by setting the anonAllowed flag to true or further managed in the management UI (see [Manage the visibility of an API in your portal](https://cloud.google.com/apigee/docs/api-platform/publish/portal/publish-apis#visibility)) before it can be visible to any users. If not enrolled in the audience management feature, the visibility is managed by the `anonAllowed` flag.", "type": "boolean" }, "requireCallbackUrl": { @@ -11325,6 +11372,104 @@ }, "type": "object" }, + "GoogleCloudApigeeV1BatchComputeSecurityAssessmentResultsRequest": { + "description": "Request for BatchComputeSecurityAssessmentResults.", + "id": "GoogleCloudApigeeV1BatchComputeSecurityAssessmentResultsRequest", + "properties": { + "include": { + "$ref": "GoogleCloudApigeeV1BatchComputeSecurityAssessmentResultsRequestResourceArray", + "description": "Include only these resources." + }, + "includeAllResources": { + "$ref": "GoogleCloudApigeeV1BatchComputeSecurityAssessmentResultsRequestIncludeAll", + "description": "Include all resources under the scope." + }, + "pageSize": { + "description": "Optional. The maximum number of results to return. The service may return fewer than this value. If unspecified, at most 50 results will be returned.", + "format": "int32", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A page token, received from a previous `BatchComputeSecurityAssessmentResults` call. Provide this to retrieve the subsequent page.", + "type": "string" + }, + "profile": { + "description": "Required. Name of the profile that is used for computation.", + "type": "string" + }, + "scope": { + "description": "Required. Scope of the resources for the computation. For Apigee, the environment is the scope of the resources.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudApigeeV1BatchComputeSecurityAssessmentResultsRequestIncludeAll": { + "description": "Message for include_all option.", + "id": "GoogleCloudApigeeV1BatchComputeSecurityAssessmentResultsRequestIncludeAll", + "properties": {}, + "type": "object" + }, + "GoogleCloudApigeeV1BatchComputeSecurityAssessmentResultsRequestResourceArray": { + "description": "An array of resource messages.", + "id": "GoogleCloudApigeeV1BatchComputeSecurityAssessmentResultsRequestResourceArray", + "properties": { + "resources": { + "description": "Required. The array of resources. For Apigee, the proxies are resources.", + "items": { + "$ref": "GoogleCloudApigeeV1BatchComputeSecurityAssessmentResultsRequestResourceArrayResource" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudApigeeV1BatchComputeSecurityAssessmentResultsRequestResourceArrayResource": { + "description": "Resource for which we are computing security assessment.", + "id": "GoogleCloudApigeeV1BatchComputeSecurityAssessmentResultsRequestResourceArrayResource", + "properties": { + "name": { + "description": "Required. Name of this resource.", + "type": "string" + }, + "type": { + "description": "Required. Type of this resource.", + "enum": [ + "RESOURCE_TYPE_UNSPECIFIED", + "API_PROXY" + ], + "enumDescriptions": [ + "ResourceType not specified.", + "Resource is an Apigee Proxy." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudApigeeV1BatchComputeSecurityAssessmentResultsResponse": { + "description": "Response for BatchComputeSecurityAssessmentResults.", + "id": "GoogleCloudApigeeV1BatchComputeSecurityAssessmentResultsResponse", + "properties": { + "assessmentTime": { + "description": "The time of the assessment api call.", + "format": "google-datetime", + "type": "string" + }, + "nextPageToken": { + "description": "A token that can be sent as `page_token` to retrieve the next page. If this field is blank, there are no subsequent pages.", + "type": "string" + }, + "securityAssessmentResults": { + "description": "Default sort order is by resource name in alphabetic order.", + "items": { + "$ref": "GoogleCloudApigeeV1SecurityAssessmentResult" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudApigeeV1BatchUpdateSecurityIncidentsRequest": { "description": "Request for BatchUpdateSecurityIncident.", "id": "GoogleCloudApigeeV1BatchUpdateSecurityIncidentsRequest", @@ -13583,6 +13728,10 @@ "description": "Apigee runtime instance.", "id": "GoogleCloudApigeeV1Instance", "properties": { + "accessLoggingConfig": { + "$ref": "GoogleCloudApigeeV1AccessLoggingConfig", + "description": "Optional. Access logging configuration enables the access logging feature at the instance. Apigee customers can enable access logging to ship the access logs to their own project's cloud logging." + }, "consumerAcceptList": { "description": "Optional. Customer accept list represents the list of projects (id/number) on customer side that can privately connect to the service attachment. It is an optional field which the customers can provide during the instance creation. By default, the customer project associated with the Apigee organization will be included to the list.", "items": { @@ -13601,7 +13750,7 @@ "type": "string" }, "diskEncryptionKeyName": { - "description": "Customer Managed Encryption Key (CMEK) used for disk and volume encryption. Required for Apigee paid subscriptions only. Use the following format: `projects/([^/]+)/locations/([^/]+)/keyRings/([^/]+)/cryptoKeys/([^/]+)`", + "description": "Customer Managed Encryption Key (CMEK) used for disk and volume encryption. If not specified, a Google-Managed encryption key will be used. Use the following format: `projects/([^/]+)/locations/([^/]+)/keyRings/([^/]+)/cryptoKeys/([^/]+)`", "type": "string" }, "displayName": { @@ -14891,11 +15040,11 @@ "type": "string" }, "apiConsumerDataEncryptionKeyName": { - "description": "Cloud KMS key name used for encrypting API consumer data. Required for US/EU regions when [BillingType](#BillingType) is `SUBSCRIPTION`. When [BillingType](#BillingType) is `EVALUATION` or the region is not US/EU, a Google-Managed encryption key will be used. Format: `projects/*/locations/*/keyRings/*/cryptoKeys/*`", + "description": "Cloud KMS key name used for encrypting API consumer data. If not specified or [BillingType](#BillingType) is `EVALUATION`, a Google-Managed encryption key will be used. Format: `projects/*/locations/*/keyRings/*/cryptoKeys/*`", "type": "string" }, "apiConsumerDataLocation": { - "description": "This field is needed only for customers with control plane in US or EU. Apigee stores some control plane data only in single region. This field determines which single region Apigee should use. For example: \"us-west1\" when control plane is in US or \"europe-west2\" when control plane is in EU.", + "description": "This field is needed only for customers using non-default data residency regions. Apigee stores some control plane data only in single region. This field determines which single region Apigee should use. For example: \"us-west1\" when control plane is in US or \"europe-west2\" when control plane is in EU.", "type": "string" }, "apigeeProjectId": { @@ -14937,7 +15086,7 @@ "type": "string" }, "controlPlaneEncryptionKeyName": { - "description": "Cloud KMS key name used for encrypting control plane data that is stored in a multi region. Required when [BillingType](#BillingType) is `SUBSCRIPTION`. When [BillingType](#BillingType) is `EVALUATION`, a Google-Managed encryption key will be used. Format: `projects/*/locations/*/keyRings/*/cryptoKeys/*`", + "description": "Cloud KMS key name used for encrypting control plane data that is stored in a multi region. Only used for the data residency region \"US\" or \"EU\". If not specified or [BillingType](#BillingType) is `EVALUATION`, a Google-Managed encryption key will be used. Format: `projects/*/locations/*/keyRings/*/cryptoKeys/*`", "type": "string" }, "createdAt": { @@ -15001,7 +15150,7 @@ "description": "Properties defined in the Apigee organization profile." }, "runtimeDatabaseEncryptionKeyName": { - "description": "Cloud KMS key name used for encrypting the data that is stored and replicated across runtime instances. Update is not allowed after the organization is created. Required when [RuntimeType](#RuntimeType) is `CLOUD`. If not specified when [RuntimeType](#RuntimeType) is `TRIAL`, a Google-Managed encryption key will be used. For example: \"projects/foo/locations/us/keyRings/bar/cryptoKeys/baz\". **Note:** Not supported for Apigee hybrid.", + "description": "Cloud KMS key name used for encrypting the data that is stored and replicated across runtime instances. Update is not allowed after the organization is created. If not specified or [RuntimeType](#RuntimeType) is `TRIAL`, a Google-Managed encryption key will be used. For example: \"projects/foo/locations/us/keyRings/bar/cryptoKeys/baz\". **Note:** Not supported for Apigee hybrid.", "type": "string" }, "runtimeType": { @@ -16660,6 +16809,194 @@ }, "type": "object" }, + "GoogleCloudApigeeV1SecurityAssessmentResult": { + "description": "The security assessment result for one resource.", + "id": "GoogleCloudApigeeV1SecurityAssessmentResult", + "properties": { + "createTime": { + "description": "The time of the assessment of this resource. This could lag behind `assessment_time` due to caching within the backend.", + "format": "google-datetime", + "type": "string" + }, + "error": { + "$ref": "GoogleRpcStatus", + "description": "The error status if scoring fails." + }, + "resource": { + "$ref": "GoogleCloudApigeeV1SecurityAssessmentResultResource", + "description": "The assessed resource." + }, + "scoringResult": { + "$ref": "GoogleCloudApigeeV1SecurityAssessmentResultScoringResult", + "description": "The result of the assessment." + } + }, + "type": "object" + }, + "GoogleCloudApigeeV1SecurityAssessmentResultResource": { + "description": "Resource for which we are computing security assessment.", + "id": "GoogleCloudApigeeV1SecurityAssessmentResultResource", + "properties": { + "name": { + "description": "Required. Name of this resource.", + "type": "string" + }, + "resourceRevisionId": { + "description": "The revision id for the resource. In case of Apigee, this is proxy revision id.", + "type": "string" + }, + "type": { + "description": "Required. Type of this resource.", + "enum": [ + "RESOURCE_TYPE_UNSPECIFIED", + "API_PROXY" + ], + "enumDescriptions": [ + "ResourceType not specified.", + "Resource is an Apigee Proxy." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudApigeeV1SecurityAssessmentResultScoringResult": { + "description": "The result of the assessment.", + "id": "GoogleCloudApigeeV1SecurityAssessmentResultScoringResult", + "properties": { + "assessmentRecommendations": { + "additionalProperties": { + "$ref": "GoogleCloudApigeeV1SecurityAssessmentResultScoringResultAssessmentRecommendation" + }, + "description": "The recommendations of the assessment. The key is the \"name\" of the assessment (not display_name), and the value are the recommendations.", + "type": "object" + }, + "dataUpdateTime": { + "description": "The time when resource data was last fetched for this resource. This time may be different than when the resource was actually updated due to lag in data collection.", + "format": "google-datetime", + "type": "string" + }, + "failedAssessmentPerWeight": { + "additionalProperties": { + "format": "int32", + "type": "integer" + }, + "description": "The number of failed assessments grouped by its weight. Keys are one of the following: \"MAJOR\", \"MODERATE\", \"MINOR\".", + "type": "object" + }, + "score": { + "description": "The security score of the assessment.", + "format": "int32", + "type": "integer" + }, + "severity": { + "description": "The severity of the assessment.", + "enum": [ + "SEVERITY_UNSPECIFIED", + "LOW", + "MEDIUM", + "HIGH", + "NONE", + "NO_RISK", + "MINIMAL" + ], + "enumDescriptions": [ + "Severity is not defined.", + "Severity is low.", + "Severity is medium.", + "Severity is high.", + "Severity is none.", + "Severity represents no risk", + "Severity is minimal" + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudApigeeV1SecurityAssessmentResultScoringResultAssessmentRecommendation": { + "description": "The message format of a recommendation from the assessment.", + "id": "GoogleCloudApigeeV1SecurityAssessmentResultScoringResultAssessmentRecommendation", + "properties": { + "displayName": { + "description": "The display name of the assessment.", + "type": "string" + }, + "recommendations": { + "description": "The recommended steps of the assessment.", + "items": { + "$ref": "GoogleCloudApigeeV1SecurityAssessmentResultScoringResultAssessmentRecommendationRecommendation" + }, + "type": "array" + }, + "scoreImpact": { + "description": "Score impact indicates the impact on the overall score if the assessment were to pass.", + "format": "int32", + "type": "integer" + }, + "verdict": { + "description": "Verdict indicates the assessment result.", + "enum": [ + "VERDICT_UNSPECIFIED", + "PASS", + "FAIL" + ], + "enumDescriptions": [ + "The verdict is unspecified.", + "The assessment has passed.", + "The assessment has failed." + ], + "type": "string" + }, + "weight": { + "description": "The weight of the assessment which was set in the profile.", + "enum": [ + "WEIGHT_UNSPECIFIED", + "MINOR", + "MODERATE", + "MAJOR" + ], + "enumDescriptions": [ + "The weight is unspecified.", + "The weight is minor.", + "The weight is moderate.", + "The weight is major." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudApigeeV1SecurityAssessmentResultScoringResultAssessmentRecommendationRecommendation": { + "description": "The format of the assessment recommendation.", + "id": "GoogleCloudApigeeV1SecurityAssessmentResultScoringResultAssessmentRecommendationRecommendation", + "properties": { + "description": { + "description": "The description of the recommendation.", + "type": "string" + }, + "link": { + "$ref": "GoogleCloudApigeeV1SecurityAssessmentResultScoringResultAssessmentRecommendationRecommendationLink", + "description": "The link for the recommendation." + } + }, + "type": "object" + }, + "GoogleCloudApigeeV1SecurityAssessmentResultScoringResultAssessmentRecommendationRecommendationLink": { + "description": "The format for a link in the recommendation.", + "id": "GoogleCloudApigeeV1SecurityAssessmentResultScoringResultAssessmentRecommendationRecommendationLink", + "properties": { + "text": { + "description": "The text of the url. (ie: \"Learn more\")", + "type": "string" + }, + "uri": { + "description": "The link itself.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudApigeeV1SecurityIncident": { "description": "Represents an SecurityIncident resource.", "id": "GoogleCloudApigeeV1SecurityIncident", @@ -17524,6 +17861,10 @@ "description": "Required. Enables TLS. If false, neither one-way nor two-way TLS will be enabled.", "type": "boolean" }, + "enforce": { + "description": "TLS is strictly enforced.", + "type": "boolean" + }, "ignoreValidationErrors": { "description": "If true, Edge ignores TLS certificate errors. Valid when configuring TLS for target servers and target endpoints, and when configuring virtual hosts that use 2-way TLS. When used with a target endpoint/target server, if the backend system uses SNI and returns a cert with a subject Distinguished Name (DN) that does not match the hostname, there is no way to ignore the error and the connection fails.", "type": "boolean" @@ -17586,6 +17927,10 @@ "description": "Flag that specifies whether one-way TLS is enabled. Set to `true` to enable one-way TLS.", "type": "boolean" }, + "enforce": { + "description": "Flag that enforces TLS settings", + "type": "boolean" + }, "ignoreValidationErrors": { "description": "Flag that specifies whether to ignore TLS certificate validation errors. Set to `true` to ignore errors.", "type": "boolean" diff --git a/etc/api/apikeys/v2/apikeys-api.json b/etc/api/apikeys/v2/apikeys-api.json index 20c352f630..9bef5af430 100644 --- a/etc/api/apikeys/v2/apikeys-api.json +++ b/etc/api/apikeys/v2/apikeys-api.json @@ -396,7 +396,7 @@ } } }, - "revision": "20240303", + "revision": "20240414", "rootUrl": "https://apikeys.googleapis.com/", "schemas": { "Operation": { diff --git a/etc/api/appengine/v1/appengine-api.json b/etc/api/appengine/v1/appengine-api.json index eb1b17acbd..4b7ff51a8a 100644 --- a/etc/api/appengine/v1/appengine-api.json +++ b/etc/api/appengine/v1/appengine-api.json @@ -1718,7 +1718,7 @@ } } }, - "revision": "20240226", + "revision": "20240415", "rootUrl": "https://appengine.googleapis.com/", "schemas": { "ApiConfigHandler": { @@ -3290,8 +3290,9 @@ "type": "string" }, "phase": { + "description": "Phase indicates when in the container event propagation this event is being communicated. Events are sent before and after the per-resource events are propagated. required", "enum": [ - "UNKNOWN", + "CONTAINER_EVENT_PHASE_UNSPECIFIED", "BEFORE_RESOURCE_HANDLING", "AFTER_RESOURCE_HANDLING" ], @@ -3308,7 +3309,7 @@ }, "state": { "$ref": "ContainerState", - "description": "The state of the project that led to this event." + "description": "The state of the organization that led to this event." } }, "type": "object" diff --git a/etc/api/appengine/v1alpha/appengine-api.json b/etc/api/appengine/v1alpha/appengine-api.json index 3a5a62c37f..443f0e162a 100644 --- a/etc/api/appengine/v1alpha/appengine-api.json +++ b/etc/api/appengine/v1alpha/appengine-api.json @@ -946,7 +946,7 @@ } } }, - "revision": "20240226", + "revision": "20240415", "rootUrl": "https://appengine.googleapis.com/", "schemas": { "AuthorizedCertificate": { @@ -1498,8 +1498,9 @@ "type": "string" }, "phase": { + "description": "Phase indicates when in the container event propagation this event is being communicated. Events are sent before and after the per-resource events are propagated. required", "enum": [ - "UNKNOWN", + "CONTAINER_EVENT_PHASE_UNSPECIFIED", "BEFORE_RESOURCE_HANDLING", "AFTER_RESOURCE_HANDLING" ], @@ -1516,7 +1517,7 @@ }, "state": { "$ref": "ContainerState", - "description": "The state of the project that led to this event." + "description": "The state of the organization that led to this event." } }, "type": "object" diff --git a/etc/api/appengine/v1beta/appengine-api.json b/etc/api/appengine/v1beta/appengine-api.json index 4650a91616..097a77f1e8 100644 --- a/etc/api/appengine/v1beta/appengine-api.json +++ b/etc/api/appengine/v1beta/appengine-api.json @@ -1918,7 +1918,7 @@ } } }, - "revision": "20240226", + "revision": "20240415", "rootUrl": "https://appengine.googleapis.com/", "schemas": { "ApiConfigHandler": { @@ -3541,8 +3541,9 @@ "type": "string" }, "phase": { + "description": "Phase indicates when in the container event propagation this event is being communicated. Events are sent before and after the per-resource events are propagated. required", "enum": [ - "UNKNOWN", + "CONTAINER_EVENT_PHASE_UNSPECIFIED", "BEFORE_RESOURCE_HANDLING", "AFTER_RESOURCE_HANDLING" ], @@ -3559,7 +3560,7 @@ }, "state": { "$ref": "ContainerState", - "description": "The state of the project that led to this event." + "description": "The state of the organization that led to this event." } }, "type": "object" diff --git a/etc/api/area120tables/v1alpha1/area120tables-api.json b/etc/api/area120tables/v1alpha1/area120tables-api.json index 897970a529..10ee05bb8a 100644 --- a/etc/api/area120tables/v1alpha1/area120tables-api.json +++ b/etc/api/area120tables/v1alpha1/area120tables-api.json @@ -586,7 +586,7 @@ } } }, - "revision": "20240304", + "revision": "20240418", "rootUrl": "https://area120tables.googleapis.com/", "schemas": { "BatchCreateRowsRequest": { diff --git a/etc/api/artifactregistry/v1/artifactregistry-api.json b/etc/api/artifactregistry/v1/artifactregistry-api.json index cb588c7005..91d650117f 100644 --- a/etc/api/artifactregistry/v1/artifactregistry-api.json +++ b/etc/api/artifactregistry/v1/artifactregistry-api.json @@ -115,6 +115,38 @@ }, "protocol": "rest", "resources": { + "media": { + "methods": { + "download": { + "description": "Download a file.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/files/{filesId}:download", + "httpMethod": "GET", + "id": "artifactregistry.media.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 + } + } + }, "projects": { "methods": { "getProjectSettings": { @@ -1193,6 +1225,40 @@ "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": { @@ -1668,7 +1734,7 @@ } } }, - "revision": "20240213", + "revision": "20240329", "rootUrl": "https://artifactregistry.googleapis.com/", "schemas": { "AptArtifact": { @@ -1723,6 +1789,10 @@ "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." @@ -1941,6 +2011,10 @@ "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": [ @@ -1967,6 +2041,12 @@ }, "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", @@ -2090,6 +2170,17 @@ }, "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", @@ -2117,6 +2208,61 @@ }, "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", @@ -2662,6 +2808,10 @@ "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": [ @@ -2744,6 +2894,10 @@ "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": [ @@ -2804,6 +2958,13 @@ "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", @@ -2859,19 +3020,22 @@ "REDIRECTION_STATE_UNSPECIFIED", "REDIRECTION_FROM_GCR_IO_DISABLED", "REDIRECTION_FROM_GCR_IO_ENABLED", - "REDIRECTION_FROM_GCR_IO_FINALIZED" + "REDIRECTION_FROM_GCR_IO_FINALIZED", + "REDIRECTION_FROM_GCR_IO_ENABLED_AND_COPYING" ], "enumDeprecated": [ false, false, false, - true + true, + 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 has been finalized so cannot be reverted.", + "Redirection is enabled and missing images are copied from GCR" ], "type": "string" }, @@ -2921,6 +3085,10 @@ "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": [ @@ -2948,6 +3116,10 @@ "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." @@ -3057,13 +3229,15 @@ "MODE_UNSPECIFIED", "STANDARD_REPOSITORY", "VIRTUAL_REPOSITORY", - "REMOTE_REPOSITORY" + "REMOTE_REPOSITORY", + "AOSS_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." + "A remote repository to serve artifacts from a remote source.", + "An AOSS repository provides artifacts from AOSS upstreams." ], "type": "string" }, @@ -3516,6 +3690,10 @@ "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." diff --git a/etc/api/artifactregistry/v1beta1/artifactregistry-api.json b/etc/api/artifactregistry/v1beta1/artifactregistry-api.json index 2770683986..d7c127c90b 100644 --- a/etc/api/artifactregistry/v1beta1/artifactregistry-api.json +++ b/etc/api/artifactregistry/v1beta1/artifactregistry-api.json @@ -936,7 +936,7 @@ } } }, - "revision": "20240213", + "revision": "20240329", "rootUrl": "https://artifactregistry.googleapis.com/", "schemas": { "Binding": { diff --git a/etc/api/artifactregistry/v1beta2/artifactregistry-api.json b/etc/api/artifactregistry/v1beta2/artifactregistry-api.json index f394dd88a0..489e521ed8 100644 --- a/etc/api/artifactregistry/v1beta2/artifactregistry-api.json +++ b/etc/api/artifactregistry/v1beta2/artifactregistry-api.json @@ -115,6 +115,38 @@ }, "protocol": "rest", "resources": { + "media": { + "methods": { + "download": { + "description": "Download a file.", + "flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/files/{filesId}:download", + "httpMethod": "GET", + "id": "artifactregistry.media.download", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the file to download.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/files/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta2/{+name}:download", + "response": { + "$ref": "DownloadFileResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ], + "supportsMediaDownload": true, + "useMediaDownloadService": true + } + } + }, "projects": { "methods": { "getProjectSettings": { @@ -762,6 +794,40 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/cloud-platform.read-only" ] + }, + "patch": { + "description": "Updates a package.", + "flatPath": "v1beta2/projects/{projectsId}/locations/{locationsId}/repositories/{repositoriesId}/packages/{packagesId}", + "httpMethod": "PATCH", + "id": "artifactregistry.projects.locations.repositories.packages.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the package, for example: `projects/p1/locations/us-central1/repositories/repo1/packages/pkg1`. If the package ID part contains slashes, the slashes are escaped.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/repositories/[^/]+/packages/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "The update mask applies to the resource. For the `FieldMask` definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1beta2/{+name}", + "request": { + "$ref": "Package" + }, + "response": { + "$ref": "Package" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } }, "resources": { @@ -1142,7 +1208,7 @@ } } }, - "revision": "20240213", + "revision": "20240329", "rootUrl": "https://artifactregistry.googleapis.com/", "schemas": { "AptArtifact": { @@ -1215,6 +1281,12 @@ }, "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", @@ -1663,6 +1735,13 @@ "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", @@ -1718,19 +1797,22 @@ "REDIRECTION_STATE_UNSPECIFIED", "REDIRECTION_FROM_GCR_IO_DISABLED", "REDIRECTION_FROM_GCR_IO_ENABLED", - "REDIRECTION_FROM_GCR_IO_FINALIZED" + "REDIRECTION_FROM_GCR_IO_FINALIZED", + "REDIRECTION_FROM_GCR_IO_ENABLED_AND_COPYING" ], "enumDeprecated": [ false, false, false, - true + true, + 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 has been finalized so cannot be reverted.", + "Redirection is enabled and missing images are copied from GCR" ], "type": "string" }, diff --git a/etc/api/assuredworkloads/v1/assuredworkloads-api.json b/etc/api/assuredworkloads/v1/assuredworkloads-api.json index 25548088d0..ada35a728c 100644 --- a/etc/api/assuredworkloads/v1/assuredworkloads-api.json +++ b/etc/api/assuredworkloads/v1/assuredworkloads-api.json @@ -591,7 +591,7 @@ } } }, - "revision": "20240222", + "revision": "20240411", "rootUrl": "https://assuredworkloads.googleapis.com/", "schemas": { "GoogleCloudAssuredworkloadsV1AcknowledgeViolationRequest": { @@ -695,7 +695,9 @@ "CA_PROTECTED_B", "IL5", "IL2", - "JP_REGIONS_AND_SUPPORT" + "JP_REGIONS_AND_SUPPORT", + "KSA_REGIONS_AND_SUPPORT_WITH_SOVEREIGNTY_CONTROLS", + "FREE_REGIONS" ], "enumDescriptions": [ "Unknown compliance regime.", @@ -716,7 +718,9 @@ "Assured Workloads for Canada Protected B regime", "Information protection as per DoD IL5 requirements.", "Information protection as per DoD IL2 requirements.", - "Assured Workloads for Japan Regions" + "Assured Workloads for Japan Regions", + "KSA R5 Controls.", + "Assured Workloads Free Regions" ], "type": "string" }, @@ -1172,7 +1176,9 @@ "CA_PROTECTED_B", "IL5", "IL2", - "JP_REGIONS_AND_SUPPORT" + "JP_REGIONS_AND_SUPPORT", + "KSA_REGIONS_AND_SUPPORT_WITH_SOVEREIGNTY_CONTROLS", + "FREE_REGIONS" ], "enumDescriptions": [ "Unknown compliance regime.", @@ -1193,7 +1199,9 @@ "Assured Workloads for Canada Protected B regime", "Information protection as per DoD IL5 requirements.", "Information protection as per DoD IL2 requirements.", - "Assured Workloads for Japan Regions" + "Assured Workloads for Japan Regions", + "KSA R5 Controls.", + "Assured Workloads Free Regions" ], "type": "string" }, diff --git a/etc/api/authorizedbuyersmarketplace/v1/authorizedbuyersmarketplace-api.json b/etc/api/authorizedbuyersmarketplace/v1/authorizedbuyersmarketplace-api.json index e48709a5ff..9186b1a849 100644 --- a/etc/api/authorizedbuyersmarketplace/v1/authorizedbuyersmarketplace-api.json +++ b/etc/api/authorizedbuyersmarketplace/v1/authorizedbuyersmarketplace-api.json @@ -107,6 +107,51 @@ "resources": { "bidders": { "resources": { + "auctionPackages": { + "methods": { + "list": { + "description": "List the auction packages. Buyers can use the URL path \"/v1/buyers/{accountId}/auctionPackages\" to list auction packages for the current buyer and its clients. Bidders can use the URL path \"/v1/bidders/{accountId}/auctionPackages\" to list auction packages for the bidder, its media planners, its buyers, and all their clients.", + "flatPath": "v1/bidders/{biddersId}/auctionPackages", + "httpMethod": "GET", + "id": "authorizedbuyersmarketplace.bidders.auctionPackages.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. Optional query string using the [Cloud API list filtering syntax](/authorized-buyers/apis/guides/list-filters). Only supported when parent is bidder. Supported columns for filtering are: * displayName * createTime * updateTime * eligibleSeatIds", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Requested page size. The server may return fewer results than requested. Max allowed page size is 500.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The page token as returned. ListAuctionPackagesResponse.nextPageToken", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Name of the parent buyer that can access the auction package. Format: `buyers/{accountId}`. When used with a bidder account, the auction packages that the bidder, its media planners, its buyers and clients are subscribed to will be listed, in the format `bidders/{accountId}`.", + "location": "path", + "pattern": "^bidders/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/auctionPackages", + "response": { + "$ref": "ListAuctionPackagesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/authorized-buyers-marketplace" + ] + } + } + }, "finalizedDeals": { "methods": { "list": { @@ -189,7 +234,7 @@ ] }, "list": { - "description": "List the auction packages subscribed by a buyer and its clients.", + "description": "List the auction packages. Buyers can use the URL path \"/v1/buyers/{accountId}/auctionPackages\" to list auction packages for the current buyer and its clients. Bidders can use the URL path \"/v1/bidders/{accountId}/auctionPackages\" to list auction packages for the bidder, its media planners, its buyers, and all their clients.", "flatPath": "v1/buyers/{buyersId}/auctionPackages", "httpMethod": "GET", "id": "authorizedbuyersmarketplace.buyers.auctionPackages.list", @@ -197,6 +242,11 @@ "parent" ], "parameters": { + "filter": { + "description": "Optional. Optional query string using the [Cloud API list filtering syntax](/authorized-buyers/apis/guides/list-filters). Only supported when parent is bidder. Supported columns for filtering are: * displayName * createTime * updateTime * eligibleSeatIds", + "location": "query", + "type": "string" + }, "pageSize": { "description": "Requested page size. The server may return fewer results than requested. Max allowed page size is 500.", "format": "int32", @@ -209,7 +259,7 @@ "type": "string" }, "parent": { - "description": "Required. Name of the parent buyer that can access the auction package. Format: `buyers/{accountId}`", + "description": "Required. Name of the parent buyer that can access the auction package. Format: `buyers/{accountId}`. When used with a bidder account, the auction packages that the bidder, its media planners, its buyers and clients are subscribed to will be listed, in the format `bidders/{accountId}`.", "location": "path", "pattern": "^buyers/[^/]+$", "required": true, @@ -1307,7 +1357,7 @@ } } }, - "revision": "20240305", + "revision": "20240418", "rootUrl": "https://authorizedbuyersmarketplace.googleapis.com/", "schemas": { "AcceptProposalRequest": { @@ -1415,18 +1465,42 @@ "description": "The display_name assigned to the auction package.", "type": "string" }, + "eligibleSeatIds": { + "description": "Output only. If set, this field contains the list of DSP specific seat ids set by media planners that are eligible to transact on this deal. The seat ID is in the calling DSP's namespace.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, "name": { "description": "Immutable. The unique identifier for the auction package. Format: `buyers/{accountId}/auctionPackages/{auctionPackageId}` The auction_package_id part of name is sent in the BidRequest to all RTB bidders and is returned as deal_id by the bidder in the BidResponse.", "type": "string" }, - "subscribedClients": { - "description": "Output only. The list of clients of the current buyer that are subscribed to the AuctionPackage. Format: `buyers/{buyerAccountId}/clients/{clientAccountId}`", + "subscribedBuyers": { + "description": "Output only. The list of buyers that are subscribed to the AuctionPackage. This field is only populated when calling as a bidder. Format: `buyers/{buyerAccountId}`", "items": { "type": "string" }, "readOnly": true, "type": "array" }, + "subscribedClients": { + "description": "Output only. When calling as a buyer, the list of clients of the current buyer that are subscribed to the AuctionPackage. When calling as a bidder, the list of clients that are subscribed to the AuctionPackage owned by the bidder or its buyers. Format: `buyers/{buyerAccountId}/clients/{clientAccountId}`", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "subscribedMediaPlanners": { + "description": "Output only. The list of media planners that are subscribed to the AuctionPackage. This field is only populated when calling as a bidder.", + "items": { + "$ref": "MediaPlanner" + }, + "readOnly": true, + "type": "array" + }, "updateTime": { "description": "Output only. Time the auction package was last updated. This value is only increased when this auction package is updated but never when a buyer subscribed.", "format": "google-datetime", diff --git a/etc/api/baremetalsolution/v1/baremetalsolution-api.json b/etc/api/baremetalsolution/v1/baremetalsolution-api.json index 1656711ae3..4cf4186236 100644 --- a/etc/api/baremetalsolution/v1/baremetalsolution-api.json +++ b/etc/api/baremetalsolution/v1/baremetalsolution-api.json @@ -228,7 +228,7 @@ } } }, - "revision": "20240228", + "revision": "20240321", "rootUrl": "https://baremetalsolution.googleapis.com/", "schemas": { "CancelOperationRequest": { diff --git a/etc/api/baremetalsolution/v2/baremetalsolution-api.json b/etc/api/baremetalsolution/v2/baremetalsolution-api.json index 331eec5e6c..badb55be44 100644 --- a/etc/api/baremetalsolution/v2/baremetalsolution-api.json +++ b/etc/api/baremetalsolution/v2/baremetalsolution-api.json @@ -1638,7 +1638,7 @@ } } }, - "revision": "20240228", + "revision": "20240321", "rootUrl": "https://baremetalsolution.googleapis.com/", "schemas": { "AllowedClient": { diff --git a/etc/api/bigquery/v2/bigquery-api.json b/etc/api/bigquery/v2/bigquery-api.json index b7c4c85b26..49857f8b97 100644 --- a/etc/api/bigquery/v2/bigquery-api.json +++ b/etc/api/bigquery/v2/bigquery-api.json @@ -1084,6 +1084,36 @@ "https://www.googleapis.com/auth/cloud-platform.read-only" ] }, + "getIamPolicy": { + "description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", + "flatPath": "projects/{projectsId}/datasets/{datasetsId}/routines/{routinesId}:getIamPolicy", + "httpMethod": "POST", + "id": "bigquery.routines.getIamPolicy", + "parameterOrder": [ + "resource" + ], + "parameters": { + "resource": { + "description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", + "location": "path", + "pattern": "^projects/[^/]+/datasets/[^/]+/routines/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "{+resource}:getIamPolicy", + "request": { + "$ref": "GetIamPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only" + ] + }, "insert": { "description": "Creates a new routine in the dataset.", "flatPath": "projects/{projectsId}/datasets/{datasetsId}/routines", @@ -1178,6 +1208,35 @@ "https://www.googleapis.com/auth/cloud-platform.read-only" ] }, + "setIamPolicy": { + "description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.", + "flatPath": "projects/{projectsId}/datasets/{datasetsId}/routines/{routinesId}:setIamPolicy", + "httpMethod": "POST", + "id": "bigquery.routines.setIamPolicy", + "parameterOrder": [ + "resource" + ], + "parameters": { + "resource": { + "description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", + "location": "path", + "pattern": "^projects/[^/]+/datasets/[^/]+/routines/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "{+resource}:setIamPolicy", + "request": { + "$ref": "SetIamPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "update": { "description": "Updates information in an existing routine. The update method replaces the entire Routine resource.", "flatPath": "projects/{projectsId}/datasets/{datasetsId}/routines/{routinesId}", @@ -1844,7 +1903,7 @@ } } }, - "revision": "20240214", + "revision": "20240323", "rootUrl": "https://bigquery.googleapis.com/", "schemas": { "AggregateClassificationMetrics": { @@ -3104,6 +3163,10 @@ "readOnly": true, "type": "string" }, + "externalCatalogDatasetOptions": { + "$ref": "ExternalCatalogDatasetOptions", + "description": "Optional. Options defining open source compatible datasets living in the BigQuery catalog. Contains metadata of open source database, schema or namespace represented by the current dataset." + }, "externalDatasetReference": { "$ref": "ExternalDatasetReference", "description": "Optional. Reference to a read-only external dataset defined in data catalogs outside of BigQuery. Filled out when the dataset type is EXTERNAL." @@ -3140,6 +3203,11 @@ "readOnly": true, "type": "string" }, + "linkedDatasetMetadata": { + "$ref": "LinkedDatasetMetadata", + "description": "Output only. Metadata about the LinkedDataset. Filled out when the dataset type is LINKED.", + "readOnly": true + }, "linkedDatasetSource": { "$ref": "LinkedDatasetSource", "description": "Optional. The source dataset reference when the dataset is of type LINKED. For all other dataset types it is not set. This field cannot be updated once it is set. Any attempt to update this field using Update and Patch API Operations will be ignored." @@ -3344,6 +3412,42 @@ }, "type": "object" }, + "DifferentialPrivacyPolicy": { + "description": "Represents privacy policy associated with \"differential privacy\" method.", + "id": "DifferentialPrivacyPolicy", + "properties": { + "deltaBudget": { + "description": "Optional. The total delta budget for all queries against the privacy-protected view. Each subscriber query against this view charges the amount of delta that is pre-defined by the contributor through the privacy policy delta_per_query field. If there is sufficient budget, then the subscriber query attempts to complete. It might still fail due to other reasons, in which case the charge is refunded. If there is insufficient budget the query is rejected. There might be multiple charge attempts if a single query references multiple views. In this case there must be sufficient budget for all charges or the query is rejected and charges are refunded in best effort. The budget does not have a refresh policy and can only be updated via ALTER VIEW or circumvented by creating a new view that can be queried with a fresh budget.", + "format": "double", + "type": "number" + }, + "deltaPerQuery": { + "description": "Optional. The delta value that is used per query. Delta represents the probability that any row will fail to be epsilon differentially private. Indicates the risk associated with exposing aggregate rows in the result of a query.", + "format": "double", + "type": "number" + }, + "epsilonBudget": { + "description": "Optional. The total epsilon budget for all queries against the privacy-protected view. Each subscriber query against this view charges the amount of epsilon they request in their query. If there is sufficient budget, then the subscriber query attempts to complete. It might still fail due to other reasons, in which case the charge is refunded. If there is insufficient budget the query is rejected. There might be multiple charge attempts if a single query references multiple views. In this case there must be sufficient budget for all charges or the query is rejected and charges are refunded in best effort. The budget does not have a refresh policy and can only be updated via ALTER VIEW or circumvented by creating a new view that can be queried with a fresh budget.", + "format": "double", + "type": "number" + }, + "maxEpsilonPerQuery": { + "description": "Optional. The maximum epsilon value that a query can consume. If the subscriber specifies epsilon as a parameter in a SELECT query, it must be less than or equal to this value. The epsilon parameter controls the amount of noise that is added to the groups \u2014 a higher epsilon means less noise.", + "format": "double", + "type": "number" + }, + "maxGroupsContributed": { + "description": "Optional. The maximum groups contributed value that is used per query. Represents the maximum number of groups to which each protected entity can contribute. Changing this value does not improve or worsen privacy. The best value for accuracy and utility depends on the query and data.", + "format": "int64", + "type": "string" + }, + "privacyUnitColumn": { + "description": "Optional. The privacy unit column associated with this policy. Differential privacy policies can only have one privacy unit column per data source object (table, view).", + "type": "string" + } + }, + "type": "object" + }, "DimensionalityReductionMetrics": { "description": "Model evaluation metrics for dimensionality reduction models.", "id": "DimensionalityReductionMetrics", @@ -3761,6 +3865,46 @@ }, "type": "object" }, + "ExternalCatalogDatasetOptions": { + "description": "Options defining open source compatible datasets living in the BigQuery catalog. Contains metadata of open source database, schema or namespace represented by the current dataset.", + "id": "ExternalCatalogDatasetOptions", + "properties": { + "defaultStorageLocationUri": { + "description": "Optional. The storage location URI for all tables in the dataset. Equivalent to hive metastore's database locationUri. Maximum length of 1024 characters.", + "type": "string" + }, + "parameters": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. A map of key value pairs defining the parameters and properties of the open source schema. Maximum size of 2Mib.", + "type": "object" + } + }, + "type": "object" + }, + "ExternalCatalogTableOptions": { + "description": "Metadata about open source compatible table. The fields contained in these options correspond to hive metastore's table level properties.", + "id": "ExternalCatalogTableOptions", + "properties": { + "connectionId": { + "description": "Optional. The connection specifying the credentials to be used to read external storage, such as Azure Blob, Cloud Storage, or S3. The connection is needed to read the open source table from BigQuery Engine. The connection_id can have the form `..` or `projects//locations//connections/`.", + "type": "string" + }, + "parameters": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. A map of key value pairs defining the parameters and properties of the open source table. Corresponds with hive meta store table parameters. Maximum size of 4Mib.", + "type": "object" + }, + "storageDescriptor": { + "$ref": "StorageDescriptor", + "description": "Optional. A storage descriptor containing information about the physical storage of this table." + } + }, + "type": "object" + }, "ExternalDataConfiguration": { "id": "ExternalDataConfiguration", "properties": { @@ -5753,6 +5897,38 @@ }, "type": "object" }, + "JoinRestrictionPolicy": { + "description": "Represents privacy policy associated with \"join restrictions\". Join restriction gives data providers the ability to enforce joins on the 'join_allowed_columns' when data is queried from a privacy protected view.", + "id": "JoinRestrictionPolicy", + "properties": { + "joinAllowedColumns": { + "description": "Optional. The only columns that joins are allowed on. This field is must be specified for join_conditions JOIN_ANY and JOIN_ALL and it cannot be set for JOIN_BLOCKED.", + "items": { + "type": "string" + }, + "type": "array" + }, + "joinCondition": { + "description": "Optional. Specifies if a join is required or not on queries for the view. Default is JOIN_CONDITION_UNSPECIFIED.", + "enum": [ + "JOIN_CONDITION_UNSPECIFIED", + "JOIN_ANY", + "JOIN_ALL", + "JOIN_NOT_REQUIRED", + "JOIN_BLOCKED" + ], + "enumDescriptions": [ + "A join is neither required nor restricted on any column. Default value.", + "A join is required on at least one of the specified columns.", + "A join is required on all specified columns.", + "A join is not required, but if present it is only permitted on 'join_allowed_columns'", + "Joins are blocked for all queries." + ], + "type": "string" + } + }, + "type": "object" + }, "JsonObject": { "additionalProperties": { "$ref": "JsonValue" @@ -5776,6 +5952,28 @@ "id": "JsonValue", "type": "any" }, + "LinkedDatasetMetadata": { + "description": "Metadata about the Linked Dataset.", + "id": "LinkedDatasetMetadata", + "properties": { + "linkState": { + "description": "Output only. Specifies whether Linked Dataset is currently in a linked state or not.", + "enum": [ + "LINK_STATE_UNSPECIFIED", + "LINKED", + "UNLINKED" + ], + "enumDescriptions": [ + "The default value. Default to the LINKED state.", + "Normal Linked Dataset state. Data is queryable via the Linked Dataset.", + "Data publisher or owner has unlinked this Linked Dataset. It means you can no longer query or see the data in the Linked Dataset." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "LinkedDatasetSource": { "description": "A dataset source type which refers to another BigQuery dataset.", "id": "LinkedDatasetSource", @@ -6407,6 +6605,48 @@ }, "type": "object" }, + "PartitionSkew": { + "description": "Partition skew detailed information.", + "id": "PartitionSkew", + "properties": { + "skewSources": { + "description": "Output only. Source stages which produce skewed data.", + "items": { + "$ref": "SkewSource" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, + "PartitionedColumn": { + "description": "The partitioning column information.", + "id": "PartitionedColumn", + "properties": { + "field": { + "description": "Output only. The name of the partition column.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "PartitioningDefinition": { + "description": "The partitioning information, which includes managed table and external table partition information.", + "id": "PartitioningDefinition", + "properties": { + "partitionedColumn": { + "description": "Output only. Details about each partitioning column. BigQuery native tables only support 1 partitioning column. Other table types may support 0, 1 or more partitioning columns.", + "items": { + "$ref": "PartitionedColumn" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, "PerformanceInsights": { "description": "Performance insights for the job.", "id": "PerformanceInsights", @@ -6501,6 +6741,14 @@ "aggregationThresholdPolicy": { "$ref": "AggregationThresholdPolicy", "description": "Optional. Policy used for aggregation thresholds." + }, + "differentialPrivacyPolicy": { + "$ref": "DifferentialPrivacyPolicy", + "description": "Optional. Policy used for differential privacy." + }, + "joinRestrictionPolicy": { + "$ref": "JoinRestrictionPolicy", + "description": "Optional. Join restriction policy is outside of the one of policies, since this policy can be set along with other policies. This policy gives data providers the ability to enforce joins on the 'join_allowed_columns' when data is queried from a privacy protected view." } }, "type": "object" @@ -7472,6 +7720,28 @@ }, "type": "object" }, + "SerDeInfo": { + "description": "Serializer and deserializer information.", + "id": "SerDeInfo", + "properties": { + "name": { + "description": "Optional. Name of the SerDe. The maximum length is 256 characters.", + "type": "string" + }, + "parameters": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Key-value pairs that define the initialization parameters for the serialization library. Maximum size 10 Kib.", + "type": "object" + }, + "serializationLibrary": { + "description": "Required. Specifies a fully-qualified class name of the serialization library that is responsible for the translation of data between table representation and the underlying low-level input and output format structures. The maximum length is 256 characters.", + "type": "string" + } + }, + "type": "object" + }, "SessionInfo": { "description": "[Preview] Information related to sessions.", "id": "SessionInfo", @@ -7500,6 +7770,19 @@ }, "type": "object" }, + "SkewSource": { + "description": "Details about source stages which produce skewed data.", + "id": "SkewSource", + "properties": { + "stageId": { + "description": "Output only. Stage id of the skew source stage.", + "format": "int64", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "SnapshotDefinition": { "description": "Information about base table and snapshot time of the snapshot.", "id": "SnapshotDefinition", @@ -7608,12 +7891,12 @@ "type": "object" }, "gcsStagingBucket": { - "description": "Output only. The Google Cloud Storage bucket that is used as the default filesystem by the Spark application. This fields is only filled when the Spark procedure uses the INVOKER security mode. It is inferred from the system variable @@spark_proc_properties.staging_bucket if it is provided. Otherwise, BigQuery creates a default staging bucket for the job and returns the bucket name in this field. Example: * `gs://[bucket_name]`", + "description": "Output only. The Google Cloud Storage bucket that is used as the default file system by the Spark application. This field is only filled when the Spark procedure uses the invoker security mode. The `gcsStagingBucket` bucket is inferred from the `@@spark_proc_properties.staging_bucket` system variable (if it is provided). Otherwise, BigQuery creates a default staging bucket for the job and returns the bucket name in this field. Example: * `gs://[bucket_name]`", "readOnly": true, "type": "string" }, "kmsKeyName": { - "description": "Output only. The Cloud KMS encryption key that is used to protect the resources created by the Spark job. If the Spark procedure uses DEFINER security mode, the Cloud KMS key is inferred from the Spark connection associated with the procedure if it is provided. Otherwise the key is inferred from the default key of the Spark connection's project if the CMEK organization policy is enforced. If the Spark procedure uses INVOKER security mode, the Cloud KMS encryption key is inferred from the system variable @@spark_proc_properties.kms_key_name if it is provided. Otherwise, the key is inferred fromt he default key of the BigQuery job's project if the CMEK organization policy is enforced. Example: * `projects/[kms_project_id]/locations/[region]/keyRings/[key_region]/cryptoKeys/[key]`", + "description": "Output only. The Cloud KMS encryption key that is used to protect the resources created by the Spark job. If the Spark procedure uses the invoker security mode, the Cloud KMS encryption key is either inferred from the provided system variable, `@@spark_proc_properties.kms_key_name`, or the default key of the BigQuery job's project (if the CMEK organization policy is enforced). Otherwise, the Cloud KMS key is either inferred from the Spark connection associated with the procedure (if it is provided), or from the default key of the Spark connection's project if the CMEK organization policy is enforced. Example: * `projects/[kms_project_id]/locations/[region]/keyRings/[key_region]/cryptoKeys/[key]`", "readOnly": true, "type": "string" }, @@ -7678,6 +7961,11 @@ "readOnly": true, "type": "boolean" }, + "partitionSkew": { + "$ref": "PartitionSkew", + "description": "Output only. Partition skew in the stage.", + "readOnly": true + }, "slotContention": { "description": "Output only. True if the stage has a slot contention issue.", "readOnly": true, @@ -7798,6 +8086,29 @@ }, "type": "object" }, + "StorageDescriptor": { + "description": "Contains information about how a table's data is stored and accessed by open source query engines.", + "id": "StorageDescriptor", + "properties": { + "inputFormat": { + "description": "Optional. Specifies the fully qualified class name of the InputFormat (e.g. \"org.apache.hadoop.hive.ql.io.orc.OrcInputFormat\"). The maximum length is 128 characters.", + "type": "string" + }, + "locationUri": { + "description": "Optional. The physical location of the table (e.g. 'gs://spark-dataproc-data/pangea-data/case_sensitive/' or 'gs://spark-dataproc-data/pangea-data/*'). The maximum length is 2056 bytes.", + "type": "string" + }, + "outputFormat": { + "description": "Optional. Specifies the fully qualified class name of the OutputFormat (e.g. \"org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat\"). The maximum length is 128 characters.", + "type": "string" + }, + "serdeInfo": { + "$ref": "SerDeInfo", + "description": "Optional. Serializer and deserializer information." + } + }, + "type": "object" + }, "Streamingbuffer": { "id": "Streamingbuffer", "properties": { @@ -7918,6 +8229,10 @@ "format": "int64", "type": "string" }, + "externalCatalogTableOptions": { + "$ref": "ExternalCatalogTableOptions", + "description": "Optional. Options defining open source compatible table." + }, "externalDataConfiguration": { "$ref": "ExternalDataConfiguration", "description": "Optional. Describes the data format, location, and other properties of a table stored outside of BigQuery. By defining these properties, the data source can then be queried as if it were a standard BigQuery table." @@ -8043,6 +8358,11 @@ "readOnly": true, "type": "string" }, + "partitionDefinition": { + "$ref": "PartitioningDefinition", + "description": "Output only. The partition information for all table formats, including managed partitioned tables, hive partitioned tables, and iceberg partitioned tables.", + "readOnly": true + }, "rangePartitioning": { "$ref": "RangePartitioning", "description": "If specified, configures range partitioning for this table." @@ -8370,7 +8690,7 @@ "description": "Represents the type of a field element.", "properties": { "type": { - "description": "Required. The type of a field element. See TableFieldSchema.type.", + "description": "Required. The type of a field element. For more information, see TableFieldSchema.type.", "type": "string" } }, @@ -8396,7 +8716,7 @@ "type": "string" }, "type": { - "description": "Required. The field data type. Possible values include: * STRING * BYTES * INTEGER (or INT64) * FLOAT (or FLOAT64) * BOOLEAN (or BOOL) * TIMESTAMP * DATE * TIME * DATETIME * GEOGRAPHY * NUMERIC * BIGNUMERIC * JSON * RECORD (or STRUCT) Use of RECORD/STRUCT indicates that the field contains a nested schema.", + "description": "Required. The field data type. Possible values include: * STRING * BYTES * INTEGER (or INT64) * FLOAT (or FLOAT64) * BOOLEAN (or BOOL) * TIMESTAMP * DATE * TIME * DATETIME * GEOGRAPHY * NUMERIC * BIGNUMERIC * JSON * RECORD (or STRUCT) * RANGE ([Preview](/products/#product-launch-stages)) Use of RECORD/STRUCT indicates that the field contains a nested schema.", "type": "string" } }, @@ -9701,7 +10021,7 @@ "id": "UndeleteDatasetRequest", "properties": { "deletionTime": { - "description": "Optional. The exact time when the dataset was deleted. If not specified, it will undelete the most recently deleted version.", + "description": "Optional. The exact time when the dataset was deleted. If not specified, the most recently deleted version is undeleted.", "format": "google-datetime", "type": "string" } diff --git a/etc/api/bigqueryconnection/v1beta1/bigqueryconnection-api.json b/etc/api/bigqueryconnection/v1beta1/bigqueryconnection-api.json index e275a9e1fe..6ccb360663 100644 --- a/etc/api/bigqueryconnection/v1beta1/bigqueryconnection-api.json +++ b/etc/api/bigqueryconnection/v1beta1/bigqueryconnection-api.json @@ -395,7 +395,7 @@ } } }, - "revision": "20240214", + "revision": "20240323", "rootUrl": "https://bigqueryconnection.googleapis.com/", "schemas": { "AuditConfig": { diff --git a/etc/api/bigquerydatatransfer/v1/bigquerydatatransfer-api.json b/etc/api/bigquerydatatransfer/v1/bigquerydatatransfer-api.json index 804b7a2679..ad5ca57fa4 100644 --- a/etc/api/bigquerydatatransfer/v1/bigquerydatatransfer-api.json +++ b/etc/api/bigquerydatatransfer/v1/bigquerydatatransfer-api.json @@ -21,6 +21,33 @@ "description": "Schedule queries or transfer external data from SaaS applications to Google BigQuery on a regular basis.", "discoveryVersion": "v1", "documentationLink": "https://cloud.google.com/bigquery-transfer/", + "endpoints": [ + { + "description": "Regional Endpoint", + "endpointUrl": "https://bigquerydatatransfer.me-central2.rep.googleapis.com/", + "location": "me-central2" + }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://bigquerydatatransfer.europe-west3.rep.googleapis.com/", + "location": "europe-west3" + }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://bigquerydatatransfer.europe-west9.rep.googleapis.com/", + "location": "europe-west9" + }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://bigquerydatatransfer.us-east4.rep.googleapis.com/", + "location": "us-east4" + }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://bigquerydatatransfer.us-west1.rep.googleapis.com/", + "location": "us-west1" + } + ], "fullyEncodeReservedExpansion": true, "icons": { "x16": "http://www.google.com/images/icons/product/search-16.gif", @@ -123,7 +150,7 @@ ], "parameters": { "name": { - "description": "The name of the project resource in the form: `projects/{project_id}`", + "description": "Required. The name of the project resource in the form: `projects/{project_id}`", "location": "path", "pattern": "^projects/[^/]+$", "required": true, @@ -255,7 +282,7 @@ ], "parameters": { "name": { - "description": "The name of the project resource in the form: `projects/{project_id}`", + "description": "Required. The name of the project resource in the form: `projects/{project_id}`", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -354,7 +381,7 @@ ], "parameters": { "name": { - "description": "The name of the project resource in the form: `projects/{project_id}`", + "description": "Required. The name of the project resource in the form: `projects/{project_id}`", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -631,7 +658,7 @@ "type": "string" }, "name": { - "description": "The resource name of the transfer config. Transfer config names have the form either `projects/{project_id}/locations/{region}/transferConfigs/{config_id}` or `projects/{project_id}/transferConfigs/{config_id}`, where `config_id` is usually a UUID, even though it is not guaranteed or required. The name is ignored when creating a transfer config.", + "description": "Identifier. The resource name of the transfer config. Transfer config names have the form either `projects/{project_id}/locations/{region}/transferConfigs/{config_id}` or `projects/{project_id}/transferConfigs/{config_id}`, where `config_id` is usually a UUID, even though it is not guaranteed or required. The name is ignored when creating a transfer config.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/transferConfigs/[^/]+$", "required": true, @@ -705,7 +732,7 @@ ], "parameters": { "parent": { - "description": "Transfer configuration name in the form: `projects/{project_id}/transferConfigs/{config_id}` or `projects/{project_id}/locations/{location_id}/transferConfigs/{config_id}`.", + "description": "Required. Transfer configuration name in the form: `projects/{project_id}/transferConfigs/{config_id}` or `projects/{project_id}/locations/{location_id}/transferConfigs/{config_id}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/transferConfigs/[^/]+$", "required": true, @@ -1079,7 +1106,7 @@ "type": "string" }, "name": { - "description": "The resource name of the transfer config. Transfer config names have the form either `projects/{project_id}/locations/{region}/transferConfigs/{config_id}` or `projects/{project_id}/transferConfigs/{config_id}`, where `config_id` is usually a UUID, even though it is not guaranteed or required. The name is ignored when creating a transfer config.", + "description": "Identifier. The resource name of the transfer config. Transfer config names have the form either `projects/{project_id}/locations/{region}/transferConfigs/{config_id}` or `projects/{project_id}/transferConfigs/{config_id}`, where `config_id` is usually a UUID, even though it is not guaranteed or required. The name is ignored when creating a transfer config.", "location": "path", "pattern": "^projects/[^/]+/transferConfigs/[^/]+$", "required": true, @@ -1153,7 +1180,7 @@ ], "parameters": { "parent": { - "description": "Transfer configuration name in the form: `projects/{project_id}/transferConfigs/{config_id}` or `projects/{project_id}/locations/{location_id}/transferConfigs/{config_id}`.", + "description": "Required. Transfer configuration name in the form: `projects/{project_id}/transferConfigs/{config_id}` or `projects/{project_id}/locations/{location_id}/transferConfigs/{config_id}`.", "location": "path", "pattern": "^projects/[^/]+/transferConfigs/[^/]+$", "required": true, @@ -1371,7 +1398,7 @@ } } }, - "revision": "20240227", + "revision": "20240416", "rootUrl": "https://bigquerydatatransfer.googleapis.com/", "schemas": { "CheckValidCredsRequest": { @@ -1951,7 +1978,7 @@ "description": "The encryption configuration part. Currently, it is only used for the optional KMS key name. The BigQuery service account of your project must be granted permissions to use the key. Read methods will return the key name applied in effect. Write methods will apply the key if it is present, or otherwise try to apply project default keys if it is absent." }, "name": { - "description": "The resource name of the transfer config. Transfer config names have the form either `projects/{project_id}/locations/{region}/transferConfigs/{config_id}` or `projects/{project_id}/transferConfigs/{config_id}`, where `config_id` is usually a UUID, even though it is not guaranteed or required. The name is ignored when creating a transfer config.", + "description": "Identifier. The resource name of the transfer config. Transfer config names have the form either `projects/{project_id}/locations/{region}/transferConfigs/{config_id}` or `projects/{project_id}/transferConfigs/{config_id}`, where `config_id` is usually a UUID, even though it is not guaranteed or required. The name is ignored when creating a transfer config.", "type": "string" }, "nextRunTime": { @@ -2082,7 +2109,7 @@ "description": "Status of the transfer run." }, "name": { - "description": "The resource name of the transfer run. Transfer run names have the form `projects/{project_id}/locations/{location}/transferConfigs/{config_id}/runs/{run_id}`. The name is ignored when creating a transfer run.", + "description": "Identifier. The resource name of the transfer run. Transfer run names have the form `projects/{project_id}/locations/{location}/transferConfigs/{config_id}/runs/{run_id}`. The name is ignored when creating a transfer run.", "type": "string" }, "notificationPubsubTopic": { diff --git a/etc/api/bigqueryreservation/v1/bigqueryreservation-api.json b/etc/api/bigqueryreservation/v1/bigqueryreservation-api.json index 58a6d6b000..e747802c98 100644 --- a/etc/api/bigqueryreservation/v1/bigqueryreservation-api.json +++ b/etc/api/bigqueryreservation/v1/bigqueryreservation-api.json @@ -579,6 +579,35 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "failoverReservation": { + "description": "Failover a reservation to the secondary location. The operation should be done in the current secondary location, which will be promoted to the new primary location for the reservation. Attempting to failover a reservation in the current primary location will fail with the error code `google.rpc.Code.FAILED_PRECONDITION`.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/reservations/{reservationsId}:failoverReservation", + "httpMethod": "POST", + "id": "bigqueryreservation.projects.locations.reservations.failoverReservation", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Resource name of the reservation to failover. E.g., `projects/myproject/locations/US/reservations/team1-prod`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/reservations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:failoverReservation", + "request": { + "$ref": "FailoverReservationRequest" + }, + "response": { + "$ref": "Reservation" + }, + "scopes": [ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "get": { "description": "Returns information about the reservation.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/reservations/{reservationsId}", @@ -851,7 +880,7 @@ } } }, - "revision": "20240227", + "revision": "20240328", "rootUrl": "https://bigqueryreservation.googleapis.com/", "schemas": { "Assignment": { @@ -869,14 +898,16 @@ "PIPELINE", "QUERY", "ML_EXTERNAL", - "BACKGROUND" + "BACKGROUND", + "CONTINUOUS" ], "enumDescriptions": [ "Invalid type. Requests with this value will be rejected with error code `google.rpc.Code.INVALID_ARGUMENT`.", "Pipeline (load/export) jobs from the project will use the reservation.", "Query jobs from the project will use the reservation.", "BigQuery ML jobs that use services external to BigQuery for model training. These jobs will not utilize idle slots from other reservations.", - "Background jobs that BigQuery runs for the customers in the background." + "Background jobs that BigQuery runs for the customers in the background.", + "Continuous SQL jobs will use this reservation. Reservations with continuous assignments cannot be mixed with non-continuous assignments." ], "type": "string" }, @@ -1112,6 +1143,12 @@ "properties": {}, "type": "object" }, + "FailoverReservationRequest": { + "description": "The request for ReservationService.FailoverReservation.", + "id": "FailoverReservationRequest", + "properties": {}, + "type": "object" + }, "ListAssignmentsResponse": { "description": "The response for ReservationService.ListAssignments.", "id": "ListAssignmentsResponse", @@ -1204,7 +1241,7 @@ "description": "The configuration parameters for the auto scaling feature." }, "concurrency": { - "description": "Job concurrency target which sets a soft upper bound on the number of jobs that can run concurrently in this reservation. This is a soft target due to asynchronous nature of the system and various optimizations for small queries. Default value is 0 which means that concurrency target will be automatically computed by the system. NOTE: this field is exposed as `target_job_concurrency` in the Information Schema, DDL and BQ CLI.", + "description": "Job concurrency target which sets a soft upper bound on the number of jobs that can run concurrently in this reservation. This is a soft target due to asynchronous nature of the system and various optimizations for small queries. Default value is 0 which means that concurrency target will be automatically computed by the system. NOTE: this field is exposed as target job concurrency in the Information Schema, DDL and BQ CLI.", "format": "int64", "type": "string" }, @@ -1242,6 +1279,18 @@ "description": "The resource name of the reservation, e.g., `projects/*/locations/*/reservations/team1-prod`. The reservation_id must only contain lower case alphanumeric characters or dashes. It must start with a letter and must not end with a dash. Its maximum length is 64 characters.", "type": "string" }, + "originalPrimaryLocation": { + "description": "Optional. The original primary location of the reservation which is set only during its creation and remains unchanged afterwards. It can be used by the customer to answer questions about disaster recovery billing. The field is output only for customers and should not be specified, however, the google.api.field_behavior is not set to OUTPUT_ONLY since these fields are set in rerouted requests sent across regions.", + "type": "string" + }, + "primaryLocation": { + "description": "Optional. The primary location of the reservation. The field is only meaningful for reservation used for cross region disaster recovery. The field is output only for customers and should not be specified, however, the google.api.field_behavior is not set to OUTPUT_ONLY since these fields are set in rerouted requests sent across regions.", + "type": "string" + }, + "secondaryLocation": { + "description": "Optional. The secondary location of the reservation which is used for cross region disaster recovery purposes. Customer can set this in create/update reservation calls to create a failover reservation or convert a non-failover reservation to a failover reservation.", + "type": "string" + }, "slotCapacity": { "description": "Baseline slots available to this reservation. A slot is a unit of computational power in BigQuery, and serves as the unit of parallelism. Queries using this reservation might use more slots during runtime if ignore_idle_slots is set to false, or autoscaling is enabled. If edition is EDITION_UNSPECIFIED and total slot_capacity of the reservation and its siblings exceeds the total slot_count of all capacity commitments, the request will fail with `google.rpc.Code.RESOURCE_EXHAUSTED`. If edition is any value but EDITION_UNSPECIFIED, then the above requirement is not needed. The total slot_capacity of the reservation and its siblings may exceed the total slot_count of capacity commitments. In that case, the exceeding slots will be charged with the autoscale SKU. You can increase the number of baseline slots in a reservation every few minutes. If you want to decrease your baseline slots, you are limited to once an hour if you have recently changed your baseline slot capacity and your baseline slots exceed your committed slots. Otherwise, you can decrease your baseline slots every few minutes.", "format": "int64", diff --git a/etc/api/bigtableadmin/v2/bigtableadmin-api.json b/etc/api/bigtableadmin/v2/bigtableadmin-api.json index e07592a364..3aeaee9132 100644 --- a/etc/api/bigtableadmin/v2/bigtableadmin-api.json +++ b/etc/api/bigtableadmin/v2/bigtableadmin-api.json @@ -1817,6 +1817,325 @@ "https://www.googleapis.com/auth/cloud-platform" ] } + }, + "resources": { + "authorizedViews": { + "methods": { + "create": { + "description": "Creates a new AuthorizedView in a table.", + "flatPath": "v2/projects/{projectsId}/instances/{instancesId}/tables/{tablesId}/authorizedViews", + "httpMethod": "POST", + "id": "bigtableadmin.projects.instances.tables.authorizedViews.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "authorizedViewId": { + "description": "Required. The id of the AuthorizedView to create. This AuthorizedView must not already exist. The `authorized_view_id` appended to `parent` forms the full AuthorizedView name of the form `projects/{project}/instances/{instance}/tables/{table}/authorizedView/{authorized_view}`.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. This is the name of the table the AuthorizedView belongs to. Values are of the form `projects/{project}/instances/{instance}/tables/{table}`.", + "location": "path", + "pattern": "^projects/[^/]+/instances/[^/]+/tables/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+parent}/authorizedViews", + "request": { + "$ref": "AuthorizedView" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/bigtable.admin", + "https://www.googleapis.com/auth/bigtable.admin.table", + "https://www.googleapis.com/auth/cloud-bigtable.admin", + "https://www.googleapis.com/auth/cloud-bigtable.admin.table", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Permanently deletes a specified AuthorizedView.", + "flatPath": "v2/projects/{projectsId}/instances/{instancesId}/tables/{tablesId}/authorizedViews/{authorizedViewsId}", + "httpMethod": "DELETE", + "id": "bigtableadmin.projects.instances.tables.authorizedViews.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "etag": { + "description": "Optional. The current etag of the AuthorizedView. If an etag is provided and does not match the current etag of the AuthorizedView, deletion will be blocked and an ABORTED error will be returned.", + "location": "query", + "type": "string" + }, + "name": { + "description": "Required. The unique name of the AuthorizedView to be deleted. Values are of the form `projects/{project}/instances/{instance}/tables/{table}/authorizedViews/{authorized_view}`.", + "location": "path", + "pattern": "^projects/[^/]+/instances/[^/]+/tables/[^/]+/authorizedViews/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}", + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/bigtable.admin", + "https://www.googleapis.com/auth/bigtable.admin.table", + "https://www.googleapis.com/auth/cloud-bigtable.admin", + "https://www.googleapis.com/auth/cloud-bigtable.admin.table", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets information from a specified AuthorizedView.", + "flatPath": "v2/projects/{projectsId}/instances/{instancesId}/tables/{tablesId}/authorizedViews/{authorizedViewsId}", + "httpMethod": "GET", + "id": "bigtableadmin.projects.instances.tables.authorizedViews.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The unique name of the requested AuthorizedView. Values are of the form `projects/{project}/instances/{instance}/tables/{table}/authorizedViews/{authorized_view}`.", + "location": "path", + "pattern": "^projects/[^/]+/instances/[^/]+/tables/[^/]+/authorizedViews/[^/]+$", + "required": true, + "type": "string" + }, + "view": { + "description": "Optional. The resource_view to be applied to the returned AuthorizedView's fields. Default to BASIC.", + "enum": [ + "RESPONSE_VIEW_UNSPECIFIED", + "NAME_ONLY", + "BASIC", + "FULL" + ], + "enumDescriptions": [ + "Uses the default view for each method as documented in the request.", + "Only populates `name`.", + "Only populates the AuthorizedView's basic metadata. This includes: name, deletion_protection, etag.", + "Populates every fields." + ], + "location": "query", + "type": "string" + } + }, + "path": "v2/{+name}", + "response": { + "$ref": "AuthorizedView" + }, + "scopes": [ + "https://www.googleapis.com/auth/bigtable.admin", + "https://www.googleapis.com/auth/bigtable.admin.table", + "https://www.googleapis.com/auth/cloud-bigtable.admin", + "https://www.googleapis.com/auth/cloud-bigtable.admin.table", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "getIamPolicy": { + "description": "Gets the access control policy for a Table or Backup resource. Returns an empty policy if the resource exists but does not have a policy set.", + "flatPath": "v2/projects/{projectsId}/instances/{instancesId}/tables/{tablesId}/authorizedViews/{authorizedViewsId}:getIamPolicy", + "httpMethod": "POST", + "id": "bigtableadmin.projects.instances.tables.authorizedViews.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/[^/]+/instances/[^/]+/tables/[^/]+/authorizedViews/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+resource}:getIamPolicy", + "request": { + "$ref": "GetIamPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/bigtable.admin", + "https://www.googleapis.com/auth/bigtable.admin.table", + "https://www.googleapis.com/auth/cloud-bigtable.admin", + "https://www.googleapis.com/auth/cloud-bigtable.admin.table", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists all AuthorizedViews from a specific table.", + "flatPath": "v2/projects/{projectsId}/instances/{instancesId}/tables/{tablesId}/authorizedViews", + "httpMethod": "GET", + "id": "bigtableadmin.projects.instances.tables.authorizedViews.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Optional. Maximum number of results per page. A page_size of zero lets the server choose the number of items to return. A page_size which is strictly positive will return at most that many items. A negative page_size will cause an error. Following the first request, subsequent paginated calls are not required to pass a page_size. If a page_size is set in subsequent calls, it must match the page_size given in the first request.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. The value of `next_page_token` returned by a previous call.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The unique name of the table for which AuthorizedViews should be listed. Values are of the form `projects/{project}/instances/{instance}/tables/{table}`.", + "location": "path", + "pattern": "^projects/[^/]+/instances/[^/]+/tables/[^/]+$", + "required": true, + "type": "string" + }, + "view": { + "description": "Optional. The resource_view to be applied to the returned views' fields. Default to NAME_ONLY.", + "enum": [ + "RESPONSE_VIEW_UNSPECIFIED", + "NAME_ONLY", + "BASIC", + "FULL" + ], + "enumDescriptions": [ + "Uses the default view for each method as documented in the request.", + "Only populates `name`.", + "Only populates the AuthorizedView's basic metadata. This includes: name, deletion_protection, etag.", + "Populates every fields." + ], + "location": "query", + "type": "string" + } + }, + "path": "v2/{+parent}/authorizedViews", + "response": { + "$ref": "ListAuthorizedViewsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/bigtable.admin", + "https://www.googleapis.com/auth/bigtable.admin.table", + "https://www.googleapis.com/auth/cloud-bigtable.admin", + "https://www.googleapis.com/auth/cloud-bigtable.admin.table", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates an AuthorizedView in a table.", + "flatPath": "v2/projects/{projectsId}/instances/{instancesId}/tables/{tablesId}/authorizedViews/{authorizedViewsId}", + "httpMethod": "PATCH", + "id": "bigtableadmin.projects.instances.tables.authorizedViews.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "ignoreWarnings": { + "description": "Optional. If true, ignore the safety checks when updating the AuthorizedView.", + "location": "query", + "type": "boolean" + }, + "name": { + "description": "Identifier. The name of this AuthorizedView. Values are of the form `projects/{project}/instances/{instance}/tables/{table}/authorizedViews/{authorized_view}`", + "location": "path", + "pattern": "^projects/[^/]+/instances/[^/]+/tables/[^/]+/authorizedViews/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Optional. The list of fields to update. A mask specifying which fields in the AuthorizedView resource should be updated. This mask is relative to the AuthorizedView resource, not to the request message. A field will be overwritten if it is in the mask. If empty, all fields set in the request will be overwritten. A special value `*` means to overwrite all fields (including fields not set in the request).", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v2/{+name}", + "request": { + "$ref": "AuthorizedView" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/bigtable.admin", + "https://www.googleapis.com/auth/bigtable.admin.table", + "https://www.googleapis.com/auth/cloud-bigtable.admin", + "https://www.googleapis.com/auth/cloud-bigtable.admin.table", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "setIamPolicy": { + "description": "Sets the access control policy on a Table or Backup resource. Replaces any existing policy.", + "flatPath": "v2/projects/{projectsId}/instances/{instancesId}/tables/{tablesId}/authorizedViews/{authorizedViewsId}:setIamPolicy", + "httpMethod": "POST", + "id": "bigtableadmin.projects.instances.tables.authorizedViews.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/[^/]+/instances/[^/]+/tables/[^/]+/authorizedViews/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+resource}:setIamPolicy", + "request": { + "$ref": "SetIamPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/bigtable.admin", + "https://www.googleapis.com/auth/bigtable.admin.table", + "https://www.googleapis.com/auth/cloud-bigtable.admin", + "https://www.googleapis.com/auth/cloud-bigtable.admin.table", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "testIamPermissions": { + "description": "Returns permissions that the caller has on the specified Table or Backup resource.", + "flatPath": "v2/projects/{projectsId}/instances/{instancesId}/tables/{tablesId}/authorizedViews/{authorizedViewsId}:testIamPermissions", + "httpMethod": "POST", + "id": "bigtableadmin.projects.instances.tables.authorizedViews.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/[^/]+/instances/[^/]+/tables/[^/]+/authorizedViews/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+resource}:testIamPermissions", + "request": { + "$ref": "TestIamPermissionsRequest" + }, + "response": { + "$ref": "TestIamPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/bigtable.admin", + "https://www.googleapis.com/auth/bigtable.admin.table", + "https://www.googleapis.com/auth/cloud-bigtable.admin", + "https://www.googleapis.com/auth/cloud-bigtable.admin.table", + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } } } } @@ -1875,13 +2194,17 @@ } } }, - "revision": "20240221", + "revision": "20240331", "rootUrl": "https://bigtableadmin.googleapis.com/", "schemas": { "AppProfile": { "description": "A configuration object describing how Cloud Bigtable should treat traffic from a particular end user application.", "id": "AppProfile", "properties": { + "dataBoostIsolationReadOnly": { + "$ref": "DataBoostIsolationReadOnly", + "description": "Specifies that this app profile is intended for read-only usage via the Data Boost feature." + }, "description": { "description": "Long form description of the use case for this AppProfile.", "type": "string" @@ -1974,6 +2297,46 @@ }, "type": "object" }, + "AuthorizedView": { + "description": "Placeholder for admin API work while we work out the internals.", + "id": "AuthorizedView", + "properties": { + "deletionProtection": { + "description": "Set to true to make the AuthorizedView protected against deletion. The parent Table and containing Instance cannot be deleted if an AuthorizedView has this bit set.", + "type": "boolean" + }, + "etag": { + "description": "The etag for this AuthorizedView. If this is provided on update, it must match the server's etag. The server returns ABORTED error on a mismatched etag.", + "type": "string" + }, + "name": { + "description": "Identifier. The name of this AuthorizedView. Values are of the form `projects/{project}/instances/{instance}/tables/{table}/authorizedViews/{authorized_view}`", + "type": "string" + }, + "subsetView": { + "$ref": "GoogleBigtableAdminV2AuthorizedViewSubsetView", + "description": "An AuthorizedView permitting access to an explicit subset of a Table." + } + }, + "type": "object" + }, + "AutomatedBackupPolicy": { + "description": "Defines an automated backup policy for a table", + "id": "AutomatedBackupPolicy", + "properties": { + "frequency": { + "description": "Required. How frequently automated backups should occur. The only supported value at this time is 24 hours.", + "format": "google-duration", + "type": "string" + }, + "retentionPeriod": { + "description": "Required. How long the automated backups should be retained. The only supported value at this time is 3 days.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, "AutoscalingLimits": { "description": "Limits for the number of nodes a Cluster can autoscale up/down to.", "id": "AutoscalingLimits", @@ -2146,6 +2509,14 @@ "consistencyToken": { "description": "Required. The token created using GenerateConsistencyToken for the Table.", "type": "string" + }, + "dataBoostReadLocalWrites": { + "$ref": "DataBoostReadLocalWrites", + "description": "Checks that reads using an app profile with `DataBoostIsolationReadOnly` can see all writes committed before the token was created, but only if the read and write target the same cluster." + }, + "standardReadRemoteWrites": { + "$ref": "StandardReadRemoteWrites", + "description": "Checks that reads using an app profile with `StandardIsolation` can see all writes committed before the token was created, even if the read and write target different clusters." } }, "type": "object" @@ -2296,6 +2667,10 @@ "$ref": "ColumnFamilyStats", "description": "Output only. Only available with STATS_VIEW, this includes summary statistics about column family contents. For statistics over an entire table, see TableStats above.", "readOnly": true + }, + "valueType": { + "$ref": "Type", + "description": "The type of data stored in each of this family's cell values, including its full encoding. If omitted, the family only serves raw untyped bytes. For now, only the `Aggregate` type is supported. `Aggregate` can only be set at family creation and is immutable afterwards. If `value_type` is `Aggregate`, written data must be compatible with: * `value_type.input_type` for `AddInput` mutations" } }, "type": "object" @@ -2361,6 +2736,46 @@ }, "type": "object" }, + "CreateAuthorizedViewMetadata": { + "description": "The metadata for the Operation returned by CreateAuthorizedView.", + "id": "CreateAuthorizedViewMetadata", + "properties": { + "finishTime": { + "description": "The time at which the operation failed or was completed successfully.", + "format": "google-datetime", + "type": "string" + }, + "originalRequest": { + "$ref": "CreateAuthorizedViewRequest", + "description": "The request that prompted the initiation of this CreateInstance operation." + }, + "requestTime": { + "description": "The time at which the original request was received.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "CreateAuthorizedViewRequest": { + "description": "The request for CreateAuthorizedView", + "id": "CreateAuthorizedViewRequest", + "properties": { + "authorizedView": { + "$ref": "AuthorizedView", + "description": "Required. The AuthorizedView to create." + }, + "authorizedViewId": { + "description": "Required. The id of the AuthorizedView to create. This AuthorizedView must not already exist. The `authorized_view_id` appended to `parent` forms the full AuthorizedView name of the form `projects/{project}/instances/{instance}/tables/{table}/authorizedView/{authorized_view}`.", + "type": "string" + }, + "parent": { + "description": "Required. This is the name of the table the AuthorizedView belongs to. Values are of the form `projects/{project}/instances/{instance}/tables/{table}`.", + "type": "string" + } + }, + "type": "object" + }, "CreateBackupMetadata": { "description": "Metadata type for the operation returned by CreateBackup.", "id": "CreateBackupMetadata", @@ -2502,6 +2917,31 @@ }, "type": "object" }, + "DataBoostIsolationReadOnly": { + "description": "Data Boost is a serverless compute capability that lets you run high-throughput read jobs on your Bigtable data, without impacting the performance of the clusters that handle your application traffic. Currently, Data Boost exclusively supports read-only use-cases with single-cluster routing. Data Boost reads are only guaranteed to see the results of writes that were written at least 30 minutes ago. This means newly written values may not become visible for up to 30m, and also means that old values may remain visible for up to 30m after being deleted or overwritten. To mitigate the staleness of the data, users may either wait 30m, or use CheckConsistency.", + "id": "DataBoostIsolationReadOnly", + "properties": { + "computeBillingOwner": { + "description": "The Compute Billing Owner for this Data Boost App Profile.", + "enum": [ + "COMPUTE_BILLING_OWNER_UNSPECIFIED", + "HOST_PAYS" + ], + "enumDescriptions": [ + "Unspecified value.", + "The host Cloud Project containing the targeted Bigtable Instance / Table pays for compute." + ], + "type": "string" + } + }, + "type": "object" + }, + "DataBoostReadLocalWrites": { + "description": "Checks that all writes before the consistency token was generated in the same cluster are readable by Databoost.", + "id": "DataBoostReadLocalWrites", + "properties": {}, + "type": "object" + }, "DropRowRangeRequest": { "description": "Request message for google.bigtable.admin.v2.BigtableTableAdmin.DropRowRange", "id": "DropRowRangeRequest", @@ -2655,6 +3095,138 @@ }, "type": "object" }, + "GoogleBigtableAdminV2AuthorizedViewFamilySubsets": { + "description": "Subsets of a column family that are included in this AuthorizedView.", + "id": "GoogleBigtableAdminV2AuthorizedViewFamilySubsets", + "properties": { + "qualifierPrefixes": { + "description": "Prefixes for qualifiers to be included in the AuthorizedView. Every qualifier starting with one of these prefixes is included in the AuthorizedView. To provide access to all qualifiers, include the empty string as a prefix (\"\").", + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "qualifiers": { + "description": "Individual exact column qualifiers to be included in the AuthorizedView.", + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleBigtableAdminV2AuthorizedViewSubsetView": { + "description": "Defines a simple AuthorizedView that is a subset of the underlying Table.", + "id": "GoogleBigtableAdminV2AuthorizedViewSubsetView", + "properties": { + "familySubsets": { + "additionalProperties": { + "$ref": "GoogleBigtableAdminV2AuthorizedViewFamilySubsets" + }, + "description": "Map from column family name to the columns in this family to be included in the AuthorizedView.", + "type": "object" + }, + "rowPrefixes": { + "description": "Row prefixes to be included in the AuthorizedView. To provide access to all rows, include the empty string as a prefix (\"\").", + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleBigtableAdminV2TypeAggregate": { + "description": "A value that combines incremental updates into a summarized value. Data is never directly written or read using type `Aggregate`. Writes will provide either the `input_type` or `state_type`, and reads will always return the `state_type` .", + "id": "GoogleBigtableAdminV2TypeAggregate", + "properties": { + "inputType": { + "$ref": "Type", + "description": "Type of the inputs that are accumulated by this `Aggregate`, which must specify a full encoding. Use `AddInput` mutations to accumulate new inputs." + }, + "stateType": { + "$ref": "Type", + "description": "Output only. Type that holds the internal accumulator state for the `Aggregate`. This is a function of the `input_type` and `aggregator` chosen, and will always specify a full encoding.", + "readOnly": true + }, + "sum": { + "$ref": "GoogleBigtableAdminV2TypeAggregateSum", + "description": "Sum aggregator." + } + }, + "type": "object" + }, + "GoogleBigtableAdminV2TypeAggregateSum": { + "description": "Computes the sum of the input values. Allowed input: `Int64` State: same as input", + "id": "GoogleBigtableAdminV2TypeAggregateSum", + "properties": {}, + "type": "object" + }, + "GoogleBigtableAdminV2TypeBytes": { + "description": "Bytes Values of type `Bytes` are stored in `Value.bytes_value`.", + "id": "GoogleBigtableAdminV2TypeBytes", + "properties": { + "encoding": { + "$ref": "GoogleBigtableAdminV2TypeBytesEncoding", + "description": "The encoding to use when converting to/from lower level types." + } + }, + "type": "object" + }, + "GoogleBigtableAdminV2TypeBytesEncoding": { + "description": "Rules used to convert to/from lower level types.", + "id": "GoogleBigtableAdminV2TypeBytesEncoding", + "properties": { + "raw": { + "$ref": "GoogleBigtableAdminV2TypeBytesEncodingRaw", + "description": "Use `Raw` encoding." + } + }, + "type": "object" + }, + "GoogleBigtableAdminV2TypeBytesEncodingRaw": { + "description": "Leaves the value \"as-is\" * Natural sort? Yes * Self-delimiting? No * Compatibility? N/A", + "id": "GoogleBigtableAdminV2TypeBytesEncodingRaw", + "properties": {}, + "type": "object" + }, + "GoogleBigtableAdminV2TypeInt64": { + "description": "Int64 Values of type `Int64` are stored in `Value.int_value`.", + "id": "GoogleBigtableAdminV2TypeInt64", + "properties": { + "encoding": { + "$ref": "GoogleBigtableAdminV2TypeInt64Encoding", + "description": "The encoding to use when converting to/from lower level types." + } + }, + "type": "object" + }, + "GoogleBigtableAdminV2TypeInt64Encoding": { + "description": "Rules used to convert to/from lower level types.", + "id": "GoogleBigtableAdminV2TypeInt64Encoding", + "properties": { + "bigEndianBytes": { + "$ref": "GoogleBigtableAdminV2TypeInt64EncodingBigEndianBytes", + "description": "Use `BigEndianBytes` encoding." + } + }, + "type": "object" + }, + "GoogleBigtableAdminV2TypeInt64EncodingBigEndianBytes": { + "description": "Encodes the value as an 8-byte big endian twos complement `Bytes` value. * Natural sort? No (positive values only) * Self-delimiting? Yes * Compatibility? - BigQuery Federation `BINARY` encoding - HBase `Bytes.toBytes` - Java `ByteBuffer.putLong()` with `ByteOrder.BIG_ENDIAN`", + "id": "GoogleBigtableAdminV2TypeInt64EncodingBigEndianBytes", + "properties": { + "bytesType": { + "$ref": "GoogleBigtableAdminV2TypeBytes", + "description": "The underlying `Bytes` type, which may be able to encode further." + } + }, + "type": "object" + }, "HotTablet": { "description": "A tablet is a defined by a start and end key and is explained in https://cloud.google.com/bigtable/docs/overview#architecture and https://cloud.google.com/bigtable/docs/performance#optimization. A Hot tablet is a tablet that exhibits high average cpu usage during the time interval from start time to end time.", "id": "HotTablet", @@ -2797,6 +3369,24 @@ }, "type": "object" }, + "ListAuthorizedViewsResponse": { + "description": "Response message for google.bigtable.admin.v2.BigtableTableAdmin.ListAuthorizedViews", + "id": "ListAuthorizedViewsResponse", + "properties": { + "authorizedViews": { + "description": "The AuthorizedViews present in the requested table.", + "items": { + "$ref": "AuthorizedView" + }, + "type": "array" + }, + "nextPageToken": { + "description": "Set if not all tables could be returned in a single response. Pass this value to `page_token` in another request to get the next page of results.", + "type": "string" + } + }, + "type": "object" + }, "ListBackupsResponse": { "description": "The response for ListBackups.", "id": "ListBackupsResponse", @@ -2990,6 +3580,11 @@ "update": { "$ref": "ColumnFamily", "description": "Update an existing column family to the specified schema, or fail if no column family exists with the given ID." + }, + "updateMask": { + "description": "Optional. A mask specifying which fields (e.g. `gc_rule`) in the `update` mod should be updated, ignored for other modification types. If unset or empty, we treat it as updating `gc_rule` to be backward compatible.", + "format": "google-fieldmask", + "type": "string" } }, "type": "object" @@ -3320,6 +3915,12 @@ }, "type": "object" }, + "StandardReadRemoteWrites": { + "description": "Checks that all writes before the consistency token was generated are replicated in every cluster and readable.", + "id": "StandardReadRemoteWrites", + "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", @@ -3351,6 +3952,10 @@ "description": "A collection of user data indexed by row, column, and timestamp. Each table is served using the resources of its parent cluster.", "id": "Table", "properties": { + "automatedBackupPolicy": { + "$ref": "AutomatedBackupPolicy", + "description": "If specified, automated backups are enabled for this table. Otherwise, automated backups are disabled." + }, "changeStreamConfig": { "$ref": "ChangeStreamConfig", "description": "If specified, enable the change stream on this table. Otherwise, the change stream is disabled and the change stream is not retained." @@ -3492,6 +4097,25 @@ }, "type": "object" }, + "Type": { + "description": "`Type` represents the type of data that is written to, read from, or stored in Bigtable. It is heavily based on the GoogleSQL standard to help maintain familiarity and consistency across products and features. For compatibility with Bigtable's existing untyped APIs, each `Type` includes an `Encoding` which describes how to convert to/from the underlying data. This might involve composing a series of steps into an \"encoding chain,\" for example to convert from INT64 -> STRING -> raw bytes. In most cases, a \"link\" in the encoding chain will be based an on existing GoogleSQL conversion function like `CAST`. Each link in the encoding chain also defines the following properties: * Natural sort: Does the encoded value sort consistently with the original typed value? Note that Bigtable will always sort data based on the raw encoded value, *not* the decoded type. - Example: STRING values sort in the same order as their UTF-8 encodings. - Counterexample: Encoding INT64 to a fixed-width STRING does *not* preserve sort order when dealing with negative numbers. INT64(1) > INT64(-1), but STRING(\"-00001\") > STRING(\"00001). - The overall encoding chain sorts naturally if *every* link does. * Self-delimiting: If we concatenate two encoded values, can we always tell where the first one ends and the second one begins? - Example: If we encode INT64s to fixed-width STRINGs, the first value will always contain exactly N digits, possibly preceded by a sign. - Counterexample: If we concatenate two UTF-8 encoded STRINGs, we have no way to tell where the first one ends. - The overall encoding chain is self-delimiting if *any* link is. * Compatibility: Which other systems have matching encoding schemes? For example, does this encoding have a GoogleSQL equivalent? HBase? Java?", + "id": "Type", + "properties": { + "aggregateType": { + "$ref": "GoogleBigtableAdminV2TypeAggregate", + "description": "Aggregate" + }, + "bytesType": { + "$ref": "GoogleBigtableAdminV2TypeBytes", + "description": "Bytes" + }, + "int64Type": { + "$ref": "GoogleBigtableAdminV2TypeInt64", + "description": "Int64" + } + }, + "type": "object" + }, "UndeleteTableMetadata": { "description": "Metadata type for the operation returned by google.bigtable.admin.v2.BigtableTableAdmin.UndeleteTable.", "id": "UndeleteTableMetadata", @@ -3539,6 +4163,47 @@ "properties": {}, "type": "object" }, + "UpdateAuthorizedViewMetadata": { + "description": "Metadata for the google.longrunning.Operation returned by UpdateAuthorizedView.", + "id": "UpdateAuthorizedViewMetadata", + "properties": { + "finishTime": { + "description": "The time at which the operation failed or was completed successfully.", + "format": "google-datetime", + "type": "string" + }, + "originalRequest": { + "$ref": "UpdateAuthorizedViewRequest", + "description": "The request that prompted the initiation of this UpdateAuthorizedView operation." + }, + "requestTime": { + "description": "The time at which the original request was received.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "UpdateAuthorizedViewRequest": { + "description": "The request for UpdateAuthorizedView.", + "id": "UpdateAuthorizedViewRequest", + "properties": { + "authorizedView": { + "$ref": "AuthorizedView", + "description": "Required. The AuthorizedView to update. The `name` in `authorized_view` is used to identify the AuthorizedView. AuthorizedView name must in this format projects//instances//tables//authorizedViews/" + }, + "ignoreWarnings": { + "description": "Optional. If true, ignore the safety checks when updating the AuthorizedView.", + "type": "boolean" + }, + "updateMask": { + "description": "Optional. The list of fields to update. A mask specifying which fields in the AuthorizedView resource should be updated. This mask is relative to the AuthorizedView resource, not to the request message. A field will be overwritten if it is in the mask. If empty, all fields set in the request will be overwritten. A special value `*` means to overwrite all fields (including fields not set in the request).", + "format": "google-fieldmask", + "type": "string" + } + }, + "type": "object" + }, "UpdateClusterMetadata": { "description": "The metadata for the Operation returned by UpdateCluster.", "id": "UpdateClusterMetadata", diff --git a/etc/api/billingbudgets/v1/billingbudgets-api.json b/etc/api/billingbudgets/v1/billingbudgets-api.json index fc3cd0ec84..10e99902e3 100644 --- a/etc/api/billingbudgets/v1/billingbudgets-api.json +++ b/etc/api/billingbudgets/v1/billingbudgets-api.json @@ -275,7 +275,7 @@ } } }, - "revision": "20240225", + "revision": "20240414", "rootUrl": "https://billingbudgets.googleapis.com/", "schemas": { "GoogleCloudBillingBudgetsV1Budget": { diff --git a/etc/api/billingbudgets/v1beta1/billingbudgets-api.json b/etc/api/billingbudgets/v1beta1/billingbudgets-api.json index a1f74c3385..0dfd5fa538 100644 --- a/etc/api/billingbudgets/v1beta1/billingbudgets-api.json +++ b/etc/api/billingbudgets/v1beta1/billingbudgets-api.json @@ -269,7 +269,7 @@ } } }, - "revision": "20240225", + "revision": "20240414", "rootUrl": "https://billingbudgets.googleapis.com/", "schemas": { "GoogleCloudBillingBudgetsV1beta1AllUpdatesRule": { diff --git a/etc/api/binaryauthorization/v1/binaryauthorization-api.json b/etc/api/binaryauthorization/v1/binaryauthorization-api.json index 2fbdc23065..9210ac2d65 100644 --- a/etc/api/binaryauthorization/v1/binaryauthorization-api.json +++ b/etc/api/binaryauthorization/v1/binaryauthorization-api.json @@ -742,7 +742,7 @@ } } }, - "revision": "20240223", + "revision": "20240412", "rootUrl": "https://binaryauthorization.googleapis.com/", "schemas": { "AdmissionRule": { diff --git a/etc/api/binaryauthorization/v1beta1/binaryauthorization-api.json b/etc/api/binaryauthorization/v1beta1/binaryauthorization-api.json index ce72469d61..13131dbf23 100644 --- a/etc/api/binaryauthorization/v1beta1/binaryauthorization-api.json +++ b/etc/api/binaryauthorization/v1beta1/binaryauthorization-api.json @@ -551,7 +551,7 @@ } } }, - "revision": "20240223", + "revision": "20240412", "rootUrl": "https://binaryauthorization.googleapis.com/", "schemas": { "AdmissionRule": { diff --git a/etc/api/blogger/v2/blogger-api.json b/etc/api/blogger/v2/blogger-api.json index 2b325cdf56..62684f2234 100644 --- a/etc/api/blogger/v2/blogger-api.json +++ b/etc/api/blogger/v2/blogger-api.json @@ -401,7 +401,7 @@ } } }, - "revision": "20240304", + "revision": "20240420", "rootUrl": "https://blogger.googleapis.com/", "schemas": { "Blog": { diff --git a/etc/api/blogger/v3/blogger-api.json b/etc/api/blogger/v3/blogger-api.json index 4859a752af..b8830872e0 100644 --- a/etc/api/blogger/v3/blogger-api.json +++ b/etc/api/blogger/v3/blogger-api.json @@ -1710,7 +1710,7 @@ } } }, - "revision": "20240304", + "revision": "20240420", "rootUrl": "https://blogger.googleapis.com/", "schemas": { "Blog": { diff --git a/etc/api/books/v1/books-api.json b/etc/api/books/v1/books-api.json index 6d2ec75649..ae58f40431 100644 --- a/etc/api/books/v1/books-api.json +++ b/etc/api/books/v1/books-api.json @@ -2677,7 +2677,7 @@ } } }, - "revision": "20240222", + "revision": "20240411", "rootUrl": "https://books.googleapis.com/", "schemas": { "Annotation": { diff --git a/etc/api/calendar/v3/calendar-api.json b/etc/api/calendar/v3/calendar-api.json index 9ca0193f05..8fa2a77bbd 100644 --- a/etc/api/calendar/v3/calendar-api.json +++ b/etc/api/calendar/v3/calendar-api.json @@ -1088,7 +1088,7 @@ "type": "string" }, "eventTypes": { - "description": "Event types to return. Optional. This parameter can be repeated multiple times to return events of different types. The default is [\"default\", \"focusTime\", \"outOfOffice\"].", + "description": "Event types to return. Optional. This parameter can be repeated multiple times to return events of different types. If unset, returns all event types.", "enum": [ "default", "focusTime", @@ -1503,7 +1503,7 @@ "type": "string" }, "eventTypes": { - "description": "Event types to return. Optional. This parameter can be repeated multiple times to return events of different types. The default is [\"default\", \"focusTime\", \"outOfOffice\"].", + "description": "Event types to return. Optional. This parameter can be repeated multiple times to return events of different types. If unset, returns all event types.", "enum": [ "default", "focusTime", @@ -1759,7 +1759,7 @@ } } }, - "revision": "20240223", + "revision": "20240328", "rootUrl": "https://www.googleapis.com/", "schemas": { "Acl": { diff --git a/etc/api/certificatemanager/v1/certificatemanager-api.json b/etc/api/certificatemanager/v1/certificatemanager-api.json index af6d739ce3..c8c74ef1d4 100644 --- a/etc/api/certificatemanager/v1/certificatemanager-api.json +++ b/etc/api/certificatemanager/v1/certificatemanager-api.json @@ -1280,9 +1280,20 @@ } } }, - "revision": "20240221", + "revision": "20240317", "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", @@ -2185,6 +2196,13 @@ "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\u2019s SAN field are met.", + "items": { + "$ref": "AllowlistedCertificate" + }, + "type": "array" + }, "createTime": { "description": "Output only. The creation timestamp of a TrustConfig.", "format": "google-datetime", diff --git a/etc/api/chat/v1/chat-api.json b/etc/api/chat/v1/chat-api.json index 0521a46a48..01ef33b4b4 100644 --- a/etc/api/chat/v1/chat-api.json +++ b/etc/api/chat/v1/chat-api.json @@ -178,7 +178,7 @@ "supportsMediaDownload": true }, "upload": { - "description": "Uploads an attachment. For an example, see [Upload media as a file attachment](https://developers.google.com/chat/api/guides/v1/media-and-attachments/upload). Requires user [authentication](https://developers.google.com/chat/api/guides/auth/users). You can upload attachments up to 200 MB. Certain file types aren't supported. For details, see [File types blocked by Google Chat](https://support.google.com/chat/answer/7651457?&co=GENIE.Platform%3DDesktop#File%20types%20blocked%20in%20Google%20Chat).", + "description": "Uploads an attachment. For an example, see [Upload media as a file attachment](https://developers.google.com/workspace/chat/upload-media-attachments). Requires user [authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). You can upload attachments up to 200 MB. Certain file types aren't supported. For details, see [File types blocked by Google Chat](https://support.google.com/chat/answer/7651457?&co=GENIE.Platform%3DDesktop#File%20types%20blocked%20in%20Google%20Chat).", "flatPath": "v1/spaces/{spacesId}/attachments:upload", "httpMethod": "POST", "id": "chat.media.upload", @@ -229,7 +229,7 @@ "spaces": { "methods": { "completeImport": { - "description": "Completes the [import process](https://developers.google.com/chat/api/guides/import-data) for the specified space and makes it visible to users. Requires app authentication and domain-wide delegation. For more information, see [Authorize Google Chat apps to import data](https://developers.google.com/chat/api/guides/authorize-import).", + "description": "Completes the [import process](https://developers.google.com/workspace/chat/import-data) for the specified space and makes it visible to users. Requires app authentication and domain-wide delegation. For more information, see [Authorize Google Chat apps to import data](https://developers.google.com/workspace/chat/authorize-import).", "flatPath": "v1/spaces/{spacesId}:completeImport", "httpMethod": "POST", "id": "chat.spaces.completeImport", @@ -257,7 +257,7 @@ ] }, "create": { - "description": "Creates a named space. Spaces grouped by topics aren't supported. For an example, see [Create a space](https://developers.google.com/chat/api/guides/v1/spaces/create). If you receive the error message `ALREADY_EXISTS` when creating a space, try a different `displayName`. An existing space within the Google Workspace organization might already use this display name. Requires [user authentication](https://developers.google.com/chat/api/guides/auth/users).", + "description": "Creates a named space. Spaces grouped by topics aren't supported. For an example, see [Create a space](https://developers.google.com/workspace/chat/create-spaces). If you receive the error message `ALREADY_EXISTS` when creating a space, try a different `displayName`. An existing space within the Google Workspace organization might already use this display name. Requires [user authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user).", "flatPath": "v1/spaces", "httpMethod": "POST", "id": "chat.spaces.create", @@ -283,7 +283,7 @@ ] }, "delete": { - "description": "Deletes a named space. Always performs a cascading delete, which means that the space's child resources\u2014like messages posted in the space and memberships in the space\u2014are also deleted. For an example, see [Delete a space](https://developers.google.com/chat/api/guides/v1/spaces/delete). Requires [user authentication](https://developers.google.com/chat/api/guides/auth/users) from a user who has permission to delete the space.", + "description": "Deletes a named space. Always performs a cascading delete, which means that the space's child resources\u2014like messages posted in the space and memberships in the space\u2014are also deleted. For an example, see [Delete a space](https://developers.google.com/workspace/chat/delete-spaces). Requires [user authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user) from a user who has permission to delete the space.", "flatPath": "v1/spaces/{spacesId}", "httpMethod": "DELETE", "id": "chat.spaces.delete", @@ -309,14 +309,14 @@ ] }, "findDirectMessage": { - "description": "Returns the existing direct message with the specified user. If no direct message space is found, returns a `404 NOT_FOUND` error. For an example, see [Find a direct message](/chat/api/guides/v1/spaces/find-direct-message). With [user authentication](https://developers.google.com/chat/api/guides/auth/users), returns the direct message space between the specified user and the authenticated user. With [app authentication](https://developers.google.com/chat/api/guides/auth/service-accounts), returns the direct message space between the specified user and the calling Chat app. Requires [user authentication](https://developers.google.com/chat/api/guides/auth/users) or [app authentication](https://developers.google.com/chat/api/guides/auth/service-accounts).", + "description": "Returns the existing direct message with the specified user. If no direct message space is found, returns a `404 NOT_FOUND` error. For an example, see [Find a direct message](/chat/api/guides/v1/spaces/find-direct-message). With [user authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user), returns the direct message space between the specified user and the authenticated user. With [app authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app), returns the direct message space between the specified user and the calling Chat app. Requires [user authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user) or [app authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app).", "flatPath": "v1/spaces:findDirectMessage", "httpMethod": "GET", "id": "chat.spaces.findDirectMessage", "parameterOrder": [], "parameters": { "name": { - "description": "Required. Resource name of the user to find direct message with. Format: `users/{user}`, where `{user}` is either the `id` for the [person](https://developers.google.com/people/api/rest/v1/people) from the People API, or the `id` for the [user](https://developers.google.com/admin-sdk/directory/reference/rest/v1/users) in the Directory API. For example, if the People API profile ID is `123456789`, you can find a direct message with that person by using `users/123456789` as the `name`. When [authenticated as a user](https://developers.google.com/chat/api/guides/auth/users), you can use the email as an alias for `{user}`. For example, `users/example@gmail.com` where `example@gmail.com` is the email of the Google Chat user.", + "description": "Required. Resource name of the user to find direct message with. Format: `users/{user}`, where `{user}` is either the `id` for the [person](https://developers.google.com/people/api/rest/v1/people) from the People API, or the `id` for the [user](https://developers.google.com/admin-sdk/directory/reference/rest/v1/users) in the Directory API. For example, if the People API profile ID is `123456789`, you can find a direct message with that person by using `users/123456789` as the `name`. When [authenticated as a user](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user), you can use the email as an alias for `{user}`. For example, `users/example@gmail.com` where `example@gmail.com` is the email of the Google Chat user.", "location": "query", "type": "string" } @@ -332,7 +332,7 @@ ] }, "get": { - "description": "Returns details about a space. For an example, see [Get a space](https://developers.google.com/chat/api/guides/v1/spaces/get). Requires [authentication](https://developers.google.com/chat/api/guides/auth). Supports [app authentication](https://developers.google.com/chat/api/guides/auth/service-accounts) and [user authentication](https://developers.google.com/chat/api/guides/auth/users).", + "description": "Returns details about a space. For an example, see [Get details about a space](https://developers.google.com/workspace/chat/get-spaces). Requires [authentication](https://developers.google.com/workspace/chat/authenticate-authorize). Supports [app authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app) and [user authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user).", "flatPath": "v1/spaces/{spacesId}", "httpMethod": "GET", "id": "chat.spaces.get", @@ -359,19 +359,19 @@ ] }, "list": { - "description": "Lists spaces the caller is a member of. Group chats and DMs aren't listed until the first message is sent. For an example, see [List spaces](https://developers.google.com/chat/api/guides/v1/spaces/list). Requires [authentication](https://developers.google.com/chat/api/guides/auth). Supports [app authentication](https://developers.google.com/chat/api/guides/auth/service-accounts) and [user authentication](https://developers.google.com/chat/api/guides/auth/users). Lists spaces visible to the caller or authenticated user. Group chats and DMs aren't listed until the first message is sent.", + "description": "Lists spaces the caller is a member of. Group chats and DMs aren't listed until the first message is sent. For an example, see [List spaces](https://developers.google.com/workspace/chat/list-spaces). Requires [authentication](https://developers.google.com/workspace/chat/authenticate-authorize). Supports [app authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app) and [user authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). Lists spaces visible to the caller or authenticated user. Group chats and DMs aren't listed until the first message is sent.", "flatPath": "v1/spaces", "httpMethod": "GET", "id": "chat.spaces.list", "parameterOrder": [], "parameters": { "filter": { - "description": "Optional. A query filter. You can filter spaces by the space type ([`space_type`](https://developers.google.com/chat/api/reference/rest/v1/spaces#spacetype)). To filter by space type, you must specify valid enum value, such as `SPACE` or `GROUP_CHAT` (the `space_type` can't be `SPACE_TYPE_UNSPECIFIED`). To query for multiple space types, use the `OR` operator. For example, the following queries are valid: ``` space_type = \"SPACE\" spaceType = \"GROUP_CHAT\" OR spaceType = \"DIRECT_MESSAGE\" ``` Invalid queries are rejected by the server with an `INVALID_ARGUMENT` error.", + "description": "Optional. A query filter. You can filter spaces by the space type ([`space_type`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces#spacetype)). To filter by space type, you must specify valid enum value, such as `SPACE` or `GROUP_CHAT` (the `space_type` can't be `SPACE_TYPE_UNSPECIFIED`). To query for multiple space types, use the `OR` operator. For example, the following queries are valid: ``` space_type = \"SPACE\" spaceType = \"GROUP_CHAT\" OR spaceType = \"DIRECT_MESSAGE\" ``` Invalid queries are rejected by the server with an `INVALID_ARGUMENT` error.", "location": "query", "type": "string" }, "pageSize": { - "description": "Optional. The maximum number of spaces to return. The service might return fewer than this value. If unspecified, at most 100 spaces are returned. The maximum value is 1,000. If you use a value more than 1,000, it's automatically changed to 1,000. Negative values return an `INVALID_ARGUMENT` error.", + "description": "Optional. The maximum number of spaces to return. The service might return fewer than this value. If unspecified, at most 100 spaces are returned. The maximum value is 1000. If you use a value more than 1000, it's automatically changed to 1000. Negative values return an `INVALID_ARGUMENT` error.", "format": "int32", "location": "query", "type": "integer" @@ -393,7 +393,7 @@ ] }, "patch": { - "description": "Updates a space. For an example, see [Update a space](https://developers.google.com/chat/api/guides/v1/spaces/update). If you're updating the `displayName` field and receive the error message `ALREADY_EXISTS`, try a different display name.. An existing space within the Google Workspace organization might already use this display name. Requires [user authentication](https://developers.google.com/chat/api/guides/auth/users).", + "description": "Updates a space. For an example, see [Update a space](https://developers.google.com/workspace/chat/update-spaces). If you're updating the `displayName` field and receive the error message `ALREADY_EXISTS`, try a different display name.. An existing space within the Google Workspace organization might already use this display name. Requires [user authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user).", "flatPath": "v1/spaces/{spacesId}", "httpMethod": "PATCH", "id": "chat.spaces.patch", @@ -428,7 +428,7 @@ ] }, "setup": { - "description": "Creates a space and adds specified users to it. The calling user is automatically added to the space, and shouldn't be specified as a membership in the request. For an example, see [Set up a space](https://developers.google.com/chat/api/guides/v1/spaces/set-up). To specify the human members to add, add memberships with the appropriate `member.name` in the `SetUpSpaceRequest`. To add a human user, use `users/{user}`, where `{user}` can be the email address for the user. For users in the same Workspace organization `{user}` can also be the `id` for the person from the People API, or the `id` for the user in the Directory API. For example, if the People API Person profile ID for `user@example.com` is `123456789`, you can add the user to the space by setting the `membership.member.name` to `users/user@example.com` or `users/123456789`. For a space or group chat, if the caller blocks or is blocked by some members, then those members aren't added to the created space. To create a direct message (DM) between the calling user and another human user, specify exactly one membership to represent the human user. If one user blocks the other, the request fails and the DM isn't created. To create a DM between the calling user and the calling app, set `Space.singleUserBotDm` to `true` and don't specify any memberships. You can only use this method to set up a DM with the calling app. To add the calling app as a member of a space or an existing DM between two human users, see [create a membership](https://developers.google.com/chat/api/guides/v1/members/create). If a DM already exists between two users, even when one user blocks the other at the time a request is made, then the existing DM is returned. Spaces with threaded replies aren't supported. If you receive the error message `ALREADY_EXISTS` when setting up a space, try a different `displayName`. An existing space within the Google Workspace organization might already use this display name. Requires [user authentication](https://developers.google.com/chat/api/guides/auth/users).", + "description": "Creates a space and adds specified users to it. The calling user is automatically added to the space, and shouldn't be specified as a membership in the request. For an example, see [Set up a space with initial members](https://developers.google.com/workspace/chat/set-up-spaces). To specify the human members to add, add memberships with the appropriate `member.name` in the `SetUpSpaceRequest`. To add a human user, use `users/{user}`, where `{user}` can be the email address for the user. For users in the same Workspace organization `{user}` can also be the `id` for the person from the People API, or the `id` for the user in the Directory API. For example, if the People API Person profile ID for `user@example.com` is `123456789`, you can add the user to the space by setting the `membership.member.name` to `users/user@example.com` or `users/123456789`. For a space or group chat, if the caller blocks or is blocked by some members, then those members aren't added to the created space. To create a direct message (DM) between the calling user and another human user, specify exactly one membership to represent the human user. If one user blocks the other, the request fails and the DM isn't created. To create a DM between the calling user and the calling app, set `Space.singleUserBotDm` to `true` and don't specify any memberships. You can only use this method to set up a DM with the calling app. To add the calling app as a member of a space or an existing DM between two human users, see [Invite or add a user or app to a space](https://developers.google.com/workspace/chat/create-members). If a DM already exists between two users, even when one user blocks the other at the time a request is made, then the existing DM is returned. Spaces with threaded replies aren't supported. If you receive the error message `ALREADY_EXISTS` when setting up a space, try a different `displayName`. An existing space within the Google Workspace organization might already use this display name. Requires [user authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user).", "flatPath": "v1/spaces:setup", "httpMethod": "POST", "id": "chat.spaces.setup", @@ -451,7 +451,7 @@ "members": { "methods": { "create": { - "description": "Creates a human membership or app membership for the calling app. Creating memberships for other apps isn't supported. For an example, see [ Create a membership](https://developers.google.com/chat/api/guides/v1/members/create). When creating a membership, if the specified member has their auto-accept policy turned off, then they're invited, and must accept the space invitation before joining. Otherwise, creating a membership adds the member directly to the specified space. Requires [user authentication](https://developers.google.com/chat/api/guides/auth/users). To specify the member to add, set the `membership.member.name` in the `CreateMembershipRequest`: - To add the calling app to a space or a direct message between two human users, use `users/app`. Unable to add other apps to the space. - To add a human user, use `users/{user}`, where `{user}` can be the email address for the user. For users in the same Workspace organization `{user}` can also be the `id` for the person from the People API, or the `id` for the user in the Directory API. For example, if the People API Person profile ID for `user@example.com` is `123456789`, you can add the user to the space by setting the `membership.member.name` to `users/user@example.com` or `users/123456789`.", + "description": "Creates a human membership or app membership for the calling app. Creating memberships for other apps isn't supported. For an example, see [Invite or add a user or a Google Chat app to a space](https://developers.google.com/workspace/chat/create-members). When creating a membership, if the specified member has their auto-accept policy turned off, then they're invited, and must accept the space invitation before joining. Otherwise, creating a membership adds the member directly to the specified space. Requires [user authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). To specify the member to add, set the `membership.member.name` in the `CreateMembershipRequest`: - To add the calling app to a space or a direct message between two human users, use `users/app`. Unable to add other apps to the space. - To add a human user, use `users/{user}`, where `{user}` can be the email address for the user. For users in the same Workspace organization `{user}` can also be the `id` for the person from the People API, or the `id` for the user in the Directory API. For example, if the People API Person profile ID for `user@example.com` is `123456789`, you can add the user to the space by setting the `membership.member.name` to `users/user@example.com` or `users/123456789`.", "flatPath": "v1/spaces/{spacesId}/members", "httpMethod": "POST", "id": "chat.spaces.members.create", @@ -481,7 +481,7 @@ ] }, "delete": { - "description": "Deletes a membership. For an example, see [Delete a membership](https://developers.google.com/chat/api/guides/v1/members/delete). Requires [user authentication](https://developers.google.com/chat/api/guides/auth/users).", + "description": "Deletes a membership. For an example, see [Remove a user or a Google Chat app from a space](https://developers.google.com/workspace/chat/delete-members). Requires [user authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user).", "flatPath": "v1/spaces/{spacesId}/members/{membersId}", "httpMethod": "DELETE", "id": "chat.spaces.members.delete", @@ -508,7 +508,7 @@ ] }, "get": { - "description": "Returns details about a membership. For an example, see [Get a membership](https://developers.google.com/chat/api/guides/v1/members/get). Requires [authentication](https://developers.google.com/chat/api/guides/auth). Supports [app authentication](https://developers.google.com/chat/api/guides/auth/service-accounts) and [user authentication](https://developers.google.com/chat/api/guides/auth/users).", + "description": "Returns details about a membership. For an example, see [Get details about a user's or Google Chat app's membership](https://developers.google.com/workspace/chat/get-members). Requires [authentication](https://developers.google.com/workspace/chat/authenticate-authorize). Supports [app authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app) and [user authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user).", "flatPath": "v1/spaces/{spacesId}/members/{membersId}", "httpMethod": "GET", "id": "chat.spaces.members.get", @@ -517,7 +517,7 @@ ], "parameters": { "name": { - "description": "Required. Resource name of the membership to retrieve. To get the app's own membership, you can optionally use `spaces/{space}/members/app`. Format: `spaces/{space}/members/{member}` or `spaces/{space}/members/app` When [authenticated as a user](https://developers.google.com/chat/api/guides/auth/users), you can use the user's email as an alias for `{member}`. For example, `spaces/{space}/members/example@gmail.com` where `example@gmail.com` is the email of the Google Chat user.", + "description": "Required. Resource name of the membership to retrieve. To get the app's own membership [by using user authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user), you can optionally use `spaces/{space}/members/app`. Format: `spaces/{space}/members/{member}` or `spaces/{space}/members/app` When [authenticated as a user](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user), you can use the user's email as an alias for `{member}`. For example, `spaces/{space}/members/example@gmail.com` where `example@gmail.com` is the email of the Google Chat user.", "location": "path", "pattern": "^spaces/[^/]+/members/[^/]+$", "required": true, @@ -535,7 +535,7 @@ ] }, "list": { - "description": "Lists memberships in a space. For an example, see [List memberships](https://developers.google.com/chat/api/guides/v1/members/list). Listing memberships with [app authentication](https://developers.google.com/chat/api/guides/auth/service-accounts) lists memberships in spaces that the Chat app has access to, but excludes Chat app memberships, including its own. Listing memberships with [User authentication](https://developers.google.com/chat/api/guides/auth/users) lists memberships in spaces that the authenticated user has access to. Requires [authentication](https://developers.google.com/chat/api/guides/auth). Supports [app authentication](https://developers.google.com/chat/api/guides/auth/service-accounts) and [user authentication](https://developers.google.com/chat/api/guides/auth/users).", + "description": "Lists memberships in a space. For an example, see [List users and Google Chat apps in a space](https://developers.google.com/workspace/chat/list-members). Listing memberships with [app authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app) lists memberships in spaces that the Chat app has access to, but excludes Chat app memberships, including its own. Listing memberships with [User authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user) lists memberships in spaces that the authenticated user has access to. Requires [authentication](https://developers.google.com/workspace/chat/authenticate-authorize). Supports [app authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app) and [user authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user).", "flatPath": "v1/spaces/{spacesId}/members", "httpMethod": "GET", "id": "chat.spaces.members.list", @@ -544,12 +544,12 @@ ], "parameters": { "filter": { - "description": "Optional. A query filter. You can filter memberships by a member's role ([`role`](https://developers.google.com/chat/api/reference/rest/v1/spaces.members#membershiprole)) and type ([`member.type`](https://developers.google.com/chat/api/reference/rest/v1/User#type)). To filter by role, set `role` to `ROLE_MEMBER` or `ROLE_MANAGER`. To filter by type, set `member.type` to `HUMAN` or `BOT`. To filter by both role and type, use the `AND` operator. To filter by either role or type, use the `OR` operator. For example, the following queries are valid: ``` role = \"ROLE_MANAGER\" OR role = \"ROLE_MEMBER\" member.type = \"HUMAN\" AND role = \"ROLE_MANAGER\" ``` The following queries are invalid: ``` member.type = \"HUMAN\" AND member.type = \"BOT\" role = \"ROLE_MANAGER\" AND role = \"ROLE_MEMBER\" ``` Invalid queries are rejected by the server with an `INVALID_ARGUMENT` error.", + "description": "Optional. A query filter. You can filter memberships by a member's role ([`role`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.members#membershiprole)) and type ([`member.type`](https://developers.google.com/workspace/chat/api/reference/rest/v1/User#type)). To filter by role, set `role` to `ROLE_MEMBER` or `ROLE_MANAGER`. To filter by type, set `member.type` to `HUMAN` or `BOT`. To filter by both role and type, use the `AND` operator. To filter by either role or type, use the `OR` operator. For example, the following queries are valid: ``` role = \"ROLE_MANAGER\" OR role = \"ROLE_MEMBER\" member.type = \"HUMAN\" AND role = \"ROLE_MANAGER\" ``` The following queries are invalid: ``` member.type = \"HUMAN\" AND member.type = \"BOT\" role = \"ROLE_MANAGER\" AND role = \"ROLE_MEMBER\" ``` Invalid queries are rejected by the server with an `INVALID_ARGUMENT` error.", "location": "query", "type": "string" }, "pageSize": { - "description": "Optional. The maximum number of memberships to return. The service might return fewer than this value. If unspecified, at most 100 memberships are returned. The maximum value is 1,000. If you use a value more than 1,000, it's automatically changed to 1,000. Negative values return an `INVALID_ARGUMENT` error.", + "description": "Optional. The maximum number of memberships to return. The service might return fewer than this value. If unspecified, at most 100 memberships are returned. The maximum value is 1000. If you use a value more than 1000, it's automatically changed to 1000. Negative values return an `INVALID_ARGUMENT` error.", "format": "int32", "location": "query", "type": "integer" @@ -572,7 +572,7 @@ "type": "boolean" }, "showInvited": { - "description": "Optional. When `true`, also returns memberships associated with invited members, in addition to other types of memberships. If a filter is set, invited memberships that don't match the filter criteria aren't returned. Currently requires [user authentication](https://developers.google.com/chat/api/guides/auth/users).", + "description": "Optional. When `true`, also returns memberships associated with invited members, in addition to other types of memberships. If a filter is set, invited memberships that don't match the filter criteria aren't returned. Currently requires [user authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user).", "location": "query", "type": "boolean" } @@ -587,13 +587,48 @@ "https://www.googleapis.com/auth/chat.memberships", "https://www.googleapis.com/auth/chat.memberships.readonly" ] + }, + "patch": { + "description": "Updates a membership. Requires [user authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user).", + "flatPath": "v1/spaces/{spacesId}/members/{membersId}", + "httpMethod": "PATCH", + "id": "chat.spaces.members.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Resource name of the membership, assigned by the server. Format: `spaces/{space}/members/{member}`", + "location": "path", + "pattern": "^spaces/[^/]+/members/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. The field paths to update. Separate multiple values with commas or use `*` to update all field paths. Currently supported field paths: - `role`", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "Membership" + }, + "response": { + "$ref": "Membership" + }, + "scopes": [ + "https://www.googleapis.com/auth/chat.import", + "https://www.googleapis.com/auth/chat.memberships" + ] } } }, "messages": { "methods": { "create": { - "description": "Creates a message in a Google Chat space. For an example, see [Create a message](https://developers.google.com/chat/api/guides/v1/messages/create). Calling this method requires [authentication](https://developers.google.com/chat/api/guides/auth) and supports the following authentication types: - For text messages, user authentication or app authentication are supported. - For card messages, only app authentication is supported. (Only Chat apps can create card messages.)", + "description": "Creates a message in a Google Chat space. For an example, see [Send a message](https://developers.google.com/workspace/chat/create-messages). Calling this method requires [authentication](https://developers.google.com/workspace/chat/authenticate-authorize) and supports the following authentication types: - For text messages, user authentication or app authentication are supported. - For card messages, only app authentication is supported. (Only Chat apps can create card messages.)", "flatPath": "v1/spaces/{spacesId}/messages", "httpMethod": "POST", "id": "chat.spaces.messages.create", @@ -602,7 +637,7 @@ ], "parameters": { "messageId": { - "description": "Optional. A custom ID for a message. Lets Chat apps get, update, or delete a message without needing to store the system-assigned ID in the message's resource name (represented in the message `name` field). The value for this field must meet the following requirements: * Begins with `client-`. For example, `client-custom-name` is a valid custom ID, but `custom-name` is not. * Contains up to 63 characters and only lowercase letters, numbers, and hyphens. * Is unique within a space. A Chat app can't use the same custom ID for different messages. For details, see [Name a message](https://developers.google.com/chat/api/guides/v1/messages/create#name_a_created_message).", + "description": "Optional. A custom ID for a message. Lets Chat apps get, update, or delete a message without needing to store the system-assigned ID in the message's resource name (represented in the message `name` field). The value for this field must meet the following requirements: * Begins with `client-`. For example, `client-custom-name` is a valid custom ID, but `custom-name` is not. * Contains up to 63 characters and only lowercase letters, numbers, and hyphens. * Is unique within a space. A Chat app can't use the same custom ID for different messages. For details, see [Name a message](https://developers.google.com/workspace/chat/create-messages#name_a_created_message).", "location": "query", "type": "string" }, @@ -635,7 +670,7 @@ }, "threadKey": { "deprecated": true, - "description": "Optional. Deprecated: Use thread.thread_key instead. ID for the thread. Supports up to 4000 characters. To start or add to a thread, create a message and specify a `threadKey` or the thread.name. For example usage, see [Start or reply to a message thread](https://developers.google.com/chat/api/guides/v1/messages/create#create-message-thread).", + "description": "Optional. Deprecated: Use thread.thread_key instead. ID for the thread. Supports up to 4000 characters. To start or add to a thread, create a message and specify a `threadKey` or the thread.name. For example usage, see [Start or reply to a message thread](https://developers.google.com/workspace/chat/create-messages#create-message-thread).", "location": "query", "type": "string" } @@ -655,7 +690,7 @@ ] }, "delete": { - "description": "Deletes a message. For an example, see [Delete a message](https://developers.google.com/chat/api/guides/v1/messages/delete). Requires [authentication](https://developers.google.com/chat/api/guides/auth). Supports [app authentication](https://developers.google.com/chat/api/guides/auth/service-accounts) and [user authentication](https://developers.google.com/chat/api/guides/auth/users). When using app authentication, requests can only delete messages created by the calling Chat app.", + "description": "Deletes a message. For an example, see [Delete a message](https://developers.google.com/workspace/chat/delete-messages). Requires [authentication](https://developers.google.com/workspace/chat/authenticate-authorize). Supports [app authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app) and [user authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). When using app authentication, requests can only delete messages created by the calling Chat app.", "flatPath": "v1/spaces/{spacesId}/messages/{messagesId}", "httpMethod": "DELETE", "id": "chat.spaces.messages.delete", @@ -664,12 +699,12 @@ ], "parameters": { "force": { - "description": "When `true`, deleting a message also deletes its threaded replies. When `false`, if a message has threaded replies, deletion fails. Only applies when [authenticating as a user](https://developers.google.com/chat/api/guides/auth/users). Has no effect when [authenticating as a Chat app] (https://developers.google.com/chat/api/guides/auth/service-accounts).", + "description": "When `true`, deleting a message also deletes its threaded replies. When `false`, if a message has threaded replies, deletion fails. Only applies when [authenticating as a user](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). Has no effect when [authenticating as a Chat app] (https://developers.google.com/workspace/chat/authenticate-authorize-chat-app).", "location": "query", "type": "boolean" }, "name": { - "description": "Required. Resource name of the message. Format: `spaces/{space}/messages/{message}` If you've set a custom ID for your message, you can use the value from the `clientAssignedMessageId` field for `{message}`. For details, see [Name a message] (https://developers.google.com/chat/api/guides/v1/messages/create#name_a_created_message).", + "description": "Required. Resource name of the message. Format: `spaces/{space}/messages/{message}` If you've set a custom ID for your message, you can use the value from the `clientAssignedMessageId` field for `{message}`. For details, see [Name a message] (https://developers.google.com/workspace/chat/create-messages#name_a_created_message).", "location": "path", "pattern": "^spaces/[^/]+/messages/[^/]+$", "required": true, @@ -687,7 +722,7 @@ ] }, "get": { - "description": "Returns details about a message. For an example, see [Read a message](https://developers.google.com/chat/api/guides/v1/messages/get). Requires [authentication](https://developers.google.com/chat/api/guides/auth). Supports [app authentication](https://developers.google.com/chat/api/guides/auth/service-accounts) and [user authentication](https://developers.google.com/chat/api/guides/auth/users). Note: Might return a message from a blocked member or space.", + "description": "Returns details about a message. For an example, see [Get details about a message](https://developers.google.com/workspace/chat/get-messages). Requires [authentication](https://developers.google.com/workspace/chat/authenticate-authorize). Supports [app authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app) and [user authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). Note: Might return a message from a blocked member or space.", "flatPath": "v1/spaces/{spacesId}/messages/{messagesId}", "httpMethod": "GET", "id": "chat.spaces.messages.get", @@ -696,7 +731,7 @@ ], "parameters": { "name": { - "description": "Required. Resource name of the message. Format: `spaces/{space}/messages/{message}` If you've set a custom ID for your message, you can use the value from the `clientAssignedMessageId` field for `{message}`. For details, see [Name a message] (https://developers.google.com/chat/api/guides/v1/messages/create#name_a_created_message).", + "description": "Required. Resource name of the message. Format: `spaces/{space}/messages/{message}` If you've set a custom ID for your message, you can use the value from the `clientAssignedMessageId` field for `{message}`. For details, see [Name a message] (https://developers.google.com/workspace/chat/create-messages#name_a_created_message).", "location": "path", "pattern": "^spaces/[^/]+/messages/[^/]+$", "required": true, @@ -714,7 +749,7 @@ ] }, "list": { - "description": "Lists messages in a space that the caller is a member of, including messages from blocked members and spaces. For an example, see [List messages](/chat/api/guides/v1/messages/list). Requires [user authentication](https://developers.google.com/chat/api/guides/auth/users).", + "description": "Lists messages in a space that the caller is a member of, including messages from blocked members and spaces. For an example, see [List messages](/chat/api/guides/v1/messages/list). Requires [user authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user).", "flatPath": "v1/spaces/{spacesId}/messages", "httpMethod": "GET", "id": "chat.spaces.messages.list", @@ -733,7 +768,7 @@ "type": "string" }, "pageSize": { - "description": "The maximum number of messages returned. The service might return fewer messages than this value. If unspecified, at most 25 are returned. The maximum value is 1,000. If you use a value more than 1,000, it's automatically changed to 1,000. Negative values return an `INVALID_ARGUMENT` error.", + "description": "The maximum number of messages returned. The service might return fewer messages than this value. If unspecified, at most 25 are returned. The maximum value is 1000. If you use a value more than 1000, it's automatically changed to 1000. Negative values return an `INVALID_ARGUMENT` error.", "format": "int32", "location": "query", "type": "integer" @@ -767,7 +802,7 @@ ] }, "patch": { - "description": "Updates a message. There's a difference between the `patch` and `update` methods. The `patch` method uses a `patch` request while the `update` method uses a `put` request. We recommend using the `patch` method. For an example, see [Update a message](https://developers.google.com/chat/api/guides/v1/messages/update). Requires [authentication](https://developers.google.com/chat/api/guides/auth). Supports [app authentication](https://developers.google.com/chat/api/guides/auth/service-accounts) and [user authentication](https://developers.google.com/chat/api/guides/auth/users). When using app authentication, requests can only update messages created by the calling Chat app.", + "description": "Updates a message. There's a difference between the `patch` and `update` methods. The `patch` method uses a `patch` request while the `update` method uses a `put` request. We recommend using the `patch` method. For an example, see [Update a message](https://developers.google.com/workspace/chat/update-messages). Requires [authentication](https://developers.google.com/workspace/chat/authenticate-authorize). Supports [app authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app) and [user authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). When using app authentication, requests can only update messages created by the calling Chat app.", "flatPath": "v1/spaces/{spacesId}/messages/{messagesId}", "httpMethod": "PATCH", "id": "chat.spaces.messages.patch", @@ -776,19 +811,19 @@ ], "parameters": { "allowMissing": { - "description": "Optional. If `true` and the message isn't found, a new message is created and `updateMask` is ignored. The specified message ID must be [client-assigned](https://developers.google.com/chat/api/guides/v1/messages/create#name_a_created_message) or the request fails.", + "description": "Optional. If `true` and the message isn't found, a new message is created and `updateMask` is ignored. The specified message ID must be [client-assigned](https://developers.google.com/workspace/chat/create-messages#name_a_created_message) or the request fails.", "location": "query", "type": "boolean" }, "name": { - "description": "Resource name of the message. Format: `spaces/{space}/messages/{message}` Where `{space}` is the ID of the space where the message is posted and `{message}` is a system-assigned ID for the message. For example, `spaces/AAAAAAAAAAA/messages/BBBBBBBBBBB.BBBBBBBBBBB`. If you set a custom ID when you create a message, you can use this ID to specify the message in a request by replacing `{message}` with the value from the `clientAssignedMessageId` field. For example, `spaces/AAAAAAAAAAA/messages/client-custom-name`. For details, see [Name a message](https://developers.google.com/chat/api/guides/v1/messages/create#name_a_created_message).", + "description": "Resource name of the message. Format: `spaces/{space}/messages/{message}` Where `{space}` is the ID of the space where the message is posted and `{message}` is a system-assigned ID for the message. For example, `spaces/AAAAAAAAAAA/messages/BBBBBBBBBBB.BBBBBBBBBBB`. If you set a custom ID when you create a message, you can use this ID to specify the message in a request by replacing `{message}` with the value from the `clientAssignedMessageId` field. For example, `spaces/AAAAAAAAAAA/messages/client-custom-name`. For details, see [Name a message](https://developers.google.com/workspace/chat/create-messages#name_a_created_message).", "location": "path", "pattern": "^spaces/[^/]+/messages/[^/]+$", "required": true, "type": "string" }, "updateMask": { - "description": "Required. The field paths to update. Separate multiple values with commas or use `*` to update all field paths. Currently supported field paths: - `text` - `attachment` - `cards` (Requires [app authentication](/chat/api/guides/auth/service-accounts).) - `cards_v2` (Requires [app authentication](/chat/api/guides/auth/service-accounts).) - Developer Preview: `accessory_widgets` (Requires [app authentication](/chat/api/guides/auth/service-accounts).)", + "description": "Required. The field paths to update. Separate multiple values with commas or use `*` to update all field paths. Currently supported field paths: - `text` - `attachment` - `cards` (Requires [app authentication](/chat/api/guides/auth/service-accounts).) - `cards_v2` (Requires [app authentication](/chat/api/guides/auth/service-accounts).) - `accessory_widgets` (Requires [app authentication](/chat/api/guides/auth/service-accounts).)", "format": "google-fieldmask", "location": "query", "type": "string" @@ -808,7 +843,7 @@ ] }, "update": { - "description": "Updates a message. There's a difference between the `patch` and `update` methods. The `patch` method uses a `patch` request while the `update` method uses a `put` request. We recommend using the `patch` method. For an example, see [Update a message](https://developers.google.com/chat/api/guides/v1/messages/update). Requires [authentication](https://developers.google.com/chat/api/guides/auth). Supports [app authentication](https://developers.google.com/chat/api/guides/auth/service-accounts) and [user authentication](https://developers.google.com/chat/api/guides/auth/users). When using app authentication, requests can only update messages created by the calling Chat app.", + "description": "Updates a message. There's a difference between the `patch` and `update` methods. The `patch` method uses a `patch` request while the `update` method uses a `put` request. We recommend using the `patch` method. For an example, see [Update a message](https://developers.google.com/workspace/chat/update-messages). Requires [authentication](https://developers.google.com/workspace/chat/authenticate-authorize). Supports [app authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app) and [user authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). When using app authentication, requests can only update messages created by the calling Chat app.", "flatPath": "v1/spaces/{spacesId}/messages/{messagesId}", "httpMethod": "PUT", "id": "chat.spaces.messages.update", @@ -817,19 +852,19 @@ ], "parameters": { "allowMissing": { - "description": "Optional. If `true` and the message isn't found, a new message is created and `updateMask` is ignored. The specified message ID must be [client-assigned](https://developers.google.com/chat/api/guides/v1/messages/create#name_a_created_message) or the request fails.", + "description": "Optional. If `true` and the message isn't found, a new message is created and `updateMask` is ignored. The specified message ID must be [client-assigned](https://developers.google.com/workspace/chat/create-messages#name_a_created_message) or the request fails.", "location": "query", "type": "boolean" }, "name": { - "description": "Resource name of the message. Format: `spaces/{space}/messages/{message}` Where `{space}` is the ID of the space where the message is posted and `{message}` is a system-assigned ID for the message. For example, `spaces/AAAAAAAAAAA/messages/BBBBBBBBBBB.BBBBBBBBBBB`. If you set a custom ID when you create a message, you can use this ID to specify the message in a request by replacing `{message}` with the value from the `clientAssignedMessageId` field. For example, `spaces/AAAAAAAAAAA/messages/client-custom-name`. For details, see [Name a message](https://developers.google.com/chat/api/guides/v1/messages/create#name_a_created_message).", + "description": "Resource name of the message. Format: `spaces/{space}/messages/{message}` Where `{space}` is the ID of the space where the message is posted and `{message}` is a system-assigned ID for the message. For example, `spaces/AAAAAAAAAAA/messages/BBBBBBBBBBB.BBBBBBBBBBB`. If you set a custom ID when you create a message, you can use this ID to specify the message in a request by replacing `{message}` with the value from the `clientAssignedMessageId` field. For example, `spaces/AAAAAAAAAAA/messages/client-custom-name`. For details, see [Name a message](https://developers.google.com/workspace/chat/create-messages#name_a_created_message).", "location": "path", "pattern": "^spaces/[^/]+/messages/[^/]+$", "required": true, "type": "string" }, "updateMask": { - "description": "Required. The field paths to update. Separate multiple values with commas or use `*` to update all field paths. Currently supported field paths: - `text` - `attachment` - `cards` (Requires [app authentication](/chat/api/guides/auth/service-accounts).) - `cards_v2` (Requires [app authentication](/chat/api/guides/auth/service-accounts).) - Developer Preview: `accessory_widgets` (Requires [app authentication](/chat/api/guides/auth/service-accounts).)", + "description": "Required. The field paths to update. Separate multiple values with commas or use `*` to update all field paths. Currently supported field paths: - `text` - `attachment` - `cards` (Requires [app authentication](/chat/api/guides/auth/service-accounts).) - `cards_v2` (Requires [app authentication](/chat/api/guides/auth/service-accounts).) - `accessory_widgets` (Requires [app authentication](/chat/api/guides/auth/service-accounts).)", "format": "google-fieldmask", "location": "query", "type": "string" @@ -853,7 +888,7 @@ "attachments": { "methods": { "get": { - "description": "Gets the metadata of a message attachment. The attachment data is fetched using the [media API](https://developers.google.com/chat/api/reference/rest/v1/media/download). For an example, see [Get a message attachment](https://developers.google.com/chat/api/guides/v1/media-and-attachments/get). Requires [app authentication](https://developers.google.com/chat/api/guides/auth/service-accounts).", + "description": "Gets the metadata of a message attachment. The attachment data is fetched using the [media API](https://developers.google.com/workspace/chat/api/reference/rest/v1/media/download). For an example, see [Get metadata about a message attachment](https://developers.google.com/workspace/chat/get-media-attachments). Requires [app authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-app).", "flatPath": "v1/spaces/{spacesId}/messages/{messagesId}/attachments/{attachmentsId}", "httpMethod": "GET", "id": "chat.spaces.messages.attachments.get", @@ -882,7 +917,7 @@ "reactions": { "methods": { "create": { - "description": "Creates a reaction and adds it to a message. For an example, see [Create a reaction](https://developers.google.com/chat/api/guides/v1/reactions/create). Requires [user authentication](https://developers.google.com/chat/api/guides/auth/users). Only unicode emoji are supported.", + "description": "Creates a reaction and adds it to a message. Only unicode emojis are supported. For an example, see [Add a reaction to a message](https://developers.google.com/workspace/chat/create-reactions). Requires [user authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user).", "flatPath": "v1/spaces/{spacesId}/messages/{messagesId}/reactions", "httpMethod": "POST", "id": "chat.spaces.messages.reactions.create", @@ -913,7 +948,7 @@ ] }, "delete": { - "description": "Deletes a reaction to a message. For an example, see [Delete a reaction](https://developers.google.com/chat/api/guides/v1/reactions/delete). Requires [user authentication](https://developers.google.com/chat/api/guides/auth/users).", + "description": "Deletes a reaction to a message. Only unicode emojis are supported. For an example, see [Delete a reaction](https://developers.google.com/workspace/chat/delete-reactions). Requires [user authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user).", "flatPath": "v1/spaces/{spacesId}/messages/{messagesId}/reactions/{reactionsId}", "httpMethod": "DELETE", "id": "chat.spaces.messages.reactions.delete", @@ -940,7 +975,7 @@ ] }, "list": { - "description": "Lists reactions to a message. For an example, see [List reactions](https://developers.google.com/chat/api/guides/v1/reactions/list). Requires [user authentication](https://developers.google.com/chat/api/guides/auth/users).", + "description": "Lists reactions to a message. For an example, see [List reactions for a message](https://developers.google.com/workspace/chat/list-reactions). Requires [user authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user).", "flatPath": "v1/spaces/{spacesId}/messages/{messagesId}/reactions", "httpMethod": "GET", "id": "chat.spaces.messages.reactions.list", @@ -949,7 +984,7 @@ ], "parameters": { "filter": { - "description": "Optional. A query filter. You can filter reactions by [emoji](https://developers.google.com/chat/api/reference/rest/v1/Emoji) (either `emoji.unicode` or `emoji.custom_emoji.uid`) and [user](https://developers.google.com/chat/api/reference/rest/v1/User) (`user.name`). To filter reactions for multiple emojis or users, join similar fields with the `OR` operator, such as `emoji.unicode = \"\ud83d\ude42\" OR emoji.unicode = \"\ud83d\udc4d\"` and `user.name = \"users/AAAAAA\" OR user.name = \"users/BBBBBB\"`. To filter reactions by emoji and user, use the `AND` operator, such as `emoji.unicode = \"\ud83d\ude42\" AND user.name = \"users/AAAAAA\"`. If your query uses both `AND` and `OR`, group them with parentheses. For example, the following queries are valid: ``` user.name = \"users/{user}\" emoji.unicode = \"\ud83d\ude42\" emoji.custom_emoji.uid = \"{uid}\" emoji.unicode = \"\ud83d\ude42\" OR emoji.unicode = \"\ud83d\udc4d\" emoji.unicode = \"\ud83d\ude42\" OR emoji.custom_emoji.uid = \"{uid}\" emoji.unicode = \"\ud83d\ude42\" AND user.name = \"users/{user}\" (emoji.unicode = \"\ud83d\ude42\" OR emoji.custom_emoji.uid = \"{uid}\") AND user.name = \"users/{user}\" ``` The following queries are invalid: ``` emoji.unicode = \"\ud83d\ude42\" AND emoji.unicode = \"\ud83d\udc4d\" emoji.unicode = \"\ud83d\ude42\" AND emoji.custom_emoji.uid = \"{uid}\" emoji.unicode = \"\ud83d\ude42\" OR user.name = \"users/{user}\" emoji.unicode = \"\ud83d\ude42\" OR emoji.custom_emoji.uid = \"{uid}\" OR user.name = \"users/{user}\" emoji.unicode = \"\ud83d\ude42\" OR emoji.custom_emoji.uid = \"{uid}\" AND user.name = \"users/{user}\" ``` Invalid queries are rejected by the server with an `INVALID_ARGUMENT` error.", + "description": "Optional. A query filter. You can filter reactions by [emoji](https://developers.google.com/workspace/chat/api/reference/rest/v1/Emoji) (either `emoji.unicode` or `emoji.custom_emoji.uid`) and [user](https://developers.google.com/workspace/chat/api/reference/rest/v1/User) (`user.name`). To filter reactions for multiple emojis or users, join similar fields with the `OR` operator, such as `emoji.unicode = \"\ud83d\ude42\" OR emoji.unicode = \"\ud83d\udc4d\"` and `user.name = \"users/AAAAAA\" OR user.name = \"users/BBBBBB\"`. To filter reactions by emoji and user, use the `AND` operator, such as `emoji.unicode = \"\ud83d\ude42\" AND user.name = \"users/AAAAAA\"`. If your query uses both `AND` and `OR`, group them with parentheses. For example, the following queries are valid: ``` user.name = \"users/{user}\" emoji.unicode = \"\ud83d\ude42\" emoji.custom_emoji.uid = \"{uid}\" emoji.unicode = \"\ud83d\ude42\" OR emoji.unicode = \"\ud83d\udc4d\" emoji.unicode = \"\ud83d\ude42\" OR emoji.custom_emoji.uid = \"{uid}\" emoji.unicode = \"\ud83d\ude42\" AND user.name = \"users/{user}\" (emoji.unicode = \"\ud83d\ude42\" OR emoji.custom_emoji.uid = \"{uid}\") AND user.name = \"users/{user}\" ``` The following queries are invalid: ``` emoji.unicode = \"\ud83d\ude42\" AND emoji.unicode = \"\ud83d\udc4d\" emoji.unicode = \"\ud83d\ude42\" AND emoji.custom_emoji.uid = \"{uid}\" emoji.unicode = \"\ud83d\ude42\" OR user.name = \"users/{user}\" emoji.unicode = \"\ud83d\ude42\" OR emoji.custom_emoji.uid = \"{uid}\" OR user.name = \"users/{user}\" emoji.unicode = \"\ud83d\ude42\" OR emoji.custom_emoji.uid = \"{uid}\" AND user.name = \"users/{user}\" ``` Invalid queries are rejected by the server with an `INVALID_ARGUMENT` error.", "location": "query", "type": "string" }, @@ -986,13 +1021,108 @@ } } } + }, + "spaceEvents": { + "methods": { + "get": { + "description": "Returns an event from a Google Chat space. The [event payload](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.spaceEvents#SpaceEvent.FIELDS.oneof_payload) contains the most recent version of the resource that changed. For example, if you request an event about a new message but the message was later updated, the server returns the updated `Message` resource in the event payload. Requires [user authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). To get an event, the authenticated user must be a member of the space. For an example, see [Get details about an event from a Google Chat space](https://developers.google.com/workspace/chat/get-space-event).", + "flatPath": "v1/spaces/{spacesId}/spaceEvents/{spaceEventsId}", + "httpMethod": "GET", + "id": "chat.spaces.spaceEvents.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the space event. Format: `spaces/{space}/spaceEvents/{spaceEvent}`", + "location": "path", + "pattern": "^spaces/[^/]+/spaceEvents/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "SpaceEvent" + }, + "scopes": [ + "https://www.googleapis.com/auth/chat.memberships", + "https://www.googleapis.com/auth/chat.memberships.readonly", + "https://www.googleapis.com/auth/chat.messages", + "https://www.googleapis.com/auth/chat.messages.reactions", + "https://www.googleapis.com/auth/chat.messages.reactions.readonly", + "https://www.googleapis.com/auth/chat.messages.readonly", + "https://www.googleapis.com/auth/chat.spaces", + "https://www.googleapis.com/auth/chat.spaces.readonly" + ] + }, + "list": { + "description": "Lists events from a Google Chat space. For each event, the [payload](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.spaceEvents#SpaceEvent.FIELDS.oneof_payload) contains the most recent version of the Chat resource. For example, if you list events about new space members, the server returns `Membership` resources that contain the latest membership details. If new members were removed during the requested period, the event payload contains an empty `Membership` resource. Requires [user authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user). To list events, the authenticated user must be a member of the space. For an example, see [List events from a Google Chat space](https://developers.google.com/workspace/chat/list-space-events).", + "flatPath": "v1/spaces/{spacesId}/spaceEvents", + "httpMethod": "GET", + "id": "chat.spaces.spaceEvents.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Required. A query filter. You must specify at least one event type (`event_type`) using the has `:` operator. To filter by multiple event types, use the `OR` operator. Omit batch event types in your filter. The request automatically returns any related batch events. For example, if you filter by new reactions (`google.workspace.chat.reaction.v1.created`), the server also returns batch new reactions events (`google.workspace.chat.reaction.v1.batchCreated`). For a list of supported event types, see the [`SpaceEvents` reference documentation](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.spaceEvents#SpaceEvent.FIELDS.event_type). Optionally, you can also filter by start time (`start_time`) and end time (`end_time`): * `start_time`: Exclusive timestamp from which to start listing space events. You can list events that occurred up to 28 days ago. If unspecified, lists space events from the past 28 days. * `end_time`: Inclusive timestamp until which space events are listed. If unspecified, lists events up to the time of the request. To specify a start or end time, use the equals `=` operator and format in [RFC-3339](https://www.rfc-editor.org/rfc/rfc3339). To filter by both `start_time` and `end_time`, use the `AND` operator. For example, the following queries are valid: ``` start_time=\"2023-08-23T19:20:33+00:00\" AND end_time=\"2023-08-23T19:21:54+00:00\" ``` ``` start_time=\"2023-08-23T19:20:33+00:00\" AND (event_types:\"google.workspace.chat.space.v1.updated\" OR event_types:\"google.workspace.chat.message.v1.created\") ``` The following queries are invalid: ``` start_time=\"2023-08-23T19:20:33+00:00\" OR end_time=\"2023-08-23T19:21:54+00:00\" ``` ``` event_types:\"google.workspace.chat.space.v1.updated\" AND event_types:\"google.workspace.chat.message.v1.created\" ``` Invalid queries are rejected by the server with an `INVALID_ARGUMENT` error.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. The maximum number of space events returned. The service might return fewer than this value. Negative values return an `INVALID_ARGUMENT` error.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token, received from a previous list space events call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to list space events must match the call that provided the page token. Passing different values to the other parameters might lead to unexpected results.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Resource name of the [Google Chat space](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces) where the events occurred. Format: `spaces/{space}`.", + "location": "path", + "pattern": "^spaces/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/spaceEvents", + "response": { + "$ref": "ListSpaceEventsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/chat.memberships", + "https://www.googleapis.com/auth/chat.memberships.readonly", + "https://www.googleapis.com/auth/chat.messages", + "https://www.googleapis.com/auth/chat.messages.reactions", + "https://www.googleapis.com/auth/chat.messages.reactions.readonly", + "https://www.googleapis.com/auth/chat.messages.readonly", + "https://www.googleapis.com/auth/chat.spaces", + "https://www.googleapis.com/auth/chat.spaces.readonly" + ] + } + } } } } }, - "revision": "20240227", + "revision": "20240416", "rootUrl": "https://chat.googleapis.com/", "schemas": { + "AccessoryWidget": { + "description": "One or more interactive widgets that appear at the bottom of a message. For details, see [Add interactive widgets at the bottom of a message](https://developers.google.com/workspace/chat/create-messages#add-accessory-widgets).", + "id": "AccessoryWidget", + "properties": { + "buttonList": { + "$ref": "GoogleAppsCardV1ButtonList", + "description": "A list of buttons." + } + }, + "type": "object" + }, "ActionParameter": { "description": "List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze one day, snooze next week. You might use `action method = snooze()`, passing the snooze type and snooze time in the list of string parameters.", "id": "ActionParameter", @@ -1014,7 +1144,7 @@ "properties": { "dialogAction": { "$ref": "DialogAction", - "description": "Input only. A response to an interaction event related to a [dialog](https://developers.google.com/chat/how-tos/dialogs). Must be accompanied by `ResponseType.Dialog`." + "description": "Input only. A response to an interaction event related to a [dialog](https://developers.google.com/workspace/chat/dialogs). Must be accompanied by `ResponseType.Dialog`." }, "type": { "description": "Input only. The type of Chat app response.", @@ -1033,7 +1163,7 @@ "Update the Chat app's message. This is only permitted on a `CARD_CLICKED` event where the message sender type is `BOT`.", "Update the cards on a user's message. This is only permitted as a response to a `MESSAGE` event with a matched url, or a `CARD_CLICKED` event where the message sender type is `HUMAN`. Text is ignored.", "Privately ask the user for additional authentication or configuration.", - "Presents a [dialog](https://developers.google.com/chat/how-tos/dialogs).", + "Presents a [dialog](https://developers.google.com/workspace/chat/dialogs).", "Widget text autocomplete options query." ], "type": "string" @@ -1050,7 +1180,7 @@ "type": "object" }, "ActionStatus": { - "description": "Represents the status for a request to either invoke or submit a [dialog](https://developers.google.com/chat/how-tos/dialogs).", + "description": "Represents the status for a request to either invoke or submit a [dialog](https://developers.google.com/workspace/chat/dialogs).", "id": "ActionStatus", "properties": { "statusCode": { @@ -1103,7 +1233,7 @@ "type": "object" }, "Annotation": { - "description": "Output only. Annotations associated with the plain-text body of the message. To add basic formatting to a text message, see [Format text messages](https://developers.google.com/chat/format-messages). Example plain-text message body: ``` Hello @FooBot how are you!\" ``` The corresponding annotations metadata: ``` \"annotations\":[{ \"type\":\"USER_MENTION\", \"startIndex\":6, \"length\":7, \"userMention\": { \"user\": { \"name\":\"users/{user}\", \"displayName\":\"FooBot\", \"avatarUrl\":\"https://goo.gl/aeDtrS\", \"type\":\"BOT\" }, \"type\":\"MENTION\" } }] ```", + "description": "Output only. Annotations associated with the plain-text body of the message. To add basic formatting to a text message, see [Format text messages](https://developers.google.com/workspace/chat/format-messages). Example plain-text message body: ``` Hello @FooBot how are you!\" ``` The corresponding annotations metadata: ``` \"annotations\":[{ \"type\":\"USER_MENTION\", \"startIndex\":6, \"length\":7, \"userMention\": { \"user\": { \"name\":\"users/{user}\", \"displayName\":\"FooBot\", \"avatarUrl\":\"https://goo.gl/aeDtrS\", \"type\":\"BOT\" }, \"type\":\"MENTION\" } }] ```", "id": "Annotation", "properties": { "length": { @@ -1111,6 +1241,10 @@ "format": "int32", "type": "integer" }, + "richLinkMetadata": { + "$ref": "RichLinkMetadata", + "description": "The metadata for a rich link." + }, "slashCommand": { "$ref": "SlashCommandMetadata", "description": "The metadata for a slash command." @@ -1125,12 +1259,14 @@ "enum": [ "ANNOTATION_TYPE_UNSPECIFIED", "USER_MENTION", - "SLASH_COMMAND" + "SLASH_COMMAND", + "RICH_LINK" ], "enumDescriptions": [ "Default value for the enum. Don't use.", "A user is mentioned.", - "A slash command is invoked." + "A slash command is invoked.", + "A rich link annotation." ], "type": "string" }, @@ -1193,9 +1329,9 @@ "UPLOADED_CONTENT" ], "enumDescriptions": [ - "", - "", - "" + "Reserved.", + "The file is a Google Drive file.", + "The file is uploaded to Chat." ], "readOnly": true, "type": "string" @@ -1209,6 +1345,7 @@ "type": "object" }, "AttachmentDataRef": { + "description": "A reference to the attachment data.", "id": "AttachmentDataRef", "properties": { "attachmentUploadToken": { @@ -1314,7 +1451,7 @@ "type": "object" }, "CardWithId": { - "description": "A [card](https://developers.google.com/chat/api/reference/rest/v1/cards) in a Google Chat message. Only Chat apps can create cards. If your Chat app [authenticates as a user](https://developers.google.com/chat/api/guides/auth/users), the message can't contain cards. [Card builder](https://addons.gsuite.google.com/uikit/builder)", + "description": "A [card](https://developers.google.com/workspace/chat/api/reference/rest/v1/cards) in a Google Chat message. Only Chat apps can create cards. If your Chat app [authenticates as a user](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user), the message can't contain cards. [Card builder](https://addons.gsuite.google.com/uikit/builder)", "id": "CardWithId", "properties": { "card": { @@ -1409,8 +1546,7 @@ "SHEETS", "SLIDES", "DRAWINGS", - "CHAT", - "CHAT_IN_GMAIL" + "CHAT" ], "enumDescriptions": [ "Google can't identify a host app.", @@ -1423,8 +1559,7 @@ "The add-on launches from Google Sheets.", "The add-on launches from Google Slides.", "The add-on launches from Google Drawings.", - "A Google Chat app. Not used for Google Workspace Add-ons.", - "The add-on or appfinder widget launches from Chat-in-Gmail" + "A Google Chat app. Not used for Google Workspace Add-ons." ], "type": "string" }, @@ -1473,6 +1608,7 @@ "type": "object" }, "CompleteImportSpaceResponse": { + "description": "Response message for completing the import process for a space.", "id": "CompleteImportSpaceResponse", "properties": { "space": { @@ -1555,23 +1691,23 @@ "type": "object" }, "DeprecatedEvent": { - "description": "A Google Chat app interaction event. To learn about interaction events, see [Receive and respond to interactions with your Google Chat app](https://developers.google.com/chat/api/guides/message-formats). To learn about event types and for example event payloads, see [Types of Google Chat app interaction events](https://developers.google.com/chat/api/guides/message-formats/events).", + "description": "A Google Chat app interaction event. To learn about interaction events, see [Receive and respond to interactions with your Google Chat app](https://developers.google.com/workspace/chat/api/guides/message-formats). To learn about event types and for example event payloads, see [Types of Google Chat app interaction events](https://developers.google.com/workspace/chat/events). In addition to receiving events from user interactions, Chat apps can receive events about changes to spaces, such as when a new member is added to a space. To learn about space events, see [Work with events from Google Chat](https://developers.google.com/workspace/chat/events-overview).", "id": "DeprecatedEvent", "properties": { "action": { "$ref": "FormAction", - "description": "For `CARD_CLICKED` interaction events, the form action data associated when a user clicks a card or dialog. To learn more, see [Read form data input by users on cards](https://developers.google.com/chat/ui/read-form-data)." + "description": "For `CARD_CLICKED` interaction events, the form action data associated when a user clicks a card or dialog. To learn more, see [Read form data input by users on cards](https://developers.google.com/workspace/chat/read-form-data)." }, "common": { "$ref": "CommonEventObject", - "description": "Represents information about the user's client, such as locale, host app, and platform. For Chat apps, `CommonEventObject` includes information submitted by users interacting with [dialogs](https://developers.google.com/chat/how-tos/dialogs), like data entered on a card." + "description": "Represents information about the user's client, such as locale, host app, and platform. For Chat apps, `CommonEventObject` includes information submitted by users interacting with [dialogs](https://developers.google.com/workspace/chat/dialogs), like data entered on a card." }, "configCompleteRedirectUrl": { - "description": "The URL the Chat app should redirect the user to after they have completed an authorization or configuration flow outside of Google Chat. For more information, see [Connect a Chat app with other services & tools](https://developers.google.com/chat/how-tos/connect-web-services-tools).", + "description": "The URL the Chat app should redirect the user to after they have completed an authorization or configuration flow outside of Google Chat. For more information, see [Connect a Chat app with other services & tools](https://developers.google.com/workspace/chat/connect-web-services-tools).", "type": "string" }, "dialogEventType": { - "description": "The type of [dialog](https://developers.google.com/chat/how-tos/dialogs) interaction event received.", + "description": "The type of [dialog](https://developers.google.com/workspace/chat/dialogs) interaction event received.", "enum": [ "TYPE_UNSPECIFIED", "REQUEST_DIALOG", @@ -1592,7 +1728,7 @@ "type": "string" }, "isDialogEvent": { - "description": "For `CARD_CLICKED` interaction events, whether the user interacted with a [dialog](https://developers.google.com/chat/how-tos/dialogs).", + "description": "For `CARD_CLICKED` interaction events, whether the user interacted with a [dialog](https://developers.google.com/workspace/chat/dialogs).", "type": "boolean" }, "message": { @@ -1612,7 +1748,7 @@ "type": "string" }, "type": { - "description": "The type of interaction event. For details, see [Types of Google Chat app interaction events](https://developers.google.com/chat/api/guides/message-formats/events).", + "description": "The type of interaction event. For details, see [Types of Google Chat app interaction events](https://developers.google.com/workspace/chat/events).", "enum": [ "UNSPECIFIED", "MESSAGE", @@ -1626,7 +1762,7 @@ "A user sends the Chat app a message, or invokes the Chat app in a space.", "A user adds the Chat app to a space, or a Google Workspace administrator installs the Chat app in direct message spaces for users in their organization.", "A user removes the Chat app from a space.", - "A user clicks an interactive element of a card or dialog from a Chat app, such as a button. If a user interacts with a dialog, the `CARD_CLICKED` interaction event's `isDialogEvent` field is set to `true` and includes a [`DialogEventType`](https://developers.google.com/chat/api/reference/rest/v1/DialogEventType).", + "A user clicks an interactive element of a card or dialog from a Chat app, such as a button. If a user interacts with a dialog, the `CARD_CLICKED` interaction event's `isDialogEvent` field is set to `true` and includes a [`DialogEventType`](https://developers.google.com/workspace/chat/api/reference/rest/v1/DialogEventType).", "A user updates a widget in a card message or dialog." ], "type": "string" @@ -1650,16 +1786,16 @@ "type": "object" }, "DialogAction": { - "description": "Contains a [dialog](https://developers.google.com/chat/how-tos/dialogs) and request status code.", + "description": "Contains a [dialog](https://developers.google.com/workspace/chat/dialogs) and request status code.", "id": "DialogAction", "properties": { "actionStatus": { "$ref": "ActionStatus", - "description": "Input only. Status for a request to either invoke or submit a [dialog](https://developers.google.com/chat/how-tos/dialogs). Displays a status and message to users, if necessary. For example, in case of an error or success." + "description": "Input only. Status for a request to either invoke or submit a [dialog](https://developers.google.com/workspace/chat/dialogs). Displays a status and message to users, if necessary. For example, in case of an error or success." }, "dialog": { "$ref": "Dialog", - "description": "Input only. [Dialog](https://developers.google.com/chat/how-tos/dialogs) for the request." + "description": "Input only. [Dialog](https://developers.google.com/workspace/chat/dialogs) for the request." } }, "type": "object" @@ -1675,6 +1811,21 @@ }, "type": "object" }, + "DriveLinkData": { + "description": "Data for Google Drive links.", + "id": "DriveLinkData", + "properties": { + "driveDataRef": { + "$ref": "DriveDataRef", + "description": "A [DriveDataRef](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.messages.attachments#drivedataref) which references a Google Drive file." + }, + "mimeType": { + "description": "The mime type of the linked Google Drive resource.", + "type": "string" + } + }, + "type": "object" + }, "Emoji": { "description": "An emoji that is used as a reaction to a message.", "id": "Emoji", @@ -1736,18 +1887,18 @@ "id": "GoogleAppsCardV1Action", "properties": { "function": { - "description": "A custom function to invoke when the containing element is clicked or othrwise activated. For example usage, see [Create interactive cards](https://developers.google.com/chat/how-tos/cards-onclick).", + "description": "A custom function to invoke when the containing element is clicked or otherwise activated. For example usage, see [Read form data](https://developers.google.com/workspace/chat/read-form-data).", "type": "string" }, "interaction": { - "description": "Optional. Required when opening a [dialog](https://developers.google.com/chat/how-tos/dialogs). What to do in response to an interaction with a user, such as a user clicking a button in a card message. If unspecified, the app responds by executing an `action`\u2014like opening a link or running a function\u2014as normal. By specifying an `interaction`, the app can respond in special interactive ways. For example, by setting `interaction` to `OPEN_DIALOG`, the app can open a [dialog](https://developers.google.com/chat/how-tos/dialogs). When specified, a loading indicator isn't shown. If specified for an add-on, the entire card is stripped and nothing is shown in the client. [Google Chat apps](https://developers.google.com/workspace/chat):", + "description": "Optional. Required when opening a [dialog](https://developers.google.com/workspace/chat/dialogs). What to do in response to an interaction with a user, such as a user clicking a button in a card message. If unspecified, the app responds by executing an `action`\u2014like opening a link or running a function\u2014as normal. By specifying an `interaction`, the app can respond in special interactive ways. For example, by setting `interaction` to `OPEN_DIALOG`, the app can open a [dialog](https://developers.google.com/workspace/chat/dialogs). When specified, a loading indicator isn't shown. If specified for an add-on, the entire card is stripped and nothing is shown in the client. [Google Chat apps](https://developers.google.com/workspace/chat):", "enum": [ "INTERACTION_UNSPECIFIED", "OPEN_DIALOG" ], "enumDescriptions": [ "Default value. The `action` executes as normal.", - "Opens a [dialog](https://developers.google.com/chat/how-tos/dialogs), a windowed, card-based interface that Chat apps use to interact with users. Only supported by Chat apps in response to button-clicks on card messages. If specified for an add-on, the entire card is stripped and nothing is shown in the client. [Google Chat apps](https://developers.google.com/workspace/chat):" + "Opens a [dialog](https://developers.google.com/workspace/chat/dialogs), a windowed, card-based interface that Chat apps use to interact with users. Only supported by Chat apps in response to button-clicks on card messages. If specified for an add-on, the entire card is stripped and nothing is shown in the client. [Google Chat apps](https://developers.google.com/workspace/chat):" ], "type": "string" }, @@ -1771,14 +1922,14 @@ "type": "array" }, "persistValues": { - "description": "Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. To let the user make changes while the action is being processed, set [`LoadIndicator`](https://developers.google.com/workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) to `NONE`. For [card messages](https://developers.google.com/chat/api/guides/v1/messages/create#create) in Chat apps, you must also set the action's [`ResponseType`](https://developers.google.com/chat/api/reference/rest/v1/spaces.messages#responsetype) to `UPDATE_MESSAGE` and use the same [`card_id`](https://developers.google.com/chat/api/reference/rest/v1/spaces.messages#CardWithId) from the card that contained the action. If `false`, the form values are cleared when the action is triggered. To prevent the user from making changes while the action is being processed, set [`LoadIndicator`](https://developers.google.com/workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) to `SPINNER`.", + "description": "Indicates whether form values persist after the action. The default value is `false`. If `true`, form values remain after the action is triggered. To let the user make changes while the action is being processed, set [`LoadIndicator`](https://developers.google.com/workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) to `NONE`. For [card messages](https://developers.google.com/workspace/chat/api/guides/v1/messages/create#create) in Chat apps, you must also set the action's [`ResponseType`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.messages#responsetype) to `UPDATE_MESSAGE` and use the same [`card_id`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.messages#CardWithId) from the card that contained the action. If `false`, the form values are cleared when the action is triggered. To prevent the user from making changes while the action is being processed, set [`LoadIndicator`](https://developers.google.com/workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) to `SPINNER`.", "type": "boolean" } }, "type": "object" }, "GoogleAppsCardV1ActionParameter": { - "description": "List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze one day, or snooze next week. You might use `action method = snooze()`, passing the snooze type and snooze time in the list of string parameters. To learn more, see [`CommonEventObject`](https://developers.google.com/chat/api/reference/rest/v1/Event#commoneventobject). [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend):", + "description": "List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze one day, or snooze next week. You might use `action method = snooze()`, passing the snooze type and snooze time in the list of string parameters. To learn more, see [`CommonEventObject`](https://developers.google.com/workspace/chat/api/reference/rest/v1/Event#commoneventobject). [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend):", "id": "GoogleAppsCardV1ActionParameter", "properties": { "key": { @@ -1823,11 +1974,11 @@ "type": "object" }, "GoogleAppsCardV1Button": { - "description": "A text, icon, or text and icon button that users can click. For an example in Google Chat apps, see [Button list](https://developers.google.com/chat/ui/widgets/button-list). To make an image a clickable button, specify an `Image` (not an `ImageComponent`) and set an `onClick` action. [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend):", + "description": "A text, icon, or text and icon button that users can click. For an example in Google Chat apps, see [Add a button](https://developers.google.com/workspace/chat/design-interactive-card-dialog#add_a_button). To make an image a clickable button, specify an `Image` (not an `ImageComponent`) and set an `onClick` action. [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend):", "id": "GoogleAppsCardV1Button", "properties": { "altText": { - "description": "The alternative text that's used for accessibility. Set descriptive text that lets users know what the button does. For example, if a button opens a hyperlink, you might write: \"Opens a new browser tab and navigates to the Google Chat developer documentation at https://developers.google.com/chat\".", + "description": "The alternative text that's used for accessibility. Set descriptive text that lets users know what the button does. For example, if a button opens a hyperlink, you might write: \"Opens a new browser tab and navigates to the Google Chat developer documentation at https://developers.google.com/workspace/chat\".", "type": "string" }, "color": { @@ -1854,7 +2005,7 @@ "type": "object" }, "GoogleAppsCardV1ButtonList": { - "description": "A list of buttons layed out horizontally. For an example in Google Chat apps, see [Button list](https://developers.google.com/chat/ui/widgets/button-list). [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend):", + "description": "A list of buttons layed out horizontally. For an example in Google Chat apps, see [Add a button](https://developers.google.com/workspace/chat/design-interactive-card-dialog#add_a_button). [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend):", "id": "GoogleAppsCardV1ButtonList", "properties": { "buttons": { @@ -1868,7 +2019,7 @@ "type": "object" }, "GoogleAppsCardV1Card": { - "description": "A card interface displayed in a Google Chat message or Google Workspace Add-on. Cards support a defined layout, interactive UI elements like buttons, and rich media like images. Use cards to present detailed information, gather information from users, and guide users to take a next step. [Card builder](https://addons.gsuite.google.com/uikit/builder) To learn how to build cards, see the following documentation: * For Google Chat apps, see [Design dynamic, interactive, and consistent UIs with cards](https://developers.google.com/chat/ui). * For Google Workspace Add-ons, see [Card-based interfaces](https://developers.google.com/apps-script/add-ons/concepts/cards). **Example: Card message for a Google Chat app** ![Example contact card](https://developers.google.com/chat/images/card_api_reference.png) To create the sample card message in Google Chat, use the following JSON: ``` { \"cardsV2\": [ { \"cardId\": \"unique-card-id\", \"card\": { \"header\": { \"title\": \"Sasha\", \"subtitle\": \"Software Engineer\", \"imageUrl\": \"https://developers.google.com/chat/images/quickstart-app-avatar.png\", \"imageType\": \"CIRCLE\", \"imageAltText\": \"Avatar for Sasha\", }, \"sections\": [ { \"header\": \"Contact Info\", \"collapsible\": true, \"uncollapsibleWidgetsCount\": 1, \"widgets\": [ { \"decoratedText\": { \"startIcon\": { \"knownIcon\": \"EMAIL\", }, \"text\": \"sasha@example.com\", } }, { \"decoratedText\": { \"startIcon\": { \"knownIcon\": \"PERSON\", }, \"text\": \"Online\", }, }, { \"decoratedText\": { \"startIcon\": { \"knownIcon\": \"PHONE\", }, \"text\": \"+1 (555) 555-1234\", } }, { \"buttonList\": { \"buttons\": [ { \"text\": \"Share\", \"onClick\": { \"openLink\": { \"url\": \"https://example.com/share\", } } }, { \"text\": \"Edit\", \"onClick\": { \"action\": { \"function\": \"goToView\", \"parameters\": [ { \"key\": \"viewType\", \"value\": \"EDIT\", } ], } } }, ], } }, ], }, ], }, } ], } ```", + "description": "A card interface displayed in a Google Chat message or Google Workspace Add-on. Cards support a defined layout, interactive UI elements like buttons, and rich media like images. Use cards to present detailed information, gather information from users, and guide users to take a next step. [Card builder](https://addons.gsuite.google.com/uikit/builder) To learn how to build cards, see the following documentation: * For Google Chat apps, see [Design the components of a card or dialog](https://developers.google.com/workspace/chat/design-components-card-dialog). * For Google Workspace Add-ons, see [Card-based interfaces](https://developers.google.com/apps-script/add-ons/concepts/cards). **Example: Card message for a Google Chat app** ![Example contact card](https://developers.google.com/workspace/chat/images/card_api_reference.png) To create the sample card message in Google Chat, use the following JSON: ``` { \"cardsV2\": [ { \"cardId\": \"unique-card-id\", \"card\": { \"header\": { \"title\": \"Sasha\", \"subtitle\": \"Software Engineer\", \"imageUrl\": \"https://developers.google.com/workspace/chat/images/quickstart-app-avatar.png\", \"imageType\": \"CIRCLE\", \"imageAltText\": \"Avatar for Sasha\" }, \"sections\": [ { \"header\": \"Contact Info\", \"collapsible\": true, \"uncollapsibleWidgetsCount\": 1, \"widgets\": [ { \"decoratedText\": { \"startIcon\": { \"knownIcon\": \"EMAIL\" }, \"text\": \"sasha@example.com\" } }, { \"decoratedText\": { \"startIcon\": { \"knownIcon\": \"PERSON\" }, \"text\": \"Online\" } }, { \"decoratedText\": { \"startIcon\": { \"knownIcon\": \"PHONE\" }, \"text\": \"+1 (555) 555-1234\" } }, { \"buttonList\": { \"buttons\": [ { \"text\": \"Share\", \"onClick\": { \"openLink\": { \"url\": \"https://example.com/share\" } } }, { \"text\": \"Edit\", \"onClick\": { \"action\": { \"function\": \"goToView\", \"parameters\": [ { \"key\": \"viewType\", \"value\": \"EDIT\" } ] } } } ] } } ] } ] } } ] } ```", "id": "GoogleAppsCardV1Card", "properties": { "cardActions": { @@ -1894,7 +2045,7 @@ }, "fixedFooter": { "$ref": "GoogleAppsCardV1CardFixedFooter", - "description": "The fixed footer shown at the bottom of this card. Setting `fixedFooter` without specifying a `primaryButton` or a `secondaryButton` causes an error. For Chat apps, you can use fixed footers in [dialogs](https://developers.google.com/chat/how-tos/dialogs), but not [card messages](https://developers.google.com/chat/api/guides/v1/messages/create#create). [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend):" + "description": "The fixed footer shown at the bottom of this card. Setting `fixedFooter` without specifying a `primaryButton` or a `secondaryButton` causes an error. For Chat apps, you can use fixed footers in [dialogs](https://developers.google.com/workspace/chat/dialogs), but not [card messages](https://developers.google.com/workspace/chat/create-messages#create). [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend):" }, "header": { "$ref": "GoogleAppsCardV1CardHeader", @@ -1923,7 +2074,7 @@ "type": "string" }, "sections": { - "description": "Contains a collection of widgets. Each section has its own, optional header. Sections are visually separated by a line divider. For an example in Google Chat apps, see [Card section](https://developers.google.com/chat/ui/widgets/card-section).", + "description": "Contains a collection of widgets. Each section has its own, optional header. Sections are visually separated by a line divider. For an example in Google Chat apps, see [Define a section of a card](https://developers.google.com/workspace/chat/design-components-card-dialog#define_a_section_of_a_card).", "items": { "$ref": "GoogleAppsCardV1Section" }, @@ -1948,7 +2099,7 @@ "type": "object" }, "GoogleAppsCardV1CardFixedFooter": { - "description": "A persistent (sticky) footer that that appears at the bottom of the card. Setting `fixedFooter` without specifying a `primaryButton` or a `secondaryButton` causes an error. For Chat apps, you can use fixed footers in [dialogs](https://developers.google.com/chat/how-tos/dialogs), but not [card messages](https://developers.google.com/chat/api/guides/v1/messages/create#create). For an example in Google Chat apps, see [Card footer](https://developers.google.com/chat/ui/widgets/card-fixed-footer). [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend):", + "description": "A persistent (sticky) footer that that appears at the bottom of the card. Setting `fixedFooter` without specifying a `primaryButton` or a `secondaryButton` causes an error. For Chat apps, you can use fixed footers in [dialogs](https://developers.google.com/workspace/chat/dialogs), but not [card messages](https://developers.google.com/workspace/chat/create-messages#create). For an example in Google Chat apps, see [Add a persistent footer](https://developers.google.com/workspace/chat/design-components-card-dialog#add_a_persistent_footer). [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend):", "id": "GoogleAppsCardV1CardFixedFooter", "properties": { "primaryButton": { @@ -1963,7 +2114,7 @@ "type": "object" }, "GoogleAppsCardV1CardHeader": { - "description": "Represents a card header. For an example in Google Chat apps, see [Card header](https://developers.google.com/chat/ui/widgets/card-header). [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend):", + "description": "Represents a card header. For an example in Google Chat apps, see [Add a header](https://developers.google.com/workspace/chat/design-components-card-dialog#add_a_header). [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend):", "id": "GoogleAppsCardV1CardHeader", "properties": { "imageAltText": { @@ -2058,7 +2209,7 @@ "type": "object" }, "GoogleAppsCardV1Columns": { - "description": "The `Columns` widget displays up to 2 columns in a card or dialog. You can add widgets to each column; the widgets appear in the order that they are specified. For an example in Google Chat apps, see [Columns](https://developers.google.com/chat/ui/widgets/columns). The height of each column is determined by the taller column. For example, if the first column is taller than the second column, both columns have the height of the first column. Because each column can contain a different number of widgets, you can't define rows or align widgets between the columns. Columns are displayed side-by-side. You can customize the width of each column using the `HorizontalSizeStyle` field. If the user's screen width is too narrow, the second column wraps below the first: * On web, the second column wraps if the screen width is less than or equal to 480 pixels. * On iOS devices, the second column wraps if the screen width is less than or equal to 300 pt. * On Android devices, the second column wraps if the screen width is less than or equal to 320 dp. To include more than 2 columns, or to use rows, use the `Grid` widget. [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend): Columns for Google Workspace Add-ons are in Developer Preview.", + "description": "The `Columns` widget displays up to 2 columns in a card or dialog. You can add widgets to each column; the widgets appear in the order that they are specified. For an example in Google Chat apps, see [Display cards and dialogs in columns](https://developers.google.com/workspace/chat/format-structure-card-dialog#display_cards_and_dialogs_in_columns). The height of each column is determined by the taller column. For example, if the first column is taller than the second column, both columns have the height of the first column. Because each column can contain a different number of widgets, you can't define rows or align widgets between the columns. Columns are displayed side-by-side. You can customize the width of each column using the `HorizontalSizeStyle` field. If the user's screen width is too narrow, the second column wraps below the first: * On web, the second column wraps if the screen width is less than or equal to 480 pixels. * On iOS devices, the second column wraps if the screen width is less than or equal to 300 pt. * On Android devices, the second column wraps if the screen width is less than or equal to 320 dp. To include more than 2 columns, or to use rows, use the `Grid` widget. [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend): Columns for Google Workspace Add-ons are in Developer Preview.", "id": "GoogleAppsCardV1Columns", "properties": { "columnItems": { @@ -2072,7 +2223,7 @@ "type": "object" }, "GoogleAppsCardV1DateTimePicker": { - "description": "Lets users input a date, a time, or both a date and a time. For an example in Google Chat apps, see [Date time picker](https://developers.google.com/chat/ui/widgets/date-time-picker). Users can input text or use the picker to select dates and times. If users input an invalid date or time, the picker shows an error that prompts users to input the information correctly. [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend):", + "description": "Lets users input a date, a time, or both a date and a time. For an example in Google Chat apps, see [Let a user pick a date and time](https://developers.google.com/workspace/chat/design-interactive-card-dialog#let_a_user_pick_a_date_and_time). Users can input text or use the picker to select dates and times. If users input an invalid date or time, the picker shows an error that prompts users to input the information correctly. [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend):", "id": "GoogleAppsCardV1DateTimePicker", "properties": { "label": { @@ -2080,7 +2231,7 @@ "type": "string" }, "name": { - "description": "The name by which the `DateTimePicker` is identified in a form input event. For details about working with form inputs, see [Receive form data](https://developers.google.com/chat/ui/read-form-data).", + "description": "The name by which the `DateTimePicker` is identified in a form input event. For details about working with form inputs, see [Receive form data](https://developers.google.com/workspace/chat/read-form-data).", "type": "string" }, "onChangeAction": { @@ -2115,7 +2266,7 @@ "type": "object" }, "GoogleAppsCardV1DecoratedText": { - "description": "A widget that displays text with optional decorations such as a label above or below the text, an icon in front of the text, a selection widget, or a button after the text. For an example in Google Chat apps, see [Decorated text](https://developers.google.com/chat/ui/widgets/decorated-text). [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend):", + "description": "A widget that displays text with optional decorations such as a label above or below the text, an icon in front of the text, a selection widget, or a button after the text. For an example in Google Chat apps, see [Display text with decorative text](https://developers.google.com/workspace/chat/add-text-image-card-dialog#display_text_with_decorative_elements). [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend):", "id": "GoogleAppsCardV1DecoratedText", "properties": { "bottomLabel": { @@ -2128,7 +2279,7 @@ }, "endIcon": { "$ref": "GoogleAppsCardV1Icon", - "description": "An icon displayed after the text. Supports [built-in](https://developers.google.com/chat/format-messages#builtinicons) and [custom](https://developers.google.com/chat/format-messages#customicons) icons." + "description": "An icon displayed after the text. Supports [built-in](https://developers.google.com/workspace/chat/format-messages#builtinicons) and [custom](https://developers.google.com/workspace/chat/format-messages#customicons) icons." }, "icon": { "$ref": "GoogleAppsCardV1Icon", @@ -2148,7 +2299,7 @@ "description": "A switch widget that a user can click to change its state and trigger an action." }, "text": { - "description": "Required. The primary text. Supports simple formatting. For more information about formatting text, see [Formatting text in Google Chat apps](https://developers.google.com/chat/format-messages#card-formatting) and [Formatting text in Google Workspace Add-ons](https://developers.google.com/apps-script/add-ons/concepts/widgets#text_formatting).", + "description": "Required. The primary text. Supports simple formatting. For more information about formatting text, see [Formatting text in Google Chat apps](https://developers.google.com/workspace/chat/format-messages#card-formatting) and [Formatting text in Google Workspace Add-ons](https://developers.google.com/apps-script/add-ons/concepts/widgets#text_formatting).", "type": "string" }, "topLabel": { @@ -2163,13 +2314,13 @@ "type": "object" }, "GoogleAppsCardV1Divider": { - "description": "Displays a divider between widgets as a horizontal line. For an example in Google Chat apps, see [Divider](https://developers.google.com/chat/ui/widgets/divider). [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend): For example, the following JSON creates a divider: ``` \"divider\": {} ```", + "description": "Displays a divider between widgets as a horizontal line. For an example in Google Chat apps, see [Add a horizontal divider between widgets](https://developers.google.com/workspace/chat/format-structure-card-dialog#add_a_horizontal_divider_between_widgets). [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend): For example, the following JSON creates a divider: ``` \"divider\": {} ```", "id": "GoogleAppsCardV1Divider", "properties": {}, "type": "object" }, "GoogleAppsCardV1Grid": { - "description": "Displays a grid with a collection of items. Items can only include text or images. For responsive columns, or to include more than text or images, use `Columns`. For an example in Google Chat apps, see [Grid](https://developers.google.com/chat/ui/widgets/grid). A grid supports any number of columns and items. The number of rows is determined by items divided by columns. A grid with 10 items and 2 columns has 5 rows. A grid with 11 items and 2 columns has 6 rows. [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend): For example, the following JSON creates a 2 column grid with a single item: ``` \"grid\": { \"title\": \"A fine collection of items\", \"columnCount\": 2, \"borderStyle\": { \"type\": \"STROKE\", \"cornerRadius\": 4 }, \"items\": [ { \"image\": { \"imageUri\": \"https://www.example.com/image.png\", \"cropStyle\": { \"type\": \"SQUARE\" }, \"borderStyle\": { \"type\": \"STROKE\" } }, \"title\": \"An item\", \"textAlignment\": \"CENTER\" } ], \"onClick\": { \"openLink\": { \"url\": \"https://www.example.com\" } } } ```", + "description": "Displays a grid with a collection of items. Items can only include text or images. For responsive columns, or to include more than text or images, use `Columns`. For an example in Google Chat apps, see [Display a Grid with a collection of items](https://developers.google.com/workspace/chat/format-structure-card-dialog#display_a_grid_with_a_collection_of_items). A grid supports any number of columns and items. The number of rows is determined by items divided by columns. A grid with 10 items and 2 columns has 5 rows. A grid with 11 items and 2 columns has 6 rows. [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend): For example, the following JSON creates a 2 column grid with a single item: ``` \"grid\": { \"title\": \"A fine collection of items\", \"columnCount\": 2, \"borderStyle\": { \"type\": \"STROKE\", \"cornerRadius\": 4 }, \"items\": [ { \"image\": { \"imageUri\": \"https://www.example.com/image.png\", \"cropStyle\": { \"type\": \"SQUARE\" }, \"borderStyle\": { \"type\": \"STROKE\" } }, \"title\": \"An item\", \"textAlignment\": \"CENTER\" } ], \"onClick\": { \"openLink\": { \"url\": \"https://www.example.com\" } } } ```", "id": "GoogleAppsCardV1Grid", "properties": { "borderStyle": { @@ -2237,15 +2388,15 @@ "type": "object" }, "GoogleAppsCardV1Icon": { - "description": "An icon displayed in a widget on a card. For an example in Google Chat apps, see [Icon](https://developers.google.com/chat/ui/widgets/icon). Supports [built-in](https://developers.google.com/chat/format-messages#builtinicons) and [custom](https://developers.google.com/chat/format-messages#customicons) icons. [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend):", + "description": "An icon displayed in a widget on a card. For an example in Google Chat apps, see [Add an icon](https://developers.google.com/workspace/chat/add-text-image-card-dialog#add_an_icon). Supports [built-in](https://developers.google.com/workspace/chat/format-messages#builtinicons) and [custom](https://developers.google.com/workspace/chat/format-messages#customicons) icons. [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend):", "id": "GoogleAppsCardV1Icon", "properties": { "altText": { - "description": "Optional. A description of the icon used for accessibility. If unspecified, the default value `Button` is provided. As a best practice, you should set a helpful description for what the icon displays, and if applicable, what it does. For example, `A user's account portrait`, or `Opens a new browser tab and navigates to the Google Chat developer documentation at https://developers.google.com/chat`. If the icon is set in a `Button`, the `altText` appears as helper text when the user hovers over the button. However, if the button also sets `text`, the icon's `altText` is ignored.", + "description": "Optional. A description of the icon used for accessibility. If unspecified, the default value `Button` is provided. As a best practice, you should set a helpful description for what the icon displays, and if applicable, what it does. For example, `A user's account portrait`, or `Opens a new browser tab and navigates to the Google Chat developer documentation at https://developers.google.com/workspace/chat`. If the icon is set in a `Button`, the `altText` appears as helper text when the user hovers over the button. However, if the button also sets `text`, the icon's `altText` is ignored.", "type": "string" }, "iconUrl": { - "description": "Display a custom icon hosted at an HTTPS URL. For example: ``` \"iconUrl\": \"https://developers.google.com/chat/images/quickstart-app-avatar.png\" ``` Supported file types include `.png` and `.jpg`.", + "description": "Display a custom icon hosted at an HTTPS URL. For example: ``` \"iconUrl\": \"https://developers.google.com/workspace/chat/images/quickstart-app-avatar.png\" ``` Supported file types include `.png` and `.jpg`.", "type": "string" }, "imageType": { @@ -2261,14 +2412,18 @@ "type": "string" }, "knownIcon": { - "description": "Display one of the built-in icons provided by Google Workspace. For example, to display an airplane icon, specify `AIRPLANE`. For a bus, specify `BUS`. For a full list of supported icons, see [built-in icons](https://developers.google.com/chat/format-messages#builtinicons).", + "description": "Display one of the built-in icons provided by Google Workspace. For example, to display an airplane icon, specify `AIRPLANE`. For a bus, specify `BUS`. For a full list of supported icons, see [built-in icons](https://developers.google.com/workspace/chat/format-messages#builtinicons).", "type": "string" + }, + "materialIcon": { + "$ref": "GoogleAppsCardV1MaterialIcon", + "description": "Display one of the [Google Material Icons](https://fonts.google.com/icons). For example, to display a [checkbox icon](https://fonts.google.com/icons?selected=Material%20Symbols%20Outlined%3Acheck_box%3AFILL%400%3Bwght%40400%3BGRAD%400%3Bopsz%4048), use ``` \"material_icon\": { \"name\": \"check_box\" } ``` [Google Chat apps](https://developers.google.com/workspace/chat):" } }, "type": "object" }, "GoogleAppsCardV1Image": { - "description": "An image that is specified by a URL and can have an `onClick` action. For an example, see [Image](https://developers.google.com/chat/ui/widgets/image). [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend):", + "description": "An image that is specified by a URL and can have an `onClick` action. For an example, see [Add an image](https://developers.google.com/workspace/chat/add-text-image-card-dialog#add_an_image). [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend):", "id": "GoogleAppsCardV1Image", "properties": { "altText": { @@ -2276,7 +2431,7 @@ "type": "string" }, "imageUrl": { - "description": "The HTTPS URL that hosts the image. For example: ``` https://developers.google.com/chat/images/quickstart-app-avatar.png ```", + "description": "The HTTPS URL that hosts the image. For example: ``` https://developers.google.com/workspace/chat/images/quickstart-app-avatar.png ```", "type": "string" }, "onClick": { @@ -2339,6 +2494,31 @@ }, "type": "object" }, + "GoogleAppsCardV1MaterialIcon": { + "description": "A [Google Material Icon](https://fonts.google.com/icons), which includes over 2500+ options. For example, to display a [checkbox icon](https://fonts.google.com/icons?selected=Material%20Symbols%20Outlined%3Acheck_box%3AFILL%400%3Bwght%40400%3BGRAD%400%3Bopsz%4048) with customized weight and grade, write the following: ``` { \"name\": \"check_box\", \"fill\": true, \"weight\": 300, \"grade\": -25 } ``` [Google Chat apps](https://developers.google.com/workspace/chat):", + "id": "GoogleAppsCardV1MaterialIcon", + "properties": { + "fill": { + "description": "Whether the icon renders as filled. Default value is false. To preview different icon settings, go to [Google Font Icons](https://fonts.google.com/icons) and adjust the settings under **Customize**.", + "type": "boolean" + }, + "grade": { + "description": "Weight and grade affect a symbol\u2019s thickness. Adjustments to grade are more granular than adjustments to weight and have a small impact on the size of the symbol. Choose from {-25, 0, 200}. If absent, default value is 0. If any other value is specified, the default value is used. To preview different icon settings, go to [Google Font Icons](https://fonts.google.com/icons) and adjust the settings under **Customize**.", + "format": "int32", + "type": "integer" + }, + "name": { + "description": "The icon name defined in the [Google Material Icon](https://fonts.google.com/icons), for example, `check_box`. Any invalid names are abandoned and replaced with empty string and results in the icon failing to render.", + "type": "string" + }, + "weight": { + "description": "The stroke weight of the icon. Choose from {100, 200, 300, 400, 500, 600, 700}. If absent, default value is 400. If any other value is specified, the default value is used. To preview different icon settings, go to [Google Font Icons](https://fonts.google.com/icons) and adjust the settings under **Customize**.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "GoogleAppsCardV1OnClick": { "description": "Represents how to respond when users click an interactive element on a card, such as a button. [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend):", "id": "GoogleAppsCardV1OnClick", @@ -2429,7 +2609,7 @@ "type": "boolean" }, "header": { - "description": "Text that appears at the top of a section. Supports simple HTML formatted text. For more information about formatting text, see [Formatting text in Google Chat apps](https://developers.google.com/chat/format-messages#card-formatting) and [Formatting text in Google Workspace Add-ons](https://developers.google.com/apps-script/add-ons/concepts/widgets#text_formatting).", + "description": "Text that appears at the top of a section. Supports simple HTML formatted text. For more information about formatting text, see [Formatting text in Google Chat apps](https://developers.google.com/workspace/chat/format-messages#card-formatting) and [Formatting text in Google Workspace Add-ons](https://developers.google.com/apps-script/add-ons/concepts/widgets#text_formatting).", "type": "string" }, "uncollapsibleWidgetsCount": { @@ -2448,7 +2628,7 @@ "type": "object" }, "GoogleAppsCardV1SelectionInput": { - "description": "A widget that creates one or more UI items that users can select. For example, a dropdown menu or checkboxes. You can use this widget to collect data that can be predicted or enumerated. For an example in Google Chat apps, see [Selection input](https://developers.google.com/chat/ui/widgets/selection-input). Chat apps can process the value of items that users select or input. For details about working with form inputs, see [Receive form data](https://developers.google.com/chat/ui/read-form-data). To collect undefined or abstract data from users, use the TextInput widget. [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend):", + "description": "A widget that creates one or more UI items that users can select. For example, a dropdown menu or checkboxes. You can use this widget to collect data that can be predicted or enumerated. For an example in Google Chat apps, see [Add selectable UI elements](/workspace/chat/design-interactive-card-dialog#add_selectable_ui_elements). Chat apps can process the value of items that users select or input. For details about working with form inputs, see [Receive form data](https://developers.google.com/workspace/chat/read-form-data). To collect undefined or abstract data from users, use the TextInput widget. [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend):", "id": "GoogleAppsCardV1SelectionInput", "properties": { "externalDataSource": { @@ -2472,17 +2652,17 @@ "type": "integer" }, "multiSelectMinQueryLength": { - "description": "For multiselect menus, the number of text characters that a user inputs before the Chat app queries autocomplete and displays suggested items in the menu. If unspecified, defaults to 0 characters for static data sources and 3 characters for external data sources.", + "description": "For multiselect menus, the number of text characters that a user inputs before the app queries autocomplete and displays suggested items in the menu. If unspecified, defaults to 0 characters for static data sources and 3 characters for external data sources.", "format": "int32", "type": "integer" }, "name": { - "description": "The name that identifies the selection input in a form input event. For details about working with form inputs, see [Receive form data](https://developers.google.com/chat/ui/read-form-data).", + "description": "The name that identifies the selection input in a form input event. For details about working with form inputs, see [Receive form data](https://developers.google.com/workspace/chat/read-form-data).", "type": "string" }, "onChangeAction": { "$ref": "GoogleAppsCardV1Action", - "description": "If specified, the form is submitted when the selection changes. If not specified, you must specify a separate button that submits the form. For details about working with form inputs, see [Receive form data](https://developers.google.com/chat/ui/read-form-data)." + "description": "If specified, the form is submitted when the selection changes. If not specified, you must specify a separate button that submits the form. For details about working with form inputs, see [Receive form data](https://developers.google.com/workspace/chat/read-form-data)." }, "platformDataSource": { "$ref": "GoogleAppsCardV1PlatformDataSource", @@ -2502,7 +2682,7 @@ "A set of radio buttons. Users can select one radio button.", "A set of switches. Users can turn on one or more switches.", "A dropdown menu. Users can select one item from the menu.", - "A multiselect menu for static or dynamic data. From the menu bar, users select one or more items. Users can also input values to populate dynamic data. For example, users can start typing the name of a Google Chat space and the widget autosuggests the space. To populate items for a multiselect menu, you can use one of the following types of data sources: * Static data: Items are specified as `SelectionItem` objects in the widget. Up to 100 items. * Google Workspace data: Items are populated using data from Google Workspace, such as Google Workspace users or Google Chat spaces. * External data: Items are populated from an external data source outside of Google Workspace. For examples of how to implement multiselect menus, see the [`SelectionInput` widget page](https://developers.google.com/chat/ui/widgets/selection-input#multiselect-menu). [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend): Multiselect for Google Workspace Add-ons are in Developer Preview." + "A multiselect menu for static or dynamic data. From the menu bar, users select one or more items. Users can also input values to populate dynamic data. For example, users can start typing the name of a Google Chat space and the widget autosuggests the space. To populate items for a multiselect menu, you can use one of the following types of data sources: * Static data: Items are specified as `SelectionItem` objects in the widget. Up to 100 items. * Google Workspace data: Items are populated using data from Google Workspace, such as Google Workspace users or Google Chat spaces. * External data: Items are populated from an external data source outside of Google Workspace. For examples of how to implement multiselect menus, see [Add a multiselect menu](https://developers.google.com/workspace/chat/design-interactive-card-dialog#multiselect-menu). [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend): Multiselect for Google Workspace Add-ons are in Developer Preview." ], "type": "string" } @@ -2522,7 +2702,7 @@ "type": "boolean" }, "startIconUri": { - "description": "For multiselect menus, the URL for the icon displayed next to the item's `text` field. Supports PNG and JPEG files. Must be an `HTTPS` URL. For example, `https://developers.google.com/chat/images/quickstart-app-avatar.png`.", + "description": "For multiselect menus, the URL for the icon displayed next to the item's `text` field. Supports PNG and JPEG files. Must be an `HTTPS` URL. For example, `https://developers.google.com/workspace/chat/images/quickstart-app-avatar.png`.", "type": "string" }, "text": { @@ -2530,7 +2710,7 @@ "type": "string" }, "value": { - "description": "The value associated with this item. The client should use this as a form input value. For details about working with form inputs, see [Receive form data](https://developers.google.com/chat/ui/read-form-data).", + "description": "The value associated with this item. The client should use this as a form input value. For details about working with form inputs, see [Receive form data](https://developers.google.com/workspace/chat/read-form-data).", "type": "string" } }, @@ -2580,7 +2760,7 @@ "type": "string" }, "name": { - "description": "The name by which the switch widget is identified in a form input event. For details about working with form inputs, see [Receive form data](https://developers.google.com/chat/ui/read-form-data).", + "description": "The name by which the switch widget is identified in a form input event. For details about working with form inputs, see [Receive form data](https://developers.google.com/workspace/chat/read-form-data).", "type": "string" }, "onChangeAction": { @@ -2592,14 +2772,14 @@ "type": "boolean" }, "value": { - "description": "The value entered by a user, returned as part of a form input event. For details about working with form inputs, see [Receive form data](https://developers.google.com/chat/ui/read-form-data).", + "description": "The value entered by a user, returned as part of a form input event. For details about working with form inputs, see [Receive form data](https://developers.google.com/workspace/chat/read-form-data).", "type": "string" } }, "type": "object" }, "GoogleAppsCardV1TextInput": { - "description": "A field in which users can enter text. Supports suggestions and on-change actions. For an example in Google Chat apps, see [Text input](https://developers.google.com/chat/ui/widgets/text-input). Chat apps receive and can process the value of entered text during form input events. For details about working with form inputs, see [Receive form data](https://developers.google.com/chat/ui/read-form-data). When you need to collect undefined or abstract data from users, use a text input. To collect defined or enumerated data from users, use the SelectionInput widget. [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend):", + "description": "A field in which users can enter text. Supports suggestions and on-change actions. For an example in Google Chat apps, see [Add a field in which a user can enter text](https://developers.google.com/workspace/chat/design-interactive-card-dialog#add_a_field_in_which_a_user_can_enter_text). Chat apps receive and can process the value of entered text during form input events. For details about working with form inputs, see [Receive form data](https://developers.google.com/workspace/chat/read-form-data). When you need to collect undefined or abstract data from users, use a text input. To collect defined or enumerated data from users, use the SelectionInput widget. [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend):", "id": "GoogleAppsCardV1TextInput", "properties": { "autoCompleteAction": { @@ -2619,12 +2799,12 @@ "type": "string" }, "name": { - "description": "The name by which the text input is identified in a form input event. For details about working with form inputs, see [Receive form data](https://developers.google.com/chat/ui/read-form-data).", + "description": "The name by which the text input is identified in a form input event. For details about working with form inputs, see [Receive form data](https://developers.google.com/workspace/chat/read-form-data).", "type": "string" }, "onChangeAction": { "$ref": "GoogleAppsCardV1Action", - "description": "What to do when a change occurs in the text input field. For example, a user adding to the field or deleting text. Examples of actions to take include running a custom function or opening a [dialog](https://developers.google.com/chat/how-tos/dialogs) in Google Chat." + "description": "What to do when a change occurs in the text input field. For example, a user adding to the field or deleting text. Examples of actions to take include running a custom function or opening a [dialog](https://developers.google.com/workspace/chat/dialogs) in Google Chat." }, "placeholderText": { "description": "Text that appears in the text input field when the field is empty. Use this text to prompt users to enter a value. For example, `Enter a number from 0 to 100`. [Google Chat apps](https://developers.google.com/workspace/chat):", @@ -2643,14 +2823,14 @@ "type": "string" }, "value": { - "description": "The value entered by a user, returned as part of a form input event. For details about working with form inputs, see [Receive form data](https://developers.google.com/chat/ui/read-form-data).", + "description": "The value entered by a user, returned as part of a form input event. For details about working with form inputs, see [Receive form data](https://developers.google.com/workspace/chat/read-form-data).", "type": "string" } }, "type": "object" }, "GoogleAppsCardV1TextParagraph": { - "description": "A paragraph of text that supports formatting. For an example in Google Chat apps, see [Text paragraph](https://developers.google.com/chat/ui/widgets/text-paragraph). For more information about formatting text, see [Formatting text in Google Chat apps](https://developers.google.com/chat/format-messages#card-formatting) and [Formatting text in Google Workspace Add-ons](https://developers.google.com/apps-script/add-ons/concepts/widgets#text_formatting). [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend):", + "description": "A paragraph of text that supports formatting. For an example in Google Chat apps, see [Add a paragraph of formatted text](https://developers.google.com/workspace/chat/add-text-image-card-dialog#add_a_paragraph_of_formatted_text). For more information about formatting text, see [Formatting text in Google Chat apps](https://developers.google.com/workspace/chat/format-messages#card-formatting) and [Formatting text in Google Workspace Add-ons](https://developers.google.com/apps-script/add-ons/concepts/widgets#text_formatting). [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend):", "id": "GoogleAppsCardV1TextParagraph", "properties": { "text": { @@ -2706,7 +2886,7 @@ }, "image": { "$ref": "GoogleAppsCardV1Image", - "description": "Displays an image. For example, the following JSON creates an image with alternative text: ``` \"image\": { \"imageUrl\": \"https://developers.google.com/chat/images/quickstart-app-avatar.png\", \"altText\": \"Chat app avatar\" } ```" + "description": "Displays an image. For example, the following JSON creates an image with alternative text: ``` \"image\": { \"imageUrl\": \"https://developers.google.com/workspace/chat/images/quickstart-app-avatar.png\", \"altText\": \"Chat app avatar\" } ```" }, "selectionInput": { "$ref": "GoogleAppsCardV1SelectionInput", @@ -2718,7 +2898,7 @@ }, "textParagraph": { "$ref": "GoogleAppsCardV1TextParagraph", - "description": "Displays a text paragraph. Supports simple HTML formatted text. For more information about formatting text, see [Formatting text in Google Chat apps](https://developers.google.com/chat/format-messages#card-formatting) and [Formatting text in Google Workspace Add-ons](https://developers.google.com/apps-script/add-ons/concepts/widgets#text_formatting). For example, the following JSON creates a bolded text: ``` \"textParagraph\": { \"text\": \" *bold text*\" } ```" + "description": "Displays a text paragraph. Supports simple HTML formatted text. For more information about formatting text, see [Formatting text in Google Chat apps](https://developers.google.com/workspace/chat/format-messages#card-formatting) and [Formatting text in Google Workspace Add-ons](https://developers.google.com/apps-script/add-ons/concepts/widgets#text_formatting). For example, the following JSON creates a bolded text: ``` \"textParagraph\": { \"text\": \" *bold text*\" } ```" } }, "type": "object" @@ -2917,7 +3097,7 @@ "id": "KeyValue", "properties": { "bottomLabel": { - "description": "The text of the bottom label. Formatted text supported. For more information about formatting text, see [Formatting text in Google Chat apps](https://developers.google.com/chat/format-messages#card-formatting) and [Formatting text in Google Workspace Add-ons](https://developers.google.com/apps-script/add-ons/concepts/widgets#text_formatting).", + "description": "The text of the bottom label. Formatted text supported. For more information about formatting text, see [Formatting text in Google Chat apps](https://developers.google.com/workspace/chat/format-messages#card-formatting) and [Formatting text in Google Workspace Add-ons](https://developers.google.com/apps-script/add-ons/concepts/widgets#text_formatting).", "type": "string" }, "button": { @@ -2925,7 +3105,7 @@ "description": "A button that can be clicked to trigger an action." }, "content": { - "description": "The text of the content. Formatted text supported and always required. For more information about formatting text, see [Formatting text in Google Chat apps](https://developers.google.com/chat/format-messages#card-formatting) and [Formatting text in Google Workspace Add-ons](https://developers.google.com/apps-script/add-ons/concepts/widgets#text_formatting).", + "description": "The text of the content. Formatted text supported and always required. For more information about formatting text, see [Formatting text in Google Chat apps](https://developers.google.com/workspace/chat/format-messages#card-formatting) and [Formatting text in Google Workspace Add-ons](https://developers.google.com/apps-script/add-ons/concepts/widgets#text_formatting).", "type": "string" }, "contentMultiline": { @@ -3011,13 +3191,14 @@ "description": "The `onclick` action. Only the top label, bottom label, and content region are clickable." }, "topLabel": { - "description": "The text of the top label. Formatted text supported. For more information about formatting text, see [Formatting text in Google Chat apps](https://developers.google.com/chat/format-messages#card-formatting) and [Formatting text in Google Workspace Add-ons](https://developers.google.com/apps-script/add-ons/concepts/widgets#text_formatting).", + "description": "The text of the top label. Formatted text supported. For more information about formatting text, see [Formatting text in Google Chat apps](https://developers.google.com/workspace/chat/format-messages#card-formatting) and [Formatting text in Google Workspace Add-ons](https://developers.google.com/apps-script/add-ons/concepts/widgets#text_formatting).", "type": "string" } }, "type": "object" }, "ListMembershipsResponse": { + "description": "Response to list memberships of the space.", "id": "ListMembershipsResponse", "properties": { "memberships": { @@ -3035,6 +3216,7 @@ "type": "object" }, "ListMessagesResponse": { + "description": "Response message for listing messages.", "id": "ListMessagesResponse", "properties": { "messages": { @@ -3052,6 +3234,7 @@ "type": "object" }, "ListReactionsResponse": { + "description": "Response to a list reactions request.", "id": "ListReactionsResponse", "properties": { "nextPageToken": { @@ -3068,7 +3251,26 @@ }, "type": "object" }, + "ListSpaceEventsResponse": { + "description": "Response message for listing space events.", + "id": "ListSpaceEventsResponse", + "properties": { + "nextPageToken": { + "description": "Continuation token used to fetch more events. If this field is omitted, there are no subsequent pages.", + "type": "string" + }, + "spaceEvents": { + "description": "Results are returned in chronological order (oldest event first).", + "items": { + "$ref": "SpaceEvent" + }, + "type": "array" + } + }, + "type": "object" + }, "ListSpacesResponse": { + "description": "The response for a list spaces request.", "id": "ListSpacesResponse", "properties": { "nextPageToken": { @@ -3128,14 +3330,14 @@ }, "member": { "$ref": "User", - "description": "The Google Chat user or app the membership corresponds to. If your Chat app [authenticates as a user](https://developers.google.com/chat/api/guides/auth/users), the output populates the [user](https://developers.google.com/chat/api/reference/rest/v1/User) `name` and `type`." + "description": "The Google Chat user or app the membership corresponds to. If your Chat app [authenticates as a user](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user), the output populates the [user](https://developers.google.com/workspace/chat/api/reference/rest/v1/User) `name` and `type`." }, "name": { "description": "Resource name of the membership, assigned by the server. Format: `spaces/{space}/members/{member}`", "type": "string" }, "role": { - "description": "Optional. User's role within a Chat space, which determines their permitted actions in the space. [Developer Preview](https://developers.google.com/workspace/preview): This field can only be used as input in `UpdateMembership`.", + "description": "Optional. User's role within a Chat space, which determines their permitted actions in the space. This field can only be used as input in `UpdateMembership`.", "enum": [ "MEMBERSHIP_ROLE_UNSPECIFIED", "ROLE_MEMBER", @@ -3168,10 +3370,92 @@ }, "type": "object" }, + "MembershipBatchCreatedEventData": { + "description": "Event payload for multiple new memberships. Event type: `google.workspace.chat.membership.v1.batchCreated`", + "id": "MembershipBatchCreatedEventData", + "properties": { + "memberships": { + "description": "A list of new memberships.", + "items": { + "$ref": "MembershipCreatedEventData" + }, + "type": "array" + } + }, + "type": "object" + }, + "MembershipBatchDeletedEventData": { + "description": "Event payload for multiple deleted memberships. Event type: `google.workspace.chat.membership.v1.batchDeleted`", + "id": "MembershipBatchDeletedEventData", + "properties": { + "memberships": { + "description": "A list of deleted memberships.", + "items": { + "$ref": "MembershipDeletedEventData" + }, + "type": "array" + } + }, + "type": "object" + }, + "MembershipBatchUpdatedEventData": { + "description": "Event payload for multiple updated memberships. Event type: `google.workspace.chat.membership.v1.batchUpdated`", + "id": "MembershipBatchUpdatedEventData", + "properties": { + "memberships": { + "description": "A list of updated memberships.", + "items": { + "$ref": "MembershipUpdatedEventData" + }, + "type": "array" + } + }, + "type": "object" + }, + "MembershipCreatedEventData": { + "description": "Event payload for a new membership. Event type: `google.workspace.chat.membership.v1.created`.", + "id": "MembershipCreatedEventData", + "properties": { + "membership": { + "$ref": "Membership", + "description": "The new membership." + } + }, + "type": "object" + }, + "MembershipDeletedEventData": { + "description": "Event payload for a deleted membership. Event type: `google.workspace.chat.membership.v1.deleted`", + "id": "MembershipDeletedEventData", + "properties": { + "membership": { + "$ref": "Membership", + "description": "The deleted membership. Only the `name` and `state` fields are populated." + } + }, + "type": "object" + }, + "MembershipUpdatedEventData": { + "description": "Event payload for an updated membership. Event type: `google.workspace.chat.membership.v1.updated`", + "id": "MembershipUpdatedEventData", + "properties": { + "membership": { + "$ref": "Membership", + "description": "The updated membership." + } + }, + "type": "object" + }, "Message": { "description": "A message in a Google Chat space.", "id": "Message", "properties": { + "accessoryWidgets": { + "description": "One or more interactive widgets that appear at the bottom of a message. You can add accessory widgets to messages that contain text, cards, or both text and cards. Not supported for messages that contain dialogs. For details, see [Add interactive widgets at the bottom of a message](https://developers.google.com/workspace/chat/create-messages#add-accessory-widgets). Creating a message with accessory widgets requires [app authentication] (https://developers.google.com/workspace/chat/authenticate-authorize-chat-app).", + "items": { + "$ref": "AccessoryWidget" + }, + "type": "array" + }, "actionResponse": { "$ref": "ActionResponse", "description": "Input only. Parameters that a Chat app can use to configure how its response is posted." @@ -3213,14 +3497,14 @@ "type": "array" }, "cardsV2": { - "description": "An array of [cards](https://developers.google.com/chat/api/reference/rest/v1/cards). Only Chat apps can create cards. If your Chat app [authenticates as a user](https://developers.google.com/chat/api/guides/auth/users), the messages can't contain cards. To learn about cards and how to create them, see [Design dynamic, interactive, and consistent UIs with cards](https://developers.google.com/chat/ui). [Card builder](https://addons.gsuite.google.com/uikit/builder)", + "description": "An array of [cards](https://developers.google.com/workspace/chat/api/reference/rest/v1/cards). Only Chat apps can create cards. If your Chat app [authenticates as a user](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user), the messages can't contain cards. To learn about cards and how to create them, see [Send card messages](https://developers.google.com/workspace/chat/create-messages#create). [Card builder](https://addons.gsuite.google.com/uikit/builder)", "items": { "$ref": "CardWithId" }, "type": "array" }, "clientAssignedMessageId": { - "description": "Optional. A custom ID for the message. You can use field to identify a message, or to get, delete, or update a message. To set a custom ID, specify the [`messageId`](https://developers.google.com/chat/api/reference/rest/v1/spaces.messages/create#body.QUERY_PARAMETERS.message_id) field when you create the message. For details, see [Name a message](https://developers.google.com/chat/api/guides/v1/messages/create#name_a_created_message).", + "description": "Optional. A custom ID for the message. You can use field to identify a message, or to get, delete, or update a message. To set a custom ID, specify the [`messageId`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.messages/create#body.QUERY_PARAMETERS.message_id) field when you create the message. For details, see [Name a message](https://developers.google.com/workspace/chat/create-messages#name_a_created_message).", "type": "string" }, "createTime": { @@ -3252,7 +3536,7 @@ "type": "string" }, "formattedText": { - "description": "Output only. Contains the message `text` with markups added to communicate formatting. This field might not capture all formatting visible in the UI, but includes the following: * [Markup syntax](https://developers.google.com/chat/format-messages) for bold, italic, strikethrough, monospace, and monospace block. * [User mentions](https://developers.google.com/chat/format-messages#messages-@mention) using the format ``. * Custom hyperlinks using the format `<{url}|{rendered_text}>` where the first string is the URL and the second is the rendered text\u2014for example, ``. * Custom emoji using the format `:{emoji_name}:`\u2014for example, `:smile:`. This doesn't apply to Unicode emoji, such as `U+1F600` for a grinning face emoji. For more information, see [View text formatting sent in a message](https://developers.google.com/chat/format-messages#view_text_formatting_sent_in_a_message)", + "description": "Output only. Contains the message `text` with markups added to communicate formatting. This field might not capture all formatting visible in the UI, but includes the following: * [Markup syntax](https://developers.google.com/workspace/chat/format-messages) for bold, italic, strikethrough, monospace, monospace block, and bulleted list. * [User mentions](https://developers.google.com/workspace/chat/format-messages#messages-@mention) using the format ``. * Custom hyperlinks using the format `<{url}|{rendered_text}>` where the first string is the URL and the second is the rendered text\u2014for example, ``. * Custom emoji using the format `:{emoji_name}:`\u2014for example, `:smile:`. This doesn't apply to Unicode emoji, such as `U+1F600` for a grinning face emoji. For more information, see [View text formatting sent in a message](https://developers.google.com/workspace/chat/format-messages#view_text_formatting_sent_in_a_message)", "readOnly": true, "type": "string" }, @@ -3264,16 +3548,16 @@ }, "matchedUrl": { "$ref": "MatchedUrl", - "description": "Output only. A URL in `spaces.messages.text` that matches a link preview pattern. For more information, see [Preview links](https://developers.google.com/chat/how-tos/preview-links).", + "description": "Output only. A URL in `spaces.messages.text` that matches a link preview pattern. For more information, see [Preview links](https://developers.google.com/workspace/chat/preview-links).", "readOnly": true }, "name": { - "description": "Resource name of the message. Format: `spaces/{space}/messages/{message}` Where `{space}` is the ID of the space where the message is posted and `{message}` is a system-assigned ID for the message. For example, `spaces/AAAAAAAAAAA/messages/BBBBBBBBBBB.BBBBBBBBBBB`. If you set a custom ID when you create a message, you can use this ID to specify the message in a request by replacing `{message}` with the value from the `clientAssignedMessageId` field. For example, `spaces/AAAAAAAAAAA/messages/client-custom-name`. For details, see [Name a message](https://developers.google.com/chat/api/guides/v1/messages/create#name_a_created_message).", + "description": "Resource name of the message. Format: `spaces/{space}/messages/{message}` Where `{space}` is the ID of the space where the message is posted and `{message}` is a system-assigned ID for the message. For example, `spaces/AAAAAAAAAAA/messages/BBBBBBBBBBB.BBBBBBBBBBB`. If you set a custom ID when you create a message, you can use this ID to specify the message in a request by replacing `{message}` with the value from the `clientAssignedMessageId` field. For example, `spaces/AAAAAAAAAAA/messages/client-custom-name`. For details, see [Name a message](https://developers.google.com/workspace/chat/create-messages#name_a_created_message).", "type": "string" }, "privateMessageViewer": { "$ref": "User", - "description": "Immutable. Input for creating a message, otherwise output only. The user that can view the message. When set, the message is private and only visible to the specified user and the Chat app. Link previews and attachments aren't supported for private messages. Only Chat apps can send private messages. If your Chat app [authenticates as a user](https://developers.google.com/chat/api/guides/auth/users) to send a message, the message can't be private and must omit this field. For details, see [Send private messages to Google Chat users](https://developers.google.com/chat/api/guides/v1/messages/private)." + "description": "Immutable. Input for creating a message, otherwise output only. The user that can view the message. When set, the message is private and only visible to the specified user and the Chat app. Link previews and attachments aren't supported for private messages. Only Chat apps can send private messages. If your Chat app [authenticates as a user](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user) to send a message, the message can't be private and must omit this field. For details, see [Send private messages to Google Chat users](https://developers.google.com/workspace/chat/private-messages)." }, "quotedMessageMetadata": { "$ref": "QuotedMessageMetadata", @@ -3282,7 +3566,7 @@ }, "sender": { "$ref": "User", - "description": "Output only. The user who created the message. If your Chat app [authenticates as a user](https://developers.google.com/chat/api/guides/auth/users), the output populates the [user](https://developers.google.com/chat/api/reference/rest/v1/User) `name` and `type`.", + "description": "Output only. The user who created the message. If your Chat app [authenticates as a user](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user), the output populates the [user](https://developers.google.com/workspace/chat/api/reference/rest/v1/User) `name` and `type`.", "readOnly": true }, "slashCommand": { @@ -3292,15 +3576,15 @@ }, "space": { "$ref": "Space", - "description": "If your Chat app [authenticates as a user](https://developers.google.com/chat/api/guides/auth/users), the output populates the [space](https://developers.google.com/chat/api/reference/rest/v1/spaces) `name`." + "description": "If your Chat app [authenticates as a user](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user), the output populates the [space](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces) `name`." }, "text": { - "description": "Plain-text body of the message. The first link to an image, video, or web page generates a [preview chip](https://developers.google.com/chat/how-tos/preview-links). You can also [@mention a Google Chat user](https://developers.google.com/chat/format-messages#messages-@mention), or everyone in the space. To learn about creating text messages, see [Send a text message](https://developers.google.com/chat/api/guides/v1/messages/create#create-text-messages).", + "description": "Plain-text body of the message. The first link to an image, video, or web page generates a [preview chip](https://developers.google.com/workspace/chat/preview-links). You can also [@mention a Google Chat user](https://developers.google.com/workspace/chat/format-messages#messages-@mention), or everyone in the space. To learn about creating text messages, see [Send a text message](https://developers.google.com/workspace/chat/create-messages#create-text-messages).", "type": "string" }, "thread": { "$ref": "Thread", - "description": "The thread the message belongs to. For example usage, see [Start or reply to a message thread](https://developers.google.com/chat/api/guides/v1/messages/create#create-message-thread)." + "description": "The thread the message belongs to. For example usage, see [Start or reply to a message thread](https://developers.google.com/workspace/chat/create-messages#create-message-thread)." }, "threadReply": { "description": "Output only. When `true`, the message is a response in a reply thread. When `false`, the message is visible in the space's top-level conversation as either the first message of a thread or a message with no threaded replies. If the space doesn't support reply in threads, this field is always `false`.", @@ -3310,6 +3594,81 @@ }, "type": "object" }, + "MessageBatchCreatedEventData": { + "description": "Event payload for multiple new messages. Event type: `google.workspace.chat.message.v1.batchCreated`", + "id": "MessageBatchCreatedEventData", + "properties": { + "messages": { + "description": "A list of new messages.", + "items": { + "$ref": "MessageCreatedEventData" + }, + "type": "array" + } + }, + "type": "object" + }, + "MessageBatchDeletedEventData": { + "description": "Event payload for multiple deleted messages. Event type: `google.workspace.chat.message.v1.batchDeleted`", + "id": "MessageBatchDeletedEventData", + "properties": { + "messages": { + "description": "A list of deleted messages.", + "items": { + "$ref": "MessageDeletedEventData" + }, + "type": "array" + } + }, + "type": "object" + }, + "MessageBatchUpdatedEventData": { + "description": "Event payload for multiple updated messages. Event type: `google.workspace.chat.message.v1.batchUpdated`", + "id": "MessageBatchUpdatedEventData", + "properties": { + "messages": { + "description": "A list of updated messages.", + "items": { + "$ref": "MessageUpdatedEventData" + }, + "type": "array" + } + }, + "type": "object" + }, + "MessageCreatedEventData": { + "description": "Event payload for a new message. Event type: `google.workspace.chat.message.v1.created`", + "id": "MessageCreatedEventData", + "properties": { + "message": { + "$ref": "Message", + "description": "The new message." + } + }, + "type": "object" + }, + "MessageDeletedEventData": { + "description": "Event payload for a deleted message. Event type: `google.workspace.chat.message.v1.deleted`", + "id": "MessageDeletedEventData", + "properties": { + "message": { + "$ref": "Message", + "description": "The deleted message. Only the `name`, `createTime`, `deleteTime`, and `deletionMetadata` fields are populated." + } + }, + "type": "object" + }, + "MessageUpdatedEventData": { + "description": "Event payload for an updated message. Event type: `google.workspace.chat.message.v1.updated`", + "id": "MessageUpdatedEventData", + "properties": { + "message": { + "$ref": "Message", + "description": "The updated message." + } + }, + "type": "object" + }, "OnClick": { "description": "An `onclick` action (for example, open a link).", "id": "OnClick", @@ -3374,12 +3733,89 @@ }, "type": "object" }, + "ReactionBatchCreatedEventData": { + "description": "Event payload for multiple new reactions. Event type: `google.workspace.chat.reaction.v1.batchCreated`", + "id": "ReactionBatchCreatedEventData", + "properties": { + "reactions": { + "description": "A list of new reactions.", + "items": { + "$ref": "ReactionCreatedEventData" + }, + "type": "array" + } + }, + "type": "object" + }, + "ReactionBatchDeletedEventData": { + "description": "Event payload for multiple deleted reactions. Event type: `google.workspace.chat.reaction.v1.batchDeleted`", + "id": "ReactionBatchDeletedEventData", + "properties": { + "reactions": { + "description": "A list of deleted reactions.", + "items": { + "$ref": "ReactionDeletedEventData" + }, + "type": "array" + } + }, + "type": "object" + }, + "ReactionCreatedEventData": { + "description": "Event payload for a new reaction. Event type: `google.workspace.chat.reaction.v1.created`", + "id": "ReactionCreatedEventData", + "properties": { + "reaction": { + "$ref": "Reaction", + "description": "The new reaction." + } + }, + "type": "object" + }, + "ReactionDeletedEventData": { + "description": "Event payload for a deleted reaction. Type: `google.workspace.chat.reaction.v1.deleted`", + "id": "ReactionDeletedEventData", + "properties": { + "reaction": { + "$ref": "Reaction", + "description": "The deleted reaction." + } + }, + "type": "object" + }, + "RichLinkMetadata": { + "description": "A rich link to a resource.", + "id": "RichLinkMetadata", + "properties": { + "driveLinkData": { + "$ref": "DriveLinkData", + "description": "Data for a drive link." + }, + "richLinkType": { + "description": "The rich link type.", + "enum": [ + "RICH_LINK_TYPE_UNSPECIFIED", + "DRIVE_FILE" + ], + "enumDescriptions": [ + "Default value for the enum. Don't use.", + "A Google Drive rich link type." + ], + "type": "string" + }, + "uri": { + "description": "The URI of this link.", + "type": "string" + } + }, + "type": "object" + }, "Section": { "description": "A section contains a collection of widgets that are rendered (vertically) in the order that they are specified. Across all platforms, cards have a narrow fixed width, so there's currently no need for layout properties (for example, float).", "id": "Section", "properties": { "header": { - "description": "The header of the section. Formatted text is supported. For more information about formatting text, see [Formatting text in Google Chat apps](https://developers.google.com/chat/format-messages#card-formatting) and [Formatting text in Google Workspace Add-ons](https://developers.google.com/apps-script/add-ons/concepts/widgets#text_formatting).", + "description": "The header of the section. Formatted text is supported. For more information about formatting text, see [Formatting text in Google Chat apps](https://developers.google.com/workspace/chat/format-messages#card-formatting) and [Formatting text in Google Workspace Add-ons](https://developers.google.com/apps-script/add-ons/concepts/widgets#text_formatting).", "type": "string" }, "widgets": { @@ -3407,6 +3843,7 @@ "type": "object" }, "SetUpSpaceRequest": { + "description": "Request to create a space and add specified users to it.", "id": "SetUpSpaceRequest", "properties": { "memberships": { @@ -3428,7 +3865,7 @@ "type": "object" }, "SlashCommand": { - "description": "A [slash command](https://developers.google.com/chat/how-tos/slash-commands) in Google Chat.", + "description": "A [slash command](https://developers.google.com/workspace/chat/slash-commands) in Google Chat.", "id": "SlashCommand", "properties": { "commandId": { @@ -3492,11 +3929,11 @@ "type": "string" }, "displayName": { - "description": "The space's display name. Required when [creating a space](https://developers.google.com/chat/api/reference/rest/v1/spaces/create). If you receive the error message `ALREADY_EXISTS` when creating a space or updating the `displayName`, try a different `displayName`. An existing space within the Google Workspace organization might already use this display name. For direct messages, this field might be empty. Supports up to 128 characters.", + "description": "The space's display name. Required when [creating a space](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces/create). If you receive the error message `ALREADY_EXISTS` when creating a space or updating the `displayName`, try a different `displayName`. An existing space within the Google Workspace organization might already use this display name. For direct messages, this field might be empty. Supports up to 128 characters.", "type": "string" }, "externalUserAllowed": { - "description": "Immutable. Whether this space permits any Google Chat user as a member. Input when creating a space in a Google Workspace organization. Omit this field when creating spaces in the following conditions: * The authenticated user uses a Google Account. By default, the space permits any Google Chat user. * The space is used to [import data to Google Chat] (https://developers.google.com/chat/api/guides/import-data-overview). Import mode spaces must only permit members from the same Google Workspace organization. For existing spaces, this field is output only.", + "description": "Immutable. Whether this space permits any Google Chat user as a member. Input when creating a space in a Google Workspace organization. Omit this field when creating spaces in the following conditions: * The authenticated user uses a consumer account (unmanaged user account). By default, a space created by a consumer account permits any Google Chat user. * The space is used to [import data to Google Chat] (https://developers.google.com/chat/api/guides/import-data-overview) because import mode spaces must only permit members from the same Google Workspace organization. However, as part of the [Google Workspace Developer Preview Program](https://developers.google.com/workspace/preview), import mode spaces can permit any Google Chat user so this field can then be set for import mode spaces. For existing spaces, this field is output only.", "type": "boolean" }, "importMode": { @@ -3577,7 +4014,7 @@ "DM" ], "enumDescriptions": [ - "", + "Reserved.", "Conversations between two or more humans.", "1:1 Direct Message between a human and a Chat app, where all messages are flat. Note that this doesn't include direct messages between two humans." ], @@ -3587,6 +4024,20 @@ }, "type": "object" }, + "SpaceBatchUpdatedEventData": { + "description": "Event payload for multiple updates to a space. Event type: `google.workspace.chat.space.v1.batchUpdated`", + "id": "SpaceBatchUpdatedEventData", + "properties": { + "spaces": { + "description": "A list of updated spaces.", + "items": { + "$ref": "SpaceUpdatedEventData" + }, + "type": "array" + } + }, + "type": "object" + }, "SpaceDataSource": { "description": "A data source that populates Google Chat spaces as selection items for a multiselect menu. Only populates spaces that the user is a member of. [Google Chat apps](https://developers.google.com/workspace/chat):", "id": "SpaceDataSource", @@ -3613,6 +4064,109 @@ }, "type": "object" }, + "SpaceEvent": { + "description": "An event that represents a change or activity in a Google Chat space. To learn more, see [Work with events from Google Chat](https://developers.google.com/workspace/chat/events-overview).", + "id": "SpaceEvent", + "properties": { + "eventTime": { + "description": "Time when the event occurred.", + "format": "google-datetime", + "type": "string" + }, + "eventType": { + "description": "Type of space event. Each event type has a batch version, which represents multiple instances of the event type that occur in a short period of time. For `spaceEvents.list()` requests, omit batch event types in your query filter. By default, the server returns both event type and its batch version. Supported event types for [messages](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.messages): * New message: `google.workspace.chat.message.v1.created` * Updated message: `google.workspace.chat.message.v1.updated` * Deleted message: `google.workspace.chat.message.v1.deleted` * Multiple new messages: `google.workspace.chat.message.v1.batchCreated` * Multiple updated messages: `google.workspace.chat.message.v1.batchUpdated` * Multiple deleted messages: `google.workspace.chat.message.v1.batchDeleted` Supported event types for [memberships](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.members): * New membership: `google.workspace.chat.membership.v1.created` * Updated membership: `google.workspace.chat.membership.v1.updated` * Deleted membership: `google.workspace.chat.membership.v1.deleted` * Multiple new memberships: `google.workspace.chat.membership.v1.batchCreated` * Multiple updated memberships: `google.workspace.chat.membership.v1.batchUpdated` * Multiple deleted memberships: `google.workspace.chat.membership.v1.batchDeleted` Supported event types for [reactions](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.messages.reactions): * New reaction: `google.workspace.chat.reaction.v1.created` * Deleted reaction: `google.workspace.chat.reaction.v1.deleted` * Multiple new reactions: `google.workspace.chat.reaction.v1.batchCreated` * Multiple deleted reactions: `google.workspace.chat.reaction.v1.batchDeleted` Supported event types about the [space](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces): * Updated space: `google.workspace.chat.space.v1.updated` * Multiple space updates: `google.workspace.chat.space.v1.batchUpdated`", + "type": "string" + }, + "membershipBatchCreatedEventData": { + "$ref": "MembershipBatchCreatedEventData", + "description": "Event payload for multiple new memberships. Event type: `google.workspace.chat.membership.v1.batchCreated`" + }, + "membershipBatchDeletedEventData": { + "$ref": "MembershipBatchDeletedEventData", + "description": "Event payload for multiple deleted memberships. Event type: `google.workspace.chat.membership.v1.batchDeleted`" + }, + "membershipBatchUpdatedEventData": { + "$ref": "MembershipBatchUpdatedEventData", + "description": "Event payload for multiple updated memberships. Event type: `google.workspace.chat.membership.v1.batchUpdated`" + }, + "membershipCreatedEventData": { + "$ref": "MembershipCreatedEventData", + "description": "Event payload for a new membership. Event type: `google.workspace.chat.membership.v1.created`" + }, + "membershipDeletedEventData": { + "$ref": "MembershipDeletedEventData", + "description": "Event payload for a deleted membership. Event type: `google.workspace.chat.membership.v1.deleted`" + }, + "membershipUpdatedEventData": { + "$ref": "MembershipUpdatedEventData", + "description": "Event payload for an updated membership. Event type: `google.workspace.chat.membership.v1.updated`" + }, + "messageBatchCreatedEventData": { + "$ref": "MessageBatchCreatedEventData", + "description": "Event payload for multiple new messages. Event type: `google.workspace.chat.message.v1.batchCreated`" + }, + "messageBatchDeletedEventData": { + "$ref": "MessageBatchDeletedEventData", + "description": "Event payload for multiple deleted messages. Event type: `google.workspace.chat.message.v1.batchDeleted`" + }, + "messageBatchUpdatedEventData": { + "$ref": "MessageBatchUpdatedEventData", + "description": "Event payload for multiple updated messages. Event type: `google.workspace.chat.message.v1.batchUpdated`" + }, + "messageCreatedEventData": { + "$ref": "MessageCreatedEventData", + "description": "Event payload for a new message. Event type: `google.workspace.chat.message.v1.created`" + }, + "messageDeletedEventData": { + "$ref": "MessageDeletedEventData", + "description": "Event payload for a deleted message. Event type: `google.workspace.chat.message.v1.deleted`" + }, + "messageUpdatedEventData": { + "$ref": "MessageUpdatedEventData", + "description": "Event payload for an updated message. Event type: `google.workspace.chat.message.v1.updated`" + }, + "name": { + "description": "Resource name of the space event. Format: `spaces/{space}/spaceEvents/{spaceEvent}`", + "type": "string" + }, + "reactionBatchCreatedEventData": { + "$ref": "ReactionBatchCreatedEventData", + "description": "Event payload for multiple new reactions. Event type: `google.workspace.chat.reaction.v1.batchCreated`" + }, + "reactionBatchDeletedEventData": { + "$ref": "ReactionBatchDeletedEventData", + "description": "Event payload for multiple deleted reactions. Event type: `google.workspace.chat.reaction.v1.batchDeleted`" + }, + "reactionCreatedEventData": { + "$ref": "ReactionCreatedEventData", + "description": "Event payload for a new reaction. Event type: `google.workspace.chat.reaction.v1.created`" + }, + "reactionDeletedEventData": { + "$ref": "ReactionDeletedEventData", + "description": "Event payload for a deleted reaction. Event type: `google.workspace.chat.reaction.v1.deleted`" + }, + "spaceBatchUpdatedEventData": { + "$ref": "SpaceBatchUpdatedEventData", + "description": "Event payload for multiple updates to a space. Event type: `google.workspace.chat.space.v1.batchUpdated`" + }, + "spaceUpdatedEventData": { + "$ref": "SpaceUpdatedEventData", + "description": "Event payload for a space update. Event type: `google.workspace.chat.space.v1.updated`" + } + }, + "type": "object" + }, + "SpaceUpdatedEventData": { + "description": "Event payload for an updated space. Event type: `google.workspace.chat.space.v1.updated`", + "id": "SpaceUpdatedEventData", + "properties": { + "space": { + "$ref": "Space", + "description": "The updated space." + } + }, + "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", @@ -3670,7 +4224,7 @@ "type": "object" }, "TextParagraph": { - "description": "A paragraph of text. Formatted text supported. For more information about formatting text, see [Formatting text in Google Chat apps](https://developers.google.com/chat/format-messages#card-formatting) and [Formatting text in Google Workspace Add-ons](https://developers.google.com/apps-script/add-ons/concepts/widgets#text_formatting).", + "description": "A paragraph of text. Formatted text supported. For more information about formatting text, see [Formatting text in Google Chat apps](https://developers.google.com/workspace/chat/format-messages#card-formatting) and [Formatting text in Google Workspace Add-ons](https://developers.google.com/apps-script/add-ons/concepts/widgets#text_formatting).", "id": "TextParagraph", "properties": { "text": { @@ -3680,7 +4234,7 @@ "type": "object" }, "Thread": { - "description": "A thread in a Google Chat space. For example usage, see [Start or reply to a message thread](https://developers.google.com/chat/api/guides/v1/messages/create#create-message-thread). If you specify a thread when creating a message, you can set the [`messageReplyOption`](https://developers.google.com/chat/api/reference/rest/v1/spaces.messages/create#messagereplyoption) field to determine what happens if no matching thread is found.", + "description": "A thread in a Google Chat space. For example usage, see [Start or reply to a message thread](https://developers.google.com/workspace/chat/create-messages#create-message-thread). If you specify a thread when creating a message, you can set the [`messageReplyOption`](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.messages/create#messagereplyoption) field to determine what happens if no matching thread is found.", "id": "Thread", "properties": { "name": { @@ -3743,6 +4297,7 @@ "type": "object" }, "UploadAttachmentRequest": { + "description": "Request to upload an attachment.", "id": "UploadAttachmentRequest", "properties": { "filename": { @@ -3753,6 +4308,7 @@ "type": "object" }, "UploadAttachmentResponse": { + "description": "Response of uploading an attachment.", "id": "UploadAttachmentResponse", "properties": { "attachmentDataRef": { @@ -3763,7 +4319,7 @@ "type": "object" }, "User": { - "description": "A user in Google Chat. When returned as an output from a request, if your Chat app [authenticates as a user](https://developers.google.com/chat/api/guides/auth/users), the output for a `User` resource only populates the user's `name` and `type`.", + "description": "A user in Google Chat. When returned as an output from a request, if your Chat app [authenticates as a user](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user), the output for a `User` resource only populates the user's `name` and `type`.", "id": "User", "properties": { "displayName": { diff --git a/etc/api/chromemanagement/v1/chromemanagement-api.json b/etc/api/chromemanagement/v1/chromemanagement-api.json index ce49f43e8d..a93db9d08e 100644 --- a/etc/api/chromemanagement/v1/chromemanagement-api.json +++ b/etc/api/chromemanagement/v1/chromemanagement-api.json @@ -160,6 +160,98 @@ "scopes": [ "https://www.googleapis.com/auth/chrome.management.appdetails.readonly" ] + }, + "fetchDevicesRequestingExtension": { + "description": "Get a list of devices that have requested to install an extension.", + "flatPath": "v1/customers/{customersId}/apps:fetchDevicesRequestingExtension", + "httpMethod": "GET", + "id": "chromemanagement.customers.apps.fetchDevicesRequestingExtension", + "parameterOrder": [ + "customer" + ], + "parameters": { + "customer": { + "description": "Required. The customer ID or \"my_customer\" prefixed with \"customers/\".", + "location": "path", + "pattern": "^customers/[^/]+$", + "required": true, + "type": "string" + }, + "extensionId": { + "description": "Required. The extension for which we want to find requesting devices.", + "location": "query", + "type": "string" + }, + "orgUnitId": { + "description": "The ID of the organizational unit. Only consider devices that directly belong to this org unit, i.e. sub-orgunits are not counted. If omitted, all data will be returned.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. Maximum number of results to return. Maximum and default are 50. Any page size larger than 50 will be coerced to 50.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. Token to specify the page of the request to be returned. Token expires after 1 day.", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+customer}/apps:fetchDevicesRequestingExtension", + "response": { + "$ref": "GoogleChromeManagementV1FetchDevicesRequestingExtensionResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/chrome.management.appdetails.readonly" + ] + }, + "fetchUsersRequestingExtension": { + "description": "Get a list of users that have requested to install an extension.", + "flatPath": "v1/customers/{customersId}/apps:fetchUsersRequestingExtension", + "httpMethod": "GET", + "id": "chromemanagement.customers.apps.fetchUsersRequestingExtension", + "parameterOrder": [ + "customer" + ], + "parameters": { + "customer": { + "description": "Required. The customer ID or \"my_customer\" prefixed with \"customers/\".", + "location": "path", + "pattern": "^customers/[^/]+$", + "required": true, + "type": "string" + }, + "extensionId": { + "description": "Required. The extension for which we want to find the requesting users.", + "location": "query", + "type": "string" + }, + "orgUnitId": { + "description": "The ID of the organizational unit. Only consider devices that directly belong to this org unit, i.e. sub-orgunits are not counted. If omitted, all data will be returned.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. Maximum number of results to return. Maximum and default are 50. Any page size larger than 50 will be coerced to 50.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. Token to specify the page of the request to be returned. Token expires after 1 day.", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+customer}/apps:fetchUsersRequestingExtension", + "response": { + "$ref": "GoogleChromeManagementV1FetchUsersRequestingExtensionResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/chrome.management.appdetails.readonly" + ] } }, "resources": { @@ -284,6 +376,46 @@ "https://www.googleapis.com/auth/chrome.management.reports.readonly" ] }, + "countChromeCrashEvents": { + "description": "Get a count of Chrome crash events.", + "flatPath": "v1/customers/{customersId}/reports:countChromeCrashEvents", + "httpMethod": "GET", + "id": "chromemanagement.customers.reports.countChromeCrashEvents", + "parameterOrder": [ + "customer" + ], + "parameters": { + "customer": { + "description": "Customer ID.", + "location": "path", + "pattern": "^customers/[^/]+$", + "required": true, + "type": "string" + }, + "filter": { + "description": "Query string to filter results, AND-separated fields in EBNF syntax. Supported filter fields: * major_browser_version * minor_browser_version * browser_channel * device_platform * past_number_days Example: `major_browser_version = 'M115' AND past_number_days = '28'`.", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Field used to order results. Supported order by fields: * browser_version * count * date", + "location": "query", + "type": "string" + }, + "orgUnitId": { + "description": "If specified, only count the number of crash events of the devices in this organizational unit.", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+customer}/reports:countChromeCrashEvents", + "response": { + "$ref": "GoogleChromeManagementV1CountChromeCrashEventsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/chrome.management.reports.readonly" + ] + }, "countChromeDevicesReachingAutoExpirationDate": { "description": "Generate report of the number of devices expiring in each month of the selected time frame. Devices are grouped by auto update expiration date and model. Further information can be found [here](https://support.google.com/chrome/a/answer/10564947).", "flatPath": "v1/customers/{customersId}/reports:countChromeDevicesReachingAutoExpirationDate", @@ -770,7 +902,7 @@ ], "parameters": { "filter": { - "description": "Optional. Only include resources that match the filter. Supported filter fields: - org_unit_id - serial_number - device_id - reports_timestamp The \"reports_timestamp\" filter accepts either the Unix Epoch milliseconds format or the RFC3339 UTC \"Zulu\" format with nanosecond resolution and up to nine fractional digits. Both formats should be surrounded by simple double quotes. Examples: \"2014-10-02T15:01:23Z\", \"2014-10-02T15:01:23.045123456Z\", \"1679283943823\".", + "description": "Optional. Only include resources that match the filter. Requests that don't specify a \"reports_timestamp\" value will default to returning only recent reports. Specify \"reports_timestamp>=0\" to get all report data. Supported filter fields: - org_unit_id - serial_number - device_id - reports_timestamp The \"reports_timestamp\" filter accepts either the Unix Epoch milliseconds format or the RFC3339 UTC \"Zulu\" format with nanosecond resolution and up to nine fractional digits. Both formats should be surrounded by simple double quotes. Examples: \"2014-10-02T15:01:23Z\", \"2014-10-02T15:01:23.045123456Z\", \"1679283943823\".", "location": "query", "type": "string" }, @@ -1040,7 +1172,7 @@ } } }, - "revision": "20240303", + "revision": "20240418", "rootUrl": "https://chromemanagement.googleapis.com/", "schemas": { "GoogleChromeManagementV1AndroidAppInfo": { @@ -1700,6 +1832,40 @@ }, "type": "object" }, + "GoogleChromeManagementV1CountChromeCrashEventsResponse": { + "description": "Response contains a list of CrashEventCountByVersionPerDay which count the chrome crash at the certain date.", + "id": "GoogleChromeManagementV1CountChromeCrashEventsResponse", + "properties": { + "crashEventCounts": { + "description": "Crash event counts grouped by date and browser version.", + "items": { + "$ref": "GoogleChromeManagementV1CountChromeCrashEventsResponseCrashEventCount" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleChromeManagementV1CountChromeCrashEventsResponseCrashEventCount": { + "description": "The `count` of the Chrome crash events at the `date`.", + "id": "GoogleChromeManagementV1CountChromeCrashEventsResponseCrashEventCount", + "properties": { + "browserVersion": { + "description": "Browser version this is counting.", + "type": "string" + }, + "count": { + "description": "Total count of crash events.", + "format": "int64", + "type": "string" + }, + "date": { + "$ref": "GoogleTypeDate", + "description": "Date of the crash event." + } + }, + "type": "object" + }, "GoogleChromeManagementV1CountChromeDevicesReachingAutoExpirationDateResponse": { "description": "Response containing a list of devices expiring in each month of a selected time frame. Counts are grouped by model and Auto Update Expiration date.", "id": "GoogleChromeManagementV1CountChromeDevicesReachingAutoExpirationDateResponse", @@ -2087,6 +2253,21 @@ }, "type": "object" }, + "GoogleChromeManagementV1DeviceRequestingExtensionDetails": { + "description": "Details of a device requesting an extension, including the name of the device and the justification of the request.", + "id": "GoogleChromeManagementV1DeviceRequestingExtensionDetails", + "properties": { + "deviceName": { + "description": "The name of a device that has requested the extension.", + "type": "string" + }, + "justification": { + "description": "Request justification as entered by the user.", + "type": "string" + } + }, + "type": "object" + }, "GoogleChromeManagementV1DiskInfo": { "description": "Status of the single storage device.", "id": "GoogleChromeManagementV1DiskInfo", @@ -2279,6 +2460,52 @@ }, "type": "object" }, + "GoogleChromeManagementV1FetchDevicesRequestingExtensionResponse": { + "description": "Response containing a list of devices that have requested the queried extension.", + "id": "GoogleChromeManagementV1FetchDevicesRequestingExtensionResponse", + "properties": { + "deviceDetails": { + "description": "Details of devices that have requested the queried extension.", + "items": { + "$ref": "GoogleChromeManagementV1DeviceRequestingExtensionDetails" + }, + "type": "array" + }, + "nextPageToken": { + "description": "Optional. Token to specify the next page in the list. Token expires after 1 day.", + "type": "string" + }, + "totalSize": { + "description": "Optional. Total number of devices in response.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleChromeManagementV1FetchUsersRequestingExtensionResponse": { + "description": "Response containing a list of users that have requested the queried extension.", + "id": "GoogleChromeManagementV1FetchUsersRequestingExtensionResponse", + "properties": { + "nextPageToken": { + "description": "Token to specify the next page in the list.", + "type": "string" + }, + "totalSize": { + "description": "Total number of users in response.", + "format": "int32", + "type": "integer" + }, + "userDetails": { + "description": "Details of users that have requested the queried extension.", + "items": { + "$ref": "GoogleChromeManagementV1UserRequestingExtensionDetails" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleChromeManagementV1FindInstalledAppDevicesResponse": { "description": "Response containing a list of devices with queried app installed.", "id": "GoogleChromeManagementV1FindInstalledAppDevicesResponse", @@ -3988,6 +4215,21 @@ }, "type": "object" }, + "GoogleChromeManagementV1UserRequestingExtensionDetails": { + "description": "Details of a user requesting an extension, including the email and the justification.", + "id": "GoogleChromeManagementV1UserRequestingExtensionDetails", + "properties": { + "email": { + "description": "The e-mail address of a user that has requested the extension.", + "type": "string" + }, + "justification": { + "description": "Request justification as entered by the user.", + "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", diff --git a/etc/api/chromepolicy/v1/chromepolicy-api.json b/etc/api/chromepolicy/v1/chromepolicy-api.json index 586477d66a..aeee23f0ab 100644 --- a/etc/api/chromepolicy/v1/chromepolicy-api.json +++ b/etc/api/chromepolicy/v1/chromepolicy-api.json @@ -557,7 +557,7 @@ } } }, - "revision": "20240303", + "revision": "20240418", "rootUrl": "https://chromepolicy.googleapis.com/", "schemas": { "GoogleChromePolicyVersionsV1AdditionalTargetKeyName": { diff --git a/etc/api/chromeuxreport/v1/chromeuxreport-api.json b/etc/api/chromeuxreport/v1/chromeuxreport-api.json index b70eb3a0ea..a02bb8a6bc 100644 --- a/etc/api/chromeuxreport/v1/chromeuxreport-api.json +++ b/etc/api/chromeuxreport/v1/chromeuxreport-api.json @@ -131,7 +131,7 @@ } } }, - "revision": "20240228", + "revision": "20240416", "rootUrl": "https://chromeuxreport.googleapis.com/", "schemas": { "Bin": { diff --git a/etc/api/civicinfo/v2/civicinfo-api.json b/etc/api/civicinfo/v2/civicinfo-api.json index d25d4005a4..14a9b9c525 100644 --- a/etc/api/civicinfo/v2/civicinfo-api.json +++ b/etc/api/civicinfo/v2/civicinfo-api.json @@ -365,7 +365,7 @@ } } }, - "revision": "20240227", + "revision": "20240419", "rootUrl": "https://civicinfo.googleapis.com/", "schemas": { "AdministrationRegion": { diff --git a/etc/api/classroom/v1/classroom-api.json b/etc/api/classroom/v1/classroom-api.json index 6aaf69dca7..1634377e13 100644 --- a/etc/api/classroom/v1/classroom-api.json +++ b/etc/api/classroom/v1/classroom-api.json @@ -2400,7 +2400,7 @@ } } }, - "revision": "20240227", + "revision": "20240415", "rootUrl": "https://classroom.googleapis.com/", "schemas": { "Announcement": { diff --git a/etc/api/cloudasset/v1/cloudasset-api.json b/etc/api/cloudasset/v1/cloudasset-api.json index abe2bfe0ec..b588480718 100644 --- a/etc/api/cloudasset/v1/cloudasset-api.json +++ b/etc/api/cloudasset/v1/cloudasset-api.json @@ -1095,7 +1095,7 @@ } } }, - "revision": "20240302", + "revision": "20240412", "rootUrl": "https://cloudasset.googleapis.com/", "schemas": { "AccessSelector": { @@ -2798,7 +2798,7 @@ "id": "GoogleIdentityAccesscontextmanagerV1EgressFrom", "properties": { "identities": { - "description": "A list of identities that are allowed access through this [EgressPolicy], in the format of `user:{email_id}` or `serviceAccount:{email_id}`.", + "description": "A list of identities that are allowed access through [EgressPolicy]. Identities can be an individual user, service account, Google group, or third-party identity. The `v1` identities that have the prefix `user`, `group`, `serviceAccount`, `principal`, and `principalSet` in https://cloud.google.com/iam/docs/principal-identifiers#v1 are supported.", "items": { "type": "string" }, @@ -2875,7 +2875,7 @@ "id": "GoogleIdentityAccesscontextmanagerV1EgressTo", "properties": { "externalResources": { - "description": "A list of external resources that are allowed to be accessed. Only AWS and Azure resources are supported. For Amazon S3, the supported format is s3://BUCKET_NAME. For Azure Storage, the supported format is azure://myaccount.blob.core.windows.net/CONTAINER_NAME. A request matches if it contains an external resource in this list (Example: s3://bucket/path). Currently '*' is not allowed.", + "description": "A list of external resources that are allowed to be accessed. Only AWS and Azure resources are supported. For Amazon S3, the supported formats are s3://BUCKET_NAME, s3a://BUCKET_NAME, and s3n://BUCKET_NAME. For Azure Storage, the supported format is azure://myaccount.blob.core.windows.net/CONTAINER_NAME. A request matches if it contains an external resource in this list (Example: s3://bucket/path). Currently '*' is not allowed.", "items": { "type": "string" }, @@ -2903,7 +2903,7 @@ "id": "GoogleIdentityAccesscontextmanagerV1IngressFrom", "properties": { "identities": { - "description": "A list of identities that are allowed access through this ingress policy, in the format of `user:{email_id}` or `serviceAccount:{email_id}`.", + "description": "A list of identities that are allowed access through [IngressPolicy]. Identities can be an individual user, service account, Google group, or third-party identity. The `v1` identities that have the prefix `user`, `group`, `serviceAccount`, `principal`, and `principalSet` in https://cloud.google.com/iam/docs/principal-identifiers#v1 are supported.", "items": { "type": "string" }, @@ -4111,7 +4111,7 @@ "type": "string" }, "effectiveTags": { - "description": "The effective tags on this resource. All of the tags that are both attached to and inherited by a resource are collectively called the effective tags. For more information, see [tag inheritance](https://cloud.google.com/resource-manager/docs/tags/tags-overview#inheritance). To search against the `effective_tags`: * Use a field query. Example: - `effectiveTagKeys:\"123456789/env*\"` - `effectiveTagKeys=\"123456789/env\"` - `effectiveTagKeys:\"env\"` - `effectiveTagValues:\"env\"` - `effectiveTagValues:\"env/prod\"` - `effectiveTagValues:\"123456789/env/prod*\"` - `effectiveTagValues=\"123456789/env/prod\"` - `effectiveTagValueIds=\"tagValues/456\"`", + "description": "The effective tags on this resource. All of the tags that are both attached to and inherited by a resource are collectively called the effective tags. For more information, see [tag inheritance](https://cloud.google.com/resource-manager/docs/tags/tags-overview#inheritance). To search against the `effective_tags`: * Use a field query. Example: - `effectiveTagKeys:\"123456789/env*\"` - `effectiveTagKeys=\"123456789/env\"` - `effectiveTagKeys:\"env\"` - `effectiveTagKeyIds=\"tagKeys/123\"` - `effectiveTagValues:\"env\"` - `effectiveTagValues:\"env/prod\"` - `effectiveTagValues:\"123456789/env/prod*\"` - `effectiveTagValues=\"123456789/env/prod\"` - `effectiveTagValueIds=\"tagValues/456\"`", "items": { "$ref": "EffectiveTagDetails" }, @@ -4217,7 +4217,7 @@ "type": "array" }, "tags": { - "description": "The tags directly attached to this resource. To search against the `tags`: * Use a field query. Example: - `tagKeys:\"123456789/env*\"` - `tagKeys=\"123456789/env\"` - `tagKeys:\"env\"` - `tagValues:\"env\"` - `tagValues:\"env/prod\"` - `tagValues:\"123456789/env/prod*\"` - `tagValues=\"123456789/env/prod\"` - `tagValueIds=\"tagValues/456\"` * Use a free text query. Example: - `env/prod`", + "description": "The tags directly attached to this resource. To search against the `tags`: * Use a field query. Example: - `tagKeys:\"123456789/env*\"` - `tagKeys=\"123456789/env\"` - `tagKeys:\"env\"` - `tagKeyIds=\"tagKeys/123\"` - `tagValues:\"env\"` - `tagValues:\"env/prod\"` - `tagValues:\"123456789/env/prod*\"` - `tagValues=\"123456789/env/prod\"` - `tagValueIds=\"tagValues/456\"` * Use a free text query. Example: - `env/prod`", "items": { "$ref": "Tag" }, @@ -4451,6 +4451,10 @@ "description": "TagKey namespaced name, in the format of {ORG_ID}/{TAG_KEY_SHORT_NAME}.", "type": "string" }, + "tagKeyId": { + "description": "TagKey ID, in the format of tagKeys/{TAG_KEY_ID}.", + "type": "string" + }, "tagValue": { "description": "TagValue namespaced name, in the format of {ORG_ID}/{TAG_KEY_SHORT_NAME}/{TAG_VALUE_SHORT_NAME}.", "type": "string" diff --git a/etc/api/cloudasset/v1beta1/cloudasset-api.json b/etc/api/cloudasset/v1beta1/cloudasset-api.json index 1bff058fa3..66106987bd 100644 --- a/etc/api/cloudasset/v1beta1/cloudasset-api.json +++ b/etc/api/cloudasset/v1beta1/cloudasset-api.json @@ -411,7 +411,7 @@ } } }, - "revision": "20240302", + "revision": "20240412", "rootUrl": "https://cloudasset.googleapis.com/", "schemas": { "AnalyzeIamPolicyLongrunningMetadata": { @@ -1123,7 +1123,7 @@ "id": "GoogleIdentityAccesscontextmanagerV1EgressFrom", "properties": { "identities": { - "description": "A list of identities that are allowed access through this [EgressPolicy], in the format of `user:{email_id}` or `serviceAccount:{email_id}`.", + "description": "A list of identities that are allowed access through [EgressPolicy]. Identities can be an individual user, service account, Google group, or third-party identity. The `v1` identities that have the prefix `user`, `group`, `serviceAccount`, `principal`, and `principalSet` in https://cloud.google.com/iam/docs/principal-identifiers#v1 are supported.", "items": { "type": "string" }, @@ -1200,7 +1200,7 @@ "id": "GoogleIdentityAccesscontextmanagerV1EgressTo", "properties": { "externalResources": { - "description": "A list of external resources that are allowed to be accessed. Only AWS and Azure resources are supported. For Amazon S3, the supported format is s3://BUCKET_NAME. For Azure Storage, the supported format is azure://myaccount.blob.core.windows.net/CONTAINER_NAME. A request matches if it contains an external resource in this list (Example: s3://bucket/path). Currently '*' is not allowed.", + "description": "A list of external resources that are allowed to be accessed. Only AWS and Azure resources are supported. For Amazon S3, the supported formats are s3://BUCKET_NAME, s3a://BUCKET_NAME, and s3n://BUCKET_NAME. For Azure Storage, the supported format is azure://myaccount.blob.core.windows.net/CONTAINER_NAME. A request matches if it contains an external resource in this list (Example: s3://bucket/path). Currently '*' is not allowed.", "items": { "type": "string" }, @@ -1228,7 +1228,7 @@ "id": "GoogleIdentityAccesscontextmanagerV1IngressFrom", "properties": { "identities": { - "description": "A list of identities that are allowed access through this ingress policy, in the format of `user:{email_id}` or `serviceAccount:{email_id}`.", + "description": "A list of identities that are allowed access through [IngressPolicy]. Identities can be an individual user, service account, Google group, or third-party identity. The `v1` identities that have the prefix `user`, `group`, `serviceAccount`, `principal`, and `principalSet` in https://cloud.google.com/iam/docs/principal-identifiers#v1 are supported.", "items": { "type": "string" }, diff --git a/etc/api/cloudasset/v1p1beta1/cloudasset-api.json b/etc/api/cloudasset/v1p1beta1/cloudasset-api.json index 56ca621881..86839e9e7a 100644 --- a/etc/api/cloudasset/v1p1beta1/cloudasset-api.json +++ b/etc/api/cloudasset/v1p1beta1/cloudasset-api.json @@ -108,7 +108,7 @@ "iamPolicies": { "methods": { "searchAll": { - "description": "Searches all the IAM policies within a given accessible Resource Manager scope (project/folder/organization). This RPC gives callers especially administrators the ability to search all the IAM policies within a scope, even if they don't have `.getIamPolicy` permission of all the IAM policies. Callers should have `cloud.assets.SearchAllIamPolicies` permission on the requested scope, otherwise the request will be rejected.", + "description": "Searches all the IAM policies within a given accessible Resource Manager scope (project/folder/organization). This RPC gives callers especially administrators the ability to search all the IAM policies within a scope, even if they don't have `.getIamPolicy` permission of all the IAM policies. Callers should have `cloudasset.assets.searchAllIamPolicies` permission on the requested scope, otherwise the request will be rejected.", "flatPath": "v1p1beta1/{v1p1beta1Id}/{v1p1beta1Id1}/iamPolicies:searchAll", "httpMethod": "GET", "id": "cloudasset.iamPolicies.searchAll", @@ -153,7 +153,7 @@ "resources": { "methods": { "searchAll": { - "description": "Searches all the resources within a given accessible Resource Manager scope (project/folder/organization). This RPC gives callers especially administrators the ability to search all the resources within a scope, even if they don't have `.get` permission of all the resources. Callers should have `cloud.assets.SearchAllResources` permission on the requested scope, otherwise the request will be rejected.", + "description": "Searches all the resources within a given accessible Resource Manager scope (project/folder/organization). This RPC gives callers especially administrators the ability to search all the resources within a scope, even if they don't have `.get` permission of all the resources. Callers should have `cloudasset.assets.searchAllResources` permission on the requested scope, otherwise the request will be rejected.", "flatPath": "v1p1beta1/{v1p1beta1Id}/{v1p1beta1Id1}/resources:searchAll", "httpMethod": "GET", "id": "cloudasset.resources.searchAll", @@ -207,7 +207,7 @@ } } }, - "revision": "20240302", + "revision": "20240412", "rootUrl": "https://cloudasset.googleapis.com/", "schemas": { "AnalyzeIamPolicyLongrunningMetadata": { @@ -825,7 +825,7 @@ "id": "GoogleIdentityAccesscontextmanagerV1EgressFrom", "properties": { "identities": { - "description": "A list of identities that are allowed access through this [EgressPolicy], in the format of `user:{email_id}` or `serviceAccount:{email_id}`.", + "description": "A list of identities that are allowed access through [EgressPolicy]. Identities can be an individual user, service account, Google group, or third-party identity. The `v1` identities that have the prefix `user`, `group`, `serviceAccount`, `principal`, and `principalSet` in https://cloud.google.com/iam/docs/principal-identifiers#v1 are supported.", "items": { "type": "string" }, @@ -902,7 +902,7 @@ "id": "GoogleIdentityAccesscontextmanagerV1EgressTo", "properties": { "externalResources": { - "description": "A list of external resources that are allowed to be accessed. Only AWS and Azure resources are supported. For Amazon S3, the supported format is s3://BUCKET_NAME. For Azure Storage, the supported format is azure://myaccount.blob.core.windows.net/CONTAINER_NAME. A request matches if it contains an external resource in this list (Example: s3://bucket/path). Currently '*' is not allowed.", + "description": "A list of external resources that are allowed to be accessed. Only AWS and Azure resources are supported. For Amazon S3, the supported formats are s3://BUCKET_NAME, s3a://BUCKET_NAME, and s3n://BUCKET_NAME. For Azure Storage, the supported format is azure://myaccount.blob.core.windows.net/CONTAINER_NAME. A request matches if it contains an external resource in this list (Example: s3://bucket/path). Currently '*' is not allowed.", "items": { "type": "string" }, @@ -930,7 +930,7 @@ "id": "GoogleIdentityAccesscontextmanagerV1IngressFrom", "properties": { "identities": { - "description": "A list of identities that are allowed access through this ingress policy, in the format of `user:{email_id}` or `serviceAccount:{email_id}`.", + "description": "A list of identities that are allowed access through [IngressPolicy]. Identities can be an individual user, service account, Google group, or third-party identity. The `v1` identities that have the prefix `user`, `group`, `serviceAccount`, `principal`, and `principalSet` in https://cloud.google.com/iam/docs/principal-identifiers#v1 are supported.", "items": { "type": "string" }, diff --git a/etc/api/cloudasset/v1p5beta1/cloudasset-api.json b/etc/api/cloudasset/v1p5beta1/cloudasset-api.json index 4d85aebc09..ffaf78db0e 100644 --- a/etc/api/cloudasset/v1p5beta1/cloudasset-api.json +++ b/etc/api/cloudasset/v1p5beta1/cloudasset-api.json @@ -177,7 +177,7 @@ } } }, - "revision": "20240302", + "revision": "20240412", "rootUrl": "https://cloudasset.googleapis.com/", "schemas": { "AnalyzeIamPolicyLongrunningMetadata": { @@ -830,7 +830,7 @@ "id": "GoogleIdentityAccesscontextmanagerV1EgressFrom", "properties": { "identities": { - "description": "A list of identities that are allowed access through this [EgressPolicy], in the format of `user:{email_id}` or `serviceAccount:{email_id}`.", + "description": "A list of identities that are allowed access through [EgressPolicy]. Identities can be an individual user, service account, Google group, or third-party identity. The `v1` identities that have the prefix `user`, `group`, `serviceAccount`, `principal`, and `principalSet` in https://cloud.google.com/iam/docs/principal-identifiers#v1 are supported.", "items": { "type": "string" }, @@ -907,7 +907,7 @@ "id": "GoogleIdentityAccesscontextmanagerV1EgressTo", "properties": { "externalResources": { - "description": "A list of external resources that are allowed to be accessed. Only AWS and Azure resources are supported. For Amazon S3, the supported format is s3://BUCKET_NAME. For Azure Storage, the supported format is azure://myaccount.blob.core.windows.net/CONTAINER_NAME. A request matches if it contains an external resource in this list (Example: s3://bucket/path). Currently '*' is not allowed.", + "description": "A list of external resources that are allowed to be accessed. Only AWS and Azure resources are supported. For Amazon S3, the supported formats are s3://BUCKET_NAME, s3a://BUCKET_NAME, and s3n://BUCKET_NAME. For Azure Storage, the supported format is azure://myaccount.blob.core.windows.net/CONTAINER_NAME. A request matches if it contains an external resource in this list (Example: s3://bucket/path). Currently '*' is not allowed.", "items": { "type": "string" }, @@ -935,7 +935,7 @@ "id": "GoogleIdentityAccesscontextmanagerV1IngressFrom", "properties": { "identities": { - "description": "A list of identities that are allowed access through this ingress policy, in the format of `user:{email_id}` or `serviceAccount:{email_id}`.", + "description": "A list of identities that are allowed access through [IngressPolicy]. Identities can be an individual user, service account, Google group, or third-party identity. The `v1` identities that have the prefix `user`, `group`, `serviceAccount`, `principal`, and `principalSet` in https://cloud.google.com/iam/docs/principal-identifiers#v1 are supported.", "items": { "type": "string" }, diff --git a/etc/api/cloudasset/v1p7beta1/cloudasset-api.json b/etc/api/cloudasset/v1p7beta1/cloudasset-api.json index aad97bdea5..a1c664f8c9 100644 --- a/etc/api/cloudasset/v1p7beta1/cloudasset-api.json +++ b/etc/api/cloudasset/v1p7beta1/cloudasset-api.json @@ -167,7 +167,7 @@ } } }, - "revision": "20240302", + "revision": "20240412", "rootUrl": "https://cloudasset.googleapis.com/", "schemas": { "AnalyzeIamPolicyLongrunningMetadata": { @@ -899,7 +899,7 @@ "id": "GoogleIdentityAccesscontextmanagerV1EgressFrom", "properties": { "identities": { - "description": "A list of identities that are allowed access through this [EgressPolicy], in the format of `user:{email_id}` or `serviceAccount:{email_id}`.", + "description": "A list of identities that are allowed access through [EgressPolicy]. Identities can be an individual user, service account, Google group, or third-party identity. The `v1` identities that have the prefix `user`, `group`, `serviceAccount`, `principal`, and `principalSet` in https://cloud.google.com/iam/docs/principal-identifiers#v1 are supported.", "items": { "type": "string" }, @@ -976,7 +976,7 @@ "id": "GoogleIdentityAccesscontextmanagerV1EgressTo", "properties": { "externalResources": { - "description": "A list of external resources that are allowed to be accessed. Only AWS and Azure resources are supported. For Amazon S3, the supported format is s3://BUCKET_NAME. For Azure Storage, the supported format is azure://myaccount.blob.core.windows.net/CONTAINER_NAME. A request matches if it contains an external resource in this list (Example: s3://bucket/path). Currently '*' is not allowed.", + "description": "A list of external resources that are allowed to be accessed. Only AWS and Azure resources are supported. For Amazon S3, the supported formats are s3://BUCKET_NAME, s3a://BUCKET_NAME, and s3n://BUCKET_NAME. For Azure Storage, the supported format is azure://myaccount.blob.core.windows.net/CONTAINER_NAME. A request matches if it contains an external resource in this list (Example: s3://bucket/path). Currently '*' is not allowed.", "items": { "type": "string" }, @@ -1004,7 +1004,7 @@ "id": "GoogleIdentityAccesscontextmanagerV1IngressFrom", "properties": { "identities": { - "description": "A list of identities that are allowed access through this ingress policy, in the format of `user:{email_id}` or `serviceAccount:{email_id}`.", + "description": "A list of identities that are allowed access through [IngressPolicy]. Identities can be an individual user, service account, Google group, or third-party identity. The `v1` identities that have the prefix `user`, `group`, `serviceAccount`, `principal`, and `principalSet` in https://cloud.google.com/iam/docs/principal-identifiers#v1 are supported.", "items": { "type": "string" }, diff --git a/etc/api/cloudbilling/v1/cloudbilling-api.json b/etc/api/cloudbilling/v1/cloudbilling-api.json index 01f2f96231..7726cc33ae 100644 --- a/etc/api/cloudbilling/v1/cloudbilling-api.json +++ b/etc/api/cloudbilling/v1/cloudbilling-api.json @@ -751,7 +751,7 @@ } } }, - "revision": "20240214", + "revision": "20240412", "rootUrl": "https://cloudbilling.googleapis.com/", "schemas": { "AggregationInfo": { diff --git a/etc/api/cloudbuild/v1/cloudbuild-api.json b/etc/api/cloudbuild/v1/cloudbuild-api.json index 36183b104d..306f372c6a 100644 --- a/etc/api/cloudbuild/v1/cloudbuild-api.json +++ b/etc/api/cloudbuild/v1/cloudbuild-api.json @@ -2346,7 +2346,7 @@ } } }, - "revision": "20240223", + "revision": "20240411", "rootUrl": "https://cloudbuild.googleapis.com/", "schemas": { "ApprovalConfig": { @@ -3089,6 +3089,14 @@ "E2_HIGHCPU_32", "E2_MEDIUM" ], + "enumDeprecated": [ + false, + true, + true, + false, + false, + false + ], "enumDescriptions": [ "Standard machine type.", "Highcpu machine with 8 CPUs.", @@ -4576,10 +4584,6 @@ "$ref": "NetworkConfig", "description": "Network configuration for the pool." }, - "privateServiceConnect": { - "$ref": "PrivateServiceConnect", - "description": "Immutable. Private Service Connect(PSC) Network configuration for the pool." - }, "workerConfig": { "$ref": "WorkerConfig", "description": "Machine configuration for the workers in the pool." @@ -4587,25 +4591,6 @@ }, "type": "object" }, - "PrivateServiceConnect": { - "description": "Defines the Private Service Connect network configuration for the pool.", - "id": "PrivateServiceConnect", - "properties": { - "networkAttachment": { - "description": "Required. Immutable. The network attachment that the worker network interface is peered to. Must be in the format `projects/{project}/regions/{region}/networkAttachments/{networkAttachment}`. The region of network attachment must be the same as the worker pool. See [Network Attachments](https://cloud.google.com/vpc/docs/about-network-attachments)", - "type": "string" - }, - "publicIpAddressDisabled": { - "description": "Required. Immutable. Disable public IP on the primary network interface. If true, workers are created without any public address, which prevents network egress to public IPs unless a network proxy is configured. If false, workers are created with a public address which allows for public internet egress. The public address only applies to traffic through the primary network interface. If `route_all_traffic` is set to true, all traffic will go through the non-primary network interface, this boolean has no effect.", - "type": "boolean" - }, - "routeAllTraffic": { - "description": "Immutable. Route all traffic through PSC interface. Enable this if you want full control of traffic in the private pool. Configure Cloud NAT for the subnet of network attachment if you need to access public Internet. If false, Only route private IPs, e.g. 10.0.0.0/8, 172.16.0.0/12, and 192.168.0.0/16 through PSC interface.", - "type": "boolean" - } - }, - "type": "object" - }, "ProcessAppManifestCallbackOperationMetadata": { "description": "Metadata for `ProcessAppManifestCallback` operation.", "id": "ProcessAppManifestCallbackOperationMetadata", diff --git a/etc/api/cloudchannel/v1/cloudchannel-api.json b/etc/api/cloudchannel/v1/cloudchannel-api.json index fbb2c552e1..a75ddab4a5 100644 --- a/etc/api/cloudchannel/v1/cloudchannel-api.json +++ b/etc/api/cloudchannel/v1/cloudchannel-api.json @@ -2183,7 +2183,7 @@ } } }, - "revision": "20240303", + "revision": "20240417", "rootUrl": "https://cloudchannel.googleapis.com/", "schemas": { "GoogleCloudChannelV1ActivateEntitlementRequest": { diff --git a/etc/api/clouddeploy/v1/clouddeploy-api.json b/etc/api/clouddeploy/v1/clouddeploy-api.json index e717ed2bcb..a1d9cd782e 100644 --- a/etc/api/clouddeploy/v1/clouddeploy-api.json +++ b/etc/api/clouddeploy/v1/clouddeploy-api.json @@ -2065,7 +2065,7 @@ } } }, - "revision": "20240221", + "revision": "20240410", "rootUrl": "https://clouddeploy.googleapis.com/", "schemas": { "AbandonReleaseRequest": { diff --git a/etc/api/clouderrorreporting/v1beta1/clouderrorreporting-api.json b/etc/api/clouderrorreporting/v1beta1/clouderrorreporting-api.json index fd37a53f4b..62974084c1 100644 --- a/etc/api/clouderrorreporting/v1beta1/clouderrorreporting-api.json +++ b/etc/api/clouderrorreporting/v1beta1/clouderrorreporting-api.json @@ -214,7 +214,7 @@ ] }, "report": { - "description": "Report an individual error event and record the event to a log. This endpoint accepts **either** an OAuth token, **or** an [API key](https://support.google.com/cloud/answer/6158862) for authentication. To use an API key, append it to the URL as the value of a `key` parameter. For example: `POST https://clouderrorreporting.googleapis.com/v1beta1/{projectName}/events:report?key=123ABC456` **Note:** [Error Reporting] (https://cloud.google.com/error-reporting) is a global service built on Cloud Logging and doesn't analyze logs stored in regional log buckets or logs routed to other Google Cloud projects.", + "description": "Report an individual error event and record the event to a log. This endpoint accepts **either** an OAuth token, **or** an [API key](https://support.google.com/cloud/answer/6158862) for authentication. To use an API key, append it to the URL as the value of a `key` parameter. For example: `POST https://clouderrorreporting.googleapis.com/v1beta1/{projectName}/events:report?key=123ABC456` **Note:** [Error Reporting] (https://cloud.google.com/error-reporting) is a global service built on Cloud Logging and can analyze log entries when all of the following are true: * The log entries are stored in a log bucket in the `global` location. * Customer-managed encryption keys (CMEK) are disabled on the log bucket. * The log bucket satisfies one of the following: * The log bucket is stored in the same project where the logs originated. * The logs were routed to a project, and then that project stored those logs in a log bucket that it owns.", "flatPath": "v1beta1/projects/{projectsId}/events:report", "httpMethod": "POST", "id": "clouderrorreporting.projects.events.report", @@ -431,7 +431,7 @@ } } }, - "revision": "20240221", + "revision": "20240412", "rootUrl": "https://clouderrorreporting.googleapis.com/", "schemas": { "DeleteEventsResponse": { diff --git a/etc/api/cloudfunctions/v1/cloudfunctions-api.json b/etc/api/cloudfunctions/v1/cloudfunctions-api.json index ea111c4aa1..9574e89b5e 100644 --- a/etc/api/cloudfunctions/v1/cloudfunctions-api.json +++ b/etc/api/cloudfunctions/v1/cloudfunctions-api.json @@ -552,7 +552,7 @@ } } }, - "revision": "20240229", + "revision": "20240411", "rootUrl": "https://cloudfunctions.googleapis.com/", "schemas": { "AuditConfig": { diff --git a/etc/api/cloudfunctions/v2alpha/cloudfunctions-api.json b/etc/api/cloudfunctions/v2alpha/cloudfunctions-api.json index 39b2172033..7d00717266 100644 --- a/etc/api/cloudfunctions/v2alpha/cloudfunctions-api.json +++ b/etc/api/cloudfunctions/v2alpha/cloudfunctions-api.json @@ -339,6 +339,11 @@ "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": "v2alpha/{+name}", @@ -711,7 +716,7 @@ } } }, - "revision": "20240222", + "revision": "20240411", "rootUrl": "https://cloudfunctions.googleapis.com/", "schemas": { "AbortFunctionUpgradeRequest": { @@ -809,7 +814,7 @@ "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 `docker_repository` field is specified, this field will be automatically set as `ARTIFACT_REGISTRY`. If unspecified, it currently defaults to `CONTAINER_REGISTRY`. This field may be overridden by the backend for eligible deployments.", + "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", diff --git a/etc/api/cloudfunctions/v2beta/cloudfunctions-api.json b/etc/api/cloudfunctions/v2beta/cloudfunctions-api.json index b60b615539..c6e0f98fd7 100644 --- a/etc/api/cloudfunctions/v2beta/cloudfunctions-api.json +++ b/etc/api/cloudfunctions/v2beta/cloudfunctions-api.json @@ -339,6 +339,11 @@ "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}", @@ -711,7 +716,7 @@ } } }, - "revision": "20240222", + "revision": "20240411", "rootUrl": "https://cloudfunctions.googleapis.com/", "schemas": { "AbortFunctionUpgradeRequest": { @@ -809,7 +814,7 @@ "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 `docker_repository` field is specified, this field will be automatically set as `ARTIFACT_REGISTRY`. If unspecified, it currently defaults to `CONTAINER_REGISTRY`. This field may be overridden by the backend for eligible deployments.", + "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", diff --git a/etc/api/cloudidentity/v1/cloudidentity-api.json b/etc/api/cloudidentity/v1/cloudidentity-api.json index 8a091a4caf..d4cd5ed659 100644 --- a/etc/api/cloudidentity/v1/cloudidentity-api.json +++ b/etc/api/cloudidentity/v1/cloudidentity-api.json @@ -1990,7 +1990,7 @@ } } }, - "revision": "20240227", + "revision": "20240416", "rootUrl": "https://cloudidentity.googleapis.com/", "schemas": { "AddIdpCredentialOperationMetadata": { @@ -2324,6 +2324,128 @@ }, "type": "object" }, + "GoogleAppsCloudidentityDevicesV1BrowserAttributes": { + "description": "Contains information about browser profiles reported by the [Endpoint Verification extension](https://chromewebstore.google.com/detail/endpoint-verification/callobklhcbilhphinckomhgkigmfocg?pli=1).", + "id": "GoogleAppsCloudidentityDevicesV1BrowserAttributes", + "properties": { + "chromeBrowserInfo": { + "$ref": "GoogleAppsCloudidentityDevicesV1BrowserInfo", + "description": "Represents the current state of the [Chrome browser attributes](https://cloud.google.com/access-context-manager/docs/browser-attributes) sent by the [Endpoint Verification extension](https://chromewebstore.google.com/detail/endpoint-verification/callobklhcbilhphinckomhgkigmfocg?pli=1)." + }, + "chromeProfileId": { + "description": "Chrome profile ID that is exposed by the Chrome API. It is unique for each device.", + "type": "string" + }, + "lastProfileSyncTime": { + "description": "Timestamp in milliseconds since Epoch when the profile/gcm id was last synced.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAppsCloudidentityDevicesV1BrowserInfo": { + "description": "Browser-specific fields reported by the [Endpoint Verification extension](https://chromewebstore.google.com/detail/endpoint-verification/callobklhcbilhphinckomhgkigmfocg?pli=1). LINT.IfChange", + "id": "GoogleAppsCloudidentityDevicesV1BrowserInfo", + "properties": { + "browserManagementState": { + "description": "Output only. Browser's management state.", + "enum": [ + "UNSPECIFIED", + "UNMANAGED", + "MANAGED_BY_OTHER_DOMAIN", + "PROFILE_MANAGED", + "BROWSER_MANAGED" + ], + "enumDescriptions": [ + "Management state is not specified.", + "Browser/Profile is not managed by any customer.", + "Browser/Profile is managed, but by some other customer.", + "Profile is managed by customer.", + "Browser is managed by customer." + ], + "readOnly": true, + "type": "string" + }, + "browserVersion": { + "description": "Version of the request initiating browser.", + "type": "string" + }, + "isBuiltInDnsClientEnabled": { + "description": "Current state of [built-in DNS client](https://chromeenterprise.google/policies/#BuiltInDnsClientEnabled).", + "type": "boolean" + }, + "isBulkDataEntryAnalysisEnabled": { + "description": "Current state of [bulk data analysis](https://chromeenterprise.google/policies/#OnBulkDataEntryEnterpriseConnector). Set to true if provider list from Chrome is non-empty.", + "type": "boolean" + }, + "isChromeCleanupEnabled": { + "description": "Current state of [Chrome Cleanup](https://chromeenterprise.google/policies/#ChromeCleanupEnabled).", + "type": "boolean" + }, + "isChromeRemoteDesktopAppBlocked": { + "description": "Current state of [Chrome Remote Desktop app](https://chromeenterprise.google/policies/#URLBlocklist).", + "type": "boolean" + }, + "isFileDownloadAnalysisEnabled": { + "description": "Current state of [file download analysis](https://chromeenterprise.google/policies/#OnFileDownloadedEnterpriseConnector). Set to true if provider list from Chrome is non-empty.", + "type": "boolean" + }, + "isFileUploadAnalysisEnabled": { + "description": "Current state of [file upload analysis](https://chromeenterprise.google/policies/#OnFileAttachedEnterpriseConnector). Set to true if provider list from Chrome is non-empty.", + "type": "boolean" + }, + "isRealtimeUrlCheckEnabled": { + "description": "Current state of [real-time URL check](https://chromeenterprise.google/policies/#EnterpriseRealTimeUrlCheckMode). Set to true if provider list from Chrome is non-empty.", + "type": "boolean" + }, + "isSecurityEventAnalysisEnabled": { + "description": "Current state of [security event analysis](https://chromeenterprise.google/policies/#OnSecurityEventEnterpriseConnector). Set to true if provider list from Chrome is non-empty.", + "type": "boolean" + }, + "isSiteIsolationEnabled": { + "description": "Current state of [site isolation](https://chromeenterprise.google/policies/?policy=IsolateOrigins).", + "type": "boolean" + }, + "isThirdPartyBlockingEnabled": { + "description": "Current state of [third-party blocking](https://chromeenterprise.google/policies/#ThirdPartyBlockingEnabled).", + "type": "boolean" + }, + "passwordProtectionWarningTrigger": { + "description": "Current state of [password protection trigger](https://chromeenterprise.google/policies/#PasswordProtectionWarningTrigger).", + "enum": [ + "PASSWORD_PROTECTION_TRIGGER_UNSPECIFIED", + "PROTECTION_OFF", + "PASSWORD_REUSE", + "PHISHING_REUSE" + ], + "enumDescriptions": [ + "Password protection is not specified.", + "Password reuse is never detected.", + "Warning is shown when the user reuses their protected password on a non-allowed site.", + "Warning is shown when the user reuses their protected password on a phishing site." + ], + "type": "string" + }, + "safeBrowsingProtectionLevel": { + "description": "Current state of [Safe Browsing protection level](https://chromeenterprise.google/policies/#SafeBrowsingProtectionLevel).", + "enum": [ + "SAFE_BROWSING_LEVEL_UNSPECIFIED", + "DISABLED", + "STANDARD", + "ENHANCED" + ], + "enumDescriptions": [ + "Browser protection level is not specified.", + "No protection against dangerous websites, downloads, and extensions.", + "Standard protection against websites, downloads, and extensions that are known to be dangerous.", + "Faster, proactive protection against dangerous websites, downloads, and extensions." + ], + "type": "string" + } + }, + "type": "object" + }, "GoogleAppsCloudidentityDevicesV1CancelWipeDeviceMetadata": { "description": "Metadata for CancelWipeDevice LRO.", "id": "GoogleAppsCloudidentityDevicesV1CancelWipeDeviceMetadata", @@ -2380,6 +2502,83 @@ }, "type": "object" }, + "GoogleAppsCloudidentityDevicesV1CertificateAttributes": { + "description": "Stores information about a certificate.", + "id": "GoogleAppsCloudidentityDevicesV1CertificateAttributes", + "properties": { + "certificateTemplate": { + "$ref": "GoogleAppsCloudidentityDevicesV1CertificateTemplate", + "description": "The X.509 extension for CertificateTemplate." + }, + "fingerprint": { + "description": "The encoded certificate fingerprint.", + "type": "string" + }, + "issuer": { + "description": "The name of the issuer of this certificate.", + "type": "string" + }, + "serialNumber": { + "description": "Serial number of the certificate, Example: \"123456789\".", + "type": "string" + }, + "subject": { + "description": "The subject name of this certificate.", + "type": "string" + }, + "thumbprint": { + "description": "The certificate thumbprint.", + "type": "string" + }, + "validationState": { + "description": "Output only. Validation state of this certificate.", + "enum": [ + "CERTIFICATE_VALIDATION_STATE_UNSPECIFIED", + "VALIDATION_SUCCESSFUL", + "VALIDATION_FAILED" + ], + "enumDescriptions": [ + "Default value.", + "Certificate validation was successful.", + "Certificate validation failed." + ], + "readOnly": true, + "type": "string" + }, + "validityExpirationTime": { + "description": "Certificate not valid at or after this timestamp.", + "format": "google-datetime", + "type": "string" + }, + "validityStartTime": { + "description": "Certificate not valid before this timestamp.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAppsCloudidentityDevicesV1CertificateTemplate": { + "description": "CertificateTemplate (v3 Extension in X.509).", + "id": "GoogleAppsCloudidentityDevicesV1CertificateTemplate", + "properties": { + "id": { + "description": "The template id of the template. Example: \"1.3.6.1.4.1.311.21.8.15608621.11768144.5720724.16068415.6889630.81.2472537.7784047\".", + "type": "string" + }, + "majorVersion": { + "description": "The Major version of the template. Example: 100.", + "format": "int32", + "type": "integer" + }, + "minorVersion": { + "description": "The minor version of the template. Example: 12.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "GoogleAppsCloudidentityDevicesV1ClientState": { "description": "Represents the state associated with an API client calling the Devices API. Resource representing ClientState and supports updates from API users", "id": "GoogleAppsCloudidentityDevicesV1ClientState", @@ -2641,6 +2840,11 @@ "readOnly": true, "type": "string" }, + "endpointVerificationSpecificAttributes": { + "$ref": "GoogleAppsCloudidentityDevicesV1EndpointVerificationSpecificAttributes", + "description": "Output only. Attributes specific to [Endpoint Verification](https://cloud.google.com/endpoint-verification/docs/overview) devices.", + "readOnly": true + }, "hostname": { "description": "Host name of the device.", "type": "string" @@ -2855,6 +3059,35 @@ }, "type": "object" }, + "GoogleAppsCloudidentityDevicesV1EndpointVerificationSpecificAttributes": { + "description": "Resource representing the [Endpoint Verification-specific attributes](https://cloud.google.com/endpoint-verification/docs/device-information) of a device.", + "id": "GoogleAppsCloudidentityDevicesV1EndpointVerificationSpecificAttributes", + "properties": { + "additionalSignals": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Additional signals reported by Endpoint Verification. It includes the following attributes: 1. Non-configurable attributes: hotfixes, av_installed, av_enabled, windows_domain_name, is_os_native_firewall_enabled, and is_secure_boot_enabled. 2. [Configurable attributes](https://cloud.google.com/endpoint-verification/docs/collect-config-attributes): file, folder, and binary attributes; registry entries; and properties in a plist.", + "type": "object" + }, + "browserAttributes": { + "description": "Details of browser profiles reported by Endpoint Verification.", + "items": { + "$ref": "GoogleAppsCloudidentityDevicesV1BrowserAttributes" + }, + "type": "array" + }, + "certificateAttributes": { + "description": "Details of certificates.", + "items": { + "$ref": "GoogleAppsCloudidentityDevicesV1CertificateAttributes" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleAppsCloudidentityDevicesV1ListClientStatesResponse": { "description": "Response message that is returned in ListClientStates.", "id": "GoogleAppsCloudidentityDevicesV1ListClientStatesResponse", diff --git a/etc/api/cloudidentity/v1beta1/cloudidentity-api.json b/etc/api/cloudidentity/v1beta1/cloudidentity-api.json index 99da603a42..480f5bdffb 100644 --- a/etc/api/cloudidentity/v1beta1/cloudidentity-api.json +++ b/etc/api/cloudidentity/v1beta1/cloudidentity-api.json @@ -2015,7 +2015,7 @@ } } }, - "revision": "20240227", + "revision": "20240416", "rootUrl": "https://cloudidentity.googleapis.com/", "schemas": { "AddIdpCredentialOperationMetadata": { @@ -3162,6 +3162,128 @@ }, "type": "object" }, + "GoogleAppsCloudidentityDevicesV1BrowserAttributes": { + "description": "Contains information about browser profiles reported by the [Endpoint Verification extension](https://chromewebstore.google.com/detail/endpoint-verification/callobklhcbilhphinckomhgkigmfocg?pli=1).", + "id": "GoogleAppsCloudidentityDevicesV1BrowserAttributes", + "properties": { + "chromeBrowserInfo": { + "$ref": "GoogleAppsCloudidentityDevicesV1BrowserInfo", + "description": "Represents the current state of the [Chrome browser attributes](https://cloud.google.com/access-context-manager/docs/browser-attributes) sent by the [Endpoint Verification extension](https://chromewebstore.google.com/detail/endpoint-verification/callobklhcbilhphinckomhgkigmfocg?pli=1)." + }, + "chromeProfileId": { + "description": "Chrome profile ID that is exposed by the Chrome API. It is unique for each device.", + "type": "string" + }, + "lastProfileSyncTime": { + "description": "Timestamp in milliseconds since Epoch when the profile/gcm id was last synced.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAppsCloudidentityDevicesV1BrowserInfo": { + "description": "Browser-specific fields reported by the [Endpoint Verification extension](https://chromewebstore.google.com/detail/endpoint-verification/callobklhcbilhphinckomhgkigmfocg?pli=1). LINT.IfChange", + "id": "GoogleAppsCloudidentityDevicesV1BrowserInfo", + "properties": { + "browserManagementState": { + "description": "Output only. Browser's management state.", + "enum": [ + "UNSPECIFIED", + "UNMANAGED", + "MANAGED_BY_OTHER_DOMAIN", + "PROFILE_MANAGED", + "BROWSER_MANAGED" + ], + "enumDescriptions": [ + "Management state is not specified.", + "Browser/Profile is not managed by any customer.", + "Browser/Profile is managed, but by some other customer.", + "Profile is managed by customer.", + "Browser is managed by customer." + ], + "readOnly": true, + "type": "string" + }, + "browserVersion": { + "description": "Version of the request initiating browser.", + "type": "string" + }, + "isBuiltInDnsClientEnabled": { + "description": "Current state of [built-in DNS client](https://chromeenterprise.google/policies/#BuiltInDnsClientEnabled).", + "type": "boolean" + }, + "isBulkDataEntryAnalysisEnabled": { + "description": "Current state of [bulk data analysis](https://chromeenterprise.google/policies/#OnBulkDataEntryEnterpriseConnector). Set to true if provider list from Chrome is non-empty.", + "type": "boolean" + }, + "isChromeCleanupEnabled": { + "description": "Current state of [Chrome Cleanup](https://chromeenterprise.google/policies/#ChromeCleanupEnabled).", + "type": "boolean" + }, + "isChromeRemoteDesktopAppBlocked": { + "description": "Current state of [Chrome Remote Desktop app](https://chromeenterprise.google/policies/#URLBlocklist).", + "type": "boolean" + }, + "isFileDownloadAnalysisEnabled": { + "description": "Current state of [file download analysis](https://chromeenterprise.google/policies/#OnFileDownloadedEnterpriseConnector). Set to true if provider list from Chrome is non-empty.", + "type": "boolean" + }, + "isFileUploadAnalysisEnabled": { + "description": "Current state of [file upload analysis](https://chromeenterprise.google/policies/#OnFileAttachedEnterpriseConnector). Set to true if provider list from Chrome is non-empty.", + "type": "boolean" + }, + "isRealtimeUrlCheckEnabled": { + "description": "Current state of [real-time URL check](https://chromeenterprise.google/policies/#EnterpriseRealTimeUrlCheckMode). Set to true if provider list from Chrome is non-empty.", + "type": "boolean" + }, + "isSecurityEventAnalysisEnabled": { + "description": "Current state of [security event analysis](https://chromeenterprise.google/policies/#OnSecurityEventEnterpriseConnector). Set to true if provider list from Chrome is non-empty.", + "type": "boolean" + }, + "isSiteIsolationEnabled": { + "description": "Current state of [site isolation](https://chromeenterprise.google/policies/?policy=IsolateOrigins).", + "type": "boolean" + }, + "isThirdPartyBlockingEnabled": { + "description": "Current state of [third-party blocking](https://chromeenterprise.google/policies/#ThirdPartyBlockingEnabled).", + "type": "boolean" + }, + "passwordProtectionWarningTrigger": { + "description": "Current state of [password protection trigger](https://chromeenterprise.google/policies/#PasswordProtectionWarningTrigger).", + "enum": [ + "PASSWORD_PROTECTION_TRIGGER_UNSPECIFIED", + "PROTECTION_OFF", + "PASSWORD_REUSE", + "PHISHING_REUSE" + ], + "enumDescriptions": [ + "Password protection is not specified.", + "Password reuse is never detected.", + "Warning is shown when the user reuses their protected password on a non-allowed site.", + "Warning is shown when the user reuses their protected password on a phishing site." + ], + "type": "string" + }, + "safeBrowsingProtectionLevel": { + "description": "Current state of [Safe Browsing protection level](https://chromeenterprise.google/policies/#SafeBrowsingProtectionLevel).", + "enum": [ + "SAFE_BROWSING_LEVEL_UNSPECIFIED", + "DISABLED", + "STANDARD", + "ENHANCED" + ], + "enumDescriptions": [ + "Browser protection level is not specified.", + "No protection against dangerous websites, downloads, and extensions.", + "Standard protection against websites, downloads, and extensions that are known to be dangerous.", + "Faster, proactive protection against dangerous websites, downloads, and extensions." + ], + "type": "string" + } + }, + "type": "object" + }, "GoogleAppsCloudidentityDevicesV1CancelWipeDeviceMetadata": { "description": "Metadata for CancelWipeDevice LRO.", "id": "GoogleAppsCloudidentityDevicesV1CancelWipeDeviceMetadata", @@ -3196,6 +3318,83 @@ }, "type": "object" }, + "GoogleAppsCloudidentityDevicesV1CertificateAttributes": { + "description": "Stores information about a certificate.", + "id": "GoogleAppsCloudidentityDevicesV1CertificateAttributes", + "properties": { + "certificateTemplate": { + "$ref": "GoogleAppsCloudidentityDevicesV1CertificateTemplate", + "description": "The X.509 extension for CertificateTemplate." + }, + "fingerprint": { + "description": "The encoded certificate fingerprint.", + "type": "string" + }, + "issuer": { + "description": "The name of the issuer of this certificate.", + "type": "string" + }, + "serialNumber": { + "description": "Serial number of the certificate, Example: \"123456789\".", + "type": "string" + }, + "subject": { + "description": "The subject name of this certificate.", + "type": "string" + }, + "thumbprint": { + "description": "The certificate thumbprint.", + "type": "string" + }, + "validationState": { + "description": "Output only. Validation state of this certificate.", + "enum": [ + "CERTIFICATE_VALIDATION_STATE_UNSPECIFIED", + "VALIDATION_SUCCESSFUL", + "VALIDATION_FAILED" + ], + "enumDescriptions": [ + "Default value.", + "Certificate validation was successful.", + "Certificate validation failed." + ], + "readOnly": true, + "type": "string" + }, + "validityExpirationTime": { + "description": "Certificate not valid at or after this timestamp.", + "format": "google-datetime", + "type": "string" + }, + "validityStartTime": { + "description": "Certificate not valid before this timestamp.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "GoogleAppsCloudidentityDevicesV1CertificateTemplate": { + "description": "CertificateTemplate (v3 Extension in X.509).", + "id": "GoogleAppsCloudidentityDevicesV1CertificateTemplate", + "properties": { + "id": { + "description": "The template id of the template. Example: \"1.3.6.1.4.1.311.21.8.15608621.11768144.5720724.16068415.6889630.81.2472537.7784047\".", + "type": "string" + }, + "majorVersion": { + "description": "The Major version of the template. Example: 100.", + "format": "int32", + "type": "integer" + }, + "minorVersion": { + "description": "The minor version of the template. Example: 12.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "GoogleAppsCloudidentityDevicesV1ClientState": { "description": "Represents the state associated with an API client calling the Devices API. Resource representing ClientState and supports updates from API users", "id": "GoogleAppsCloudidentityDevicesV1ClientState", @@ -3457,6 +3656,11 @@ "readOnly": true, "type": "string" }, + "endpointVerificationSpecificAttributes": { + "$ref": "GoogleAppsCloudidentityDevicesV1EndpointVerificationSpecificAttributes", + "description": "Output only. Attributes specific to [Endpoint Verification](https://cloud.google.com/endpoint-verification/docs/overview) devices.", + "readOnly": true + }, "hostname": { "description": "Host name of the device.", "type": "string" @@ -3671,6 +3875,35 @@ }, "type": "object" }, + "GoogleAppsCloudidentityDevicesV1EndpointVerificationSpecificAttributes": { + "description": "Resource representing the [Endpoint Verification-specific attributes](https://cloud.google.com/endpoint-verification/docs/device-information) of a device.", + "id": "GoogleAppsCloudidentityDevicesV1EndpointVerificationSpecificAttributes", + "properties": { + "additionalSignals": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Additional signals reported by Endpoint Verification. It includes the following attributes: 1. Non-configurable attributes: hotfixes, av_installed, av_enabled, windows_domain_name, is_os_native_firewall_enabled, and is_secure_boot_enabled. 2. [Configurable attributes](https://cloud.google.com/endpoint-verification/docs/collect-config-attributes): file, folder, and binary attributes; registry entries; and properties in a plist.", + "type": "object" + }, + "browserAttributes": { + "description": "Details of browser profiles reported by Endpoint Verification.", + "items": { + "$ref": "GoogleAppsCloudidentityDevicesV1BrowserAttributes" + }, + "type": "array" + }, + "certificateAttributes": { + "description": "Details of certificates.", + "items": { + "$ref": "GoogleAppsCloudidentityDevicesV1CertificateAttributes" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleAppsCloudidentityDevicesV1ListEndpointAppsMetadata": { "description": "Metadata for ListEndpointApps LRO.", "id": "GoogleAppsCloudidentityDevicesV1ListEndpointAppsMetadata", diff --git a/etc/api/cloudkms/v1/cloudkms-api.json b/etc/api/cloudkms/v1/cloudkms-api.json index 8dd63588be..ae3ae7bb82 100644 --- a/etc/api/cloudkms/v1/cloudkms-api.json +++ b/etc/api/cloudkms/v1/cloudkms-api.json @@ -1838,7 +1838,7 @@ } } }, - "revision": "20240219", + "revision": "20240411", "rootUrl": "https://cloudkms.googleapis.com/", "schemas": { "AsymmetricDecryptRequest": { @@ -3514,11 +3514,11 @@ "type": "string" }, "pem": { - "description": "A public key encoded in PEM format, populated only when GetPublicKey returns one key. For more information, see the [RFC 7468](https://tools.ietf.org/html/rfc7468) sections for [General Considerations](https://tools.ietf.org/html/rfc7468#section-2) and [Textual Encoding of Subject Public Key Info] (https://tools.ietf.org/html/rfc7468#section-13).", + "description": "The public key, encoded in PEM format. For more information, see the [RFC 7468](https://tools.ietf.org/html/rfc7468) sections for [General Considerations](https://tools.ietf.org/html/rfc7468#section-2) and [Textual Encoding of Subject Public Key Info] (https://tools.ietf.org/html/rfc7468#section-13).", "type": "string" }, "pemCrc32c": { - "description": "Integrity verification field: A CRC32C checksum of the returned PublicKey.pem. It is only populated when GetPublicKey returns one key. An integrity check of PublicKey.pem can be performed by computing the CRC32C checksum of PublicKey.pem and comparing your results to this field. Discard the response in case of non-matching checksum values, and perform a limited number of retries. A persistent mismatch may indicate an issue in your computation of the CRC32C checksum. Note: This field is defined as int64 for reasons of compatibility across different languages. However, it is a non-negative integer, which will never exceed 2^32-1, and can be safely downconverted to uint32 in languages that support this type. NOTE: This field is in Beta.", + "description": "Integrity verification field. A CRC32C checksum of the returned PublicKey.pem. An integrity check of PublicKey.pem can be performed by computing the CRC32C checksum of PublicKey.pem and comparing your results to this field. Discard the response in case of non-matching checksum values, and perform a limited number of retries. A persistent mismatch may indicate an issue in your computation of the CRC32C checksum. Note: This field is defined as int64 for reasons of compatibility across different languages. However, it is a non-negative integer, which will never exceed 2^32-1, and can be safely downconverted to uint32 in languages that support this type. NOTE: This field is in Beta.", "format": "int64", "type": "string" }, diff --git a/etc/api/cloudprofiler/v2/cloudprofiler-api.json b/etc/api/cloudprofiler/v2/cloudprofiler-api.json index 0e64258da7..5e0fec91f6 100644 --- a/etc/api/cloudprofiler/v2/cloudprofiler-api.json +++ b/etc/api/cloudprofiler/v2/cloudprofiler-api.json @@ -185,13 +185,13 @@ ], "parameters": { "pageSize": { - "description": "The maximum number of items to return. Default page_size is 1000. Max limit is 1000.", + "description": "Optional. The maximum number of items to return. Default page_size is 1000. Max limit is 1000.", "format": "int32", "location": "query", "type": "integer" }, "pageToken": { - "description": "The token to continue pagination and get profiles from a particular page. When paginating, all other parameters provided to `ListProfiles` must match the call that provided the page token.", + "description": "Optional. The token to continue pagination and get profiles from a particular page. When paginating, all other parameters provided to `ListProfiles` must match the call that provided the page token.", "location": "query", "type": "string" }, @@ -254,7 +254,7 @@ } } }, - "revision": "20240219", + "revision": "20240331", "rootUrl": "https://cloudprofiler.googleapis.com/", "schemas": { "CreateProfileRequest": { diff --git a/etc/api/cloudresourcemanager/v1/cloudresourcemanager-api.json b/etc/api/cloudresourcemanager/v1/cloudresourcemanager-api.json index aadfc48a5e..0069d91c5a 100644 --- a/etc/api/cloudresourcemanager/v1/cloudresourcemanager-api.json +++ b/etc/api/cloudresourcemanager/v1/cloudresourcemanager-api.json @@ -1171,7 +1171,7 @@ } } }, - "revision": "20240303", + "revision": "20240414", "rootUrl": "https://cloudresourcemanager.googleapis.com/", "schemas": { "Ancestor": { @@ -2079,7 +2079,7 @@ "additionalProperties": { "type": "string" }, - "description": "Optional. Input only. Immutable. Tag keys/values directly bound to this project. Each item in the map must be expressed as \" : \". For example: \"123/environment\" : \"production\", \"123/costCenter\" : \"marketing\"", + "description": "Optional. Input only. Immutable. Tag keys/values directly bound to this project. Each item in the map must be expressed as \" : \". For example: \"123/environment\" : \"production\", \"123/costCenter\" : \"marketing\" Note: Currently this field is in Preview.", "type": "object" } }, diff --git a/etc/api/cloudresourcemanager/v1beta1/cloudresourcemanager-api.json b/etc/api/cloudresourcemanager/v1beta1/cloudresourcemanager-api.json index 33f690f24f..1fabcf37e8 100644 --- a/etc/api/cloudresourcemanager/v1beta1/cloudresourcemanager-api.json +++ b/etc/api/cloudresourcemanager/v1beta1/cloudresourcemanager-api.json @@ -568,7 +568,7 @@ } } }, - "revision": "20240303", + "revision": "20240414", "rootUrl": "https://cloudresourcemanager.googleapis.com/", "schemas": { "Ancestor": { diff --git a/etc/api/cloudresourcemanager/v2/cloudresourcemanager-api.json b/etc/api/cloudresourcemanager/v2/cloudresourcemanager-api.json index 9ad9682010..4f92920ed8 100644 --- a/etc/api/cloudresourcemanager/v2/cloudresourcemanager-api.json +++ b/etc/api/cloudresourcemanager/v2/cloudresourcemanager-api.json @@ -450,7 +450,7 @@ } } }, - "revision": "20240303", + "revision": "20240414", "rootUrl": "https://cloudresourcemanager.googleapis.com/", "schemas": { "AuditConfig": { @@ -743,7 +743,7 @@ "additionalProperties": { "type": "string" }, - "description": "Optional. Input only. Immutable. Tag keys/values directly bound to this folder. Each item in the map must be expressed as \" : \". For example: \"123/environment\" : \"production\", \"123/costCenter\" : \"marketing\"", + "description": "Optional. Input only. Immutable. Tag keys/values directly bound to this folder. Each item in the map must be expressed as \" : \". For example: \"123/environment\" : \"production\", \"123/costCenter\" : \"marketing\" Note: Currently this field is in Preview.", "type": "object" } }, diff --git a/etc/api/cloudresourcemanager/v2beta1/cloudresourcemanager-api.json b/etc/api/cloudresourcemanager/v2beta1/cloudresourcemanager-api.json index b7b6f52465..88d75201eb 100644 --- a/etc/api/cloudresourcemanager/v2beta1/cloudresourcemanager-api.json +++ b/etc/api/cloudresourcemanager/v2beta1/cloudresourcemanager-api.json @@ -450,7 +450,7 @@ } } }, - "revision": "20240303", + "revision": "20240414", "rootUrl": "https://cloudresourcemanager.googleapis.com/", "schemas": { "AuditConfig": { @@ -743,7 +743,7 @@ "additionalProperties": { "type": "string" }, - "description": "Optional. Input only. Immutable. Tag keys/values directly bound to this folder. Each item in the map must be expressed as \" : \". For example: \"123/environment\" : \"production\", \"123/costCenter\" : \"marketing\"", + "description": "Optional. Input only. Immutable. Tag keys/values directly bound to this folder. Each item in the map must be expressed as \" : \". For example: \"123/environment\" : \"production\", \"123/costCenter\" : \"marketing\" Note: Currently this field is in Preview.", "type": "object" } }, diff --git a/etc/api/cloudresourcemanager/v3/cloudresourcemanager-api.json b/etc/api/cloudresourcemanager/v3/cloudresourcemanager-api.json index 02fe722297..26e7953734 100644 --- a/etc/api/cloudresourcemanager/v3/cloudresourcemanager-api.json +++ b/etc/api/cloudresourcemanager/v3/cloudresourcemanager-api.json @@ -1805,7 +1805,7 @@ } } }, - "revision": "20240303", + "revision": "20240414", "rootUrl": "https://cloudresourcemanager.googleapis.com/", "schemas": { "AuditConfig": { @@ -2146,7 +2146,7 @@ "additionalProperties": { "type": "string" }, - "description": "Optional. Input only. Immutable. Tag keys/values directly bound to this folder. Each item in the map must be expressed as \" : \". For example: \"123/environment\" : \"production\", \"123/costCenter\" : \"marketing\"", + "description": "Optional. Input only. Immutable. Tag keys/values directly bound to this folder. Each item in the map must be expressed as \" : \". For example: \"123/environment\" : \"production\", \"123/costCenter\" : \"marketing\" Note: Currently this field is in Preview.", "type": "object" }, "updateTime": { @@ -2664,7 +2664,7 @@ "additionalProperties": { "type": "string" }, - "description": "Optional. Input only. Immutable. Tag keys/values directly bound to this project. Each item in the map must be expressed as \" : \". For example: \"123/environment\" : \"production\", \"123/costCenter\" : \"marketing\"", + "description": "Optional. Input only. Immutable. Tag keys/values directly bound to this project. Each item in the map must be expressed as \" : \". For example: \"123/environment\" : \"production\", \"123/costCenter\" : \"marketing\" Note: Currently this field is in Preview.", "type": "object" }, "updateTime": { diff --git a/etc/api/cloudscheduler/v1/cloudscheduler-api.json b/etc/api/cloudscheduler/v1/cloudscheduler-api.json index d99e994144..bfd5b931d7 100644 --- a/etc/api/cloudscheduler/v1/cloudscheduler-api.json +++ b/etc/api/cloudscheduler/v1/cloudscheduler-api.json @@ -418,7 +418,7 @@ } } }, - "revision": "20240226", + "revision": "20240412", "rootUrl": "https://cloudscheduler.googleapis.com/", "schemas": { "AppEngineHttpTarget": { diff --git a/etc/api/cloudscheduler/v1beta1/cloudscheduler-api.json b/etc/api/cloudscheduler/v1beta1/cloudscheduler-api.json index b0cf691cce..1df03a3936 100644 --- a/etc/api/cloudscheduler/v1beta1/cloudscheduler-api.json +++ b/etc/api/cloudscheduler/v1beta1/cloudscheduler-api.json @@ -433,7 +433,7 @@ } } }, - "revision": "20240226", + "revision": "20240412", "rootUrl": "https://cloudscheduler.googleapis.com/", "schemas": { "AppEngineHttpTarget": { diff --git a/etc/api/cloudshell/v1/cloudshell-api.json b/etc/api/cloudshell/v1/cloudshell-api.json index 0cc883f6fd..1347b2be5e 100644 --- a/etc/api/cloudshell/v1/cloudshell-api.json +++ b/etc/api/cloudshell/v1/cloudshell-api.json @@ -374,7 +374,7 @@ } } }, - "revision": "20240212", + "revision": "20240325", "rootUrl": "https://cloudshell.googleapis.com/", "schemas": { "AddPublicKeyMetadata": { diff --git a/etc/api/cloudsupport/v2beta/cloudsupport-api.json b/etc/api/cloudsupport/v2beta/cloudsupport-api.json index 11885cd571..cfecf8f102 100644 --- a/etc/api/cloudsupport/v2beta/cloudsupport-api.json +++ b/etc/api/cloudsupport/v2beta/cloudsupport-api.json @@ -125,26 +125,6 @@ "location": "query", "type": "string" }, - "product.productLine": { - "description": "The Product Line of the Product.", - "enum": [ - "PRODUCT_LINE_UNSPECIFIED", - "GOOGLE_CLOUD", - "GOOGLE_MAPS" - ], - "enumDescriptions": [ - "Unknown product type.", - "Google Cloud", - "Google Maps" - ], - "location": "query", - "type": "string" - }, - "product.productSubline": { - "description": "The Product Subline of the Product, such as \"Maps Billing\".", - "location": "query", - "type": "string" - }, "query": { "description": "An expression used to filter case classifications. If it's an empty string, then no filtering happens. Otherwise, case classifications will be returned that match the filter.", "location": "query", @@ -303,21 +283,6 @@ "pattern": "^[^/]+/[^/]+$", "required": true, "type": "string" - }, - "productLine": { - "description": "The product line for which to request cases for. If unspecified, only Google Cloud cases will be returned.", - "enum": [ - "PRODUCT_LINE_UNSPECIFIED", - "GOOGLE_CLOUD", - "GOOGLE_MAPS" - ], - "enumDescriptions": [ - "Unknown product type.", - "Google Cloud", - "Google Maps" - ], - "location": "query", - "type": "string" } }, "path": "v2beta/{+parent}/cases", @@ -583,7 +548,7 @@ } } }, - "revision": "20240304", + "revision": "20240416", "rootUrl": "https://cloudsupport.googleapis.com/", "schemas": { "Actor": { @@ -818,10 +783,6 @@ "id": { "description": "The unique ID for a classification. Must be specified for case creation. To retrieve valid classification IDs for case creation, use `caseClassifications.search`. Classification IDs returned by `caseClassifications.search` are guaranteed to be valid for at least 6 months. If a given classification is deactiveated, it will immediately stop being returned. After 6 months, `case.create` requests using the classification ID will fail.", "type": "string" - }, - "product": { - "$ref": "Product", - "description": "The full product the classification corresponds to." } }, "type": "object" @@ -833,31 +794,32 @@ "type": "object" }, "Comment": { - "description": "Case comments are the main way Google Support communicates with a user who has opened a case. When a user responds to Google Support, the user's responses also appear as comments.", + "description": "A comment associated with a support case. Case comments are the primary way for Google Support to communicate with a user who has opened a case. When a user responds to Google Support, the user's responses also appear as comments.", "id": "Comment", "properties": { "body": { - "description": "The full comment body. Maximum of 12800 characters. This can contain rich text syntax.", + "description": "The full comment body. Maximum of 12800 characters.", "type": "string" }, "createTime": { - "description": "Output only. The time when this comment was created.", + "description": "Output only. The time when the comment was created.", "format": "google-datetime", "readOnly": true, "type": "string" }, "creator": { "$ref": "Actor", - "description": "Output only. The user or Google Support agent created this comment.", + "description": "Output only. The user or Google Support agent who created the comment.", "readOnly": true }, "name": { - "description": "Output only. The resource name for the comment.", + "description": "Output only. Identifier. The resource name of the comment.", "readOnly": true, "type": "string" }, "plainTextBody": { - "description": "Output only. DEPRECATED. An automatically generated plain text version of body with all rich text syntax stripped.", + "deprecated": true, + "description": "Output only. DEPRECATED. DO NOT USE. A duplicate of the `body` field. This field is only present for legacy reasons.", "readOnly": true, "type": "string" } @@ -1367,31 +1329,6 @@ }, "type": "object" }, - "Product": { - "description": "The full product a case may be associated with, including Product Line and Product Subline.", - "id": "Product", - "properties": { - "productLine": { - "description": "The Product Line of the Product.", - "enum": [ - "PRODUCT_LINE_UNSPECIFIED", - "GOOGLE_CLOUD", - "GOOGLE_MAPS" - ], - "enumDescriptions": [ - "Unknown product type.", - "Google Cloud", - "Google Maps" - ], - "type": "string" - }, - "productSubline": { - "description": "The Product Subline of the Product, such as \"Maps Billing\".", - "type": "string" - } - }, - "type": "object" - }, "SearchCaseClassificationsResponse": { "description": "The response message for SearchCaseClassifications endpoint.", "id": "SearchCaseClassificationsResponse", diff --git a/etc/api/cloudtasks/v2/cloudtasks-api.json b/etc/api/cloudtasks/v2/cloudtasks-api.json index a5e286ee3f..74f6361264 100644 --- a/etc/api/cloudtasks/v2/cloudtasks-api.json +++ b/etc/api/cloudtasks/v2/cloudtasks-api.json @@ -779,7 +779,7 @@ } } }, - "revision": "20240223", + "revision": "20240315", "rootUrl": "https://cloudtasks.googleapis.com/", "schemas": { "AppEngineHttpRequest": { diff --git a/etc/api/cloudtasks/v2beta2/cloudtasks-api.json b/etc/api/cloudtasks/v2beta2/cloudtasks-api.json index 6ba45be61e..805c48a92f 100644 --- a/etc/api/cloudtasks/v2beta2/cloudtasks-api.json +++ b/etc/api/cloudtasks/v2beta2/cloudtasks-api.json @@ -935,7 +935,7 @@ } } }, - "revision": "20240223", + "revision": "20240315", "rootUrl": "https://cloudtasks.googleapis.com/", "schemas": { "AcknowledgeTaskRequest": { diff --git a/etc/api/cloudtasks/v2beta3/cloudtasks-api.json b/etc/api/cloudtasks/v2beta3/cloudtasks-api.json index a9680d2c8a..c4b2858271 100644 --- a/etc/api/cloudtasks/v2beta3/cloudtasks-api.json +++ b/etc/api/cloudtasks/v2beta3/cloudtasks-api.json @@ -791,7 +791,7 @@ } } }, - "revision": "20240223", + "revision": "20240315", "rootUrl": "https://cloudtasks.googleapis.com/", "schemas": { "AppEngineHttpQueue": { diff --git a/etc/api/cloudtrace/v1/cloudtrace-api.json b/etc/api/cloudtrace/v1/cloudtrace-api.json index daa0dcbdb0..717adceeb9 100644 --- a/etc/api/cloudtrace/v1/cloudtrace-api.json +++ b/etc/api/cloudtrace/v1/cloudtrace-api.json @@ -257,7 +257,7 @@ } } }, - "revision": "20240223", + "revision": "20240412", "rootUrl": "https://cloudtrace.googleapis.com/", "schemas": { "Empty": { diff --git a/etc/api/cloudtrace/v2/cloudtrace-api.json b/etc/api/cloudtrace/v2/cloudtrace-api.json index a073dafbab..a96c87bf3c 100644 --- a/etc/api/cloudtrace/v2/cloudtrace-api.json +++ b/etc/api/cloudtrace/v2/cloudtrace-api.json @@ -181,7 +181,7 @@ } } }, - "revision": "20240223", + "revision": "20240412", "rootUrl": "https://cloudtrace.googleapis.com/", "schemas": { "Annotation": { diff --git a/etc/api/cloudtrace/v2beta1/cloudtrace-api.json b/etc/api/cloudtrace/v2beta1/cloudtrace-api.json index 11252808f3..a9ba37d8f7 100644 --- a/etc/api/cloudtrace/v2beta1/cloudtrace-api.json +++ b/etc/api/cloudtrace/v2beta1/cloudtrace-api.json @@ -273,7 +273,7 @@ } } }, - "revision": "20240223", + "revision": "20240412", "rootUrl": "https://cloudtrace.googleapis.com/", "schemas": { "Empty": { diff --git a/etc/api/composer/v1/composer-api.json b/etc/api/composer/v1/composer-api.json index 647aae7492..48ace8d602 100644 --- a/etc/api/composer/v1/composer-api.json +++ b/etc/api/composer/v1/composer-api.json @@ -938,7 +938,7 @@ } } }, - "revision": "20240227", + "revision": "20240415", "rootUrl": "https://composer.googleapis.com/", "schemas": { "AirflowMetadataRetentionPolicyConfig": { @@ -1134,7 +1134,7 @@ "type": "object" }, "DagProcessorResource": { - "description": "Configuration for resources used by Airflow DAG processors.", + "description": "Configuration for resources used by Airflow DAG processors. This field is supported for Cloud Composer environments in versions composer-3.*.*-airflow-*.*.* and newer.", "id": "DagProcessorResource", "properties": { "count": { @@ -1166,7 +1166,7 @@ "properties": { "airflowMetadataRetentionConfig": { "$ref": "AirflowMetadataRetentionPolicyConfig", - "description": "Optional. The retention policy for airflow metadata database. Details: go/composer-database-retention-2" + "description": "Optional. The retention policy for airflow metadata database." }, "taskLogsRetentionConfig": { "$ref": "TaskLogsRetentionConfig", @@ -1357,7 +1357,7 @@ }, "maintenanceWindow": { "$ref": "MaintenanceWindow", - "description": "Optional. The maintenance window is the period when Cloud Composer components may undergo maintenance. It is defined so that maintenance is not executed during peak hours or critical time periods. The system will not be under maintenance for every occurrence of this window, but when maintenance is planned, it will be scheduled during the window. The maintenance window period must encompass at least 12 hours per week. This may be split into multiple chunks, each with a size of at least 4 hours. If this value is omitted, the default value for maintenance window will be applied. The default value is Saturday and Sunday 00-06 GMT." + "description": "Optional. The maintenance window is the period when Cloud Composer components may undergo maintenance. It is defined so that maintenance is not executed during peak hours or critical time periods. The system will not be under maintenance for every occurrence of this window, but when maintenance is planned, it will be scheduled during the window. The maintenance window period must encompass at least 12 hours per week. This may be split into multiple chunks, each with a size of at least 4 hours. If this value is omitted, the default value for maintenance window is applied. By default, maintenance windows are from 00:00:00 to 04:00:00 (GMT) on Friday, Saturday, and Sunday every week." }, "masterAuthorizedNetworksConfig": { "$ref": "MasterAuthorizedNetworksConfig", @@ -2280,7 +2280,7 @@ "id": "TaskLogsRetentionConfig", "properties": { "storageMode": { - "description": "Optional. The mode of storage for Airflow workers task logs. For details, see go/composer-store-task-logs-in-cloud-logging-only-design-doc", + "description": "Optional. The mode of storage for Airflow workers task logs.", "enum": [ "TASK_LOGS_STORAGE_MODE_UNSPECIFIED", "CLOUD_LOGGING_AND_CLOUD_STORAGE", diff --git a/etc/api/composer/v1beta1/composer-api.json b/etc/api/composer/v1beta1/composer-api.json index 8e1e528115..4f009eb87d 100644 --- a/etc/api/composer/v1beta1/composer-api.json +++ b/etc/api/composer/v1beta1/composer-api.json @@ -994,7 +994,7 @@ } } }, - "revision": "20240227", + "revision": "20240415", "rootUrl": "https://composer.googleapis.com/", "schemas": { "AirflowMetadataRetentionPolicyConfig": { @@ -1201,7 +1201,7 @@ "type": "object" }, "DagProcessorResource": { - "description": "Configuration for resources used by Airflow DAG processors.", + "description": "Configuration for resources used by Airflow DAG processors. This field is supported for Cloud Composer environments in versions composer-3.*.*-airflow-*.*.* and newer.", "id": "DagProcessorResource", "properties": { "count": { @@ -1436,7 +1436,7 @@ }, "maintenanceWindow": { "$ref": "MaintenanceWindow", - "description": "Optional. The maintenance window is the period when Cloud Composer components may undergo maintenance. It is defined so that maintenance is not executed during peak hours or critical time periods. The system will not be under maintenance for every occurrence of this window, but when maintenance is planned, it will be scheduled during the window. The maintenance window period must encompass at least 12 hours per week. This may be split into multiple chunks, each with a size of at least 4 hours. If this value is omitted, Cloud Composer components may be subject to maintenance at any time." + "description": "Optional. The maintenance window is the period when Cloud Composer components may undergo maintenance. It is defined so that maintenance is not executed during peak hours or critical time periods. The system will not be under maintenance for every occurrence of this window, but when maintenance is planned, it will be scheduled during the window. The maintenance window period must encompass at least 12 hours per week. This may be split into multiple chunks, each with a size of at least 4 hours. If this value is omitted, the default value for maintenance window is applied. By default, maintenance windows are from 00:00:00 to 04:00:00 (GMT) on Friday, Saturday, and Sunday every week." }, "masterAuthorizedNetworksConfig": { "$ref": "MasterAuthorizedNetworksConfig", @@ -2368,7 +2368,7 @@ "id": "TaskLogsRetentionConfig", "properties": { "storageMode": { - "description": "Optional. The mode of storage for Airflow workers task logs. For details, see go/composer-store-task-logs-in-cloud-logging-only-design-doc", + "description": "Optional. The mode of storage for Airflow workers task logs.", "enum": [ "TASK_LOGS_STORAGE_MODE_UNSPECIFIED", "CLOUD_LOGGING_AND_CLOUD_STORAGE", diff --git a/etc/api/compute/alpha/compute-api.json b/etc/api/compute/alpha/compute-api.json index e3c6955c39..e6314f7f70 100644 --- a/etc/api/compute/alpha/compute-api.json +++ b/etc/api/compute/alpha/compute-api.json @@ -3756,6 +3756,40 @@ "https://www.googleapis.com/auth/compute" ] }, + "addPacketMirroringRule": { + "description": "Inserts a packet mirroring rule into a firewall policy.", + "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/addPacketMirroringRule", + "httpMethod": "POST", + "id": "compute.firewallPolicies.addPacketMirroringRule", + "parameterOrder": [ + "firewallPolicy" + ], + "parameters": { + "firewallPolicy": { + "description": "Name of the firewall policy to update.", + "location": "path", + "pattern": "(firewallPolicies/)?[0-9]{0,20}", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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. 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": "locations/global/firewallPolicies/{firewallPolicy}/addPacketMirroringRule", + "request": { + "$ref": "FirewallPolicyRule" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "addRule": { "description": "Inserts a rule into a firewall policy.", "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/addRule", @@ -3949,6 +3983,39 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, + "getPacketMirroringRule": { + "description": "Gets a packet mirroring rule of the specified priority.", + "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/getPacketMirroringRule", + "httpMethod": "GET", + "id": "compute.firewallPolicies.getPacketMirroringRule", + "parameterOrder": [ + "firewallPolicy" + ], + "parameters": { + "firewallPolicy": { + "description": "Name of the firewall policy to which the queried rule belongs.", + "location": "path", + "pattern": "(firewallPolicies/)?[0-9]{0,20}", + "required": true, + "type": "string" + }, + "priority": { + "description": "The priority of the rule to get from the firewall policy.", + "format": "int32", + "location": "query", + "type": "integer" + } + }, + "path": "locations/global/firewallPolicies/{firewallPolicy}/getPacketMirroringRule", + "response": { + "$ref": "FirewallPolicyRule" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, "getRule": { "description": "Gets a rule of the specified priority.", "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/getRule", @@ -4153,6 +4220,46 @@ "https://www.googleapis.com/auth/compute" ] }, + "patchPacketMirroringRule": { + "description": "Patches a packet mirroring rule of the specified priority.", + "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/patchPacketMirroringRule", + "httpMethod": "POST", + "id": "compute.firewallPolicies.patchPacketMirroringRule", + "parameterOrder": [ + "firewallPolicy" + ], + "parameters": { + "firewallPolicy": { + "description": "Name of the firewall policy to update.", + "location": "path", + "pattern": "(firewallPolicies/)?[0-9]{0,20}", + "required": true, + "type": "string" + }, + "priority": { + "description": "The priority of the rule to patch.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "requestId": { + "description": "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. 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": "locations/global/firewallPolicies/{firewallPolicy}/patchPacketMirroringRule", + "request": { + "$ref": "FirewallPolicyRule" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "patchRule": { "description": "Patches a rule of the specified priority.", "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/patchRule", @@ -4229,6 +4336,43 @@ "https://www.googleapis.com/auth/compute" ] }, + "removePacketMirroringRule": { + "description": "Deletes a packet mirroring rule of the specified priority.", + "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/removePacketMirroringRule", + "httpMethod": "POST", + "id": "compute.firewallPolicies.removePacketMirroringRule", + "parameterOrder": [ + "firewallPolicy" + ], + "parameters": { + "firewallPolicy": { + "description": "Name of the firewall policy to update.", + "location": "path", + "pattern": "(firewallPolicies/)?[0-9]{0,20}", + "required": true, + "type": "string" + }, + "priority": { + "description": "The priority of the rule to remove from the firewall policy.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "requestId": { + "description": "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. 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": "locations/global/firewallPolicies/{firewallPolicy}/removePacketMirroringRule", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "removeRule": { "description": "Deletes a rule of the specified priority.", "flatPath": "locations/global/firewallPolicies/{firewallPolicy}/removeRule", @@ -17757,6 +17901,60 @@ "https://www.googleapis.com/auth/compute" ] }, + "addPacketMirroringRule": { + "description": "Inserts a packet mirroring rule into a firewall policy.", + "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/addPacketMirroringRule", + "httpMethod": "POST", + "id": "compute.networkFirewallPolicies.addPacketMirroringRule", + "parameterOrder": [ + "project", + "firewallPolicy" + ], + "parameters": { + "firewallPolicy": { + "description": "Name of the firewall policy to update.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "maxPriority": { + "description": "When rule.priority is not specified, auto choose a unused priority between minPriority and maxPriority>. This field is exclusive with rule.priority.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "minPriority": { + "description": "When rule.priority is not specified, auto choose a unused priority between minPriority and maxPriority>. This field is exclusive with rule.priority.", + "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" + }, + "requestId": { + "description": "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. 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": "projects/{project}/global/firewallPolicies/{firewallPolicy}/addPacketMirroringRule", + "request": { + "$ref": "FirewallPolicyRule" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "addRule": { "description": "Inserts a rule into a firewall policy.", "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/addRule", @@ -18010,6 +18208,47 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, + "getPacketMirroringRule": { + "description": "Gets a packet mirroring rule of the specified priority.", + "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/getPacketMirroringRule", + "httpMethod": "GET", + "id": "compute.networkFirewallPolicies.getPacketMirroringRule", + "parameterOrder": [ + "project", + "firewallPolicy" + ], + "parameters": { + "firewallPolicy": { + "description": "Name of the firewall policy to which the queried rule belongs.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "priority": { + "description": "The priority of the rule to get from the firewall policy.", + "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" + } + }, + "path": "projects/{project}/global/firewallPolicies/{firewallPolicy}/getPacketMirroringRule", + "response": { + "$ref": "FirewallPolicyRule" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, "getRule": { "description": "Gets a rule of the specified priority.", "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/getRule", @@ -18224,6 +18463,54 @@ "https://www.googleapis.com/auth/compute" ] }, + "patchPacketMirroringRule": { + "description": "Patches a packet mirroring rule of the specified priority.", + "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/patchPacketMirroringRule", + "httpMethod": "POST", + "id": "compute.networkFirewallPolicies.patchPacketMirroringRule", + "parameterOrder": [ + "project", + "firewallPolicy" + ], + "parameters": { + "firewallPolicy": { + "description": "Name of the firewall policy to update.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "priority": { + "description": "The priority of the rule to patch.", + "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" + }, + "requestId": { + "description": "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. 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": "projects/{project}/global/firewallPolicies/{firewallPolicy}/patchPacketMirroringRule", + "request": { + "$ref": "FirewallPolicyRule" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "patchRule": { "description": "Patches a rule of the specified priority.", "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/patchRule", @@ -18316,6 +18603,51 @@ "https://www.googleapis.com/auth/compute" ] }, + "removePacketMirroringRule": { + "description": "Deletes a packet mirroring rule of the specified priority.", + "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/removePacketMirroringRule", + "httpMethod": "POST", + "id": "compute.networkFirewallPolicies.removePacketMirroringRule", + "parameterOrder": [ + "project", + "firewallPolicy" + ], + "parameters": { + "firewallPolicy": { + "description": "Name of the firewall policy to update.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "priority": { + "description": "The priority of the rule to remove from the firewall policy.", + "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" + }, + "requestId": { + "description": "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. 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": "projects/{project}/global/firewallPolicies/{firewallPolicy}/removePacketMirroringRule", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "removeRule": { "description": "Deletes a rule of the specified priority.", "flatPath": "projects/{project}/global/firewallPolicies/{firewallPolicy}/removeRule", @@ -18438,6 +18770,100 @@ } } }, + "networkPlacements": { + "methods": { + "get": { + "description": "Returns the specified network placement.", + "flatPath": "projects/{project}/global/networkPlacements/{networkPlacement}", + "httpMethod": "GET", + "id": "compute.networkPlacements.get", + "parameterOrder": [ + "project", + "networkPlacement" + ], + "parameters": { + "networkPlacement": { + "description": "Name of the network placement to return.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "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" + } + }, + "path": "projects/{project}/global/networkPlacements/{networkPlacement}", + "response": { + "$ref": "NetworkPlacement" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "list": { + "description": "Retrieves a list of network placements available to the specified project.", + "flatPath": "projects/{project}/global/networkPlacements", + "httpMethod": "GET", + "id": "compute.networkPlacements.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": "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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/global/networkPlacements", + "response": { + "$ref": "NetworkPlacementsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + } + } + }, "networks": { "methods": { "addPeering": { @@ -43897,7 +44323,7 @@ } } }, - "revision": "20240220", + "revision": "20240407", "rootUrl": "https://compute.googleapis.com/", "schemas": { "AWSV4Signature": { @@ -47172,6 +47598,25 @@ "description": "If true, enables Cloud CDN for the backend service of a global external Application Load Balancer.", "type": "boolean" }, + "externalManagedMigrationState": { + "description": "Specifies the canary migration state. Possible values are PREPARE, TEST_BY_PERCENTAGE, and TEST_ALL_TRAFFIC. To begin the migration from EXTERNAL to EXTERNAL_MANAGED, the state must be changed to PREPARE. The state must be changed to TEST_ALL_TRAFFIC before the loadBalancingScheme can be changed to EXTERNAL_MANAGED. Optionally, the TEST_BY_PERCENTAGE state can be used to migrate traffic by percentage using externalManagedMigrationTestingPercentage. Rolling back a migration requires the states to be set in reverse order. So changing the scheme from EXTERNAL_MANAGED to EXTERNAL requires the state to be set to TEST_ALL_TRAFFIC at the same time. Optionally, the TEST_BY_PERCENTAGE state can be used to migrate some traffic back to EXTERNAL or PREPARE can be used to migrate all traffic back to EXTERNAL.", + "enum": [ + "PREPARE", + "TEST_ALL_TRAFFIC", + "TEST_BY_PERCENTAGE" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + }, + "externalManagedMigrationTestingPercentage": { + "description": "Determines the fraction of requests that should be processed by the Global external Application Load Balancer. The value of this field must be in the range [0, 100]. Session affinity options will slightly affect this routing behavior, for more details, see: Session Affinity. This value can only be set if the loadBalancingScheme in the BackendService is set to EXTERNAL (when using the classic Application Load Balancer) and the migration state is TEST_BY_PERCENTAGE.", + "format": "float", + "type": "number" + }, "failoverPolicy": { "$ref": "BackendServiceFailoverPolicy", "description": "Requires at least one backend instance group to be defined as a backup (failover) backend. For load balancers that have configurable failover: [Internal passthrough Network Load Balancers](https://cloud.google.com/load-balancing/docs/internal/failover-overview) and [external passthrough Network Load Balancers](https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview)." @@ -47297,6 +47742,10 @@ "description": "The URL of the network to which this backend service belongs. This field can only be specified when the load balancing scheme is set to INTERNAL.", "type": "string" }, + "networkPassThroughLbTrafficPolicy": { + "$ref": "BackendServiceNetworkPassThroughLbTrafficPolicy", + "description": "Configures traffic steering properties of internal passthrough Network Load Balancers." + }, "outlierDetection": { "$ref": "OutlierDetection", "description": "Settings controlling the ejection of unhealthy backend endpoints from the load balancing pool of each individual proxy instance that processes the traffic for the given backend service. If not set, this feature is considered disabled. Results of the outlier detection algorithm (ejection of endpoints from the load balancing pool and returning them back to the pool) are executed independently by each proxy instance of the load balancer. In most cases, more than one proxy instance handles the traffic received by a backend service. Thus, it is possible that an unhealthy endpoint is detected and ejected by only some of the proxies, and while this happens, other proxies may continue to send requests to the same unhealthy endpoint until they detect and eject the unhealthy endpoint. Applicable backend endpoints can be: - VM instances in an Instance Group - Endpoints in a Zonal NEG (GCE_VM_IP, GCE_VM_IP_PORT) - Endpoints in a Hybrid Connectivity NEG (NON_GCP_PRIVATE_IP_PORT) - Serverless NEGs, that resolve to Cloud Run, App Engine, or Cloud Functions Services - Private Service Connect NEGs, that resolve to Google-managed regional API endpoints or managed services published using Private Service Connect Applicable backend service types can be: - A global backend service with the loadBalancingScheme set to INTERNAL_SELF_MANAGED or EXTERNAL_MANAGED. - A regional backend service with the serviceProtocol set to HTTP, HTTPS, or HTTP2, and loadBalancingScheme set to INTERNAL_MANAGED or EXTERNAL_MANAGED. Not supported for Serverless NEGs. Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true." @@ -48289,6 +48738,41 @@ }, "type": "object" }, + "BackendServiceNetworkPassThroughLbTrafficPolicy": { + "id": "BackendServiceNetworkPassThroughLbTrafficPolicy", + "properties": { + "zonalAffinity": { + "$ref": "BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity", + "description": "When configured, new connections are load balanced across healthy backend endpoints in the local zone." + } + }, + "type": "object" + }, + "BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity": { + "id": "BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity", + "properties": { + "spillover": { + "description": "This field indicates whether zonal affinity is enabled or not. The possible values are: - ZONAL_AFFINITY_DISABLED: Default Value. Zonal Affinity is disabled. The load balancer distributes new connections to all healthy backend endpoints across all zones. - ZONAL_AFFINITY_STAY_WITHIN_ZONE: Zonal Affinity is enabled. The load balancer distributes new connections to all healthy backend endpoints in the local zone only. If there are no healthy backend endpoints in the local zone, the load balancer distributes new connections to all backend endpoints in the local zone. - ZONAL_AFFINITY_SPILL_CROSS_ZONE: Zonal Affinity is enabled. The load balancer distributes new connections to all healthy backend endpoints in the local zone only. If there aren't enough healthy backend endpoints in the local zone, the load balancer distributes new connections to all healthy backend endpoints across all zones. ", + "enum": [ + "ZONAL_AFFINITY_DISABLED", + "ZONAL_AFFINITY_SPILL_CROSS_ZONE", + "ZONAL_AFFINITY_STAY_WITHIN_ZONE" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + }, + "spilloverRatio": { + "description": "The value of the field must be in [0, 1]. When the ratio of the count of healthy backend endpoints in a zone to the count of backend endpoints in that same zone is equal to or above this threshold, the load balancer distributes new connections to all healthy endpoints in the local zone only. When the ratio of the count of healthy backend endpoints in a zone to the count of backend endpoints in that same zone is below this threshold, the load balancer distributes all new connections to all healthy endpoints across all zones.", + "format": "float", + "type": "number" + } + }, + "type": "object" + }, "BackendServiceReference": { "id": "BackendServiceReference", "properties": { @@ -48777,11 +49261,6 @@ "description": "Network Layer Reachability Information (NLRI) for a route.", "id": "BgpRouteNetworkLayerReachabilityInformation", "properties": { - "destination": { - "deprecated": true, - "description": "Human readable CIDR notation for a prefix. E.g. 10.42.0.0/16. Deprecated in favor of prefix.", - "type": "string" - }, "pathId": { "description": "If the BGP session supports multiple paths (RFC 7911), the path identifier for this route.", "format": "uint32", @@ -49277,15 +49756,18 @@ "enum": [ "ACCELERATOR_OPTIMIZED", "ACCELERATOR_OPTIMIZED_A3", + "ACCELERATOR_OPTIMIZED_A3_MEGA", "COMPUTE_OPTIMIZED", "COMPUTE_OPTIMIZED_C2D", "COMPUTE_OPTIMIZED_C3", "COMPUTE_OPTIMIZED_C3D", "COMPUTE_OPTIMIZED_H3", "GENERAL_PURPOSE", + "GENERAL_PURPOSE_C4", "GENERAL_PURPOSE_E2", "GENERAL_PURPOSE_N2", "GENERAL_PURPOSE_N2D", + "GENERAL_PURPOSE_N4", "GENERAL_PURPOSE_T2D", "GRAPHICS_OPTIMIZED", "MEMORY_OPTIMIZED", @@ -49310,6 +49792,9 @@ "", "", "", + "", + "", + "", "" ], "type": "string" @@ -49980,7 +50465,7 @@ "type": "array" }, "allowOriginRegexes": { - "description": "Specifies a regular expression that matches allowed origins. For more information about the regular expression syntax, see Syntax. An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. Regular expressions can only be used when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED.", + "description": "Specifies a regular expression that matches allowed origins. For more information, see regular expression syntax . An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. Regular expressions can only be used when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED.", "items": { "type": "string" }, @@ -49994,7 +50479,7 @@ "type": "array" }, "disabled": { - "description": "If true, the setting specifies the CORS policy is disabled. The default value of false, which indicates that the CORS policy is in effect.", + "description": "If true, disables the CORS policy. The default value is false, which indicates that the CORS policy is in effect.", "type": "boolean" }, "exposeHeaders": { @@ -51766,7 +52251,7 @@ "additionalProperties": { "type": "string" }, - "description": "Additional structured details about this error. Keys should match /[a-zA-Z0-9-_]/ and 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.", + "description": "Additional structured details about this error. Keys must match /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": { @@ -52656,6 +53141,13 @@ "description": "Name of the resource. For Organization Firewall Policies it's a [Output Only] numeric ID allocated by Google Cloud which uniquely identifies the Organization Firewall Policy.", "type": "string" }, + "packetMirroringRules": { + "description": "A list of packet mirroring rules that belong to this policy.", + "items": { + "$ref": "FirewallPolicyRule" + }, + "type": "array" + }, "parent": { "description": "[Output Only] The parent of the firewall policy. This field is not applicable to network firewall policies.", "type": "string" @@ -53187,6 +53679,25 @@ "description": "An optional description of this resource. Provide this property when you create the resource.", "type": "string" }, + "externalManagedBackendBucketMigrationState": { + "description": "Specifies the canary migration state for the backend buckets attached to this forwarding rule. Possible values are PREPARE, TEST_BY_PERCENTAGE, and TEST_ALL_TRAFFIC. To begin the migration from EXTERNAL to EXTERNAL_MANAGED, the state must be changed to PREPARE. The state must be changed to TEST_ALL_TRAFFIC before the loadBalancingScheme can be changed to EXTERNAL_MANAGED. Optionally, the TEST_BY_PERCENTAGE state can be used to migrate traffic to backend buckets attached to this forwarding rule by percentage using externalManagedBackendBucketMigrationTestingPercentage. Rolling back a migration requires the states to be set in reverse order. So changing the scheme from EXTERNAL_MANAGED to EXTERNAL requires the state to be set to TEST_ALL_TRAFFIC at the same time. Optionally, the TEST_BY_PERCENTAGE state can be used to migrate some traffic back to EXTERNAL or PREPARE can be used to migrate all traffic back to EXTERNAL.", + "enum": [ + "PREPARE", + "TEST_ALL_TRAFFIC", + "TEST_BY_PERCENTAGE" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + }, + "externalManagedBackendBucketMigrationTestingPercentage": { + "description": "Determines the fraction of requests to backend buckets that should be processed by the global external Application Load Balancer. The value of this field must be in the range [0, 100]. This value can only be set if the loadBalancingScheme in the BackendService is set to EXTERNAL (when using the classic Application Load Balancer) and the migration state is TEST_BY_PERCENTAGE.", + "format": "float", + "type": "number" + }, "fingerprint": { "description": "Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a ForwardingRule. Include the fingerprint in patch request to ensure that you do not overwrite changes that were applied from another concurrent request. To see the latest fingerprint, make a get() request to retrieve a ForwardingRule.", "format": "byte", @@ -54636,6 +55147,35 @@ }, "type": "object" }, + "GRPCTLSHealthCheck": { + "id": "GRPCTLSHealthCheck", + "properties": { + "grpcServiceName": { + "description": "The gRPC service name for the health check. This field is optional. The value of grpc_service_name has the following meanings by convention: - Empty service_name means the overall status of all services at the backend. - Non-empty service_name means the health of that gRPC service, as defined by the owner of the service. The grpc_service_name can only be ASCII.", + "type": "string" + }, + "port": { + "description": "The TCP port number to which the health check prober sends packets. Valid values are 1 through 65535.", + "format": "int32", + "type": "integer" + }, + "portSpecification": { + "description": "Specifies how a port is selected for health checking. Can be one of the following values: USE_FIXED_PORT: Specifies a port number explicitly using the port field in the health check. Supported by backend services for passthrough load balancers and backend services for proxy load balancers. Not supported by target pools. The health check supports all backends supported by the backend service provided the backend can be health checked. For example, GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT network endpoint groups, and instance group backends. USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an indirect method of specifying the health check port by referring to the backend service. Only supported by backend services for proxy load balancers. Not supported by target pools. Not supported by backend services for passthrough load balancers. Supports all backends that can be health checked; for example, GCE_VM_IP_PORT network endpoint groups and instance group backends. For GCE_VM_IP_PORT network endpoint group backends, the health check uses the port number specified for each endpoint in the network endpoint group. For instance group backends, the health check uses the port number determined by looking up the backend service's named port in the instance group's list of named ports.", + "enum": [ + "USE_FIXED_PORT", + "USE_NAMED_PORT", + "USE_SERVING_PORT" + ], + "enumDescriptions": [ + "The port number in the health check's port is used for health checking. Applies to network endpoint group and instance group backends.", + "Not supported.", + "For network endpoint group backends, the health check uses the port number specified on each endpoint in the network endpoint group. For instance group backends, the health check uses the port number specified for the backend service's named port defined in the instance group's named ports." + ], + "type": "string" + } + }, + "type": "object" + }, "GetOwnerInstanceResponse": { "id": "GetOwnerInstanceResponse", "properties": { @@ -54836,7 +55376,7 @@ "id": "GuestOsFeature", "properties": { "type": { - "description": "The ID of a supported feature. To add multiple values, use commas to separate values. Set to one or more of the following values: - VIRTIO_SCSI_MULTIQUEUE - WINDOWS - MULTI_IP_SUBNET - UEFI_COMPATIBLE - GVNIC - SEV_CAPABLE - SUSPEND_RESUME_COMPATIBLE - SEV_LIVE_MIGRATABLE - SEV_SNP_CAPABLE - TDX_CAPABLE - IDPF For more information, see Enabling guest operating system features.", + "description": "The ID of a supported feature. To add multiple values, use commas to separate values. Set to one or more of the following values: - VIRTIO_SCSI_MULTIQUEUE - WINDOWS - MULTI_IP_SUBNET - UEFI_COMPATIBLE - GVNIC - SEV_CAPABLE - SUSPEND_RESUME_COMPATIBLE - SEV_LIVE_MIGRATABLE_V2 - SEV_SNP_CAPABLE - TDX_CAPABLE - IDPF For more information, see Enabling guest operating system features.", "enum": [ "BARE_METAL_LINUX_COMPATIBLE", "FEATURE_TYPE_UNSPECIFIED", @@ -55095,6 +55635,9 @@ "grpcHealthCheck": { "$ref": "GRPCHealthCheck" }, + "grpcTlsHealthCheck": { + "$ref": "GRPCTLSHealthCheck" + }, "healthyThreshold": { "description": "A so-far unhealthy instance will be marked healthy after this many consecutive successes. The default value is 2.", "format": "int32", @@ -55162,6 +55705,7 @@ "description": "Specifies the type of the healthCheck, either TCP, SSL, HTTP, HTTPS, HTTP2 or GRPC. Exactly one of the protocol-specific health check fields must be specified, which must match type field.", "enum": [ "GRPC", + "GRPC_WITH_TLS", "HTTP", "HTTP2", "HTTPS", @@ -55178,6 +55722,7 @@ "", "", "", + "", "" ], "type": "string" @@ -57979,7 +58524,7 @@ }, "upcomingMaintenance": { "$ref": "UpcomingMaintenance", - "description": "[Output Only] Specifies upcoming maintenance for the instance." + "description": "[Output Only] DEPRECATED: Please use resource_status.upcoming_maintenance instead. Specifies upcoming maintenance for the instance." }, "zone": { "description": "[Output Only] URL of the zone where the instance resides. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", @@ -59331,7 +59876,7 @@ "additionalProperties": { "type": "string" }, - "description": "Resource manager tags to be bound to the instance group manager. Tag keys and values have the same definition as resource manager tags. Keys must be in the format `tagKeys/123`, and values are in the format `tagValues/456`. The field is allowed for INSERT only.", + "description": "Resource manager tags to bind to the managed instance group. The tags are key-value pairs. Keys must be in the format tagKeys/123 and values in the format tagValues/456. For more information, see Manage tags for resources.", "type": "object" } }, @@ -59342,7 +59887,8 @@ "id": "InstanceGroupManagerResizeRequest", "properties": { "count": { - "description": "The count of instances to create as part of this resize request.", + "deprecated": true, + "description": "This field is deprecated, please use resize_by instead. The count of instances to create as part of this resize request.", "format": "int32", "type": "integer" }, @@ -59376,7 +59922,8 @@ }, "queuingPolicy": { "$ref": "QueuingPolicy", - "description": "When set, defines queing parameters for the requested deferred capacity. When unset, the request starts provisioning immediately, or fails if immediate provisioning is not possible." + "deprecated": true, + "description": "This field is deprecated, ResizeRequests would not be provisioned immediately and would stay in the queue until explicitly cancelled. When set, defines queing parameters for the requested deferred capacity. When unset, the request starts provisioning immediately, or fails if immediate provisioning is not possible." }, "requestedRunDuration": { "$ref": "Duration", @@ -59404,15 +59951,27 @@ "DELETING", "FAILED", "PROVISIONING", + "STATE_UNSPECIFIED", "SUCCEEDED" ], + "enumDeprecated": [ + false, + false, + false, + true, + false, + true, + false, + false + ], "enumDescriptions": [ "The request was created successfully and was accepted for provisioning when the capacity becomes available.", "The request is cancelled.", - "resize request is being created and may still fail creation.", - "The request is being deleted.", + "Resize request is being created and may still fail creation.", + "The value is deprecated. ResizeRequests would not change state while being deleted. The request is being deleted.", "The request failed before or during provisioning. If the request fails during provisioning, any VMs that were created during provisioning are rolled back and removed from the MIG.", - "The target resource(s) are being provisioned.", + "The value is deprecated. ResizeRequests would stay in the ACCEPTED state during provisioning attempts. The target resource(s) are being provisioned.", + "Default value. This value should never be returned.", "The request succeeded." ], "type": "string" @@ -59485,7 +60044,8 @@ }, "queuingPolicy": { "$ref": "QueuingPolicy", - "description": "Constraints for the time when the instances start provisioning. Always exposed as absolute time." + "deprecated": true, + "description": "This field is deprecated, setting queueing policy is no longer supported. Constraints for the time when the instances start provisioning. Always exposed as absolute time." } }, "type": "object" @@ -59773,7 +60333,7 @@ }, "perInstanceConfigs": { "$ref": "InstanceGroupManagerStatusStatefulPerInstanceConfigs", - "description": "[Output Only] Status of per-instance configurations on the instance." + "description": "[Output Only] Status of per-instance configurations on the instances." } }, "type": "object" @@ -62128,6 +62688,11 @@ "description": "[Output Only] The name of the firewall policy.", "type": "string" }, + "priority": { + "description": "[Output only] Priority of firewall policy association. Not applicable for type=HIERARCHY.", + "format": "int32", + "type": "integer" + }, "rules": { "description": "The rules that apply to the network.", "items": { @@ -62140,14 +62705,18 @@ "type": "string" }, "type": { - "description": "[Output Only] The type of the firewall policy. Can be one of HIERARCHY, NETWORK, NETWORK_REGIONAL.", + "description": "[Output Only] The type of the firewall policy. Can be one of HIERARCHY, NETWORK, NETWORK_REGIONAL, SYSTEM_GLOBAL, SYSTEM_REGIONAL.", "enum": [ "HIERARCHY", "NETWORK", "NETWORK_REGIONAL", + "SYSTEM_GLOBAL", + "SYSTEM_REGIONAL", "UNSPECIFIED" ], "enumDescriptions": [ + "", + "", "", "", "", @@ -62557,13 +63126,15 @@ "CREATING", "DELETING", "FAILED", - "READY" + "READY", + "UNAVAILABLE" ], "enumDescriptions": [ "InstantSnapshot creation is in progress.", "InstantSnapshot is currently being deleted.", "InstantSnapshot creation failed.", - "InstantSnapshot has been created successfully." + "InstantSnapshot has been created successfully.", + "InstantSnapshot is currently unavailable and cannot be used for Disk restoration" ], "type": "string" }, @@ -63055,6 +63626,10 @@ "description": "Administrative status of the interconnect. When this is set to true, the Interconnect is functional and can carry traffic. When set to false, no packets can be carried over the interconnect and no BGP routes are exchanged over it. By default, the status is set to true.", "type": "boolean" }, + "applicationAwareInterconnect": { + "$ref": "InterconnectApplicationAwareInterconnect", + "description": "Configuration for enabling Application Aware Interconnect (AAI) on this Cloud Interconnect connection between Google and your on-premises router." + }, "availableFeatures": { "description": "[Output only] List of features available for this Interconnect connection, which can take one of the following values: - MACSEC If present then the Interconnect connection is provisioned on MACsec capable hardware ports. If not present then the Interconnect connection is provisioned on non-MACsec capable ports and MACsec isn't supported and enabling MACsec fails.", "items": { @@ -63253,6 +63828,74 @@ }, "type": "object" }, + "InterconnectApplicationAwareInterconnect": { + "description": "Configuration information for enabling Application Aware Interconnect (AAI) on this Cloud Interconnect connection between Google and your on-premises router.", + "id": "InterconnectApplicationAwareInterconnect", + "properties": { + "bandwidthPercentagePolicy": { + "$ref": "InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy" + }, + "profileDescription": { + "description": "A description for the AAI profile on this interconnect.", + "type": "string" + }, + "strictPriorityPolicy": { + "$ref": "InterconnectApplicationAwareInterconnectStrictPriorityPolicy" + } + }, + "type": "object" + }, + "InterconnectApplicationAwareInterconnectBandwidthPercentage": { + "description": "Specify bandwidth percentages (0-100) for various traffic classes in BandwidthPercentagePolicy. The sum of all percentages must equal 100. It is valid to specify percentages for some classes and not for others. The others will be implicitly marked as 0.", + "id": "InterconnectApplicationAwareInterconnectBandwidthPercentage", + "properties": { + "percentage": { + "description": "Bandwidth percentage for a specific traffic class.", + "format": "uint32", + "type": "integer" + }, + "trafficClass": { + "description": "TrafficClass whose bandwidth percentage is being specified.", + "enum": [ + "TC1", + "TC2", + "TC3", + "TC4", + "TC5", + "TC6" + ], + "enumDescriptions": [ + "Traffic Class 1, corresponding to DSCP ranges (0-7) 000xxx.", + "Traffic Class 2, corresponding to DSCP ranges (8-15) 001xxx.", + "Traffic Class 3, corresponding to DSCP ranges (16-23) 010xxx.", + "Traffic Class 4, corresponding to DSCP ranges (24-31) 011xxx.", + "Traffic Class 5, corresponding to DSCP ranges (32-47) 10xxxx.", + "Traffic Class 6, corresponding to DSCP ranges (48-63) 11xxxx." + ], + "type": "string" + } + }, + "type": "object" + }, + "InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy": { + "id": "InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy", + "properties": { + "bandwidthPercentages": { + "description": "Specify bandwidth percentages for various traffic classes for queuing type Bandwidth Percent.", + "items": { + "$ref": "InterconnectApplicationAwareInterconnectBandwidthPercentage" + }, + "type": "array" + } + }, + "type": "object" + }, + "InterconnectApplicationAwareInterconnectStrictPriorityPolicy": { + "description": "Specify configuration for StrictPriorityPolicy.", + "id": "InterconnectApplicationAwareInterconnectStrictPriorityPolicy", + "properties": {}, + "type": "object" + }, "InterconnectAttachment": { "description": "Represents an Interconnect Attachment (VLAN) resource. You can use Interconnect attachments (VLANS) to connect your Virtual Private Cloud networks to your on-premises networks through an Interconnect. For more information, read Creating VLAN Attachments.", "id": "InterconnectAttachment", @@ -65014,7 +65657,7 @@ "id": "InterconnectRemoteLocationConstraints", "properties": { "portPairRemoteLocation": { - "description": "[Output Only] Port pair remote location constraints, which can take one of the following values: PORT_PAIR_UNCONSTRAINED_REMOTE_LOCATION, PORT_PAIR_MATCHING_REMOTE_LOCATION. GCP's API refers only to individual ports, but the UI uses this field when ordering a pair of ports, to prevent users from accidentally ordering something that is incompatible with their cloud provider. Specifically, when ordering a redundant pair of Cross-Cloud Interconnect ports, and one of them uses a remote location with portPairMatchingRemoteLocation set to matching, the UI requires that both ports use the same remote location.", + "description": "[Output Only] Port pair remote location constraints, which can take one of the following values: PORT_PAIR_UNCONSTRAINED_REMOTE_LOCATION, PORT_PAIR_MATCHING_REMOTE_LOCATION. Google Cloud API refers only to individual ports, but the UI uses this field when ordering a pair of ports, to prevent users from accidentally ordering something that is incompatible with their cloud provider. Specifically, when ordering a redundant pair of Cross-Cloud Interconnect ports, and one of them uses a remote location with portPairMatchingRemoteLocation set to matching, the UI requires that both ports use the same remote location.", "enum": [ "PORT_PAIR_MATCHING_REMOTE_LOCATION", "PORT_PAIR_UNCONSTRAINED_REMOTE_LOCATION" @@ -67664,6 +68307,10 @@ ], "type": "string" }, + "networkPlacement": { + "description": "A full or partial URL of the network placement to apply to this network. This field can be set only at resource creation time. For example, the following are valid URLs: - https://www.googleapis.com/compute/alpha/projects/{project_id}/global/networkPlacements/{network_placement_name} - projects/{project_id}/global/networkPlacements/{network_placement_name} ", + "type": "string" + }, "peerings": { "description": "[Output Only] A list of network peerings for the resource.", "items": { @@ -68642,7 +69289,13 @@ "description": "Metadata defined as annotations on the network endpoint.", "type": "object" }, + "clientDestinationPort": { + "description": "Represents the port number to which PSC consumer sends packets. Only valid for network endpoint groups created with GCE_VM_IP_PORTMAP endpoint type.", + "format": "int32", + "type": "integer" + }, "clientPort": { + "deprecated": true, "description": "Represents the port number to which PSC consumer sends packets. Only valid for network endpoint groups created with CLIENT_PORT_PER_ENDPOINT mapping mode.", "format": "int32", "type": "integer" @@ -68691,6 +69344,7 @@ "description": "Only valid when networkEndpointType is SERVERLESS. Only one of cloudRun, appEngine or cloudFunction may be set." }, "clientPortMappingMode": { + "deprecated": true, "description": "Only valid when networkEndpointType is GCE_VM_IP_PORT and the NEG is regional.", "enum": [ "CLIENT_PORT_PER_ENDPOINT", @@ -68747,10 +69401,11 @@ "type": "string" }, "networkEndpointType": { - "description": "Type of network endpoints in this network endpoint group. Can be one of GCE_VM_IP, GCE_VM_IP_PORT, NON_GCP_PRIVATE_IP_PORT, INTERNET_FQDN_PORT, INTERNET_IP_PORT, SERVERLESS, PRIVATE_SERVICE_CONNECT.", + "description": "Type of network endpoints in this network endpoint group. Can be one of GCE_VM_IP, GCE_VM_IP_PORT, NON_GCP_PRIVATE_IP_PORT, INTERNET_FQDN_PORT, INTERNET_IP_PORT, SERVERLESS, PRIVATE_SERVICE_CONNECT, GCE_VM_IP_PORTMAP.", "enum": [ "GCE_VM_IP", "GCE_VM_IP_PORT", + "GCE_VM_IP_PORTMAP", "INTERNET_FQDN_PORT", "INTERNET_IP_PORT", "NON_GCP_PRIVATE_IP_PORT", @@ -68760,6 +69415,7 @@ "enumDescriptions": [ "The network endpoint is represented by an IP address.", "The network endpoint is represented by IP address and port pair.", + "The network endpoint is represented by an IP, Port and Client Destination Port.", "The network endpoint is represented by fully qualified domain name and port.", "The network endpoint is represented by an internet IP address and port.", "The network endpoint is represented by an IP address and port. The endpoint belongs to a VM or pod running in a customer's on-premises.", @@ -69216,6 +69872,11 @@ "description": "[Output Only] Address allocated from given subnetwork for PSC. This IP address acts as a VIP for a PSC NEG, allowing it to act as an endpoint in L7 PSC-XLB.", "type": "string" }, + "producerPort": { + "description": "The psc producer port is used to connect PSC NEG with specific port on the PSC Producer side; should only be used for the PRIVATE_SERVICE_CONNECT NEG type", + "format": "int32", + "type": "integer" + }, "pscConnectionId": { "description": "[Output Only] The PSC connection id of the PSC Network Endpoint Group Consumer.", "format": "uint64", @@ -69713,11 +70374,13 @@ "description": "The type of vNIC to be used on this interface. This may be gVNIC or VirtioNet.", "enum": [ "GVNIC", + "IDPF", "UNSPECIFIED_NIC_TYPE", "VIRTIO_NET" ], "enumDescriptions": [ "GVNIC", + "IDPF", "No type specified.", "VIRTIO" ], @@ -70053,6 +70716,451 @@ }, "type": "object" }, + "NetworkPlacement": { + "description": "NetworkPlacement Represents a Google managed network placement resource.", + "id": "NetworkPlacement", + "properties": { + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "description": { + "description": "[Output Only] An optional description of this resource.", + "type": "string" + }, + "features": { + "$ref": "NetworkPlacementNetworkFeatures", + "description": "[Output Only] Features supported by the network." + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "format": "uint64", + "type": "string" + }, + "kind": { + "default": "compute#networkPlacement", + "description": "[Output Only] Type of the resource. Always compute#networkPlacement for network placements.", + "type": "string" + }, + "name": { + "description": "[Output Only] Name of the resource.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "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" + }, + "zone": { + "description": "[Output Only] Zone to which the network is restricted.", + "type": "string" + } + }, + "type": "object" + }, + "NetworkPlacementNetworkFeatures": { + "id": "NetworkPlacementNetworkFeatures", + "properties": { + "allowAutoModeSubnet": { + "description": "Specifies whether auto mode subnet creation is allowed.", + "enum": [ + "AUTO_MODE_SUBNET_ALLOWED", + "AUTO_MODE_SUBNET_BLOCKED" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "allowCloudNat": { + "description": "Specifies whether cloud NAT creation is allowed.", + "enum": [ + "CLOUD_NAT_ALLOWED", + "CLOUD_NAT_BLOCKED" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "allowCloudRouter": { + "description": "Specifies whether cloud router creation is allowed.", + "enum": [ + "CLOUD_ROUTER_ALLOWED", + "CLOUD_ROUTER_BLOCKED" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "allowInterconnect": { + "description": "Specifies whether Cloud Interconnect creation is allowed.", + "enum": [ + "INTERCONNECT_ALLOWED", + "INTERCONNECT_BLOCKED" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "allowLoadBalancing": { + "description": "Specifies whether cloud load balancing is allowed.", + "enum": [ + "LOAD_BALANCING_ALLOWED", + "LOAD_BALANCING_BLOCKED" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "allowMultiNicInSameNetwork": { + "description": "Specifies whether multi-nic in the same network is allowed.", + "enum": [ + "MULTI_NIC_IN_SAME_NETWORK_ALLOWED", + "MULTI_NIC_IN_SAME_NETWORK_BLOCKED" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "allowPacketMirroring": { + "description": "Specifies whether Packet Mirroring 1.0 is supported.", + "enum": [ + "PACKET_MIRRORING_ALLOWED", + "PACKET_MIRRORING_BLOCKED" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "allowPrivateGoogleAccess": { + "description": "Specifies whether private Google access is allowed.", + "enum": [ + "PRIVATE_GOOGLE_ACCESS_ALLOWED", + "PRIVATE_GOOGLE_ACCESS_BLOCKED" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "allowPsc": { + "description": "Specifies whether PSC creation is allowed.", + "enum": [ + "PSC_ALLOWED", + "PSC_BLOCKED" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "allowSameNetworkUnicast": { + "description": "Specifies whether unicast within the same network is allowed.", + "enum": [ + "SAME_NETWORK_UNICAST_ALLOWED", + "SAME_NETWORK_UNICAST_BLOCKED" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "allowStaticRoutes": { + "description": "Specifies whether static route creation is allowed.", + "enum": [ + "STATIC_ROUTES_ALLOWED", + "STATIC_ROUTES_BLOCKED" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "allowVpcPeering": { + "description": "Specifies whether VPC peering is allowed.", + "enum": [ + "VPC_PEERING_ALLOWED", + "VPC_PEERING_BLOCKED" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "allowVpn": { + "description": "Specifies whether VPN creation is allowed.", + "enum": [ + "VPN_ALLOWED", + "VPN_BLOCKED" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "allowedSubnetPurposes": { + "description": "Specifies which subnetwork purposes are supported.", + "items": { + "enum": [ + "SUBNET_PURPOSE_CUSTOM_HARDWARE", + "SUBNET_PURPOSE_PRIVATE" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "type": "array" + }, + "allowedSubnetStackTypes": { + "description": "Specifies which subnetwork stack types are supported.", + "items": { + "enum": [ + "SUBNET_STACK_TYPE_IPV4_IPV6", + "SUBNET_STACK_TYPE_IPV4_ONLY", + "SUBNET_STACK_TYPE_IPV6_ONLY" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + }, + "type": "array" + }, + "interfaceTypes": { + "description": "If set, limits the interface types that the network supports. If empty, all interface types are supported.", + "items": { + "enum": [ + "GVNIC", + "IDPF", + "UNSPECIFIED_NIC_TYPE", + "VIRTIO_NET" + ], + "enumDescriptions": [ + "GVNIC", + "IDPF", + "No type specified.", + "VIRTIO" + ], + "type": "string" + }, + "type": "array" + }, + "multicast": { + "description": "Specifies which type of multicast is supported.", + "enum": [ + "MULTICAST_SDN", + "MULTICAST_ULL" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "unicast": { + "description": "Specifies which type of unicast is supported.", + "enum": [ + "UNICAST_SDN", + "UNICAST_ULL" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "NetworkPlacementsListResponse": { + "description": "Contains a list of network placements.", + "id": "NetworkPlacementsListResponse", + "properties": { + "etag": { + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of NetworkPlacement resources.", + "items": { + "$ref": "NetworkPlacement" + }, + "type": "array" + }, + "kind": { + "default": "compute#networkPlacementList", + "description": "[Output Only] Type of resource. Always compute#networkPlacementList for network placements.", + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, 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" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "unreachables": { + "description": "[Output Only] Unreachable resources. end_interface: MixerListResponseWithEtagBuilder", + "items": { + "type": "string" + }, + "type": "array" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + 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 + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "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 does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "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.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "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": "object" + }, "NetworkRoutingConfig": { "description": "A routing configuration attached to a network resource. The message includes the list of routers associated with the network, and a flag indicating the type of routing behavior to enforce network-wide.", "id": "NetworkRoutingConfig", @@ -70174,6 +71282,11 @@ "description": "[Output Only] The name of the firewall policy.", "type": "string" }, + "priority": { + "description": "[Output only] Priority of firewall policy association. Not applicable for type=HIERARCHY.", + "format": "int32", + "type": "integer" + }, "rules": { "description": "The rules that apply to the network.", "items": { @@ -70190,9 +71303,11 @@ "enum": [ "HIERARCHY", "NETWORK", + "SYSTEM", "UNSPECIFIED" ], "enumDescriptions": [ + "", "", "", "" @@ -73895,7 +75010,7 @@ "type": "array" }, "cidrRanges": { - "description": "One or more IPv4 or IPv6 CIDR ranges that apply as filter on the source (ingress) or destination (egress) IP in the IP header. If no ranges are specified, all IPv4 traffic that matches the specified IPProtocols is mirrored. If neither cidrRanges nor IPProtocols is specified, all IPv4 traffic is mirrored. To mirror all IPv4 and IPv6 traffic, use \"0.0.0.0/0,::/0\". Note: Support for IPv6 traffic is in preview.", + "description": "One or more IPv4 or IPv6 CIDR ranges that apply as filter on the source (ingress) or destination (egress) IP in the IP header. If no ranges are specified, all IPv4 traffic that matches the specified IPProtocols is mirrored. If neither cidrRanges nor IPProtocols is specified, all IPv4 traffic is mirrored. To mirror all IPv4 and IPv6 traffic, use \"0.0.0.0/0,::/0\".", "items": { "type": "string" }, @@ -74316,15 +75431,15 @@ }, "defaultRouteAction": { "$ref": "HttpRouteAction", - "description": "defaultRouteAction takes effect when none of the pathRules or routeRules match. The load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If defaultRouteAction specifies any weightedBackendServices, defaultService must not be set. Conversely if defaultService is set, defaultRouteAction cannot contain any weightedBackendServices. Only one of defaultRouteAction or defaultUrlRedirect must be set. URL maps for classic Application Load Balancers only support the urlRewrite action within a path matcher's defaultRouteAction." + "description": "defaultRouteAction takes effect when none of the pathRules or routeRules match. The load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If defaultRouteAction specifies any weightedBackendServices, defaultService must not be set. Conversely if defaultService is set, defaultRouteAction cannot contain any weightedBackendServices. If defaultRouteAction is specified, don't set defaultUrlRedirect. If defaultRouteAction.weightedBackendServices is specified, don't set defaultService. URL maps for classic Application Load Balancers only support the urlRewrite action within a path matcher's defaultRouteAction." }, "defaultService": { - "description": "The full or partial URL to the BackendService resource. This URL is used if none of the pathRules or routeRules defined by this PathMatcher are matched. For example, the following are all valid URLs to a BackendService resource: - https://www.googleapis.com/compute/v1/projects/project /global/backendServices/backendService - compute/v1/projects/project/global/backendServices/backendService - global/backendServices/backendService If defaultRouteAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if defaultService is specified, defaultRouteAction cannot contain any weightedBackendServices. Conversely, if defaultRouteAction specifies any weightedBackendServices, defaultService must not be specified. Only one of defaultService, defaultUrlRedirect , or defaultRouteAction.weightedBackendService must be set. Authorization requires one or more of the following Google IAM permissions on the specified resource default_service: - compute.backendBuckets.use - compute.backendServices.use ", + "description": "The full or partial URL to the BackendService resource. This URL is used if none of the pathRules or routeRules defined by this PathMatcher are matched. For example, the following are all valid URLs to a BackendService resource: - https://www.googleapis.com/compute/v1/projects/project /global/backendServices/backendService - compute/v1/projects/project/global/backendServices/backendService - global/backendServices/backendService If defaultRouteAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if defaultService is specified, defaultRouteAction cannot contain any weightedBackendServices. Conversely, if defaultRouteAction specifies any weightedBackendServices, defaultService must not be specified. If defaultService is specified, then set either defaultUrlRedirect or defaultRouteAction.weightedBackendService. Don't set both. Authorization requires one or more of the following Google IAM permissions on the specified resource default_service: - compute.backendBuckets.use - compute.backendServices.use ", "type": "string" }, "defaultUrlRedirect": { "$ref": "HttpRedirectAction", - "description": "When none of the specified pathRules or routeRules match, the request is redirected to a URL specified by defaultUrlRedirect. If defaultUrlRedirect is specified, defaultService or defaultRouteAction must not be set. Not supported when the URL map is bound to a target gRPC proxy." + "description": "When none of the specified pathRules or routeRules match, the request is redirected to a URL specified by defaultUrlRedirect. If defaultUrlRedirect is specified, then set either defaultService or defaultRouteAction. Don't set both. Not supported when the URL map is bound to a target gRPC proxy." }, "description": { "description": "An optional description of this resource. Provide this property when you create the resource.", @@ -76622,6 +77737,9 @@ "GLOBAL_INTERNAL_MANAGED_BACKEND_SERVICES", "GLOBAL_INTERNAL_TRAFFIC_DIRECTOR_BACKEND_SERVICES", "GPUS_ALL_REGIONS", + "HDB_TOTAL_GB", + "HDB_TOTAL_IOPS", + "HDB_TOTAL_THROUGHPUT", "HEALTH_CHECKS", "IMAGES", "INSTANCES", @@ -76699,6 +77817,7 @@ "REGIONAL_INSTANCE_GROUP_MANAGERS", "REGIONAL_INTERNAL_LB_BACKEND_SERVICES", "REGIONAL_INTERNAL_MANAGED_BACKEND_SERVICES", + "REGIONAL_INTERNAL_TRAFFIC_DIRECTOR_BACKEND_SERVICES", "RESERVATIONS", "RESOURCE_POLICIES", "ROUTERS", @@ -76876,6 +77995,10 @@ "", "", "", + "", + "", + "", + "", "The total number of snapshots allowed for a single project.", "", "", @@ -77037,6 +78160,127 @@ "description": "[Output Only] Name of the resource.", "type": "string" }, + "quotaStatusWarning": { + "description": "[Output Only] Warning of fetching the `quotas` field for this region. This field is populated only if fetching of the `quotas` field fails.", + "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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + 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 + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "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 does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "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.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "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" + }, "quotas": { "description": "[Output Only] Quotas assigned to this region.", "items": { @@ -77904,11 +79148,6 @@ }, "type": "array" }, - "skipInapplicableInstances": { - "deprecated": true, - "description": "Skip instances which cannot be deleted (instances not belonging to this managed group, already being deleted or being abandoned). If `false`, fail whole flow, if such instance is passed. DEPRECATED: Use skip_instances_on_validation_error instead.", - "type": "boolean" - }, "skipInstancesOnValidationError": { "description": "Specifies whether the request should proceed despite the inclusion of instances that are not members of the group or that are already in the process of being deleted or abandoned. If this field is set to `false` and such an instance is specified in the request, the operation fails. The operation always fails if the request contains a malformed instance URL or a reference to an instance that exists in a zone or region other than the group's zone or region.", "type": "boolean" @@ -78617,6 +79856,11 @@ "description": "[Output Only] The name of the firewall policy.", "type": "string" }, + "priority": { + "description": "[Output only] Priority of firewall policy association. Not applicable for type=HIERARCHY.", + "format": "int32", + "type": "integer" + }, "rules": { "description": "The rules that apply to the network.", "items": { @@ -78625,14 +79869,18 @@ "type": "array" }, "type": { - "description": "[Output Only] The type of the firewall policy. Can be one of HIERARCHY, NETWORK, NETWORK_REGIONAL.", + "description": "[Output Only] The type of the firewall policy. Can be one of HIERARCHY, NETWORK, NETWORK_REGIONAL, SYSTEM_GLOBAL, SYSTEM_REGIONAL.", "enum": [ "HIERARCHY", "NETWORK", "NETWORK_REGIONAL", + "SYSTEM_GLOBAL", + "SYSTEM_REGIONAL", "UNSPECIFIED" ], "enumDescriptions": [ + "", + "", "", "", "", @@ -79774,7 +81022,7 @@ "type": "object" }, "ResourcePolicyGroupPlacementPolicy": { - "description": "A GroupPlacementPolicy specifies resource placement configuration. It specifies the failure bucket separation as well as network locality", + "description": "A GroupPlacementPolicy specifies resource placement configuration. It specifies the failure bucket separation", "id": "ResourcePolicyGroupPlacementPolicy", "properties": { "availabilityDomainCount": { @@ -79787,25 +81035,13 @@ "enum": [ "CLUSTERED", "COLLOCATED", + "MAX_SPREAD", "UNSPECIFIED_COLLOCATION" ], "enumDescriptions": [ "Specifies collocation option that provides tight collocation with minimum network latency.", "", - "" - ], - "type": "string" - }, - "locality": { - "description": "Specifies network locality", - "enum": [ - "BEST_EFFORT", - "STRICT", - "UNSPECIFIED_LOCALITY" - ], - "enumDescriptions": [ - "", - "", + "Specifies collocation option that provides spreading across clusters.", "" ], "type": "string" @@ -79832,20 +81068,6 @@ "format": "int32", "type": "integer" }, - "style": { - "description": "Specifies instances to hosts placement relationship", - "enum": [ - "COMPACT", - "FULLY_SPREAD", - "UNSPECIFIED_PLACEMENT_TYPE" - ], - "enumDescriptions": [ - "VMs are placed without regard for shared hosts", - "VMs do not share the same hosts", - "" - ], - "type": "string" - }, "tpuTopology": { "description": "Specifies the shape of the TPU slice", "type": "string" @@ -80334,6 +81556,7 @@ "OS_TERMINATED", "PREEMPTED", "SCHEDULED_STOP", + "SHUTDOWN_DUE_TO_HOST_ERROR", "SHUTDOWN_DUE_TO_MAINTENANCE", "USER_TERMINATED" ], @@ -80349,6 +81572,7 @@ "Terminated from the OS level", "Terminated due to preemption", "Terminated due to scheduled stop", + "Terminated due to host error", "Terminated due to maintenance", "Terminated by user" ], @@ -85245,14 +86469,14 @@ "type": "string" }, "consumerAcceptLists": { - "description": "Projects that are allowed to connect to this service attachment.", + "description": "Specifies which consumer projects or networks are allowed to connect to the service attachment. Each project or network has a connection limit. A given service attachment can manage connections at either the project or network level. Therefore, both the accept and reject lists for a given service attachment must contain either only projects or only networks.", "items": { "$ref": "ServiceAttachmentConsumerProjectLimit" }, "type": "array" }, "consumerRejectLists": { - "description": "Projects that are not allowed to connect to this service attachment. The project can be specified using its id or number.", + "description": "Specifies a list of projects or networks that are not allowed to connect to this service attachment. The project can be specified using its project ID or project number and the network can be specified using its URL. A given service attachment can manage connections at either the project or network level. Therefore, both the reject and accept lists for a given service attachment must contain either only projects or only networks.", "items": { "type": "string" }, @@ -85315,7 +86539,7 @@ "type": "string" }, "propagatedConnectionLimit": { - "description": "The number of consumer Network Connectivity Center spokes that connected Private Service Connect endpoints can be propagated to. This limit lets a service producer indirectly limit how many propagated Private Service Connect connections can be established to the producer's service attachment. If the connection preference of the service attachment is ACCEPT_MANUAL, the limit applies to each project or network that is listed in the consumer accept list. If the connection preference of the service attachment is ACCEPT_AUTOMATIC, the limit applies to each project that contains a connected endpoint. If unspecified, the default propagated connection limit is 250.", + "description": "The number of consumer spokes that connected Private Service Connect endpoints can be propagated to through Network Connectivity Center. This limit lets the service producer limit how many propagated Private Service Connect connections can be established to this service attachment from a single consumer. If the connection preference of the service attachment is ACCEPT_MANUAL, the limit applies to each project or network that is listed in the consumer accept list. If the connection preference of the service attachment is ACCEPT_AUTOMATIC, the limit applies to each project that contains a connected endpoint. If unspecified, the default propagated connection limit is 250.", "format": "uint32", "type": "integer" }, @@ -90731,6 +91955,137 @@ }, "type": "object" }, + "SubnetworksScopedWarning": { + "id": "SubnetworksScopedWarning", + "properties": { + "scopeName": { + "description": "Name of the scope containing this set of Subnetworks.", + "type": "string" + }, + "warning": { + "description": "An informational warning about unreachable scope", + "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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + 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 + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "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 does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "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.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "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": "object" + }, "SubnetworksSetPrivateIpGoogleAccessRequest": { "id": "SubnetworksSetPrivateIpGoogleAccessRequest", "properties": { @@ -94920,7 +96275,7 @@ "description": "defaultRouteAction takes effect when none of the hostRules match. The load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If defaultRouteAction specifies any weightedBackendServices, defaultService must not be set. Conversely if defaultService is set, defaultRouteAction cannot contain any weightedBackendServices. Only one of defaultRouteAction or defaultUrlRedirect must be set. URL maps for classic Application Load Balancers only support the urlRewrite action within defaultRouteAction. defaultRouteAction has no effect when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true." }, "defaultService": { - "description": "The full or partial URL of the defaultService resource to which traffic is directed if none of the hostRules match. If defaultRouteAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if defaultService is specified, defaultRouteAction cannot contain any weightedBackendServices. Conversely, if routeAction specifies any weightedBackendServices, service must not be specified. Only one of defaultService, defaultUrlRedirect , or defaultRouteAction.weightedBackendService must be set. defaultService has no effect when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true.", + "description": "The full or partial URL of the defaultService resource to which traffic is directed if none of the hostRules match. If defaultRouteAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if defaultService is specified, defaultRouteAction cannot contain any weightedBackendServices. Conversely, if routeAction specifies any weightedBackendServices, service must not be specified. If defaultService is specified, then set either defaultUrlRedirect , or defaultRouteAction.weightedBackendService Don't set both. defaultService has no effect when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true.", "type": "string" }, "defaultUrlRedirect": { @@ -95722,10 +97077,24 @@ "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, 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. In special cases listUsable may return 0 subnetworks and nextPageToken which still should be used to get the next page of results.", "type": "string" }, + "scoped_warnings": { + "description": "[Output Only] Informational warning messages for failures encountered from scopes.", + "items": { + "$ref": "SubnetworksScopedWarning" + }, + "type": "array" + }, "selfLink": { "description": "[Output Only] Server-defined URL for this resource.", "type": "string" }, + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "items": { + "type": "string" + }, + "type": "array" + }, "warning": { "description": "[Output Only] Informational warning message.", "properties": { diff --git a/etc/api/compute/beta/compute-api.json b/etc/api/compute/beta/compute-api.json index 7610e6eb37..5ae3427b37 100644 --- a/etc/api/compute/beta/compute-api.json +++ b/etc/api/compute/beta/compute-api.json @@ -5309,11 +5309,6 @@ "required": true, "type": "string" }, - "paths": { - "location": "query", - "repeated": true, - "type": "string" - }, "project": { "description": "Project ID for this request.", "location": "path", @@ -8080,6 +8075,12 @@ "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" + }, + "zone": { + "description": "The zone query parameter.", + "location": "query", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" } }, "path": "projects/{project}/global/images", @@ -10678,6 +10679,21 @@ "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" + }, + "view": { + "description": "View of the instance template.", + "enum": [ + "BASIC", + "FULL", + "INSTANCE_VIEW_UNSPECIFIED" + ], + "enumDescriptions": [ + "Include everything except Partner Metadata.", + "Include everything.", + "The default / unset value. The API will default to the BASIC view." + ], + "location": "query", + "type": "string" } }, "path": "projects/{project}/global/instanceTemplates/{instanceTemplate}", @@ -10808,6 +10824,21 @@ "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" + }, + "view": { + "description": "View of the instance template.", + "enum": [ + "BASIC", + "FULL", + "INSTANCE_VIEW_UNSPECIFIED" + ], + "enumDescriptions": [ + "Include everything except Partner Metadata.", + "Include everything.", + "The default / unset value. The API will default to the BASIC view." + ], + "location": "query", + "type": "string" } }, "path": "projects/{project}/global/instanceTemplates", @@ -11356,6 +11387,21 @@ "required": true, "type": "string" }, + "view": { + "description": "View of the instance.", + "enum": [ + "BASIC", + "FULL", + "INSTANCE_VIEW_UNSPECIFIED" + ], + "enumDescriptions": [ + "Include everything except Partner Metadata.", + "Include everything.", + "The default / unset value. The API will default to the BASIC view." + ], + "location": "query", + "type": "string" + }, "zone": { "description": "The name of the zone for this request.", "location": "path", @@ -11526,6 +11572,54 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, + "getPartnerMetadata": { + "description": "Gets partner metadata of the specified instance and namespaces.", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/getPartnerMetadata", + "httpMethod": "GET", + "id": "compute.instances.getPartnerMetadata", + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "parameters": { + "instance": { + "description": "Name of the instance scoping 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" + }, + "namespaces": { + "description": "Comma separated partner metadata namespaces.", + "location": "query", + "type": "string" + }, + "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" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/instances/{instance}/getPartnerMetadata", + "response": { + "$ref": "PartnerMetadata" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, "getScreenshot": { "description": "Returns the screenshot from the specified instance.", "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/screenshot", @@ -11810,6 +11904,21 @@ "location": "query", "type": "boolean" }, + "view": { + "description": "View of the instance.", + "enum": [ + "BASIC", + "FULL", + "INSTANCE_VIEW_UNSPECIFIED" + ], + "enumDescriptions": [ + "Include everything except Partner Metadata.", + "Include everything.", + "The default / unset value. The API will default to the BASIC view." + ], + "location": "query", + "type": "string" + }, "zone": { "description": "The name of the zone for this request.", "location": "path", @@ -11899,6 +12008,56 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, + "patchPartnerMetadata": { + "description": "Patches partner metadata of the specified instance.", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/patchPartnerMetadata", + "httpMethod": "POST", + "id": "compute.instances.patchPartnerMetadata", + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "parameters": { + "instance": { + "description": "Name of the instance scoping 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" + }, + "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" + }, + "requestId": { + "description": "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. 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" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/instances/{instance}/patchPartnerMetadata", + "request": { + "$ref": "PartnerMetadata" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "performMaintenance": { "description": "Perform a manual maintenance on the instance.", "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/performMaintenance", @@ -26274,6 +26433,21 @@ "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" + }, + "view": { + "description": "View of the instance template.", + "enum": [ + "BASIC", + "FULL", + "INSTANCE_VIEW_UNSPECIFIED" + ], + "enumDescriptions": [ + "Include everything except Partner Metadata.", + "Include everything.", + "The default / unset value. The API will default to the BASIC view." + ], + "location": "query", + "type": "string" } }, "path": "projects/{project}/regions/{region}/instanceTemplates/{instanceTemplate}", @@ -26379,6 +26553,21 @@ "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" + }, + "view": { + "description": "View of the instance template.", + "enum": [ + "BASIC", + "FULL", + "INSTANCE_VIEW_UNSPECIFIED" + ], + "enumDescriptions": [ + "Include everything except Partner Metadata.", + "Include everything.", + "The default / unset value. The API will default to the BASIC view." + ], + "location": "query", + "type": "string" } }, "path": "projects/{project}/regions/{region}/instanceTemplates", @@ -32178,6 +32367,58 @@ "https://www.googleapis.com/auth/compute" ] }, + "deleteRoutePolicy": { + "description": "Deletes Route Policy", + "flatPath": "projects/{project}/regions/{region}/routers/{router}/deleteRoutePolicy", + "httpMethod": "POST", + "id": "compute.routers.deleteRoutePolicy", + "parameterOrder": [ + "project", + "region", + "router" + ], + "parameters": { + "policy": { + "description": "The Policy name for this request. Name must conform to RFC1035", + "location": "query", + "type": "string" + }, + "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" + }, + "region": { + "description": "Name of the region for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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. 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" + }, + "router": { + "description": "Name of the Router resource where Route Policy is defined.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/routers/{router}/deleteRoutePolicy", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "get": { "description": "Returns the specified Router resource.", "flatPath": "projects/{project}/regions/{region}/routers/{router}", @@ -32344,6 +32585,53 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, + "getRoutePolicy": { + "description": "Returns specified Route Policy", + "flatPath": "projects/{project}/regions/{region}/routers/{router}/getRoutePolicy", + "httpMethod": "GET", + "id": "compute.routers.getRoutePolicy", + "parameterOrder": [ + "project", + "region", + "router" + ], + "parameters": { + "policy": { + "description": "The Policy name for this request. Name must conform to RFC1035", + "location": "query", + "type": "string" + }, + "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" + }, + "region": { + "description": "Name of the region for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "router": { + "description": "Name of the Router resource to query for the route policy. The name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/routers/{router}/getRoutePolicy", + "response": { + "$ref": "RoutersGetRoutePolicyResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, "getRouterStatus": { "description": "Retrieves runtime information of the specified router.", "flatPath": "projects/{project}/regions/{region}/routers/{router}/getRouterStatus", @@ -32492,6 +32780,196 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, + "listBgpRoutes": { + "description": "Retrieves a list of router bgp routes available to the specified project.", + "flatPath": "projects/{project}/regions/{region}/routers/{router}/listBgpRoutes", + "httpMethod": "GET", + "id": "compute.routers.listBgpRoutes", + "parameterOrder": [ + "project", + "region", + "router" + ], + "parameters": { + "addressFamily": { + "default": "UNSPECIFIED_IP_VERSION", + "description": "(Required) limit results to this address family (either IPv4 or IPv6)", + "enum": [ + "IPV4", + "IPV6", + "UNSPECIFIED_IP_VERSION" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "location": "query", + "type": "string" + }, + "destinationPrefix": { + "description": "Limit results to destinations that are subnets of this CIDR range", + "location": "query", + "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" + }, + "peer": { + "description": "(Required) limit results to the BGP peer with the given name. Name should conform to RFC1035.", + "location": "query", + "type": "string" + }, + "policyApplied": { + "default": "true", + "description": "When true, the method returns post-policy routes. Otherwise, it returns pre-policy routes.", + "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" + }, + "region": { + "description": "Name of the region for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "routeType": { + "default": "UNSPECIFIED_ROUTE_TYPE", + "description": "(Required) limit results to this type of route (either LEARNED or ADVERTISED)", + "enum": [ + "ADVERTISED", + "LEARNED", + "UNSPECIFIED_ROUTE_TYPE" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "location": "query", + "type": "string" + }, + "router": { + "description": "Name or id of the resource for this request. Name should conform to RFC1035.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/routers/{router}/listBgpRoutes", + "response": { + "$ref": "RoutersListBgpRoutes" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "listRoutePolicies": { + "description": "Retrieves a list of router route policy subresources available to the specified project.", + "flatPath": "projects/{project}/regions/{region}/routers/{router}/listRoutePolicies", + "httpMethod": "GET", + "id": "compute.routers.listRoutePolicies", + "parameterOrder": [ + "project", + "region", + "router" + ], + "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": "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" + }, + "region": { + "description": "Name of the region for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "router": { + "description": "Name or id of the resource for this request. Name should conform to RFC1035.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/routers/{router}/listRoutePolicies", + "response": { + "$ref": "RoutersListRoutePolicies" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, "patch": { "description": "Patches the specified Router resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules.", "flatPath": "projects/{project}/regions/{region}/routers/{router}", @@ -32683,6 +33161,56 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] + }, + "updateRoutePolicy": { + "description": "Updates or creates new Route Policy", + "flatPath": "projects/{project}/regions/{region}/routers/{router}/updateRoutePolicy", + "httpMethod": "POST", + "id": "compute.routers.updateRoutePolicy", + "parameterOrder": [ + "project", + "region", + "router" + ], + "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" + }, + "region": { + "description": "Name of the region for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "requestId": { + "description": "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. 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" + }, + "router": { + "description": "Name of the Router resource where Route Policy is defined.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/routers/{router}/updateRoutePolicy", + "request": { + "$ref": "RoutePolicy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] } } }, @@ -34964,6 +35492,713 @@ } } }, + "storagePoolTypes": { + "methods": { + "aggregatedList": { + "description": "Retrieves an aggregated list of storage pool types. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", + "flatPath": "projects/{project}/aggregated/storagePoolTypes", + "httpMethod": "GET", + "id": "compute.storagePoolTypes.aggregatedList", + "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" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "location": "query", + "type": "boolean" + }, + "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": "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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "format": "int64", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/aggregated/storagePoolTypes", + "response": { + "$ref": "StoragePoolTypeAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "get": { + "description": "Returns the specified storage pool type.", + "flatPath": "projects/{project}/zones/{zone}/storagePoolTypes/{storagePoolType}", + "httpMethod": "GET", + "id": "compute.storagePoolTypes.get", + "parameterOrder": [ + "project", + "zone", + "storagePoolType" + ], + "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" + }, + "storagePoolType": { + "description": "Name of the storage pool type to return.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/storagePoolTypes/{storagePoolType}", + "response": { + "$ref": "StoragePoolType" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "list": { + "description": "Retrieves a list of storage pool types available to the specified project.", + "flatPath": "projects/{project}/zones/{zone}/storagePoolTypes", + "httpMethod": "GET", + "id": "compute.storagePoolTypes.list", + "parameterOrder": [ + "project", + "zone" + ], + "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": "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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/storagePoolTypes", + "response": { + "$ref": "StoragePoolTypeList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + } + } + }, + "storagePools": { + "methods": { + "aggregatedList": { + "description": "Retrieves an aggregated list of storage pools. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", + "flatPath": "projects/{project}/aggregated/storagePools", + "httpMethod": "GET", + "id": "compute.storagePools.aggregatedList", + "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" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "location": "query", + "type": "boolean" + }, + "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": "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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "format": "int64", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/aggregated/storagePools", + "response": { + "$ref": "StoragePoolAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "delete": { + "description": "Deletes the specified storage pool. Deleting a storagePool removes its data permanently and is irreversible. However, deleting a storagePool does not delete any snapshots previously made from the storagePool. You must separately delete snapshots.", + "flatPath": "projects/{project}/zones/{zone}/storagePools/{storagePool}", + "httpMethod": "DELETE", + "id": "compute.storagePools.delete", + "parameterOrder": [ + "project", + "zone", + "storagePool" + ], + "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" + }, + "requestId": { + "description": "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. 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" + }, + "storagePool": { + "description": "Name of the storage pool to delete.", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/storagePools/{storagePool}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "description": "Returns a specified storage pool. Gets a list of available storage pools by making a list() request.", + "flatPath": "projects/{project}/zones/{zone}/storagePools/{storagePool}", + "httpMethod": "GET", + "id": "compute.storagePools.get", + "parameterOrder": [ + "project", + "zone", + "storagePool" + ], + "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" + }, + "storagePool": { + "description": "Name of the storage pool to return.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/storagePools/{storagePool}", + "response": { + "$ref": "StoragePool" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "getIamPolicy": { + "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.", + "flatPath": "projects/{project}/zones/{zone}/storagePools/{resource}/getIamPolicy", + "httpMethod": "GET", + "id": "compute.storagePools.getIamPolicy", + "parameterOrder": [ + "project", + "zone", + "resource" + ], + "parameters": { + "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" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/storagePools/{resource}/getIamPolicy", + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "description": "Creates a storage pool in the specified project using the data in the request.", + "flatPath": "projects/{project}/zones/{zone}/storagePools", + "httpMethod": "POST", + "id": "compute.storagePools.insert", + "parameterOrder": [ + "project", + "zone" + ], + "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" + }, + "requestId": { + "description": "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. 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" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/storagePools", + "request": { + "$ref": "StoragePool" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "description": "Retrieves a list of storage pools contained within the specified zone.", + "flatPath": "projects/{project}/zones/{zone}/storagePools", + "httpMethod": "GET", + "id": "compute.storagePools.list", + "parameterOrder": [ + "project", + "zone" + ], + "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": "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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/storagePools", + "response": { + "$ref": "StoragePoolList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "listDisks": { + "description": "Lists the disks in a specified storage pool.", + "flatPath": "projects/{project}/zones/{zone}/storagePools/{storagePool}/listDisks", + "httpMethod": "GET", + "id": "compute.storagePools.listDisks", + "parameterOrder": [ + "project", + "zone", + "storagePool" + ], + "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": "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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "storagePool": { + "description": "Name of the storage pool to list disks of.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/storagePools/{storagePool}/listDisks", + "response": { + "$ref": "StoragePoolListDisks" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "setIamPolicy": { + "description": "Sets the access control policy on the specified resource. Replaces any existing policy.", + "flatPath": "projects/{project}/zones/{zone}/storagePools/{resource}/setIamPolicy", + "httpMethod": "POST", + "id": "compute.storagePools.setIamPolicy", + "parameterOrder": [ + "project", + "zone", + "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" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/storagePools/{resource}/setIamPolicy", + "request": { + "$ref": "ZoneSetPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.", + "flatPath": "projects/{project}/zones/{zone}/storagePools/{resource}/testIamPermissions", + "httpMethod": "POST", + "id": "compute.storagePools.testIamPermissions", + "parameterOrder": [ + "project", + "zone", + "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" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/storagePools/{resource}/testIamPermissions", + "request": { + "$ref": "TestPermissionsRequest" + }, + "response": { + "$ref": "TestPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "update": { + "description": "Updates the specified storagePool with the data included in the request. The update is performed only on selected fields included as part of update-mask. Only the following fields can be modified: size_tb and provisioned_iops.", + "flatPath": "projects/{project}/zones/{zone}/storagePools/{storagePool}", + "httpMethod": "PATCH", + "id": "compute.storagePools.update", + "parameterOrder": [ + "project", + "zone", + "storagePool" + ], + "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" + }, + "requestId": { + "description": "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. 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" + }, + "storagePool": { + "description": "The storagePool name 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" + }, + "updateMask": { + "description": "update_mask indicates fields to be updated as part of this request.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/storagePools/{storagePool}", + "request": { + "$ref": "StoragePool" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + } + } + }, "subnetworks": { "methods": { "aggregatedList": { @@ -40344,7 +41579,7 @@ } } }, - "revision": "20240218", + "revision": "20240407", "rootUrl": "https://compute.googleapis.com/", "schemas": { "AWSV4Signature": { @@ -42075,6 +43310,10 @@ "sourceSnapshotEncryptionKey": { "$ref": "CustomerEncryptionKey", "description": "The customer-supplied encryption key of the source snapshot." + }, + "storagePool": { + "description": "The storage pool in which the new disk is created. You can provide this as a partial or full URL to the resource. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /storagePools/storagePool - projects/project/zones/zone/storagePools/storagePool - zones/zone/storagePools/storagePool ", + "type": "string" } }, "type": "object" @@ -44881,6 +46120,91 @@ }, "type": "object" }, + "BgpRoute": { + "id": "BgpRoute", + "properties": { + "asPaths": { + "description": "[Output only] AS-PATH for the route", + "items": { + "$ref": "BgpRouteAsPath" + }, + "type": "array" + }, + "communities": { + "description": "[Output only] BGP communities in human-readable A:B format.", + "items": { + "type": "string" + }, + "type": "array" + }, + "destination": { + "$ref": "BgpRouteNetworkLayerReachabilityInformation", + "description": "[Output only] Destination IP range for the route, in human-readable CIDR format" + }, + "med": { + "description": "[Output only] BGP multi-exit discriminator", + "format": "uint32", + "type": "integer" + }, + "origin": { + "description": "[Output only] BGP origin (EGP, IGP or INCOMPLETE)", + "enum": [ + "BGP_ORIGIN_EGP", + "BGP_ORIGIN_IGP", + "BGP_ORIGIN_INCOMPLETE" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "BgpRouteAsPath": { + "id": "BgpRouteAsPath", + "properties": { + "asns": { + "description": "[Output only] ASNs in the path segment. When type is SEQUENCE, these are ordered.", + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + }, + "type": { + "description": "[Output only] Type of AS-PATH segment (SEQUENCE or SET)", + "enum": [ + "AS_PATH_TYPE_SEQUENCE", + "AS_PATH_TYPE_SET" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "BgpRouteNetworkLayerReachabilityInformation": { + "description": "Network Layer Reachability Information (NLRI) for a route.", + "id": "BgpRouteNetworkLayerReachabilityInformation", + "properties": { + "pathId": { + "description": "If the BGP session supports multiple paths (RFC 7911), the path identifier for this route.", + "format": "uint32", + "type": "integer" + }, + "prefix": { + "description": "Human readable CIDR notation for a prefix. E.g. 10.42.0.0/16.", + "type": "string" + } + }, + "type": "object" + }, "Binding": { "description": "Associates `members`, or principals, with a `role`.", "id": "Binding", @@ -45273,6 +46597,7 @@ "GENERAL_PURPOSE_E2", "GENERAL_PURPOSE_N2", "GENERAL_PURPOSE_N2D", + "GENERAL_PURPOSE_N4", "GENERAL_PURPOSE_T2D", "GRAPHICS_OPTIMIZED", "MEMORY_OPTIMIZED", @@ -45297,6 +46622,7 @@ "", "", "", + "", "" ], "type": "string" @@ -45930,7 +47256,7 @@ "type": "array" }, "allowOriginRegexes": { - "description": "Specifies a regular expression that matches allowed origins. For more information about the regular expression syntax, see Syntax. An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. Regular expressions can only be used when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED.", + "description": "Specifies a regular expression that matches allowed origins. For more information, see regular expression syntax . An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. Regular expressions can only be used when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED.", "items": { "type": "string" }, @@ -45944,7 +47270,7 @@ "type": "array" }, "disabled": { - "description": "If true, the setting specifies the CORS policy is disabled. The default value of false, which indicates that the CORS policy is in effect.", + "description": "If true, disables the CORS policy. The default value is false, which indicates that the CORS policy is in effect.", "type": "boolean" }, "exposeHeaders": { @@ -46346,17 +47672,23 @@ "DELETING", "FAILED", "READY", - "RESTORING" + "RESTORING", + "UNAVAILABLE" ], "enumDescriptions": [ "Disk is provisioning", "Disk is deleting.", "Disk creation failed.", "Disk is ready for use.", - "Source data is being copied into the disk." + "Source data is being copied into the disk.", + "Disk is currently unavailable and cannot be accessed, attached or detached." ], "type": "string" }, + "storagePool": { + "description": "The storage pool in which the new disk is created. You can provide this as a partial or full URL to the resource. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /storagePools/storagePool - projects/project/zones/zone/storagePools/storagePool - zones/zone/storagePools/storagePool ", + "type": "string" + }, "storageType": { "description": "[Deprecated] Storage type of the persistent disk.", "enum": [ @@ -47623,7 +48955,7 @@ "additionalProperties": { "type": "string" }, - "description": "Additional structured details about this error. Keys should match /[a-zA-Z0-9-_]/ and 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.", + "description": "Additional structured details about this error. Keys must match /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": { @@ -50627,7 +51959,7 @@ "id": "GuestOsFeature", "properties": { "type": { - "description": "The ID of a supported feature. To add multiple values, use commas to separate values. Set to one or more of the following values: - VIRTIO_SCSI_MULTIQUEUE - WINDOWS - MULTI_IP_SUBNET - UEFI_COMPATIBLE - GVNIC - SEV_CAPABLE - SUSPEND_RESUME_COMPATIBLE - SEV_LIVE_MIGRATABLE - SEV_SNP_CAPABLE - TDX_CAPABLE - IDPF For more information, see Enabling guest operating system features.", + "description": "The ID of a supported feature. To add multiple values, use commas to separate values. Set to one or more of the following values: - VIRTIO_SCSI_MULTIQUEUE - WINDOWS - MULTI_IP_SUBNET - UEFI_COMPATIBLE - GVNIC - SEV_CAPABLE - SUSPEND_RESUME_COMPATIBLE - SEV_LIVE_MIGRATABLE_V2 - SEV_SNP_CAPABLE - TDX_CAPABLE - IDPF For more information, see Enabling guest operating system features.", "enum": [ "FEATURE_TYPE_UNSPECIFIED", "GVNIC", @@ -50883,6 +52215,13 @@ "description": "[Output Only] Server-defined URL for the resource.", "type": "string" }, + "sourceRegions": { + "description": "The list of cloud regions from which health checks are performed. If any regions are specified, then exactly 3 regions should be specified. The region names must be valid names of GCP regions. This can only be set for global health check. If this list is non-empty, then there are restrictions on what other health check fields are supported and what other resources can use this health check: - SSL, HTTP2, and GRPC protocols are not supported. - The TCP request field is not supported. - The proxyHeader field for HTTP, HTTPS, and TCP is not supported. - The checkIntervalSec field must be at least 30. - The health check cannot be used with BackendService nor with managed instance group auto-healing. ", + "items": { + "type": "string" + }, + "type": "array" + }, "sslHealthCheck": { "$ref": "SSLHealthCheck" }, @@ -53240,6 +54579,13 @@ "$ref": "InstanceParams", "description": "Input only. [Input Only] Additional params passed with the request, but not persisted as part of resource payload." }, + "partnerMetadata": { + "additionalProperties": { + "$ref": "StructuredEntries" + }, + "description": "Partner Metadata assigned to the instance. A map from a subdomain (namespace) to entries map.", + "type": "object" + }, "postKeyRevocationActionType": { "description": "PostKeyRevocationActionType of the instance.", "enum": [ @@ -54066,6 +55412,10 @@ }, "type": "array" }, + "params": { + "$ref": "InstanceGroupManagerParams", + "description": "Input only. Additional params passed with the request, but not persisted as part of resource payload." + }, "region": { "description": "[Output Only] The URL of the region where the managed instance group resides (for regional resources).", "type": "string" @@ -54613,12 +55963,27 @@ }, "type": "object" }, + "InstanceGroupManagerParams": { + "description": "Input only additional params for instance group manager creation.", + "id": "InstanceGroupManagerParams", + "properties": { + "resourceManagerTags": { + "additionalProperties": { + "type": "string" + }, + "description": "Resource manager tags to bind to the managed instance group. The tags are key-value pairs. Keys must be in the format tagKeys/123 and values in the format tagValues/456. For more information, see Manage tags for resources.", + "type": "object" + } + }, + "type": "object" + }, "InstanceGroupManagerResizeRequest": { "description": "InstanceGroupManagerResizeRequest represents a request to create a number of VMs: either immediately or by queuing the request for the specified time. This resize request is nested under InstanceGroupManager and the VMs created by this request are added to the owning InstanceGroupManager.", "id": "InstanceGroupManagerResizeRequest", "properties": { "count": { - "description": "The count of instances to create as part of this resize request.", + "deprecated": true, + "description": "This field is deprecated, please use resize_by instead. The count of instances to create as part of this resize request.", "format": "int32", "type": "integer" }, @@ -54675,14 +56040,25 @@ "CREATING", "FAILED", "PROVISIONING", + "STATE_UNSPECIFIED", "SUCCEEDED" ], + "enumDeprecated": [ + false, + false, + false, + false, + true, + false, + false + ], "enumDescriptions": [ "The request was created successfully and was accepted for provisioning when the capacity becomes available.", "The request is cancelled.", - "resize request is being created and may still fail creation.", + "Resize request is being created and may still fail creation.", "The request failed before or during provisioning. If the request fails during provisioning, any VMs that were created during provisioning are rolled back and removed from the MIG.", - "The target resource(s) are being provisioned.", + "The value is deprecated. ResizeRequests would stay in the ACCEPTED state during provisioning attempts. The target resource(s) are being provisioned.", + "Default value. This value should never be returned.", "The request succeeded." ], "type": "string" @@ -55039,7 +56415,7 @@ }, "perInstanceConfigs": { "$ref": "InstanceGroupManagerStatusStatefulPerInstanceConfigs", - "description": "[Output Only] Status of per-instance configurations on the instance." + "description": "[Output Only] Status of per-instance configurations on the instances." } }, "type": "object" @@ -56584,6 +57960,13 @@ "$ref": "NetworkPerformanceConfig", "description": "Note that for MachineImage, this is not supported yet." }, + "partnerMetadata": { + "additionalProperties": { + "$ref": "StructuredEntries" + }, + "description": "Partner Metadata assigned to the instance properties. A map from a subdomain (namespace) to entries map.", + "type": "object" + }, "postKeyRevocationActionType": { "description": "PostKeyRevocationActionType of the instance.", "enum": [ @@ -57346,7 +58729,7 @@ "type": "string" }, "type": { - "description": "[Output Only] The type of the firewall policy. Can be one of HIERARCHY, NETWORK, NETWORK_REGIONAL.", + "description": "[Output Only] The type of the firewall policy. Can be one of HIERARCHY, NETWORK, NETWORK_REGIONAL, SYSTEM_GLOBAL, SYSTEM_REGIONAL.", "enum": [ "HIERARCHY", "NETWORK", @@ -57755,13 +59138,15 @@ "CREATING", "DELETING", "FAILED", - "READY" + "READY", + "UNAVAILABLE" ], "enumDescriptions": [ "InstantSnapshot creation is in progress.", "InstantSnapshot is currently being deleted.", "InstantSnapshot creation failed.", - "InstantSnapshot has been created successfully." + "InstantSnapshot has been created successfully.", + "InstantSnapshot is currently unavailable and cannot be used for Disk restoration" ], "type": "string" }, @@ -60192,7 +61577,7 @@ "id": "InterconnectRemoteLocationConstraints", "properties": { "portPairRemoteLocation": { - "description": "[Output Only] Port pair remote location constraints, which can take one of the following values: PORT_PAIR_UNCONSTRAINED_REMOTE_LOCATION, PORT_PAIR_MATCHING_REMOTE_LOCATION. GCP's API refers only to individual ports, but the UI uses this field when ordering a pair of ports, to prevent users from accidentally ordering something that is incompatible with their cloud provider. Specifically, when ordering a redundant pair of Cross-Cloud Interconnect ports, and one of them uses a remote location with portPairMatchingRemoteLocation set to matching, the UI requires that both ports use the same remote location.", + "description": "[Output Only] Port pair remote location constraints, which can take one of the following values: PORT_PAIR_UNCONSTRAINED_REMOTE_LOCATION, PORT_PAIR_MATCHING_REMOTE_LOCATION. Google Cloud API refers only to individual ports, but the UI uses this field when ordering a pair of ports, to prevent users from accidentally ordering something that is incompatible with their cloud provider. Specifically, when ordering a redundant pair of Cross-Cloud Interconnect ports, and one of them uses a remote location with portPairMatchingRemoteLocation set to matching, the UI requires that both ports use the same remote location.", "enum": [ "PORT_PAIR_MATCHING_REMOTE_LOCATION", "PORT_PAIR_UNCONSTRAINED_REMOTE_LOCATION" @@ -63222,7 +64607,13 @@ "description": "Metadata defined as annotations on the network endpoint.", "type": "object" }, + "clientDestinationPort": { + "description": "Represents the port number to which PSC consumer sends packets. Only valid for network endpoint groups created with GCE_VM_IP_PORTMAP endpoint type.", + "format": "int32", + "type": "integer" + }, "clientPort": { + "deprecated": true, "description": "Represents the port number to which PSC consumer sends packets. Only valid for network endpoint groups created with CLIENT_PORT_PER_ENDPOINT mapping mode.", "format": "int32", "type": "integer" @@ -63267,6 +64658,7 @@ "description": "Only valid when networkEndpointType is SERVERLESS. Only one of cloudRun, appEngine or cloudFunction may be set." }, "clientPortMappingMode": { + "deprecated": true, "description": "Only valid when networkEndpointType is GCE_VM_IP_PORT and the NEG is regional.", "enum": [ "CLIENT_PORT_PER_ENDPOINT", @@ -63323,10 +64715,11 @@ "type": "string" }, "networkEndpointType": { - "description": "Type of network endpoints in this network endpoint group. Can be one of GCE_VM_IP, GCE_VM_IP_PORT, NON_GCP_PRIVATE_IP_PORT, INTERNET_FQDN_PORT, INTERNET_IP_PORT, SERVERLESS, PRIVATE_SERVICE_CONNECT.", + "description": "Type of network endpoints in this network endpoint group. Can be one of GCE_VM_IP, GCE_VM_IP_PORT, NON_GCP_PRIVATE_IP_PORT, INTERNET_FQDN_PORT, INTERNET_IP_PORT, SERVERLESS, PRIVATE_SERVICE_CONNECT, GCE_VM_IP_PORTMAP.", "enum": [ "GCE_VM_IP", "GCE_VM_IP_PORT", + "GCE_VM_IP_PORTMAP", "INTERNET_FQDN_PORT", "INTERNET_IP_PORT", "NON_GCP_PRIVATE_IP_PORT", @@ -63336,6 +64729,7 @@ "enumDescriptions": [ "The network endpoint is represented by an IP address.", "The network endpoint is represented by IP address and port pair.", + "The network endpoint is represented by an IP, Port and Client Destination Port.", "The network endpoint is represented by fully qualified domain name and port.", "The network endpoint is represented by an internet IP address and port.", "The network endpoint is represented by an IP address and port. The endpoint belongs to a VM or pod running in a customer's on-premises.", @@ -68015,7 +69409,7 @@ "type": "array" }, "cidrRanges": { - "description": "One or more IPv4 or IPv6 CIDR ranges that apply as filter on the source (ingress) or destination (egress) IP in the IP header. If no ranges are specified, all IPv4 traffic that matches the specified IPProtocols is mirrored. If neither cidrRanges nor IPProtocols is specified, all IPv4 traffic is mirrored. To mirror all IPv4 and IPv6 traffic, use \"0.0.0.0/0,::/0\". Note: Support for IPv6 traffic is in preview.", + "description": "One or more IPv4 or IPv6 CIDR ranges that apply as filter on the source (ingress) or destination (egress) IP in the IP header. If no ranges are specified, all IPv4 traffic that matches the specified IPProtocols is mirrored. If neither cidrRanges nor IPProtocols is specified, all IPv4 traffic is mirrored. To mirror all IPv4 and IPv6 traffic, use \"0.0.0.0/0,::/0\".", "items": { "type": "string" }, @@ -68407,6 +69801,25 @@ }, "type": "object" }, + "PartnerMetadata": { + "description": "Model definition of partner_metadata field. To be used in dedicated Partner Metadata methods and to be inlined in the Instance and InstanceTemplate resources.", + "id": "PartnerMetadata", + "properties": { + "fingerprint": { + "description": "Instance-level hash to be used for optimistic locking.", + "format": "byte", + "type": "string" + }, + "partnerMetadata": { + "additionalProperties": { + "$ref": "StructuredEntries" + }, + "description": "Partner Metadata assigned to the instance. A map from a subdomain to entries map. Subdomain name must be compliant with RFC1035 definition. The total size of all keys and values must be less than 2MB. Subdomain 'metadata.compute.googleapis.com' is reserverd for instance's metadata.", + "type": "object" + } + }, + "type": "object" + }, "PathMatcher": { "description": "A matcher for the path portion of the URL. The BackendService from the longest-matched rule will serve the URL. If no rule was matched, the default service is used.", "id": "PathMatcher", @@ -68417,15 +69830,15 @@ }, "defaultRouteAction": { "$ref": "HttpRouteAction", - "description": "defaultRouteAction takes effect when none of the pathRules or routeRules match. The load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If defaultRouteAction specifies any weightedBackendServices, defaultService must not be set. Conversely if defaultService is set, defaultRouteAction cannot contain any weightedBackendServices. Only one of defaultRouteAction or defaultUrlRedirect must be set. URL maps for classic Application Load Balancers only support the urlRewrite action within a path matcher's defaultRouteAction." + "description": "defaultRouteAction takes effect when none of the pathRules or routeRules match. The load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If defaultRouteAction specifies any weightedBackendServices, defaultService must not be set. Conversely if defaultService is set, defaultRouteAction cannot contain any weightedBackendServices. If defaultRouteAction is specified, don't set defaultUrlRedirect. If defaultRouteAction.weightedBackendServices is specified, don't set defaultService. URL maps for classic Application Load Balancers only support the urlRewrite action within a path matcher's defaultRouteAction." }, "defaultService": { - "description": "The full or partial URL to the BackendService resource. This URL is used if none of the pathRules or routeRules defined by this PathMatcher are matched. For example, the following are all valid URLs to a BackendService resource: - https://www.googleapis.com/compute/v1/projects/project /global/backendServices/backendService - compute/v1/projects/project/global/backendServices/backendService - global/backendServices/backendService If defaultRouteAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if defaultService is specified, defaultRouteAction cannot contain any weightedBackendServices. Conversely, if defaultRouteAction specifies any weightedBackendServices, defaultService must not be specified. Only one of defaultService, defaultUrlRedirect , or defaultRouteAction.weightedBackendService must be set. Authorization requires one or more of the following Google IAM permissions on the specified resource default_service: - compute.backendBuckets.use - compute.backendServices.use ", + "description": "The full or partial URL to the BackendService resource. This URL is used if none of the pathRules or routeRules defined by this PathMatcher are matched. For example, the following are all valid URLs to a BackendService resource: - https://www.googleapis.com/compute/v1/projects/project /global/backendServices/backendService - compute/v1/projects/project/global/backendServices/backendService - global/backendServices/backendService If defaultRouteAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if defaultService is specified, defaultRouteAction cannot contain any weightedBackendServices. Conversely, if defaultRouteAction specifies any weightedBackendServices, defaultService must not be specified. If defaultService is specified, then set either defaultUrlRedirect or defaultRouteAction.weightedBackendService. Don't set both. Authorization requires one or more of the following Google IAM permissions on the specified resource default_service: - compute.backendBuckets.use - compute.backendServices.use ", "type": "string" }, "defaultUrlRedirect": { "$ref": "HttpRedirectAction", - "description": "When none of the specified pathRules or routeRules match, the request is redirected to a URL specified by defaultUrlRedirect. If defaultUrlRedirect is specified, defaultService or defaultRouteAction must not be set. Not supported when the URL map is bound to a target gRPC proxy." + "description": "When none of the specified pathRules or routeRules match, the request is redirected to a URL specified by defaultUrlRedirect. If defaultUrlRedirect is specified, then set either defaultService or defaultRouteAction. Don't set both. Not supported when the URL map is bound to a target gRPC proxy." }, "description": { "description": "An optional description of this resource. Provide this property when you create the resource.", @@ -69868,6 +71281,9 @@ "GLOBAL_INTERNAL_MANAGED_BACKEND_SERVICES", "GLOBAL_INTERNAL_TRAFFIC_DIRECTOR_BACKEND_SERVICES", "GPUS_ALL_REGIONS", + "HDB_TOTAL_GB", + "HDB_TOTAL_IOPS", + "HDB_TOTAL_THROUGHPUT", "HEALTH_CHECKS", "IMAGES", "INSTANCES", @@ -69942,6 +71358,7 @@ "REGIONAL_INSTANCE_GROUP_MANAGERS", "REGIONAL_INTERNAL_LB_BACKEND_SERVICES", "REGIONAL_INTERNAL_MANAGED_BACKEND_SERVICES", + "REGIONAL_INTERNAL_TRAFFIC_DIRECTOR_BACKEND_SERVICES", "RESERVATIONS", "RESOURCE_POLICIES", "ROUTERS", @@ -70114,6 +71531,10 @@ "", "", "", + "", + "", + "", + "", "The total number of snapshots allowed for a single project.", "", "", @@ -70250,6 +71671,127 @@ "description": "[Output Only] Name of the resource.", "type": "string" }, + "quotaStatusWarning": { + "description": "[Output Only] Warning of fetching the `quotas` field for this region. This field is populated only if fetching of the `quotas` field fails.", + "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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + 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 + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "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 does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "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.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "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" + }, "quotas": { "description": "[Output Only] Quotas assigned to this region.", "items": { @@ -71813,7 +73355,7 @@ "type": "array" }, "type": { - "description": "[Output Only] The type of the firewall policy. Can be one of HIERARCHY, NETWORK, NETWORK_REGIONAL.", + "description": "[Output Only] The type of the firewall policy. Can be one of HIERARCHY, NETWORK, NETWORK_REGIONAL, SYSTEM_GLOBAL, SYSTEM_REGIONAL.", "enum": [ "HIERARCHY", "NETWORK", @@ -72950,7 +74492,7 @@ "type": "object" }, "ResourcePolicyGroupPlacementPolicy": { - "description": "A GroupPlacementPolicy specifies resource placement configuration. It specifies the failure bucket separation as well as network locality", + "description": "A GroupPlacementPolicy specifies resource placement configuration. It specifies the failure bucket separation", "id": "ResourcePolicyGroupPlacementPolicy", "properties": { "availabilityDomainCount": { @@ -73876,6 +75418,61 @@ }, "type": "object" }, + "RoutePolicy": { + "id": "RoutePolicy", + "properties": { + "fingerprint": { + "description": "A fingerprint for the Route Policy being applied to this Router, which is essentially a hash of the Route Policy used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update Route Policy. You must always provide an up-to-date fingerprint hash in order to update or change labels. To see the latest fingerprint, make a getRoutePolicy() request to retrieve a Route Policy.", + "format": "byte", + "type": "string" + }, + "name": { + "description": "Route Policy name, which must be a resource ID segment and unique within all the router's Route Policies. Name should conform to RFC1035.", + "type": "string" + }, + "terms": { + "description": "List of terms (the order in the list is not important, they are evaluated in order of priority). Order of policies is not retained and might change when getting policy later.", + "items": { + "$ref": "RoutePolicyPolicyTerm" + }, + "type": "array" + }, + "type": { + "enum": [ + "ROUTE_POLICY_TYPE_EXPORT", + "ROUTE_POLICY_TYPE_IMPORT" + ], + "enumDescriptions": [ + "The Route Policy is an Export Policy.", + "The Route Policy is an Import Policy." + ], + "type": "string" + } + }, + "type": "object" + }, + "RoutePolicyPolicyTerm": { + "id": "RoutePolicyPolicyTerm", + "properties": { + "actions": { + "description": "CEL expressions to evaluate to modify a route when this term matches.", + "items": { + "$ref": "Expr" + }, + "type": "array" + }, + "match": { + "$ref": "Expr", + "description": "CEL expression evaluated against a route to determine if this term applies. When not set, the term applies to all routes." + }, + "priority": { + "description": "The evaluation priority for this term, which must be between 0 (inclusive) and 2^31 (exclusive), and unique within the list.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "Router": { "description": "Represents a Cloud Router resource. For more information about Cloud Router, read the Cloud Router overview.", "id": "Router", @@ -74268,6 +75865,20 @@ "description": "Enable IPv6 traffic over BGP Peer. If not specified, it is disabled by default.", "type": "boolean" }, + "exportPolicies": { + "description": "List of export policies applied to this peer, in the order they must be evaluated. The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_EXPORT type.", + "items": { + "type": "string" + }, + "type": "array" + }, + "importPolicies": { + "description": "List of import policies applied to this peer, in the order they must be evaluated. The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_IMPORT type.", + "items": { + "type": "string" + }, + "type": "array" + }, "interfaceName": { "description": "Name of the interface the BGP peer is associated with.", "type": "string" @@ -75160,6 +76771,337 @@ }, "type": "object" }, + "RoutersGetRoutePolicyResponse": { + "id": "RoutersGetRoutePolicyResponse", + "properties": { + "resource": { + "$ref": "RoutePolicy" + } + }, + "type": "object" + }, + "RoutersListBgpRoutes": { + "id": "RoutersListBgpRoutes", + "properties": { + "etag": { + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string" + }, + "kind": { + "default": "compute#routersListBgpRoutes", + "description": "[Output Only] Type of resource. Always compute#routersListBgpRoutes for lists of bgp routes.", + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, 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" + }, + "result": { + "description": "[Output Only] A list of bgp routes.", + "items": { + "$ref": "BgpRoute" + }, + "type": "array" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "items": { + "type": "string" + }, + "type": "array" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + 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 + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "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 does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "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.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "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": "object" + }, + "RoutersListRoutePolicies": { + "id": "RoutersListRoutePolicies", + "properties": { + "etag": { + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "type": "string" + }, + "kind": { + "default": "compute#routersListRoutePolicies", + "description": "[Output Only] Type of resource. Always compute#routersListRoutePolicies for lists of route policies.", + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, 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" + }, + "result": { + "description": "[Output Only] A list of route policies.", + "items": { + "$ref": "RoutePolicy" + }, + "type": "array" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "items": { + "type": "string" + }, + "type": "array" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + 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 + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "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 does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "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.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "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": "object" + }, "RoutersPreviewResponse": { "id": "RoutersPreviewResponse", "properties": { @@ -77343,14 +79285,14 @@ "type": "string" }, "consumerAcceptLists": { - "description": "Projects that are allowed to connect to this service attachment.", + "description": "Specifies which consumer projects or networks are allowed to connect to the service attachment. Each project or network has a connection limit. A given service attachment can manage connections at either the project or network level. Therefore, both the accept and reject lists for a given service attachment must contain either only projects or only networks.", "items": { "$ref": "ServiceAttachmentConsumerProjectLimit" }, "type": "array" }, "consumerRejectLists": { - "description": "Projects that are not allowed to connect to this service attachment. The project can be specified using its id or number.", + "description": "Specifies a list of projects or networks that are not allowed to connect to this service attachment. The project can be specified using its project ID or project number and the network can be specified using its URL. A given service attachment can manage connections at either the project or network level. Therefore, both the reject and accept lists for a given service attachment must contain either only projects or only networks.", "items": { "type": "string" }, @@ -77412,6 +79354,11 @@ "description": "The URL of a forwarding rule with loadBalancingScheme INTERNAL* that is serving the endpoint identified by this service attachment.", "type": "string" }, + "propagatedConnectionLimit": { + "description": "The number of consumer spokes that connected Private Service Connect endpoints can be propagated to through Network Connectivity Center. This limit lets the service producer limit how many propagated Private Service Connect connections can be established to this service attachment from a single consumer. If the connection preference of the service attachment is ACCEPT_MANUAL, the limit applies to each project or network that is listed in the consumer accept list. If the connection preference of the service attachment is ACCEPT_AUTOMATIC, the limit applies to each project that contains a connected endpoint. If unspecified, the default propagated connection limit is 250.", + "format": "uint32", + "type": "integer" + }, "pscServiceAttachmentId": { "$ref": "Uint128", "description": "[Output Only] An 128-bit global unique ID of the PSC service attachment." @@ -77611,6 +79558,11 @@ "description": "The url of a connected endpoint.", "type": "string" }, + "propagatedConnectionCount": { + "description": "The number of consumer Network Connectivity Center spokes that the connected Private Service Connect endpoint has propagated to.", + "format": "uint32", + "type": "integer" + }, "pscConnectionId": { "description": "The PSC connection id of the connected endpoint.", "format": "uint64", @@ -80160,6 +82112,1425 @@ }, "type": "object" }, + "StoragePool": { + "description": "Represents a zonal storage pool resource.", + "id": "StoragePool", + "properties": { + "capacityProvisioningType": { + "description": "Provisioning type of the byte capacity of the pool.", + "enum": [ + "ADVANCED", + "STANDARD", + "UNSPECIFIED" + ], + "enumDescriptions": [ + "Advanced provisioning \"thinly\" allocates the related resource.", + "Standard provisioning allocates the related resource for the pool disks' exclusive use.", + "" + ], + "type": "string" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "format": "uint64", + "type": "string" + }, + "kind": { + "default": "compute#storagePool", + "description": "[Output Only] Type of the resource. Always compute#storagePool for storage pools.", + "type": "string" + }, + "labelFingerprint": { + "description": "A fingerprint for the labels being applied to this storage pool, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a storage pool.", + "format": "byte", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels to apply to this storage pool. These can be later modified by the setLabels method.", + "type": "object" + }, + "name": { + "annotations": { + "required": [ + "compute.storagePools.insert" + ] + }, + "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.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "performanceProvisioningType": { + "description": "Provisioning type of the performance-related parameters of the pool, such as throughput and IOPS.", + "enum": [ + "ADVANCED", + "STANDARD", + "UNSPECIFIED" + ], + "enumDescriptions": [ + "Advanced provisioning \"thinly\" allocates the related resource.", + "Standard provisioning allocates the related resource for the pool disks' exclusive use.", + "" + ], + "type": "string" + }, + "poolProvisionedCapacityGb": { + "description": "Size, in GiB, of the storage pool.", + "format": "int64", + "type": "string" + }, + "poolProvisionedIops": { + "description": "Provisioned IOPS of the storage pool. Only relevant if the storage pool type is hyperdisk-balanced.", + "format": "int64", + "type": "string" + }, + "poolProvisionedThroughput": { + "description": "Provisioned throughput of the storage pool. Only relevant if the storage pool type is hyperdisk-balanced or hyperdisk-throughput.", + "format": "int64", + "type": "string" + }, + "resourceStatus": { + "$ref": "StoragePoolResourceStatus", + "description": "[Output Only] Status information for the storage pool resource." + }, + "selfLink": { + "description": "[Output Only] Server-defined fully-qualified URL for this resource.", + "type": "string" + }, + "selfLinkWithId": { + "description": "[Output Only] Server-defined URL for this resource's resource id.", + "type": "string" + }, + "state": { + "description": "[Output Only] The status of storage pool creation. - CREATING: Storage pool is provisioning. storagePool. - FAILED: Storage pool creation failed. - READY: Storage pool is ready for use. - DELETING: Storage pool is deleting. ", + "enum": [ + "CREATING", + "DELETING", + "FAILED", + "READY" + ], + "enumDescriptions": [ + "StoragePool is provisioning", + "StoragePool is deleting.", + "StoragePool creation failed.", + "StoragePool is ready for use." + ], + "type": "string" + }, + "status": { + "$ref": "StoragePoolResourceStatus", + "description": "[Output Only] Status information for the storage pool resource." + }, + "storagePoolType": { + "description": "Type of the storage pool.", + "type": "string" + }, + "zone": { + "description": "[Output Only] URL of the zone where the storage pool resides. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", + "type": "string" + } + }, + "type": "object" + }, + "StoragePoolAggregatedList": { + "id": "StoragePoolAggregatedList", + "properties": { + "etag": { + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "additionalProperties": { + "$ref": "StoragePoolsScopedList", + "description": "[Output Only] Name of the scope containing this set of storage pool." + }, + "description": "A list of StoragePoolsScopedList resources.", + "type": "object" + }, + "kind": { + "default": "compute#storagePoolAggregatedList", + "description": "[Output Only] Type of resource. Always compute#storagePoolAggregatedList for aggregated lists of storage pools.", + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, 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" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "items": { + "type": "string" + }, + "type": "array" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + 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 + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "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 does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "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.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "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": "object" + }, + "StoragePoolDisk": { + "id": "StoragePoolDisk", + "properties": { + "attachedInstances": { + "description": "[Output Only] Instances this disk is attached to.", + "items": { + "type": "string" + }, + "type": "array" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "disk": { + "description": "[Output Only] The URL of the disk.", + "type": "string" + }, + "name": { + "description": "[Output Only] The name of the disk.", + "type": "string" + }, + "provisionedIops": { + "description": "[Output Only] The number of IOPS provisioned for the disk.", + "format": "int64", + "type": "string" + }, + "provisionedThroughput": { + "description": "[Output Only] The throughput provisioned for the disk.", + "format": "int64", + "type": "string" + }, + "resourcePolicies": { + "description": "[Output Only] Resource policies applied to disk for automatic snapshot creations.", + "items": { + "type": "string" + }, + "type": "array" + }, + "sizeGb": { + "description": "[Output Only] The disk size, in GB.", + "format": "int64", + "type": "string" + }, + "status": { + "description": "[Output Only] The disk status.", + "enum": [ + "CREATING", + "DELETING", + "FAILED", + "READY", + "RESTORING", + "UNAVAILABLE" + ], + "enumDescriptions": [ + "Disk is provisioning", + "Disk is deleting.", + "Disk creation failed.", + "Disk is ready for use.", + "Source data is being copied into the disk.", + "Disk is currently unavailable and cannot be accessed, attached or detached." + ], + "type": "string" + }, + "type": { + "description": "[Output Only] The disk type.", + "type": "string" + }, + "usedBytes": { + "description": "[Output Only] Amount of disk space used.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "StoragePoolList": { + "description": "A list of StoragePool resources.", + "id": "StoragePoolList", + "properties": { + "etag": { + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of StoragePool resources.", + "items": { + "$ref": "StoragePool" + }, + "type": "array" + }, + "kind": { + "default": "compute#storagePoolList", + "description": "[Output Only] Type of resource. Always compute#storagePoolList for lists of storagePools.", + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, 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" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "unreachables": { + "description": "[Output Only] Unreachable resources. end_interface: MixerListResponseWithEtagBuilder", + "items": { + "type": "string" + }, + "type": "array" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + 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 + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "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 does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "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.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "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": "object" + }, + "StoragePoolListDisks": { + "id": "StoragePoolListDisks", + "properties": { + "etag": { + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of StoragePoolDisk resources.", + "items": { + "$ref": "StoragePoolDisk" + }, + "type": "array" + }, + "kind": { + "default": "compute#storagePoolListDisks", + "description": "[Output Only] Type of resource. Always compute#storagePoolListDisks for lists of disks in a storagePool.", + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, 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" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "unreachables": { + "description": "[Output Only] Unreachable resources. end_interface: MixerListResponseWithEtagBuilder", + "items": { + "type": "string" + }, + "type": "array" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + 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 + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "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 does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "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.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "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": "object" + }, + "StoragePoolResourceStatus": { + "description": "[Output Only] Contains output only fields.", + "id": "StoragePoolResourceStatus", + "properties": { + "diskCount": { + "description": "[Output Only] Number of disks used.", + "format": "int64", + "type": "string" + }, + "lastResizeTimestamp": { + "description": "[Output Only] Timestamp of the last successful resize in RFC3339 text format.", + "type": "string" + }, + "maxTotalProvisionedDiskCapacityGb": { + "description": "[Output Only] Maximum allowed aggregate disk size in gigabytes.", + "format": "int64", + "type": "string" + }, + "poolUsedCapacityBytes": { + "description": "[Output Only] Space used by data stored in disks within the storage pool (in bytes). This will reflect the total number of bytes written to the disks in the pool, in contrast to the capacity of those disks.", + "format": "int64", + "type": "string" + }, + "poolUsedIops": { + "description": "Sum of all the disks' provisioned IOPS, minus some amount that is allowed per disk that is not counted towards pool's IOPS capacity.", + "format": "int64", + "type": "string" + }, + "poolUsedThroughput": { + "description": "[Output Only] Sum of all the disks' provisioned throughput in MB/s.", + "format": "int64", + "type": "string" + }, + "poolUserWrittenBytes": { + "description": "[Output Only] Amount of data written into the pool, before it is compacted.", + "format": "int64", + "type": "string" + }, + "totalProvisionedDiskCapacityGb": { + "description": "[Output Only] Sum of all the capacity provisioned in disks in this storage pool. A disk's provisioned capacity is the same as its total capacity.", + "format": "int64", + "type": "string" + }, + "totalProvisionedDiskIops": { + "description": "[Output Only] Sum of all the disks' provisioned IOPS.", + "format": "int64", + "type": "string" + }, + "totalProvisionedDiskThroughput": { + "description": "[Output Only] Sum of all the disks' provisioned throughput in MB/s, minus some amount that is allowed per disk that is not counted towards pool's throughput capacity.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "StoragePoolType": { + "id": "StoragePoolType", + "properties": { + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "deprecated": { + "$ref": "DeprecationStatus", + "description": "[Output Only] The deprecation status associated with this storage pool type." + }, + "description": { + "description": "[Output Only] An optional description of this resource.", + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "format": "uint64", + "type": "string" + }, + "kind": { + "default": "compute#storagePoolType", + "description": "[Output Only] Type of the resource. Always compute#storagePoolType for storage pool types.", + "type": "string" + }, + "maxPoolProvisionedCapacityGb": { + "description": "[Output Only] Maximum storage pool size in GB.", + "format": "int64", + "type": "string" + }, + "maxPoolProvisionedIops": { + "description": "[Output Only] Maximum provisioned IOPS.", + "format": "int64", + "type": "string" + }, + "maxPoolProvisionedThroughput": { + "description": "[Output Only] Maximum provisioned throughput.", + "format": "int64", + "type": "string" + }, + "minPoolProvisionedCapacityGb": { + "description": "[Output Only] Minimum storage pool size in GB.", + "format": "int64", + "type": "string" + }, + "minPoolProvisionedIops": { + "description": "[Output Only] Minimum provisioned IOPS.", + "format": "int64", + "type": "string" + }, + "minPoolProvisionedThroughput": { + "description": "[Output Only] Minimum provisioned throughput.", + "format": "int64", + "type": "string" + }, + "minSizeGb": { + "description": "[Deprecated] This field is deprecated. Use minPoolProvisionedCapacityGb instead.", + "format": "int64", + "type": "string" + }, + "name": { + "description": "[Output Only] Name of the resource.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "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" + }, + "supportedDiskTypes": { + "description": "[Output Only] The list of disk types supported in this storage pool type.", + "items": { + "type": "string" + }, + "type": "array" + }, + "zone": { + "description": "[Output Only] URL of the zone where the storage pool type resides. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", + "type": "string" + } + }, + "type": "object" + }, + "StoragePoolTypeAggregatedList": { + "id": "StoragePoolTypeAggregatedList", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "additionalProperties": { + "$ref": "StoragePoolTypesScopedList", + "description": "[Output Only] Name of the scope containing this set of storage pool types." + }, + "description": "A list of StoragePoolTypesScopedList resources.", + "type": "object" + }, + "kind": { + "default": "compute#storagePoolTypeAggregatedList", + "description": "[Output Only] Type of resource. Always compute#storagePoolTypeAggregatedList .", + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, 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" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + 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 + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "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 does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "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.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "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": "object" + }, + "StoragePoolTypeList": { + "description": "Contains a list of storage pool types.", + "id": "StoragePoolTypeList", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of StoragePoolType resources.", + "items": { + "$ref": "StoragePoolType" + }, + "type": "array" + }, + "kind": { + "default": "compute#storagePoolTypeList", + "description": "[Output Only] Type of resource. Always compute#storagePoolTypeList for storage pool types.", + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, 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" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + 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 + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "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 does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "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.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "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": "object" + }, + "StoragePoolTypesScopedList": { + "id": "StoragePoolTypesScopedList", + "properties": { + "storagePoolTypes": { + "description": "[Output Only] A list of storage pool types contained in this scope.", + "items": { + "$ref": "StoragePoolType" + }, + "type": "array" + }, + "warning": { + "description": "[Output Only] Informational warning which replaces the list of storage pool types when the list is empty.", + "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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + 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 + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "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 does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "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.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "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": "object" + }, + "StoragePoolsScopedList": { + "id": "StoragePoolsScopedList", + "properties": { + "storagePools": { + "description": "[Output Only] A list of storage pool contained in this scope.", + "items": { + "$ref": "StoragePool" + }, + "type": "array" + }, + "warning": { + "description": "[Output Only] Informational warning which replaces the list of storage pool when the list is empty.", + "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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + 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 + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "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 does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "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.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "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": "object" + }, + "StructuredEntries": { + "id": "StructuredEntries", + "properties": { + "entries": { + "additionalProperties": { + "type": "any" + }, + "description": "Map of a partner metadata that belong to the same subdomain. It accepts any value including google.protobuf.Struct.", + "type": "object" + } + }, + "type": "object" + }, "Subnetwork": { "description": "Represents a Subnetwork resource. A subnetwork (also known as a subnet) is a logical partition of a Virtual Private Cloud network with one primary IP range and zero or more secondary IP ranges. For more information, read Virtual Private Cloud (VPC) Network.", "id": "Subnetwork", @@ -81969,6 +85340,20 @@ "description": "URL of SslPolicy resource that will be associated with the TargetHttpsProxy resource. If not set, the TargetHttpsProxy resource has no SSL policy configured.", "type": "string" }, + "tlsEarlyData": { + "description": " Specifies whether TLS 1.3 0-RTT Data (\"Early Data\") should be accepted for this service. Early Data allows a TLS resumption handshake to include the initial application payload (a HTTP request) alongside the handshake, reducing the effective round trips to \"zero\". This applies to TLS 1.3 connections over TCP (HTTP/2) as well as over UDP (QUIC/h3). This can improve application performance, especially on networks where interruptions may be common, such as on mobile. Requests with Early Data will have the \"Early-Data\" HTTP header set on the request, with a value of \"1\", to allow the backend to determine whether Early Data was included. Note: TLS Early Data may allow requests to be replayed, as the data is sent to the backend before the handshake has fully completed. Applications that allow idempotent HTTP methods to make non-idempotent changes, such as a GET request updating a database, should not accept Early Data on those requests, and reject requests with the \"Early-Data: 1\" HTTP header by returning a HTTP 425 (Too Early) status code, in order to remain RFC compliant. The default value is DISABLED.", + "enum": [ + "DISABLED", + "PERMISSIVE", + "STRICT" + ], + "enumDescriptions": [ + "TLS 1.3 Early Data is not advertised, and any (invalid) attempts to send Early Data will be rejected by closing the connection.", + "This enables TLS 1.3 0-RTT, and only allows Early Data to be included on requests with safe HTTP methods (GET, HEAD, OPTIONS, TRACE). This mode does not enforce any other limitations for requests with Early Data. The application owner should validate that Early Data is acceptable for a given request path.", + "This enables TLS 1.3 0-RTT, and only allows Early Data to be included on requests with safe HTTP methods (GET, HEAD, OPTIONS, TRACE) without query parameters. Requests that send Early Data with non-idempotent HTTP methods or with query parameters will be rejected with a HTTP 425." + ], + "type": "string" + }, "urlMap": { "description": "A fully-qualified or valid partial URL to the UrlMap resource that defines the mapping from URL to the BackendService. For example, the following are all valid URLs for specifying a URL map: - https://www.googleapis.compute/v1/projects/project/global/urlMaps/ url-map - projects/project/global/urlMaps/url-map - global/urlMaps/url-map ", "type": "string" @@ -84896,7 +88281,7 @@ "description": "defaultRouteAction takes effect when none of the hostRules match. The load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If defaultRouteAction specifies any weightedBackendServices, defaultService must not be set. Conversely if defaultService is set, defaultRouteAction cannot contain any weightedBackendServices. Only one of defaultRouteAction or defaultUrlRedirect must be set. URL maps for classic Application Load Balancers only support the urlRewrite action within defaultRouteAction. defaultRouteAction has no effect when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true." }, "defaultService": { - "description": "The full or partial URL of the defaultService resource to which traffic is directed if none of the hostRules match. If defaultRouteAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if defaultService is specified, defaultRouteAction cannot contain any weightedBackendServices. Conversely, if routeAction specifies any weightedBackendServices, service must not be specified. Only one of defaultService, defaultUrlRedirect , or defaultRouteAction.weightedBackendService must be set. defaultService has no effect when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true.", + "description": "The full or partial URL of the defaultService resource to which traffic is directed if none of the hostRules match. If defaultRouteAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if defaultService is specified, defaultRouteAction cannot contain any weightedBackendServices. Conversely, if routeAction specifies any weightedBackendServices, service must not be specified. If defaultService is specified, then set either defaultUrlRedirect , or defaultRouteAction.weightedBackendService Don't set both. defaultService has no effect when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true.", "type": "string" }, "defaultUrlRedirect": { diff --git a/etc/api/compute/v1/compute-api.json b/etc/api/compute/v1/compute-api.json index 61076e0c56..f51579f94d 100644 --- a/etc/api/compute/v1/compute-api.json +++ b/etc/api/compute/v1/compute-api.json @@ -7519,6 +7519,279 @@ } } }, + "instanceGroupManagerResizeRequests": { + "methods": { + "cancel": { + "description": "Cancels the specified resize request and removes it from the queue. Cancelled resize request does no longer wait for the resources to be provisioned. Cancel is only possible for requests that are accepted in the queue.", + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeRequests/{resizeRequest}/cancel", + "httpMethod": "POST", + "id": "compute.instanceGroupManagerResizeRequests.cancel", + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager", + "resizeRequest" + ], + "parameters": { + "instanceGroupManager": { + "description": "The name of the managed instance group. The name should conform to RFC1035 or be a resource ID.", + "location": "path", + "required": true, + "type": "string" + }, + "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" + }, + "requestId": { + "description": "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. 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" + }, + "resizeRequest": { + "description": "The name of the resize request to cancel. The name should conform to RFC1035 or be a resource ID.", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone where the managed instance group is located. The name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeRequests/{resizeRequest}/cancel", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "delete": { + "description": "Deletes the specified, inactive resize request. Requests that are still active cannot be deleted. Deleting request does not delete instances that were provisioned previously.", + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeRequests/{resizeRequest}", + "httpMethod": "DELETE", + "id": "compute.instanceGroupManagerResizeRequests.delete", + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager", + "resizeRequest" + ], + "parameters": { + "instanceGroupManager": { + "description": "The name of the managed instance group. The name should conform to RFC1035 or be a resource ID.", + "location": "path", + "required": true, + "type": "string" + }, + "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" + }, + "requestId": { + "description": "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. 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" + }, + "resizeRequest": { + "description": "The name of the resize request to delete. The name should conform to RFC1035 or be a resource ID.", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone where the managed instance group is located. The name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeRequests/{resizeRequest}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "description": "Returns all of the details about the specified resize request.", + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeRequests/{resizeRequest}", + "httpMethod": "GET", + "id": "compute.instanceGroupManagerResizeRequests.get", + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager", + "resizeRequest" + ], + "parameters": { + "instanceGroupManager": { + "description": "The name of the managed instance group. Name should conform to RFC1035 or be a resource ID.", + "location": "path", + "required": true, + "type": "string" + }, + "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" + }, + "resizeRequest": { + "description": "The name of the resize request. Name should conform to RFC1035 or be a resource ID.", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "Name of the href=\"/compute/docs/regions-zones/#available\">zone scoping this request. Name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeRequests/{resizeRequest}", + "response": { + "$ref": "InstanceGroupManagerResizeRequest" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "description": "Creates a new resize request that starts provisioning VMs immediately or queues VM creation.", + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeRequests", + "httpMethod": "POST", + "id": "compute.instanceGroupManagerResizeRequests.insert", + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager" + ], + "parameters": { + "instanceGroupManager": { + "description": "The name of the managed instance group to which the resize request will be added. Name should conform to RFC1035 or be a resource ID.", + "location": "path", + "required": true, + "type": "string" + }, + "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" + }, + "requestId": { + "description": "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. 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" + }, + "zone": { + "description": "The name of the zone where the managed instance group is located and where the resize request will be created. Name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeRequests", + "request": { + "$ref": "InstanceGroupManagerResizeRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "description": "Retrieves a list of resize requests that are contained in the managed instance group.", + "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeRequests", + "httpMethod": "GET", + "id": "compute.instanceGroupManagerResizeRequests.list", + "parameterOrder": [ + "project", + "zone", + "instanceGroupManager" + ], + "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" + }, + "instanceGroupManager": { + "description": "The name of the managed instance group. The name should conform to RFC1035.", + "location": "path", + "required": true, + "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": "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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "zone": { + "description": "The name of the zone where the managed instance group is located. The name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeRequests", + "response": { + "$ref": "InstanceGroupManagerResizeRequestsListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + } + } + }, "instanceGroupManagers": { "methods": { "abandonInstances": { @@ -9031,6 +9304,92 @@ } } }, + "instanceSettings": { + "methods": { + "get": { + "description": "Get Instance settings.", + "flatPath": "projects/{project}/zones/{zone}/instanceSettings", + "httpMethod": "GET", + "id": "compute.instanceSettings.get", + "parameterOrder": [ + "project", + "zone" + ], + "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" + }, + "zone": { + "description": "Name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/instanceSettings", + "response": { + "$ref": "InstanceSettings" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "patch": { + "description": "Patch Instance settings", + "flatPath": "projects/{project}/zones/{zone}/instanceSettings", + "httpMethod": "PATCH", + "id": "compute.instanceSettings.patch", + "parameterOrder": [ + "project", + "zone" + ], + "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" + }, + "requestId": { + "description": "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. 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": "update_mask indicates fields to be updated as part of this request.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The zone scoping this request. It should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/instanceSettings", + "request": { + "$ref": "InstanceSettings" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + } + } + }, "instanceTemplates": { "methods": { "aggregatedList": { @@ -31342,6 +31701,713 @@ } } }, + "storagePoolTypes": { + "methods": { + "aggregatedList": { + "description": "Retrieves an aggregated list of storage pool types. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", + "flatPath": "projects/{project}/aggregated/storagePoolTypes", + "httpMethod": "GET", + "id": "compute.storagePoolTypes.aggregatedList", + "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" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "location": "query", + "type": "boolean" + }, + "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": "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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "format": "int64", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/aggregated/storagePoolTypes", + "response": { + "$ref": "StoragePoolTypeAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "get": { + "description": "Returns the specified storage pool type.", + "flatPath": "projects/{project}/zones/{zone}/storagePoolTypes/{storagePoolType}", + "httpMethod": "GET", + "id": "compute.storagePoolTypes.get", + "parameterOrder": [ + "project", + "zone", + "storagePoolType" + ], + "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" + }, + "storagePoolType": { + "description": "Name of the storage pool type to return.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/storagePoolTypes/{storagePoolType}", + "response": { + "$ref": "StoragePoolType" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "list": { + "description": "Retrieves a list of storage pool types available to the specified project.", + "flatPath": "projects/{project}/zones/{zone}/storagePoolTypes", + "httpMethod": "GET", + "id": "compute.storagePoolTypes.list", + "parameterOrder": [ + "project", + "zone" + ], + "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": "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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/storagePoolTypes", + "response": { + "$ref": "StoragePoolTypeList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + } + } + }, + "storagePools": { + "methods": { + "aggregatedList": { + "description": "Retrieves an aggregated list of storage pools. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", + "flatPath": "projects/{project}/aggregated/storagePools", + "httpMethod": "GET", + "id": "compute.storagePools.aggregatedList", + "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" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "location": "query", + "type": "boolean" + }, + "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": "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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "format": "int64", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/aggregated/storagePools", + "response": { + "$ref": "StoragePoolAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "delete": { + "description": "Deletes the specified storage pool. Deleting a storagePool removes its data permanently and is irreversible. However, deleting a storagePool does not delete any snapshots previously made from the storagePool. You must separately delete snapshots.", + "flatPath": "projects/{project}/zones/{zone}/storagePools/{storagePool}", + "httpMethod": "DELETE", + "id": "compute.storagePools.delete", + "parameterOrder": [ + "project", + "zone", + "storagePool" + ], + "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" + }, + "requestId": { + "description": "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. 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" + }, + "storagePool": { + "description": "Name of the storage pool to delete.", + "location": "path", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/storagePools/{storagePool}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "description": "Returns a specified storage pool. Gets a list of available storage pools by making a list() request.", + "flatPath": "projects/{project}/zones/{zone}/storagePools/{storagePool}", + "httpMethod": "GET", + "id": "compute.storagePools.get", + "parameterOrder": [ + "project", + "zone", + "storagePool" + ], + "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" + }, + "storagePool": { + "description": "Name of the storage pool to return.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/storagePools/{storagePool}", + "response": { + "$ref": "StoragePool" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "getIamPolicy": { + "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.", + "flatPath": "projects/{project}/zones/{zone}/storagePools/{resource}/getIamPolicy", + "httpMethod": "GET", + "id": "compute.storagePools.getIamPolicy", + "parameterOrder": [ + "project", + "zone", + "resource" + ], + "parameters": { + "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" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/storagePools/{resource}/getIamPolicy", + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "description": "Creates a storage pool in the specified project using the data in the request.", + "flatPath": "projects/{project}/zones/{zone}/storagePools", + "httpMethod": "POST", + "id": "compute.storagePools.insert", + "parameterOrder": [ + "project", + "zone" + ], + "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" + }, + "requestId": { + "description": "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. 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" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/storagePools", + "request": { + "$ref": "StoragePool" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "description": "Retrieves a list of storage pools contained within the specified zone.", + "flatPath": "projects/{project}/zones/{zone}/storagePools", + "httpMethod": "GET", + "id": "compute.storagePools.list", + "parameterOrder": [ + "project", + "zone" + ], + "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": "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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/storagePools", + "response": { + "$ref": "StoragePoolList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "listDisks": { + "description": "Lists the disks in a specified storage pool.", + "flatPath": "projects/{project}/zones/{zone}/storagePools/{storagePool}/listDisks", + "httpMethod": "GET", + "id": "compute.storagePools.listDisks", + "parameterOrder": [ + "project", + "zone", + "storagePool" + ], + "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": "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" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "storagePool": { + "description": "Name of the storage pool to list disks of.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/storagePools/{storagePool}/listDisks", + "response": { + "$ref": "StoragePoolListDisks" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "setIamPolicy": { + "description": "Sets the access control policy on the specified resource. Replaces any existing policy.", + "flatPath": "projects/{project}/zones/{zone}/storagePools/{resource}/setIamPolicy", + "httpMethod": "POST", + "id": "compute.storagePools.setIamPolicy", + "parameterOrder": [ + "project", + "zone", + "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" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/storagePools/{resource}/setIamPolicy", + "request": { + "$ref": "ZoneSetPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.", + "flatPath": "projects/{project}/zones/{zone}/storagePools/{resource}/testIamPermissions", + "httpMethod": "POST", + "id": "compute.storagePools.testIamPermissions", + "parameterOrder": [ + "project", + "zone", + "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" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/storagePools/{resource}/testIamPermissions", + "request": { + "$ref": "TestPermissionsRequest" + }, + "response": { + "$ref": "TestPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "update": { + "description": "Updates the specified storagePool with the data included in the request. The update is performed only on selected fields included as part of update-mask. Only the following fields can be modified: size_tb and provisioned_iops.", + "flatPath": "projects/{project}/zones/{zone}/storagePools/{storagePool}", + "httpMethod": "PATCH", + "id": "compute.storagePools.update", + "parameterOrder": [ + "project", + "zone", + "storagePool" + ], + "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" + }, + "requestId": { + "description": "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. 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" + }, + "storagePool": { + "description": "The storagePool name 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" + }, + "updateMask": { + "description": "update_mask indicates fields to be updated as part of this request.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/storagePools/{storagePool}", + "request": { + "$ref": "StoragePool" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + } + } + }, "subnetworks": { "methods": { "aggregatedList": { @@ -36305,7 +37371,7 @@ } } }, - "revision": "20240218", + "revision": "20240407", "rootUrl": "https://compute.googleapis.com/", "schemas": { "AWSV4Signature": { @@ -37991,6 +39057,10 @@ "sourceSnapshotEncryptionKey": { "$ref": "CustomerEncryptionKey", "description": "The customer-supplied encryption key of the source snapshot." + }, + "storagePool": { + "description": "The storage pool in which the new disk is created. You can provide this as a partial or full URL to the resource. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /storagePools/storagePool - projects/project/zones/zone/storagePools/storagePool - zones/zone/storagePools/storagePool ", + "type": "string" } }, "type": "object" @@ -41133,6 +42203,7 @@ "GENERAL_PURPOSE_E2", "GENERAL_PURPOSE_N2", "GENERAL_PURPOSE_N2D", + "GENERAL_PURPOSE_N4", "GENERAL_PURPOSE_T2D", "GRAPHICS_OPTIMIZED", "MEMORY_OPTIMIZED", @@ -41157,6 +42228,7 @@ "", "", "", + "", "" ], "type": "string" @@ -41774,7 +42846,7 @@ "type": "array" }, "allowOriginRegexes": { - "description": "Specifies a regular expression that matches allowed origins. For more information about the regular expression syntax, see Syntax. An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. Regular expressions can only be used when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED.", + "description": "Specifies a regular expression that matches allowed origins. For more information, see regular expression syntax . An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. Regular expressions can only be used when the loadBalancingScheme is set to INTERNAL_SELF_MANAGED.", "items": { "type": "string" }, @@ -41788,7 +42860,7 @@ "type": "array" }, "disabled": { - "description": "If true, the setting specifies the CORS policy is disabled. The default value of false, which indicates that the CORS policy is in effect.", + "description": "If true, disables the CORS policy. The default value is false, which indicates that the CORS policy is in effect.", "type": "boolean" }, "exposeHeaders": { @@ -42118,17 +43190,23 @@ "DELETING", "FAILED", "READY", - "RESTORING" + "RESTORING", + "UNAVAILABLE" ], "enumDescriptions": [ "Disk is provisioning", "Disk is deleting.", "Disk creation failed.", "Disk is ready for use.", - "Source data is being copied into the disk." + "Source data is being copied into the disk.", + "Disk is currently unavailable and cannot be accessed, attached or detached." ], "type": "string" }, + "storagePool": { + "description": "The storage pool in which the new disk is created. You can provide this as a partial or full URL to the resource. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /storagePools/storagePool - projects/project/zones/zone/storagePools/storagePool - zones/zone/storagePools/storagePool ", + "type": "string" + }, "type": { "description": "URL of the disk type resource describing which disk type to use to create the disk. Provide this when creating the disk. For example: projects/project /zones/zone/diskTypes/pd-ssd . See Persistent disk types.", "type": "string" @@ -43375,7 +44453,7 @@ "additionalProperties": { "type": "string" }, - "description": "Additional structured details about this error. Keys should match /[a-zA-Z0-9-_]/ and 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.", + "description": "Additional structured details about this error. Keys must match /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": { @@ -45619,7 +46697,7 @@ "id": "GuestOsFeature", "properties": { "type": { - "description": "The ID of a supported feature. To add multiple values, use commas to separate values. Set to one or more of the following values: - VIRTIO_SCSI_MULTIQUEUE - WINDOWS - MULTI_IP_SUBNET - UEFI_COMPATIBLE - GVNIC - SEV_CAPABLE - SUSPEND_RESUME_COMPATIBLE - SEV_LIVE_MIGRATABLE - SEV_SNP_CAPABLE - TDX_CAPABLE - IDPF For more information, see Enabling guest operating system features.", + "description": "The ID of a supported feature. To add multiple values, use commas to separate values. Set to one or more of the following values: - VIRTIO_SCSI_MULTIQUEUE - WINDOWS - MULTI_IP_SUBNET - UEFI_COMPATIBLE - GVNIC - SEV_CAPABLE - SUSPEND_RESUME_COMPATIBLE - SEV_LIVE_MIGRATABLE_V2 - SEV_SNP_CAPABLE - TDX_CAPABLE - IDPF For more information, see Enabling guest operating system features.", "enum": [ "FEATURE_TYPE_UNSPECIFIED", "GVNIC", @@ -49407,6 +50485,350 @@ }, "type": "object" }, + "InstanceGroupManagerResizeRequest": { + "description": "InstanceGroupManagerResizeRequest represents a request to create a number of VMs: either immediately or by queuing the request for the specified time. This resize request is nested under InstanceGroupManager and the VMs created by this request are added to the owning InstanceGroupManager.", + "id": "InstanceGroupManagerResizeRequest", + "properties": { + "creationTimestamp": { + "description": "[Output Only] The creation timestamp for this resize request in RFC3339 text format.", + "type": "string" + }, + "description": { + "description": "An optional description of this resource.", + "type": "string" + }, + "id": { + "description": "[Output Only] A unique identifier for this resource type. The server generates this identifier.", + "format": "uint64", + "type": "string" + }, + "kind": { + "default": "compute#instanceGroupManagerResizeRequest", + "description": "[Output Only] The resource type, which is always compute#instanceGroupManagerResizeRequest for resize requests.", + "type": "string" + }, + "name": { + "annotations": { + "required": [ + "compute.instanceGroupManagerResizeRequests.insert" + ] + }, + "description": "The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "requestedRunDuration": { + "$ref": "Duration", + "description": "Requested run duration for instances that will be created by this request. At the end of the run duration instance will be deleted." + }, + "resizeBy": { + "description": "The number of instances to be created by this resize request. The group's target size will be increased by this number.", + "format": "int32", + "type": "integer" + }, + "selfLink": { + "description": "[Output Only] The URL for this resize request. The server defines this URL.", + "type": "string" + }, + "selfLinkWithId": { + "description": "[Output Only] Server-defined URL for this resource with the resource id.", + "type": "string" + }, + "state": { + "description": "[Output only] Current state of the request.", + "enum": [ + "ACCEPTED", + "CANCELLED", + "CREATING", + "FAILED", + "STATE_UNSPECIFIED", + "SUCCEEDED" + ], + "enumDescriptions": [ + "The request was created successfully and was accepted for provisioning when the capacity becomes available.", + "The request is cancelled.", + "Resize request is being created and may still fail creation.", + "The request failed before or during provisioning. If the request fails during provisioning, any VMs that were created during provisioning are rolled back and removed from the MIG.", + "Default value. This value should never be returned.", + "The request succeeded." + ], + "type": "string" + }, + "status": { + "$ref": "InstanceGroupManagerResizeRequestStatus", + "description": "[Output only] Status of the request." + }, + "zone": { + "description": "[Output Only] The URL of a zone where the resize request is located. Populated only for zonal resize requests.", + "type": "string" + } + }, + "type": "object" + }, + "InstanceGroupManagerResizeRequestStatus": { + "id": "InstanceGroupManagerResizeRequestStatus", + "properties": { + "error": { + "description": "[Output only] Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the last_attempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry.", + "properties": { + "errors": { + "description": "[Output Only] The array of errors encountered while processing this operation.", + "items": { + "properties": { + "code": { + "description": "[Output Only] The error type identifier for this error.", + "type": "string" + }, + "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" + }, + "lastAttempt": { + "$ref": "InstanceGroupManagerResizeRequestStatusLastAttempt", + "description": "[Output only] Information about the last attempt to fulfill the request. The value is temporary since the ResizeRequest can retry, as long as it's still active and the last attempt value can either be cleared or replaced with a different error. Since ResizeRequest retries infrequently, the value may be stale and no longer show an active problem. The value is cleared when ResizeRequest transitions to the final state (becomes inactive). If the final state is FAILED the error describing it will be storred in the \"error\" field only." + } + }, + "type": "object" + }, + "InstanceGroupManagerResizeRequestStatusLastAttempt": { + "id": "InstanceGroupManagerResizeRequestStatusLastAttempt", + "properties": { + "error": { + "description": "Errors that prevented the ResizeRequest to be fulfilled.", + "properties": { + "errors": { + "description": "[Output Only] The array of errors encountered while processing this operation.", + "items": { + "properties": { + "code": { + "description": "[Output Only] The error type identifier for this error.", + "type": "string" + }, + "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" + } + }, + "type": "object" + }, + "InstanceGroupManagerResizeRequestsListResponse": { + "description": "[Output Only] A list of resize requests.", + "id": "InstanceGroupManagerResizeRequestsListResponse", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of resize request resources.", + "items": { + "$ref": "InstanceGroupManagerResizeRequest" + }, + "type": "array" + }, + "kind": { + "default": "compute#instanceGroupManagerResizeRequestList", + "description": "[Output Only] Type of the resource. Always compute#instanceGroupManagerResizeRequestList for a list of resize requests.", + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, 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" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + 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 + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "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 does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "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.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "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": "object" + }, "InstanceGroupManagerStatus": { "id": "InstanceGroupManagerStatus", "properties": { @@ -49456,7 +50878,7 @@ }, "perInstanceConfigs": { "$ref": "InstanceGroupManagerStatusStatefulPerInstanceConfigs", - "description": "[Output Only] Status of per-instance configurations on the instance." + "description": "[Output Only] Status of per-instance configurations on the instances." } }, "type": "object" @@ -50990,6 +52412,49 @@ }, "type": "object" }, + "InstanceSettings": { + "description": "Represents a Instance Settings resource. You can use instance settings to configure default settings for Compute Engine VM instances. For example, you can use it to configure default machine type of Compute Engine VM instances.", + "id": "InstanceSettings", + "properties": { + "fingerprint": { + "description": "Specifies a fingerprint for instance settings, which is essentially a hash of the instance settings resource's contents and used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update the instance settings resource. You must always provide an up-to-date fingerprint hash in order to update or change the resource, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve the resource.", + "format": "byte", + "type": "string" + }, + "kind": { + "default": "compute#instanceSettings", + "description": "[Output Only] Type of the resource. Always compute#instance_settings for instance settings.", + "type": "string" + }, + "metadata": { + "$ref": "InstanceSettingsMetadata", + "description": "The metadata key/value pairs assigned to all the instances in the corresponding scope." + }, + "zone": { + "description": "[Output Only] URL of the zone where the resource resides You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", + "type": "string" + } + }, + "type": "object" + }, + "InstanceSettingsMetadata": { + "id": "InstanceSettingsMetadata", + "properties": { + "items": { + "additionalProperties": { + "type": "string" + }, + "description": "A metadata key/value items map. The total size of all keys and values must be less than 512KB.", + "type": "object" + }, + "kind": { + "default": "compute#metadata", + "description": "[Output Only] Type of the resource. Always compute#metadata for metadata.", + "type": "string" + } + }, + "type": "object" + }, "InstanceTemplate": { "description": "Represents an Instance Template resource. Google Compute Engine has two Instance Template resources: * [Global](/compute/docs/reference/rest/v1/instanceTemplates) * [Regional](/compute/docs/reference/rest/v1/regionInstanceTemplates) You can reuse a global instance template in different regions whereas you can use a regional instance template in a specified region only. If you want to reduce cross-region dependency or achieve data residency, use a regional instance template. To create VMs, managed instance groups, and reservations, you can use either global or regional instance templates. For more information, read Instance Templates.", "id": "InstanceTemplate", @@ -51599,7 +53064,7 @@ "type": "string" }, "type": { - "description": "[Output Only] The type of the firewall policy. Can be one of HIERARCHY, NETWORK, NETWORK_REGIONAL.", + "description": "[Output Only] The type of the firewall policy. Can be one of HIERARCHY, NETWORK, NETWORK_REGIONAL, SYSTEM_GLOBAL, SYSTEM_REGIONAL.", "enum": [ "HIERARCHY", "NETWORK", @@ -51972,13 +53437,15 @@ "CREATING", "DELETING", "FAILED", - "READY" + "READY", + "UNAVAILABLE" ], "enumDescriptions": [ "InstantSnapshot creation is in progress.", "InstantSnapshot is currently being deleted.", "InstantSnapshot creation failed.", - "InstantSnapshot has been created successfully." + "InstantSnapshot has been created successfully.", + "InstantSnapshot is currently unavailable and cannot be used for Disk restoration" ], "type": "string" }, @@ -54409,7 +55876,7 @@ "id": "InterconnectRemoteLocationConstraints", "properties": { "portPairRemoteLocation": { - "description": "[Output Only] Port pair remote location constraints, which can take one of the following values: PORT_PAIR_UNCONSTRAINED_REMOTE_LOCATION, PORT_PAIR_MATCHING_REMOTE_LOCATION. GCP's API refers only to individual ports, but the UI uses this field when ordering a pair of ports, to prevent users from accidentally ordering something that is incompatible with their cloud provider. Specifically, when ordering a redundant pair of Cross-Cloud Interconnect ports, and one of them uses a remote location with portPairMatchingRemoteLocation set to matching, the UI requires that both ports use the same remote location.", + "description": "[Output Only] Port pair remote location constraints, which can take one of the following values: PORT_PAIR_UNCONSTRAINED_REMOTE_LOCATION, PORT_PAIR_MATCHING_REMOTE_LOCATION. Google Cloud API refers only to individual ports, but the UI uses this field when ordering a pair of ports, to prevent users from accidentally ordering something that is incompatible with their cloud provider. Specifically, when ordering a redundant pair of Cross-Cloud Interconnect ports, and one of them uses a remote location with portPairMatchingRemoteLocation set to matching, the UI requires that both ports use the same remote location.", "enum": [ "PORT_PAIR_MATCHING_REMOTE_LOCATION", "PORT_PAIR_UNCONSTRAINED_REMOTE_LOCATION" @@ -57468,7 +58935,7 @@ "type": "string" }, "networkEndpointType": { - "description": "Type of network endpoints in this network endpoint group. Can be one of GCE_VM_IP, GCE_VM_IP_PORT, NON_GCP_PRIVATE_IP_PORT, INTERNET_FQDN_PORT, INTERNET_IP_PORT, SERVERLESS, PRIVATE_SERVICE_CONNECT.", + "description": "Type of network endpoints in this network endpoint group. Can be one of GCE_VM_IP, GCE_VM_IP_PORT, NON_GCP_PRIVATE_IP_PORT, INTERNET_FQDN_PORT, INTERNET_IP_PORT, SERVERLESS, PRIVATE_SERVICE_CONNECT, GCE_VM_IP_PORTMAP.", "enum": [ "GCE_VM_IP", "GCE_VM_IP_PORT", @@ -62010,7 +63477,7 @@ "type": "array" }, "cidrRanges": { - "description": "One or more IPv4 or IPv6 CIDR ranges that apply as filter on the source (ingress) or destination (egress) IP in the IP header. If no ranges are specified, all IPv4 traffic that matches the specified IPProtocols is mirrored. If neither cidrRanges nor IPProtocols is specified, all IPv4 traffic is mirrored. To mirror all IPv4 and IPv6 traffic, use \"0.0.0.0/0,::/0\". Note: Support for IPv6 traffic is in preview.", + "description": "One or more IPv4 or IPv6 CIDR ranges that apply as filter on the source (ingress) or destination (egress) IP in the IP header. If no ranges are specified, all IPv4 traffic that matches the specified IPProtocols is mirrored. If neither cidrRanges nor IPProtocols is specified, all IPv4 traffic is mirrored. To mirror all IPv4 and IPv6 traffic, use \"0.0.0.0/0,::/0\".", "items": { "type": "string" }, @@ -62408,15 +63875,15 @@ "properties": { "defaultRouteAction": { "$ref": "HttpRouteAction", - "description": "defaultRouteAction takes effect when none of the pathRules or routeRules match. The load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If defaultRouteAction specifies any weightedBackendServices, defaultService must not be set. Conversely if defaultService is set, defaultRouteAction cannot contain any weightedBackendServices. Only one of defaultRouteAction or defaultUrlRedirect must be set. URL maps for classic Application Load Balancers only support the urlRewrite action within a path matcher's defaultRouteAction." + "description": "defaultRouteAction takes effect when none of the pathRules or routeRules match. The load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If defaultRouteAction specifies any weightedBackendServices, defaultService must not be set. Conversely if defaultService is set, defaultRouteAction cannot contain any weightedBackendServices. If defaultRouteAction is specified, don't set defaultUrlRedirect. If defaultRouteAction.weightedBackendServices is specified, don't set defaultService. URL maps for classic Application Load Balancers only support the urlRewrite action within a path matcher's defaultRouteAction." }, "defaultService": { - "description": "The full or partial URL to the BackendService resource. This URL is used if none of the pathRules or routeRules defined by this PathMatcher are matched. For example, the following are all valid URLs to a BackendService resource: - https://www.googleapis.com/compute/v1/projects/project /global/backendServices/backendService - compute/v1/projects/project/global/backendServices/backendService - global/backendServices/backendService If defaultRouteAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if defaultService is specified, defaultRouteAction cannot contain any weightedBackendServices. Conversely, if defaultRouteAction specifies any weightedBackendServices, defaultService must not be specified. Only one of defaultService, defaultUrlRedirect , or defaultRouteAction.weightedBackendService must be set. Authorization requires one or more of the following Google IAM permissions on the specified resource default_service: - compute.backendBuckets.use - compute.backendServices.use ", + "description": "The full or partial URL to the BackendService resource. This URL is used if none of the pathRules or routeRules defined by this PathMatcher are matched. For example, the following are all valid URLs to a BackendService resource: - https://www.googleapis.com/compute/v1/projects/project /global/backendServices/backendService - compute/v1/projects/project/global/backendServices/backendService - global/backendServices/backendService If defaultRouteAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if defaultService is specified, defaultRouteAction cannot contain any weightedBackendServices. Conversely, if defaultRouteAction specifies any weightedBackendServices, defaultService must not be specified. If defaultService is specified, then set either defaultUrlRedirect or defaultRouteAction.weightedBackendService. Don't set both. Authorization requires one or more of the following Google IAM permissions on the specified resource default_service: - compute.backendBuckets.use - compute.backendServices.use ", "type": "string" }, "defaultUrlRedirect": { "$ref": "HttpRedirectAction", - "description": "When none of the specified pathRules or routeRules match, the request is redirected to a URL specified by defaultUrlRedirect. If defaultUrlRedirect is specified, defaultService or defaultRouteAction must not be set. Not supported when the URL map is bound to a target gRPC proxy." + "description": "When none of the specified pathRules or routeRules match, the request is redirected to a URL specified by defaultUrlRedirect. If defaultUrlRedirect is specified, then set either defaultService or defaultRouteAction. Don't set both. Not supported when the URL map is bound to a target gRPC proxy." }, "description": { "description": "An optional description of this resource. Provide this property when you create the resource.", @@ -63821,6 +65288,9 @@ "GLOBAL_INTERNAL_MANAGED_BACKEND_SERVICES", "GLOBAL_INTERNAL_TRAFFIC_DIRECTOR_BACKEND_SERVICES", "GPUS_ALL_REGIONS", + "HDB_TOTAL_GB", + "HDB_TOTAL_IOPS", + "HDB_TOTAL_THROUGHPUT", "HEALTH_CHECKS", "IMAGES", "INSTANCES", @@ -63894,6 +65364,7 @@ "REGIONAL_INSTANCE_GROUP_MANAGERS", "REGIONAL_INTERNAL_LB_BACKEND_SERVICES", "REGIONAL_INTERNAL_MANAGED_BACKEND_SERVICES", + "REGIONAL_INTERNAL_TRAFFIC_DIRECTOR_BACKEND_SERVICES", "RESERVATIONS", "RESOURCE_POLICIES", "ROUTERS", @@ -64065,6 +65536,10 @@ "", "", "", + "", + "", + "", + "", "The total number of snapshots allowed for a single project.", "", "", @@ -64201,6 +65676,127 @@ "description": "[Output Only] Name of the resource.", "type": "string" }, + "quotaStatusWarning": { + "description": "[Output Only] Warning of fetching the `quotas` field for this region. This field is populated only if fetching of the `quotas` field fails.", + "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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + 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 + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "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 does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "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.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "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" + }, "quotas": { "description": "[Output Only] Quotas assigned to this region.", "items": { @@ -65664,7 +67260,7 @@ "type": "array" }, "type": { - "description": "[Output Only] The type of the firewall policy. Can be one of HIERARCHY, NETWORK, NETWORK_REGIONAL.", + "description": "[Output Only] The type of the firewall policy. Can be one of HIERARCHY, NETWORK, NETWORK_REGIONAL, SYSTEM_GLOBAL, SYSTEM_REGIONAL.", "enum": [ "HIERARCHY", "NETWORK", @@ -66789,7 +68385,7 @@ "type": "object" }, "ResourcePolicyGroupPlacementPolicy": { - "description": "A GroupPlacementPolicy specifies resource placement configuration. It specifies the failure bucket separation as well as network locality", + "description": "A GroupPlacementPolicy specifies resource placement configuration. It specifies the failure bucket separation", "id": "ResourcePolicyGroupPlacementPolicy", "properties": { "availabilityDomainCount": { @@ -70810,14 +72406,14 @@ "type": "string" }, "consumerAcceptLists": { - "description": "Projects that are allowed to connect to this service attachment.", + "description": "Specifies which consumer projects or networks are allowed to connect to the service attachment. Each project or network has a connection limit. A given service attachment can manage connections at either the project or network level. Therefore, both the accept and reject lists for a given service attachment must contain either only projects or only networks.", "items": { "$ref": "ServiceAttachmentConsumerProjectLimit" }, "type": "array" }, "consumerRejectLists": { - "description": "Projects that are not allowed to connect to this service attachment. The project can be specified using its id or number.", + "description": "Specifies a list of projects or networks that are not allowed to connect to this service attachment. The project can be specified using its project ID or project number and the network can be specified using its URL. A given service attachment can manage connections at either the project or network level. Therefore, both the reject and accept lists for a given service attachment must contain either only projects or only networks.", "items": { "type": "string" }, @@ -73493,6 +75089,1412 @@ }, "type": "object" }, + "StoragePool": { + "description": "Represents a zonal storage pool resource.", + "id": "StoragePool", + "properties": { + "capacityProvisioningType": { + "description": "Provisioning type of the byte capacity of the pool.", + "enum": [ + "ADVANCED", + "STANDARD", + "UNSPECIFIED" + ], + "enumDescriptions": [ + "Advanced provisioning \"thinly\" allocates the related resource.", + "Standard provisioning allocates the related resource for the pool disks' exclusive use.", + "" + ], + "type": "string" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "format": "uint64", + "type": "string" + }, + "kind": { + "default": "compute#storagePool", + "description": "[Output Only] Type of the resource. Always compute#storagePool for storage pools.", + "type": "string" + }, + "labelFingerprint": { + "description": "A fingerprint for the labels being applied to this storage pool, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a storage pool.", + "format": "byte", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels to apply to this storage pool. These can be later modified by the setLabels method.", + "type": "object" + }, + "name": { + "annotations": { + "required": [ + "compute.storagePools.insert" + ] + }, + "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.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "performanceProvisioningType": { + "description": "Provisioning type of the performance-related parameters of the pool, such as throughput and IOPS.", + "enum": [ + "ADVANCED", + "STANDARD", + "UNSPECIFIED" + ], + "enumDescriptions": [ + "Advanced provisioning \"thinly\" allocates the related resource.", + "Standard provisioning allocates the related resource for the pool disks' exclusive use.", + "" + ], + "type": "string" + }, + "poolProvisionedCapacityGb": { + "description": "Size, in GiB, of the storage pool.", + "format": "int64", + "type": "string" + }, + "poolProvisionedIops": { + "description": "Provisioned IOPS of the storage pool. Only relevant if the storage pool type is hyperdisk-balanced.", + "format": "int64", + "type": "string" + }, + "poolProvisionedThroughput": { + "description": "Provisioned throughput of the storage pool. Only relevant if the storage pool type is hyperdisk-balanced or hyperdisk-throughput.", + "format": "int64", + "type": "string" + }, + "resourceStatus": { + "$ref": "StoragePoolResourceStatus", + "description": "[Output Only] Status information for the storage pool resource." + }, + "selfLink": { + "description": "[Output Only] Server-defined fully-qualified URL for this resource.", + "type": "string" + }, + "selfLinkWithId": { + "description": "[Output Only] Server-defined URL for this resource's resource id.", + "type": "string" + }, + "state": { + "description": "[Output Only] The status of storage pool creation. - CREATING: Storage pool is provisioning. storagePool. - FAILED: Storage pool creation failed. - READY: Storage pool is ready for use. - DELETING: Storage pool is deleting. ", + "enum": [ + "CREATING", + "DELETING", + "FAILED", + "READY" + ], + "enumDescriptions": [ + "StoragePool is provisioning", + "StoragePool is deleting.", + "StoragePool creation failed.", + "StoragePool is ready for use." + ], + "type": "string" + }, + "status": { + "$ref": "StoragePoolResourceStatus", + "description": "[Output Only] Status information for the storage pool resource." + }, + "storagePoolType": { + "description": "Type of the storage pool.", + "type": "string" + }, + "zone": { + "description": "[Output Only] URL of the zone where the storage pool resides. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", + "type": "string" + } + }, + "type": "object" + }, + "StoragePoolAggregatedList": { + "id": "StoragePoolAggregatedList", + "properties": { + "etag": { + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "additionalProperties": { + "$ref": "StoragePoolsScopedList", + "description": "[Output Only] Name of the scope containing this set of storage pool." + }, + "description": "A list of StoragePoolsScopedList resources.", + "type": "object" + }, + "kind": { + "default": "compute#storagePoolAggregatedList", + "description": "[Output Only] Type of resource. Always compute#storagePoolAggregatedList for aggregated lists of storage pools.", + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, 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" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "items": { + "type": "string" + }, + "type": "array" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + 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 + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "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 does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "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.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "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": "object" + }, + "StoragePoolDisk": { + "id": "StoragePoolDisk", + "properties": { + "attachedInstances": { + "description": "[Output Only] Instances this disk is attached to.", + "items": { + "type": "string" + }, + "type": "array" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "disk": { + "description": "[Output Only] The URL of the disk.", + "type": "string" + }, + "name": { + "description": "[Output Only] The name of the disk.", + "type": "string" + }, + "provisionedIops": { + "description": "[Output Only] The number of IOPS provisioned for the disk.", + "format": "int64", + "type": "string" + }, + "provisionedThroughput": { + "description": "[Output Only] The throughput provisioned for the disk.", + "format": "int64", + "type": "string" + }, + "resourcePolicies": { + "description": "[Output Only] Resource policies applied to disk for automatic snapshot creations.", + "items": { + "type": "string" + }, + "type": "array" + }, + "sizeGb": { + "description": "[Output Only] The disk size, in GB.", + "format": "int64", + "type": "string" + }, + "status": { + "description": "[Output Only] The disk status.", + "enum": [ + "CREATING", + "DELETING", + "FAILED", + "READY", + "RESTORING", + "UNAVAILABLE" + ], + "enumDescriptions": [ + "Disk is provisioning", + "Disk is deleting.", + "Disk creation failed.", + "Disk is ready for use.", + "Source data is being copied into the disk.", + "Disk is currently unavailable and cannot be accessed, attached or detached." + ], + "type": "string" + }, + "type": { + "description": "[Output Only] The disk type.", + "type": "string" + }, + "usedBytes": { + "description": "[Output Only] Amount of disk space used.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "StoragePoolList": { + "description": "A list of StoragePool resources.", + "id": "StoragePoolList", + "properties": { + "etag": { + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of StoragePool resources.", + "items": { + "$ref": "StoragePool" + }, + "type": "array" + }, + "kind": { + "default": "compute#storagePoolList", + "description": "[Output Only] Type of resource. Always compute#storagePoolList for lists of storagePools.", + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, 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" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "unreachables": { + "description": "[Output Only] Unreachable resources. end_interface: MixerListResponseWithEtagBuilder", + "items": { + "type": "string" + }, + "type": "array" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + 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 + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "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 does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "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.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "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": "object" + }, + "StoragePoolListDisks": { + "id": "StoragePoolListDisks", + "properties": { + "etag": { + "type": "string" + }, + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of StoragePoolDisk resources.", + "items": { + "$ref": "StoragePoolDisk" + }, + "type": "array" + }, + "kind": { + "default": "compute#storagePoolListDisks", + "description": "[Output Only] Type of resource. Always compute#storagePoolListDisks for lists of disks in a storagePool.", + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, 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" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "unreachables": { + "description": "[Output Only] Unreachable resources. end_interface: MixerListResponseWithEtagBuilder", + "items": { + "type": "string" + }, + "type": "array" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + 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 + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "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 does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "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.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "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": "object" + }, + "StoragePoolResourceStatus": { + "description": "[Output Only] Contains output only fields.", + "id": "StoragePoolResourceStatus", + "properties": { + "diskCount": { + "description": "[Output Only] Number of disks used.", + "format": "int64", + "type": "string" + }, + "lastResizeTimestamp": { + "description": "[Output Only] Timestamp of the last successful resize in RFC3339 text format.", + "type": "string" + }, + "maxTotalProvisionedDiskCapacityGb": { + "description": "[Output Only] Maximum allowed aggregate disk size in gigabytes.", + "format": "int64", + "type": "string" + }, + "poolUsedCapacityBytes": { + "description": "[Output Only] Space used by data stored in disks within the storage pool (in bytes). This will reflect the total number of bytes written to the disks in the pool, in contrast to the capacity of those disks.", + "format": "int64", + "type": "string" + }, + "poolUsedIops": { + "description": "Sum of all the disks' provisioned IOPS, minus some amount that is allowed per disk that is not counted towards pool's IOPS capacity.", + "format": "int64", + "type": "string" + }, + "poolUsedThroughput": { + "description": "[Output Only] Sum of all the disks' provisioned throughput in MB/s.", + "format": "int64", + "type": "string" + }, + "poolUserWrittenBytes": { + "description": "[Output Only] Amount of data written into the pool, before it is compacted.", + "format": "int64", + "type": "string" + }, + "totalProvisionedDiskCapacityGb": { + "description": "[Output Only] Sum of all the capacity provisioned in disks in this storage pool. A disk's provisioned capacity is the same as its total capacity.", + "format": "int64", + "type": "string" + }, + "totalProvisionedDiskIops": { + "description": "[Output Only] Sum of all the disks' provisioned IOPS.", + "format": "int64", + "type": "string" + }, + "totalProvisionedDiskThroughput": { + "description": "[Output Only] Sum of all the disks' provisioned throughput in MB/s, minus some amount that is allowed per disk that is not counted towards pool's throughput capacity.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "StoragePoolType": { + "id": "StoragePoolType", + "properties": { + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "deprecated": { + "$ref": "DeprecationStatus", + "description": "[Output Only] The deprecation status associated with this storage pool type." + }, + "description": { + "description": "[Output Only] An optional description of this resource.", + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "format": "uint64", + "type": "string" + }, + "kind": { + "default": "compute#storagePoolType", + "description": "[Output Only] Type of the resource. Always compute#storagePoolType for storage pool types.", + "type": "string" + }, + "maxPoolProvisionedCapacityGb": { + "description": "[Output Only] Maximum storage pool size in GB.", + "format": "int64", + "type": "string" + }, + "maxPoolProvisionedIops": { + "description": "[Output Only] Maximum provisioned IOPS.", + "format": "int64", + "type": "string" + }, + "maxPoolProvisionedThroughput": { + "description": "[Output Only] Maximum provisioned throughput.", + "format": "int64", + "type": "string" + }, + "minPoolProvisionedCapacityGb": { + "description": "[Output Only] Minimum storage pool size in GB.", + "format": "int64", + "type": "string" + }, + "minPoolProvisionedIops": { + "description": "[Output Only] Minimum provisioned IOPS.", + "format": "int64", + "type": "string" + }, + "minPoolProvisionedThroughput": { + "description": "[Output Only] Minimum provisioned throughput.", + "format": "int64", + "type": "string" + }, + "minSizeGb": { + "description": "[Deprecated] This field is deprecated. Use minPoolProvisionedCapacityGb instead.", + "format": "int64", + "type": "string" + }, + "name": { + "description": "[Output Only] Name of the resource.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "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" + }, + "supportedDiskTypes": { + "description": "[Output Only] The list of disk types supported in this storage pool type.", + "items": { + "type": "string" + }, + "type": "array" + }, + "zone": { + "description": "[Output Only] URL of the zone where the storage pool type resides. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", + "type": "string" + } + }, + "type": "object" + }, + "StoragePoolTypeAggregatedList": { + "id": "StoragePoolTypeAggregatedList", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "additionalProperties": { + "$ref": "StoragePoolTypesScopedList", + "description": "[Output Only] Name of the scope containing this set of storage pool types." + }, + "description": "A list of StoragePoolTypesScopedList resources.", + "type": "object" + }, + "kind": { + "default": "compute#storagePoolTypeAggregatedList", + "description": "[Output Only] Type of resource. Always compute#storagePoolTypeAggregatedList .", + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, 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" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + 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 + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "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 does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "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.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "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": "object" + }, + "StoragePoolTypeList": { + "description": "Contains a list of storage pool types.", + "id": "StoragePoolTypeList", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of StoragePoolType resources.", + "items": { + "$ref": "StoragePoolType" + }, + "type": "array" + }, + "kind": { + "default": "compute#storagePoolTypeList", + "description": "[Output Only] Type of resource. Always compute#storagePoolTypeList for storage pool types.", + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, 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" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + 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 + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "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 does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "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.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "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": "object" + }, + "StoragePoolTypesScopedList": { + "id": "StoragePoolTypesScopedList", + "properties": { + "storagePoolTypes": { + "description": "[Output Only] A list of storage pool types contained in this scope.", + "items": { + "$ref": "StoragePoolType" + }, + "type": "array" + }, + "warning": { + "description": "[Output Only] Informational warning which replaces the list of storage pool types when the list is empty.", + "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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + 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 + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "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 does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "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.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "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": "object" + }, + "StoragePoolsScopedList": { + "id": "StoragePoolsScopedList", + "properties": { + "storagePools": { + "description": "[Output Only] A list of storage pool contained in this scope.", + "items": { + "$ref": "StoragePool" + }, + "type": "array" + }, + "warning": { + "description": "[Output Only] Informational warning which replaces the list of storage pool when the list is empty.", + "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": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + 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 + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "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 does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "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.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "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": "object" + }, "Subnetwork": { "description": "Represents a Subnetwork resource. A subnetwork (also known as a subnet) is a logical partition of a Virtual Private Cloud network with one primary IP range and zero or more secondary IP ranges. For more information, read Virtual Private Cloud (VPC) Network.", "id": "Subnetwork", @@ -78071,7 +81073,7 @@ "description": "defaultRouteAction takes effect when none of the hostRules match. The load balancer performs advanced routing actions, such as URL rewrites and header transformations, before forwarding the request to the selected backend. If defaultRouteAction specifies any weightedBackendServices, defaultService must not be set. Conversely if defaultService is set, defaultRouteAction cannot contain any weightedBackendServices. Only one of defaultRouteAction or defaultUrlRedirect must be set. URL maps for classic Application Load Balancers only support the urlRewrite action within defaultRouteAction. defaultRouteAction has no effect when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true." }, "defaultService": { - "description": "The full or partial URL of the defaultService resource to which traffic is directed if none of the hostRules match. If defaultRouteAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if defaultService is specified, defaultRouteAction cannot contain any weightedBackendServices. Conversely, if routeAction specifies any weightedBackendServices, service must not be specified. Only one of defaultService, defaultUrlRedirect , or defaultRouteAction.weightedBackendService must be set. defaultService has no effect when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true.", + "description": "The full or partial URL of the defaultService resource to which traffic is directed if none of the hostRules match. If defaultRouteAction is also specified, advanced routing actions, such as URL rewrites, take effect before sending the request to the backend. However, if defaultService is specified, defaultRouteAction cannot contain any weightedBackendServices. Conversely, if routeAction specifies any weightedBackendServices, service must not be specified. If defaultService is specified, then set either defaultUrlRedirect , or defaultRouteAction.weightedBackendService Don't set both. defaultService has no effect when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true.", "type": "string" }, "defaultUrlRedirect": { diff --git a/etc/api/connectors/v1/connectors-api.json b/etc/api/connectors/v1/connectors-api.json index 1ff6c1db29..e04eb1321c 100644 --- a/etc/api/connectors/v1/connectors-api.json +++ b/etc/api/connectors/v1/connectors-api.json @@ -523,7 +523,7 @@ "type": "string" }, "updateMask": { - "description": "Required. You can modify only the fields listed below. To lock/unlock a connection: * `lock_config` To suspend/resume a connection: * `suspended` To update the connection details: * `description` * `labels` * `connector_version` * `config_variables` * `auth_config` * `destination_configs` * `node_config` * `log_config` * `ssl_config` * `eventing_enablement_type` * `eventing_config`", + "description": "Required. You can modify only the fields listed below. To lock/unlock a connection: * `lock_config` To suspend/resume a connection: * `suspended` To update the connection details: * `description` * `labels` * `connector_version` * `config_variables` * `auth_config` * `destination_configs` * `node_config` * `log_config` * `ssl_config` * `eventing_enablement_type` * `eventing_config` * `auth_override_enabled`", "format": "google-fieldmask", "location": "query", "type": "string" @@ -568,6 +568,47 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "search": { + "description": "Returns Top matching Connections for a given query.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/connections:search", + "httpMethod": "GET", + "id": "connectors.projects.locations.connections.search", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Parent resource of the Connection, of the form: `projects/*/locations/*/connections`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/connections$", + "required": true, + "type": "string" + }, + "pageSize": { + "description": "Optional. The number of top matching connectors to return", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. page_token", + "location": "query", + "type": "string" + }, + "query": { + "description": "Required. The query against which the search needs to be done.", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}:search", + "response": { + "$ref": "SearchConnectionsResponse" + }, + "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}/connections/{connectionsId}:setIamPolicy", @@ -1113,6 +1154,69 @@ } } }, + "customConnectors": { + "methods": { + "validateCustomConnectorSpec": { + "description": "Validates a Custom Connector Spec.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/customConnectors:validateCustomConnectorSpec", + "httpMethod": "POST", + "id": "connectors.projects.locations.customConnectors.validateCustomConnectorSpec", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. Location at which the custom connector is being created.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/customConnectors:validateCustomConnectorSpec", + "request": { + "$ref": "ValidateCustomConnectorSpecRequest" + }, + "response": { + "$ref": "ValidateCustomConnectorSpecResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, + "resources": { + "customConnectorVersions": { + "methods": { + "delete": { + "description": "Deletes a single CustomConnectorVersion.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/customConnectors/{customConnectorsId}/customConnectorVersions/{customConnectorVersionsId}", + "httpMethod": "DELETE", + "id": "connectors.projects.locations.customConnectors.customConnectorVersions.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Resource name of the form: `projects/{project}/locations/{location}/customConnectors/{custom_connector}/customConnectorVersions/{custom_connector_version}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/customConnectors/[^/]+/customConnectorVersions/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + }, "endpointAttachments": { "methods": { "create": { @@ -1545,31 +1649,6 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, - "delete": { - "description": "Deletes a single CustomConnectorVersion.", - "flatPath": "v1/projects/{projectsId}/locations/global/customConnectors/{customConnectorsId}/customConnectorVersions/{customConnectorVersionsId}", - "httpMethod": "DELETE", - "id": "connectors.projects.locations.global.customConnectors.customConnectorVersions.delete", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. Resource name of the form: `projects/{project}/locations/{location}/customConnectors/{custom_connector}/customConnectorVersions/{custom_connector_version}`", - "location": "path", - "pattern": "^projects/[^/]+/locations/global/customConnectors/[^/]+/customConnectorVersions/[^/]+$", - "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 CustomConnectorVersion.", "flatPath": "v1/projects/{projectsId}/locations/global/customConnectors/{customConnectorsId}/customConnectorVersions/{customConnectorVersionsId}", @@ -1630,40 +1709,6 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] - }, - "patch": { - "description": "Updates the parameters of a CustomConnectorVersion.", - "flatPath": "v1/projects/{projectsId}/locations/global/customConnectors/{customConnectorsId}/customConnectorVersions/{customConnectorVersionsId}", - "httpMethod": "PATCH", - "id": "connectors.projects.locations.global.customConnectors.customConnectorVersions.patch", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Output only. Identifier. Resource name of the Version. Format: projects/{project}/locations/{location}/customConnectors/{custom_connector}/customConnectorVersions/{custom_connector_version}", - "location": "path", - "pattern": "^projects/[^/]+/locations/global/customConnectors/[^/]+/customConnectorVersions/[^/]+$", - "required": true, - "type": "string" - }, - "updateMask": { - "description": "Required. Field mask is used to specify the fields to be overwritten in the Connector 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. Set the mask as \"*\" for full replacement, which means all fields will be overwritten.", - "format": "google-fieldmask", - "location": "query", - "type": "string" - } - }, - "path": "v1/{+name}", - "request": { - "$ref": "CustomConnectorVersion" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] } } } @@ -2354,7 +2399,7 @@ } } }, - "revision": "20240221", + "revision": "20240415", "rootUrl": "https://connectors.googleapis.com/", "schemas": { "AuditConfig": { @@ -2539,6 +2584,28 @@ }, "type": "object" }, + "BillingConfig": { + "description": "Billing config for the connection.", + "id": "BillingConfig", + "properties": { + "billingCategory": { + "description": "Output only. Billing category for the connector.", + "enum": [ + "BILLING_CATEGORY_UNSPECIFIED", + "GCP_AND_TECHNICAL_CONNECTOR", + "NON_GCP_CONNECTOR" + ], + "enumDescriptions": [ + "Billing category is not specified.", + "GCP/Technical connector.", + "Non-GCP connector." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "Binding": { "description": "Associates `members`, or principals, with a `role`.", "id": "Binding", @@ -2622,6 +2689,18 @@ }, "type": "array" }, + "enumSource": { + "description": "Optional. enum source denotes the source of api to fill the enum options", + "enum": [ + "ENUM_SOURCE_UNSPECIFIED", + "EVENT_TYPES_API" + ], + "enumDescriptions": [ + "Api type unspecified.", + "list event types." + ], + "type": "string" + }, "isAdvanced": { "description": "Indicates if current template is part of advanced settings", "type": "boolean" @@ -2713,6 +2792,11 @@ "$ref": "AuthConfig", "description": "Optional. Configuration for establishing the connection's authentication with an external system." }, + "billingConfig": { + "$ref": "BillingConfig", + "description": "Output only. Billing config for the connection.", + "readOnly": true + }, "configVariables": { "description": "Optional. Configuration for configuring the connection with an external system.", "items": { @@ -3132,6 +3216,11 @@ "readOnly": true, "type": "array" }, + "authOverrideEnabled": { + "description": "Output only. Flag to mark the dynamic auth override.", + "readOnly": true, + "type": "boolean" + }, "configVariableTemplates": { "description": "Output only. List of config variables needed to create a connection.", "items": { @@ -3224,6 +3313,10 @@ "readOnly": true, "type": "array" }, + "schemaRefreshConfig": { + "$ref": "SchemaRefreshConfig", + "description": "Connection Schema Refresh Config" + }, "sslConfigTemplate": { "$ref": "SslConfigTemplate", "description": "Output only. Ssl configuration supported by the Connector.", @@ -3338,10 +3431,19 @@ "id": "CustomConnector", "properties": { "activeConnectorVersions": { - "description": "Optional. Active connector versions.", + "description": "Output only. Active connector versions.", "items": { "type": "string" }, + "readOnly": true, + "type": "array" + }, + "allConnectorVersions": { + "description": "Output only. All connector versions.", + "items": { + "type": "string" + }, + "readOnly": true, "type": "array" }, "createTime": { @@ -3448,6 +3550,14 @@ "description": "Optional. Location of the custom connector spec. The location can be either a public url like `https://public-url.com/spec` Or a Google Cloud Storage location like `gs:///`", "type": "string" }, + "specServerUrls": { + "description": "Output only. Server URLs parsed from the spec.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, "state": { "description": "Output only. State of the custom connector version.", "enum": [ @@ -3586,6 +3696,13 @@ "description": "DestinationConfigTemplate defines required destinations supported by the Connector.", "id": "DestinationConfigTemplate", "properties": { + "autocompleteSuggestions": { + "description": "Autocomplete suggestions for destination URL field.", + "items": { + "type": "string" + }, + "type": "array" + }, "defaultPort": { "description": "The default port.", "format": "int32", @@ -3826,6 +3943,13 @@ "description": "Optional. Link for Subscriber of the current EventSubscription.", "type": "string" }, + "triggerConfigVariables": { + "description": "Optional. Configuration for configuring the trigger", + "items": { + "$ref": "ConfigVariable" + }, + "type": "array" + }, "updateTime": { "description": "Output only. Updated time.", "format": "google-datetime", @@ -3986,13 +4110,6 @@ "registrationDestinationConfig": { "$ref": "DestinationConfig", "description": "Registration endpoint for auto registration." - }, - "triggerConfigVariables": { - "description": "Optional. Additional eventing related field values", - "items": { - "$ref": "ConfigVariable" - }, - "type": "array" } }, "type": "object" @@ -4166,6 +4283,11 @@ "$ref": "EventingStatus", "description": "Output only. Current status of eventing.", "readOnly": true + }, + "webhookData": { + "$ref": "WebhookData", + "description": "Output only. Webhook data.", + "readOnly": true } }, "type": "object" @@ -5496,7 +5618,7 @@ "type": "object" }, "MaintenancePolicy": { - "description": "LINT.IfChange Defines policies to service maintenance events.", + "description": "Defines policies to service maintenance events.", "id": "MaintenancePolicy", "properties": { "createTime": { @@ -6483,6 +6605,29 @@ "$ref": "JsonSchema", "description": "Output only. JsonSchema representation of this entity's metadata", "readOnly": true + }, + "operations": { + "description": "List of operations supported by this entity", + "items": { + "enum": [ + "OPERATION_UNSPECIFIED", + "LIST", + "GET", + "CREATE", + "UPDATE", + "DELETE" + ], + "enumDescriptions": [ + "Operation unspecified.", + "This operation means entity type supports LIST entities.", + "This operation means entity type supports GET entity.", + "This operation means entity type supports CREATE entity.", + "This operation means entity type supports UPDATE entity.", + "This operation means entity type supports DELETE entity." + ], + "type": "string" + }, + "type": "array" } }, "type": "object" @@ -6527,6 +6672,68 @@ }, "type": "object" }, + "SchemaRefreshConfig": { + "description": "Config for connection schema refresh", + "id": "SchemaRefreshConfig", + "properties": { + "useActionDisplayNames": { + "description": "Whether to use displayName for actions in UI.", + "type": "boolean" + }, + "useSynchronousSchemaRefresh": { + "description": "Whether to use synchronous schema refresh.", + "type": "boolean" + } + }, + "type": "object" + }, + "SearchConnectionInstance": { + "description": "SearchConnectionInstance represents an instance of connector with specific fields", + "id": "SearchConnectionInstance", + "properties": { + "actionSchema": { + "$ref": "RuntimeActionSchema", + "description": "Output only. Schema of a runtime action.", + "readOnly": true + }, + "connection": { + "$ref": "Connection", + "description": "Output only. Connection details", + "readOnly": true + }, + "entitySchema": { + "$ref": "RuntimeEntitySchema", + "description": "Output only. Schema of a runtime entity.", + "readOnly": true + } + }, + "type": "object" + }, + "SearchConnectionsResponse": { + "description": "Response message for Connectors.SearchConnections.", + "id": "SearchConnectionsResponse", + "properties": { + "connections": { + "description": "A list of connectors.", + "items": { + "$ref": "SearchConnectionInstance" + }, + "type": "array" + }, + "nextPageToken": { + "description": "Optional. page_token", + "type": "string" + }, + "unreachable": { + "description": "Locations that could not be reached.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "Secret": { "description": "Secret provides a reference to entries in Secret Manager.", "id": "Secret", @@ -6965,6 +7172,89 @@ }, "type": "object" }, + "ValidateCustomConnectorSpecRequest": { + "description": "Request message for ConnectorsService.ValidateCustomConnectorSpec", + "id": "ValidateCustomConnectorSpecRequest", + "properties": { + "serviceAccount": { + "description": "Required. Service account to access the spec from Google Cloud Storage.", + "type": "string" + }, + "specLocation": { + "description": "Required. Location of the custom connector spec. The location can be either a public url like `https://public-url.com/spec` Or a Google Cloud Storage location like `gs:///`", + "type": "string" + }, + "specType": { + "description": "Required. Spec type of the custom connector spec.", + "enum": [ + "CUSTOM_CONNECTOR_TYPE_UNSPECIFIED", + "OPEN_API", + "PROTO" + ], + "enumDescriptions": [ + "Connector type is not specified.", + "OpenAPI connector.", + "Proto connector." + ], + "type": "string" + } + }, + "type": "object" + }, + "ValidateCustomConnectorSpecResponse": { + "description": "Response message for ConnectorsService.ValidateCustomConnectorSpec", + "id": "ValidateCustomConnectorSpecResponse", + "properties": { + "errorMessage": { + "description": "Error message. The spec is valid if the error message is empty.", + "type": "string" + } + }, + "type": "object" + }, + "WebhookData": { + "description": "WebhookData has details of webhook configuration.", + "id": "WebhookData", + "properties": { + "additionalVariables": { + "description": "Output only. Additional webhook related field values.", + "items": { + "$ref": "ConfigVariable" + }, + "readOnly": true, + "type": "array" + }, + "createTime": { + "description": "Output only. Timestamp when the webhook was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "id": { + "description": "Output only. ID to uniquely identify webhook.", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Output only. Name of the Webhook", + "readOnly": true, + "type": "string" + }, + "nextRefreshTime": { + "description": "Output only. Next webhook refresh time. Will be null if refresh is not supported.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. Timestamp when the webhook was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "WeeklyCycle": { "description": "Time window specified for weekly operations.", "id": "WeeklyCycle", diff --git a/etc/api/contactcenterinsights/v1/contactcenterinsights-api.json b/etc/api/contactcenterinsights/v1/contactcenterinsights-api.json index 12454261dd..38c9d5e4dc 100644 --- a/etc/api/contactcenterinsights/v1/contactcenterinsights-api.json +++ b/etc/api/contactcenterinsights/v1/contactcenterinsights-api.json @@ -1473,9 +1473,131 @@ } } }, - "revision": "20240226", + "revision": "20240416", "rootUrl": "https://contactcenterinsights.googleapis.com/", "schemas": { + "GoogleCloudContactcenterinsightsV1AgentCoachingInstruction": { + "description": "Agent Coaching instructions that customer can configure.", + "id": "GoogleCloudContactcenterinsightsV1AgentCoachingInstruction", + "properties": { + "agentAction": { + "description": "Optional. The action that human agent should take. For example, \"apologize for the slow shipping\". If the users only want to use agent coaching for intent detection, agent_action can be empty", + "type": "string" + }, + "condition": { + "description": "Optional. The condition of the instruction. For example, \"the customer wants to cancel an order\". If the users want the instruction to be triggered unconditionally, the condition can be empty.", + "type": "string" + }, + "description": { + "description": "Optional. The detailed description of this instruction.", + "type": "string" + }, + "displayName": { + "description": "Optional. Display name for the instruction.", + "type": "string" + }, + "metadata": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Additional information attached to this instruction.", + "type": "object" + }, + "systemAction": { + "description": "Optional. The action that system should take. For example, \"call GetOrderTime with order_number={order number provided by the customer}\". If the users don't have plugins or don't want to trigger plugins, the system_action can be empty", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1AgentCoachingSuggestion": { + "description": "Suggestion for coaching agents.", + "id": "GoogleCloudContactcenterinsightsV1AgentCoachingSuggestion", + "properties": { + "agentActionSuggestions": { + "description": "Optional. Suggested actions for the agent to take.", + "items": { + "$ref": "GoogleCloudContactcenterinsightsV1AgentCoachingSuggestionAgentActionSuggestion" + }, + "type": "array" + }, + "applicableInstructions": { + "description": "Optional. Instructions applicable based on the current context.", + "items": { + "$ref": "GoogleCloudContactcenterinsightsV1AgentCoachingInstruction" + }, + "type": "array" + }, + "sampleResponses": { + "description": "Optional. Sample response for the Agent.", + "items": { + "$ref": "GoogleCloudContactcenterinsightsV1AgentCoachingSuggestionSampleResponse" + }, + "type": "array" + }, + "suggestionEval": { + "$ref": "GoogleCloudContactcenterinsightsV1AgentCoachingSuggestionAgentCoachingSuggestionEval", + "description": "Self evaluation of the suggestion." + }, + "suggestionReasoning": { + "$ref": "GoogleCloudContactcenterinsightsV1AgentCoachingSuggestionAgentCoachingSuggestionReasoning", + "description": "Reasoning for the suggestion." + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1AgentCoachingSuggestionAgentActionSuggestion": { + "description": "Actions suggested for the agent. This is based on applicable instructions.", + "id": "GoogleCloudContactcenterinsightsV1AgentCoachingSuggestionAgentActionSuggestion", + "properties": { + "agentAction": { + "description": "Optional. The suggested action for the agent.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1AgentCoachingSuggestionAgentCoachingSuggestionEval": { + "description": "Self evaluations of the suggestion.", + "id": "GoogleCloudContactcenterinsightsV1AgentCoachingSuggestionAgentCoachingSuggestionEval", + "properties": { + "actionActionSuggestionEval": { + "description": "Optional. Eval for Agent action suggestion.", + "type": "string" + }, + "sampleResponseEval": { + "description": "Optional. Eval for sample response.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1AgentCoachingSuggestionAgentCoachingSuggestionReasoning": { + "description": "Reasoning for the suggestion.", + "id": "GoogleCloudContactcenterinsightsV1AgentCoachingSuggestionAgentCoachingSuggestionReasoning", + "properties": { + "agentActionTaken": { + "description": "Optional. The actions that the agent has taken already.", + "type": "string" + }, + "issueSummary": { + "description": "Optional. Summary of the issue.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1AgentCoachingSuggestionSampleResponse": { + "description": "Sample response that the agent can use. This could be based on applicable instructions and ingested data from other systems.", + "id": "GoogleCloudContactcenterinsightsV1AgentCoachingSuggestionSampleResponse", + "properties": { + "responseText": { + "description": "Optional. Sample response for Agent in text.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudContactcenterinsightsV1Analysis": { "description": "The analysis resource.", "id": "GoogleCloudContactcenterinsightsV1Analysis", @@ -1656,11 +1778,13 @@ "description": "Default summarization model to be used.", "enum": [ "SUMMARIZATION_MODEL_UNSPECIFIED", - "BASELINE_MODEL" + "BASELINE_MODEL", + "BASELINE_MODEL_V2_0" ], "enumDescriptions": [ "Unspecified summarization model.", - "The CCAI baseline model." + "The CCAI baseline model.", + "The CCAI baseline model, V2.0." ], "type": "string" } @@ -2903,6 +3027,24 @@ }, "type": "object" }, + "GoogleCloudContactcenterinsightsV1FreeFormSuggestion": { + "description": "Suggestion generated using free form generator.", + "id": "GoogleCloudContactcenterinsightsV1FreeFormSuggestion", + "properties": { + "labels": { + "description": "Optional. Labels for the generator.", + "items": { + "type": "string" + }, + "type": "array" + }, + "response": { + "description": "Required. Free form suggestion.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudContactcenterinsightsV1GcsSource": { "description": "A Cloud Storage source of conversation data.", "id": "GoogleCloudContactcenterinsightsV1GcsSource", @@ -2918,6 +3060,162 @@ }, "type": "object" }, + "GoogleCloudContactcenterinsightsV1GeneratorSuggestion": { + "description": "Suggestion generated using a Generator.", + "id": "GoogleCloudContactcenterinsightsV1GeneratorSuggestion", + "properties": { + "agentCoachingSuggestion": { + "$ref": "GoogleCloudContactcenterinsightsV1AgentCoachingSuggestion", + "description": "Optional. Suggestion to coach the agent." + }, + "freeFormSuggestion": { + "$ref": "GoogleCloudContactcenterinsightsV1FreeFormSuggestion", + "description": "Optional. Free form suggestion." + }, + "summarySuggestion": { + "$ref": "GoogleCloudContactcenterinsightsV1SummarySuggestion", + "description": "Optional. Suggested summary." + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1GetGeneratorSuggestionResponse": { + "description": "Represents response from generators.", + "id": "GoogleCloudContactcenterinsightsV1GetGeneratorSuggestionResponse", + "properties": { + "generatorSuggestion": { + "$ref": "GoogleCloudContactcenterinsightsV1GeneratorSuggestion", + "description": "The suggestion generated from the Generator." + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1GetKnowledgeAssistResponse": { + "description": "Response for Knowledge Assist. Contains suggested query and optionally includes an answer for the query.", + "id": "GoogleCloudContactcenterinsightsV1GetKnowledgeAssistResponse", + "properties": { + "suggestedQuery": { + "$ref": "GoogleCloudContactcenterinsightsV1GetKnowledgeAssistResponseSuggestedQuery", + "description": "The query suggested based on the context. Suggestion is made only if it is different from the previous suggestion." + }, + "suggestedQueryAnswer": { + "$ref": "GoogleCloudContactcenterinsightsV1GetKnowledgeAssistResponseKnowledgeAnswer", + "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" + }, + "GoogleCloudContactcenterinsightsV1GetKnowledgeAssistResponseKnowledgeAnswer": { + "description": "Represents an answer from Knowledge. Cuurently supports FAQ and Generative answers.", + "id": "GoogleCloudContactcenterinsightsV1GetKnowledgeAssistResponseKnowledgeAnswer", + "properties": { + "answerText": { + "description": "The piece of text from the `source` that answers this suggested query.", + "type": "string" + }, + "faqSource": { + "$ref": "GoogleCloudContactcenterinsightsV1GetKnowledgeAssistResponseKnowledgeAnswerFaqSource", + "description": "Populated if the prediction came from FAQ." + }, + "generativeSource": { + "$ref": "GoogleCloudContactcenterinsightsV1GetKnowledgeAssistResponseKnowledgeAnswerGenerativeSource", + "description": "Populated if the prediction was Generative." + }, + "intentMatchingSource": { + "$ref": "GoogleCloudContactcenterinsightsV1GetKnowledgeAssistResponseKnowledgeAnswerIntentMatchingSource", + "description": "Populated if the prediction was from intent matching." + }, + "matchConfidence": { + "description": "The system's confidence score that this answer is a good match for this conversational query. The range is from 0.0 (completely uncertain) to 1.0 (completely certain).", + "format": "float", + "type": "number" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1GetKnowledgeAssistResponseKnowledgeAnswerFaqSource": { + "description": "Details about source of FAQ answer.", + "id": "GoogleCloudContactcenterinsightsV1GetKnowledgeAssistResponseKnowledgeAnswerFaqSource", + "properties": { + "document": { + "description": "Indicates which Knowledge Document this answer was extracted from. Format: `projects//knowledgeBases//documents/`.", + "type": "string" + }, + "question": { + "description": "The corresponding FAQ question.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1GetKnowledgeAssistResponseKnowledgeAnswerGenerativeSource": { + "description": "Details about source of Generative answer.", + "id": "GoogleCloudContactcenterinsightsV1GetKnowledgeAssistResponseKnowledgeAnswerGenerativeSource", + "properties": { + "snippets": { + "description": "All snippets used for this Generative Prediction, with their source URI and data.", + "items": { + "$ref": "GoogleCloudContactcenterinsightsV1GetKnowledgeAssistResponseKnowledgeAnswerGenerativeSourceSnippet" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1GetKnowledgeAssistResponseKnowledgeAnswerGenerativeSourceSnippet": { + "description": "Snippet Source for a Generative Prediction.", + "id": "GoogleCloudContactcenterinsightsV1GetKnowledgeAssistResponseKnowledgeAnswerGenerativeSourceSnippet", + "properties": { + "document": { + "description": "Indicates which Knowledge Document this snippet was extracted from. Format: `projects//knowledgeBases//documents/`.", + "type": "string" + }, + "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" + }, + "GoogleCloudContactcenterinsightsV1GetKnowledgeAssistResponseKnowledgeAnswerIntentMatchingSource": { + "description": "Details about source of Intent Matching answer.", + "id": "GoogleCloudContactcenterinsightsV1GetKnowledgeAssistResponseKnowledgeAnswerIntentMatchingSource", + "properties": { + "title": { + "description": "Title of the document.", + "type": "string" + }, + "uri": { + "description": "URI the data is sourced from.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1GetKnowledgeAssistResponseSuggestedQuery": { + "description": "Represents a suggested query.", + "id": "GoogleCloudContactcenterinsightsV1GetKnowledgeAssistResponseSuggestedQuery", + "properties": { + "queryText": { + "description": "Suggested query text.", + "type": "string" + }, + "score": { + "description": "Suggested query score.", + "format": "float", + "type": "number" + } + }, + "type": "object" + }, "GoogleCloudContactcenterinsightsV1HoldData": { "description": "The data for a hold annotation.", "id": "GoogleCloudContactcenterinsightsV1HoldData", @@ -3747,6 +4045,18 @@ "$ref": "GoogleCloudContactcenterinsightsV1FaqAnswerData", "description": "Agent Assist FAQ answer data." }, + "generatorSuggestionResult": { + "$ref": "GoogleCloudContactcenterinsightsV1GetGeneratorSuggestionResponse", + "description": "The generator suggestion result." + }, + "knowledgeAssistResult": { + "$ref": "GoogleCloudContactcenterinsightsV1GetKnowledgeAssistResponse", + "description": "The Knowledge Assist result." + }, + "knowledgeSearchResult": { + "$ref": "GoogleCloudContactcenterinsightsV1SearchKnowledgeAnswer", + "description": "The Knowledge Search result." + }, "smartComposeSuggestion": { "$ref": "GoogleCloudContactcenterinsightsV1SmartComposeSuggestionData", "description": "Agent Assist Smart Compose suggestion data." @@ -3762,6 +4072,72 @@ }, "type": "object" }, + "GoogleCloudContactcenterinsightsV1SearchKnowledgeAnswer": { + "description": "Represents a SearchKnowledge answer.", + "id": "GoogleCloudContactcenterinsightsV1SearchKnowledgeAnswer", + "properties": { + "answer": { + "description": "The piece of text from the knowledge base documents that answers the search query", + "type": "string" + }, + "answerRecord": { + "description": "The name of the answer record. Format: `projects//locations//answer Records/`", + "type": "string" + }, + "answerSources": { + "description": "All sources used to generate the answer.", + "items": { + "$ref": "GoogleCloudContactcenterinsightsV1SearchKnowledgeAnswerAnswerSource" + }, + "type": "array" + }, + "answerType": { + "description": "The type of the answer.", + "enum": [ + "ANSWER_TYPE_UNSPECIFIED", + "FAQ", + "GENERATIVE", + "INTENT" + ], + "enumDescriptions": [ + "The answer has a unspecified type.", + "The answer is from FAQ documents.", + "The answer is from generative model.", + "The answer is from intent matching." + ], + "type": "string" + }, + "confidenceScore": { + "description": "The confidence score in [0.0, 1.0] range.", + "format": "float", + "type": "number" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1SearchKnowledgeAnswerAnswerSource": { + "description": "The sources of the answers.", + "id": "GoogleCloudContactcenterinsightsV1SearchKnowledgeAnswerAnswerSource", + "properties": { + "document": { + "description": "The document from which the snippet was extracted. Format: `projects//knowledgeBases//documents/`", + "type": "string" + }, + "snippet": { + "description": "The relevant snippet of the article.", + "type": "string" + }, + "title": { + "description": "The title of the article.", + "type": "string" + }, + "uri": { + "description": "The URI of the article.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudContactcenterinsightsV1SentimentData": { "description": "The data for a sentiment annotation.", "id": "GoogleCloudContactcenterinsightsV1SentimentData", @@ -3810,7 +4186,7 @@ "additionalProperties": { "type": "string" }, - "description": "A map that maps a notification trigger to a Pub/Sub topic. Each time a specified trigger occurs, Insights will notify the corresponding Pub/Sub topic. Keys are notification triggers. Supported keys are: * \"all-triggers\": Notify each time any of the supported triggers occurs. * \"create-analysis\": Notify each time an analysis is created. * \"create-conversation\": Notify each time a conversation is created. * \"export-insights-data\": Notify each time an export is complete. * \"update-conversation\": Notify each time a conversation is updated via UpdateConversation. * \"upload-conversation\": Notify when an UploadConversation LRO completes. Values are Pub/Sub topics. The format of each Pub/Sub topic is: projects/{project}/topics/{topic}", + "description": "A map that maps a notification trigger to a Pub/Sub topic. Each time a specified trigger occurs, Insights will notify the corresponding Pub/Sub topic. Keys are notification triggers. Supported keys are: * \"all-triggers\": Notify each time any of the supported triggers occurs. * \"create-analysis\": Notify each time an analysis is created. * \"create-conversation\": Notify each time a conversation is created. * \"export-insights-data\": Notify each time an export is complete. * \"ingest-conversations\": Notify each time an IngestConversations LRO completes. * \"update-conversation\": Notify each time a conversation is updated via UpdateConversation. * \"upload-conversation\": Notify when an UploadConversation LRO completes. Values are Pub/Sub topics. The format of each Pub/Sub topic is: projects/{project}/topics/{topic}", "type": "object" }, "redactionConfig": { @@ -3922,6 +4298,35 @@ }, "type": "object" }, + "GoogleCloudContactcenterinsightsV1SummarySuggestion": { + "description": "Suggested summary of the conversation.", + "id": "GoogleCloudContactcenterinsightsV1SummarySuggestion", + "properties": { + "summarySections": { + "description": "Required. All the parts of generated summary.", + "items": { + "$ref": "GoogleCloudContactcenterinsightsV1SummarySuggestionSummarySection" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1SummarySuggestionSummarySection": { + "description": "A component of the generated summary.", + "id": "GoogleCloudContactcenterinsightsV1SummarySuggestionSummarySection", + "properties": { + "section": { + "description": "Required. Name of the section.", + "type": "string" + }, + "summary": { + "description": "Required. Summary text for the section.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudContactcenterinsightsV1UndeployIssueModelMetadata": { "description": "Metadata for undeploying an issue model.", "id": "GoogleCloudContactcenterinsightsV1UndeployIssueModelMetadata", @@ -4054,6 +4459,128 @@ }, "type": "object" }, + "GoogleCloudContactcenterinsightsV1alpha1AgentCoachingInstruction": { + "description": "Agent Coaching instructions that customer can configure.", + "id": "GoogleCloudContactcenterinsightsV1alpha1AgentCoachingInstruction", + "properties": { + "agentAction": { + "description": "Optional. The action that human agent should take. For example, \"apologize for the slow shipping\". If the users only want to use agent coaching for intent detection, agent_action can be empty", + "type": "string" + }, + "condition": { + "description": "Optional. The condition of the instruction. For example, \"the customer wants to cancel an order\". If the users want the instruction to be triggered unconditionally, the condition can be empty.", + "type": "string" + }, + "description": { + "description": "Optional. The detailed description of this instruction.", + "type": "string" + }, + "displayName": { + "description": "Optional. Display name for the instruction.", + "type": "string" + }, + "metadata": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Additional information attached to this instruction.", + "type": "object" + }, + "systemAction": { + "description": "Optional. The action that system should take. For example, \"call GetOrderTime with order_number={order number provided by the customer}\". If the users don't have plugins or don't want to trigger plugins, the system_action can be empty", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1AgentCoachingSuggestion": { + "description": "Suggestion for coaching agents.", + "id": "GoogleCloudContactcenterinsightsV1alpha1AgentCoachingSuggestion", + "properties": { + "agentActionSuggestions": { + "description": "Optional. Suggested actions for the agent to take.", + "items": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1AgentCoachingSuggestionAgentActionSuggestion" + }, + "type": "array" + }, + "applicableInstructions": { + "description": "Optional. Instructions applicable based on the current context.", + "items": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1AgentCoachingInstruction" + }, + "type": "array" + }, + "sampleResponses": { + "description": "Optional. Sample response for the Agent.", + "items": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1AgentCoachingSuggestionSampleResponse" + }, + "type": "array" + }, + "suggestionEval": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1AgentCoachingSuggestionAgentCoachingSuggestionEval", + "description": "Self evaluation of the suggestion." + }, + "suggestionReasoning": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1AgentCoachingSuggestionAgentCoachingSuggestionReasoning", + "description": "Reasoning for the suggestion." + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1AgentCoachingSuggestionAgentActionSuggestion": { + "description": "Actions suggested for the agent. This is based on applicable instructions.", + "id": "GoogleCloudContactcenterinsightsV1alpha1AgentCoachingSuggestionAgentActionSuggestion", + "properties": { + "agentAction": { + "description": "Optional. The suggested action for the agent.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1AgentCoachingSuggestionAgentCoachingSuggestionEval": { + "description": "Self evaluations of the suggestion.", + "id": "GoogleCloudContactcenterinsightsV1alpha1AgentCoachingSuggestionAgentCoachingSuggestionEval", + "properties": { + "actionActionSuggestionEval": { + "description": "Optional. Eval for Agent action suggestion.", + "type": "string" + }, + "sampleResponseEval": { + "description": "Optional. Eval for sample response.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1AgentCoachingSuggestionAgentCoachingSuggestionReasoning": { + "description": "Reasoning for the suggestion.", + "id": "GoogleCloudContactcenterinsightsV1alpha1AgentCoachingSuggestionAgentCoachingSuggestionReasoning", + "properties": { + "agentActionTaken": { + "description": "Optional. The actions that the agent has taken already.", + "type": "string" + }, + "issueSummary": { + "description": "Optional. Summary of the issue.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1AgentCoachingSuggestionSampleResponse": { + "description": "Sample response that the agent can use. This could be based on applicable instructions and ingested data from other systems.", + "id": "GoogleCloudContactcenterinsightsV1alpha1AgentCoachingSuggestionSampleResponse", + "properties": { + "responseText": { + "description": "Optional. Sample response for Agent in text.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudContactcenterinsightsV1alpha1Analysis": { "description": "The analysis resource.", "id": "GoogleCloudContactcenterinsightsV1alpha1Analysis", @@ -4234,11 +4761,13 @@ "description": "Default summarization model to be used.", "enum": [ "SUMMARIZATION_MODEL_UNSPECIFIED", - "BASELINE_MODEL" + "BASELINE_MODEL", + "BASELINE_MODEL_V2_0" ], "enumDescriptions": [ "Unspecified summarization model.", - "The CCAI baseline model." + "The CCAI baseline model.", + "The CCAI baseline model, V2.0." ], "type": "string" } @@ -5365,6 +5894,24 @@ }, "type": "object" }, + "GoogleCloudContactcenterinsightsV1alpha1FreeFormSuggestion": { + "description": "Suggestion generated using free form generator.", + "id": "GoogleCloudContactcenterinsightsV1alpha1FreeFormSuggestion", + "properties": { + "labels": { + "description": "Optional. Labels for the generator.", + "items": { + "type": "string" + }, + "type": "array" + }, + "response": { + "description": "Required. Free form suggestion.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudContactcenterinsightsV1alpha1GcsSource": { "description": "A Cloud Storage source of conversation data.", "id": "GoogleCloudContactcenterinsightsV1alpha1GcsSource", @@ -5380,6 +5927,162 @@ }, "type": "object" }, + "GoogleCloudContactcenterinsightsV1alpha1GeneratorSuggestion": { + "description": "Suggestion generated using a Generator.", + "id": "GoogleCloudContactcenterinsightsV1alpha1GeneratorSuggestion", + "properties": { + "agentCoachingSuggestion": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1AgentCoachingSuggestion", + "description": "Optional. Suggestion to coach the agent." + }, + "freeFormSuggestion": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1FreeFormSuggestion", + "description": "Optional. Free form suggestion." + }, + "summarySuggestion": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1SummarySuggestion", + "description": "Optional. Suggested summary." + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1GetGeneratorSuggestionResponse": { + "description": "Represents response from generators.", + "id": "GoogleCloudContactcenterinsightsV1alpha1GetGeneratorSuggestionResponse", + "properties": { + "generatorSuggestion": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1GeneratorSuggestion", + "description": "The suggestion generated from the Generator." + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1GetKnowledgeAssistResponse": { + "description": "Response for Knowledge Assist. Contains suggested query and optionally includes an answer for the query.", + "id": "GoogleCloudContactcenterinsightsV1alpha1GetKnowledgeAssistResponse", + "properties": { + "suggestedQuery": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1GetKnowledgeAssistResponseSuggestedQuery", + "description": "The query suggested based on the context. Suggestion is made only if it is different from the previous suggestion." + }, + "suggestedQueryAnswer": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1GetKnowledgeAssistResponseKnowledgeAnswer", + "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" + }, + "GoogleCloudContactcenterinsightsV1alpha1GetKnowledgeAssistResponseKnowledgeAnswer": { + "description": "Represents an answer from Knowledge. Cuurently supports FAQ and Generative answers.", + "id": "GoogleCloudContactcenterinsightsV1alpha1GetKnowledgeAssistResponseKnowledgeAnswer", + "properties": { + "answerText": { + "description": "The piece of text from the `source` that answers this suggested query.", + "type": "string" + }, + "faqSource": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1GetKnowledgeAssistResponseKnowledgeAnswerFaqSource", + "description": "Populated if the prediction came from FAQ." + }, + "generativeSource": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1GetKnowledgeAssistResponseKnowledgeAnswerGenerativeSource", + "description": "Populated if the prediction was Generative." + }, + "intentMatchingSource": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1GetKnowledgeAssistResponseKnowledgeAnswerIntentMatchingSource", + "description": "Populated if the prediction was from intent matching." + }, + "matchConfidence": { + "description": "The system's confidence score that this answer is a good match for this conversational query. The range is from 0.0 (completely uncertain) to 1.0 (completely certain).", + "format": "float", + "type": "number" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1GetKnowledgeAssistResponseKnowledgeAnswerFaqSource": { + "description": "Details about source of FAQ answer.", + "id": "GoogleCloudContactcenterinsightsV1alpha1GetKnowledgeAssistResponseKnowledgeAnswerFaqSource", + "properties": { + "document": { + "description": "Indicates which Knowledge Document this answer was extracted from. Format: `projects//knowledgeBases//documents/`.", + "type": "string" + }, + "question": { + "description": "The corresponding FAQ question.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1GetKnowledgeAssistResponseKnowledgeAnswerGenerativeSource": { + "description": "Details about source of Generative answer.", + "id": "GoogleCloudContactcenterinsightsV1alpha1GetKnowledgeAssistResponseKnowledgeAnswerGenerativeSource", + "properties": { + "snippets": { + "description": "All snippets used for this Generative Prediction, with their source URI and data.", + "items": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1GetKnowledgeAssistResponseKnowledgeAnswerGenerativeSourceSnippet" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1GetKnowledgeAssistResponseKnowledgeAnswerGenerativeSourceSnippet": { + "description": "Snippet Source for a Generative Prediction.", + "id": "GoogleCloudContactcenterinsightsV1alpha1GetKnowledgeAssistResponseKnowledgeAnswerGenerativeSourceSnippet", + "properties": { + "document": { + "description": "Indicates which Knowledge Document this snippet was extracted from. Format: `projects//knowledgeBases//documents/`.", + "type": "string" + }, + "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" + }, + "GoogleCloudContactcenterinsightsV1alpha1GetKnowledgeAssistResponseKnowledgeAnswerIntentMatchingSource": { + "description": "Details about source of Intent Matching answer.", + "id": "GoogleCloudContactcenterinsightsV1alpha1GetKnowledgeAssistResponseKnowledgeAnswerIntentMatchingSource", + "properties": { + "title": { + "description": "Title of the document.", + "type": "string" + }, + "uri": { + "description": "URI the data is sourced from.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1GetKnowledgeAssistResponseSuggestedQuery": { + "description": "Represents a suggested query.", + "id": "GoogleCloudContactcenterinsightsV1alpha1GetKnowledgeAssistResponseSuggestedQuery", + "properties": { + "queryText": { + "description": "Suggested query text.", + "type": "string" + }, + "score": { + "description": "Suggested query score.", + "format": "float", + "type": "number" + } + }, + "type": "object" + }, "GoogleCloudContactcenterinsightsV1alpha1HoldData": { "description": "The data for a hold annotation.", "id": "GoogleCloudContactcenterinsightsV1alpha1HoldData", @@ -5931,6 +6634,18 @@ "$ref": "GoogleCloudContactcenterinsightsV1alpha1FaqAnswerData", "description": "Agent Assist FAQ answer data." }, + "generatorSuggestionResult": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1GetGeneratorSuggestionResponse", + "description": "The generator suggestion result." + }, + "knowledgeAssistResult": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1GetKnowledgeAssistResponse", + "description": "The Knowledge Assist result." + }, + "knowledgeSearchResult": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1SearchKnowledgeAnswer", + "description": "The Knowledge Search result." + }, "smartComposeSuggestion": { "$ref": "GoogleCloudContactcenterinsightsV1alpha1SmartComposeSuggestionData", "description": "Agent Assist Smart Compose suggestion data." @@ -5946,6 +6661,72 @@ }, "type": "object" }, + "GoogleCloudContactcenterinsightsV1alpha1SearchKnowledgeAnswer": { + "description": "Represents a SearchKnowledge answer.", + "id": "GoogleCloudContactcenterinsightsV1alpha1SearchKnowledgeAnswer", + "properties": { + "answer": { + "description": "The piece of text from the knowledge base documents that answers the search query", + "type": "string" + }, + "answerRecord": { + "description": "The name of the answer record. Format: `projects//locations//answer Records/`", + "type": "string" + }, + "answerSources": { + "description": "All sources used to generate the answer.", + "items": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1SearchKnowledgeAnswerAnswerSource" + }, + "type": "array" + }, + "answerType": { + "description": "The type of the answer.", + "enum": [ + "ANSWER_TYPE_UNSPECIFIED", + "FAQ", + "GENERATIVE", + "INTENT" + ], + "enumDescriptions": [ + "The answer has a unspecified type.", + "The answer is from FAQ documents.", + "The answer is from generative model.", + "The answer is from intent matching." + ], + "type": "string" + }, + "confidenceScore": { + "description": "The confidence score in [0.0, 1.0] range.", + "format": "float", + "type": "number" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1SearchKnowledgeAnswerAnswerSource": { + "description": "The sources of the answers.", + "id": "GoogleCloudContactcenterinsightsV1alpha1SearchKnowledgeAnswerAnswerSource", + "properties": { + "document": { + "description": "The document from which the snippet was extracted. Format: `projects//knowledgeBases//documents/`", + "type": "string" + }, + "snippet": { + "description": "The relevant snippet of the article.", + "type": "string" + }, + "title": { + "description": "The title of the article.", + "type": "string" + }, + "uri": { + "description": "The URI of the article.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudContactcenterinsightsV1alpha1SentimentData": { "description": "The data for a sentiment annotation.", "id": "GoogleCloudContactcenterinsightsV1alpha1SentimentData", @@ -6034,6 +6815,35 @@ }, "type": "object" }, + "GoogleCloudContactcenterinsightsV1alpha1SummarySuggestion": { + "description": "Suggested summary of the conversation.", + "id": "GoogleCloudContactcenterinsightsV1alpha1SummarySuggestion", + "properties": { + "summarySections": { + "description": "Required. All the parts of generated summary.", + "items": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1SummarySuggestionSummarySection" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1SummarySuggestionSummarySection": { + "description": "A component of the generated summary.", + "id": "GoogleCloudContactcenterinsightsV1alpha1SummarySuggestionSummarySection", + "properties": { + "section": { + "description": "Required. Name of the section.", + "type": "string" + }, + "summary": { + "description": "Required. Summary text for the section.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudContactcenterinsightsV1alpha1UndeployIssueModelMetadata": { "description": "Metadata for undeploying an issue model.", "id": "GoogleCloudContactcenterinsightsV1alpha1UndeployIssueModelMetadata", diff --git a/etc/api/container/v1/container-api.json b/etc/api/container/v1/container-api.json index 61f428af09..04aae4e367 100644 --- a/etc/api/container/v1/container-api.json +++ b/etc/api/container/v1/container-api.json @@ -2540,7 +2540,7 @@ } } }, - "revision": "20240214", + "revision": "20240327", "rootUrl": "https://container.googleapis.com/", "schemas": { "AcceleratorConfig": { @@ -3022,6 +3022,24 @@ }, "type": "object" }, + "CertificateAuthorityDomainConfig": { + "description": "CertificateAuthorityDomainConfig configures one or more fully qualified domain names (FQDN) to a specific certificate.", + "id": "CertificateAuthorityDomainConfig", + "properties": { + "fqdns": { + "description": "List of fully qualified domain names (FQDN). Specifying port is supported. Wilcards are NOT supported. Examples: - my.customdomain.com - 10.0.1.2:5000", + "items": { + "type": "string" + }, + "type": "array" + }, + "gcpSecretManagerCertificateConfig": { + "$ref": "GCPSecretManagerCertificateConfig", + "description": "Google Secret Manager (GCP) certificate configuration." + } + }, + "type": "object" + }, "CheckAutopilotCompatibilityResponse": { "description": "CheckAutopilotCompatibilityResponse has a list of compatibility issues.", "id": "CheckAutopilotCompatibilityResponse", @@ -3504,6 +3522,10 @@ "$ref": "ClusterAutoscaling", "description": "Cluster-level autoscaling configuration." }, + "desiredContainerdConfig": { + "$ref": "ContainerdConfig", + "description": "The desired containerd config for the cluster." + }, "desiredCostManagementConfig": { "$ref": "CostManagementConfig", "description": "The desired configuration for the fine-grained cost management feature." @@ -3534,10 +3556,18 @@ "$ref": "DNSConfig", "description": "DNSConfig contains clusterDNS config for this cluster." }, + "desiredEnableCiliumClusterwideNetworkPolicy": { + "description": "Enable/Disable Cilium Clusterwide Network Policy for the cluster.", + "type": "boolean" + }, "desiredEnableFqdnNetworkPolicy": { "description": "Enable/Disable FQDN Network Policy for the cluster.", "type": "boolean" }, + "desiredEnableMultiNetworking": { + "description": "Enable/Disable Multi-Networking for the cluster", + "type": "boolean" + }, "desiredEnablePrivateEndpoint": { "description": "Enable/Disable private endpoint for the cluster's master.", "type": "boolean" @@ -3661,7 +3691,7 @@ }, "desiredPrivateClusterConfig": { "$ref": "PrivateClusterConfig", - "description": "The desired private cluster configuration." + "description": "The desired private cluster configuration. master_global_access_config is the only field that can be changed via this field. See also ClusterUpdate.desired_enable_private_endpoint for modifying other fields within PrivateClusterConfig." }, "desiredPrivateIpv6GoogleAccess": { "description": "The desired state of IPv6 connectivity to Google Services.", @@ -3801,6 +3831,17 @@ }, "type": "object" }, + "ContainerdConfig": { + "description": "ContainerdConfig contains configuration to customize containerd.", + "id": "ContainerdConfig", + "properties": { + "privateRegistryAccessConfig": { + "$ref": "PrivateRegistryAccessConfig", + "description": "PrivateRegistryAccessConfig is used to configure access configuration for private container registries." + } + }, + "type": "object" + }, "CostManagementConfig": { "description": "Configuration for fine-grained cost management feature.", "id": "CostManagementConfig", @@ -3871,6 +3912,10 @@ "description": "DNSConfig contains the desired set of options for configuring clusterDNS.", "id": "DNSConfig", "properties": { + "additiveVpcScopeDnsDomain": { + "description": "Optional. The domain used in Additive VPC scope.", + "type": "string" + }, "clusterDns": { "description": "cluster_dns indicates which in-cluster DNS provider should be used.", "enum": [ @@ -3927,10 +3972,49 @@ "description": "Configuration of etcd encryption.", "id": "DatabaseEncryption", "properties": { + "currentState": { + "description": "Output only. The current state of etcd encryption.", + "enum": [ + "CURRENT_STATE_UNSPECIFIED", + "CURRENT_STATE_ENCRYPTED", + "CURRENT_STATE_DECRYPTED", + "CURRENT_STATE_ENCRYPTION_PENDING", + "CURRENT_STATE_ENCRYPTION_ERROR", + "CURRENT_STATE_DECRYPTION_PENDING", + "CURRENT_STATE_DECRYPTION_ERROR" + ], + "enumDescriptions": [ + "Should never be set", + "Secrets in etcd are encrypted.", + "Secrets in etcd are stored in plain text (at etcd level) - this is unrelated to Compute Engine level full disk encryption.", + "Encryption (or re-encryption with a different CloudKMS key) of Secrets is in progress.", + "Encryption (or re-encryption with a different CloudKMS key) of Secrets in etcd encountered an error.", + "De-crypting Secrets to plain text in etcd is in progress.", + "De-crypting Secrets to plain text in etcd encountered an error." + ], + "readOnly": true, + "type": "string" + }, + "decryptionKeys": { + "description": "Output only. Keys in use by the cluster for decrypting existing objects, in addition to the key in `key_name`. Each item is a CloudKMS key resource.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, "keyName": { "description": "Name of CloudKMS key to use for the encryption of secrets in etcd. Ex. projects/my-project/locations/global/keyRings/my-ring/cryptoKeys/my-key", "type": "string" }, + "lastOperationErrors": { + "description": "Output only. Records errors seen during DatabaseEncryption update operations.", + "items": { + "$ref": "OperationError" + }, + "readOnly": true, + "type": "array" + }, "state": { "description": "The desired state of etcd encryption.", "enum": [ @@ -4066,6 +4150,17 @@ }, "type": "object" }, + "GCPSecretManagerCertificateConfig": { + "description": "GCPSecretManagerCertificateConfig configures a secret from [Google Secret Manager](https://cloud.google.com/secret-manager).", + "id": "GCPSecretManagerCertificateConfig", + "properties": { + "secretUri": { + "description": "Secret URI, in the form \"projects/$PROJECT_ID/secrets/$SECRET_NAME/versions/$VERSION\". Version can be fixed (e.g. \"2\") or \"latest\"", + "type": "string" + } + }, + "type": "object" + }, "GPUDriverInstallationConfig": { "description": "GPUDriverInstallationConfig specifies the version of GPU driver to be auto installed.", "id": "GPUDriverInstallationConfig", @@ -4097,11 +4192,13 @@ "description": "The type of GPU sharing strategy to enable on the GPU node.", "enum": [ "GPU_SHARING_STRATEGY_UNSPECIFIED", - "TIME_SHARING" + "TIME_SHARING", + "MPS" ], "enumDescriptions": [ "Default value.", - "GPUs are time-shared between containers." + "GPUs are time-shared between containers.", + "GPUs are shared between containers with NVIDIA MPS." ], "type": "string" }, @@ -4305,6 +4402,23 @@ }, "type": "object" }, + "HugepagesConfig": { + "description": "Hugepages amount in both 2m and 1g size", + "id": "HugepagesConfig", + "properties": { + "hugepageSize1g": { + "description": "Optional. Amount of 1G hugepages", + "format": "int32", + "type": "integer" + }, + "hugepageSize2m": { + "description": "Optional. Amount of 2M hugepages", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "ILBSubsettingConfig": { "description": "ILBSubsettingConfig contains the desired config of L4 Internal LoadBalancer subsetting on this cluster.", "id": "ILBSubsettingConfig", @@ -4550,6 +4664,10 @@ ], "type": "string" }, + "hugepages": { + "$ref": "HugepagesConfig", + "description": "Optional. Amounts for 2M and 1G hugepages" + }, "sysctls": { "additionalProperties": { "type": "string" @@ -4965,6 +5083,10 @@ "$ref": "DNSConfig", "description": "DNSConfig contains clusterDNS config for this cluster." }, + "enableCiliumClusterwideNetworkPolicy": { + "description": "Whether CiliumClusterwideNetworkPolicy is enabled on this cluster.", + "type": "boolean" + }, "enableFqdnNetworkPolicy": { "description": "Whether FQDN Network Policy is enabled on this cluster.", "type": "boolean" @@ -5156,6 +5278,10 @@ "$ref": "ConfidentialNodes", "description": "Confidential nodes config. All the nodes in the node pool will be Confidential VM once enabled." }, + "containerdConfig": { + "$ref": "ContainerdConfig", + "description": "Parameters for containerd customization." + }, "diskSizeGb": { "description": "Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB. If unspecified, the default disk size is 100GB.", "format": "int32", @@ -5266,6 +5392,10 @@ "$ref": "SandboxConfig", "description": "Sandbox configuration for this node." }, + "secondaryBootDiskUpdateStrategy": { + "$ref": "SecondaryBootDiskUpdateStrategy", + "description": "Secondary boot disk update strategy." + }, "secondaryBootDisks": { "description": "List of secondary boot disks attached to the nodes.", "items": { @@ -5318,6 +5448,10 @@ "description": "Subset of NodeConfig message that has defaults.", "id": "NodeConfigDefaults", "properties": { + "containerdConfig": { + "$ref": "ContainerdConfig", + "description": "Parameters for containerd customization." + }, "gcfsConfig": { "$ref": "GcfsConfig", "description": "GCFS (Google Container File System, also known as Riptide) options." @@ -5861,6 +5995,26 @@ }, "type": "object" }, + "OperationError": { + "description": "OperationError records errors seen from CloudKMS keys encountered during updates to DatabaseEncryption configuration.", + "id": "OperationError", + "properties": { + "errorMessage": { + "description": "Description of the error seen during the operation.", + "type": "string" + }, + "keyName": { + "description": "CloudKMS key resource that had the error.", + "type": "string" + }, + "timestamp": { + "description": "Time when the CloudKMS error was seen.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, "OperationProgress": { "description": "Information about operation (or operation stage) progress.", "id": "OperationProgress", @@ -6010,6 +6164,24 @@ }, "type": "object" }, + "PrivateRegistryAccessConfig": { + "description": "PrivateRegistryAccessConfig contains access configuration for private container registries.", + "id": "PrivateRegistryAccessConfig", + "properties": { + "certificateAuthorityDomainConfig": { + "description": "Private registry access configuration.", + "items": { + "$ref": "CertificateAuthorityDomainConfig" + }, + "type": "array" + }, + "enabled": { + "description": "Private registry access is enabled.", + "type": "boolean" + } + }, + "type": "object" + }, "PubSub": { "description": "Pub/Sub specific notification config.", "id": "PubSub", @@ -6309,6 +6481,12 @@ }, "type": "object" }, + "SecondaryBootDiskUpdateStrategy": { + "description": "SecondaryBootDiskUpdateStrategy is a placeholder which will be extended in the future to define different options for updating secondary boot disks.", + "id": "SecondaryBootDiskUpdateStrategy", + "properties": {}, + "type": "object" + }, "SecurityBulletinEvent": { "description": "SecurityBulletinEvent is a notification sent to customers when a security bulletin has been posted that they are vulnerable to.", "id": "SecurityBulletinEvent", @@ -7157,6 +7335,13 @@ "description": "UpdateNodePoolRequests update a node pool's image and/or version.", "id": "UpdateNodePoolRequest", "properties": { + "accelerators": { + "description": "A list of hardware accelerators to be attached to each node. See https://cloud.google.com/compute/docs/gpus for more information about support for GPUs.", + "items": { + "$ref": "AcceleratorConfig" + }, + "type": "array" + }, "clusterId": { "deprecated": true, "description": "Deprecated. The name of the cluster to upgrade. This field has been deprecated and replaced by the name field.", @@ -7166,6 +7351,10 @@ "$ref": "ConfidentialNodes", "description": "Confidential nodes config. All the nodes in the node pool will be Confidential VM once enabled." }, + "containerdConfig": { + "$ref": "ContainerdConfig", + "description": "The desired containerd config for nodes in the node pool. Initiates an upgrade operation that recreates the nodes with the new config." + }, "diskSizeGb": { "description": "Optional. The desired disk size for nodes in the node pool specified in GB. The smallest allowed disk size is 10GB. Initiates an upgrade operation that migrates the nodes in the node pool to the specified disk size.", "format": "int64", diff --git a/etc/api/container/v1beta1/container-api.json b/etc/api/container/v1beta1/container-api.json index 07c255ed48..0367b50fa7 100644 --- a/etc/api/container/v1beta1/container-api.json +++ b/etc/api/container/v1beta1/container-api.json @@ -2565,7 +2565,7 @@ } } }, - "revision": "20240214", + "revision": "20240327", "rootUrl": "https://container.googleapis.com/", "schemas": { "AcceleratorConfig": { @@ -3127,6 +3127,24 @@ }, "type": "object" }, + "CertificateAuthorityDomainConfig": { + "description": "CertificateAuthorityDomainConfig configures one or more fully qualified domain names (FQDN) to a specific certificate.", + "id": "CertificateAuthorityDomainConfig", + "properties": { + "fqdns": { + "description": "List of fully qualified domain names (FQDN). Specifying port is supported. Wilcards are NOT supported. Examples: - my.customdomain.com - 10.0.1.2:5000", + "items": { + "type": "string" + }, + "type": "array" + }, + "gcpSecretManagerCertificateConfig": { + "$ref": "GCPSecretManagerCertificateConfig", + "description": "Google Secret Manager (GCP) certificate configuration." + } + }, + "type": "object" + }, "CheckAutopilotCompatibilityResponse": { "description": "CheckAutopilotCompatibilityResponse has a list of compatibility issues.", "id": "CheckAutopilotCompatibilityResponse", @@ -3228,6 +3246,10 @@ "$ref": "ClusterTelemetry", "description": "Telemetry integration for the cluster." }, + "compliancePostureConfig": { + "$ref": "CompliancePostureConfig", + "description": "Enable/Disable Compliance Posture features for the cluster." + }, "conditions": { "description": "Which conditions caused the current cluster state.", "items": { @@ -3479,6 +3501,10 @@ "$ref": "ResourceUsageExportConfig", "description": "Configuration for exporting resource usages. Resource usage export is disabled when this config unspecified." }, + "secretManagerConfig": { + "$ref": "SecretManagerConfig", + "description": "Secret CSI driver configuration." + }, "securityPostureConfig": { "$ref": "SecurityPostureConfig", "description": "Enable/Disable Security Posture API features for the cluster." @@ -3675,6 +3701,10 @@ "$ref": "ClusterTelemetry", "description": "The desired telemetry integration for the cluster." }, + "desiredContainerdConfig": { + "$ref": "ContainerdConfig", + "description": "The desired containerd config for the cluster." + }, "desiredCostManagementConfig": { "$ref": "CostManagementConfig", "description": "The desired configuration for the fine-grained cost management feature." @@ -3705,10 +3735,18 @@ "$ref": "DNSConfig", "description": "DNSConfig contains clusterDNS config for this cluster." }, + "desiredEnableCiliumClusterwideNetworkPolicy": { + "description": "Enable/Disable Cilium Clusterwide Network Policy for the cluster.", + "type": "boolean" + }, "desiredEnableFqdnNetworkPolicy": { "description": "Enable/Disable FQDN Network Policy for the cluster.", "type": "boolean" }, + "desiredEnableMultiNetworking": { + "description": "Enable/Disable Multi-Networking for the cluster", + "type": "boolean" + }, "desiredEnablePrivateEndpoint": { "description": "Enable/Disable private endpoint for the cluster's master.", "type": "boolean" @@ -3844,7 +3882,7 @@ }, "desiredPrivateClusterConfig": { "$ref": "PrivateClusterConfig", - "description": "The desired private cluster configuration." + "description": "The desired private cluster configuration. master_global_access_config is the only field that can be changed via this field. See also ClusterUpdate.desired_enable_private_endpoint for modifying other fields within PrivateClusterConfig." }, "desiredPrivateIpv6GoogleAccess": { "description": "The desired state of IPv6 connectivity to Google Services.", @@ -3875,6 +3913,10 @@ "$ref": "ResourceUsageExportConfig", "description": "The desired configuration for exporting resource usage." }, + "desiredSecretManagerConfig": { + "$ref": "SecretManagerConfig", + "description": "Enable/Disable Secret Manager Config." + }, "desiredSecurityPostureConfig": { "$ref": "SecurityPostureConfig", "description": "Enable/Disable Security Posture API features for the cluster." @@ -3929,6 +3971,11 @@ "description": "The current etag of the cluster. If an etag is provided and does not match the current etag of the cluster, update will be blocked and an ABORTED error will be returned.", "type": "string" }, + "privateClusterConfig": { + "$ref": "PrivateClusterConfig", + "deprecated": true, + "description": "The desired private cluster configuration. Has no effect. Use desired_private_cluster_config instead." + }, "removedAdditionalPodRangesConfig": { "$ref": "AdditionalPodRangesConfig", "description": "The additional pod ranges that are to be removed from the cluster. The pod ranges specified here must have been specified earlier in the 'additional_pod_ranges_config' argument." @@ -3968,6 +4015,45 @@ "properties": {}, "type": "object" }, + "CompliancePostureConfig": { + "description": "CompliancePostureConfig defines the settings needed to enable/disable features for the Compliance Posture.", + "id": "CompliancePostureConfig", + "properties": { + "complianceStandards": { + "description": "List of enabled compliance standards.", + "items": { + "$ref": "ComplianceStandard" + }, + "type": "array" + }, + "mode": { + "description": "Defines the enablement mode for Compliance Posture.", + "enum": [ + "MODE_UNSPECIFIED", + "DISABLED", + "ENABLED" + ], + "enumDescriptions": [ + "Default value not specified.", + "Disables Compliance Posture features on the cluster.", + "Enables Compliance Posture features on the cluster." + ], + "type": "string" + } + }, + "type": "object" + }, + "ComplianceStandard": { + "description": "Defines the details of a compliance standard.", + "id": "ComplianceStandard", + "properties": { + "standard": { + "description": "Name of the compliance standard.", + "type": "string" + } + }, + "type": "object" + }, "ConfidentialNodes": { "description": "ConfidentialNodes is configuration for the confidential nodes feature, which makes nodes run on confidential VMs.", "id": "ConfidentialNodes", @@ -4001,6 +4087,17 @@ }, "type": "object" }, + "ContainerdConfig": { + "description": "ContainerdConfig contains configuration to customize containerd.", + "id": "ContainerdConfig", + "properties": { + "privateRegistryAccessConfig": { + "$ref": "PrivateRegistryAccessConfig", + "description": "PrivateRegistryAccessConfig is used to configure access configuration for private container registries." + } + }, + "type": "object" + }, "CostManagementConfig": { "description": "Configuration for fine-grained cost management feature.", "id": "CostManagementConfig", @@ -4071,6 +4168,10 @@ "description": "DNSConfig contains the desired set of options for configuring clusterDNS.", "id": "DNSConfig", "properties": { + "additiveVpcScopeDnsDomain": { + "description": "Optional. The domain used in Additive VPC scope.", + "type": "string" + }, "clusterDns": { "description": "cluster_dns indicates which in-cluster DNS provider should be used.", "enum": [ @@ -4127,10 +4228,49 @@ "description": "Configuration of etcd encryption.", "id": "DatabaseEncryption", "properties": { + "currentState": { + "description": "Output only. The current state of etcd encryption.", + "enum": [ + "CURRENT_STATE_UNSPECIFIED", + "CURRENT_STATE_ENCRYPTED", + "CURRENT_STATE_DECRYPTED", + "CURRENT_STATE_ENCRYPTION_PENDING", + "CURRENT_STATE_ENCRYPTION_ERROR", + "CURRENT_STATE_DECRYPTION_PENDING", + "CURRENT_STATE_DECRYPTION_ERROR" + ], + "enumDescriptions": [ + "Should never be set", + "Secrets in etcd are encrypted.", + "Secrets in etcd are stored in plain text (at etcd level) - this is unrelated to Compute Engine level full disk encryption.", + "Encryption (or re-encryption with a different CloudKMS key) of Secrets is in progress.", + "Encryption (or re-encryption with a different CloudKMS key) of Secrets in etcd encountered an error.", + "De-crypting Secrets to plain text in etcd is in progress.", + "De-crypting Secrets to plain text in etcd encountered an error." + ], + "readOnly": true, + "type": "string" + }, + "decryptionKeys": { + "description": "Output only. Keys in use by the cluster for decrypting existing objects, in addition to the key in `key_name`. Each item is a CloudKMS key resource.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, "keyName": { "description": "Name of CloudKMS key to use for the encryption of secrets in etcd. Ex. projects/my-project/locations/global/keyRings/my-ring/cryptoKeys/my-key", "type": "string" }, + "lastOperationErrors": { + "description": "Output only. Records errors seen during DatabaseEncryption update operations.", + "items": { + "$ref": "OperationError" + }, + "readOnly": true, + "type": "array" + }, "state": { "description": "The desired state of etcd encryption.", "enum": [ @@ -4300,6 +4440,17 @@ }, "type": "object" }, + "GCPSecretManagerCertificateConfig": { + "description": "GCPSecretManagerCertificateConfig configures a secret from [Google Secret Manager](https://cloud.google.com/secret-manager).", + "id": "GCPSecretManagerCertificateConfig", + "properties": { + "secretUri": { + "description": "Secret URI, in the form \"projects/$PROJECT_ID/secrets/$SECRET_NAME/versions/$VERSION\". Version can be fixed (e.g. \"2\") or \"latest\"", + "type": "string" + } + }, + "type": "object" + }, "GPUDriverInstallationConfig": { "description": "GPUDriverInstallationConfig specifies the version of GPU driver to be auto installed.", "id": "GPUDriverInstallationConfig", @@ -4331,11 +4482,13 @@ "description": "The type of GPU sharing strategy to enable on the GPU node.", "enum": [ "GPU_SHARING_STRATEGY_UNSPECIFIED", - "TIME_SHARING" + "TIME_SHARING", + "MPS" ], "enumDescriptions": [ "Default value.", - "GPUs are time-shared between containers." + "GPUs are time-shared between containers.", + "GPUs are shared between containers with NVIDIA MPS." ], "type": "string" }, @@ -4564,6 +4717,23 @@ }, "type": "object" }, + "HugepagesConfig": { + "description": "Hugepages amount in both 2m and 1g size", + "id": "HugepagesConfig", + "properties": { + "hugepageSize1g": { + "description": "Optional. Amount of 1G hugepages", + "format": "int32", + "type": "integer" + }, + "hugepageSize2m": { + "description": "Optional. Amount of 2M hugepages", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "ILBSubsettingConfig": { "description": "ILBSubsettingConfig contains the desired config of L4 Internal LoadBalancer subsetting on this cluster.", "id": "ILBSubsettingConfig", @@ -4850,6 +5020,10 @@ ], "type": "string" }, + "hugepages": { + "$ref": "HugepagesConfig", + "description": "Optional. Amounts for 2M and 1G hugepages" + }, "sysctls": { "additionalProperties": { "type": "string" @@ -5333,6 +5507,10 @@ "$ref": "DNSConfig", "description": "DNSConfig contains clusterDNS config for this cluster." }, + "enableCiliumClusterwideNetworkPolicy": { + "description": "Whether CiliumClusterWideNetworkPolicy is enabled on this cluster.", + "type": "boolean" + }, "enableFqdnNetworkPolicy": { "description": "Whether FQDN Network Policy is enabled on this cluster.", "type": "boolean" @@ -5536,6 +5714,10 @@ "$ref": "ConfidentialNodes", "description": "Confidential nodes config. All the nodes in the node pool will be Confidential VM once enabled." }, + "containerdConfig": { + "$ref": "ContainerdConfig", + "description": "Parameters for containerd customization." + }, "diskSizeGb": { "description": "Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB. If unspecified, the default disk size is 100GB.", "format": "int32", @@ -5654,6 +5836,10 @@ "$ref": "SandboxConfig", "description": "Sandbox configuration for this node." }, + "secondaryBootDiskUpdateStrategy": { + "$ref": "SecondaryBootDiskUpdateStrategy", + "description": "Secondary boot disk update strategy." + }, "secondaryBootDisks": { "description": "List of secondary boot disks attached to the nodes.", "items": { @@ -5706,6 +5892,10 @@ "description": "Subset of NodeConfig message that has defaults.", "id": "NodeConfigDefaults", "properties": { + "containerdConfig": { + "$ref": "ContainerdConfig", + "description": "Parameters for containerd customization." + }, "gcfsConfig": { "$ref": "GcfsConfig", "description": "GCFS (Google Container File System, also known as Riptide) options." @@ -6253,6 +6443,26 @@ }, "type": "object" }, + "OperationError": { + "description": "OperationError records errors seen from CloudKMS keys encountered during updates to DatabaseEncryption configuration.", + "id": "OperationError", + "properties": { + "errorMessage": { + "description": "Description of the error seen during the operation.", + "type": "string" + }, + "keyName": { + "description": "CloudKMS key resource that had the error.", + "type": "string" + }, + "timestamp": { + "description": "Time when the CloudKMS error was seen.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, "OperationProgress": { "description": "Information about operation (or operation stage) progress.", "id": "OperationProgress", @@ -6446,6 +6656,24 @@ }, "type": "object" }, + "PrivateRegistryAccessConfig": { + "description": "PrivateRegistryAccessConfig contains access configuration for private container registries.", + "id": "PrivateRegistryAccessConfig", + "properties": { + "certificateAuthorityDomainConfig": { + "description": "Private registry access configuration.", + "items": { + "$ref": "CertificateAuthorityDomainConfig" + }, + "type": "array" + }, + "enabled": { + "description": "Private registry access is enabled.", + "type": "boolean" + } + }, + "type": "object" + }, "ProtectConfig": { "description": "ProtectConfig defines the flags needed to enable/disable features for the Protect API.", "id": "ProtectConfig", @@ -6783,6 +7011,23 @@ }, "type": "object" }, + "SecondaryBootDiskUpdateStrategy": { + "description": "SecondaryBootDiskUpdateStrategy is a placeholder which will be extended in the future to define different options for updating secondary boot disks.", + "id": "SecondaryBootDiskUpdateStrategy", + "properties": {}, + "type": "object" + }, + "SecretManagerConfig": { + "description": "SecretManagerConfig is config for secret manager enablement.", + "id": "SecretManagerConfig", + "properties": { + "enabled": { + "description": "Whether the cluster is configured to use secret manager CSI component.", + "type": "boolean" + } + }, + "type": "object" + }, "SecurityBulletinEvent": { "description": "SecurityBulletinEvent is a notification sent to customers when a security bulletin has been posted that they are vulnerable to.", "id": "SecurityBulletinEvent", @@ -7657,6 +7902,13 @@ "description": "SetNodePoolVersionRequest updates the version of a node pool.", "id": "UpdateNodePoolRequest", "properties": { + "accelerators": { + "description": "A list of hardware accelerators to be attached to each node. See https://cloud.google.com/compute/docs/gpus for more information about support for GPUs.", + "items": { + "$ref": "AcceleratorConfig" + }, + "type": "array" + }, "clusterId": { "deprecated": true, "description": "Required. Deprecated. The name of the cluster to upgrade. This field has been deprecated and replaced by the name field.", @@ -7666,6 +7918,10 @@ "$ref": "ConfidentialNodes", "description": "Confidential nodes config. All the nodes in the node pool will be Confidential VM once enabled." }, + "containerdConfig": { + "$ref": "ContainerdConfig", + "description": "The desired containerd config for nodes in the node pool. Initiates an upgrade operation that recreates the nodes with the new config." + }, "diskSizeGb": { "description": "Optional. The desired disk size for nodes in the node pool. Initiates an upgrade operation that migrates the nodes in the node pool to the specified disk size.", "format": "int64", diff --git a/etc/api/containeranalysis/v1/containeranalysis-api.json b/etc/api/containeranalysis/v1/containeranalysis-api.json index 36aee04d5a..fc60f28af3 100644 --- a/etc/api/containeranalysis/v1/containeranalysis-api.json +++ b/etc/api/containeranalysis/v1/containeranalysis-api.json @@ -107,6 +107,284 @@ "resources": { "projects": { "resources": { + "locations": { + "resources": { + "notes": { + "methods": { + "get": { + "description": "Gets the specified note.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/notes/{notesId}", + "httpMethod": "GET", + "id": "containeranalysis.projects.locations.notes.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the note in the form of `projects/[PROVIDER_ID]/notes/[NOTE_ID]`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/notes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Note" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists notes for the specified project.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/notes", + "httpMethod": "GET", + "id": "containeranalysis.projects.locations.notes.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "The filter expression.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Number of notes to return in the list. Must be positive. Max allowed page size is 1000. If not specified, page size defaults to 20.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Token to provide to skip to a particular spot in the list.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The name of the project to list notes for in the form of `projects/[PROJECT_ID]`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/notes", + "response": { + "$ref": "ListNotesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, + "resources": { + "occurrences": { + "methods": { + "list": { + "description": "Lists occurrences referencing the specified note. Provider projects can use this method to get all occurrences across consumer projects referencing the specified note.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/notes/{notesId}/occurrences", + "httpMethod": "GET", + "id": "containeranalysis.projects.locations.notes.occurrences.list", + "parameterOrder": [ + "name" + ], + "parameters": { + "filter": { + "description": "The filter expression.", + "location": "query", + "type": "string" + }, + "name": { + "description": "Required. The name of the note to list occurrences for in the form of `projects/[PROVIDER_ID]/notes/[NOTE_ID]`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/notes/[^/]+$", + "required": true, + "type": "string" + }, + "pageSize": { + "description": "Number of occurrences to return in the list.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Token to provide to skip to a particular spot in the list.", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}/occurrences", + "response": { + "$ref": "ListNoteOccurrencesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + }, + "occurrences": { + "methods": { + "get": { + "description": "Gets the specified occurrence.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/occurrences/{occurrencesId}", + "httpMethod": "GET", + "id": "containeranalysis.projects.locations.occurrences.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the occurrence in the form of `projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID]`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/occurrences/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Occurrence" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "getNotes": { + "description": "Gets the note attached to the specified occurrence. Consumer projects can use this method to get a note that belongs to a provider project.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/occurrences/{occurrencesId}/notes", + "httpMethod": "GET", + "id": "containeranalysis.projects.locations.occurrences.getNotes", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the occurrence in the form of `projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID]`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/occurrences/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}/notes", + "response": { + "$ref": "Note" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "getVulnerabilitySummary": { + "description": "Gets a summary of the number and severity of occurrences.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/occurrences:vulnerabilitySummary", + "httpMethod": "GET", + "id": "containeranalysis.projects.locations.occurrences.getVulnerabilitySummary", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "The filter expression.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The name of the project to get a vulnerability summary for in the form of `projects/[PROJECT_ID]`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/occurrences:vulnerabilitySummary", + "response": { + "$ref": "VulnerabilityOccurrencesSummary" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists occurrences for the specified project.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/occurrences", + "httpMethod": "GET", + "id": "containeranalysis.projects.locations.occurrences.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "The filter expression.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Number of occurrences to return in the list. Must be positive. Max allowed page size is 1000. If not specified, page size defaults to 20.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Token to provide to skip to a particular spot in the list.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The name of the project to list occurrences for in the form of `projects/[PROJECT_ID]`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/occurrences", + "response": { + "$ref": "ListOccurrencesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "resources": { + "methods": { + "exportSBOM": { + "description": "Generates an SBOM for the given resource.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/resources/{resourcesId}:exportSBOM", + "httpMethod": "POST", + "id": "containeranalysis.projects.locations.resources.exportSBOM", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the resource in the form of `projects/[PROJECT_ID]/resources/[RESOURCE_URL]`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/resources/.*$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:exportSBOM", + "request": { + "$ref": "ExportSBOMRequest" + }, + "response": { + "$ref": "ExportSBOMResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + }, "notes": { "methods": { "batchCreate": { @@ -787,7 +1065,7 @@ } } }, - "revision": "20240223", + "revision": "20240322", "rootUrl": "https://containeranalysis.googleapis.com/", "schemas": { "AliasContext": { @@ -1766,6 +2044,9 @@ "description": "A description about this compliance check.", "type": "string" }, + "impact": { + "type": "string" + }, "rationale": { "description": "A rationale for the existence of this compliance check.", "type": "string" @@ -2347,6 +2628,14 @@ "E2_HIGHCPU_32", "E2_MEDIUM" ], + "enumDeprecated": [ + false, + true, + true, + false, + false, + false + ], "enumDescriptions": [ "Standard machine type.", "Highcpu machine with 8 CPUs.", diff --git a/etc/api/containeranalysis/v1alpha1/containeranalysis-api.json b/etc/api/containeranalysis/v1alpha1/containeranalysis-api.json index dd55418f73..d979589ee8 100644 --- a/etc/api/containeranalysis/v1alpha1/containeranalysis-api.json +++ b/etc/api/containeranalysis/v1alpha1/containeranalysis-api.json @@ -1233,7 +1233,7 @@ } } }, - "revision": "20240223", + "revision": "20240322", "rootUrl": "https://containeranalysis.googleapis.com/", "schemas": { "AnalysisCompleted": { @@ -2015,6 +2015,10 @@ "description": "A description about this compliance check.", "type": "string" }, + "impact": { + "description": "Potential impact of the suggested remediation", + "type": "string" + }, "rationale": { "description": "A rationale for the existence of this compliance check.", "type": "string" @@ -2598,6 +2602,14 @@ "E2_HIGHCPU_32", "E2_MEDIUM" ], + "enumDeprecated": [ + false, + true, + true, + false, + false, + false + ], "enumDescriptions": [ "Standard machine type.", "Highcpu machine with 8 CPUs.", diff --git a/etc/api/containeranalysis/v1beta1/containeranalysis-api.json b/etc/api/containeranalysis/v1beta1/containeranalysis-api.json index 4a847df842..6e027c3693 100644 --- a/etc/api/containeranalysis/v1beta1/containeranalysis-api.json +++ b/etc/api/containeranalysis/v1beta1/containeranalysis-api.json @@ -107,6 +107,312 @@ "resources": { "projects": { "resources": { + "locations": { + "resources": { + "notes": { + "methods": { + "get": { + "description": "Gets the specified note.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/notes/{notesId}", + "httpMethod": "GET", + "id": "containeranalysis.projects.locations.notes.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the note in the form of `projects/[PROVIDER_ID]/notes/[NOTE_ID]`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/notes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "response": { + "$ref": "Note" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists notes for the specified project.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/notes", + "httpMethod": "GET", + "id": "containeranalysis.projects.locations.notes.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "The filter expression.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Number of notes to return in the list. Must be positive. Max allowed page size is 1000. If not specified, page size defaults to 20.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Token to provide to skip to a particular spot in the list.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The name of the project to list notes for in the form of `projects/[PROJECT_ID]`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+parent}/notes", + "response": { + "$ref": "ListNotesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, + "resources": { + "occurrences": { + "methods": { + "list": { + "description": "Lists occurrences referencing the specified note. Provider projects can use this method to get all occurrences across consumer projects referencing the specified note.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/notes/{notesId}/occurrences", + "httpMethod": "GET", + "id": "containeranalysis.projects.locations.notes.occurrences.list", + "parameterOrder": [ + "name" + ], + "parameters": { + "filter": { + "description": "The filter expression.", + "location": "query", + "type": "string" + }, + "name": { + "description": "Required. The name of the note to list occurrences for in the form of `projects/[PROVIDER_ID]/notes/[NOTE_ID]`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/notes/[^/]+$", + "required": true, + "type": "string" + }, + "pageSize": { + "description": "Number of occurrences to return in the list.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Token to provide to skip to a particular spot in the list.", + "location": "query", + "type": "string" + } + }, + "path": "v1beta1/{+name}/occurrences", + "response": { + "$ref": "ListNoteOccurrencesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + }, + "occurrences": { + "methods": { + "get": { + "description": "Gets the specified occurrence.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/occurrences/{occurrencesId}", + "httpMethod": "GET", + "id": "containeranalysis.projects.locations.occurrences.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the occurrence in the form of `projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID]`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/occurrences/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "response": { + "$ref": "Occurrence" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "getNotes": { + "description": "Gets the note attached to the specified occurrence. Consumer projects can use this method to get a note that belongs to a provider project.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/occurrences/{occurrencesId}/notes", + "httpMethod": "GET", + "id": "containeranalysis.projects.locations.occurrences.getNotes", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the occurrence in the form of `projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID]`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/occurrences/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}/notes", + "response": { + "$ref": "Note" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "getVulnerabilitySummary": { + "description": "Gets a summary of the number and severity of occurrences.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/occurrences:vulnerabilitySummary", + "httpMethod": "GET", + "id": "containeranalysis.projects.locations.occurrences.getVulnerabilitySummary", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "The filter expression.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The name of the project to get a vulnerability summary for in the form of `projects/[PROJECT_ID]`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+parent}/occurrences:vulnerabilitySummary", + "response": { + "$ref": "VulnerabilityOccurrencesSummary" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists occurrences for the specified project.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/occurrences", + "httpMethod": "GET", + "id": "containeranalysis.projects.locations.occurrences.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "The filter expression.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Number of occurrences to return in the list. Must be positive. Max allowed page size is 1000. If not specified, page size defaults to 20.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Token to provide to skip to a particular spot in the list.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The name of the project to list occurrences for in the form of `projects/[PROJECT_ID]`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+parent}/occurrences", + "response": { + "$ref": "ListOccurrencesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "resources": { + "methods": { + "exportSBOM": { + "description": "Generates an SBOM and other dependency information for the given resource.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/resources/{resourcesId}:exportSBOM", + "httpMethod": "POST", + "id": "containeranalysis.projects.locations.resources.exportSBOM", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the resource in the form of `projects/[PROJECT_ID]/resources/[RESOURCE_URL]`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/resources/.*$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}:exportSBOM", + "request": { + "$ref": "ExportSBOMRequest" + }, + "response": { + "$ref": "ExportSBOMResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "generatePackagesSummary": { + "description": "Gets a summary of the packages within a given resource.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/resources/{resourcesId}:generatePackagesSummary", + "httpMethod": "POST", + "id": "containeranalysis.projects.locations.resources.generatePackagesSummary", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the resource to get a packages summary for in the form of `projects/[PROJECT_ID]/resources/[RESOURCE_URL]`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/resources/.*$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}:generatePackagesSummary", + "request": { + "$ref": "GeneratePackagesSummaryRequest" + }, + "response": { + "$ref": "PackagesSummaryResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + }, "notes": { "methods": { "batchCreate": { @@ -815,7 +1121,7 @@ } } }, - "revision": "20240223", + "revision": "20240322", "rootUrl": "https://containeranalysis.googleapis.com/", "schemas": { "AliasContext": { @@ -2282,6 +2588,14 @@ "E2_HIGHCPU_32", "E2_MEDIUM" ], + "enumDeprecated": [ + false, + true, + true, + false, + false, + false + ], "enumDescriptions": [ "Standard machine type.", "Highcpu machine with 8 CPUs.", diff --git a/etc/api/content/v2.1/content-api.json b/etc/api/content/v2.1/content-api.json index 3f167d125f..46424dce81 100644 --- a/etc/api/content/v2.1/content-api.json +++ b/etc/api/content/v2.1/content-api.json @@ -2838,6 +2838,39 @@ "scopes": [ "https://www.googleapis.com/auth/content" ] + }, + "triggeraction": { + "description": "Start an action. The action can be requested by merchants in third-party application. Before merchants can request the action, the third-party application needs to show them action specific content and display a user input form. The action can be successfully started only once all `required` inputs are provided. If any `required` input is missing, or invalid value was provided, the service will return 400 error. Validation errors will contain Ids for all problematic field together with translated, human readable error messages that can be shown to the user.", + "flatPath": "{merchantId}/merchantsupport/triggeraction", + "httpMethod": "POST", + "id": "content.merchantsupport.triggeraction", + "parameterOrder": [ + "merchantId" + ], + "parameters": { + "languageCode": { + "description": "Optional. Language code [IETF BCP 47 syntax](https://tools.ietf.org/html/bcp47) used to localize the response. If not set, the result will be in default language `en-US`.", + "location": "query", + "type": "string" + }, + "merchantId": { + "description": "Required. The ID of the merchant's account.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "{merchantId}/merchantsupport/triggeraction", + "request": { + "$ref": "TriggerActionPayload" + }, + "response": { + "$ref": "TriggerActionResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/content" + ] } } }, @@ -6186,7 +6219,7 @@ } } }, - "revision": "20240227", + "revision": "20240417", "rootUrl": "https://shoppingcontent.googleapis.com/", "schemas": { "Account": { @@ -6982,7 +7015,7 @@ "type": "boolean" }, "reportingManager": { - "description": "Whether user is a reporting manager.", + "description": "Whether user is a reporting manager. This role is equivalent to the Performance and insights role in Merchant Center.", "type": "boolean" } }, @@ -7485,6 +7518,10 @@ "$ref": "BuiltInSimpleAction", "description": "Action implemented and performed in (your) third-party application. The application should point the merchant to the place, where they can access the corresponding functionality or provide instructions, if the specific functionality is not available." }, + "builtinUserInputAction": { + "$ref": "BuiltInUserInputAction", + "description": "Action implemented and performed in (your) third-party application. The application needs to show an additional content and input form to the merchant as specified for given action. They can trigger the action only when they provided all required inputs." + }, "buttonLabel": { "description": "Label of the action button.", "type": "string" @@ -7507,6 +7544,62 @@ }, "type": "object" }, + "ActionFlow": { + "description": "Flow that can be selected for an action. When merchant selects a flow, application should open a dialog with more information and input form.", + "id": "ActionFlow", + "properties": { + "dialogButtonLabel": { + "description": "Label for the button to trigger the action from the action dialog. For example: \"Request review\"", + "type": "string" + }, + "dialogCallout": { + "$ref": "Callout", + "description": "Important message to be highlighted in the request dialog. For example: \"You can only request a review for disagreeing with this issue once. If it's not approved, you'll need to fix the issue and wait a few days before you can request another review.\"" + }, + "dialogMessage": { + "$ref": "TextWithTooltip", + "description": "Message displayed in the request dialog. For example: \"Make sure you've fixed all your country-specific issues. If not, you may have to wait 7 days to request another review\". There may be an more information to be shown in a tooltip." + }, + "dialogTitle": { + "description": "Title of the request dialog. For example: \"Before you request a review\"", + "type": "string" + }, + "id": { + "description": "Not for display but need to be sent back for the selected action flow.", + "type": "string" + }, + "inputs": { + "description": "A list of input fields.", + "items": { + "$ref": "InputField" + }, + "type": "array" + }, + "label": { + "description": "Text value describing the intent for the action flow. It can be used as an input label if merchant needs to pick one of multiple flows. For example: \"I disagree with the issue\"", + "type": "string" + } + }, + "type": "object" + }, + "ActionInput": { + "description": "Input provided by the merchant.", + "id": "ActionInput", + "properties": { + "actionFlowId": { + "description": "Required. Id of the selected action flow.", + "type": "string" + }, + "inputValues": { + "description": "Required. Values for input fields.", + "items": { + "$ref": "InputValue" + }, + "type": "array" + } + }, + "type": "object" + }, "ActionReason": { "description": "A single reason why the action is not available.", "id": "ActionReason", @@ -7855,6 +7948,24 @@ }, "type": "object" }, + "BuiltInUserInputAction": { + "description": "Action that is implemented and performed in (your) third-party application. The application needs to show an additional content and input form to the merchant. They can start the action only when they provided all required inputs. The application will request processing of the action by calling the [triggeraction method](https://developers.google.com/shopping-content/reference/rest/v2.1/merchantsupport/triggeraction).", + "id": "BuiltInUserInputAction", + "properties": { + "actionContext": { + "description": "Internal details. Not for display but need to be sent back when triggering the action.", + "type": "string" + }, + "flows": { + "description": "Actions may provide multiple different flows. Merchant selects one that fits best to their intent. Selecting the flow is the first step in user's interaction with the action. It affects what input fields will be available and required and also how the request will be processed.", + "items": { + "$ref": "ActionFlow" + }, + "type": "array" + } + }, + "type": "object" + }, "BusinessDayConfig": { "id": "BusinessDayConfig", "properties": { @@ -7966,6 +8077,33 @@ }, "type": "object" }, + "Callout": { + "description": "An important message that should be highlighted. Usually displayed as a banner.", + "id": "Callout", + "properties": { + "fullMessage": { + "$ref": "TextWithTooltip", + "description": "A full message that needs to be shown to the merchant." + }, + "styleHint": { + "description": "Can be used to render messages with different severity in different styles. Snippets off all types contain important information that should be displayed to merchants.", + "enum": [ + "CALLOUT_STYLE_HINT_UNSPECIFIED", + "ERROR", + "WARNING", + "INFO" + ], + "enumDescriptions": [ + "Default value. Will never be provided by the API.", + "The most important type of information highlighting problems, like an unsuccessful outcome of previously requested actions.", + "Information warning about pending problems, risks or deadlines.", + "Default severity for important information like pending status of previously requested action or cooldown for re-review." + ], + "type": "string" + } + }, + "type": "object" + }, "CaptureOrderRequest": { "description": "Request message for the CaptureOrder method.", "id": "CaptureOrderRequest", @@ -8841,7 +8979,7 @@ "type": "string" }, "excludedDestinations": { - "description": "The list of destinations to exclude for this target (corresponds to cleared check boxes in Merchant Center). Products that are excluded from all destinations for more than 7 days are automatically deleted.", + "description": "The list of [destinations to exclude](//support.google.com/merchants/answer/6324486) for this target (corresponds to cleared check boxes in Merchant Center). Products that are excluded from all destinations for more than 7 days are automatically deleted.", "items": { "type": "string" }, @@ -8852,7 +8990,7 @@ "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`.", + "description": "The list of [destinations to include](//support.google.com/merchants/answer/7501026) for this target (corresponds to checked check boxes in Merchant Center). Default destinations are always included unless provided in `excludedDestinations`.", "items": { "type": "string" }, @@ -9495,6 +9633,21 @@ }, "type": "object" }, + "FreeShippingThreshold": { + "description": "Conditions to be met for a product to have free shipping.", + "id": "FreeShippingThreshold", + "properties": { + "country": { + "description": "Required. The [CLDR territory code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml) of the country to which an item will ship.", + "type": "string" + }, + "priceThreshold": { + "$ref": "Price", + "description": "Required. The minimum product price for the shipping cost to become free. Represented as a number." + } + }, + "type": "object" + }, "GenerateRecommendationsResponse": { "description": "Response containing generated recommendations.", "id": "GenerateRecommendationsResponse", @@ -9677,6 +9830,165 @@ }, "type": "object" }, + "InputField": { + "description": "Input field that needs to be available to the merchant. If the field is marked as required, then a value needs to be provided for a successful processing of the request.", + "id": "InputField", + "properties": { + "checkboxInput": { + "$ref": "InputFieldCheckboxInput", + "description": "Input field to provide a boolean value. Corresponds to the [html input type=checkbox](https://www.w3.org/TR/2012/WD-html-markup-20121025/input.checkbox.html#input.checkbox)." + }, + "choiceInput": { + "$ref": "InputFieldChoiceInput", + "description": "Input field to select one of the offered choices. Corresponds to the [html input type=radio](https://www.w3.org/TR/2012/WD-html-markup-20121025/input.radio.html#input.radio)." + }, + "id": { + "description": "Not for display but need to be sent back for the given input field.", + "type": "string" + }, + "label": { + "$ref": "TextWithTooltip", + "description": "Input field label. There may be more information to be shown in a tooltip." + }, + "required": { + "description": "Whether the field is required. The action button needs to stay disabled till values for all required fields are provided.", + "type": "boolean" + }, + "textInput": { + "$ref": "InputFieldTextInput", + "description": "Input field to provide text information. Corresponds to the [html input type=text](https://www.w3.org/TR/2012/WD-html-markup-20121025/input.text.html#input.text) or [html textarea](https://www.w3.org/TR/2012/WD-html-markup-20121025/textarea.html#textarea)." + } + }, + "type": "object" + }, + "InputFieldCheckboxInput": { + "description": "Checkbox input allows merchants to provide a boolean value. Corresponds to the [html input type=checkbox](https://www.w3.org/TR/2012/WD-html-markup-20121025/input.checkbox.html#input.checkbox). If merchant checks the box, the input value for the field is `true`, otherwise it is `false`. This type of input is often used as a confirmation that the merchant completed required steps before they are allowed to start the action. In such a case, the input field is marked as required and the button to trigger the action should stay disabled until the merchant checks the box.", + "id": "InputFieldCheckboxInput", + "properties": {}, + "type": "object" + }, + "InputFieldChoiceInput": { + "description": "Choice input allows merchants to select one of the offered choices. Some choices may be linked to additional input fields that should be displayed under or next to the choice option. The value for the additional input field needs to be provided only when the specific choice is selected by the merchant. For example, additional input field can be hidden or disabled until the merchant selects the specific choice.", + "id": "InputFieldChoiceInput", + "properties": { + "options": { + "description": "A list of choices. Only one option can be selected.", + "items": { + "$ref": "InputFieldChoiceInputChoiceInputOption" + }, + "type": "array" + } + }, + "type": "object" + }, + "InputFieldChoiceInputChoiceInputOption": { + "description": "A choice that merchant can select.", + "id": "InputFieldChoiceInputChoiceInputOption", + "properties": { + "additionalInput": { + "$ref": "InputField", + "description": "Input that should be displayed when this option is selected. The additional input will not contain a `ChoiceInput`." + }, + "id": { + "description": "Not for display but need to be sent back for the selected choice option.", + "type": "string" + }, + "label": { + "$ref": "TextWithTooltip", + "description": "Short description of the choice option. There may be more information to be shown as a tooltip." + } + }, + "type": "object" + }, + "InputFieldTextInput": { + "description": "Text input allows merchants to provide a text value.", + "id": "InputFieldTextInput", + "properties": { + "additionalInfo": { + "$ref": "TextWithTooltip", + "description": "Additional info regarding the field to be displayed to merchant. For example, warning to not include personal identifiable information. There may be more information to be shown in a tooltip." + }, + "ariaLabel": { + "description": "Text to be used as the [aria-label](https://www.w3.org/TR/WCAG20-TECHS/ARIA14.html) for the input.", + "type": "string" + }, + "formatInfo": { + "description": "Information about the required format. If present, it should be shown close to the input field to help merchants to provide a correct value. For example: \"VAT numbers should be in a format similar to SK9999999999\"", + "type": "string" + }, + "type": { + "description": "Type of the text input", + "enum": [ + "TEXT_INPUT_TYPE_UNSPECIFIED", + "GENERIC_SHORT_TEXT", + "GENERIC_LONG_TEXT" + ], + "enumDescriptions": [ + "Default value. Will never be provided by the API.", + "Used when a short text is expected. The field can be rendered as a [text field](https://www.w3.org/TR/2012/WD-html-markup-20121025/input.text.html#input.text).", + "Used when a longer text is expected. The field should be rendered as a [textarea](https://www.w3.org/TR/2012/WD-html-markup-20121025/textarea.html#textarea)." + ], + "type": "string" + } + }, + "type": "object" + }, + "InputValue": { + "description": "Input provided by the merchant for input field.", + "id": "InputValue", + "properties": { + "checkboxInputValue": { + "$ref": "InputValueCheckboxInputValue", + "description": "Value for checkbox input field." + }, + "choiceInputValue": { + "$ref": "InputValueChoiceInputValue", + "description": "Value for choice input field." + }, + "inputFieldId": { + "description": "Required. Id of the corresponding input field.", + "type": "string" + }, + "textInputValue": { + "$ref": "InputValueTextInputValue", + "description": "Value for text input field." + } + }, + "type": "object" + }, + "InputValueCheckboxInputValue": { + "description": "Value for checkbox input field.", + "id": "InputValueCheckboxInputValue", + "properties": { + "value": { + "description": "Required. True if the merchant checked the box field. False otherwise.", + "type": "boolean" + } + }, + "type": "object" + }, + "InputValueChoiceInputValue": { + "description": "Value for choice input field.", + "id": "InputValueChoiceInputValue", + "properties": { + "choiceInputOptionId": { + "description": "Required. Id of the option that was selected by the merchant.", + "type": "string" + } + }, + "type": "object" + }, + "InputValueTextInputValue": { + "description": "Value for text input field.", + "id": "InputValueTextInputValue", + "properties": { + "value": { + "description": "Required. Text provided by the merchant.", + "type": "string" + } + }, + "type": "object" + }, "InsertCheckoutSettingsRequest": { "description": "Request message for the `InsertCheckoutSettings` method.", "id": "InsertCheckoutSettingsRequest", @@ -10472,22 +10784,30 @@ }, "type": "object" }, - "LoyaltyPoints": { - "id": "LoyaltyPoints", + "LoyaltyProgram": { + "description": "Allows the setting up of loyalty program benefits (for example price or points). https://support.google.com/merchants/answer/12922446", + "id": "LoyaltyProgram", "properties": { - "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" + "cashbackForFutureUse": { + "$ref": "Price", + "description": "Optional. The cashback that can be used for future purchases." }, - "pointsValue": { - "description": "The retailer's loyalty points in absolute value.", + "loyaltyPoints": { + "description": "Optional. The amount of loyalty points earned on a purchase.", "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" + "price": { + "$ref": "Price", + "description": "Optional. The price for members of the given tier (instant discount price). Must be smaller or equal to the regular price." + }, + "programLabel": { + "description": "Required. The label of the loyalty program. This is an internal label that uniquely identifies the relationship between a merchant entity and a loyalty program entity. It must be provided so that system can associate the assets below (for example, price and points) with a merchant. The corresponding program must be linked to the merchant account.", + "type": "string" + }, + "tierLabel": { + "description": "Required. The label of the tier within the loyalty program. Must match one of the labels within the program.", + "type": "string" } }, "type": "object" @@ -10629,17 +10949,26 @@ "id": "MethodQuota", "properties": { "method": { - "description": "The method name, for example `products.list`. Method name does not contain version because quota can be shared between different API versions of the same method.", + "description": "Output only. The method name, for example `products.list`. Method name does not contain version because quota can be shared between different API versions of the same method.", + "readOnly": true, "type": "string" }, "quotaLimit": { - "description": "The current quota limit per day, meaning the maximum number of calls for the method.", + "description": "Output only. The maximum number of calls allowed per day for the method.", "format": "int64", + "readOnly": true, + "type": "string" + }, + "quotaMinuteLimit": { + "description": "Output only. The maximum number of calls allowed per minute for the method.", + "format": "int64", + "readOnly": true, "type": "string" }, "quotaUsage": { - "description": "The current quota usage, meaning the number of calls already made to the method.", + "description": "Output only. The current quota usage, meaning the number of calls already made to the method per day. Usage is reset every day at 12 PM midday UTC.", "format": "int64", + "readOnly": true, "type": "string" } }, @@ -13756,6 +14085,10 @@ "description": "Target age group of the item.", "type": "string" }, + "autoPricingMinPrice": { + "$ref": "Price", + "description": "A safeguard in the [Automated Discounts](//support.google.com/merchants/answer/10295759) and [Dynamic Promotions](//support.google.com/merchants/answer/13949249) projects, ensuring that discounts on merchants' offers do not fall below this value, thereby preserving the offer's value and profitability." + }, "availability": { "description": "Availability status of the item.", "type": "string" @@ -13870,7 +14203,7 @@ "type": "string" }, "excludedDestinations": { - "description": "The list of destinations to exclude for this target (corresponds to cleared check boxes in Merchant Center). Products that are excluded from all destinations for more than 7 days are automatically deleted.", + "description": "The list of [destinations to exclude](//support.google.com/merchants/answer/6324486) for this target (corresponds to cleared check boxes in Merchant Center). Products that are excluded from all destinations for more than 7 days are automatically deleted.", "items": { "type": "string" }, @@ -13888,6 +14221,13 @@ "description": "Feed label for the item. Either `targetCountry` or `feedLabel` is required. Must be less than or equal to 20 uppercase letters (A-Z), numbers (0-9), and dashes (-).", "type": "string" }, + "freeShippingThreshold": { + "description": "Optional. Conditions to be met for a product to have free shipping.", + "items": { + "$ref": "FreeShippingThreshold" + }, + "type": "array" + }, "gender": { "description": "Target gender of the item.", "type": "string" @@ -13913,7 +14253,7 @@ "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`.", + "description": "The list of [destinations to include](//support.google.com/merchants/answer/7501026) for this target (corresponds to checked check boxes in Merchant Center). Default destinations are always included unless provided in `excludedDestinations`.", "items": { "type": "string" }, @@ -13950,9 +14290,9 @@ "description": "URL template for merchant hosted local storefront.", "type": "string" }, - "loyaltyPoints": { - "$ref": "LoyaltyPoints", - "description": "Loyalty points that users receive after purchasing the item. Japan only." + "loyaltyProgram": { + "$ref": "LoyaltyProgram", + "description": "Loyalty program information that is used to surface loyalty benefits ( for example pricing, points, etc) to the user for this item." }, "material": { "description": "The material of which the item is made.", @@ -14127,6 +14467,14 @@ "description": "The source of the offer, that is, how the offer was created. Acceptable values are: - \"`api`\" - \"`crawl`\" - \"`feed`\" ", "type": "string" }, + "structuredDescription": { + "$ref": "ProductStructuredDescription", + "description": "Structured description, for algorithmically (AI)-generated descriptions." + }, + "structuredTitle": { + "$ref": "ProductStructuredTitle", + "description": "Structured title, for algorithmically (AI)-generated titles." + }, "subscriptionCost": { "$ref": "ProductSubscriptionCost", "description": "Number of periods (months or years) and amount of payment per period for an item with an associated subscription contract." @@ -14659,6 +15007,36 @@ }, "type": "object" }, + "ProductStructuredDescription": { + "description": "Structured description, for algorithmically (AI)-generated descriptions. See [description](https://support.google.com/merchants/answer/6324468#When_to_use) for more information.", + "id": "ProductStructuredDescription", + "properties": { + "content": { + "description": "Required. The description text. Maximum length is 5000 characters.", + "type": "string" + }, + "digitalSourceType": { + "description": "Optional. The digital source type. Acceptable values are: - \"`trained_algorithmic_media`\" - \"`default`\" ", + "type": "string" + } + }, + "type": "object" + }, + "ProductStructuredTitle": { + "description": "Structured title, for algorithmically (AI)-generated titles. See [title](https://support.google.com/merchants/answer/6324415#Whentouse) for more information.", + "id": "ProductStructuredTitle", + "properties": { + "content": { + "description": "Required. The title text. Maximum length is 150 characters.", + "type": "string" + }, + "digitalSourceType": { + "description": "Optional. The digital source type. Acceptable values are: - \"`trained_algorithmic_media`\" - \"`default`\" ", + "type": "string" + } + }, + "type": "object" + }, "ProductSubscriptionCost": { "id": "ProductSubscriptionCost", "properties": { @@ -14804,6 +15182,27 @@ ], "type": "string" }, + "clickPotential": { + "description": "Estimated performance potential compared to highest performing products of the merchant.", + "enum": [ + "CLICK_POTENTIAL_UNSPECIFIED", + "LOW", + "MEDIUM", + "HIGH" + ], + "enumDescriptions": [ + "Unknown predicted clicks impact.", + "Potential to receive a low number of clicks compared to the highest performing products of the merchant.", + "Potential to receive a moderate number of clicks compared to the highest performing products of the merchant.", + "Potential to receive a similar number of clicks as the highest performing products of the merchant." + ], + "type": "string" + }, + "clickPotentialRank": { + "description": "Rank of the product based on its click potential. A product with `click_potential_rank` 1 has the highest click potential among the merchant's products that fulfill the search query conditions.", + "format": "int64", + "type": "string" + }, "condition": { "description": "Condition of the product.", "type": "string" @@ -16028,6 +16427,20 @@ "Returns the detail of the issue as a pre-rendered HTML text." ], "type": "string" + }, + "userInputActionOption": { + "description": "Optional. How actions with user input form should be handled. If not provided, actions will be returned as links that points merchant to Merchant Center where they can request the action.", + "enum": [ + "USER_INPUT_ACTION_RENDERING_OPTION_UNSPECIFIED", + "REDIRECT_TO_MERCHANT_CENTER", + "BUILT_IN_USER_INPUT_ACTIONS" + ], + "enumDescriptions": [ + "Default value. Will never be provided by the API.", + "Actions that require user input are represented only as links that points merchant to Merchant Center where they can request the action. Provides easier to implement alternative to `BUILT_IN_USER_INPUT_ACTIONS`.", + "Returns content and input form definition for each complex action. Your application needs to display this content and input form to the merchant before they can request processing of the action. To start the action, your application needs to call the `triggeraction` method." + ], + "type": "string" } }, "type": "object" @@ -16065,6 +16478,20 @@ "Returns the detail of the issue as a pre-rendered HTML text." ], "type": "string" + }, + "userInputActionOption": { + "description": "Optional. How actions with user input form should be handled. If not provided, actions will be returned as links that points merchant to Merchant Center where they can request the action.", + "enum": [ + "USER_INPUT_ACTION_RENDERING_OPTION_UNSPECIFIED", + "REDIRECT_TO_MERCHANT_CENTER", + "BUILT_IN_USER_INPUT_ACTIONS" + ], + "enumDescriptions": [ + "Default value. Will never be provided by the API.", + "Actions that require user input are represented only as links that points merchant to Merchant Center where they can request the action. Provides easier to implement alternative to `BUILT_IN_USER_INPUT_ACTIONS`.", + "Returns content and input form definition for each complex action. Your application needs to display this content and input form to the merchant before they can request processing of the action. To start the action, your application needs to call the `triggeraction` method." + ], + "type": "string" } }, "type": "object" @@ -16159,6 +16586,10 @@ "segments": { "$ref": "Segments", "description": "Segmentation dimensions requested by the merchant in the query. Dimension values are only set for dimensions requested explicitly in the query." + }, + "topicTrends": { + "$ref": "TopicTrends", + "description": "[Topic trends](https://support.google.com/merchants/answer/13542370) fields requested by the merchant in the query. Field values are only set if the merchant queries `TopicTrendsView`." } }, "type": "object" @@ -18001,6 +18432,35 @@ }, "type": "object" }, + "TextWithTooltip": { + "description": "Block of text that may contain a tooltip with more information.", + "id": "TextWithTooltip", + "properties": { + "simpleTooltipValue": { + "description": "Value of the tooltip as a simple text.", + "type": "string" + }, + "simpleValue": { + "description": "Value of the message as a simple text.", + "type": "string" + }, + "tooltipIconStyle": { + "description": "The suggested type of an icon for tooltip, if a tooltip is present.", + "enum": [ + "TOOLTIP_ICON_STYLE_UNSPECIFIED", + "INFO", + "QUESTION" + ], + "enumDescriptions": [ + "Default value. Will never be provided by the API.", + "Used when the tooltip adds additional information to the context, the 'i' can be used as an icon.", + "Used when the tooltip shows helpful information, the '?' can be used as an icon." + ], + "type": "string" + } + }, + "type": "object" + }, "TimePeriod": { "description": "A message that represents a time period.", "id": "TimePeriod", @@ -18033,6 +18493,55 @@ }, "type": "object" }, + "TopicTrends": { + "description": "Topic trends fields requested by the merchant in the query. Field values are only set if the merchant queries `TopicTrendsView`. Forecast data can be queried up to 13 weeks by passing a future date in the `date` field. Historical data is measured daily, and forecasted data is projected weekly. All data points are normalized based on the highest data points returned in the response. If you make separate queries with different date ranges, you might see different values for the same date in each response. The recommended way to get a trend score of a topic is `last7_days_search_interest / last{$day}_days_search_interest - 1`. You can view trends for up to eight topics at a time.", + "id": "TopicTrends", + "properties": { + "customerCountryCode": { + "description": "Country trends are calculated for. Must be a two-letter country code (ISO 3166-1-alpha-2 code), for example, `\u201cUS\u201d`.", + "type": "string" + }, + "date": { + "$ref": "Date", + "description": "Date the trend score was retrieved." + }, + "last120DaysSearchInterest": { + "description": "Search interest in the last 120 days, with the same normalization as search_interest. This field is only present for a past date.", + "format": "double", + "type": "number" + }, + "last30DaysSearchInterest": { + "description": "Search interest in the last 30 days, with the same normalization as search_interest. This field is only present for a past date.", + "format": "double", + "type": "number" + }, + "last7DaysSearchInterest": { + "description": "Search interest in the last 7 days, with the same normalization as search_interest. This field is only present for a past date.", + "format": "double", + "type": "number" + }, + "last90DaysSearchInterest": { + "description": "Search interest in the last 90 days, with the same normalization as search_interest. This field is only present for a past date.", + "format": "double", + "type": "number" + }, + "next7DaysSearchInterest": { + "description": "Estimated search interest in the next 7 days, with the same normalization as search_interest. This field is only present for a future date.", + "format": "double", + "type": "number" + }, + "searchInterest": { + "description": "Daily search interest, normalized to the time and country to make comparisons easier, with 100 representing peak popularity (from 0 to 100) for the requested time period and location.", + "format": "double", + "type": "number" + }, + "topic": { + "description": "Google-provided topic trends are calculated for. Only top eight topics are returned. Topic is what shoppers are searching for on Google, grouped by the same concept.", + "type": "string" + } + }, + "type": "object" + }, "TransitTable": { "id": "TransitTable", "properties": { @@ -18087,6 +18596,32 @@ }, "type": "object" }, + "TriggerActionPayload": { + "description": "The payload for the triggered action.", + "id": "TriggerActionPayload", + "properties": { + "actionContext": { + "description": "Required. The context from the selected action. The value is obtained from rendered issues and needs to be sent back to identify the action that is being triggered.", + "type": "string" + }, + "actionInput": { + "$ref": "ActionInput", + "description": "Required. Input provided by the merchant." + } + }, + "type": "object" + }, + "TriggerActionResponse": { + "description": "Response informing about the started action.", + "id": "TriggerActionResponse", + "properties": { + "message": { + "description": "The message for merchant.", + "type": "string" + } + }, + "type": "object" + }, "UndeleteConversionSourceRequest": { "description": "Request message for the UndeleteConversionSource method.", "id": "UndeleteConversionSourceRequest", diff --git a/etc/api/customsearch/v1/customsearch-api.json b/etc/api/customsearch/v1/customsearch-api.json index 32101a76e9..3819922f89 100644 --- a/etc/api/customsearch/v1/customsearch-api.json +++ b/etc/api/customsearch/v1/customsearch-api.json @@ -372,6 +372,12 @@ "location": "query", "type": "string" }, + "snippetLength": { + "description": "Optional. Maximum length of snippet text, in characters, to be returned with results. Note: this feature is limited to specific engines. * Valid values are integers between 161 and 1000, inclusive.", + "format": "int32", + "location": "query", + "type": "integer" + }, "sort": { "description": "The sort expression to apply to the results. The sort parameter specifies that the results be sorted according to the specified expression i.e. sort by date. [Example: sort=date](https://developers.google.com/custom-search/docs/structured_search#sort-by-attribute).", "location": "query", @@ -668,6 +674,12 @@ "location": "query", "type": "string" }, + "snippetLength": { + "description": "Optional. Maximum length of snippet text, in characters, to be returned with results. Note: this feature is limited to specific engines. * Valid values are integers between 161 and 1000, inclusive.", + "format": "int32", + "location": "query", + "type": "integer" + }, "sort": { "description": "The sort expression to apply to the results. The sort parameter specifies that the results be sorted according to the specified expression i.e. sort by date. [Example: sort=date](https://developers.google.com/custom-search/docs/structured_search#sort-by-attribute).", "location": "query", @@ -690,7 +702,7 @@ } } }, - "revision": "20240303", + "revision": "20240418", "rootUrl": "https://customsearch.googleapis.com/", "schemas": { "Promotion": { diff --git a/etc/api/datacatalog/v1/datacatalog-api.json b/etc/api/datacatalog/v1/datacatalog-api.json index 937458658b..e0e0cd165a 100644 --- a/etc/api/datacatalog/v1/datacatalog-api.json +++ b/etc/api/datacatalog/v1/datacatalog-api.json @@ -346,7 +346,7 @@ ], "parameters": { "name": { - "description": "The resource name of the entry group in URL format. Note: The entry group itself and its child resources might not be stored in the location specified in its name.", + "description": "Identifier. The resource name of the entry group in URL format. Note: The entry group itself and its child resources might not be stored in the location specified in its name.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/entryGroups/[^/]+$", "required": true, @@ -677,7 +677,7 @@ ], "parameters": { "name": { - "description": "Output only. The resource name of an entry in URL format. Note: The entry itself and its child resources might not be stored in the location specified in its name.", + "description": "Output only. Identifier. The resource name of an entry in URL format. Note: The entry itself and its child resources might not be stored in the location specified in its name.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/entryGroups/[^/]+/entries/[^/]+$", "required": true, @@ -888,7 +888,7 @@ ], "parameters": { "name": { - "description": "The resource name of the tag in URL format where tag ID is a system-generated identifier. Note: The tag itself might not be stored in the location specified in its name.", + "description": "Identifier. The resource name of the tag in URL format where tag ID is a system-generated identifier. Note: The tag itself might not be stored in the location specified in its name.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/entryGroups/[^/]+/entries/[^/]+/tags/[^/]+$", "required": true, @@ -1045,7 +1045,7 @@ ], "parameters": { "name": { - "description": "The resource name of the tag in URL format where tag ID is a system-generated identifier. Note: The tag itself might not be stored in the location specified in its name.", + "description": "Identifier. The resource name of the tag in URL format where tag ID is a system-generated identifier. Note: The tag itself might not be stored in the location specified in its name.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/entryGroups/[^/]+/tags/[^/]+$", "required": true, @@ -1321,7 +1321,7 @@ ], "parameters": { "name": { - "description": "The resource name of the tag template in URL format. Note: The tag template itself and its child resources might not be stored in the location specified in its name.", + "description": "Identifier. The resource name of the tag template in URL format. Note: The tag template itself and its child resources might not be stored in the location specified in its name.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/tagTemplates/[^/]+$", "required": true, @@ -2144,7 +2144,7 @@ } } }, - "revision": "20240222", + "revision": "20240322", "rootUrl": "https://datacatalog.googleapis.com/", "schemas": { "Binding": { @@ -2914,7 +2914,7 @@ "description": "Model specification." }, "name": { - "description": "Output only. The resource name of an entry in URL format. Note: The entry itself and its child resources might not be stored in the location specified in its name.", + "description": "Output only. Identifier. The resource name of an entry in URL format. Note: The entry itself and its child resources might not be stored in the location specified in its name.", "readOnly": true, "type": "string" }, @@ -3022,7 +3022,7 @@ "type": "string" }, "name": { - "description": "The resource name of the entry group in URL format. Note: The entry group itself and its child resources might not be stored in the location specified in its name.", + "description": "Identifier. The resource name of the entry group in URL format. Note: The entry group itself and its child resources might not be stored in the location specified in its name.", "type": "string" } }, @@ -4131,7 +4131,7 @@ "type": "object" }, "name": { - "description": "The resource name of the tag in URL format where tag ID is a system-generated identifier. Note: The tag itself might not be stored in the location specified in its name.", + "description": "Identifier. The resource name of the tag in URL format where tag ID is a system-generated identifier. Note: The tag itself might not be stored in the location specified in its name.", "type": "string" }, "template": { @@ -4205,6 +4205,18 @@ "description": "A tag template defines a tag that can have one or more typed fields. The template is used to create tags that are attached to Google Cloud resources. [Tag template roles] (https://cloud.google.com/iam/docs/understanding-roles#data-catalog-roles) provide permissions to create, edit, and use the template. For example, see the [TagTemplate User] (https://cloud.google.com/data-catalog/docs/how-to/template-user) role that includes a permission to use the tag template to tag resources.", "id": "GoogleCloudDatacatalogV1TagTemplate", "properties": { + "dataplexTransferStatus": { + "description": "Optional. Transfer status of the TagTemplate", + "enum": [ + "DATAPLEX_TRANSFER_STATUS_UNSPECIFIED", + "MIGRATED" + ], + "enumDescriptions": [ + "Default value. TagTemplate and its tags are only visible and editable in DataCatalog.", + "TagTemplate and its tags are auto-copied to Dataplex service. Visible in both services. Editable in DataCatalog, read-only in Dataplex." + ], + "type": "string" + }, "displayName": { "description": "Display name for this template. Defaults to an empty string. The name must contain only Unicode letters, numbers (0-9), underscores (_), dashes (-), spaces ( ), and can't start or end with spaces. The maximum length is 200 characters.", "type": "string" @@ -4221,7 +4233,7 @@ "type": "boolean" }, "name": { - "description": "The resource name of the tag template in URL format. Note: The tag template itself and its child resources might not be stored in the location specified in its name.", + "description": "Identifier. The resource name of the tag template in URL format. Note: The tag template itself and its child resources might not be stored in the location specified in its name.", "type": "string" } }, @@ -4244,8 +4256,7 @@ "type": "boolean" }, "name": { - "description": "Output only. The resource name of the tag template field in URL format. Example: `projects/{PROJECT_ID}/locations/{LOCATION}/tagTemplates/{TAG_TEMPLATE}/fields/{FIELD}` Note: The tag template field itself might not be stored in the location specified in its name. The name must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_), and must start with a letter or underscore. The maximum length is 64 characters.", - "readOnly": true, + "description": "Identifier. The resource name of the tag template field in URL format. Example: `projects/{PROJECT_ID}/locations/{LOCATION}/tagTemplates/{TAG_TEMPLATE}/fields/{FIELD}` Note: The tag template field itself might not be stored in the location specified in its name. The name must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_), and must start with a letter or underscore. The maximum length is 64 characters.", "type": "string" }, "order": { diff --git a/etc/api/datacatalog/v1beta1/datacatalog-api.json b/etc/api/datacatalog/v1beta1/datacatalog-api.json index 029bf19dd4..1addcb3ccc 100644 --- a/etc/api/datacatalog/v1beta1/datacatalog-api.json +++ b/etc/api/datacatalog/v1beta1/datacatalog-api.json @@ -331,7 +331,7 @@ ], "parameters": { "name": { - "description": "The resource name of the entry group in URL format. Example: * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id} Note that this EntryGroup and its child resources may not actually be stored in the location in this name.", + "description": "Identifier. The resource name of the entry group in URL format. Example: * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id} Note that this EntryGroup and its child resources may not actually be stored in the location in this name.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/entryGroups/[^/]+$", "required": true, @@ -578,7 +578,7 @@ ], "parameters": { "name": { - "description": "Output only. The Data Catalog resource name of the entry in URL format. Example: * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id} Note that this Entry and its child resources may not actually be stored in the location in this name.", + "description": "Output only. Identifier. The Data Catalog resource name of the entry in URL format. Example: * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id} Note that this Entry and its child resources may not actually be stored in the location in this name.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/entryGroups/[^/]+/entries/[^/]+$", "required": true, @@ -733,7 +733,7 @@ ], "parameters": { "name": { - "description": "The resource name of the tag in URL format. Example: * projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}/entries/{entry_id}/tags/{tag_id} where `tag_id` is a system-generated identifier. Note that this Tag may not actually be stored in the location in this name.", + "description": "Identifier. The resource name of the tag in URL format. Example: * projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}/entries/{entry_id}/tags/{tag_id} where `tag_id` is a system-generated identifier. Note that this Tag may not actually be stored in the location in this name.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/entryGroups/[^/]+/entries/[^/]+/tags/[^/]+$", "required": true, @@ -862,7 +862,7 @@ ], "parameters": { "name": { - "description": "The resource name of the tag in URL format. Example: * projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}/entries/{entry_id}/tags/{tag_id} where `tag_id` is a system-generated identifier. Note that this Tag may not actually be stored in the location in this name.", + "description": "Identifier. The resource name of the tag in URL format. Example: * projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}/entries/{entry_id}/tags/{tag_id} where `tag_id` is a system-generated identifier. Note that this Tag may not actually be stored in the location in this name.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/entryGroups/[^/]+/tags/[^/]+$", "required": true, @@ -1018,7 +1018,7 @@ ], "parameters": { "name": { - "description": "The resource name of the tag template in URL format. Example: * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id} Note that this TagTemplate and its child resources may not actually be stored in the location in this name.", + "description": "Identifier. The resource name of the tag template in URL format. Example: * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id} Note that this TagTemplate and its child resources may not actually be stored in the location in this name.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/tagTemplates/[^/]+$", "required": true, @@ -1813,7 +1813,7 @@ } } }, - "revision": "20240222", + "revision": "20240322", "rootUrl": "https://datacatalog.googleapis.com/", "schemas": { "Binding": { @@ -2572,7 +2572,7 @@ "description": "Model specification." }, "name": { - "description": "Output only. The resource name of an entry in URL format. Note: The entry itself and its child resources might not be stored in the location specified in its name.", + "description": "Output only. Identifier. The resource name of an entry in URL format. Note: The entry itself and its child resources might not be stored in the location specified in its name.", "readOnly": true, "type": "string" }, @@ -3179,7 +3179,7 @@ "type": "object" }, "name": { - "description": "The resource name of the tag in URL format where tag ID is a system-generated identifier. Note: The tag itself might not be stored in the location specified in its name.", + "description": "Identifier. The resource name of the tag in URL format where tag ID is a system-generated identifier. Note: The tag itself might not be stored in the location specified in its name.", "type": "string" }, "template": { @@ -3579,7 +3579,7 @@ "type": "string" }, "name": { - "description": "Output only. The Data Catalog resource name of the entry in URL format. Example: * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id} Note that this Entry and its child resources may not actually be stored in the location in this name.", + "description": "Output only. Identifier. The Data Catalog resource name of the entry in URL format. Example: * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id}/entries/{entry_id} Note that this Entry and its child resources may not actually be stored in the location in this name.", "readOnly": true, "type": "string" }, @@ -3644,7 +3644,7 @@ "type": "string" }, "name": { - "description": "The resource name of the entry group in URL format. Example: * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id} Note that this EntryGroup and its child resources may not actually be stored in the location in this name.", + "description": "Identifier. The resource name of the entry group in URL format. Example: * projects/{project_id}/locations/{location}/entryGroups/{entry_group_id} Note that this EntryGroup and its child resources may not actually be stored in the location in this name.", "type": "string" } }, @@ -4198,7 +4198,7 @@ "type": "object" }, "name": { - "description": "The resource name of the tag in URL format. Example: * projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}/entries/{entry_id}/tags/{tag_id} where `tag_id` is a system-generated identifier. Note that this Tag may not actually be stored in the location in this name.", + "description": "Identifier. The resource name of the tag in URL format. Example: * projects/{project_id}/locations/{location}/entrygroups/{entry_group_id}/entries/{entry_id}/tags/{tag_id} where `tag_id` is a system-generated identifier. Note that this Tag may not actually be stored in the location in this name.", "type": "string" }, "template": { @@ -4268,6 +4268,19 @@ "description": "A tag template defines a tag, which can have one or more typed fields. The template is used to create and attach the tag to Google Cloud resources. [Tag template roles](https://cloud.google.com/iam/docs/understanding-roles#data-catalog-roles) provide permissions to create, edit, and use the template. See, for example, the [TagTemplate User](https://cloud.google.com/data-catalog/docs/how-to/template-user) role, which includes permission to use the tag template to tag resources.", "id": "GoogleCloudDatacatalogV1beta1TagTemplate", "properties": { + "dataplexTransferStatus": { + "description": "Output only. Transfer status of the TagTemplate", + "enum": [ + "DATAPLEX_TRANSFER_STATUS_UNSPECIFIED", + "MIGRATED" + ], + "enumDescriptions": [ + "Default value. TagTemplate and its tags are only visible and editable in DataCatalog.", + "TagTemplate and its tags are auto-copied to Dataplex service. Visible in both services. Editable in DataCatalog, read-only in Dataplex." + ], + "readOnly": true, + "type": "string" + }, "displayName": { "description": "The display name for this template. Defaults to an empty string.", "type": "string" @@ -4280,7 +4293,7 @@ "type": "object" }, "name": { - "description": "The resource name of the tag template in URL format. Example: * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id} Note that this TagTemplate and its child resources may not actually be stored in the location in this name.", + "description": "Identifier. The resource name of the tag template in URL format. Example: * projects/{project_id}/locations/{location}/tagTemplates/{tag_template_id} Note that this TagTemplate and its child resources may not actually be stored in the location in this name.", "type": "string" } }, @@ -4303,7 +4316,7 @@ "type": "boolean" }, "name": { - "description": "Output only. The resource name of the tag template field in URL format. Example: * projects/{project_id}/locations/{location}/tagTemplates/{tag_template}/fields/{field} Note that this TagTemplateField may not actually be stored in the location in this name.", + "description": "Output only. Identifier. The resource name of the tag template field in URL format. Example: * projects/{project_id}/locations/{location}/tagTemplates/{tag_template}/fields/{field} Note that this TagTemplateField may not actually be stored in the location in this name.", "readOnly": true, "type": "string" }, diff --git a/etc/api/dataflow/v1b3/dataflow-api.json b/etc/api/dataflow/v1b3/dataflow-api.json index ba47740384..6fe71f333f 100644 --- a/etc/api/dataflow/v1b3/dataflow-api.json +++ b/etc/api/dataflow/v1b3/dataflow-api.json @@ -31,6 +31,11 @@ "description": "Regional Endpoint", "endpointUrl": "https://dataflow.europe-west3.rep.googleapis.com/", "location": "europe-west3" + }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://dataflow.europe-west9.rep.googleapis.com/", + "location": "europe-west9" } ], "fullyEncodeReservedExpansion": true, @@ -1918,7 +1923,7 @@ ], "parameters": { "dynamicTemplate.gcsPath": { - "description": "Path to dynamic template spec file on Cloud Storage. The file must be a Json serialized DynamicTemplateFieSpec object.", + "description": "Path to the dynamic template specification file on Cloud Storage. The file must be a JSON serialized `DynamicTemplateFileSpec` object.", "location": "query", "type": "string" }, @@ -1928,7 +1933,7 @@ "type": "string" }, "gcsPath": { - "description": "A Cloud Storage path to the template from which to create the job. Must be valid Cloud Storage URL, beginning with 'gs://'.", + "description": "A Cloud Storage path to the template to use to create the job. Must be valid Cloud Storage URL, beginning with `gs://`.", "location": "query", "type": "string" }, @@ -2133,7 +2138,7 @@ ], "parameters": { "dynamicTemplate.gcsPath": { - "description": "Path to dynamic template spec file on Cloud Storage. The file must be a Json serialized DynamicTemplateFieSpec object.", + "description": "Path to the dynamic template specification file on Cloud Storage. The file must be a JSON serialized `DynamicTemplateFileSpec` object.", "location": "query", "type": "string" }, @@ -2143,7 +2148,7 @@ "type": "string" }, "gcsPath": { - "description": "A Cloud Storage path to the template from which to create the job. Must be valid Cloud Storage URL, beginning with 'gs://'.", + "description": "A Cloud Storage path to the template to use to create the job. Must be valid Cloud Storage URL, beginning with `gs://`.", "location": "query", "type": "string" }, @@ -2182,7 +2187,7 @@ } } }, - "revision": "20240225", + "revision": "20240415", "rootUrl": "https://dataflow.googleapis.com/", "schemas": { "ApproximateProgress": { @@ -3201,7 +3206,7 @@ "type": "string" }, "streamingMode": { - "description": "Optional. Specifies the Streaming Engine message processing guarantees. Reduces cost and latency but might result in duplicate messages committed to storage. Designed to run simple mapping streaming ETL jobs at the lowest cost. For example, Change Data Capture (CDC) to BigQuery is a canonical use case.", + "description": "Optional. Specifies the Streaming Engine message processing guarantees. Reduces cost and latency but might result in duplicate messages committed to storage. Designed to run simple mapping streaming ETL jobs at the lowest cost. For example, Change Data Capture (CDC) to BigQuery is a canonical use case. For more information, see [Set the pipeline streaming mode](https://cloud.google.com/dataflow/docs/guides/streaming-modes).", "enum": [ "STREAMING_MODE_UNSPECIFIED", "STREAMING_MODE_EXACTLY_ONCE", @@ -3539,7 +3544,7 @@ "type": "string" }, "streamingMode": { - "description": "Optional. Specifies the Streaming Engine message processing guarantees. Reduces cost and latency but might result in duplicate messages committed to storage. Designed to run simple mapping streaming ETL jobs at the lowest cost. For example, Change Data Capture (CDC) to BigQuery is a canonical use case.", + "description": "Optional. Specifies the Streaming Engine message processing guarantees. Reduces cost and latency but might result in duplicate messages committed to storage. Designed to run simple mapping streaming ETL jobs at the lowest cost. For example, Change Data Capture (CDC) to BigQuery is a canonical use case. For more information, see [Set the pipeline streaming mode](https://cloud.google.com/dataflow/docs/guides/streaming-modes).", "enum": [ "STREAMING_MODE_UNSPECIFIED", "STREAMING_MODE_EXACTLY_ONCE", @@ -5413,7 +5418,7 @@ "type": "object" }, "RuntimeEnvironment": { - "description": "The environment values to set at runtime.", + "description": "The environment values to set at runtime. LINT.IfChange", "id": "RuntimeEnvironment", "properties": { "additionalExperiments": { @@ -5484,7 +5489,7 @@ "type": "string" }, "streamingMode": { - "description": "Optional. Specifies the Streaming Engine message processing guarantees. Reduces cost and latency but might result in duplicate messages committed to storage. Designed to run simple mapping streaming ETL jobs at the lowest cost. For example, Change Data Capture (CDC) to BigQuery is a canonical use case.", + "description": "Optional. Specifies the Streaming Engine message processing guarantees. Reduces cost and latency but might result in duplicate messages committed to storage. Designed to run simple mapping streaming ETL jobs at the lowest cost. For example, Change Data Capture (CDC) to BigQuery is a canonical use case. For more information, see [Set the pipeline streaming mode](https://cloud.google.com/dataflow/docs/guides/streaming-modes).", "enum": [ "STREAMING_MODE_UNSPECIFIED", "STREAMING_MODE_EXACTLY_ONCE", @@ -5553,7 +5558,7 @@ "type": "integer" }, "workerUtilizationHint": { - "description": "Target worker utilization, compared against the aggregate utilization of the worker pool by autoscaler, to determine upscaling and downscaling when absent other constraints such as backlog.", + "description": "Target worker utilization, compared against the aggregate utilization of the worker pool by autoscaler, to determine upscaling and downscaling when absent other constraints such as backlog. For more information, see [Update an existing pipeline](https://cloud.google.com/dataflow/docs/guides/updating-a-pipeline).", "format": "double", "type": "number" } @@ -6958,6 +6963,10 @@ "description": "Metadata describing a template.", "id": "TemplateMetadata", "properties": { + "defaultStreamingMode": { + "description": "Optional. Indicates the default streaming mode for a streaming template. Only valid if both supports_at_least_once and supports_exactly_once are true. Possible values: UNSPECIFIED, EXACTLY_ONCE and AT_LEAST_ONCE", + "type": "string" + }, "description": { "description": "Optional. A description of the template.", "type": "string" diff --git a/etc/api/datamigration/v1/datamigration-api.json b/etc/api/datamigration/v1/datamigration-api.json index b2a609c436..a5e293e105 100644 --- a/etc/api/datamigration/v1/datamigration-api.json +++ b/etc/api/datamigration/v1/datamigration-api.json @@ -2125,7 +2125,7 @@ } } }, - "revision": "20240221", + "revision": "20240410", "rootUrl": "https://datamigration.googleapis.com/", "schemas": { "AlloyDbConnectionProfile": { @@ -2811,14 +2811,18 @@ "ALLOYDB" ], "enumDescriptions": [ - "The database provider is unknown.", - "CloudSQL runs the database.", - "RDS runs the database.", - "Amazon Aurora.", - "AlloyDB." + "Use this value for on-premise source database instances.", + "Cloud SQL is the source instance provider.", + "Amazon RDS is the source instance provider.", + "Amazon Aurora is the source instance provider.", + "AlloyDB for PostgreSQL is the source instance provider." ], "type": "string" }, + "sqlserver": { + "$ref": "SqlServerConnectionProfile", + "description": "Connection profile for a SQL Server data source." + }, "state": { "description": "The current connection profile state (e.g. DRAFT, READY, or FAILED).", "enum": [ @@ -3033,12 +3037,14 @@ "DATABASE_ENGINE_UNSPECIFIED", "MYSQL", "POSTGRESQL", + "SQLSERVER", "ORACLE" ], "enumDescriptions": [ "The source database engine of the migration job is unknown.", "The source engine is MySQL.", "The source engine is PostgreSQL.", + "The source engine is SQL Server.", "The source engine is Oracle." ], "type": "string" @@ -3211,12 +3217,14 @@ "DATABASE_ENGINE_UNSPECIFIED", "MYSQL", "POSTGRESQL", + "SQLSERVER", "ORACLE" ], "enumDescriptions": [ "The source database engine of the migration job is unknown.", "The source engine is MySQL.", "The source engine is PostgreSQL.", + "The source engine is SQL Server.", "The source engine is Oracle." ], "type": "string" @@ -3231,11 +3239,11 @@ "ALLOYDB" ], "enumDescriptions": [ - "The database provider is unknown.", - "CloudSQL runs the database.", - "RDS runs the database.", - "Amazon Aurora.", - "AlloyDB." + "Use this value for on-premise source database instances.", + "Cloud SQL is the source instance provider.", + "Amazon RDS is the source instance provider.", + "Amazon Aurora is the source instance provider.", + "AlloyDB for PostgreSQL is the source instance provider." ], "type": "string" } @@ -4401,6 +4409,20 @@ "description": "The path to the dump file in Google Cloud Storage, in the format: (gs://[BUCKET_NAME]/[OBJECT_NAME]). This field and the \"dump_flags\" field are mutually exclusive.", "type": "string" }, + "dumpType": { + "description": "Optional. The type of the data dump. Supported for MySQL to CloudSQL for MySQL migrations only.", + "enum": [ + "DUMP_TYPE_UNSPECIFIED", + "LOGICAL", + "PHYSICAL" + ], + "enumDescriptions": [ + "If not specified, defaults to LOGICAL", + "Logical dump.", + "Physical file-based dump. Supported for MySQL to CloudSQL for MySQL migrations only." + ], + "type": "string" + }, "duration": { "description": "Output only. The duration of the migration job (in seconds). A duration in seconds with up to nine fractional digits, terminated by 's'. Example: \"3.5s\".", "format": "google-duration", @@ -4445,7 +4467,8 @@ "CDC", "PROMOTE_IN_PROGRESS", "WAITING_FOR_SOURCE_WRITES_TO_STOP", - "PREPARING_THE_DUMP" + "PREPARING_THE_DUMP", + "READY_FOR_PROMOTE" ], "enumDescriptions": [ "The phase of the migration job is unknown.", @@ -4453,7 +4476,8 @@ "The migration job is CDC phase.", "The migration job is running the promote phase.", "Only RDS flow - waiting for source writes to stop", - "Only RDS flow - the sources writes stopped, waiting for dump to begin" + "Only RDS flow - the sources writes stopped, waiting for dump to begin", + "The migration job is ready to be promoted." ], "readOnly": true, "type": "string" @@ -4470,6 +4494,10 @@ "$ref": "DatabaseType", "description": "The database engine type and provider of the source." }, + "sqlserverHomogeneousMigrationJobConfig": { + "$ref": "SqlServerHomogeneousMigrationJobConfig", + "description": "Optional. Configuration for SQL Server homogeneous migration." + }, "state": { "description": "The current migration job state.", "enum": [ @@ -5138,7 +5166,12 @@ "ResumeMigrationJobRequest": { "description": "Request message for 'ResumeMigrationJob' request.", "id": "ResumeMigrationJobRequest", - "properties": {}, + "properties": { + "skipValidation": { + "description": "Optional. Resume the migration job without running prior configuration verification. Defaults to `false`.", + "type": "boolean" + } + }, "type": "object" }, "ReverseSshConnectivity": { @@ -5567,6 +5600,130 @@ }, "type": "object" }, + "SqlServerBackups": { + "description": "Specifies the backup details in Cloud Storage for homogeneous migration to Cloud SQL for SQL Server.", + "id": "SqlServerBackups", + "properties": { + "gcsBucket": { + "description": "Required. The Cloud Storage bucket that stores backups for all replicated databases.", + "type": "string" + }, + "gcsPrefix": { + "description": "Optional. Cloud Storage path inside the bucket that stores backups.", + "type": "string" + } + }, + "type": "object" + }, + "SqlServerConnectionProfile": { + "description": "Specifies connection parameters required specifically for SQL Server databases.", + "id": "SqlServerConnectionProfile", + "properties": { + "backups": { + "$ref": "SqlServerBackups", + "description": "The backup details in Cloud Storage for homogeneous migration to Cloud SQL for SQL Server." + }, + "cloudSqlId": { + "description": "If the source is a Cloud SQL database, use this field to provide the Cloud SQL instance ID of the source.", + "type": "string" + }, + "forwardSshConnectivity": { + "$ref": "ForwardSshTunnelConnectivity", + "description": "Forward SSH tunnel connectivity." + }, + "host": { + "description": "Required. The IP or hostname of the source SQL Server database.", + "type": "string" + }, + "password": { + "description": "Required. Input only. The password for the user that Database Migration Service will be using to connect to the database. This field is not returned on request, and the value is encrypted when stored in Database Migration Service.", + "type": "string" + }, + "passwordSet": { + "description": "Output only. Indicates whether a new password is included in the request.", + "readOnly": true, + "type": "boolean" + }, + "port": { + "description": "Required. The network port of the source SQL Server database.", + "format": "int32", + "type": "integer" + }, + "privateConnectivity": { + "$ref": "PrivateConnectivity", + "description": "Private connectivity." + }, + "privateServiceConnectConnectivity": { + "$ref": "PrivateServiceConnectConnectivity", + "description": "Private Service Connect connectivity." + }, + "ssl": { + "$ref": "SslConfig", + "description": "SSL configuration for the destination to connect to the source database." + }, + "staticIpConnectivity": { + "$ref": "StaticIpConnectivity", + "description": "Static IP connectivity data (default, no additional details needed)." + }, + "username": { + "description": "Required. The username that Database Migration Service will use to connect to the database. The value is encrypted when stored in Database Migration Service.", + "type": "string" + } + }, + "type": "object" + }, + "SqlServerDatabaseBackup": { + "description": "Specifies the backup details for a single database in Cloud Storage for homogeneous migration to Cloud SQL for SQL Server.", + "id": "SqlServerDatabaseBackup", + "properties": { + "database": { + "description": "Required. Name of a SQL Server database for which to define backup configuration.", + "type": "string" + }, + "encryptionOptions": { + "$ref": "SqlServerEncryptionOptions", + "description": "Optional. Encryption settings for the database. Required if provided database backups are encrypted. Encryption settings include path to certificate, path to certificate private key, and key password." + } + }, + "type": "object" + }, + "SqlServerEncryptionOptions": { + "description": "Encryption settings for the SQL Server database.", + "id": "SqlServerEncryptionOptions", + "properties": { + "certPath": { + "description": "Required. Path to certificate.", + "type": "string" + }, + "pvkPassword": { + "description": "Required. Input only. Private key password.", + "type": "string" + }, + "pvkPath": { + "description": "Required. Path to certificate private key.", + "type": "string" + } + }, + "type": "object" + }, + "SqlServerHomogeneousMigrationJobConfig": { + "description": "Configuration for homogeneous migration to Cloud SQL for SQL Server.", + "id": "SqlServerHomogeneousMigrationJobConfig", + "properties": { + "backupFilePattern": { + "description": "Required. Pattern that describes the default backup naming strategy. The specified pattern should ensure lexicographical order of backups. The pattern must define one of the following capture group sets: Capture group set #1 yy/yyyy - year, 2 or 4 digits mm - month number, 1-12 dd - day of month, 1-31 hh - hour of day, 00-23 mi - minutes, 00-59 ss - seconds, 00-59 Example: For backup file TestDB_20230802_155400.trn, use pattern: (?.*)_backup_(?\\d{4})(?\\d{2})(?\\d{2})_(?\\d{2})(?\\d{2})(?\\d{2}).trn Capture group set #2 timestamp - unix timestamp Example: For backup file TestDB.1691448254.trn, use pattern: (?.*)\\.(?\\d*).trn or (?.*)\\.(?\\d*).trn", + "type": "string" + }, + "databaseBackups": { + "description": "Required. Backup details per database in Cloud Storage.", + "items": { + "$ref": "SqlServerDatabaseBackup" + }, + "type": "array" + } + }, + "type": "object" + }, "SshScript": { "description": "Response message for 'GenerateSshScript' request.", "id": "SshScript", diff --git a/etc/api/datamigration/v1beta1/datamigration-api.json b/etc/api/datamigration/v1beta1/datamigration-api.json index f29717d250..a456961acc 100644 --- a/etc/api/datamigration/v1beta1/datamigration-api.json +++ b/etc/api/datamigration/v1beta1/datamigration-api.json @@ -1049,7 +1049,7 @@ } } }, - "revision": "20240221", + "revision": "20240410", "rootUrl": "https://datamigration.googleapis.com/", "schemas": { "AuditConfig": { diff --git a/etc/api/datapipelines/v1/datapipelines-api.json b/etc/api/datapipelines/v1/datapipelines-api.json index dede78ba7b..420f888f83 100644 --- a/etc/api/datapipelines/v1/datapipelines-api.json +++ b/etc/api/datapipelines/v1/datapipelines-api.json @@ -369,7 +369,7 @@ } } }, - "revision": "20240225", + "revision": "20240324", "rootUrl": "https://datapipelines.googleapis.com/", "schemas": { "GoogleCloudDatapipelinesV1DataflowJobDetails": { diff --git a/etc/api/dataplex/v1/dataplex-api.json b/etc/api/dataplex/v1/dataplex-api.json index 4382df6933..0d1503dc13 100644 --- a/etc/api/dataplex/v1/dataplex-api.json +++ b/etc/api/dataplex/v1/dataplex-api.json @@ -174,11 +174,215 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] + }, + "lookupEntry": { + "description": "Looks up a single entry.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}:lookupEntry", + "httpMethod": "GET", + "id": "dataplex.projects.locations.lookupEntry", + "parameterOrder": [ + "name" + ], + "parameters": { + "aspectTypes": { + "description": "Optional. Limits the aspects returned to the provided aspect types. Only works if the CUSTOM view is selected.", + "location": "query", + "repeated": true, + "type": "string" + }, + "entry": { + "description": "Required. The resource name of the Entry: projects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry}.", + "location": "query", + "type": "string" + }, + "name": { + "description": "Required. The project to which the request should be attributed in the following form: projects/{project}/locations/{location}.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + }, + "paths": { + "description": "Optional. Limits the aspects returned to those associated with the provided paths within the Entry. Only works if the CUSTOM view is selected.", + "location": "query", + "repeated": true, + "type": "string" + }, + "view": { + "description": "Optional. View for controlling which parts of an entry are to be returned.", + "enum": [ + "ENTRY_VIEW_UNSPECIFIED", + "BASIC", + "FULL", + "CUSTOM", + "ALL" + ], + "enumDescriptions": [ + "Unspecified EntryView. Defaults to FULL.", + "Returns entry only, without aspects.", + "Returns all required aspects as well as the keys of all non-required aspects.", + "Returns aspects matching custom fields in GetEntryRequest. If the number of aspects would exceed 100, the first 100 will be returned.", + "Returns all aspects. If the number of aspects would exceed 100, the first 100 will be returned." + ], + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}:lookupEntry", + "response": { + "$ref": "GoogleCloudDataplexV1Entry" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "searchEntries": { + "description": "Searches for entries matching given query and scope.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}:searchEntries", + "httpMethod": "POST", + "id": "dataplex.projects.locations.searchEntries", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The project to which the request should be attributed in the following form: projects/{project}/locations/{location}.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + }, + "orderBy": { + "description": "Optional. Ordering of the results. Supported options to be added later.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. Pagination.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "location": "query", + "type": "string" + }, + "query": { + "description": "Required. The query against which entries in scope should be matched.", + "location": "query", + "type": "string" + }, + "scope": { + "description": "Optional. The scope under which the search should be operating. Should either be organizations/ or projects/. If left unspecified, it will default to the organization where the project provided in name is located.", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}:searchEntries", + "response": { + "$ref": "GoogleCloudDataplexV1SearchEntriesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } }, "resources": { "aspectTypes": { "methods": { + "create": { + "description": "Creates an AspectType", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/aspectTypes", + "httpMethod": "POST", + "id": "dataplex.projects.locations.aspectTypes.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "aspectTypeId": { + "description": "Required. AspectType identifier.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The resource name of the AspectType, of the form: projects/{project_number}/locations/{location_id} where location_id refers to a GCP region.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + }, + "validateOnly": { + "description": "Optional. Only validate the request, but do not perform mutations. The default is false.", + "location": "query", + "type": "boolean" + } + }, + "path": "v1/{+parent}/aspectTypes", + "request": { + "$ref": "GoogleCloudDataplexV1AspectType" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a AspectType resource.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/aspectTypes/{aspectTypesId}", + "httpMethod": "DELETE", + "id": "dataplex.projects.locations.aspectTypes.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "etag": { + "description": "Optional. If the client provided etag value does not match the current etag value, the DeleteAspectTypeRequest method returns an ABORTED error response", + "location": "query", + "type": "string" + }, + "name": { + "description": "Required. The resource name of the AspectType: projects/{project_number}/locations/{location_id}/aspectTypes/{aspect_type_id}.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/aspectTypes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Retrieves a AspectType resource.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/aspectTypes/{aspectTypesId}", + "httpMethod": "GET", + "id": "dataplex.projects.locations.aspectTypes.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the AspectType: projects/{project_number}/locations/{location_id}/aspectTypes/{aspect_type_id}.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/aspectTypes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudDataplexV1AspectType" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "getIamPolicy": { "description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/aspectTypes/{aspectTypesId}:getIamPolicy", @@ -210,6 +414,91 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "list": { + "description": "Lists AspectType resources in a project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/aspectTypes", + "httpMethod": "GET", + "id": "dataplex.projects.locations.aspectTypes.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. Filter request. Filters are case-sensitive. The following formats are supported:labels.key1 = \"value1\" labels:key1 name = \"value\" These restrictions can be coinjoined with AND, OR and NOT conjunctions.", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Optional. Order by fields (name or create_time) for the result. If not specified, the ordering is undefined.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. Maximum number of AspectTypes to return. The service may return fewer than this value. If unspecified, at most 10 AspectTypes will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. Page token received from a previous ListAspectTypes call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to ListAspectTypes must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The resource name of the AspectType location, of the form: projects/{project_number}/locations/{location_id} where location_id refers to a GCP region.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/aspectTypes", + "response": { + "$ref": "GoogleCloudDataplexV1ListAspectTypesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates a AspectType resource.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/aspectTypes/{aspectTypesId}", + "httpMethod": "PATCH", + "id": "dataplex.projects.locations.aspectTypes.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Output only. The relative resource name of the AspectType, of the form: projects/{project_number}/locations/{location_id}/aspectTypes/{aspect_type_id}.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/aspectTypes/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. Mask of fields to update.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + }, + "validateOnly": { + "description": "Optional. Only validate the request, but do not perform mutations. The default is false.", + "location": "query", + "type": "boolean" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "GoogleCloudDataplexV1AspectType" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "setIamPolicy": { "description": "Sets the access control policy on the specified resource. Replaces any existing policy.Can return NOT_FOUND, INVALID_ARGUMENT, and PERMISSION_DENIED errors.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/aspectTypes/{aspectTypesId}:setIamPolicy", @@ -602,6 +891,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "generateDataQualityRules": { + "description": "Generates recommended DataQualityRule from a data profiling DataScan.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataScans/{dataScansId}:generateDataQualityRules", + "httpMethod": "POST", + "id": "dataplex.projects.locations.dataScans.generateDataQualityRules", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name should be either * the name of a datascan with at least one successful completed data profiling job, or * the name of a successful completed data profiling datascan job.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/dataScans/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:generateDataQualityRules", + "request": { + "$ref": "GoogleCloudDataplexV1GenerateDataQualityRulesRequest" + }, + "response": { + "$ref": "GoogleCloudDataplexV1GenerateDataQualityRulesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "get": { "description": "Gets a DataScan resource.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataScans/{dataScansId}", @@ -846,6 +1163,34 @@ "resources": { "jobs": { "methods": { + "generateDataQualityRules": { + "description": "Generates recommended DataQualityRule from a data profiling DataScan.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataScans/{dataScansId}/jobs/{jobsId}:generateDataQualityRules", + "httpMethod": "POST", + "id": "dataplex.projects.locations.dataScans.jobs.generateDataQualityRules", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name should be either * the name of a datascan with at least one successful completed data profiling job, or * the name of a successful completed data profiling datascan job.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/dataScans/[^/]+/jobs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:generateDataQualityRules", + "request": { + "$ref": "GoogleCloudDataplexV1GenerateDataQualityRulesRequest" + }, + "response": { + "$ref": "GoogleCloudDataplexV1GenerateDataQualityRulesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "get": { "description": "Gets a DataScanJob resource.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dataScans/{dataScansId}/jobs/{jobsId}", @@ -1473,6 +1818,99 @@ }, "entryGroups": { "methods": { + "create": { + "description": "Creates an EntryGroup", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/entryGroups", + "httpMethod": "POST", + "id": "dataplex.projects.locations.entryGroups.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "entryGroupId": { + "description": "Required. EntryGroup identifier.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The resource name of the entryGroup, of the form: projects/{project_number}/locations/{location_id} where location_id refers to a GCP region.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + }, + "validateOnly": { + "description": "Optional. Only validate the request, but do not perform mutations. The default is false.", + "location": "query", + "type": "boolean" + } + }, + "path": "v1/{+parent}/entryGroups", + "request": { + "$ref": "GoogleCloudDataplexV1EntryGroup" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a EntryGroup resource.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/entryGroups/{entryGroupsId}", + "httpMethod": "DELETE", + "id": "dataplex.projects.locations.entryGroups.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "etag": { + "description": "Optional. If the client provided etag value does not match the current etag value, the DeleteEntryGroupRequest method returns an ABORTED error response", + "location": "query", + "type": "string" + }, + "name": { + "description": "Required. The resource name of the EntryGroup: projects/{project_number}/locations/{location_id}/entryGroups/{entry_group_id}.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/entryGroups/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Retrieves a EntryGroup resource.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/entryGroups/{entryGroupsId}", + "httpMethod": "GET", + "id": "dataplex.projects.locations.entryGroups.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the EntryGroup: projects/{project_number}/locations/{location_id}/entryGroups/{entry_group_id}.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/entryGroups/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudDataplexV1EntryGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "getIamPolicy": { "description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/entryGroups/{entryGroupsId}:getIamPolicy", @@ -1504,6 +1942,91 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "list": { + "description": "Lists EntryGroup resources in a project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/entryGroups", + "httpMethod": "GET", + "id": "dataplex.projects.locations.entryGroups.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. Filter request.", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Optional. Order by fields for the result.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. Maximum number of EntryGroups to return. The service may return fewer than this value. If unspecified, at most 10 EntryGroups will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. Page token received from a previous ListEntryGroups call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to ListEntryGroups must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The resource name of the entryGroup location, of the form: projects/{project_number}/locations/{location_id} where location_id refers to a GCP region.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/entryGroups", + "response": { + "$ref": "GoogleCloudDataplexV1ListEntryGroupsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates a EntryGroup resource.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/entryGroups/{entryGroupsId}", + "httpMethod": "PATCH", + "id": "dataplex.projects.locations.entryGroups.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Output only. The relative resource name of the EntryGroup, of the form: projects/{project_number}/locations/{location_id}/entryGroups/{entry_group_id}.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/entryGroups/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. Mask of fields to update.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + }, + "validateOnly": { + "description": "Optional. Only validate the request, but do not perform mutations. The default is false.", + "location": "query", + "type": "boolean" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "GoogleCloudDataplexV1EntryGroup" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "setIamPolicy": { "description": "Sets the access control policy on the specified resource. Replaces any existing policy.Can return NOT_FOUND, INVALID_ARGUMENT, and PERMISSION_DENIED errors.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/entryGroups/{entryGroupsId}:setIamPolicy", @@ -1560,10 +2083,313 @@ "https://www.googleapis.com/auth/cloud-platform" ] } + }, + "resources": { + "entries": { + "methods": { + "create": { + "description": "Creates an Entry.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/entryGroups/{entryGroupsId}/entries", + "httpMethod": "POST", + "id": "dataplex.projects.locations.entryGroups.entries.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "entryId": { + "description": "Required. Entry identifier. It has to be unique within an Entry Group.Entries corresponding to Google Cloud resources use Entry ID format based on Full Resource Names (https://cloud.google.com/apis/design/resource_names#full_resource_name). The format is a Full Resource Name of the resource without the prefix double slashes in the API Service Name part of Full Resource Name. This allows retrieval of entries using their associated resource name.For example if the Full Resource Name of a resource is //library.googleapis.com/shelves/shelf1/books/book2, then the suggested entry_id is library.googleapis.com/shelves/shelf1/books/book2.It is also suggested to follow the same convention for entries corresponding to resources from other providers or systems than Google Cloud.The maximum size of the field is 4000 characters.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The resource name of the parent Entry Group: projects/{project}/locations/{location}/entryGroups/{entry_group}.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/entryGroups/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/entries", + "request": { + "$ref": "GoogleCloudDataplexV1Entry" + }, + "response": { + "$ref": "GoogleCloudDataplexV1Entry" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes an Entry.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/entryGroups/{entryGroupsId}/entries/{entriesId}", + "httpMethod": "DELETE", + "id": "dataplex.projects.locations.entryGroups.entries.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the Entry: projects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry}.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/entryGroups/[^/]+/entries/.*$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudDataplexV1Entry" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets a single entry.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/entryGroups/{entryGroupsId}/entries/{entriesId}", + "httpMethod": "GET", + "id": "dataplex.projects.locations.entryGroups.entries.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "aspectTypes": { + "description": "Optional. Limits the aspects returned to the provided aspect types. Only works if the CUSTOM view is selected.", + "location": "query", + "repeated": true, + "type": "string" + }, + "name": { + "description": "Required. The resource name of the Entry: projects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry}.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/entryGroups/[^/]+/entries/.*$", + "required": true, + "type": "string" + }, + "paths": { + "description": "Optional. Limits the aspects returned to those associated with the provided paths within the Entry. Only works if the CUSTOM view is selected.", + "location": "query", + "repeated": true, + "type": "string" + }, + "view": { + "description": "Optional. View for controlling which parts of an entry are to be returned.", + "enum": [ + "ENTRY_VIEW_UNSPECIFIED", + "BASIC", + "FULL", + "CUSTOM", + "ALL" + ], + "enumDescriptions": [ + "Unspecified EntryView. Defaults to FULL.", + "Returns entry only, without aspects.", + "Returns all required aspects as well as the keys of all non-required aspects.", + "Returns aspects matching custom fields in GetEntryRequest. If the number of aspects would exceed 100, the first 100 will be returned.", + "Returns all aspects. If the number of aspects would exceed 100, the first 100 will be returned." + ], + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudDataplexV1Entry" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists entries within an entry group.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/entryGroups/{entryGroupsId}/entries", + "httpMethod": "GET", + "id": "dataplex.projects.locations.entryGroups.entries.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. A filter on the entries to return. Filters are case-sensitive. The request can be filtered by the following fields: entry_type, entry_source.display_name. The comparison operators are =, !=, <, >, <=, >= (strings are compared according to lexical order) The logical operators AND, OR, NOT can be used in the filter. Wildcard \"*\" can be used, but for entry_type the full project id or number needs to be provided. Example filter expressions: \"entry_source.display_name=AnExampleDisplayName\" \"entry_type=projects/example-project/locations/global/entryTypes/example-entry_type\" \"entry_type=projects/example-project/locations/us/entryTypes/a* OR entry_type=projects/another-project/locations/*\" \"NOT entry_source.display_name=AnotherExampleDisplayName\"", + "location": "query", + "type": "string" + }, + "pageSize": { + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. The pagination token returned by a previous request.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The resource name of the parent Entry Group: projects/{project}/locations/{location}/entryGroups/{entry_group}.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/entryGroups/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/entries", + "response": { + "$ref": "GoogleCloudDataplexV1ListEntriesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates an Entry.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/entryGroups/{entryGroupsId}/entries/{entriesId}", + "httpMethod": "PATCH", + "id": "dataplex.projects.locations.entryGroups.entries.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "allowMissing": { + "description": "Optional. If set to true and the entry does not exist, it will be created.", + "location": "query", + "type": "boolean" + }, + "aspectKeys": { + "description": "Optional. The map keys of the Aspects which should be modified. Supports the following syntaxes: * - matches aspect on given type and empty path * @path - matches aspect on given type and specified path * * - matches aspects on given type for all paths * *@path - matches aspects of all types on the given pathExisting aspects matching the syntax will not be removed unless delete_missing_aspects is set to true.If this field is left empty, it will be treated as specifying exactly those Aspects present in the request.", + "location": "query", + "repeated": true, + "type": "string" + }, + "deleteMissingAspects": { + "description": "Optional. If set to true and the aspect_keys specify aspect ranges, any existing aspects from that range not provided in the request will be deleted.", + "location": "query", + "type": "boolean" + }, + "name": { + "description": "Identifier. The relative resource name of the Entry, of the form: projects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry}.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/entryGroups/[^/]+/entries/.*$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Optional. Mask of fields to update. To update Aspects, the update_mask must contain the value \"aspects\".If the update_mask is empty, all modifiable fields present in the request will be updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "GoogleCloudDataplexV1Entry" + }, + "response": { + "$ref": "GoogleCloudDataplexV1Entry" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } } }, "entryTypes": { "methods": { + "create": { + "description": "Creates an EntryType", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/entryTypes", + "httpMethod": "POST", + "id": "dataplex.projects.locations.entryTypes.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "entryTypeId": { + "description": "Required. EntryType identifier.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The resource name of the EntryType, of the form: projects/{project_number}/locations/{location_id} where location_id refers to a GCP region.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + }, + "validateOnly": { + "description": "Optional. Only validate the request, but do not perform mutations. The default is false.", + "location": "query", + "type": "boolean" + } + }, + "path": "v1/{+parent}/entryTypes", + "request": { + "$ref": "GoogleCloudDataplexV1EntryType" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a EntryType resource.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/entryTypes/{entryTypesId}", + "httpMethod": "DELETE", + "id": "dataplex.projects.locations.entryTypes.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "etag": { + "description": "Optional. If the client provided etag value does not match the current etag value, the DeleteEntryTypeRequest method returns an ABORTED error response", + "location": "query", + "type": "string" + }, + "name": { + "description": "Required. The resource name of the EntryType: projects/{project_number}/locations/{location_id}/entryTypes/{entry_type_id}.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/entryTypes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Retrieves a EntryType resource.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/entryTypes/{entryTypesId}", + "httpMethod": "GET", + "id": "dataplex.projects.locations.entryTypes.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the EntryType: projects/{project_number}/locations/{location_id}/entryTypes/{entry_type_id}.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/entryTypes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudDataplexV1EntryType" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "getIamPolicy": { "description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/entryTypes/{entryTypesId}:getIamPolicy", @@ -1595,6 +2421,91 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "list": { + "description": "Lists EntryType resources in a project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/entryTypes", + "httpMethod": "GET", + "id": "dataplex.projects.locations.entryTypes.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. Filter request. Filters are case-sensitive. The following formats are supported:labels.key1 = \"value1\" labels:key1 name = \"value\" These restrictions can be coinjoined with AND, OR and NOT conjunctions.", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Optional. Order by fields (name or create_time) for the result. If not specified, the ordering is undefined.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. Maximum number of EntryTypes to return. The service may return fewer than this value. If unspecified, at most 10 EntryTypes will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. Page token received from a previous ListEntryTypes call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to ListEntryTypes must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The resource name of the EntryType location, of the form: projects/{project_number}/locations/{location_id} where location_id refers to a GCP region.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/entryTypes", + "response": { + "$ref": "GoogleCloudDataplexV1ListEntryTypesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates a EntryType resource.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/entryTypes/{entryTypesId}", + "httpMethod": "PATCH", + "id": "dataplex.projects.locations.entryTypes.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Output only. The relative resource name of the EntryType, of the form: projects/{project_number}/locations/{location_id}/entryTypes/{entry_type_id}.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/entryTypes/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. Mask of fields to update.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + }, + "validateOnly": { + "description": "Optional. Only validate the request, but do not perform mutations. The default is false.", + "location": "query", + "type": "boolean" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "GoogleCloudDataplexV1EntryType" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "setIamPolicy": { "description": "Sets the access control policy on the specified resource. Replaces any existing policy.Can return NOT_FOUND, INVALID_ARGUMENT, and PERMISSION_DENIED errors.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/entryTypes/{entryTypesId}:setIamPolicy", @@ -4360,7 +5271,7 @@ } } }, - "revision": "20240224", + "revision": "20240410", "rootUrl": "https://dataplex.googleapis.com/", "schemas": { "Empty": { @@ -4578,6 +5489,269 @@ "properties": {}, "type": "object" }, + "GoogleCloudDataplexV1Aspect": { + "description": "An aspect is a single piece of metadata describing an entry.", + "id": "GoogleCloudDataplexV1Aspect", + "properties": { + "aspectSource": { + "$ref": "GoogleCloudDataplexV1AspectSource" + }, + "aspectType": { + "description": "Output only. The resource name of the type used to create this Aspect.", + "readOnly": true, + "type": "string" + }, + "createTime": { + "description": "Output only. The time when the Aspect was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "data": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Required. The content of the aspect, according to its aspect type schema. This will replace content. The maximum size of the field is 120KB (encoded as UTF-8).", + "type": "object" + }, + "path": { + "description": "Output only. The path in the entry under which the aspect is attached.", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. The time when the Aspect was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1AspectSource": { + "description": "AspectSource contains source system related information for the aspect.", + "id": "GoogleCloudDataplexV1AspectSource", + "properties": { + "createTime": { + "description": "The create time of the aspect in the source system.", + "format": "google-datetime", + "type": "string" + }, + "updateTime": { + "description": "The update time of the aspect in the source system.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1AspectType": { + "description": "Aspect Type is a template for creating Aspects, and represents the JSON-schema for a given Entry, e.g., BigQuery Table Schema.", + "id": "GoogleCloudDataplexV1AspectType", + "properties": { + "authorization": { + "$ref": "GoogleCloudDataplexV1AspectTypeAuthorization", + "description": "Immutable. Authorization defined for this type." + }, + "createTime": { + "description": "Output only. The time when the AspectType was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "Optional. Description of the AspectType.", + "type": "string" + }, + "displayName": { + "description": "Optional. User friendly display name.", + "type": "string" + }, + "etag": { + "description": "This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. User-defined labels for the AspectType.", + "type": "object" + }, + "metadataTemplate": { + "$ref": "GoogleCloudDataplexV1AspectTypeMetadataTemplate", + "description": "Required. MetadataTemplate of the aspect." + }, + "name": { + "description": "Output only. The relative resource name of the AspectType, of the form: projects/{project_number}/locations/{location_id}/aspectTypes/{aspect_type_id}.", + "readOnly": true, + "type": "string" + }, + "transferStatus": { + "description": "Output only. Denotes the transfer status of the Aspect Type. It is unspecified for Aspect Types created from Dataplex API.", + "enum": [ + "TRANSFER_STATUS_UNSPECIFIED", + "TRANSFER_STATUS_MIGRATED", + "TRANSFER_STATUS_TRANSFERRED" + ], + "enumDescriptions": [ + "The default value. It is set for resources that were not subject for migration from Data Catalog service.", + "Indicates that a resource was migrated from Data Catalog service but it hasn't been transferred yet. In particular the resource cannot be updated from Dataplex API.", + "Indicates that a resource was transferred from Data Catalog service. The resource can only be updated from Dataplex API." + ], + "readOnly": true, + "type": "string" + }, + "uid": { + "description": "Output only. System generated globally unique ID for the AspectType. This ID will be different if the AspectType is deleted and re-created with the same name.", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. The time when the AspectType was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1AspectTypeAuthorization": { + "description": "Autorization for an Aspect Type.", + "id": "GoogleCloudDataplexV1AspectTypeAuthorization", + "properties": { + "alternateUsePermission": { + "description": "Immutable. The IAM permission grantable on the Entry Group to allow access to instantiate Aspects of Dataplex owned Aspect Types, only settable for Dataplex owned Types.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1AspectTypeMetadataTemplate": { + "description": "MetadataTemplate definition for AspectType", + "id": "GoogleCloudDataplexV1AspectTypeMetadataTemplate", + "properties": { + "annotations": { + "$ref": "GoogleCloudDataplexV1AspectTypeMetadataTemplateAnnotations", + "description": "Optional. Specifies annotations on this field." + }, + "arrayItems": { + "$ref": "GoogleCloudDataplexV1AspectTypeMetadataTemplate", + "description": "Optional. array_items needs to be set if the type is array. array_items can refer to a primitive field or a complex (record only) field. To specify a primitive field, just name and type needs to be set in the nested MetadataTemplate. The recommended value for the name field is item, as this is not used in the actual payload." + }, + "constraints": { + "$ref": "GoogleCloudDataplexV1AspectTypeMetadataTemplateConstraints", + "description": "Optional. Specifies the constraints on this field." + }, + "enumValues": { + "description": "Optional. The list of values for an enum type. Needs to be defined if the type is enum.", + "items": { + "$ref": "GoogleCloudDataplexV1AspectTypeMetadataTemplateEnumValue" + }, + "type": "array" + }, + "index": { + "description": "Optional. Index is used to encode Template messages. The value of index can range between 1 and 2,147,483,647. Index must be unique within all fields in a Template. (Nested Templates can reuse indexes). Once a Template is defined, the index cannot be changed, because it identifies the field in the actual storage format. Index is a mandatory field, but it is optional for top level fields, and map/array \"values\" definitions.", + "format": "int32", + "type": "integer" + }, + "mapItems": { + "$ref": "GoogleCloudDataplexV1AspectTypeMetadataTemplate", + "description": "Optional. map_items needs to be set if the type is map. map_items can refer to a primitive field or a complex (record only) field. To specify a primitive field, just name and type needs to be set in the nested MetadataTemplate. The recommended value for the name field is item, as this is not used in the actual payload." + }, + "name": { + "description": "Required. The name of the field.", + "type": "string" + }, + "recordFields": { + "description": "Optional. Field definition, needs to be specified if the type is record. Defines the nested fields.", + "items": { + "$ref": "GoogleCloudDataplexV1AspectTypeMetadataTemplate" + }, + "type": "array" + }, + "type": { + "description": "Required. The datatype of this field. The following values are supported: Primitive types (string, integer, boolean, double, datetime); datetime must be of the format RFC3339 UTC \"Zulu\" (Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\"). Complex types (enum, array, map, record).", + "type": "string" + }, + "typeId": { + "description": "Optional. Id can be used if this definition of the field needs to be reused later. Id needs to be unique across the entire template. Id can only be specified if the field type is record.", + "type": "string" + }, + "typeRef": { + "description": "Optional. A reference to another field definition (instead of an inline definition). The value must be equal to the value of an id field defined elsewhere in the MetadataTemplate. Only fields with type as record can refer to other fields.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1AspectTypeMetadataTemplateAnnotations": { + "description": "Definition of the annotations of a field", + "id": "GoogleCloudDataplexV1AspectTypeMetadataTemplateAnnotations", + "properties": { + "deprecated": { + "description": "Optional. Marks a field as deprecated, a deprecation message can be included.", + "type": "string" + }, + "description": { + "description": "Optional. Specify a description for a field", + "type": "string" + }, + "displayName": { + "description": "Optional. Specify a displayname for a field.", + "type": "string" + }, + "displayOrder": { + "description": "Optional. Specify a display order for a field. Display order can be used to reorder where a field is rendered", + "format": "int32", + "type": "integer" + }, + "stringType": { + "description": "Optional. String Type annotations can be used to specify special meaning to string fields. The following values are supported: richText: The field must be interpreted as a rich text field. url: A fully qualified url link. resource: A service qualified resource reference.", + "type": "string" + }, + "stringValues": { + "description": "Optional. Suggested hints for string fields. These can be used to suggest values to users, through an UI for example.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1AspectTypeMetadataTemplateConstraints": { + "description": "Definition of the constraints of a field", + "id": "GoogleCloudDataplexV1AspectTypeMetadataTemplateConstraints", + "properties": { + "required": { + "description": "Optional. Marks this as an optional/required field.", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1AspectTypeMetadataTemplateEnumValue": { + "description": "Definition of Enumvalue (to be used by enum fields)", + "id": "GoogleCloudDataplexV1AspectTypeMetadataTemplateEnumValue", + "properties": { + "deprecated": { + "description": "Optional. Optional deprecation message to be set if an enum value needs to be deprecated.", + "type": "string" + }, + "index": { + "description": "Required. Index for the enum. Cannot be modified.", + "format": "int32", + "type": "integer" + }, + "name": { + "description": "Required. Name of the enumvalue. This is the actual value that the aspect will contain.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDataplexV1Asset": { "description": "An asset represents a cloud resource that is being managed within a lake as a member of a zone.", "id": "GoogleCloudDataplexV1Asset", @@ -5712,6 +6886,10 @@ "$ref": "GoogleCloudDataplexV1DataQualityRuleSetExpectation", "description": "Row-level rule which evaluates whether each column value is contained by a specified set." }, + "sqlAssertion": { + "$ref": "GoogleCloudDataplexV1DataQualityRuleSqlAssertion", + "description": "Aggregate rule which evaluates the number of rows returned for the provided statement." + }, "statisticRangeExpectation": { "$ref": "GoogleCloudDataplexV1DataQualityRuleStatisticRangeExpectation", "description": "Aggregate rule which evaluates whether the column aggregate statistic lies between a specified range." @@ -5776,6 +6954,12 @@ "description": "DataQualityRuleResult provides a more detailed, per-rule view of the results.", "id": "GoogleCloudDataplexV1DataQualityRuleResult", "properties": { + "assertionRowCount": { + "description": "Output only. The number of rows returned by the sql statement in the SqlAssertion rule.This field is only valid for SqlAssertion rules.", + "format": "int64", + "readOnly": true, + "type": "string" + }, "evaluatedCount": { "description": "The number of rows a rule was evaluated against.This field is only valid for row-level type rules.Evaluated count can be configured to either include all rows (default) - with null rows automatically failing rule evaluation, or exclude null rows from the evaluated_count, by setting ignore_nulls = true.", "format": "int64", @@ -5836,6 +7020,17 @@ }, "type": "object" }, + "GoogleCloudDataplexV1DataQualityRuleSqlAssertion": { + "description": "Queries for rows returned by the provided SQL statement. If any rows are are returned, this rule fails.The SQL statement needs to use BigQuery standard SQL syntax, and must not contain any semicolons.${data()} can be used to reference the rows being evaluated, i.e. the table after all additional filters (row filters, incremental data filters, sampling) are applied.Example: SELECT * FROM ${data()} WHERE price < 0", + "id": "GoogleCloudDataplexV1DataQualityRuleSqlAssertion", + "properties": { + "sqlStatement": { + "description": "Optional. The SQL statement.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDataplexV1DataQualityRuleStatisticRangeExpectation": { "description": "Evaluates whether the column aggregate statistic lies between a specified range.", "id": "GoogleCloudDataplexV1DataQualityRuleStatisticRangeExpectation", @@ -6027,6 +7222,10 @@ "bigqueryExport": { "$ref": "GoogleCloudDataplexV1DataQualitySpecPostScanActionsBigQueryExport", "description": "Optional. If set, results will be exported to the provided BigQuery table." + }, + "notificationReport": { + "$ref": "GoogleCloudDataplexV1DataQualitySpecPostScanActionsNotificationReport", + "description": "Optional. If set, results will be sent to the provided notification receipts upon triggers." } }, "type": "object" @@ -6042,6 +7241,67 @@ }, "type": "object" }, + "GoogleCloudDataplexV1DataQualitySpecPostScanActionsJobEndTrigger": { + "description": "This trigger is triggered whenever a scan job run ends, regardless of the result.", + "id": "GoogleCloudDataplexV1DataQualitySpecPostScanActionsJobEndTrigger", + "properties": {}, + "type": "object" + }, + "GoogleCloudDataplexV1DataQualitySpecPostScanActionsJobFailureTrigger": { + "description": "This trigger is triggered when the scan job itself fails, regardless of the result.", + "id": "GoogleCloudDataplexV1DataQualitySpecPostScanActionsJobFailureTrigger", + "properties": {}, + "type": "object" + }, + "GoogleCloudDataplexV1DataQualitySpecPostScanActionsNotificationReport": { + "description": "The configuration of notification report post scan action.", + "id": "GoogleCloudDataplexV1DataQualitySpecPostScanActionsNotificationReport", + "properties": { + "jobEndTrigger": { + "$ref": "GoogleCloudDataplexV1DataQualitySpecPostScanActionsJobEndTrigger", + "description": "Optional. If set, report will be sent when a scan job ends." + }, + "jobFailureTrigger": { + "$ref": "GoogleCloudDataplexV1DataQualitySpecPostScanActionsJobFailureTrigger", + "description": "Optional. If set, report will be sent when a scan job fails." + }, + "recipients": { + "$ref": "GoogleCloudDataplexV1DataQualitySpecPostScanActionsRecipients", + "description": "Required. The recipients who will receive the notification report." + }, + "scoreThresholdTrigger": { + "$ref": "GoogleCloudDataplexV1DataQualitySpecPostScanActionsScoreThresholdTrigger", + "description": "Optional. If set, report will be sent when score threshold is met." + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1DataQualitySpecPostScanActionsRecipients": { + "description": "The individuals or groups who are designated to receive notifications upon triggers.", + "id": "GoogleCloudDataplexV1DataQualitySpecPostScanActionsRecipients", + "properties": { + "emails": { + "description": "Optional. The email recipients who will receive the DataQualityScan results report.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1DataQualitySpecPostScanActionsScoreThresholdTrigger": { + "description": "This trigger is triggered when the DQ score in the job result is less than a specified input score.", + "id": "GoogleCloudDataplexV1DataQualitySpecPostScanActionsScoreThresholdTrigger", + "properties": { + "scoreThreshold": { + "description": "Optional. The score range is in 0,100.", + "format": "float", + "type": "number" + } + }, + "type": "object" + }, "GoogleCloudDataplexV1DataScan": { "description": "Represents a user-visible job which provides the insights for the related data source.For example: Data Quality: generates queries based on the rules and runs against the data to get data quality check results. Data Profile: analyzes the data in table(s) and generates insights about the structure, content and relationships (such as null percent, cardinality, min/max/mean, etc).", "id": "GoogleCloudDataplexV1DataScan", @@ -6895,6 +8155,276 @@ }, "type": "object" }, + "GoogleCloudDataplexV1Entry": { + "description": "An entry is a representation of a data asset which can be described by various metadata.", + "id": "GoogleCloudDataplexV1Entry", + "properties": { + "aspects": { + "additionalProperties": { + "$ref": "GoogleCloudDataplexV1Aspect" + }, + "description": "Optional. The Aspects attached to the Entry. The format for the key can be one of the following: 1. {projectId}.{locationId}.{aspectTypeId} (if the aspect is attached directly to the entry) 2. {projectId}.{locationId}.{aspectTypeId}@{path} (if the aspect is attached to an entry's path)", + "type": "object" + }, + "createTime": { + "description": "Output only. The time when the Entry was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "entrySource": { + "$ref": "GoogleCloudDataplexV1EntrySource", + "description": "Optional. Source system related information for an entry." + }, + "entryType": { + "description": "Required. Immutable. The resource name of the EntryType used to create this Entry.", + "type": "string" + }, + "fullyQualifiedName": { + "description": "Optional. A name for the entry that can reference it in an external system. The maximum size of the field is 4000 characters.", + "type": "string" + }, + "name": { + "description": "Identifier. The relative resource name of the Entry, of the form: projects/{project}/locations/{location}/entryGroups/{entry_group}/entries/{entry}.", + "type": "string" + }, + "parentEntry": { + "description": "Optional. Immutable. The resource name of the parent entry.", + "type": "string" + }, + "updateTime": { + "description": "Output only. The time when the Entry was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1EntryGroup": { + "description": "An Entry Group represents a logical grouping of one or more Entries.", + "id": "GoogleCloudDataplexV1EntryGroup", + "properties": { + "createTime": { + "description": "Output only. The time when the EntryGroup was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "Optional. Description of the EntryGroup.", + "type": "string" + }, + "displayName": { + "description": "Optional. User friendly display name.", + "type": "string" + }, + "etag": { + "description": "This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. User-defined labels for the EntryGroup.", + "type": "object" + }, + "name": { + "description": "Output only. The relative resource name of the EntryGroup, of the form: projects/{project_number}/locations/{location_id}/entryGroups/{entry_group_id}.", + "readOnly": true, + "type": "string" + }, + "transferStatus": { + "description": "Output only. Denotes the transfer status of the Entry Group. It is unspecified for Entry Group created from Dataplex API.", + "enum": [ + "TRANSFER_STATUS_UNSPECIFIED", + "TRANSFER_STATUS_MIGRATED", + "TRANSFER_STATUS_TRANSFERRED" + ], + "enumDescriptions": [ + "The default value. It is set for resources that were not subject for migration from Data Catalog service.", + "Indicates that a resource was migrated from Data Catalog service but it hasn't been transferred yet. In particular the resource cannot be updated from Dataplex API.", + "Indicates that a resource was transferred from Data Catalog service. The resource can only be updated from Dataplex API." + ], + "readOnly": true, + "type": "string" + }, + "uid": { + "description": "Output only. System generated globally unique ID for the EntryGroup. This ID will be different if the EntryGroup is deleted and re-created with the same name.", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. The time when the EntryGroup was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1EntrySource": { + "description": "EntrySource contains source system related information for the entry.", + "id": "GoogleCloudDataplexV1EntrySource", + "properties": { + "ancestors": { + "description": "Immutable. The ancestors of the Entry in the source system.", + "items": { + "$ref": "GoogleCloudDataplexV1EntrySourceAncestor" + }, + "type": "array" + }, + "createTime": { + "description": "The create time of the resource in the source system.", + "format": "google-datetime", + "type": "string" + }, + "description": { + "description": "Description of the Entry. The maximum size of the field is 2000 characters.", + "type": "string" + }, + "displayName": { + "description": "User friendly display name. The maximum size of the field is 500 characters.", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "User-defined labels. The maximum size of keys and values is 128 characters each.", + "type": "object" + }, + "platform": { + "description": "The platform containing the source system. The maximum size of the field is 64 characters.", + "type": "string" + }, + "resource": { + "description": "The name of the resource in the source system. The maximum size of the field is 4000 characters.", + "type": "string" + }, + "system": { + "description": "The name of the source system. The maximum size of the field is 64 characters.", + "type": "string" + }, + "updateTime": { + "description": "The update time of the resource in the source system.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1EntrySourceAncestor": { + "description": "Ancestor contains information about individual items in the hierarchy of an Entry.", + "id": "GoogleCloudDataplexV1EntrySourceAncestor", + "properties": { + "name": { + "description": "Optional. The name of the ancestor resource.", + "type": "string" + }, + "type": { + "description": "Optional. The type of the ancestor resource.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1EntryType": { + "description": "Entry Type is a template for creating Entries.", + "id": "GoogleCloudDataplexV1EntryType", + "properties": { + "authorization": { + "$ref": "GoogleCloudDataplexV1EntryTypeAuthorization", + "description": "Immutable. Authorization defined for this type." + }, + "createTime": { + "description": "Output only. The time when the EntryType was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "Optional. Description of the EntryType.", + "type": "string" + }, + "displayName": { + "description": "Optional. User friendly display name.", + "type": "string" + }, + "etag": { + "description": "Optional. This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. User-defined labels for the EntryType.", + "type": "object" + }, + "name": { + "description": "Output only. The relative resource name of the EntryType, of the form: projects/{project_number}/locations/{location_id}/entryTypes/{entry_type_id}.", + "readOnly": true, + "type": "string" + }, + "platform": { + "description": "Optional. The platform that Entries of this type belongs to.", + "type": "string" + }, + "requiredAspects": { + "description": "AspectInfo for the entry type.", + "items": { + "$ref": "GoogleCloudDataplexV1EntryTypeAspectInfo" + }, + "type": "array" + }, + "system": { + "description": "Optional. The system that Entries of this type belongs to. Examples include CloudSQL, MariaDB etc", + "type": "string" + }, + "typeAliases": { + "description": "Optional. Indicates the class this Entry Type belongs to, for example, TABLE, DATABASE, MODEL.", + "items": { + "type": "string" + }, + "type": "array" + }, + "uid": { + "description": "Output only. System generated globally unique ID for the EntryType. This ID will be different if the EntryType is deleted and re-created with the same name.", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. The time when the EntryType was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1EntryTypeAspectInfo": { + "id": "GoogleCloudDataplexV1EntryTypeAspectInfo", + "properties": { + "type": { + "description": "Required aspect type for the entry type.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1EntryTypeAuthorization": { + "description": "Authorization for an Entry Type.", + "id": "GoogleCloudDataplexV1EntryTypeAuthorization", + "properties": { + "alternateUsePermission": { + "description": "Immutable. The IAM permission grantable on the Entry Group to allow access to instantiate Entries of Dataplex owned Entry Types, only settable for Dataplex owned Types.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDataplexV1Environment": { "description": "Environment represents a user-visible compute infrastructure for analytics within a lake.", "id": "GoogleCloudDataplexV1Environment", @@ -7090,6 +8620,26 @@ }, "type": "object" }, + "GoogleCloudDataplexV1GenerateDataQualityRulesRequest": { + "description": "Generate recommended DataQualityRules request.", + "id": "GoogleCloudDataplexV1GenerateDataQualityRulesRequest", + "properties": {}, + "type": "object" + }, + "GoogleCloudDataplexV1GenerateDataQualityRulesResponse": { + "description": "Generate recommended DataQualityRules response.", + "id": "GoogleCloudDataplexV1GenerateDataQualityRulesResponse", + "properties": { + "rule": { + "description": "Generated recommended {@link DataQualityRule}s.", + "items": { + "$ref": "GoogleCloudDataplexV1DataQualityRule" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudDataplexV1GovernanceEvent": { "description": "Payload associated with Governance related log events.", "id": "GoogleCloudDataplexV1GovernanceEvent", @@ -7522,6 +9072,31 @@ }, "type": "object" }, + "GoogleCloudDataplexV1ListAspectTypesResponse": { + "description": "List AspectTypes response", + "id": "GoogleCloudDataplexV1ListAspectTypesResponse", + "properties": { + "aspectTypes": { + "description": "ListAspectTypes under the given parent location.", + "items": { + "$ref": "GoogleCloudDataplexV1AspectType" + }, + "type": "array" + }, + "nextPageToken": { + "description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", + "type": "string" + }, + "unreachableLocations": { + "description": "Locations that could not be reached.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudDataplexV1ListAssetsResponse": { "description": "List assets response.", "id": "GoogleCloudDataplexV1ListAssetsResponse", @@ -7694,6 +9269,73 @@ }, "type": "object" }, + "GoogleCloudDataplexV1ListEntriesResponse": { + "id": "GoogleCloudDataplexV1ListEntriesResponse", + "properties": { + "entries": { + "description": "The list of entries.", + "items": { + "$ref": "GoogleCloudDataplexV1Entry" + }, + "type": "array" + }, + "nextPageToken": { + "description": "Pagination token.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1ListEntryGroupsResponse": { + "description": "List ListEntryGroups response.", + "id": "GoogleCloudDataplexV1ListEntryGroupsResponse", + "properties": { + "entryGroups": { + "description": "ListEntryGroups under the given parent location.", + "items": { + "$ref": "GoogleCloudDataplexV1EntryGroup" + }, + "type": "array" + }, + "nextPageToken": { + "description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", + "type": "string" + }, + "unreachableLocations": { + "description": "Locations that could not be reached.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1ListEntryTypesResponse": { + "description": "List EntryTypes response", + "id": "GoogleCloudDataplexV1ListEntryTypesResponse", + "properties": { + "entryTypes": { + "description": "ListEntryTypes under the given parent location.", + "items": { + "$ref": "GoogleCloudDataplexV1EntryType" + }, + "type": "array" + }, + "nextPageToken": { + "description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", + "type": "string" + }, + "unreachableLocations": { + "description": "Locations that could not be reached.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudDataplexV1ListEnvironmentsResponse": { "description": "List environments response.", "id": "GoogleCloudDataplexV1ListEnvironmentsResponse", @@ -8177,6 +9819,65 @@ }, "type": "object" }, + "GoogleCloudDataplexV1SearchEntriesResponse": { + "id": "GoogleCloudDataplexV1SearchEntriesResponse", + "properties": { + "nextPageToken": { + "description": "Pagination token.", + "type": "string" + }, + "results": { + "description": "The results matching the search query.", + "items": { + "$ref": "GoogleCloudDataplexV1SearchEntriesResult" + }, + "type": "array" + }, + "totalSize": { + "description": "The estimated total number of matching entries. Not guaranteed to be accurate.", + "format": "int32", + "type": "integer" + }, + "unreachable": { + "description": "Unreachable locations. Search results don't include data from those locations.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1SearchEntriesResult": { + "description": "A single result of a SearchEntries request.", + "id": "GoogleCloudDataplexV1SearchEntriesResult", + "properties": { + "dataplexEntry": { + "$ref": "GoogleCloudDataplexV1Entry", + "description": "Entry format of the result." + }, + "linkedResource": { + "description": "Linked resource name.", + "type": "string" + }, + "snippets": { + "$ref": "GoogleCloudDataplexV1SearchEntriesResultSnippets", + "description": "Snippets." + } + }, + "type": "object" + }, + "GoogleCloudDataplexV1SearchEntriesResultSnippets": { + "description": "Snippets for the entry, contains HTML-style highlighting for matched tokens, will be used in UI.", + "id": "GoogleCloudDataplexV1SearchEntriesResultSnippets", + "properties": { + "dataplexEntry": { + "$ref": "GoogleCloudDataplexV1Entry", + "description": "Entry" + } + }, + "type": "object" + }, "GoogleCloudDataplexV1Session": { "description": "Represents an active analyze session running for a user.", "id": "GoogleCloudDataplexV1Session", diff --git a/etc/api/dataproc/v1/dataproc-api.json b/etc/api/dataproc/v1/dataproc-api.json index 0ac1f250f2..953926f09b 100644 --- a/etc/api/dataproc/v1/dataproc-api.json +++ b/etc/api/dataproc/v1/dataproc-api.json @@ -16,6 +16,16 @@ "discoveryVersion": "v1", "documentationLink": "https://cloud.google.com/dataproc/", "endpoints": [ + { + "description": "Regional Endpoint", + "endpointUrl": "https://dataproc.europe-west3.rep.googleapis.com/", + "location": "europe-west3" + }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://dataproc.europe-west9.rep.googleapis.com/", + "location": "europe-west9" + }, { "description": "Regional Endpoint", "endpointUrl": "https://dataproc.me-central2.rep.googleapis.com/", @@ -348,6 +358,34 @@ }, "batches": { "methods": { + "analyze": { + "description": "Analyze a Batch for possible recommendations and insights.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/batches/{batchesId}:analyze", + "httpMethod": "POST", + "id": "dataproc.projects.locations.batches.analyze", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The fully qualified name of the batch to analyze in the format \"projects/PROJECT_ID/locations/DATAPROC_REGION/batches/BATCH_ID\"", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/batches/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:analyze", + "request": { + "$ref": "AnalyzeBatchRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "create": { "description": "Creates a batch workload that executes asynchronously.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/batches", @@ -3034,7 +3072,7 @@ } } }, - "revision": "20240222", + "revision": "20240414", "rootUrl": "https://dataproc.googleapis.com/", "schemas": { "AcceleratorConfig": { @@ -3053,6 +3091,17 @@ }, "type": "object" }, + "AnalyzeBatchRequest": { + "description": "A request to analyze a batch workload.", + "id": "AnalyzeBatchRequest", + "properties": { + "requestId": { + "description": "Optional. A unique ID used to identify the request. If the service receives two AnalyzeBatchRequest (http://cloud/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#google.cloud.dataproc.v1.AnalyzeBatchRequest)s with the same request_id, the second request is ignored and the Operation that corresponds to the first request created and stored in the backend is returned.Recommendation: Set this value to a UUID (https://en.wikipedia.org/wiki/Universally_unique_identifier).The value must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-). The maximum length is 40 characters.", + "type": "string" + } + }, + "type": "object" + }, "AnalyzeOperationMetadata": { "description": "Metadata describing the Analyze operation.", "id": "AnalyzeOperationMetadata", @@ -4110,7 +4159,7 @@ "description": "Optional. Confidential Instance Config for clusters using Confidential VMs (https://cloud.google.com/compute/confidential-vm/docs)." }, "internalIpOnly": { - "description": "Optional. If true, all instances in the cluster will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This internal_ip_only restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.", + "description": "Optional. This setting applies to subnetwork-enabled networks. It is set to true by default in clusters created with image versions 2.2.x.When set to true: All cluster VMs have internal IP addresses. Google Private Access (https://cloud.google.com/vpc/docs/private-google-access) must be enabled to access Dataproc and other Google Cloud APIs. Off-cluster dependencies must be configured to be accessible without external IP addresses.When set to false: Cluster VMs are not restricted to internal IP addresses. Ephemeral external IP addresses are assigned to each cluster VM.", "type": "boolean" }, "metadata": { diff --git a/etc/api/datastore/v1/datastore-api.json b/etc/api/datastore/v1/datastore-api.json index 508716f868..0b3dac223f 100644 --- a/etc/api/datastore/v1/datastore-api.json +++ b/etc/api/datastore/v1/datastore-api.json @@ -654,7 +654,7 @@ } } }, - "revision": "20240226", + "revision": "20240324", "rootUrl": "https://datastore.googleapis.com/", "schemas": { "Aggregation": { @@ -993,6 +993,62 @@ }, "type": "object" }, + "ExecutionStats": { + "description": "Execution statistics for the query.", + "id": "ExecutionStats", + "properties": { + "debugStats": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Debugging statistics from the execution of the query. Note that the debugging stats are subject to change as Firestore evolves. It could include: { \"indexes_entries_scanned\": \"1000\", \"documents_scanned\": \"20\", \"billing_details\" : { \"documents_billable\": \"20\", \"index_entries_billable\": \"1000\", \"min_query_cost\": \"0\" } }", + "type": "object" + }, + "executionDuration": { + "description": "Total time to execute the query in the backend.", + "format": "google-duration", + "type": "string" + }, + "readOperations": { + "description": "Total billable read operations.", + "format": "int64", + "type": "string" + }, + "resultsReturned": { + "description": "Total number of results returned, including documents, projections, aggregation results, keys.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "ExplainMetrics": { + "description": "Explain metrics for the query.", + "id": "ExplainMetrics", + "properties": { + "executionStats": { + "$ref": "ExecutionStats", + "description": "Aggregated stats from the execution of the query. Only present when ExplainOptions.analyze is set to true." + }, + "planSummary": { + "$ref": "PlanSummary", + "description": "Planning phase information for the query." + } + }, + "type": "object" + }, + "ExplainOptions": { + "description": "Explain options for the query.", + "id": "ExplainOptions", + "properties": { + "analyze": { + "description": "Optional. Whether to execute this query. When false (the default), the query will be planned, returning only metrics from the planning stages. When true, the query will be planned and executed, returning the full query results along with both planning and execution stage metrics.", + "type": "boolean" + } + }, + "type": "object" + }, "Filter": { "description": "A holder for any type of filter.", "id": "Filter", @@ -1823,6 +1879,10 @@ }, "type": "array" }, + "propertyMask": { + "$ref": "PropertyMask", + "description": "The properties to return. Defaults to returning all properties. If this field is set and an entity has a property not referenced in the mask, it will be absent from LookupResponse.found.entity.properties. The entity's key is always returned." + }, "readOptions": { "$ref": "ReadOptions", "description": "The options for this lookup request." @@ -1885,6 +1945,10 @@ "$ref": "Entity", "description": "The entity to insert. The entity must not already exist. The entity key's final path element may be incomplete." }, + "propertyMask": { + "$ref": "PropertyMask", + "description": "The properties to write in this mutation. None of the properties in the mask may have a reserved name, except for `__key__`. This field is ignored for `delete`. If the entity already exists, only properties referenced in the mask are updated, others are left untouched. Properties referenced in the mask but not in the entity are deleted." + }, "update": { "$ref": "Entity", "description": "The entity to update. The entity must already exist. Must have a complete key path." @@ -1970,6 +2034,24 @@ }, "type": "object" }, + "PlanSummary": { + "description": "Planning phase information for the query.", + "id": "PlanSummary", + "properties": { + "indexesUsed": { + "description": "The indexes selected for the query. For example: [ {\"query_scope\": \"Collection\", \"properties\": \"(foo ASC, __name__ ASC)\"}, {\"query_scope\": \"Collection\", \"properties\": \"(bar ASC, __name__ ASC)\"} ]", + "items": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, "Projection": { "description": "A representation of a property in a projection.", "id": "Projection", @@ -2024,6 +2106,20 @@ }, "type": "object" }, + "PropertyMask": { + "description": "The set of arbitrarily nested property paths used to restrict an operation to only a subset of properties in an entity.", + "id": "PropertyMask", + "properties": { + "paths": { + "description": "The paths to the properties covered by this mask. A path is a list of property names separated by dots (`.`), for example `foo.bar` means the property `bar` inside the entity property `foo` inside the entity associated with this path. If a property name contains a dot `.` or a backslash `\\`, then that name must be escaped. A path must not be empty, and may not reference a value inside an array value.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "PropertyOrder": { "description": "The desired order for a specific property.", "id": "PropertyOrder", @@ -2309,6 +2405,10 @@ "description": "The ID of the database against which to make the request. '(default)' is not allowed; please use empty string '' to refer the default database.", "type": "string" }, + "explainOptions": { + "$ref": "ExplainOptions", + "description": "Optional. Explain options for the query. If set, additional query statistics will be returned. If not, only query results will be returned." + }, "gqlQuery": { "$ref": "GqlQuery", "description": "The GQL query to run. This query must be an aggregation query." @@ -2332,6 +2432,10 @@ "$ref": "AggregationResultBatch", "description": "A batch of aggregation results. Always present." }, + "explainMetrics": { + "$ref": "ExplainMetrics", + "description": "Query explain metrics. This is only present when the RunAggregationQueryRequest.explain_options is provided, and it is sent only once with the last response in the stream." + }, "query": { "$ref": "AggregationQuery", "description": "The parsed form of the `GqlQuery` from the request, if it was set." @@ -2352,6 +2456,10 @@ "description": "The ID of the database against which to make the request. '(default)' is not allowed; please use empty string '' to refer the default database.", "type": "string" }, + "explainOptions": { + "$ref": "ExplainOptions", + "description": "Optional. Explain options for the query. If set, additional query statistics will be returned. If not, only query results will be returned." + }, "gqlQuery": { "$ref": "GqlQuery", "description": "The GQL query to run. This query must be a non-aggregation query." @@ -2360,6 +2468,10 @@ "$ref": "PartitionId", "description": "Entities are partitioned into subsets, identified by a partition ID. Queries are scoped to a single partition. This partition ID is normalized with the standard default context partition ID." }, + "propertyMask": { + "$ref": "PropertyMask", + "description": "The properties to return. This field must not be set for a projection query. See LookupRequest.property_mask." + }, "query": { "$ref": "Query", "description": "The query to run." @@ -2379,6 +2491,10 @@ "$ref": "QueryResultBatch", "description": "A batch of query results (always present)." }, + "explainMetrics": { + "$ref": "ExplainMetrics", + "description": "Query explain metrics. This is only present when the RunQueryRequest.explain_options is provided, and it is sent only once with the last response in the stream." + }, "query": { "$ref": "Query", "description": "The parsed form of the `GqlQuery` from the request, if it was set." diff --git a/etc/api/datastore/v1beta1/datastore-api.json b/etc/api/datastore/v1beta1/datastore-api.json index 2cc27f7cff..78106b1e68 100644 --- a/etc/api/datastore/v1beta1/datastore-api.json +++ b/etc/api/datastore/v1beta1/datastore-api.json @@ -168,7 +168,7 @@ } } }, - "revision": "20240226", + "revision": "20240324", "rootUrl": "https://datastore.googleapis.com/", "schemas": { "GoogleDatastoreAdminV1CommonMetadata": { diff --git a/etc/api/datastore/v1beta3/datastore-api.json b/etc/api/datastore/v1beta3/datastore-api.json index 5b9b46f29c..64c8e7f3f8 100644 --- a/etc/api/datastore/v1beta3/datastore-api.json +++ b/etc/api/datastore/v1beta3/datastore-api.json @@ -336,7 +336,7 @@ } } }, - "revision": "20240226", + "revision": "20240324", "rootUrl": "https://datastore.googleapis.com/", "schemas": { "Aggregation": { @@ -653,6 +653,62 @@ }, "type": "object" }, + "ExecutionStats": { + "description": "Execution statistics for the query.", + "id": "ExecutionStats", + "properties": { + "debugStats": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Debugging statistics from the execution of the query. Note that the debugging stats are subject to change as Firestore evolves. It could include: { \"indexes_entries_scanned\": \"1000\", \"documents_scanned\": \"20\", \"billing_details\" : { \"documents_billable\": \"20\", \"index_entries_billable\": \"1000\", \"min_query_cost\": \"0\" } }", + "type": "object" + }, + "executionDuration": { + "description": "Total time to execute the query in the backend.", + "format": "google-duration", + "type": "string" + }, + "readOperations": { + "description": "Total billable read operations.", + "format": "int64", + "type": "string" + }, + "resultsReturned": { + "description": "Total number of results returned, including documents, projections, aggregation results, keys.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "ExplainMetrics": { + "description": "Explain metrics for the query.", + "id": "ExplainMetrics", + "properties": { + "executionStats": { + "$ref": "ExecutionStats", + "description": "Aggregated stats from the execution of the query. Only present when ExplainOptions.analyze is set to true." + }, + "planSummary": { + "$ref": "PlanSummary", + "description": "Planning phase information for the query." + } + }, + "type": "object" + }, + "ExplainOptions": { + "description": "Explain options for the query.", + "id": "ExplainOptions", + "properties": { + "analyze": { + "description": "Optional. Whether to execute this query. When false (the default), the query will be planned, returning only metrics from the planning stages. When true, the query will be planned and executed, returning the full query results along with both planning and execution stage metrics.", + "type": "boolean" + } + }, + "type": "object" + }, "Filter": { "description": "A holder for any type of filter.", "id": "Filter", @@ -1278,6 +1334,10 @@ }, "type": "array" }, + "propertyMask": { + "$ref": "PropertyMask", + "description": "The properties to return. Defaults to returning all properties. If this field is set and an entity has a property not referenced in the mask, it will be absent from LookupResponse.found.entity.properties. The entity's key is always returned." + }, "readOptions": { "$ref": "ReadOptions", "description": "The options for this lookup request." @@ -1335,6 +1395,10 @@ "$ref": "Entity", "description": "The entity to insert. The entity must not already exist. The entity key's final path element may be incomplete." }, + "propertyMask": { + "$ref": "PropertyMask", + "description": "The properties to write in this mutation. None of the properties in the mask may have a reserved name, except for `__key__`. This field is ignored for `delete`. If the entity already exists, only properties referenced in the mask are updated, others are left untouched. Properties referenced in the mask but not in the entity are deleted." + }, "update": { "$ref": "Entity", "description": "The entity to update. The entity must already exist. Must have a complete key path." @@ -1416,6 +1480,24 @@ }, "type": "object" }, + "PlanSummary": { + "description": "Planning phase information for the query.", + "id": "PlanSummary", + "properties": { + "indexesUsed": { + "description": "The indexes selected for the query. For example: [ {\"query_scope\": \"Collection\", \"properties\": \"(foo ASC, __name__ ASC)\"}, {\"query_scope\": \"Collection\", \"properties\": \"(bar ASC, __name__ ASC)\"} ]", + "items": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, "Projection": { "description": "A representation of a property in a projection.", "id": "Projection", @@ -1470,6 +1552,20 @@ }, "type": "object" }, + "PropertyMask": { + "description": "The set of arbitrarily nested property paths used to restrict an operation to only a subset of properties in an entity.", + "id": "PropertyMask", + "properties": { + "paths": { + "description": "The paths to the properties covered by this mask. A path is a list of property names separated by dots (`.`), for example `foo.bar` means the property `bar` inside the entity property `foo` inside the entity associated with this path. If a property name contains a dot `.` or a backslash `\\`, then that name must be escaped. A path must not be empty, and may not reference a value inside an array value.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "PropertyOrder": { "description": "The desired order for a specific property.", "id": "PropertyOrder", @@ -1743,6 +1839,10 @@ "$ref": "AggregationQuery", "description": "The query to run." }, + "explainOptions": { + "$ref": "ExplainOptions", + "description": "Optional. Explain options for the query. If set, additional query statistics will be returned. If not, only query results will be returned." + }, "gqlQuery": { "$ref": "GqlQuery", "description": "The GQL query to run. This query must be an aggregation query." @@ -1766,6 +1866,10 @@ "$ref": "AggregationResultBatch", "description": "A batch of aggregation results. Always present." }, + "explainMetrics": { + "$ref": "ExplainMetrics", + "description": "Query explain metrics. This is only present when the RunAggregationQueryRequest.explain_options is provided, and it is sent only once with the last response in the stream." + }, "query": { "$ref": "AggregationQuery", "description": "The parsed form of the `GqlQuery` from the request, if it was set." @@ -1777,6 +1881,10 @@ "description": "The request for Datastore.RunQuery.", "id": "RunQueryRequest", "properties": { + "explainOptions": { + "$ref": "ExplainOptions", + "description": "Optional. Explain options for the query. If set, additional query statistics will be returned. If not, only query results will be returned." + }, "gqlQuery": { "$ref": "GqlQuery", "description": "The GQL query to run. This query must be a non-aggregation query." @@ -1785,6 +1893,10 @@ "$ref": "PartitionId", "description": "Entities are partitioned into subsets, identified by a partition ID. Queries are scoped to a single partition. This partition ID is normalized with the standard default context partition ID." }, + "propertyMask": { + "$ref": "PropertyMask", + "description": "The properties to return. This field must not be set for a projection query. See LookupRequest.property_mask." + }, "query": { "$ref": "Query", "description": "The query to run." @@ -1804,6 +1916,10 @@ "$ref": "QueryResultBatch", "description": "A batch of query results (always present)." }, + "explainMetrics": { + "$ref": "ExplainMetrics", + "description": "Query explain metrics. This is only present when the RunQueryRequest.explain_options is provided, and it is sent only once with the last response in the stream." + }, "query": { "$ref": "Query", "description": "The parsed form of the `GqlQuery` from the request, if it was set." diff --git a/etc/api/datastream/v1/datastream-api.json b/etc/api/datastream/v1/datastream-api.json index 20fb1163f9..26c1306a1c 100644 --- a/etc/api/datastream/v1/datastream-api.json +++ b/etc/api/datastream/v1/datastream-api.json @@ -1250,9 +1250,15 @@ } } }, - "revision": "20240221", + "revision": "20240410", "rootUrl": "https://datastream.googleapis.com/", "schemas": { + "AppendOnly": { + "description": "AppendOnly mode defines that all changes to a table will be written to the destination table.", + "id": "AppendOnly", + "properties": {}, + "type": "object" + }, "AvroFileFormat": { "description": "AVRO file format configuration.", "id": "AvroFileFormat", @@ -1358,11 +1364,19 @@ "description": "BigQuery destination configuration", "id": "BigQueryDestinationConfig", "properties": { + "appendOnly": { + "$ref": "AppendOnly", + "description": "Append only mode" + }, "dataFreshness": { "description": "The guaranteed data freshness (in seconds) when querying tables created by the stream. Editing this field will only affect new tables created in the future, but existing tables will not be impacted. Lower values mean that queries will return fresher data, but may result in higher cost.", "format": "google-duration", "type": "string" }, + "merge": { + "$ref": "Merge", + "description": "The standard mode" + }, "singleTargetDataset": { "$ref": "SingleTargetDataset", "description": "Single destination dataset." @@ -1936,6 +1950,12 @@ }, "type": "object" }, + "Merge": { + "description": "Merge mode defines that all changes to a table will be merged at the destination table.", + "id": "Merge", + "properties": {}, + "type": "object" + }, "MostRecentStartPosition": { "description": "CDC strategy to start replicating from the most recent position in the source.", "id": "MostRecentStartPosition", diff --git a/etc/api/datastream/v1alpha1/datastream-api.json b/etc/api/datastream/v1alpha1/datastream-api.json index f7317efacb..d63562f6b0 100644 --- a/etc/api/datastream/v1alpha1/datastream-api.json +++ b/etc/api/datastream/v1alpha1/datastream-api.json @@ -1224,7 +1224,7 @@ } } }, - "revision": "20240221", + "revision": "20240410", "rootUrl": "https://datastream.googleapis.com/", "schemas": { "AvroFileFormat": { diff --git a/etc/api/deploymentmanager/alpha/deploymentmanager-api.json b/etc/api/deploymentmanager/alpha/deploymentmanager-api.json index 17a2c3dd4e..144e057952 100644 --- a/etc/api/deploymentmanager/alpha/deploymentmanager-api.json +++ b/etc/api/deploymentmanager/alpha/deploymentmanager-api.json @@ -1588,7 +1588,7 @@ } } }, - "revision": "20240229", + "revision": "20240404", "rootUrl": "https://deploymentmanager.googleapis.com/", "schemas": { "AsyncOptions": { diff --git a/etc/api/deploymentmanager/v2/deploymentmanager-api.json b/etc/api/deploymentmanager/v2/deploymentmanager-api.json index 4a3ade8c8a..9ea0a9fa9e 100644 --- a/etc/api/deploymentmanager/v2/deploymentmanager-api.json +++ b/etc/api/deploymentmanager/v2/deploymentmanager-api.json @@ -988,7 +988,7 @@ } } }, - "revision": "20240229", + "revision": "20240404", "rootUrl": "https://deploymentmanager.googleapis.com/", "schemas": { "AuditConfig": { diff --git a/etc/api/deploymentmanager/v2beta/deploymentmanager-api.json b/etc/api/deploymentmanager/v2beta/deploymentmanager-api.json index 651445d1a0..0220867512 100644 --- a/etc/api/deploymentmanager/v2beta/deploymentmanager-api.json +++ b/etc/api/deploymentmanager/v2beta/deploymentmanager-api.json @@ -1552,7 +1552,7 @@ } } }, - "revision": "20240229", + "revision": "20240404", "rootUrl": "https://deploymentmanager.googleapis.com/", "schemas": { "AsyncOptions": { diff --git a/etc/api/dialogflow/v2/dialogflow-api.json b/etc/api/dialogflow/v2/dialogflow-api.json index ed4d4ef593..7ae8312516 100644 --- a/etc/api/dialogflow/v2/dialogflow-api.json +++ b/etc/api/dialogflow/v2/dialogflow-api.json @@ -8327,7 +8327,7 @@ } } }, - "revision": "20240227", + "revision": "20240412", "rootUrl": "https://dialogflow.googleapis.com/", "schemas": { "GoogleCloudDialogflowCxV3AdvancedSettings": { @@ -8345,6 +8345,10 @@ "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" @@ -8384,6 +8388,34 @@ }, "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" + }, "GoogleCloudDialogflowCxV3AudioInput": { "description": "Represents the natural speech audio to be processed.", "id": "GoogleCloudDialogflowCxV3AudioInput", @@ -10341,6 +10373,10 @@ ], "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" @@ -10364,6 +10400,22 @@ "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" @@ -10390,6 +10442,32 @@ }, "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", @@ -10623,6 +10701,10 @@ "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" @@ -10662,6 +10744,34 @@ }, "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", @@ -12603,6 +12713,10 @@ ], "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" @@ -12626,6 +12740,22 @@ "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" @@ -12652,6 +12782,32 @@ }, "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", diff --git a/etc/api/dialogflow/v2beta1/dialogflow-api.json b/etc/api/dialogflow/v2beta1/dialogflow-api.json index d9e0cf37f0..b6e15713ef 100644 --- a/etc/api/dialogflow/v2beta1/dialogflow-api.json +++ b/etc/api/dialogflow/v2beta1/dialogflow-api.json @@ -7695,7 +7695,7 @@ } } }, - "revision": "20240227", + "revision": "20240412", "rootUrl": "https://dialogflow.googleapis.com/", "schemas": { "GoogleCloudDialogflowCxV3AdvancedSettings": { @@ -7713,6 +7713,10 @@ "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" @@ -7752,6 +7756,34 @@ }, "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" + }, "GoogleCloudDialogflowCxV3AudioInput": { "description": "Represents the natural speech audio to be processed.", "id": "GoogleCloudDialogflowCxV3AudioInput", @@ -9709,6 +9741,10 @@ ], "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" @@ -9732,6 +9768,22 @@ "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" @@ -9758,6 +9810,32 @@ }, "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", @@ -9991,6 +10069,10 @@ "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" @@ -10030,6 +10112,34 @@ }, "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", @@ -11971,6 +12081,10 @@ ], "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" @@ -11994,6 +12108,22 @@ "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" @@ -12020,6 +12150,32 @@ }, "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", diff --git a/etc/api/dialogflow/v3/dialogflow-api.json b/etc/api/dialogflow/v3/dialogflow-api.json index beb21ecad6..064707e300 100644 --- a/etc/api/dialogflow/v3/dialogflow-api.json +++ b/etc/api/dialogflow/v3/dialogflow-api.json @@ -4453,7 +4453,7 @@ } } }, - "revision": "20240227", + "revision": "20240412", "rootUrl": "https://dialogflow.googleapis.com/", "schemas": { "GoogleCloudDialogflowCxV3AdvancedSettings": { @@ -4471,6 +4471,10 @@ "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" @@ -4510,6 +4514,34 @@ }, "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", @@ -4538,6 +4570,10 @@ "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" @@ -4563,6 +4599,10 @@ "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." + }, "securitySettings": { "description": "Name of the SecuritySettings reference for the agent. Format: `projects//locations//securitySettings/`.", "type": "string" @@ -4656,6 +4696,21 @@ }, "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", @@ -5152,6 +5207,224 @@ }, "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": { + "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": { + "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" + }, "GoogleCloudDialogflowCxV3DeleteDocumentOperationMetadata": { "description": "Metadata for DeleteDocument operation.", "id": "GoogleCloudDialogflowCxV3DeleteDocumentOperationMetadata", @@ -6111,6 +6384,10 @@ "$ref": "GoogleCloudDialogflowCxV3KnowledgeConnectorSettings", "description": "Optional. Knowledge connector configuration." }, + "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" @@ -6163,6 +6440,24 @@ }, "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", @@ -7920,6 +8215,10 @@ "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." @@ -7966,6 +8265,10 @@ "$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_quality_signals is set to true in the request." + }, "diagnosticInfo": { "additionalProperties": { "description": "Properties of the object.", @@ -8593,7 +8896,7 @@ "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.", + "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" } @@ -8625,7 +8928,7 @@ "type": "string" }, "enableAudioRedaction": { - "description": "Enable audio redaction if it is true.", + "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": { @@ -9547,6 +9850,10 @@ ], "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" @@ -9570,6 +9877,22 @@ "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" @@ -9596,6 +9919,32 @@ }, "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", @@ -9829,6 +10178,10 @@ "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" @@ -9868,6 +10221,34 @@ }, "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", @@ -11809,6 +12190,10 @@ ], "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" @@ -11832,6 +12217,22 @@ "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" @@ -11858,6 +12259,32 @@ }, "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", diff --git a/etc/api/dialogflow/v3beta1/dialogflow-api.json b/etc/api/dialogflow/v3beta1/dialogflow-api.json index 7c6bec44e1..30abf7606d 100644 --- a/etc/api/dialogflow/v3beta1/dialogflow-api.json +++ b/etc/api/dialogflow/v3beta1/dialogflow-api.json @@ -4453,7 +4453,7 @@ } } }, - "revision": "20240228", + "revision": "20240412", "rootUrl": "https://dialogflow.googleapis.com/", "schemas": { "GoogleCloudDialogflowCxV3AdvancedSettings": { @@ -4471,6 +4471,10 @@ "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" @@ -4510,6 +4514,34 @@ }, "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" + }, "GoogleCloudDialogflowCxV3AudioInput": { "description": "Represents the natural speech audio to be processed.", "id": "GoogleCloudDialogflowCxV3AudioInput", @@ -6467,6 +6499,10 @@ ], "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" @@ -6490,6 +6526,22 @@ "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" @@ -6516,6 +6568,32 @@ }, "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", @@ -6749,6 +6827,10 @@ "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" @@ -6788,6 +6870,34 @@ }, "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" + }, "GoogleCloudDialogflowCxV3beta1Agent": { "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": "GoogleCloudDialogflowCxV3beta1Agent", @@ -6816,6 +6926,10 @@ "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" @@ -7449,6 +7563,224 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1DataStoreConnectionSignals": { + "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": "GoogleCloudDialogflowCxV3beta1DataStoreConnectionSignals", + "properties": { + "answer": { + "description": "Optional. The final compiled answer.", + "type": "string" + }, + "answerGenerationModelCallSignals": { + "$ref": "GoogleCloudDialogflowCxV3beta1DataStoreConnectionSignalsAnswerGenerationModelCallSignals", + "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": "GoogleCloudDialogflowCxV3beta1DataStoreConnectionSignalsAnswerPart" + }, + "type": "array" + }, + "citedSnippets": { + "description": "Optional. Snippets cited by the answer generation model from the most to least relevant.", + "items": { + "$ref": "GoogleCloudDialogflowCxV3beta1DataStoreConnectionSignalsCitedSnippet" + }, + "type": "array" + }, + "groundingSignals": { + "$ref": "GoogleCloudDialogflowCxV3beta1DataStoreConnectionSignalsGroundingSignals", + "description": "Optional. Grounding signals." + }, + "rewriterModelCallSignals": { + "$ref": "GoogleCloudDialogflowCxV3beta1DataStoreConnectionSignalsRewriterModelCallSignals", + "description": "Optional. Diagnostic info related to the rewriter model call." + }, + "rewrittenQuery": { + "description": "Optional. Rewritten string query used for search.", + "type": "string" + }, + "safetySignals": { + "$ref": "GoogleCloudDialogflowCxV3beta1DataStoreConnectionSignalsSafetySignals", + "description": "Optional. Safety check result." + }, + "searchSnippets": { + "description": "Optional. Search snippets included in the answer generation prompt.", + "items": { + "$ref": "GoogleCloudDialogflowCxV3beta1DataStoreConnectionSignalsSearchSnippet" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3beta1DataStoreConnectionSignalsAnswerGenerationModelCallSignals": { + "description": "Diagnostic info related to the answer generation model call.", + "id": "GoogleCloudDialogflowCxV3beta1DataStoreConnectionSignalsAnswerGenerationModelCallSignals", + "properties": { + "modelOutput": { + "description": "Output of the generative model.", + "type": "string" + }, + "renderedPrompt": { + "description": "Prompt as sent to the model.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3beta1DataStoreConnectionSignalsAnswerPart": { + "description": "Answer part with citation.", + "id": "GoogleCloudDialogflowCxV3beta1DataStoreConnectionSignalsAnswerPart", + "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" + }, + "GoogleCloudDialogflowCxV3beta1DataStoreConnectionSignalsCitedSnippet": { + "description": "Snippet cited by the answer generation model.", + "id": "GoogleCloudDialogflowCxV3beta1DataStoreConnectionSignalsCitedSnippet", + "properties": { + "searchSnippet": { + "$ref": "GoogleCloudDialogflowCxV3beta1DataStoreConnectionSignalsSearchSnippet", + "description": "Details of the snippet." + }, + "snippetIndex": { + "description": "Index of the snippet in `search_snippets` field.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3beta1DataStoreConnectionSignalsGroundingSignals": { + "description": "Grounding signals.", + "id": "GoogleCloudDialogflowCxV3beta1DataStoreConnectionSignalsGroundingSignals", + "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" + }, + "GoogleCloudDialogflowCxV3beta1DataStoreConnectionSignalsRewriterModelCallSignals": { + "description": "Diagnostic info related to the rewriter model call.", + "id": "GoogleCloudDialogflowCxV3beta1DataStoreConnectionSignalsRewriterModelCallSignals", + "properties": { + "modelOutput": { + "description": "Output of the generative model.", + "type": "string" + }, + "renderedPrompt": { + "description": "Prompt as sent to the model.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3beta1DataStoreConnectionSignalsSafetySignals": { + "description": "Safety check results.", + "id": "GoogleCloudDialogflowCxV3beta1DataStoreConnectionSignalsSafetySignals", + "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" + }, + "GoogleCloudDialogflowCxV3beta1DataStoreConnectionSignalsSearchSnippet": { + "description": "Search snippet details.", + "id": "GoogleCloudDialogflowCxV3beta1DataStoreConnectionSignalsSearchSnippet", + "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" + }, "GoogleCloudDialogflowCxV3beta1DeleteDocumentOperationMetadata": { "description": "Metadata for DeleteDocument operation.", "id": "GoogleCloudDialogflowCxV3beta1DeleteDocumentOperationMetadata", @@ -8408,6 +8740,10 @@ "$ref": "GoogleCloudDialogflowCxV3beta1KnowledgeConnectorSettings", "description": "Optional. Knowledge connector configuration." }, + "multiLanguageSettings": { + "$ref": "GoogleCloudDialogflowCxV3beta1FlowMultiLanguageSettings", + "description": "Optional. Multi-lingual agent settings for this flow." + }, "name": { "description": "The unique identifier of the flow. Format: `projects//locations//agents//flows/`.", "type": "string" @@ -8460,6 +8796,24 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1FlowMultiLanguageSettings": { + "description": "Settings for multi-lingual agents.", + "id": "GoogleCloudDialogflowCxV3beta1FlowMultiLanguageSettings", + "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" + }, "GoogleCloudDialogflowCxV3beta1FlowValidationResult": { "description": "The response message for Flows.GetFlowValidationResult.", "id": "GoogleCloudDialogflowCxV3beta1FlowValidationResult", @@ -10217,6 +10571,10 @@ "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": "GoogleCloudDialogflowCxV3beta1SearchConfig", "description": "Optional. Search configuration for UCS search queries." @@ -10263,6 +10621,10 @@ "$ref": "GoogleCloudDialogflowCxV3beta1Page", "description": "The current Page. Some, not all fields are filled in this message, including but not limited to `name` and `display_name`." }, + "dataStoreConnectionSignals": { + "$ref": "GoogleCloudDialogflowCxV3beta1DataStoreConnectionSignals", + "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_quality_signals is set to true in the request." + }, "diagnosticInfo": { "additionalProperties": { "description": "Properties of the object.", @@ -11857,6 +12219,10 @@ ], "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" @@ -11880,6 +12246,22 @@ "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" @@ -11906,6 +12288,32 @@ }, "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", diff --git a/etc/api/digitalassetlinks/v1/digitalassetlinks-api.json b/etc/api/digitalassetlinks/v1/digitalassetlinks-api.json index 5d59bec889..5a62bab3a3 100644 --- a/etc/api/digitalassetlinks/v1/digitalassetlinks-api.json +++ b/etc/api/digitalassetlinks/v1/digitalassetlinks-api.json @@ -199,7 +199,7 @@ } } }, - "revision": "20240224", + "revision": "20240416", "rootUrl": "https://digitalassetlinks.googleapis.com/", "schemas": { "AndroidAppAsset": { diff --git a/etc/api/discovery/v1/discovery-api.json b/etc/api/discovery/v1/discovery-api.json index 591ce6ad6b..403ad61533 100644 --- a/etc/api/discovery/v1/discovery-api.json +++ b/etc/api/discovery/v1/discovery-api.json @@ -555,6 +555,10 @@ "RestMethod": { "id": "RestMethod", "properties": { + "apiVersion": { + "description": "The API Version of this method, as passed in via the `X-Goog-Api-Version` header or `$apiVersion` query parameter.", + "type": "string" + }, "deprecated": { "description": "Whether this method is deprecated.", "type": "boolean" diff --git a/etc/api/displayvideo/v1/displayvideo-api.json b/etc/api/displayvideo/v1/displayvideo-api.json index 33ce0a5cb8..6c597791b8 100644 --- a/etc/api/displayvideo/v1/displayvideo-api.json +++ b/etc/api/displayvideo/v1/displayvideo-api.json @@ -4173,7 +4173,7 @@ "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`", + "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", @@ -4314,7 +4314,7 @@ "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`", + "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", @@ -8079,7 +8079,7 @@ "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 `budget.budget_segments.date_range.end_date` field must use the `LESS THAN (<)` operator. * The `displayName and `email` field must use the `HAS (:)` 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` 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\"` 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.", + "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" }, @@ -8146,7 +8146,7 @@ } } }, - "revision": "20240229", + "revision": "20240418", "rootUrl": "https://displayvideo.googleapis.com/", "schemas": { "ActivateManualTriggerRequest": { @@ -8571,7 +8571,9 @@ "APP_PLATFORM_XBOX", "APP_PLATFORM_SAMSUNG_TV", "APP_PLATFORM_ANDROID_TV", - "APP_PLATFORM_GENERIC_CTV" + "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.", @@ -8584,7 +8586,9 @@ "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 a CTV platform that is not explicitly listed elsewhere.", + "The app platform is LG TV.", + "The app platform is VIZIO TV." ], "type": "string" }, @@ -9401,14 +9405,14 @@ "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`", + "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`", + "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" }, @@ -10946,7 +10950,7 @@ true, true, true, - false, + true, false, false, false @@ -10964,7 +10968,7 @@ "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. Currently in beta. Only available for use by a subset of users." + "SDF version 7. Read the [v7 migration guide](/display-video/api/structured-data-file/v7-migration-guide) before migrating to this version." ], "type": "string" } @@ -12657,6 +12661,7 @@ "EXCHANGE_CONNATIX", "EXCHANGE_RESET_DIGITAL", "EXCHANGE_HIVESTACK", + "EXCHANGE_DRAX", "EXCHANGE_APPLOVIN_GBID", "EXCHANGE_FYBER_GBID", "EXCHANGE_UNITY_GBID", @@ -12740,6 +12745,7 @@ "Connatix.", "Reset Digital.", "Hivestack.", + "Drax.", "AppLovin MAX.", "DT Fairbid.", "Unity LevelPlay.", @@ -12849,6 +12855,7 @@ "EXCHANGE_CONNATIX", "EXCHANGE_RESET_DIGITAL", "EXCHANGE_HIVESTACK", + "EXCHANGE_DRAX", "EXCHANGE_APPLOVIN_GBID", "EXCHANGE_FYBER_GBID", "EXCHANGE_UNITY_GBID", @@ -12932,6 +12939,7 @@ "Connatix.", "Reset Digital.", "Hivestack.", + "Drax.", "AppLovin MAX.", "DT Fairbid.", "Unity LevelPlay.", @@ -13042,6 +13050,7 @@ "EXCHANGE_CONNATIX", "EXCHANGE_RESET_DIGITAL", "EXCHANGE_HIVESTACK", + "EXCHANGE_DRAX", "EXCHANGE_APPLOVIN_GBID", "EXCHANGE_FYBER_GBID", "EXCHANGE_UNITY_GBID", @@ -13125,6 +13134,7 @@ "Connatix.", "Reset Digital.", "Hivestack.", + "Drax.", "AppLovin MAX.", "DT Fairbid.", "Unity LevelPlay.", @@ -14000,6 +14010,7 @@ "EXCHANGE_CONNATIX", "EXCHANGE_RESET_DIGITAL", "EXCHANGE_HIVESTACK", + "EXCHANGE_DRAX", "EXCHANGE_APPLOVIN_GBID", "EXCHANGE_FYBER_GBID", "EXCHANGE_UNITY_GBID", @@ -14083,6 +14094,7 @@ "Connatix.", "Reset Digital.", "Hivestack.", + "Drax.", "AppLovin MAX.", "DT Fairbid.", "Unity LevelPlay.", @@ -14871,6 +14883,7 @@ "EXCHANGE_CONNATIX", "EXCHANGE_RESET_DIGITAL", "EXCHANGE_HIVESTACK", + "EXCHANGE_DRAX", "EXCHANGE_APPLOVIN_GBID", "EXCHANGE_FYBER_GBID", "EXCHANGE_UNITY_GBID", @@ -14954,6 +14967,7 @@ "Connatix.", "Reset Digital.", "Hivestack.", + "Drax.", "AppLovin MAX.", "DT Fairbid.", "Unity LevelPlay.", @@ -17552,33 +17566,6 @@ }, "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", @@ -17760,13 +17747,6 @@ "$ref": "ExchangeReviewStatus" }, "type": "array" - }, - "publisherReviewStatuses": { - "description": "Publisher review statuses for the creative.", - "items": { - "$ref": "PublisherReviewStatus" - }, - "type": "array" } }, "type": "object" @@ -17843,7 +17823,7 @@ true, true, true, - false, + true, false, false, false @@ -17861,7 +17841,7 @@ "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. Currently in beta. Only available for use by a subset of users." + "SDF version 7. Read the [v7 migration guide](/display-video/api/structured-data-file/v7-migration-guide) before migrating to this version." ], "type": "string" } @@ -17920,7 +17900,7 @@ true, true, true, - false, + true, false, false, false @@ -17938,7 +17918,7 @@ "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. Currently in beta. Only available for use by a subset of users." + "SDF version 7. Read the [v7 migration guide](/display-video/api/structured-data-file/v7-migration-guide) before migrating to this version." ], "type": "string" } diff --git a/etc/api/dlp/v2/dlp-api.json b/etc/api/dlp/v2/dlp-api.json index 54b597a54a..3d1883f6f0 100644 --- a/etc/api/dlp/v2/dlp-api.json +++ b/etc/api/dlp/v2/dlp-api.json @@ -537,7 +537,7 @@ ] }, "list": { - "description": "Lists data profiles for an organization.", + "description": "Lists column data profiles for an organization.", "flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/columnDataProfiles", "httpMethod": "GET", "id": "dlp.organizations.locations.columnDataProfiles.list", @@ -567,7 +567,7 @@ "type": "string" }, "parent": { - "description": "Required. Resource name of the organization or project, for example `organizations/433245324/locations/europe` or projects/project-id/locations/asia.", + "description": "Required. Resource name of the organization or project, for example `organizations/433245324/locations/europe` or `projects/project-id/locations/asia`.", "location": "path", "pattern": "^organizations/[^/]+/locations/[^/]+$", "required": true, @@ -584,6 +584,51 @@ } } }, + "connections": { + "methods": { + "search": { + "description": "Searches for Connections in a parent.", + "flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/connections:search", + "httpMethod": "GET", + "id": "dlp.organizations.locations.connections.search", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. * Supported fields/values - `state` - MISSING|AVAILABLE|ERROR", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. Number of results per page, max 1000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. Page token from a previous page to return the next set of results. If set, all other request fields must match the original request.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Parent name, typically an organization, without location. For example: \"organizations/12345678\".", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+parent}/connections:search", + "response": { + "$ref": "GooglePrivacyDlpV2SearchConnectionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "deidentifyTemplates": { "methods": { "create": { @@ -1321,7 +1366,7 @@ ] }, "list": { - "description": "Lists data profiles for an organization.", + "description": "Lists project data profiles for an organization.", "flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/projectDataProfiles", "httpMethod": "GET", "id": "dlp.organizations.locations.projectDataProfiles.list", @@ -1330,12 +1375,12 @@ ], "parameters": { "filter": { - "description": "Allows filtering. 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}`. * Supported fields/values: - `sensitivity_level` - HIGH|MODERATE|LOW - `data_risk_level` - HIGH|MODERATE|LOW - `status_code` - an RPC status code as defined in https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto * The operator must be `=` or `!=`. Examples: * project_id = 12345 AND status_code = 1 * project_id = 12345 AND sensitivity_level = HIGH The length of this field should be no more than 500 characters.", + "description": "Allows filtering. 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}`. * Supported fields/values: - `sensitivity_level` - HIGH|MODERATE|LOW - `data_risk_level` - HIGH|MODERATE|LOW - `status_code` - an RPC status code as defined in https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto * The operator must be `=` or `!=`. Examples: * `project_id = 12345 AND status_code = 1` * `project_id = 12345 AND sensitivity_level = HIGH` The length of this field should be no more than 500 characters.", "location": "query", "type": "string" }, "orderBy": { - "description": "Comma separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Only one order field at a time is allowed. Examples: * `project_id` * `sensitivity_level desc` Supported fields are: - `project_id`: GCP project ID - `sensitivity_level`: How sensitive the data in a project is, at most. - `data_risk_level`: How much risk is associated with this data. - `profile_last_generated`: When the profile was last updated in epoch seconds.", + "description": "Comma separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Only one order field at a time is allowed. Examples: * `project_id` * `sensitivity_level desc` Supported fields are: - `project_id`: Google Cloud project ID - `sensitivity_level`: How sensitive the data in a project is, at most. - `data_risk_level`: How much risk is associated with this data. - `profile_last_generated`: When the profile was last updated in epoch seconds.", "location": "query", "type": "string" }, @@ -1526,6 +1571,31 @@ }, "tableDataProfiles": { "methods": { + "delete": { + "description": "Delete a TableDataProfile. Will not prevent the profile from being regenerated if the table is still included in a discovery configuration.", + "flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/tableDataProfiles/{tableDataProfilesId}", + "httpMethod": "DELETE", + "id": "dlp.organizations.locations.tableDataProfiles.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Resource name of the table data profile.", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/tableDataProfiles/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}", + "response": { + "$ref": "GoogleProtobufEmpty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "get": { "description": "Gets a table data profile.", "flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/tableDataProfiles/{tableDataProfilesId}", @@ -1552,7 +1622,7 @@ ] }, "list": { - "description": "Lists data profiles for an organization.", + "description": "Lists table data profiles for an organization.", "flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/tableDataProfiles", "httpMethod": "GET", "id": "dlp.organizations.locations.tableDataProfiles.list", @@ -1561,12 +1631,12 @@ ], "parameters": { "filter": { - "description": "Allows filtering. 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}`. * Supported fields/values: - `project_id` - The GCP project ID. - `dataset_id` - The BigQuery dataset ID. - `table_id` - The ID of the BigQuery table. - `sensitivity_level` - HIGH|MODERATE|LOW - `data_risk_level` - HIGH|MODERATE|LOW - `resource_visibility`: PUBLIC|RESTRICTED - `status_code` - an RPC status code as defined in https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto * The operator must be `=` or `!=`. Examples: * project_id = 12345 AND status_code = 1 * project_id = 12345 AND sensitivity_level = HIGH * project_id = 12345 AND resource_visibility = PUBLIC The length of this field should be no more than 500 characters.", + "description": "Allows filtering. 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}`. * Supported fields/values: - `project_id` - The Google Cloud project ID. - `dataset_id` - The BigQuery dataset ID. - `table_id` - The ID of the BigQuery table. - `sensitivity_level` - HIGH|MODERATE|LOW - `data_risk_level` - HIGH|MODERATE|LOW - `resource_visibility`: PUBLIC|RESTRICTED - `status_code` - an RPC status code as defined in https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto * The operator must be `=` or `!=`. Examples: * `project_id = 12345 AND status_code = 1` * `project_id = 12345 AND sensitivity_level = HIGH` * `project_id = 12345 AND resource_visibility = PUBLIC` The length of this field should be no more than 500 characters.", "location": "query", "type": "string" }, "orderBy": { - "description": "Comma separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Only one order field at a time is allowed. Examples: * `project_id asc` * `table_id` * `sensitivity_level desc` Supported fields are: - `project_id`: The GCP project ID. - `dataset_id`: The ID of a BigQuery dataset. - `table_id`: The ID of a BigQuery table. - `sensitivity_level`: How sensitive the data in a table is, at most. - `data_risk_level`: How much risk is associated with this data. - `profile_last_generated`: When the profile was last updated in epoch seconds. - `last_modified`: The last time the resource was modified. - `resource_visibility`: Visibility restriction for this resource. - `row_count`: Number of rows in this resource.", + "description": "Comma separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Only one order field at a time is allowed. Examples: * `project_id asc` * `table_id` * `sensitivity_level desc` Supported fields are: - `project_id`: The Google Cloud project ID. - `dataset_id`: The ID of a BigQuery dataset. - `table_id`: The ID of a BigQuery table. - `sensitivity_level`: How sensitive the data in a table is, at most. - `data_risk_level`: How much risk is associated with this data. - `profile_last_generated`: When the profile was last updated in epoch seconds. - `last_modified`: The last time the resource was modified. - `resource_visibility`: Visibility restriction for this resource. - `row_count`: Number of rows in this resource.", "location": "query", "type": "string" }, @@ -2603,7 +2673,7 @@ ] }, "list": { - "description": "Lists data profiles for an organization.", + "description": "Lists column data profiles for an organization.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/columnDataProfiles", "httpMethod": "GET", "id": "dlp.projects.locations.columnDataProfiles.list", @@ -2633,7 +2703,7 @@ "type": "string" }, "parent": { - "description": "Required. Resource name of the organization or project, for example `organizations/433245324/locations/europe` or projects/project-id/locations/asia.", + "description": "Required. Resource name of the organization or project, for example `organizations/433245324/locations/europe` or `projects/project-id/locations/asia`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -2650,6 +2720,198 @@ } } }, + "connections": { + "methods": { + "create": { + "description": "Create a Connection to an external data source.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/connections", + "httpMethod": "POST", + "id": "dlp.projects.locations.connections.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. Parent resource name in the format: \"projects/{project}/locations/{location}\".", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+parent}/connections", + "request": { + "$ref": "GooglePrivacyDlpV2CreateConnectionRequest" + }, + "response": { + "$ref": "GooglePrivacyDlpV2Connection" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Delete a Connection.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}", + "httpMethod": "DELETE", + "id": "dlp.projects.locations.connections.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Resource name of the Connection to be deleted, in the format: \"projects/{project}/locations/{location}/connections/{connection}\".", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}", + "response": { + "$ref": "GoogleProtobufEmpty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Get a Connection by name.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}", + "httpMethod": "GET", + "id": "dlp.projects.locations.connections.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Resource name in the format: \"projects/{project}/locations/{location}/connections/{connection}\".", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}", + "response": { + "$ref": "GooglePrivacyDlpV2Connection" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists Connections in a parent.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/connections", + "httpMethod": "GET", + "id": "dlp.projects.locations.connections.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. * Supported fields/values - `state` - MISSING|AVAILABLE|ERROR", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. Number of results per page, max 1000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. Page token from a previous page to return the next set of results. If set, all other request fields must match the original request.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Parent name, for example: \"projects/project-id/locations/global\".", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+parent}/connections", + "response": { + "$ref": "GooglePrivacyDlpV2ListConnectionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Update a Connection.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}", + "httpMethod": "PATCH", + "id": "dlp.projects.locations.connections.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Resource name in the format: \"projects/{project}/locations/{location}/connections/{connection}\".", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}", + "request": { + "$ref": "GooglePrivacyDlpV2UpdateConnectionRequest" + }, + "response": { + "$ref": "GooglePrivacyDlpV2Connection" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "search": { + "description": "Searches for Connections in a parent.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/connections:search", + "httpMethod": "GET", + "id": "dlp.projects.locations.connections.search", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. * Supported fields/values - `state` - MISSING|AVAILABLE|ERROR", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. Number of results per page, max 1000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. Page token from a previous page to return the next set of results. If set, all other request fields must match the original request.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Parent name, typically an organization, without location. For example: \"organizations/12345678\".", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+parent}/connections:search", + "response": { + "$ref": "GooglePrivacyDlpV2SearchConnectionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "content": { "methods": { "deidentify": { @@ -3725,7 +3987,7 @@ ] }, "list": { - "description": "Lists data profiles for an organization.", + "description": "Lists project data profiles for an organization.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/projectDataProfiles", "httpMethod": "GET", "id": "dlp.projects.locations.projectDataProfiles.list", @@ -3734,12 +3996,12 @@ ], "parameters": { "filter": { - "description": "Allows filtering. 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}`. * Supported fields/values: - `sensitivity_level` - HIGH|MODERATE|LOW - `data_risk_level` - HIGH|MODERATE|LOW - `status_code` - an RPC status code as defined in https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto * The operator must be `=` or `!=`. Examples: * project_id = 12345 AND status_code = 1 * project_id = 12345 AND sensitivity_level = HIGH The length of this field should be no more than 500 characters.", + "description": "Allows filtering. 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}`. * Supported fields/values: - `sensitivity_level` - HIGH|MODERATE|LOW - `data_risk_level` - HIGH|MODERATE|LOW - `status_code` - an RPC status code as defined in https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto * The operator must be `=` or `!=`. Examples: * `project_id = 12345 AND status_code = 1` * `project_id = 12345 AND sensitivity_level = HIGH` The length of this field should be no more than 500 characters.", "location": "query", "type": "string" }, "orderBy": { - "description": "Comma separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Only one order field at a time is allowed. Examples: * `project_id` * `sensitivity_level desc` Supported fields are: - `project_id`: GCP project ID - `sensitivity_level`: How sensitive the data in a project is, at most. - `data_risk_level`: How much risk is associated with this data. - `profile_last_generated`: When the profile was last updated in epoch seconds.", + "description": "Comma separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Only one order field at a time is allowed. Examples: * `project_id` * `sensitivity_level desc` Supported fields are: - `project_id`: Google Cloud project ID - `sensitivity_level`: How sensitive the data in a project is, at most. - `data_risk_level`: How much risk is associated with this data. - `profile_last_generated`: When the profile was last updated in epoch seconds.", "location": "query", "type": "string" }, @@ -3930,6 +4192,31 @@ }, "tableDataProfiles": { "methods": { + "delete": { + "description": "Delete a TableDataProfile. Will not prevent the profile from being regenerated if the table is still included in a discovery configuration.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/tableDataProfiles/{tableDataProfilesId}", + "httpMethod": "DELETE", + "id": "dlp.projects.locations.tableDataProfiles.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Resource name of the table data profile.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/tableDataProfiles/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}", + "response": { + "$ref": "GoogleProtobufEmpty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "get": { "description": "Gets a table data profile.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/tableDataProfiles/{tableDataProfilesId}", @@ -3956,7 +4243,7 @@ ] }, "list": { - "description": "Lists data profiles for an organization.", + "description": "Lists table data profiles for an organization.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/tableDataProfiles", "httpMethod": "GET", "id": "dlp.projects.locations.tableDataProfiles.list", @@ -3965,12 +4252,12 @@ ], "parameters": { "filter": { - "description": "Allows filtering. 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}`. * Supported fields/values: - `project_id` - The GCP project ID. - `dataset_id` - The BigQuery dataset ID. - `table_id` - The ID of the BigQuery table. - `sensitivity_level` - HIGH|MODERATE|LOW - `data_risk_level` - HIGH|MODERATE|LOW - `resource_visibility`: PUBLIC|RESTRICTED - `status_code` - an RPC status code as defined in https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto * The operator must be `=` or `!=`. Examples: * project_id = 12345 AND status_code = 1 * project_id = 12345 AND sensitivity_level = HIGH * project_id = 12345 AND resource_visibility = PUBLIC The length of this field should be no more than 500 characters.", + "description": "Allows filtering. 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}`. * Supported fields/values: - `project_id` - The Google Cloud project ID. - `dataset_id` - The BigQuery dataset ID. - `table_id` - The ID of the BigQuery table. - `sensitivity_level` - HIGH|MODERATE|LOW - `data_risk_level` - HIGH|MODERATE|LOW - `resource_visibility`: PUBLIC|RESTRICTED - `status_code` - an RPC status code as defined in https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto * The operator must be `=` or `!=`. Examples: * `project_id = 12345 AND status_code = 1` * `project_id = 12345 AND sensitivity_level = HIGH` * `project_id = 12345 AND resource_visibility = PUBLIC` The length of this field should be no more than 500 characters.", "location": "query", "type": "string" }, "orderBy": { - "description": "Comma separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Only one order field at a time is allowed. Examples: * `project_id asc` * `table_id` * `sensitivity_level desc` Supported fields are: - `project_id`: The GCP project ID. - `dataset_id`: The ID of a BigQuery dataset. - `table_id`: The ID of a BigQuery table. - `sensitivity_level`: How sensitive the data in a table is, at most. - `data_risk_level`: How much risk is associated with this data. - `profile_last_generated`: When the profile was last updated in epoch seconds. - `last_modified`: The last time the resource was modified. - `resource_visibility`: Visibility restriction for this resource. - `row_count`: Number of rows in this resource.", + "description": "Comma separated list of fields to order by, followed by `asc` or `desc` postfix. This list is case insensitive. The default sorting order is ascending. Redundant space characters are insignificant. Only one order field at a time is allowed. Examples: * `project_id asc` * `table_id` * `sensitivity_level desc` Supported fields are: - `project_id`: The Google Cloud project ID. - `dataset_id`: The ID of a BigQuery dataset. - `table_id`: The ID of a BigQuery table. - `sensitivity_level`: How sensitive the data in a table is, at most. - `data_risk_level`: How much risk is associated with this data. - `profile_last_generated`: When the profile was last updated in epoch seconds. - `last_modified`: The last time the resource was modified. - `resource_visibility`: Visibility restriction for this resource. - `row_count`: Number of rows in this resource.", "location": "query", "type": "string" }, @@ -4164,7 +4451,7 @@ } } }, - "revision": "20240225", + "revision": "20240414", "rootUrl": "https://dlp.googleapis.com/", "schemas": { "GooglePrivacyDlpV2Action": { @@ -4231,6 +4518,12 @@ "properties": {}, "type": "object" }, + "GooglePrivacyDlpV2AllOtherDatabaseResources": { + "description": "Match database resources not covered by any other filter.", + "id": "GooglePrivacyDlpV2AllOtherDatabaseResources", + "properties": {}, + "type": "object" + }, "GooglePrivacyDlpV2AllText": { "description": "Apply to all text.", "id": "GooglePrivacyDlpV2AllText", @@ -4730,6 +5023,73 @@ }, "type": "object" }, + "GooglePrivacyDlpV2CloudSqlDiscoveryTarget": { + "description": "Target used to match against for discovery with Cloud SQL tables.", + "id": "GooglePrivacyDlpV2CloudSqlDiscoveryTarget", + "properties": { + "conditions": { + "$ref": "GooglePrivacyDlpV2DiscoveryCloudSqlConditions", + "description": "In addition to matching the filter, these conditions must be true before a profile is generated." + }, + "disabled": { + "$ref": "GooglePrivacyDlpV2Disabled", + "description": "Disable profiling for database resources that match this filter." + }, + "filter": { + "$ref": "GooglePrivacyDlpV2DiscoveryCloudSqlFilter", + "description": "Required. The tables the discovery cadence applies to. The first target with a matching filter will be the one to apply to a table." + }, + "generationCadence": { + "$ref": "GooglePrivacyDlpV2DiscoveryCloudSqlGenerationCadence", + "description": "How often and when to update profiles. New tables that match both the filter and conditions are scanned as quickly as possible depending on system capacity." + } + }, + "type": "object" + }, + "GooglePrivacyDlpV2CloudSqlIamCredential": { + "description": "Use IAM auth to connect. This requires the Cloud SQL IAM feature to be enabled on the instance, which is not the default for Cloud SQL. See https://cloud.google.com/sql/docs/postgres/authentication and https://cloud.google.com/sql/docs/mysql/authentication.", + "id": "GooglePrivacyDlpV2CloudSqlIamCredential", + "properties": {}, + "type": "object" + }, + "GooglePrivacyDlpV2CloudSqlProperties": { + "description": "Cloud SQL connection properties.", + "id": "GooglePrivacyDlpV2CloudSqlProperties", + "properties": { + "cloudSqlIam": { + "$ref": "GooglePrivacyDlpV2CloudSqlIamCredential", + "description": "Built-in IAM authentication (must be configured in Cloud SQL)." + }, + "connectionName": { + "description": "Optional. Immutable. The Cloud SQL instance for which the connection is defined. Only one connection per instance is allowed. This can only be set at creation time, and cannot be updated. It is an error to use a connection_name from different project or region than the one that holds the connection. For example, a Connection resource for Cloud SQL connection_name \"project-id:us-central1:sql-instance\" must be created under the parent \"projects/project-id/locations/us-central1\"", + "type": "string" + }, + "databaseEngine": { + "description": "Required. The database engine used by the Cloud SQL instance that this connection configures.", + "enum": [ + "DATABASE_ENGINE_UNKNOWN", + "DATABASE_ENGINE_MYSQL", + "DATABASE_ENGINE_POSTGRES" + ], + "enumDescriptions": [ + "An engine that is not currently supported by SDP.", + "Cloud SQL for MySQL instance.", + "Cloud SQL for Postgres instance." + ], + "type": "string" + }, + "maxConnections": { + "description": "Required. DLP will limit its connections to max_connections. Must be 2 or greater.", + "format": "int32", + "type": "integer" + }, + "usernamePassword": { + "$ref": "GooglePrivacyDlpV2SecretManagerCredential", + "description": "A username and password stored in Secret Manager." + } + }, + "type": "object" + }, "GooglePrivacyDlpV2CloudStorageFileSet": { "description": "Message representing a set of files in Cloud Storage.", "id": "GooglePrivacyDlpV2CloudStorageFileSet", @@ -4901,7 +5261,11 @@ "TYPE_NUMERIC", "TYPE_RECORD", "TYPE_BIGNUMERIC", - "TYPE_JSON" + "TYPE_JSON", + "TYPE_INTERVAL", + "TYPE_RANGE_DATE", + "TYPE_RANGE_DATETIME", + "TYPE_RANGE_TIMESTAMP" ], "enumDescriptions": [ "Invalid type.", @@ -4918,7 +5282,11 @@ "Encoded as a decimal string.", "Container of ordered fields, each with a type and field name.", "Decimal type.", - "Json type." + "Json type.", + "Interval type.", + "Range type.", + "Range type.", + "Range type." ], "type": "string" }, @@ -5095,6 +5463,46 @@ }, "type": "object" }, + "GooglePrivacyDlpV2Connection": { + "description": "A data connection to allow DLP to profile data in locations that require additional configuration.", + "id": "GooglePrivacyDlpV2Connection", + "properties": { + "cloudSql": { + "$ref": "GooglePrivacyDlpV2CloudSqlProperties", + "description": "Connect to a Cloud SQL instance." + }, + "errors": { + "description": "Output only. Set if status == ERROR, to provide additional details. Will store the last 10 errors sorted with the most recent first.", + "items": { + "$ref": "GooglePrivacyDlpV2Error" + }, + "readOnly": true, + "type": "array" + }, + "name": { + "description": "Output only. Name of the connection: projects/{project}/locations/{location}/connections/{name}.", + "readOnly": true, + "type": "string" + }, + "state": { + "description": "Required. The connection's state in its lifecycle.", + "enum": [ + "CONNECTION_STATE_UNSPECIFIED", + "MISSING_CREDENTIALS", + "AVAILABLE", + "ERROR" + ], + "enumDescriptions": [ + "Unused", + "DLP automatically created this connection during an initial scan, and it is awaiting full configuration by a user.", + "A configured connection that has not encountered any errors.", + "A configured connection that encountered errors during its last use. It will not be used again until it is set to AVAILABLE. If the resolution requires external action, then a request to set the status to AVAILABLE will mark this connection for use. Otherwise, any changes to the connection properties will automatically mark it as AVAILABLE." + ], + "type": "string" + } + }, + "type": "object" + }, "GooglePrivacyDlpV2Container": { "description": "Represents a container that may contain DLP findings. Examples of a container include a file, table, or database record.", "id": "GooglePrivacyDlpV2Container", @@ -5186,6 +5594,17 @@ }, "type": "object" }, + "GooglePrivacyDlpV2CreateConnectionRequest": { + "description": "Request message for CreateConnection.", + "id": "GooglePrivacyDlpV2CreateConnectionRequest", + "properties": { + "connection": { + "$ref": "GooglePrivacyDlpV2Connection", + "description": "Required. The connection resource." + } + }, + "type": "object" + }, "GooglePrivacyDlpV2CreateDeidentifyTemplateRequest": { "description": "Request message for CreateDeidentifyTemplate.", "id": "GooglePrivacyDlpV2CreateDeidentifyTemplateRequest", @@ -5645,6 +6064,69 @@ }, "type": "object" }, + "GooglePrivacyDlpV2DatabaseResourceCollection": { + "description": "Match database resources using regex filters. Examples of database resources are tables, views, and stored procedures.", + "id": "GooglePrivacyDlpV2DatabaseResourceCollection", + "properties": { + "includeRegexes": { + "$ref": "GooglePrivacyDlpV2DatabaseResourceRegexes", + "description": "A collection of regular expressions to match a database resource against." + } + }, + "type": "object" + }, + "GooglePrivacyDlpV2DatabaseResourceReference": { + "description": "Identifies a single database resource, like a table within a database.", + "id": "GooglePrivacyDlpV2DatabaseResourceReference", + "properties": { + "instance": { + "description": "Required. The instance where this resource is located. For example: Cloud SQL's instance id.", + "type": "string" + }, + "projectId": { + "description": "Required. If within a project-level config, then this must match the config's project id.", + "type": "string" + } + }, + "type": "object" + }, + "GooglePrivacyDlpV2DatabaseResourceRegex": { + "description": "A pattern to match against one or more database resources. At least one pattern must be specified. Regular expressions use RE2 [syntax](https://github.com/google/re2/wiki/Syntax); a guide can be found under the google/re2 repository on GitHub.", + "id": "GooglePrivacyDlpV2DatabaseResourceRegex", + "properties": { + "databaseRegex": { + "description": "Regex to test the database name against. If empty, all databases match.", + "type": "string" + }, + "databaseResourceNameRegex": { + "description": "Regex to test the database resource's name against. An example of a database resource name is a table's name. Other database resource names like view names could be included in the future. If empty, all database resources match.", + "type": "string" + }, + "instanceRegex": { + "description": "Regex to test the instance name against. If empty, all instances match.", + "type": "string" + }, + "projectIdRegex": { + "description": "For organizations, if unset, will match all projects. Has no effect for Data Profile configurations created within a project.", + "type": "string" + } + }, + "type": "object" + }, + "GooglePrivacyDlpV2DatabaseResourceRegexes": { + "description": "A collection of regular expressions to determine what database resources to match against.", + "id": "GooglePrivacyDlpV2DatabaseResourceRegexes", + "properties": { + "patterns": { + "description": "A group of regular expression patterns to match against one or more database resources. Maximum of 100 entries. The sum of all regular expression's length can't exceed 10 KiB.", + "items": { + "$ref": "GooglePrivacyDlpV2DatabaseResourceRegex" + }, + "type": "array" + } + }, + "type": "object" + }, "GooglePrivacyDlpV2DatastoreKey": { "description": "Record key for a finding in Cloud Datastore.", "id": "GooglePrivacyDlpV2DatastoreKey", @@ -6106,6 +6588,95 @@ }, "type": "object" }, + "GooglePrivacyDlpV2DiscoveryCloudSqlConditions": { + "description": "Requirements that must be true before a table is profiled for the first time.", + "id": "GooglePrivacyDlpV2DiscoveryCloudSqlConditions", + "properties": { + "databaseEngines": { + "description": "Optional. Database engines that should be profiled. Optional. Defaults to ALL_SUPPORTED_DATABASE_ENGINES if unspecified.", + "items": { + "enum": [ + "DATABASE_ENGINE_UNSPECIFIED", + "ALL_SUPPORTED_DATABASE_ENGINES", + "MYSQL", + "POSTGRES" + ], + "enumDescriptions": [ + "Unused.", + "Include all supported database engines.", + "MySql database.", + "PostGres database." + ], + "type": "string" + }, + "type": "array" + }, + "types": { + "description": "Data profiles will only be generated for the database resource types specified in this field. If not specified, defaults to [DATABASE_RESOURCE_TYPE_ALL_SUPPORTED_TYPES].", + "items": { + "enum": [ + "DATABASE_RESOURCE_TYPE_UNSPECIFIED", + "DATABASE_RESOURCE_TYPE_ALL_SUPPORTED_TYPES", + "DATABASE_RESOURCE_TYPE_TABLE" + ], + "enumDescriptions": [ + "Unused.", + "Includes database resource types that become supported at a later time.", + "Tables." + ], + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GooglePrivacyDlpV2DiscoveryCloudSqlFilter": { + "description": "Determines what tables will have profiles generated within an organization or project. Includes the ability to filter by regular expression patterns on project ID, location, instance, database, and database resource name.", + "id": "GooglePrivacyDlpV2DiscoveryCloudSqlFilter", + "properties": { + "collection": { + "$ref": "GooglePrivacyDlpV2DatabaseResourceCollection", + "description": "A specific set of database resources for this filter to apply to." + }, + "databaseResourceReference": { + "$ref": "GooglePrivacyDlpV2DatabaseResourceReference", + "description": "The database resource to scan. Targets including this can only include one target (the target with this database resource reference)." + }, + "others": { + "$ref": "GooglePrivacyDlpV2AllOtherDatabaseResources", + "description": "Catch-all. This should always be the last target in the list because anything above it will apply first. Should only appear once in a configuration. If none is specified, a default one will be added automatically." + } + }, + "type": "object" + }, + "GooglePrivacyDlpV2DiscoveryCloudSqlGenerationCadence": { + "description": "How often existing tables should have their profiles refreshed. New tables are scanned as quickly as possible depending on system capacity.", + "id": "GooglePrivacyDlpV2DiscoveryCloudSqlGenerationCadence", + "properties": { + "refreshFrequency": { + "description": "Data changes (non-schema changes) in Cloud SQL tables can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying tables have changes. Defaults to never.", + "enum": [ + "UPDATE_FREQUENCY_UNSPECIFIED", + "UPDATE_FREQUENCY_NEVER", + "UPDATE_FREQUENCY_DAILY", + "UPDATE_FREQUENCY_MONTHLY" + ], + "enumDescriptions": [ + "Unspecified.", + "After the data profile is created, it will never be updated.", + "The data profile can be updated up to once every 24 hours.", + "The data profile can be updated up to once every 30 days. Default." + ], + "type": "string" + }, + "schemaModifiedCadence": { + "$ref": "GooglePrivacyDlpV2SchemaModifiedCadence", + "description": "When to reprofile if the schema has changed." + } + }, + "type": "object" + }, "GooglePrivacyDlpV2DiscoveryConfig": { "description": "Configuration for discovery to scan resources for profile generation. Only one discovery configuration may exist per organization, folder, or project. The generated data profiles are retained according to the [data retention policy] (https://cloud.google.com/sensitive-data-protection/docs/data-profiles#retention).", "id": "GooglePrivacyDlpV2DiscoveryConfig", @@ -6303,6 +6874,10 @@ "bigQueryTarget": { "$ref": "GooglePrivacyDlpV2BigQueryDiscoveryTarget", "description": "BigQuery target for Discovery. The first target to match a table will be the one applied." + }, + "cloudSqlTarget": { + "$ref": "GooglePrivacyDlpV2CloudSqlDiscoveryTarget", + "description": "Cloud SQL target for Discovery. The first target to match a table will be the one applied." } }, "type": "object" @@ -6961,7 +7536,7 @@ "type": "object" }, "GooglePrivacyDlpV2InfoTypeCategory": { - "description": "Classification of infoTypes to organize them according to geographic location, industry, and data type.", + "description": "Classification of infoTypes to organize them according to geographic location, industry, and data type. NEXT_ID: 47", "id": "GooglePrivacyDlpV2InfoTypeCategory", "properties": { "industryCategory": { @@ -7014,6 +7589,7 @@ "PERU", "POLAND", "PORTUGAL", + "RUSSIA", "SINGAPORE", "SOUTH_AFRICA", "SPAIN", @@ -7022,9 +7598,11 @@ "TAIWAN", "THAILAND", "TURKEY", + "UKRAINE", "UNITED_KINGDOM", "UNITED_STATES", "URUGUAY", + "UZBEKISTAN", "VENEZUELA", "INTERNAL" ], @@ -7060,6 +7638,7 @@ "The infoType is typically used in Peru.", "The infoType is typically used in Poland.", "The infoType is typically used in Portugal.", + "The infoType is typically used in Russia.", "The infoType is typically used in Singapore.", "The infoType is typically used in South Africa.", "The infoType is typically used in Spain.", @@ -7068,9 +7647,11 @@ "The infoType is typically used in Taiwan.", "The infoType is typically used in Thailand.", "The infoType is typically used in Turkey.", + "The infoType is typically used in Ukraine.", "The infoType is typically used in the United Kingdom.", "The infoType is typically used in the United States.", "The infoType is typically used in Uruguay.", + "The infoType is typically used in Uzbekistan.", "The infoType is typically used in Venezuela.", "The infoType is typically used in Google internally." ], @@ -7525,7 +8106,7 @@ "type": "object" }, "GooglePrivacyDlpV2JobTrigger": { - "description": "Contains a configuration to make dlp api calls on a repeating basis. See https://cloud.google.com/sensitive-data-protection/docs/concepts-job-triggers to learn more.", + "description": "Contains a configuration to make api calls on a repeating basis. See https://cloud.google.com/sensitive-data-protection/docs/concepts-job-triggers to learn more.", "id": "GooglePrivacyDlpV2JobTrigger", "properties": { "createTime": { @@ -8002,6 +8583,24 @@ }, "type": "object" }, + "GooglePrivacyDlpV2ListConnectionsResponse": { + "description": "Response message for ListConnections.", + "id": "GooglePrivacyDlpV2ListConnectionsResponse", + "properties": { + "connections": { + "description": "List of connections.", + "items": { + "$ref": "GooglePrivacyDlpV2Connection" + }, + "type": "array" + }, + "nextPageToken": { + "description": "Token to retrieve the next page of results. An empty value means there are no more results.", + "type": "string" + } + }, + "type": "object" + }, "GooglePrivacyDlpV2ListDeidentifyTemplatesResponse": { "description": "Response message for ListDeidentifyTemplates.", "id": "GooglePrivacyDlpV2ListDeidentifyTemplatesResponse", @@ -9122,6 +9721,79 @@ }, "type": "object" }, + "GooglePrivacyDlpV2SchemaModifiedCadence": { + "description": "How frequency to modify the profile when the table's schema is modified.", + "id": "GooglePrivacyDlpV2SchemaModifiedCadence", + "properties": { + "frequency": { + "description": "Frequency to regenerate data profiles when the schema is modified. Defaults to monthly.", + "enum": [ + "UPDATE_FREQUENCY_UNSPECIFIED", + "UPDATE_FREQUENCY_NEVER", + "UPDATE_FREQUENCY_DAILY", + "UPDATE_FREQUENCY_MONTHLY" + ], + "enumDescriptions": [ + "Unspecified.", + "After the data profile is created, it will never be updated.", + "The data profile can be updated up to once every 24 hours.", + "The data profile can be updated up to once every 30 days. Default." + ], + "type": "string" + }, + "types": { + "description": "The types of schema modifications to consider. Defaults to NEW_COLUMNS.", + "items": { + "enum": [ + "SQL_SCHEMA_MODIFICATION_UNSPECIFIED", + "NEW_COLUMNS", + "REMOVED_COLUMNS" + ], + "enumDescriptions": [ + "Unused.", + "New columns has appeared.", + "Columns have been removed from the table." + ], + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GooglePrivacyDlpV2SearchConnectionsResponse": { + "description": "Response message for SearchConnections.", + "id": "GooglePrivacyDlpV2SearchConnectionsResponse", + "properties": { + "connections": { + "description": "List of connections that match the search query. Note that only a subset of the fields will be populated, and only \"name\" is guaranteed to be set. For full details of a Connection, call GetConnection with the name.", + "items": { + "$ref": "GooglePrivacyDlpV2Connection" + }, + "type": "array" + }, + "nextPageToken": { + "description": "Token to retrieve the next page of results. An empty value means there are no more results.", + "type": "string" + } + }, + "type": "object" + }, + "GooglePrivacyDlpV2SecretManagerCredential": { + "description": "A credential consisting of a username and password, where the password is stored in a Secret Manager resource. Note: Secret Manager [charges apply](https://cloud.google.com/secret-manager/pricing).", + "id": "GooglePrivacyDlpV2SecretManagerCredential", + "properties": { + "passwordSecretVersionName": { + "description": "Required. The name of the Secret Manager resource that stores the password, in the form \"projects/project-id/secrets/secret-name/versions/version\".", + "type": "string" + }, + "username": { + "description": "Required. The username.", + "type": "string" + } + }, + "type": "object" + }, "GooglePrivacyDlpV2SelectedInfoTypes": { "description": "Apply transformation to the selected info_types.", "id": "GooglePrivacyDlpV2SelectedInfoTypes", @@ -9656,7 +10328,7 @@ "id": "GooglePrivacyDlpV2TimespanConfig", "properties": { "enableAutoPopulationOfTimespanConfig": { - "description": "When the job is started by a JobTrigger we will automatically figure out a valid start_time to avoid scanning files that have not been modified since the last time the JobTrigger executed. This will be based on the time of the execution of the last run of the JobTrigger or the timespan end_time used in the last run of the JobTrigger.", + "description": "When the job is started by a JobTrigger we will automatically figure out a valid start_time to avoid scanning files that have not been modified since the last time the JobTrigger executed. This will be based on the time of the execution of the last run of the JobTrigger or the timespan end_time used in the last run of the JobTrigger. *For BigQuery* Inspect jobs triggered by automatic population will scan data that is at least three hours old when the job starts. This is because streaming buffer rows are not read during inspection and reading up to the current timestamp will result in skipped rows. See the [known issue](https://cloud.google.com/sensitive-data-protection/docs/known-issues#recently-streamed-data) related to this operation.", "type": "boolean" }, "endTime": { @@ -9972,6 +10644,22 @@ }, "type": "object" }, + "GooglePrivacyDlpV2UpdateConnectionRequest": { + "description": "Request message for UpdateConnection.", + "id": "GooglePrivacyDlpV2UpdateConnectionRequest", + "properties": { + "connection": { + "$ref": "GooglePrivacyDlpV2Connection", + "description": "Required. The connection with new values for the relevant fields." + }, + "updateMask": { + "description": "Optional. Mask to control which fields get updated.", + "format": "google-fieldmask", + "type": "string" + } + }, + "type": "object" + }, "GooglePrivacyDlpV2UpdateDeidentifyTemplateRequest": { "description": "Request message for UpdateDeidentifyTemplate.", "id": "GooglePrivacyDlpV2UpdateDeidentifyTemplateRequest", diff --git a/etc/api/dns/v1/dns-api.json b/etc/api/dns/v1/dns-api.json index 3f9af9ffa2..2f7d3471e7 100644 --- a/etc/api/dns/v1/dns-api.json +++ b/etc/api/dns/v1/dns-api.json @@ -1824,7 +1824,7 @@ } } }, - "revision": "20240229", + "revision": "20240413", "rootUrl": "https://dns.googleapis.com/", "schemas": { "Change": { diff --git a/etc/api/dns/v1beta2/dns-api.json b/etc/api/dns/v1beta2/dns-api.json index 044a145362..80b19d31cc 100644 --- a/etc/api/dns/v1beta2/dns-api.json +++ b/etc/api/dns/v1beta2/dns-api.json @@ -1821,7 +1821,7 @@ } } }, - "revision": "20240229", + "revision": "20240413", "rootUrl": "https://dns.googleapis.com/", "schemas": { "Change": { diff --git a/etc/api/dns/v2/dns-api.json b/etc/api/dns/v2/dns-api.json index 121009dc8c..d0f347743c 100644 --- a/etc/api/dns/v2/dns-api.json +++ b/etc/api/dns/v2/dns-api.json @@ -2113,7 +2113,7 @@ } } }, - "revision": "20240229", + "revision": "20240413", "rootUrl": "https://dns.googleapis.com/", "schemas": { "Change": { diff --git a/etc/api/docs/v1/docs-api.json b/etc/api/docs/v1/docs-api.json index 9ef1cfb85b..46f2376449 100644 --- a/etc/api/docs/v1/docs-api.json +++ b/etc/api/docs/v1/docs-api.json @@ -216,7 +216,7 @@ } } }, - "revision": "20240229", + "revision": "20240415", "rootUrl": "https://docs.googleapis.com/", "schemas": { "AutoText": { diff --git a/etc/api/documentai/v1/documentai-api.json b/etc/api/documentai/v1/documentai-api.json index 16c757730c..60e8d9493e 100644 --- a/etc/api/documentai/v1/documentai-api.json +++ b/etc/api/documentai/v1/documentai-api.json @@ -1042,7 +1042,7 @@ } } }, - "revision": "20240223", + "revision": "20240417", "rootUrl": "https://documentai.googleapis.com/", "schemas": { "GoogleCloudDocumentaiUiv1beta3AutoLabelDocumentsMetadata": { @@ -3113,19 +3113,19 @@ "type": "number" }, "smallcaps": { - "description": "Whether the text is in small caps.", + "description": "Whether the text is in small caps. This feature is not supported yet.", "type": "boolean" }, "strikeout": { - "description": "Whether the text is strikethrough.", + "description": "Whether the text is strikethrough. This feature is not supported yet.", "type": "boolean" }, "subscript": { - "description": "Whether the text is a subscript.", + "description": "Whether the text is a subscript. This feature is not supported yet.", "type": "boolean" }, "superscript": { - "description": "Whether the text is a superscript.", + "description": "Whether the text is a superscript. This feature is not supported yet.", "type": "boolean" }, "textColor": { @@ -4394,11 +4394,11 @@ "type": "string" }, "name": { - "description": "The resource name of the processor version. Format: `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processor_version}`", + "description": "Identifier. The resource name of the processor version. Format: `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processor_version}`", "type": "string" }, "state": { - "description": "The state of the processor version.", + "description": "Output only. The state of the processor version.", "enum": [ "STATE_UNSPECIFIED", "DEPLOYED", @@ -4421,6 +4421,7 @@ "The processor version failed and is in an indeterminate state.", "The processor version is being imported." ], + "readOnly": true, "type": "string" } }, @@ -4646,6 +4647,10 @@ "$ref": "GoogleCloudDocumentaiV1DocumentSchema", "description": "Optional. The schema the processor version will be trained with." }, + "foundationModelTuningOptions": { + "$ref": "GoogleCloudDocumentaiV1TrainProcessorVersionRequestFoundationModelTuningOptions", + "description": "Options to control foundation model tuning of a processor." + }, "inputData": { "$ref": "GoogleCloudDocumentaiV1TrainProcessorVersionRequestInputData", "description": "Optional. The input data used to train the ProcessorVersion." @@ -4678,6 +4683,23 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1TrainProcessorVersionRequestFoundationModelTuningOptions": { + "description": "Options to control foundation model tuning of the processor.", + "id": "GoogleCloudDocumentaiV1TrainProcessorVersionRequestFoundationModelTuningOptions", + "properties": { + "learningRateMultiplier": { + "description": "Optional. The multiplier to apply to the recommended learning rate. Valid values are between 0.1 and 10. If not provided, recommended learning rate will be used.", + "format": "float", + "type": "number" + }, + "trainSteps": { + "description": "Optional. The number of steps to run for model tuning. Valid values are between 1 and 400. If not provided, recommended steps will be used.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1TrainProcessorVersionRequestInputData": { "description": "The input data used to train a new ProcessorVersion.", "id": "GoogleCloudDocumentaiV1TrainProcessorVersionRequestInputData", @@ -5650,19 +5672,19 @@ "type": "number" }, "smallcaps": { - "description": "Whether the text is in small caps.", + "description": "Whether the text is in small caps. This feature is not supported yet.", "type": "boolean" }, "strikeout": { - "description": "Whether the text is strikethrough.", + "description": "Whether the text is strikethrough. This feature is not supported yet.", "type": "boolean" }, "subscript": { - "description": "Whether the text is a subscript.", + "description": "Whether the text is a subscript. This feature is not supported yet.", "type": "boolean" }, "superscript": { - "description": "Whether the text is a superscript.", + "description": "Whether the text is a superscript. This feature is not supported yet.", "type": "boolean" }, "textColor": { @@ -7051,19 +7073,19 @@ "type": "number" }, "smallcaps": { - "description": "Whether the text is in small caps.", + "description": "Whether the text is in small caps. This feature is not supported yet.", "type": "boolean" }, "strikeout": { - "description": "Whether the text is strikethrough.", + "description": "Whether the text is strikethrough. This feature is not supported yet.", "type": "boolean" }, "subscript": { - "description": "Whether the text is a subscript.", + "description": "Whether the text is a subscript. This feature is not supported yet.", "type": "boolean" }, "superscript": { - "description": "Whether the text is a superscript.", + "description": "Whether the text is a superscript. This feature is not supported yet.", "type": "boolean" }, "textColor": { diff --git a/etc/api/documentai/v1beta2/documentai-api.json b/etc/api/documentai/v1beta2/documentai-api.json index 495942f4c6..cd965e5593 100644 --- a/etc/api/documentai/v1beta2/documentai-api.json +++ b/etc/api/documentai/v1beta2/documentai-api.json @@ -292,7 +292,7 @@ } } }, - "revision": "20240223", + "revision": "20240417", "rootUrl": "https://documentai.googleapis.com/", "schemas": { "GoogleCloudDocumentaiUiv1beta3AutoLabelDocumentsMetadata": { @@ -2483,19 +2483,19 @@ "type": "number" }, "smallcaps": { - "description": "Whether the text is in small caps.", + "description": "Whether the text is in small caps. This feature is not supported yet.", "type": "boolean" }, "strikeout": { - "description": "Whether the text is strikethrough.", + "description": "Whether the text is strikethrough. This feature is not supported yet.", "type": "boolean" }, "subscript": { - "description": "Whether the text is a subscript.", + "description": "Whether the text is a subscript. This feature is not supported yet.", "type": "boolean" }, "superscript": { - "description": "Whether the text is a superscript.", + "description": "Whether the text is a superscript. This feature is not supported yet.", "type": "boolean" }, "textColor": { @@ -3909,19 +3909,19 @@ "type": "number" }, "smallcaps": { - "description": "Whether the text is in small caps.", + "description": "Whether the text is in small caps. This feature is not supported yet.", "type": "boolean" }, "strikeout": { - "description": "Whether the text is strikethrough.", + "description": "Whether the text is strikethrough. This feature is not supported yet.", "type": "boolean" }, "subscript": { - "description": "Whether the text is a subscript.", + "description": "Whether the text is a subscript. This feature is not supported yet.", "type": "boolean" }, "superscript": { - "description": "Whether the text is a superscript.", + "description": "Whether the text is a superscript. This feature is not supported yet.", "type": "boolean" }, "textColor": { diff --git a/etc/api/documentai/v1beta3/documentai-api.json b/etc/api/documentai/v1beta3/documentai-api.json index b20bd92e8c..64eba3b292 100644 --- a/etc/api/documentai/v1beta3/documentai-api.json +++ b/etc/api/documentai/v1beta3/documentai-api.json @@ -1284,7 +1284,7 @@ } } }, - "revision": "20240223", + "revision": "20240417", "rootUrl": "https://documentai.googleapis.com/", "schemas": { "GoogleCloudDocumentaiUiv1beta3AutoLabelDocumentsMetadata": { @@ -3475,19 +3475,19 @@ "type": "number" }, "smallcaps": { - "description": "Whether the text is in small caps.", + "description": "Whether the text is in small caps. This feature is not supported yet.", "type": "boolean" }, "strikeout": { - "description": "Whether the text is strikethrough.", + "description": "Whether the text is strikethrough. This feature is not supported yet.", "type": "boolean" }, "subscript": { - "description": "Whether the text is a subscript.", + "description": "Whether the text is a subscript. This feature is not supported yet.", "type": "boolean" }, "superscript": { - "description": "Whether the text is a superscript.", + "description": "Whether the text is a superscript. This feature is not supported yet.", "type": "boolean" }, "textColor": { @@ -4876,19 +4876,19 @@ "type": "number" }, "smallcaps": { - "description": "Whether the text is in small caps.", + "description": "Whether the text is in small caps. This feature is not supported yet.", "type": "boolean" }, "strikeout": { - "description": "Whether the text is strikethrough.", + "description": "Whether the text is strikethrough. This feature is not supported yet.", "type": "boolean" }, "subscript": { - "description": "Whether the text is a subscript.", + "description": "Whether the text is a subscript. This feature is not supported yet.", "type": "boolean" }, "superscript": { - "description": "Whether the text is a superscript.", + "description": "Whether the text is a superscript. This feature is not supported yet.", "type": "boolean" }, "textColor": { @@ -5862,11 +5862,19 @@ "description": "Document represents the canonical document resource in Document AI. It is an interchange format that provides insights into documents and allows for collaboration between users and Document AI to iterate and optimize for quality.", "id": "GoogleCloudDocumentaiV1beta3Document", "properties": { + "chunkedDocument": { + "$ref": "GoogleCloudDocumentaiV1beta3DocumentChunkedDocument", + "description": "Document chunked based on chunking config." + }, "content": { "description": "Optional. Inline document content, represented as a stream of bytes. Note: As with all `bytes` fields, protobuffers use a pure binary representation, whereas JSON representations use base64.", "format": "byte", "type": "string" }, + "documentLayout": { + "$ref": "GoogleCloudDocumentaiV1beta3DocumentDocumentLayout", + "description": "Parsed layout of the document." + }, "entities": { "description": "A list of entities detected on Document.text. For document shards, entities in this list may cross shard boundaries.", "items": { @@ -5933,6 +5941,275 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1beta3DocumentChunkedDocument": { + "description": "Represents the chunks that the document is divided into.", + "id": "GoogleCloudDocumentaiV1beta3DocumentChunkedDocument", + "properties": { + "chunks": { + "description": "List of chunks.", + "items": { + "$ref": "GoogleCloudDocumentaiV1beta3DocumentChunkedDocumentChunk" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3DocumentChunkedDocumentChunk": { + "description": "Represents a chunk.", + "id": "GoogleCloudDocumentaiV1beta3DocumentChunkedDocumentChunk", + "properties": { + "chunkId": { + "description": "ID of the chunk.", + "type": "string" + }, + "content": { + "description": "Text content of the chunk.", + "type": "string" + }, + "pageFooters": { + "description": "Page footers associated with the chunk.", + "items": { + "$ref": "GoogleCloudDocumentaiV1beta3DocumentChunkedDocumentChunkChunkPageFooter" + }, + "type": "array" + }, + "pageHeaders": { + "description": "Page headers associated with the chunk.", + "items": { + "$ref": "GoogleCloudDocumentaiV1beta3DocumentChunkedDocumentChunkChunkPageHeader" + }, + "type": "array" + }, + "pageSpan": { + "$ref": "GoogleCloudDocumentaiV1beta3DocumentChunkedDocumentChunkChunkPageSpan", + "description": "Page span of the chunk." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3DocumentChunkedDocumentChunkChunkPageFooter": { + "description": "Represents the page footer associated with the chunk.", + "id": "GoogleCloudDocumentaiV1beta3DocumentChunkedDocumentChunkChunkPageFooter", + "properties": { + "pageSpan": { + "$ref": "GoogleCloudDocumentaiV1beta3DocumentChunkedDocumentChunkChunkPageSpan", + "description": "Page span of the footer." + }, + "text": { + "description": "Footer in text format.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3DocumentChunkedDocumentChunkChunkPageHeader": { + "description": "Represents the page header associated with the chunk.", + "id": "GoogleCloudDocumentaiV1beta3DocumentChunkedDocumentChunkChunkPageHeader", + "properties": { + "pageSpan": { + "$ref": "GoogleCloudDocumentaiV1beta3DocumentChunkedDocumentChunkChunkPageSpan", + "description": "Page span of the header." + }, + "text": { + "description": "Header in text format.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3DocumentChunkedDocumentChunkChunkPageSpan": { + "description": "Represents where the chunk starts and ends in the document.", + "id": "GoogleCloudDocumentaiV1beta3DocumentChunkedDocumentChunkChunkPageSpan", + "properties": { + "pageEnd": { + "description": "Page where chunk ends in the document.", + "format": "int32", + "type": "integer" + }, + "pageStart": { + "description": "Page where chunk starts in the document.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3DocumentDocumentLayout": { + "description": "Represents the parsed layout of a document as a collection of blocks that the document is divided into.", + "id": "GoogleCloudDocumentaiV1beta3DocumentDocumentLayout", + "properties": { + "blocks": { + "description": "List of blocks in the document.", + "items": { + "$ref": "GoogleCloudDocumentaiV1beta3DocumentDocumentLayoutDocumentLayoutBlock" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3DocumentDocumentLayoutDocumentLayoutBlock": { + "description": "Represents a block. A block could be one of the various types (text, table, list) supported.", + "id": "GoogleCloudDocumentaiV1beta3DocumentDocumentLayoutDocumentLayoutBlock", + "properties": { + "blockId": { + "description": "ID of the block.", + "type": "string" + }, + "listBlock": { + "$ref": "GoogleCloudDocumentaiV1beta3DocumentDocumentLayoutDocumentLayoutBlockLayoutListBlock", + "description": "Block consisting of list content/structure." + }, + "pageSpan": { + "$ref": "GoogleCloudDocumentaiV1beta3DocumentDocumentLayoutDocumentLayoutBlockLayoutPageSpan", + "description": "Page span of the block." + }, + "tableBlock": { + "$ref": "GoogleCloudDocumentaiV1beta3DocumentDocumentLayoutDocumentLayoutBlockLayoutTableBlock", + "description": "Block consisting of table content/structure." + }, + "textBlock": { + "$ref": "GoogleCloudDocumentaiV1beta3DocumentDocumentLayoutDocumentLayoutBlockLayoutTextBlock", + "description": "Block consisting of text content." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3DocumentDocumentLayoutDocumentLayoutBlockLayoutListBlock": { + "description": "Represents a list type block.", + "id": "GoogleCloudDocumentaiV1beta3DocumentDocumentLayoutDocumentLayoutBlockLayoutListBlock", + "properties": { + "listEntries": { + "description": "List entries that constitute a list block.", + "items": { + "$ref": "GoogleCloudDocumentaiV1beta3DocumentDocumentLayoutDocumentLayoutBlockLayoutListEntry" + }, + "type": "array" + }, + "type": { + "description": "Type of the list_entries (if exist). Available options are `ordered` and `unordered`.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3DocumentDocumentLayoutDocumentLayoutBlockLayoutListEntry": { + "description": "Represents an entry in the list.", + "id": "GoogleCloudDocumentaiV1beta3DocumentDocumentLayoutDocumentLayoutBlockLayoutListEntry", + "properties": { + "blocks": { + "description": "A list entry is a list of blocks. Repeated blocks support further hierarchies and nested blocks.", + "items": { + "$ref": "GoogleCloudDocumentaiV1beta3DocumentDocumentLayoutDocumentLayoutBlock" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3DocumentDocumentLayoutDocumentLayoutBlockLayoutPageSpan": { + "description": "Represents where the block starts and ends in the document.", + "id": "GoogleCloudDocumentaiV1beta3DocumentDocumentLayoutDocumentLayoutBlockLayoutPageSpan", + "properties": { + "pageEnd": { + "description": "Page where block ends in the document.", + "format": "int32", + "type": "integer" + }, + "pageStart": { + "description": "Page where block starts in the document.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3DocumentDocumentLayoutDocumentLayoutBlockLayoutTableBlock": { + "description": "Represents a table type block.", + "id": "GoogleCloudDocumentaiV1beta3DocumentDocumentLayoutDocumentLayoutBlockLayoutTableBlock", + "properties": { + "bodyRows": { + "description": "Body rows containing main table content.", + "items": { + "$ref": "GoogleCloudDocumentaiV1beta3DocumentDocumentLayoutDocumentLayoutBlockLayoutTableRow" + }, + "type": "array" + }, + "caption": { + "description": "Table caption/title.", + "type": "string" + }, + "headerRows": { + "description": "Header rows at the top of the table.", + "items": { + "$ref": "GoogleCloudDocumentaiV1beta3DocumentDocumentLayoutDocumentLayoutBlockLayoutTableRow" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3DocumentDocumentLayoutDocumentLayoutBlockLayoutTableCell": { + "description": "Represents a cell in a table row.", + "id": "GoogleCloudDocumentaiV1beta3DocumentDocumentLayoutDocumentLayoutBlockLayoutTableCell", + "properties": { + "blocks": { + "description": "A table cell is a list of blocks. Repeated blocks support further hierarchies and nested blocks.", + "items": { + "$ref": "GoogleCloudDocumentaiV1beta3DocumentDocumentLayoutDocumentLayoutBlock" + }, + "type": "array" + }, + "colSpan": { + "description": "How many columns this cell spans.", + "format": "int32", + "type": "integer" + }, + "rowSpan": { + "description": "How many rows this cell spans.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3DocumentDocumentLayoutDocumentLayoutBlockLayoutTableRow": { + "description": "Represents a row in a table.", + "id": "GoogleCloudDocumentaiV1beta3DocumentDocumentLayoutDocumentLayoutBlockLayoutTableRow", + "properties": { + "cells": { + "description": "A table row is a list of table cells.", + "items": { + "$ref": "GoogleCloudDocumentaiV1beta3DocumentDocumentLayoutDocumentLayoutBlockLayoutTableCell" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3DocumentDocumentLayoutDocumentLayoutBlockLayoutTextBlock": { + "description": "Represents a text type block.", + "id": "GoogleCloudDocumentaiV1beta3DocumentDocumentLayoutDocumentLayoutBlockLayoutTextBlock", + "properties": { + "blocks": { + "description": "A text block could further have child blocks. Repeated blocks support further hierarchies and nested blocks.", + "items": { + "$ref": "GoogleCloudDocumentaiV1beta3DocumentDocumentLayoutDocumentLayoutBlock" + }, + "type": "array" + }, + "text": { + "description": "Text content stored in the block.", + "type": "string" + }, + "type": { + "description": "Type of the text in the block. Available options are: `paragraph`, `subtitle`, `heading-1`, `heading-2`, `heading-3`, `heading-4`, `heading-5`, `header`, `footer`.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1beta3DocumentEntity": { "description": "An entity that could be a phrase in the text or a property that belongs to the document. It is a known entity type, such as a person, an organization, or location.", "id": "GoogleCloudDocumentaiV1beta3DocumentEntity", @@ -6856,19 +7133,19 @@ "type": "number" }, "smallcaps": { - "description": "Whether the text is in small caps.", + "description": "Whether the text is in small caps. This feature is not supported yet.", "type": "boolean" }, "strikeout": { - "description": "Whether the text is strikethrough.", + "description": "Whether the text is strikethrough. This feature is not supported yet.", "type": "boolean" }, "subscript": { - "description": "Whether the text is a subscript.", + "description": "Whether the text is a subscript. This feature is not supported yet.", "type": "boolean" }, "superscript": { - "description": "Whether the text is a superscript.", + "description": "Whether the text is a superscript. This feature is not supported yet.", "type": "boolean" }, "textColor": { @@ -7862,7 +8139,7 @@ "description": "The source processor version to import from. It can be from a different environment and region than the destination processor." }, "processorVersionSource": { - "description": "The source processor version to import from. The source processor version and destination processor need to be in the same environment and region.", + "description": "The source processor version to import from. The source processor version and destination processor need to be in the same environment and region. Note that ProcessorVersions with `model_type` `MODEL_TYPE_LLM` are not supported.", "type": "string" } }, @@ -8127,6 +8404,10 @@ "$ref": "GoogleCloudDocumentaiV1beta3ProcessOptionsIndividualPageSelector", "description": "Which pages to process (1-indexed)." }, + "layoutConfig": { + "$ref": "GoogleCloudDocumentaiV1beta3ProcessOptionsLayoutConfig", + "description": "Optional. Only applicable to `LAYOUT_PARSER_PROCESSOR`. Returns error if set on other processor types." + }, "ocrConfig": { "$ref": "GoogleCloudDocumentaiV1beta3OcrConfig", "description": "Only applicable to `OCR_PROCESSOR` and `FORM_PARSER_PROCESSOR`. Returns error if set on other processor types." @@ -8153,6 +8434,42 @@ }, "type": "object" }, + "GoogleCloudDocumentaiV1beta3ProcessOptionsLayoutConfig": { + "description": "Serving config for layout parser processor.", + "id": "GoogleCloudDocumentaiV1beta3ProcessOptionsLayoutConfig", + "properties": { + "chunkingConfig": { + "$ref": "GoogleCloudDocumentaiV1beta3ProcessOptionsLayoutConfigChunkingConfig", + "description": "Optional. Config for chunking in layout parser processor." + } + }, + "type": "object" + }, + "GoogleCloudDocumentaiV1beta3ProcessOptionsLayoutConfigChunkingConfig": { + "description": "Serving config for chunking.", + "id": "GoogleCloudDocumentaiV1beta3ProcessOptionsLayoutConfigChunkingConfig", + "properties": { + "breakpointPercentileThreshold": { + "description": "Optional. The percentile of cosine dissimilarity that must be exceeded between a group of tokens and the next. The smaller this number is, the more chunks will be generated.", + "format": "int32", + "type": "integer" + }, + "chunkSize": { + "description": "Optional. The chunk sizes to use when splitting documents, in order of level.", + "format": "int32", + "type": "integer" + }, + "includeAncestorHeadings": { + "description": "Optional. Whether or not to include ancestor headings when splitting.", + "type": "boolean" + }, + "semanticChunkingGroupSize": { + "description": "Optional. The number of tokens to group together when evaluating semantic similarity.", + "type": "boolean" + } + }, + "type": "object" + }, "GoogleCloudDocumentaiV1beta3ProcessRequest": { "description": "Request message for the ProcessDocument method.", "id": "GoogleCloudDocumentaiV1beta3ProcessRequest", @@ -8414,11 +8731,11 @@ "type": "string" }, "name": { - "description": "The resource name of the processor version. Format: `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processor_version}`", + "description": "Identifier. The resource name of the processor version. Format: `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processor_version}`", "type": "string" }, "state": { - "description": "The state of the processor version.", + "description": "Output only. The state of the processor version.", "enum": [ "STATE_UNSPECIFIED", "DEPLOYED", @@ -8441,6 +8758,7 @@ "The processor version failed and is in an indeterminate state.", "The processor version is being imported." ], + "readOnly": true, "type": "string" } }, diff --git a/etc/api/domains/v1/domains-api.json b/etc/api/domains/v1/domains-api.json index faa0f47cb4..20f8043fdd 100644 --- a/etc/api/domains/v1/domains-api.json +++ b/etc/api/domains/v1/domains-api.json @@ -250,7 +250,7 @@ "registrations": { "methods": { "configureContactSettings": { - "description": "Updates a `Registration`'s contact settings. Some changes require confirmation by the domain's registrant contact .", + "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", @@ -848,7 +848,7 @@ } } }, - "revision": "20240221", + "revision": "20240327", "rootUrl": "https://domains.googleapis.com/", "schemas": { "AuditConfig": { diff --git a/etc/api/domains/v1alpha2/domains-api.json b/etc/api/domains/v1alpha2/domains-api.json index 7f07e1f105..6de4056d7d 100644 --- a/etc/api/domains/v1alpha2/domains-api.json +++ b/etc/api/domains/v1alpha2/domains-api.json @@ -250,7 +250,7 @@ "registrations": { "methods": { "configureContactSettings": { - "description": "Updates a `Registration`'s contact settings. Some changes require confirmation by the domain's registrant contact .", + "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", @@ -848,7 +848,7 @@ } } }, - "revision": "20240221", + "revision": "20240327", "rootUrl": "https://domains.googleapis.com/", "schemas": { "AuditConfig": { @@ -1859,6 +1859,21 @@ "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": [ diff --git a/etc/api/domains/v1beta1/domains-api.json b/etc/api/domains/v1beta1/domains-api.json index f8c50ec0d5..a0670b4548 100644 --- a/etc/api/domains/v1beta1/domains-api.json +++ b/etc/api/domains/v1beta1/domains-api.json @@ -250,7 +250,7 @@ "registrations": { "methods": { "configureContactSettings": { - "description": "Updates a `Registration`'s contact settings. Some changes require confirmation by the domain's registrant contact .", + "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": "v1beta1/projects/{projectsId}/locations/{locationsId}/registrations/{registrationsId}:configureContactSettings", "httpMethod": "POST", "id": "domains.projects.locations.registrations.configureContactSettings", @@ -848,7 +848,7 @@ } } }, - "revision": "20240221", + "revision": "20240327", "rootUrl": "https://domains.googleapis.com/", "schemas": { "AuditConfig": { diff --git a/etc/api/domainsrdap/v1/domainsrdap-api.json b/etc/api/domainsrdap/v1/domainsrdap-api.json index e3db48ba04..66fe2fbff0 100644 --- a/etc/api/domainsrdap/v1/domainsrdap-api.json +++ b/etc/api/domainsrdap/v1/domainsrdap-api.json @@ -289,7 +289,7 @@ } } }, - "revision": "20240304", + "revision": "20240418", "rootUrl": "https://domainsrdap.googleapis.com/", "schemas": { "HttpBody": { diff --git a/etc/api/doubleclicksearch/v2/doubleclicksearch-api.json b/etc/api/doubleclicksearch/v2/doubleclicksearch-api.json index 55fccf3631..d5b4d8e711 100644 --- a/etc/api/doubleclicksearch/v2/doubleclicksearch-api.json +++ b/etc/api/doubleclicksearch/v2/doubleclicksearch-api.json @@ -543,7 +543,7 @@ } } }, - "revision": "20240227", + "revision": "20240409", "rootUrl": "https://doubleclicksearch.googleapis.com/", "schemas": { "Availability": { diff --git a/etc/api/drive/v2/drive-api.json b/etc/api/drive/v2/drive-api.json index f5a73edfeb..8c5562555d 100644 --- a/etc/api/drive/v2/drive-api.json +++ b/etc/api/drive/v2/drive-api.json @@ -3842,7 +3842,7 @@ } } }, - "revision": "20240227", + "revision": "20240412", "rootUrl": "https://www.googleapis.com/", "schemas": { "About": { diff --git a/etc/api/drive/v3/drive-api.json b/etc/api/drive/v3/drive-api.json index b12975b933..e0f33bd5aa 100644 --- a/etc/api/drive/v3/drive-api.json +++ b/etc/api/drive/v3/drive-api.json @@ -891,7 +891,7 @@ ] }, "update": { - "description": "Updates the metadate for a shared drive.", + "description": "Updates the metadata for a shared drive.", "flatPath": "drives/{driveId}", "httpMethod": "PATCH", "id": "drive.drives.update", @@ -2503,7 +2503,7 @@ } } }, - "revision": "20240227", + "revision": "20240412", "rootUrl": "https://www.googleapis.com/", "schemas": { "About": { diff --git a/etc/api/driveactivity/v2/driveactivity-api.json b/etc/api/driveactivity/v2/driveactivity-api.json index 43d24dbbfc..99a3bf7a99 100644 --- a/etc/api/driveactivity/v2/driveactivity-api.json +++ b/etc/api/driveactivity/v2/driveactivity-api.json @@ -132,7 +132,7 @@ } } }, - "revision": "20240302", + "revision": "20240416", "rootUrl": "https://driveactivity.googleapis.com/", "schemas": { "Action": { diff --git a/etc/api/essentialcontacts/v1/essentialcontacts-api.json b/etc/api/essentialcontacts/v1/essentialcontacts-api.json index e73dadc8f3..e3682c65b4 100644 --- a/etc/api/essentialcontacts/v1/essentialcontacts-api.json +++ b/etc/api/essentialcontacts/v1/essentialcontacts-api.json @@ -850,7 +850,7 @@ } } }, - "revision": "20240223", + "revision": "20240414", "rootUrl": "https://essentialcontacts.googleapis.com/", "schemas": { "GoogleCloudEssentialcontactsV1ComputeContactsResponse": { diff --git a/etc/api/eventarc/v1/eventarc-api.json b/etc/api/eventarc/v1/eventarc-api.json index 7b8b4cc1f3..d032919e7e 100644 --- a/etc/api/eventarc/v1/eventarc-api.json +++ b/etc/api/eventarc/v1/eventarc-api.json @@ -1197,7 +1197,7 @@ } } }, - "revision": "20240223", + "revision": "20240409", "rootUrl": "https://eventarc.googleapis.com/", "schemas": { "AuditConfig": { diff --git a/etc/api/eventarc/v1beta1/eventarc-api.json b/etc/api/eventarc/v1beta1/eventarc-api.json index e501d3320b..bed19b0d71 100644 --- a/etc/api/eventarc/v1beta1/eventarc-api.json +++ b/etc/api/eventarc/v1beta1/eventarc-api.json @@ -584,7 +584,7 @@ } } }, - "revision": "20240223", + "revision": "20240409", "rootUrl": "https://eventarc.googleapis.com/", "schemas": { "AuditConfig": { diff --git a/etc/api/factchecktools/v1alpha1/factchecktools-api.json b/etc/api/factchecktools/v1alpha1/factchecktools-api.json index b0a7a04c10..268464210a 100644 --- a/etc/api/factchecktools/v1alpha1/factchecktools-api.json +++ b/etc/api/factchecktools/v1alpha1/factchecktools-api.json @@ -107,6 +107,46 @@ "resources": { "claims": { "methods": { + "imageSearch": { + "description": "Search through fact-checked claims using an image as the query.", + "flatPath": "v1alpha1/claims:imageSearch", + "httpMethod": "GET", + "id": "factchecktools.claims.imageSearch", + "parameterOrder": [], + "parameters": { + "imageUri": { + "description": "Required. The URI of the source image. This must be 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.", + "location": "query", + "type": "string" + }, + "languageCode": { + "description": "Optional. The BCP-47 language code, such as \"en-US\" or \"sr-Latn\". Can be used to restrict results by language, though we do not currently consider the region.", + "location": "query", + "type": "string" + }, + "offset": { + "description": "Optional. An integer that specifies the current offset (that is, starting result location) in search results. This field is only considered if `page_token` is unset. For example, 0 means to return results starting from the first matching result, and 10 means to return from the 11th result.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageSize": { + "description": "Optional. The pagination size. We will return up to that many results. Defaults to 10 if not set.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. The pagination token. You may provide the `next_page_token` returned from a previous List request, if any, in order to get the next page. All other fields must have the same values as in the previous request.", + "location": "query", + "type": "string" + } + }, + "path": "v1alpha1/claims:imageSearch", + "response": { + "$ref": "GoogleFactcheckingFactchecktoolsV1alpha1FactCheckedClaimImageSearchResponse" + } + }, "search": { "description": "Search through fact-checked claims.", "flatPath": "v1alpha1/claims:search", @@ -304,7 +344,7 @@ } } }, - "revision": "20240303", + "revision": "20240414", "rootUrl": "https://factchecktools.googleapis.com/", "schemas": { "GoogleFactcheckingFactchecktoolsV1alpha1Claim": { @@ -514,6 +554,35 @@ }, "type": "object" }, + "GoogleFactcheckingFactchecktoolsV1alpha1FactCheckedClaimImageSearchResponse": { + "description": "Response from searching fact-checked claims by image.", + "id": "GoogleFactcheckingFactchecktoolsV1alpha1FactCheckedClaimImageSearchResponse", + "properties": { + "nextPageToken": { + "description": "The next pagination token in the Search response. It should be used as the `page_token` for the following request. An empty value means no more results.", + "type": "string" + }, + "results": { + "description": "The list of claims and all of their associated information.", + "items": { + "$ref": "GoogleFactcheckingFactchecktoolsV1alpha1FactCheckedClaimImageSearchResponseResult" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleFactcheckingFactchecktoolsV1alpha1FactCheckedClaimImageSearchResponseResult": { + "description": "A claim and its associated information.", + "id": "GoogleFactcheckingFactchecktoolsV1alpha1FactCheckedClaimImageSearchResponseResult", + "properties": { + "claim": { + "$ref": "GoogleFactcheckingFactchecktoolsV1alpha1Claim", + "description": "A claim which matched the query." + } + }, + "type": "object" + }, "GoogleFactcheckingFactchecktoolsV1alpha1FactCheckedClaimSearchResponse": { "description": "Response from searching fact-checked claims.", "id": "GoogleFactcheckingFactchecktoolsV1alpha1FactCheckedClaimSearchResponse", diff --git a/etc/api/fcm/v1/fcm-api.json b/etc/api/fcm/v1/fcm-api.json index 8b59acd9ce..1723f5b9f0 100644 --- a/etc/api/fcm/v1/fcm-api.json +++ b/etc/api/fcm/v1/fcm-api.json @@ -146,7 +146,7 @@ } } }, - "revision": "20240227", + "revision": "20240416", "rootUrl": "https://fcm.googleapis.com/", "schemas": { "AndroidConfig": { diff --git a/etc/api/fcmdata/v1beta1/fcmdata-api.json b/etc/api/fcmdata/v1beta1/fcmdata-api.json index 3b72b72d43..9068a68094 100644 --- a/etc/api/fcmdata/v1beta1/fcmdata-api.json +++ b/etc/api/fcmdata/v1beta1/fcmdata-api.json @@ -154,7 +154,7 @@ } } }, - "revision": "20240303", + "revision": "20240418", "rootUrl": "https://fcmdata.googleapis.com/", "schemas": { "GoogleFirebaseFcmDataV1beta1AndroidDeliveryData": { diff --git a/etc/api/file/v1/file-api.json b/etc/api/file/v1/file-api.json index 6304c7afe9..33240fe27d 100644 --- a/etc/api/file/v1/file-api.json +++ b/etc/api/file/v1/file-api.json @@ -557,7 +557,7 @@ ], "parameters": { "name": { - "description": "Required. `projects/{project_id}/locations/{location_id}/instances/{instance_id}`. The resource name of the instance, in the format", + "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, @@ -874,7 +874,7 @@ } } }, - "revision": "20240126", + "revision": "20240307", "rootUrl": "https://file.googleapis.com/", "schemas": { "Backup": { @@ -1643,7 +1643,7 @@ "type": "object" }, "MaintenancePolicy": { - "description": "LINT.IfChange Defines policies to service maintenance events.", + "description": "Defines policies to service maintenance events.", "id": "MaintenancePolicy", "properties": { "createTime": { diff --git a/etc/api/file/v1beta1/file-api.json b/etc/api/file/v1beta1/file-api.json index 517218a7e5..eb24d51bdb 100644 --- a/etc/api/file/v1beta1/file-api.json +++ b/etc/api/file/v1beta1/file-api.json @@ -502,7 +502,7 @@ "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: * \"description\" * \"file_shares\" * \"labels\"", + "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: * \"description\" * \"directory_services\" * \"file_shares\" * \"labels\"", "format": "google-fieldmask", "location": "query", "type": "string" @@ -519,6 +519,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "promoteReplica": { + "description": "Promote an standby instance (replica).", + "flatPath": "v1beta1/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": "v1beta1/{+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": "v1beta1/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:restore", @@ -557,7 +585,7 @@ ], "parameters": { "name": { - "description": "Required. `projects/{project_id}/locations/{location_id}/instances/{instance_id}`. The resource name of the instance, in the format", + "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, @@ -1041,7 +1069,7 @@ } } }, - "revision": "20240126", + "revision": "20240307", "rootUrl": "https://file.googleapis.com/", "schemas": { "Backup": { @@ -1570,7 +1598,7 @@ }, "directoryServices": { "$ref": "DirectoryServicesConfig", - "description": "Directory Services configuration for Kerberos-based authentication. Should only be set if protocol is \"NFS_V4_1\"." + "description": "Optional. Directory Services configuration for Kerberos-based authentication. Should only be set if protocol is \"NFS_V4_1\"." }, "etag": { "description": "Server-specified ETag for the instance resource to prevent simultaneous updates from overwriting each other.", @@ -1658,7 +1686,8 @@ "SUSPENDED", "REVERTING", "SUSPENDING", - "RESUMING" + "RESUMING", + "PROMOTING" ], "enumDescriptions": [ "State not set.", @@ -1671,7 +1700,8 @@ "The instance is suspended. You can get further details from the `suspension_reasons` field of the `Instance` resource.", "The instance is reverting to a snapshot.", "The instance is in the process of becoming suspended.", - "The instance is in the process of becoming active." + "The instance is in the process of becoming active.", + "The replica instance is being promoted." ], "readOnly": true, "type": "string" @@ -1890,7 +1920,7 @@ "type": "object" }, "MaintenancePolicy": { - "description": "LINT.IfChange Defines policies to service maintenance events.", + "description": "Defines policies to service maintenance events.", "id": "MaintenancePolicy", "properties": { "createTime": { @@ -1959,11 +1989,11 @@ "id": "ManagedActiveDirectoryConfig", "properties": { "computer": { - "description": "The computer name is used as a prefix to the mount remote target. Example: if the computer_name is `my-computer`, the mount command will look like: `$mount -o vers=4,sec=krb5 my-computer.filestore.:`.", + "description": "Required. The computer name is used as a prefix to the mount remote target. Example: if the computer is `my-computer`, the mount command will look like: `$mount -o vers=4.1,sec=krb5 my-computer.filestore.: `.", "type": "string" }, "domain": { - "description": "Fully qualified domain name.", + "description": "Required. The domain resource name, in the format `projects/{project_id}/locations/global/domains/{domain}`.", "type": "string" } }, @@ -2173,6 +2203,12 @@ }, "type": "object" }, + "PromoteReplicaRequest": { + "description": "PromoteReplicaRequest promotes a Filestore standby instance (replica).", + "id": "PromoteReplicaRequest", + "properties": {}, + "type": "object" + }, "RestoreInstanceRequest": { "description": "RestoreInstanceRequest restores an existing instance's file share from a backup.", "id": "RestoreInstanceRequest", diff --git a/etc/api/firebase/v1beta1/firebase-api.json b/etc/api/firebase/v1beta1/firebase-api.json index d2b5d29225..e9e6ed7af8 100644 --- a/etc/api/firebase/v1beta1/firebase-api.json +++ b/etc/api/firebase/v1beta1/firebase-api.json @@ -1324,7 +1324,7 @@ } } }, - "revision": "20240304", + "revision": "20240418", "rootUrl": "https://firebase.googleapis.com/", "schemas": { "AddFirebaseRequest": { diff --git a/etc/api/firebaseappcheck/v1beta/firebaseappcheck-api.json b/etc/api/firebaseappcheck/v1beta/firebaseappcheck-api.json index 94c00b75ad..e74ea8fb89 100644 --- a/etc/api/firebaseappcheck/v1beta/firebaseappcheck-api.json +++ b/etc/api/firebaseappcheck/v1beta/firebaseappcheck-api.json @@ -150,7 +150,7 @@ ], "parameters": { "app": { - "description": "Required. The relative resource name of the iOS app, in the format: ``` projects/{project_number}/apps/{app_id} ``` If necessary, the `project_number` element can be replaced with the project ID of the Firebase project. Learn more about using project identifiers in Google's [AIP 2510](https://google.aip.dev/cloud/2510) standard.", + "description": "Required. The relative resource name of the iOS app, in the format: ``` projects/{project_number}/apps/{app_id} ``` If necessary, the `project_number` element can be replaced with the project ID of the Firebase project. Learn more about using project identifiers in Google's [AIP 2510](https://google.aip.dev/cloud/2510) standard. Alternatively, if this method is being called for an OAuth client protected by App Check, this field can also be in the format: ``` oauthClients/{oauth_client_id} ``` You can view the OAuth client ID for your OAuth clients in the Google Cloud console. Note that only iOS OAuth clients are supported at this time, and they must be linked to corresponding iOS Firebase apps. Please see [the documentation](https://developers.google.com/identity/sign-in/ios/appcheck/get-started#project-setup) for more information.", "location": "path", "pattern": "^oauthClients/[^/]+$", "required": true, @@ -179,7 +179,7 @@ ], "parameters": { "app": { - "description": "Required. The relative resource name of the iOS app, in the format: ``` projects/{project_number}/apps/{app_id} ``` If necessary, the `project_number` element can be replaced with the project ID of the Firebase project. Learn more about using project identifiers in Google's [AIP 2510](https://google.aip.dev/cloud/2510) standard.", + "description": "Required. The relative resource name of the iOS app, in the format: ``` projects/{project_number}/apps/{app_id} ``` If necessary, the `project_number` element can be replaced with the project ID of the Firebase project. Learn more about using project identifiers in Google's [AIP 2510](https://google.aip.dev/cloud/2510) standard. Alternatively, if this method is being called for an OAuth client protected by App Check, this field can also be in the format: ``` oauthClients/{oauth_client_id} ``` You can view the OAuth client ID for your OAuth clients in the Google Cloud console. Note that only iOS OAuth clients are supported at this time, and they must be linked to corresponding iOS Firebase apps. Please see [the documentation](https://developers.google.com/identity/sign-in/ios/appcheck/get-started#project-setup) for more information.", "location": "path", "pattern": "^oauthClients/[^/]+$", "required": true, @@ -208,7 +208,7 @@ ], "parameters": { "app": { - "description": "Required. The relative resource name of the app, in the format: ``` projects/{project_number}/apps/{app_id} ``` If necessary, the `project_number` element can be replaced with the project ID of the Firebase project. Learn more about using project identifiers in Google's [AIP 2510](https://google.aip.dev/cloud/2510) standard.", + "description": "Required. The relative resource name of the app, in the format: ``` projects/{project_number}/apps/{app_id} ``` If necessary, the `project_number` element can be replaced with the project ID of the Firebase project. Learn more about using project identifiers in Google's [AIP 2510](https://google.aip.dev/cloud/2510) standard. Alternatively, if this method is being called for an OAuth client protected by App Check, this field can also be in the format: ``` oauthClients/{oauth_client_id} ``` You can view the OAuth client ID for your OAuth clients in the Google Cloud console. Note that only iOS OAuth clients are supported at this time, and they must be linked to corresponding iOS Firebase apps. Please see [the documentation](https://developers.google.com/identity/sign-in/ios/appcheck/get-started#project-setup) for more information.", "location": "path", "pattern": "^oauthClients/[^/]+$", "required": true, @@ -237,7 +237,7 @@ ], "parameters": { "app": { - "description": "Required. The relative resource name of the iOS app, in the format: ``` projects/{project_number}/apps/{app_id} ``` If necessary, the `project_number` element can be replaced with the project ID of the Firebase project. Learn more about using project identifiers in Google's [AIP 2510](https://google.aip.dev/cloud/2510) standard.", + "description": "Required. The relative resource name of the iOS app, in the format: ``` projects/{project_number}/apps/{app_id} ``` If necessary, the `project_number` element can be replaced with the project ID of the Firebase project. Learn more about using project identifiers in Google's [AIP 2510](https://google.aip.dev/cloud/2510) standard. Alternatively, if this method is being called for an OAuth client protected by App Check, this field can also be in the format: ``` oauthClients/{oauth_client_id} ``` You can view the OAuth client ID for your OAuth clients in the Google Cloud console. Note that only iOS OAuth clients are supported at this time, and they must be linked to corresponding iOS Firebase apps. Please see [the documentation](https://developers.google.com/identity/sign-in/ios/appcheck/get-started#project-setup) for more information.", "location": "path", "pattern": "^oauthClients/[^/]+$", "required": true, @@ -303,7 +303,7 @@ ], "parameters": { "app": { - "description": "Required. The relative resource name of the iOS app, in the format: ``` projects/{project_number}/apps/{app_id} ``` If necessary, the `project_number` element can be replaced with the project ID of the Firebase project. Learn more about using project identifiers in Google's [AIP 2510](https://google.aip.dev/cloud/2510) standard.", + "description": "Required. The relative resource name of the iOS app, in the format: ``` projects/{project_number}/apps/{app_id} ``` If necessary, the `project_number` element can be replaced with the project ID of the Firebase project. Learn more about using project identifiers in Google's [AIP 2510](https://google.aip.dev/cloud/2510) standard. Alternatively, if this method is being called for an OAuth client protected by App Check, this field can also be in the format: ``` oauthClients/{oauth_client_id} ``` You can view the OAuth client ID for your OAuth clients in the Google Cloud console. Note that only iOS OAuth clients are supported at this time, and they must be linked to corresponding iOS Firebase apps. Please see [the documentation](https://developers.google.com/identity/sign-in/ios/appcheck/get-started#project-setup) for more information.", "location": "path", "pattern": "^projects/[^/]+/apps/[^/]+$", "required": true, @@ -332,7 +332,7 @@ ], "parameters": { "app": { - "description": "Required. The relative resource name of the iOS app, in the format: ``` projects/{project_number}/apps/{app_id} ``` If necessary, the `project_number` element can be replaced with the project ID of the Firebase project. Learn more about using project identifiers in Google's [AIP 2510](https://google.aip.dev/cloud/2510) standard.", + "description": "Required. The relative resource name of the iOS app, in the format: ``` projects/{project_number}/apps/{app_id} ``` If necessary, the `project_number` element can be replaced with the project ID of the Firebase project. Learn more about using project identifiers in Google's [AIP 2510](https://google.aip.dev/cloud/2510) standard. Alternatively, if this method is being called for an OAuth client protected by App Check, this field can also be in the format: ``` oauthClients/{oauth_client_id} ``` You can view the OAuth client ID for your OAuth clients in the Google Cloud console. Note that only iOS OAuth clients are supported at this time, and they must be linked to corresponding iOS Firebase apps. Please see [the documentation](https://developers.google.com/identity/sign-in/ios/appcheck/get-started#project-setup) for more information.", "location": "path", "pattern": "^projects/[^/]+/apps/[^/]+$", "required": true, @@ -390,7 +390,7 @@ ], "parameters": { "app": { - "description": "Required. The relative resource name of the app, in the format: ``` projects/{project_number}/apps/{app_id} ``` If necessary, the `project_number` element can be replaced with the project ID of the Firebase project. Learn more about using project identifiers in Google's [AIP 2510](https://google.aip.dev/cloud/2510) standard.", + "description": "Required. The relative resource name of the app, in the format: ``` projects/{project_number}/apps/{app_id} ``` If necessary, the `project_number` element can be replaced with the project ID of the Firebase project. Learn more about using project identifiers in Google's [AIP 2510](https://google.aip.dev/cloud/2510) standard. Alternatively, if this method is being called for an OAuth client protected by App Check, this field can also be in the format: ``` oauthClients/{oauth_client_id} ``` You can view the OAuth client ID for your OAuth clients in the Google Cloud console. Note that only iOS OAuth clients are supported at this time, and they must be linked to corresponding iOS Firebase apps. Please see [the documentation](https://developers.google.com/identity/sign-in/ios/appcheck/get-started#project-setup) for more information.", "location": "path", "pattern": "^projects/[^/]+/apps/[^/]+$", "required": true, @@ -595,7 +595,7 @@ ], "parameters": { "app": { - "description": "Required. The relative resource name of the iOS app, in the format: ``` projects/{project_number}/apps/{app_id} ``` If necessary, the `project_number` element can be replaced with the project ID of the Firebase project. Learn more about using project identifiers in Google's [AIP 2510](https://google.aip.dev/cloud/2510) standard.", + "description": "Required. The relative resource name of the iOS app, in the format: ``` projects/{project_number}/apps/{app_id} ``` If necessary, the `project_number` element can be replaced with the project ID of the Firebase project. Learn more about using project identifiers in Google's [AIP 2510](https://google.aip.dev/cloud/2510) standard. Alternatively, if this method is being called for an OAuth client protected by App Check, this field can also be in the format: ``` oauthClients/{oauth_client_id} ``` You can view the OAuth client ID for your OAuth clients in the Google Cloud console. Note that only iOS OAuth clients are supported at this time, and they must be linked to corresponding iOS Firebase apps. Please see [the documentation](https://developers.google.com/identity/sign-in/ios/appcheck/get-started#project-setup) for more information.", "location": "path", "pattern": "^projects/[^/]+/apps/[^/]+$", "required": true, @@ -722,7 +722,7 @@ "type": "string" }, "updateMask": { - "description": "Required. A comma-separated list of names of fields in the AppAttestConfig Gets to update. Example: `token_ttl`.", + "description": "Required. A comma-separated list of names of fields in the AppAttestConfig to update. Example: `token_ttl`.", "format": "google-fieldmask", "location": "query", "type": "string" @@ -976,7 +976,7 @@ "type": "string" }, "updateMask": { - "description": "Required. A comma-separated list of names of fields in the DeviceCheckConfig Gets to update. Example: `key_id,private_key`.", + "description": "Required. A comma-separated list of names of fields in the DeviceCheckConfig to update. Example: `key_id,private_key`.", "format": "google-fieldmask", "location": "query", "type": "string" @@ -1073,7 +1073,7 @@ "type": "string" }, "updateMask": { - "description": "Required. A comma-separated list of names of fields in the PlayIntegrityConfig Gets to update. Example: `token_ttl`.", + "description": "Required. A comma-separated list of names of fields in the PlayIntegrityConfig to update. Example: `token_ttl`.", "format": "google-fieldmask", "location": "query", "type": "string" @@ -1469,7 +1469,7 @@ "type": "string" }, "updateMask": { - "description": "Required. A comma-separated list of names of fields in the SafetyNetConfig Gets to update. Example: `token_ttl`.", + "description": "Required. A comma-separated list of names of fields in the SafetyNetConfig to update. Example: `token_ttl`.", "format": "google-fieldmask", "location": "query", "type": "string" @@ -1634,7 +1634,7 @@ ], "parameters": { "parent": { - "description": "Required. The parent project name and the service, in the format ``` projects/{project_number}/services/{service_id} ``` The parent collection in the `name` field of any resource being updated must match this field, or the entire batch fails.", + "description": "Required. The parent service name, in the format ``` projects/{project_number}/services/{service_id} ``` The parent collection in the `name` field of any resource being updated must match this field, or the entire batch fails.", "location": "path", "pattern": "^projects/[^/]+/services/[^/]+$", "required": true, @@ -1692,12 +1692,12 @@ ], "parameters": { "etag": { - "description": "The checksum to be validated against the current ResourcePolicy, to ensure the client has an up-to-date value before proceeding. The user can obtain this from the ResourcePolicy object that they last received. This etag is strongly validated.", + "description": "The checksum to be validated against the current ResourcePolicy, to ensure the client has an up-to-date value before proceeding. This checksum is computed by the server based on the values of fields in the ResourcePolicy object, and can be obtained from the ResourcePolicy object received from the last CreateResourcePolicy, GetResourcePolicy, ListResourcePolicies, UpdateResourcePolicy, or BatchUpdateResourcePolicies call. This etag is strongly validated as defined by RFC 7232.", "location": "query", "type": "string" }, "name": { - "description": "Required. The relative resource name of the ResourcePolicy to delete, in the format: ``` projects/{project_number}/services/{service_id}/resourcePolicies/{resource_name} ```", + "description": "Required. The relative resource name of the ResourcePolicy to delete, in the format: ``` projects/{project_number}/services/{service_id}/resourcePolicies/{resource_policy_id} ```", "location": "path", "pattern": "^projects/[^/]+/services/[^/]+/resourcePolicies/[^/]+$", "required": true, @@ -1754,18 +1754,18 @@ "type": "string" }, "pageSize": { - "description": "The maximum number of ResourcePolicys to return in the response. Only explicitly configured policies are returned. The server may return fewer than this at its own discretion. If no value is specified (or too large a value is specified), the server will impose its own limit.", + "description": "The maximum number of ResourcePolicy objects to return in the response. The server may return fewer than this at its own discretion. If no value is specified (or too large a value is specified), the server will impose its own limit.", "format": "int32", "location": "query", "type": "integer" }, "pageToken": { - "description": "Token returned from a previous call to ListResourcePolicies indicating where in the set of ResourcePolicys to resume listing. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to ListResourcePolicies must match the call that provided the page token; if they do not match, the result is undefined.", + "description": "Token returned from a previous call to ListResourcePolicies indicating where in the set of ResourcePolicy objects to resume listing. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to ListResourcePolicies must match the call that provided the page token; if they do not match, the result is undefined.", "location": "query", "type": "string" }, "parent": { - "description": "Required. The relative resource name of the parent project and service for which to list each associated ResourcePolicy, in the format: ``` projects/{project_number}/services/{service_name} ```", + "description": "Required. The relative resource name of the parent service for which to list each associated ResourcePolicy, in the format: ``` projects/{project_number}/services/{service_id} ``` Note that the `service_id` element must be a supported service ID. Currently, the following service IDs are supported: * `oauth2.googleapis.com` (Google Identity for iOS)", "location": "path", "pattern": "^projects/[^/]+/services/[^/]+$", "required": true, @@ -1823,7 +1823,7 @@ } } }, - "revision": "20240226", + "revision": "20240415", "rootUrl": "https://firebaseappcheck.googleapis.com/", "schemas": { "GoogleFirebaseAppcheckV1betaAppAttestConfig": { @@ -1985,14 +1985,14 @@ "id": "GoogleFirebaseAppcheckV1betaBatchUpdateResourcePoliciesRequest", "properties": { "requests": { - "description": "Required. The request messages specifying the ResourcePolicys to update. A maximum of 100 objects can be updated in a batch.", + "description": "Required. The request messages specifying the ResourcePolicy objects to update. A maximum of 100 objects can be updated in a batch.", "items": { "$ref": "GoogleFirebaseAppcheckV1betaUpdateResourcePolicyRequest" }, "type": "array" }, "updateMask": { - "description": "Optional. A comma-separated list of names of fields in the ResourceConfigurations to update. Example: `enforcement_mode`. If this field is present, the `update_mask` field in the UpdateResourcePolicyRequest messages must all match this field, or the entire batch fails and no updates will be committed.", + "description": "Optional. A comma-separated list of names of fields in the ResourcePolicy objects to update. Example: `enforcement_mode`. If this field is present, the `update_mask` field in the UpdateResourcePolicyRequest messages must all match this field, or the entire batch fails and no updates will be committed.", "format": "google-fieldmask", "type": "string" } @@ -2349,11 +2349,11 @@ "id": "GoogleFirebaseAppcheckV1betaListResourcePoliciesResponse", "properties": { "nextPageToken": { - "description": "If the result list is too large to fit in a single response, then a token is returned. If the string is empty or omitted, then this response is the last page of results. This token can be used in a subsequent call to ListResourcePolicies to find the next group of ResourcePolicys. Page tokens are short-lived and should not be persisted.", + "description": "If the result list is too large to fit in a single response, then a token is returned. If the string is empty or omitted, then this response is the last page of results. This token can be used in a subsequent call to ListResourcePolicies to find the next group of ResourcePolicy objects. Page tokens are short-lived and should not be persisted.", "type": "string" }, "resourcePolicies": { - "description": "The ResourcePolicys retrieved.", + "description": "The ResourcePolicy objects retrieved.", "items": { "$ref": "GoogleFirebaseAppcheckV1betaResourcePolicy" }, @@ -2517,21 +2517,21 @@ "id": "GoogleFirebaseAppcheckV1betaResourcePolicy", "properties": { "enforcementMode": { - "description": "Required. The App Check enforcement mode for this resource. This will override the EnforcementMode setting on the service. For new resources that you are creating, you should consider setting an override and enable enforcement on the resource immediately, if there are no outdated clients that can use it.", + "description": "Required. The App Check enforcement mode for this resource. This will override the EnforcementMode setting on the parent service.", "enum": [ "OFF", "UNENFORCED", "ENFORCED" ], "enumDescriptions": [ - "Firebase App Check is not enforced for the service, nor are App Check metrics collected. Though the service is not protected by App Check in this mode, other applicable protections, such as user authorization, are still enforced. An unconfigured service is in this mode by default. Note that resource policies behave slightly differently as an unconfigured resource policy means that the resource will inherit the EnforcementMode configured for the service it belongs to and will not be considered as being in OFF mode by default.", + "Firebase App Check is not enforced for the service, nor are App Check metrics collected. Though the service is not protected by App Check in this mode, other applicable protections, such as user authorization, are still enforced. An unconfigured service is in this mode by default.", "Firebase App Check is not enforced for the service. App Check metrics are collected to help you decide when to turn on enforcement for the service. Though the service is not protected by App Check in this mode, other applicable protections, such as user authorization, are still enforced. Some services require certain conditions to be met before they will work with App Check, such as requiring you to upgrade to a specific service tier. Until those requirements are met for a service, this `UNENFORCED` setting will have no effect and App Check will not work with that service.", "Firebase App Check is enforced for the service. The service will reject any request that attempts to access your project's resources if it does not have valid App Check token attached, with some exceptions depending on the service; for example, some services will still allow requests bearing the developer's privileged service account credentials without an App Check token. App Check metrics continue to be collected to help you detect issues with your App Check integration and monitor the composition of your callers. While the service is protected by App Check, other applicable protections, such as user authorization, continue to be enforced at the same time. Use caution when choosing to enforce App Check on a Firebase service. If your users have not updated to an App Check capable version of your app, their apps will no longer be able to use your Firebase services that are enforcing App Check. App Check metrics can help you decide whether to enforce App Check on your Firebase services. If your app has not launched yet, you should enable enforcement immediately, since there are no outdated clients in use. Some services require certain conditions to be met before they will work with App Check, such as requiring you to upgrade to a specific service tier. Until those requirements are met for a service, this `ENFORCED` setting will have no effect and App Check will not work with that service." ], "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. This etag is strongly validated.", + "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. This etag is strongly validated as defined by RFC 7232.", "type": "string" }, "name": { @@ -2539,11 +2539,11 @@ "type": "string" }, "targetResource": { - "description": "Required. Service specific name of the resource object to which this policy applies, in the format: * `//oauth2.googleapis.com/projects/{project}/oauthClients/{oauth_client_id}` (Google Identity for iOS) NOTE that the resource must belong to the service specified in the `name` and be from the same project as this policy, but it may or may not exist at the time of creation of the policy.", + "description": "Required. Service specific name of the resource object to which this policy applies, in the format: * `//oauth2.googleapis.com/projects/{project}/oauthClients/{oauth_client_id}` (Google Identity for iOS) Note that the resource must belong to the service specified in the `name` and be from the same project as this policy, but the resource is allowed to be missing at the time of creation of this policy; in that case, we make a best-effort attempt at respecting this policy, but it may not have any effect until the resource is fully created.", "type": "string" }, "updateTime": { - "description": "Output only. Timestamp when this service configuration object was most recently updated.", + "description": "Output only. Timestamp when this resource policy configuration object was most recently updated.", "format": "google-datetime", "readOnly": true, "type": "string" @@ -2580,7 +2580,7 @@ "ENFORCED" ], "enumDescriptions": [ - "Firebase App Check is not enforced for the service, nor are App Check metrics collected. Though the service is not protected by App Check in this mode, other applicable protections, such as user authorization, are still enforced. An unconfigured service is in this mode by default. Note that resource policies behave slightly differently as an unconfigured resource policy means that the resource will inherit the EnforcementMode configured for the service it belongs to and will not be considered as being in OFF mode by default.", + "Firebase App Check is not enforced for the service, nor are App Check metrics collected. Though the service is not protected by App Check in this mode, other applicable protections, such as user authorization, are still enforced. An unconfigured service is in this mode by default.", "Firebase App Check is not enforced for the service. App Check metrics are collected to help you decide when to turn on enforcement for the service. Though the service is not protected by App Check in this mode, other applicable protections, such as user authorization, are still enforced. Some services require certain conditions to be met before they will work with App Check, such as requiring you to upgrade to a specific service tier. Until those requirements are met for a service, this `UNENFORCED` setting will have no effect and App Check will not work with that service.", "Firebase App Check is enforced for the service. The service will reject any request that attempts to access your project's resources if it does not have valid App Check token attached, with some exceptions depending on the service; for example, some services will still allow requests bearing the developer's privileged service account credentials without an App Check token. App Check metrics continue to be collected to help you detect issues with your App Check integration and monitor the composition of your callers. While the service is protected by App Check, other applicable protections, such as user authorization, continue to be enforced at the same time. Use caution when choosing to enforce App Check on a Firebase service. If your users have not updated to an App Check capable version of your app, their apps will no longer be able to use your Firebase services that are enforcing App Check. App Check metrics can help you decide whether to enforce App Check on your Firebase services. If your app has not launched yet, you should enable enforcement immediately, since there are no outdated clients in use. Some services require certain conditions to be met before they will work with App Check, such as requiring you to upgrade to a specific service tier. Until those requirements are met for a service, this `ENFORCED` setting will have no effect and App Check will not work with that service." ], @@ -2609,7 +2609,7 @@ "properties": { "resourcePolicy": { "$ref": "GoogleFirebaseAppcheckV1betaResourcePolicy", - "description": "Required. The ResourcePolicy to update. The ResourcePolicy's `name` field is used to identify the ResourcePolicy to be updated, in the format: ``` projects/{project_number}/services/{service_id}/resourcePolicies/{resource_name} ``` Note that the `service_id` element must be a supported service ID. Currently, the following service IDs are supported: * `oauth2.googleapis.com` (Google Identity for iOS) Only the top-level resources are supported for each of the services. The resources must belong to the service specified and `resource_name` should be formatted as: * `oauthClients/{oauth_client_id}` (Google Identity for iOS)" + "description": "Required. The ResourcePolicy to update. The ResourcePolicy's `name` field is used to identify the ResourcePolicy to be updated, in the format: ``` projects/{project_number}/services/{service_id}/resourcePolicies/{resource_policy_id} ``` Note that the `service_id` element must be a supported service ID. Currently, the following service IDs are supported: * `oauth2.googleapis.com` (Google Identity for iOS)" }, "updateMask": { "description": "Required. A comma-separated list of names of fields in the ResourcePolicy to update. Example: `enforcement_mode`.", diff --git a/etc/api/firebasedatabase/v1beta/firebasedatabase-api.json b/etc/api/firebasedatabase/v1beta/firebasedatabase-api.json index be2bdf8f56..5b586dba93 100644 --- a/etc/api/firebasedatabase/v1beta/firebasedatabase-api.json +++ b/etc/api/firebasedatabase/v1beta/firebasedatabase-api.json @@ -351,7 +351,7 @@ } } }, - "revision": "20240303", + "revision": "20240418", "rootUrl": "https://firebasedatabase.googleapis.com/", "schemas": { "DatabaseInstance": { diff --git a/etc/api/firebasedynamiclinks/v1/firebasedynamiclinks-api.json b/etc/api/firebasedynamiclinks/v1/firebasedynamiclinks-api.json index 6c5dd689db..e746d5f3d7 100644 --- a/etc/api/firebasedynamiclinks/v1/firebasedynamiclinks-api.json +++ b/etc/api/firebasedynamiclinks/v1/firebasedynamiclinks-api.json @@ -224,7 +224,7 @@ } } }, - "revision": "20240226", + "revision": "20240415", "rootUrl": "https://firebasedynamiclinks.googleapis.com/", "schemas": { "AnalyticsInfo": { diff --git a/etc/api/firebasehosting/v1/firebasehosting-api.json b/etc/api/firebasehosting/v1/firebasehosting-api.json index 52f5fd7685..927ee8a89e 100644 --- a/etc/api/firebasehosting/v1/firebasehosting-api.json +++ b/etc/api/firebasehosting/v1/firebasehosting-api.json @@ -269,7 +269,7 @@ } } }, - "revision": "20240303", + "revision": "20240417", "rootUrl": "https://firebasehosting.googleapis.com/", "schemas": { "CancelOperationRequest": { @@ -379,7 +379,7 @@ }, "quickSetupUpdates": { "$ref": "DnsUpdates", - "description": "A set of DNS record updates that allow Hosting to serve secure content on your domain name. The record type determines the update's purpose: - `A` and `AAAA`: Updates your domain name's IP addresses so that they direct traffic to Hosting servers. - `TXT`: Updates ownership permissions on your domain name, letting Hosting know that your custom domain's project has permission to perfrom actions for that domain name. - `CAA`: Updates your domain name's list of authorized Certificate Authorities (CAs). Only present if you have existing `CAA` records that prohibit Hosting's CA from minting certs for your domain name. These updates include all DNS changes you'll need to get started with Hosting, but, if made all at once, can result in a brief period of downtime for your domain name--while Hosting creates and uploads an SSL cert, for example. If you'd like to add your domain name to Hosting without downtime, complete the `liveMigrationSteps` first, before making the remaining updates in this field." + "description": "A set of DNS record updates that allow Hosting to serve secure content on your domain name. The record type determines the update's purpose: - `A` and `AAAA`: Updates your domain name's IP addresses so that they direct traffic to Hosting servers. - `TXT`: Updates ownership permissions on your domain name, letting Hosting know that your custom domain's project has permission to perform actions for that domain name. - `CAA`: Updates your domain name's list of authorized Certificate Authorities (CAs). Only present if you have existing `CAA` records that prohibit Hosting's CA from minting certs for your domain name. These updates include all DNS changes you'll need to get started with Hosting, but, if made all at once, can result in a brief period of downtime for your domain name--while Hosting creates and uploads an SSL cert, for example. If you'd like to add your domain name to Hosting without downtime, complete the `liveMigrationSteps` first, before making the remaining updates in this field." } }, "type": "object" diff --git a/etc/api/firebasehosting/v1beta1/firebasehosting-api.json b/etc/api/firebasehosting/v1beta1/firebasehosting-api.json index 8cb9083491..57602e5584 100644 --- a/etc/api/firebasehosting/v1beta1/firebasehosting-api.json +++ b/etc/api/firebasehosting/v1beta1/firebasehosting-api.json @@ -2422,7 +2422,7 @@ } } }, - "revision": "20240303", + "revision": "20240417", "rootUrl": "https://firebasehosting.googleapis.com/", "schemas": { "ActingUser": { @@ -2885,7 +2885,7 @@ }, "quickSetupUpdates": { "$ref": "DnsUpdates", - "description": "A set of DNS record updates that allow Hosting to serve secure content on your domain name. The record type determines the update's purpose: - `A` and `AAAA`: Updates your domain name's IP addresses so that they direct traffic to Hosting servers. - `TXT`: Updates ownership permissions on your domain name, letting Hosting know that your custom domain's project has permission to perfrom actions for that domain name. - `CAA`: Updates your domain name's list of authorized Certificate Authorities (CAs). Only present if you have existing `CAA` records that prohibit Hosting's CA from minting certs for your domain name. These updates include all DNS changes you'll need to get started with Hosting, but, if made all at once, can result in a brief period of downtime for your domain name--while Hosting creates and uploads an SSL cert, for example. If you'd like to add your domain name to Hosting without downtime, complete the `liveMigrationSteps` first, before making the remaining updates in this field." + "description": "A set of DNS record updates that allow Hosting to serve secure content on your domain name. The record type determines the update's purpose: - `A` and `AAAA`: Updates your domain name's IP addresses so that they direct traffic to Hosting servers. - `TXT`: Updates ownership permissions on your domain name, letting Hosting know that your custom domain's project has permission to perform actions for that domain name. - `CAA`: Updates your domain name's list of authorized Certificate Authorities (CAs). Only present if you have existing `CAA` records that prohibit Hosting's CA from minting certs for your domain name. These updates include all DNS changes you'll need to get started with Hosting, but, if made all at once, can result in a brief period of downtime for your domain name--while Hosting creates and uploads an SSL cert, for example. If you'd like to add your domain name to Hosting without downtime, complete the `liveMigrationSteps` first, before making the remaining updates in this field." } }, "type": "object" diff --git a/etc/api/firebaseml/v1/firebaseml-api.json b/etc/api/firebaseml/v1/firebaseml-api.json index 8d7cb767f1..c94101155a 100644 --- a/etc/api/firebaseml/v1/firebaseml-api.json +++ b/etc/api/firebaseml/v1/firebaseml-api.json @@ -204,7 +204,7 @@ } } }, - "revision": "20240221", + "revision": "20240410", "rootUrl": "https://firebaseml.googleapis.com/", "schemas": { "CancelOperationRequest": { diff --git a/etc/api/firebaseml/v1beta2/firebaseml-api.json b/etc/api/firebaseml/v1beta2/firebaseml-api.json index 690f740ac5..6ddf344aad 100644 --- a/etc/api/firebaseml/v1beta2/firebaseml-api.json +++ b/etc/api/firebaseml/v1beta2/firebaseml-api.json @@ -318,7 +318,7 @@ } } }, - "revision": "20240221", + "revision": "20240410", "rootUrl": "https://firebaseml.googleapis.com/", "schemas": { "DownloadModelResponse": { diff --git a/etc/api/firebaserules/v1/firebaserules-api.json b/etc/api/firebaserules/v1/firebaserules-api.json index af7483ee36..526ed4f449 100644 --- a/etc/api/firebaserules/v1/firebaserules-api.json +++ b/etc/api/firebaserules/v1/firebaserules-api.json @@ -477,7 +477,7 @@ } } }, - "revision": "20240214", + "revision": "20240410", "rootUrl": "https://firebaserules.googleapis.com/", "schemas": { "Arg": { diff --git a/etc/api/firebasestorage/v1beta/firebasestorage-api.json b/etc/api/firebasestorage/v1beta/firebasestorage-api.json index 40311bddc1..9c880ea948 100644 --- a/etc/api/firebasestorage/v1beta/firebasestorage-api.json +++ b/etc/api/firebasestorage/v1beta/firebasestorage-api.json @@ -238,7 +238,7 @@ } } }, - "revision": "20240301", + "revision": "20240412", "rootUrl": "https://firebasestorage.googleapis.com/", "schemas": { "AddFirebaseRequest": { diff --git a/etc/api/firestore/v1/firestore-api.json b/etc/api/firestore/v1/firestore-api.json index e4e64c71cb..6cac1d167c 100644 --- a/etc/api/firestore/v1/firestore-api.json +++ b/etc/api/firestore/v1/firestore-api.json @@ -394,7 +394,7 @@ ], "parameters": { "name": { - "description": "Required. The name of backup schedule. Format `projects/{project}/databases/{database}/backupSchedules/{backup_schedule}`", + "description": "Required. The name of the backup schedule. Format `projects/{project}/databases/{database}/backupSchedules/{backup_schedule}`", "location": "path", "pattern": "^projects/[^/]+/databases/[^/]+/backupSchedules/[^/]+$", "required": true, @@ -1672,7 +1672,7 @@ } } }, - "revision": "20240226", + "revision": "20240324", "rootUrl": "https://firestore.googleapis.com/", "schemas": { "Aggregation": { @@ -2158,6 +2158,36 @@ "properties": {}, "type": "object" }, + "ExecutionStats": { + "description": "Execution statistics for the query.", + "id": "ExecutionStats", + "properties": { + "debugStats": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Debugging statistics from the execution of the query. Note that the debugging stats are subject to change as Firestore evolves. It could include: { \"indexes_entries_scanned\": \"1000\", \"documents_scanned\": \"20\", \"billing_details\" : { \"documents_billable\": \"20\", \"index_entries_billable\": \"1000\", \"min_query_cost\": \"0\" } }", + "type": "object" + }, + "executionDuration": { + "description": "Total time to execute the query in the backend.", + "format": "google-duration", + "type": "string" + }, + "readOperations": { + "description": "Total billable read operations.", + "format": "int64", + "type": "string" + }, + "resultsReturned": { + "description": "Total number of results returned, including documents, projections, aggregation results, keys.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, "ExistenceFilter": { "description": "A digest of all the documents that match a given target.", "id": "ExistenceFilter", @@ -2179,6 +2209,32 @@ }, "type": "object" }, + "ExplainMetrics": { + "description": "Explain metrics for the query.", + "id": "ExplainMetrics", + "properties": { + "executionStats": { + "$ref": "ExecutionStats", + "description": "Aggregated stats from the execution of the query. Only present when ExplainOptions.analyze is set to true." + }, + "planSummary": { + "$ref": "PlanSummary", + "description": "Planning phase information for the query." + } + }, + "type": "object" + }, + "ExplainOptions": { + "description": "Explain options for the query.", + "id": "ExplainOptions", + "properties": { + "analyze": { + "description": "Optional. Whether to execute this query. When false (the default), the query will be planned, returning only metrics from the planning stages. When true, the query will be planned and executed, returning the full query results along with both planning and execution stage metrics.", + "type": "boolean" + } + }, + "type": "object" + }, "FieldFilter": { "description": "A filter on a specific field.", "id": "FieldFilter", @@ -2297,6 +2353,42 @@ }, "type": "object" }, + "FindNearest": { + "description": "Nearest Neighbors search config.", + "id": "FindNearest", + "properties": { + "distanceMeasure": { + "description": "Required. The Distance Measure to use, required.", + "enum": [ + "DISTANCE_MEASURE_UNSPECIFIED", + "EUCLIDEAN", + "COSINE", + "DOT_PRODUCT" + ], + "enumDescriptions": [ + "Should not be set.", + "Measures the EUCLIDEAN distance between the vectors. See [Euclidean](https://en.wikipedia.org/wiki/Euclidean_distance) to learn more", + "Compares vectors based on the angle between them, which allows you to measure similarity that isn't based on the vectors magnitude. We recommend using DOT_PRODUCT with unit normalized vectors instead of COSINE distance, which is mathematically equivalent with better performance. See [Cosine Similarity](https://en.wikipedia.org/wiki/Cosine_similarity) to learn more.", + "Similar to cosine but is affected by the magnitude of the vectors. See [Dot Product](https://en.wikipedia.org/wiki/Dot_product) to learn more." + ], + "type": "string" + }, + "limit": { + "description": "Required. The number of nearest neighbors to return. Must be a positive integer of no more than 1000.", + "format": "int32", + "type": "integer" + }, + "queryVector": { + "$ref": "Value", + "description": "Required. The query vector that we are searching on. Must be a vector of no more than 2048 dimensions." + }, + "vectorField": { + "$ref": "FieldReference", + "description": "Required. An indexed vector field to search upon. Only documents which contain vectors whose dimensionality match the query_vector can be returned." + } + }, + "type": "object" + }, "GoogleFirestoreAdminV1Backup": { "description": "A Backup of a Cloud Firestore Database. The backup contains all documents and index configurations for the given database at a specific point in time.", "id": "GoogleFirestoreAdminV1Backup", @@ -2390,6 +2482,25 @@ }, "type": "object" }, + "GoogleFirestoreAdminV1CmekConfig": { + "description": "The CMEK (Customer Managed Encryption Key) configuration for a Firestore database. If not present, the database is secured by the default Google encryption key.", + "id": "GoogleFirestoreAdminV1CmekConfig", + "properties": { + "activeKeyVersion": { + "description": "Output only. Currently in-use [KMS key versions](https://cloud.google.com/kms/docs/resource-hierarchy#key_versions). During [key rotation](https://cloud.google.com/kms/docs/key-rotation), there can be multiple in-use key versions. The expected format is `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{key_version}`.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "kmsKeyName": { + "description": "Required. Only keys in the same location as this database are allowed to be used for encryption. For Firestore's nam5 multi-region, this corresponds to Cloud KMS multi-region us. For Firestore's eur3 multi-region, this corresponds to Cloud KMS multi-region europe. See https://cloud.google.com/kms/docs/locations. The expected format is `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`.", + "type": "string" + } + }, + "type": "object" + }, "GoogleFirestoreAdminV1CreateDatabaseMetadata": { "description": "Metadata related to the create database operation.", "id": "GoogleFirestoreAdminV1CreateDatabaseMetadata", @@ -2397,7 +2508,7 @@ "type": "object" }, "GoogleFirestoreAdminV1DailyRecurrence": { - "description": "Represent a recurring schedule that runs at a specific time every day. The time zone is UTC.", + "description": "Represents a recurring schedule that runs at a specific time every day. The time zone is UTC.", "id": "GoogleFirestoreAdminV1DailyRecurrence", "properties": {}, "type": "object" @@ -2420,6 +2531,10 @@ ], "type": "string" }, + "cmekConfig": { + "$ref": "GoogleFirestoreAdminV1CmekConfig", + "description": "Optional. Presence indicates CMEK is enabled for this database." + }, "concurrencyMode": { "description": "The concurrency control mode to use for this database.", "enum": [ @@ -3069,7 +3184,7 @@ "id": "GoogleFirestoreAdminV1ListBackupsResponse", "properties": { "backups": { - "description": "List of all backups for the project. Ordered by `location ASC, create_time DESC, name ASC`.", + "description": "List of all backups for the project.", "items": { "$ref": "GoogleFirestoreAdminV1Backup" }, @@ -3682,6 +3797,24 @@ }, "type": "object" }, + "PlanSummary": { + "description": "Planning phase information for the query.", + "id": "PlanSummary", + "properties": { + "indexesUsed": { + "description": "The indexes selected for the query. For example: [ {\"query_scope\": \"Collection\", \"properties\": \"(foo ASC, __name__ ASC)\"}, {\"query_scope\": \"Collection\", \"properties\": \"(bar ASC, __name__ ASC)\"} ]", + "items": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, "Precondition": { "description": "A precondition on a document, used for conditional operations.", "id": "Precondition", @@ -3767,6 +3900,10 @@ "description": "The request for Firestore.RunAggregationQuery.", "id": "RunAggregationQueryRequest", "properties": { + "explainOptions": { + "$ref": "ExplainOptions", + "description": "Optional. Explain options for the query. If set, additional query statistics will be returned. If not, only query results will be returned." + }, "newTransaction": { "$ref": "TransactionOptions", "description": "Starts a new transaction as part of the query, defaulting to read-only. The new transaction ID will be returned as the first response in the stream." @@ -3792,6 +3929,10 @@ "description": "The response for Firestore.RunAggregationQuery.", "id": "RunAggregationQueryResponse", "properties": { + "explainMetrics": { + "$ref": "ExplainMetrics", + "description": "Query explain metrics. This is only present when the RunAggregationQueryRequest.explain_options is provided, and it is sent only once with the last response in the stream." + }, "readTime": { "description": "The time at which the aggregate result was computed. This is always monotonically increasing; in this case, the previous AggregationResult in the result stream are guaranteed not to have changed between their `read_time` and this one. If the query returns no results, a response with `read_time` and no `result` will be sent, and this represents the time at which the query was run.", "format": "google-datetime", @@ -3813,6 +3954,10 @@ "description": "The request for Firestore.RunQuery.", "id": "RunQueryRequest", "properties": { + "explainOptions": { + "$ref": "ExplainOptions", + "description": "Optional. Explain options for the query. If set, additional query statistics will be returned. If not, only query results will be returned." + }, "newTransaction": { "$ref": "TransactionOptions", "description": "Starts a new transaction and reads the documents. Defaults to a read-only transaction. The new transaction ID will be returned as the first response in the stream." @@ -3846,6 +3991,10 @@ "description": "If present, Firestore has completely finished the request and no more documents will be returned.", "type": "boolean" }, + "explainMetrics": { + "$ref": "ExplainMetrics", + "description": "Query explain metrics. This is only present when the RunQueryRequest.explain_options is provided, and it is sent only once with the last response in the stream." + }, "readTime": { "description": "The time at which the document was read. This may be monotonically increasing; in this case, the previous documents in the result stream are guaranteed not to have changed between their `read_time` and this one. If the query returns no results, a response with `read_time` and no `document` will be sent, and this represents the time at which the query was run.", "format": "google-datetime", @@ -3917,6 +4066,10 @@ "$ref": "Cursor", "description": "A potential prefix of a position in the result set to end the query at. This is similar to `START_AT` but with it controlling the end position rather than the start position. Requires: * The number of values cannot be greater than the number of fields specified in the `ORDER BY` clause." }, + "findNearest": { + "$ref": "FindNearest", + "description": "Optional. A potential Nearest Neighbors Search. Applies after all other filters and ordering. Finds the closest vector embeddings to the given query vector." + }, "from": { "description": "The collections to query.", "items": { diff --git a/etc/api/firestore/v1beta1/firestore-api.json b/etc/api/firestore/v1beta1/firestore-api.json index 4d1248f0ee..da1aa07e81 100644 --- a/etc/api/firestore/v1beta1/firestore-api.json +++ b/etc/api/firestore/v1beta1/firestore-api.json @@ -950,7 +950,7 @@ } } }, - "revision": "20240226", + "revision": "20240324", "rootUrl": "https://firestore.googleapis.com/", "schemas": { "Aggregation": { @@ -1436,6 +1436,36 @@ "properties": {}, "type": "object" }, + "ExecutionStats": { + "description": "Execution statistics for the query.", + "id": "ExecutionStats", + "properties": { + "debugStats": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Debugging statistics from the execution of the query. Note that the debugging stats are subject to change as Firestore evolves. It could include: { \"indexes_entries_scanned\": \"1000\", \"documents_scanned\": \"20\", \"billing_details\" : { \"documents_billable\": \"20\", \"index_entries_billable\": \"1000\", \"min_query_cost\": \"0\" } }", + "type": "object" + }, + "executionDuration": { + "description": "Total time to execute the query in the backend.", + "format": "google-duration", + "type": "string" + }, + "readOperations": { + "description": "Total billable read operations.", + "format": "int64", + "type": "string" + }, + "resultsReturned": { + "description": "Total number of results returned, including documents, projections, aggregation results, keys.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, "ExistenceFilter": { "description": "A digest of all the documents that match a given target.", "id": "ExistenceFilter", @@ -1457,6 +1487,32 @@ }, "type": "object" }, + "ExplainMetrics": { + "description": "Explain metrics for the query.", + "id": "ExplainMetrics", + "properties": { + "executionStats": { + "$ref": "ExecutionStats", + "description": "Aggregated stats from the execution of the query. Only present when ExplainOptions.analyze is set to true." + }, + "planSummary": { + "$ref": "PlanSummary", + "description": "Planning phase information for the query." + } + }, + "type": "object" + }, + "ExplainOptions": { + "description": "Explain options for the query.", + "id": "ExplainOptions", + "properties": { + "analyze": { + "description": "Optional. Whether to execute this query. When false (the default), the query will be planned, returning only metrics from the planning stages. When true, the query will be planned and executed, returning the full query results along with both planning and execution stage metrics.", + "type": "boolean" + } + }, + "type": "object" + }, "FieldFilter": { "description": "A filter on a specific field.", "id": "FieldFilter", @@ -1575,6 +1631,42 @@ }, "type": "object" }, + "FindNearest": { + "description": "Nearest Neighbors search config.", + "id": "FindNearest", + "properties": { + "distanceMeasure": { + "description": "Required. The Distance Measure to use, required.", + "enum": [ + "DISTANCE_MEASURE_UNSPECIFIED", + "EUCLIDEAN", + "COSINE", + "DOT_PRODUCT" + ], + "enumDescriptions": [ + "Should not be set.", + "Measures the EUCLIDEAN distance between the vectors. See [Euclidean](https://en.wikipedia.org/wiki/Euclidean_distance) to learn more", + "Compares vectors based on the angle between them, which allows you to measure similarity that isn't based on the vectors magnitude. We recommend using DOT_PRODUCT with unit normalized vectors instead of COSINE distance, which is mathematically equivalent with better performance. See [Cosine Similarity](https://en.wikipedia.org/wiki/Cosine_similarity) to learn more.", + "Similar to cosine but is affected by the magnitude of the vectors. See [Dot Product](https://en.wikipedia.org/wiki/Dot_product) to learn more." + ], + "type": "string" + }, + "limit": { + "description": "Required. The number of nearest neighbors to return. Must be a positive integer of no more than 1000.", + "format": "int32", + "type": "integer" + }, + "queryVector": { + "$ref": "Value", + "description": "Required. The query vector that we are searching on. Must be a vector of no more than 2048 dimensions." + }, + "vectorField": { + "$ref": "FieldReference", + "description": "Required. An indexed vector field to search upon. Only documents which contain vectors whose dimensionality match the query_vector can be returned." + } + }, + "type": "object" + }, "GoogleFirestoreAdminV1CreateDatabaseMetadata": { "description": "Metadata related to the create database operation.", "id": "GoogleFirestoreAdminV1CreateDatabaseMetadata", @@ -2223,6 +2315,24 @@ }, "type": "object" }, + "PlanSummary": { + "description": "Planning phase information for the query.", + "id": "PlanSummary", + "properties": { + "indexesUsed": { + "description": "The indexes selected for the query. For example: [ {\"query_scope\": \"Collection\", \"properties\": \"(foo ASC, __name__ ASC)\"}, {\"query_scope\": \"Collection\", \"properties\": \"(bar ASC, __name__ ASC)\"} ]", + "items": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" + }, "Precondition": { "description": "A precondition on a document, used for conditional operations.", "id": "Precondition", @@ -2308,6 +2418,10 @@ "description": "The request for Firestore.RunAggregationQuery.", "id": "RunAggregationQueryRequest", "properties": { + "explainOptions": { + "$ref": "ExplainOptions", + "description": "Optional. Explain options for the query. If set, additional query statistics will be returned. If not, only query results will be returned." + }, "newTransaction": { "$ref": "TransactionOptions", "description": "Starts a new transaction as part of the query, defaulting to read-only. The new transaction ID will be returned as the first response in the stream." @@ -2333,6 +2447,10 @@ "description": "The response for Firestore.RunAggregationQuery.", "id": "RunAggregationQueryResponse", "properties": { + "explainMetrics": { + "$ref": "ExplainMetrics", + "description": "Query explain metrics. This is only present when the RunAggregationQueryRequest.explain_options is provided, and it is sent only once with the last response in the stream." + }, "readTime": { "description": "The time at which the aggregate result was computed. This is always monotonically increasing; in this case, the previous AggregationResult in the result stream are guaranteed not to have changed between their `read_time` and this one. If the query returns no results, a response with `read_time` and no `result` will be sent, and this represents the time at which the query was run.", "format": "google-datetime", @@ -2354,6 +2472,10 @@ "description": "The request for Firestore.RunQuery.", "id": "RunQueryRequest", "properties": { + "explainOptions": { + "$ref": "ExplainOptions", + "description": "Optional. Explain options for the query. If set, additional query statistics will be returned. If not, only query results will be returned." + }, "newTransaction": { "$ref": "TransactionOptions", "description": "Starts a new transaction and reads the documents. Defaults to a read-only transaction. The new transaction ID will be returned as the first response in the stream." @@ -2387,6 +2509,10 @@ "description": "If present, Firestore has completely finished the request and no more documents will be returned.", "type": "boolean" }, + "explainMetrics": { + "$ref": "ExplainMetrics", + "description": "Query explain metrics. This is only present when the RunQueryRequest.explain_options is provided, and it is sent only once with the last response in the stream." + }, "readTime": { "description": "The time at which the document was read. This may be monotonically increasing; in this case, the previous documents in the result stream are guaranteed not to have changed between their `read_time` and this one. If the query returns no results, a response with `read_time` and no `document` will be sent, and this represents the time at which the query was run.", "format": "google-datetime", @@ -2458,6 +2584,10 @@ "$ref": "Cursor", "description": "A potential prefix of a position in the result set to end the query at. This is similar to `START_AT` but with it controlling the end position rather than the start position. Requires: * The number of values cannot be greater than the number of fields specified in the `ORDER BY` clause." }, + "findNearest": { + "$ref": "FindNearest", + "description": "Optional. A potential Nearest Neighbors Search. Applies after all other filters and ordering. Finds the closest vector embeddings to the given query vector." + }, "from": { "description": "The collections to query.", "items": { diff --git a/etc/api/firestore/v1beta2/firestore-api.json b/etc/api/firestore/v1beta2/firestore-api.json index 53a8bb28bd..710d13091d 100644 --- a/etc/api/firestore/v1beta2/firestore-api.json +++ b/etc/api/firestore/v1beta2/firestore-api.json @@ -415,7 +415,7 @@ } } }, - "revision": "20240226", + "revision": "20240324", "rootUrl": "https://firestore.googleapis.com/", "schemas": { "Empty": { diff --git a/etc/api/fitness/v1/fitness-api.json b/etc/api/fitness/v1/fitness-api.json index 9deb54b5d6..0f83f877d2 100644 --- a/etc/api/fitness/v1/fitness-api.json +++ b/etc/api/fitness/v1/fitness-api.json @@ -832,7 +832,7 @@ } } }, - "revision": "20240304", + "revision": "20240415", "rootUrl": "https://fitness.googleapis.com/", "schemas": { "AggregateBucket": { diff --git a/etc/api/games/v1/games-api.json b/etc/api/games/v1/games-api.json index ee9bea5a7f..dc36ada4fb 100644 --- a/etc/api/games/v1/games-api.json +++ b/etc/api/games/v1/games-api.json @@ -1354,7 +1354,7 @@ } } }, - "revision": "20240228", + "revision": "20240410", "rootUrl": "https://games.googleapis.com/", "schemas": { "AchievementDefinition": { diff --git a/etc/api/gamesconfiguration/v1configuration/gamesconfiguration-api.json b/etc/api/gamesconfiguration/v1configuration/gamesconfiguration-api.json index 2937154f80..b9e64d7bd9 100644 --- a/etc/api/gamesconfiguration/v1configuration/gamesconfiguration-api.json +++ b/etc/api/gamesconfiguration/v1configuration/gamesconfiguration-api.json @@ -381,7 +381,7 @@ } } }, - "revision": "20240228", + "revision": "20240410", "rootUrl": "https://gamesconfiguration.googleapis.com/", "schemas": { "AchievementConfiguration": { diff --git a/etc/api/gamesmanagement/v1management/gamesmanagement-api.json b/etc/api/gamesmanagement/v1management/gamesmanagement-api.json index fa53760b02..72eea6ed3a 100644 --- a/etc/api/gamesmanagement/v1management/gamesmanagement-api.json +++ b/etc/api/gamesmanagement/v1management/gamesmanagement-api.json @@ -471,7 +471,7 @@ } } }, - "revision": "20240228", + "revision": "20240410", "rootUrl": "https://gamesmanagement.googleapis.com/", "schemas": { "AchievementResetAllResponse": { diff --git a/etc/api/genomics/v2alpha1/genomics-api.json b/etc/api/genomics/v2alpha1/genomics-api.json index d4e0db91db..4ad16c2422 100644 --- a/etc/api/genomics/v2alpha1/genomics-api.json +++ b/etc/api/genomics/v2alpha1/genomics-api.json @@ -301,7 +301,7 @@ } } }, - "revision": "20240227", + "revision": "20240415", "rootUrl": "https://genomics.googleapis.com/", "schemas": { "Accelerator": { diff --git a/etc/api/gkehub/v1/gkehub-api.json b/etc/api/gkehub/v1/gkehub-api.json index 99a296873f..94144dd832 100644 --- a/etc/api/gkehub/v1/gkehub-api.json +++ b/etc/api/gkehub/v1/gkehub-api.json @@ -1421,6 +1421,83 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "listMemberships": { + "description": "Lists Memberships bound to a Scope. The response includes relevant Memberships from all regions.", + "flatPath": "v1/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": "v1/{+scopeName}:listMemberships", + "response": { + "$ref": "ListBoundMembershipsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "listPermitted": { + "description": "Lists permitted Scopes.", + "flatPath": "v1/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": "v1/{+parent}/scopes:listPermitted", + "response": { + "$ref": "ListPermittedScopesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "patch": { "description": "Updates a scopes.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/scopes/{scopesId}", @@ -1834,7 +1911,7 @@ } } }, - "revision": "20240225", + "revision": "20240412", "rootUrl": "https://gkehub.googleapis.com/", "schemas": { "AppDevExperienceFeatureSpec": { @@ -3722,6 +3799,10 @@ "$ref": "IdentityServiceGoogleConfig", "description": "GoogleConfig specific configuration." }, + "ldapConfig": { + "$ref": "IdentityServiceLdapConfig", + "description": "LDAP specific configuration." + }, "name": { "description": "Identifier for auth config.", "type": "string" @@ -3733,6 +3814,10 @@ "proxy": { "description": "Proxy server address to use for auth method.", "type": "string" + }, + "samlConfig": { + "$ref": "IdentityServiceSamlConfig", + "description": "SAML specific configuration." } }, "type": "object" @@ -3755,6 +3840,10 @@ "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" @@ -3762,6 +3851,10 @@ "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" @@ -3777,6 +3870,48 @@ }, "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" + }, + "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", @@ -3889,6 +4024,126 @@ }, "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", @@ -3961,6 +4216,31 @@ }, "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", @@ -4076,6 +4356,24 @@ }, "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", @@ -5412,6 +5710,63 @@ }, "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", + "CNI_CONFIG_UNSUPPORTED", + "GKE_SANDBOX_UNSUPPORTED", + "NODEPOOL_WORKLOAD_IDENTITY_FEDERATION_REQUIRED", + "CNI_INSTALLATION_FAILED", + "CNI_POD_UNSCHEDULABLE", + "UNSUPPORTED_MULTIPLE_CONTROL_PLANES", + "VPCSC_GA_SUPPORTED" + ], + "enumDescriptions": [ + "Default Unspecified code", + "Mesh IAM permission denied error code", + "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", + "Multiple control planes unsupported error code", + "VPC-SC GA is supported for this control plane." + ], + "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", @@ -5528,6 +5883,14 @@ "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", diff --git a/etc/api/gkehub/v1alpha/gkehub-api.json b/etc/api/gkehub/v1alpha/gkehub-api.json index 27e12e35a8..73af76373c 100644 --- a/etc/api/gkehub/v1alpha/gkehub-api.json +++ b/etc/api/gkehub/v1alpha/gkehub-api.json @@ -2175,7 +2175,7 @@ } } }, - "revision": "20240225", + "revision": "20240412", "rootUrl": "https://gkehub.googleapis.com/", "schemas": { "AnthosObservabilityFeatureSpec": { @@ -4313,6 +4313,10 @@ "$ref": "IdentityServiceGoogleConfig", "description": "GoogleConfig specific configuration." }, + "ldapConfig": { + "$ref": "IdentityServiceLdapConfig", + "description": "LDAP specific configuration." + }, "name": { "description": "Identifier for auth config.", "type": "string" @@ -4324,6 +4328,10 @@ "proxy": { "description": "Proxy server address to use for auth method.", "type": "string" + }, + "samlConfig": { + "$ref": "IdentityServiceSamlConfig", + "description": "SAML specific configuration." } }, "type": "object" @@ -4346,6 +4354,10 @@ "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" @@ -4353,6 +4365,10 @@ "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" @@ -4368,6 +4384,48 @@ }, "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" + }, + "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", @@ -4480,6 +4538,126 @@ }, "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", @@ -6275,6 +6453,63 @@ }, "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", + "CNI_CONFIG_UNSUPPORTED", + "GKE_SANDBOX_UNSUPPORTED", + "NODEPOOL_WORKLOAD_IDENTITY_FEDERATION_REQUIRED", + "CNI_INSTALLATION_FAILED", + "CNI_POD_UNSCHEDULABLE", + "UNSUPPORTED_MULTIPLE_CONTROL_PLANES", + "VPCSC_GA_SUPPORTED" + ], + "enumDescriptions": [ + "Default Unspecified code", + "Mesh IAM permission denied error code", + "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", + "Multiple control planes unsupported error code", + "VPC-SC GA is supported for this control plane." + ], + "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", @@ -6286,6 +6521,23 @@ }, "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": [ @@ -6430,6 +6682,14 @@ "readOnly": true, "type": "array" }, + "conditions": { + "description": "Output only. List of conditions reported for this membership.", + "items": { + "$ref": "ServiceMeshCondition" + }, + "readOnly": true, + "type": "array" + }, "configApiVersion": { "description": "The API version (i.e. Istio CRD version) for configuring service mesh in this cluster. This version is influenced by the `default_channel` field.", "type": "string" diff --git a/etc/api/gkehub/v1beta/gkehub-api.json b/etc/api/gkehub/v1beta/gkehub-api.json index 1ac9b818d8..192483a412 100644 --- a/etc/api/gkehub/v1beta/gkehub-api.json +++ b/etc/api/gkehub/v1beta/gkehub-api.json @@ -1611,6 +1611,83 @@ "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}", @@ -2024,7 +2101,7 @@ } } }, - "revision": "20240225", + "revision": "20240412", "rootUrl": "https://gkehub.googleapis.com/", "schemas": { "AnthosObservabilityFeatureSpec": { @@ -4017,6 +4094,10 @@ "$ref": "IdentityServiceGoogleConfig", "description": "GoogleConfig specific configuration." }, + "ldapConfig": { + "$ref": "IdentityServiceLdapConfig", + "description": "LDAP specific configuration." + }, "name": { "description": "Identifier for auth config.", "type": "string" @@ -4028,6 +4109,10 @@ "proxy": { "description": "Proxy server address to use for auth method.", "type": "string" + }, + "samlConfig": { + "$ref": "IdentityServiceSamlConfig", + "description": "SAML specific configuration." } }, "type": "object" @@ -4050,6 +4135,10 @@ "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" @@ -4057,6 +4146,10 @@ "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" @@ -4072,6 +4165,48 @@ }, "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" + }, + "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", @@ -4184,6 +4319,126 @@ }, "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", @@ -4256,6 +4511,31 @@ }, "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", @@ -4389,6 +4669,24 @@ }, "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", @@ -5794,6 +6092,63 @@ }, "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", + "CNI_CONFIG_UNSUPPORTED", + "GKE_SANDBOX_UNSUPPORTED", + "NODEPOOL_WORKLOAD_IDENTITY_FEDERATION_REQUIRED", + "CNI_INSTALLATION_FAILED", + "CNI_POD_UNSCHEDULABLE", + "UNSUPPORTED_MULTIPLE_CONTROL_PLANES", + "VPCSC_GA_SUPPORTED" + ], + "enumDescriptions": [ + "Default Unspecified code", + "Mesh IAM permission denied error code", + "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", + "Multiple control planes unsupported error code", + "VPC-SC GA is supported for this control plane." + ], + "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", @@ -5910,6 +6265,14 @@ "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", diff --git a/etc/api/gkehub/v1beta1/gkehub-api.json b/etc/api/gkehub/v1beta1/gkehub-api.json index 167cd0bc67..439ef42294 100644 --- a/etc/api/gkehub/v1beta1/gkehub-api.json +++ b/etc/api/gkehub/v1beta1/gkehub-api.json @@ -712,7 +712,7 @@ } } }, - "revision": "20240225", + "revision": "20240412", "rootUrl": "https://gkehub.googleapis.com/", "schemas": { "ApplianceCluster": { diff --git a/etc/api/gkehub/v2alpha/gkehub-api.json b/etc/api/gkehub/v2alpha/gkehub-api.json index ccdcf7e97e..e30d0759a5 100644 --- a/etc/api/gkehub/v2alpha/gkehub-api.json +++ b/etc/api/gkehub/v2alpha/gkehub-api.json @@ -280,7 +280,7 @@ } } }, - "revision": "20240225", + "revision": "20240412", "rootUrl": "https://gkehub.googleapis.com/", "schemas": { "CancelOperationRequest": { diff --git a/etc/api/gmail/v1/gmail-api.json b/etc/api/gmail/v1/gmail-api.json index d158a0a805..464f0e660e 100644 --- a/etc/api/gmail/v1/gmail-api.json +++ b/etc/api/gmail/v1/gmail-api.json @@ -3077,7 +3077,7 @@ } } }, - "revision": "20240226", + "revision": "20240401", "rootUrl": "https://gmail.googleapis.com/", "schemas": { "AutoForwarding": { diff --git a/etc/api/gmailpostmastertools/v1/gmailpostmastertools-api.json b/etc/api/gmailpostmastertools/v1/gmailpostmastertools-api.json index 649e2f640c..dcb50cf21e 100644 --- a/etc/api/gmailpostmastertools/v1/gmailpostmastertools-api.json +++ b/etc/api/gmailpostmastertools/v1/gmailpostmastertools-api.json @@ -265,7 +265,7 @@ } } }, - "revision": "20240303", + "revision": "20240418", "rootUrl": "https://gmailpostmastertools.googleapis.com/", "schemas": { "DeliveryError": { diff --git a/etc/api/gmailpostmastertools/v1beta1/gmailpostmastertools-api.json b/etc/api/gmailpostmastertools/v1beta1/gmailpostmastertools-api.json index 03ec7d479e..bb9c627270 100644 --- a/etc/api/gmailpostmastertools/v1beta1/gmailpostmastertools-api.json +++ b/etc/api/gmailpostmastertools/v1beta1/gmailpostmastertools-api.json @@ -265,7 +265,7 @@ } } }, - "revision": "20240303", + "revision": "20240418", "rootUrl": "https://gmailpostmastertools.googleapis.com/", "schemas": { "DeliveryError": { diff --git a/etc/api/groupsmigration/v1/groupsmigration-api.json b/etc/api/groupsmigration/v1/groupsmigration-api.json index 00c4bf56a4..08a23f996d 100644 --- a/etc/api/groupsmigration/v1/groupsmigration-api.json +++ b/etc/api/groupsmigration/v1/groupsmigration-api.json @@ -146,7 +146,7 @@ } } }, - "revision": "20240222", + "revision": "20240415", "rootUrl": "https://groupsmigration.googleapis.com/", "schemas": { "Groups": { diff --git a/etc/api/healthcare/v1/healthcare-api.json b/etc/api/healthcare/v1/healthcare-api.json index 8188b5dde9..8481cc05c2 100644 --- a/etc/api/healthcare/v1/healthcare-api.json +++ b/etc/api/healthcare/v1/healthcare-api.json @@ -4554,7 +4554,7 @@ } } }, - "revision": "20240228", + "revision": "20240329", "rootUrl": "https://healthcare.googleapis.com/", "schemas": { "ActivateConsentRequest": { @@ -7135,7 +7135,7 @@ "type": "boolean" }, "inputGcsObject": { - "description": "Optional. GCS object containing list of {resourceType}/{resourceId} lines, identifying resources to be reverted", + "description": "Optional. Cloud Storage object containing list of {resourceType}/{resourceId} lines, identifying resources to be reverted", "type": "string" }, "resultGcsBucket": { diff --git a/etc/api/healthcare/v1beta1/healthcare-api.json b/etc/api/healthcare/v1beta1/healthcare-api.json index ccc38f9598..2e53794b91 100644 --- a/etc/api/healthcare/v1beta1/healthcare-api.json +++ b/etc/api/healthcare/v1beta1/healthcare-api.json @@ -2650,7 +2650,7 @@ ], "parameters": { "resource": { - "description": "Required. The path of the resource to update the blob storage settings in the format of `projects/{projectID}/datasets/{datasetID}/dicomStores/{dicomStoreID}/dicomWeb/studies/{studyUID}`, `projects/{projectID}/datasets/{datasetID}/dicomStores/{dicomStoreID}/dicomWeb/studies/{studyUID}/series/{seriesUID}/`, or `projects/{projectID}/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}/datasets/{datasetID}/dicomStores/{dicomStoreID}`.", + "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, @@ -2806,7 +2806,7 @@ ], "parameters": { "resource": { - "description": "Required. The path of the resource to update the blob storage settings in the format of `projects/{projectID}/datasets/{datasetID}/dicomStores/{dicomStoreID}/dicomWeb/studies/{studyUID}`, `projects/{projectID}/datasets/{datasetID}/dicomStores/{dicomStoreID}/dicomWeb/studies/{studyUID}/series/{seriesUID}/`, or `projects/{projectID}/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}/datasets/{datasetID}/dicomStores/{dicomStoreID}`.", + "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, @@ -2869,7 +2869,7 @@ ], "parameters": { "resource": { - "description": "Required. The path of the resource for which the storage info is requested (for exaxmple for a DICOM Instance: `projects/{projectid}/datasets/{datasetid}/dicomStores/{dicomStoreId}/dicomWeb/studies/{study_uid}/series/{series_uid}/instances/{instance_uid}`)", + "description": "Required. The path of the resource for which the storage info is requested (for exaxmple for a DICOM Instance: `projects/{projectID}/locations/{locationID}/datasets/{datasetID}/dicomStores/{dicomStoreId}/dicomWeb/studies/{study_uid}/series/{series_uid}/instances/{instance_uid}`)", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+/dicomWeb/studies/[^/]+/series/[^/]+/instances/[^/]+$", "required": true, @@ -5614,7 +5614,7 @@ } } }, - "revision": "20240228", + "revision": "20240329", "rootUrl": "https://healthcare.googleapis.com/", "schemas": { "AccessDeterminationLogConfig": { @@ -5632,7 +5632,7 @@ "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](https://cloud.google.com/healthcare-api/docs/reference/rest/v1beta1/projects.locations.datasets.fhirStores#AccessDeterminationLogConfig) * The final consent evaluation (`PERMIT`, `DENY`, or `NO_CONSENT`) * A human-readable summary of the evaluation", + "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" @@ -6400,11 +6400,11 @@ "type": "string" }, "environment": { - "description": "An abstract identifier that describes the environment or conditions under which the accessor is acting. Can be \u201c*\u201d if it applies to all environments.", + "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 \u201c*\u201d if it applies to all purposes.", + "description": "The intent of data use. Can be \"*\" if it applies to all purposes.", "type": "string" } }, @@ -7188,7 +7188,7 @@ "type": "array" }, "consentResource": { - "description": "The resource name of this consent resource. Format: `projects/{projectId}/datasets/{datasetId}/fhirStores/{fhirStoreId}/fhir/{resourceType}/{id}`.", + "description": "The resource name of this consent resource. Format: `projects/{projectId}/locations/{locationId}/datasets/{datasetId}/fhirStores/{fhirStoreId}/fhir/{resourceType}/{id}`.", "type": "string" }, "enforcementTime": { @@ -7225,9 +7225,9 @@ "description": "The consent's variant combinations. A single consent may have multiple variants.", "items": { "enum": [ - "VARIANT_UNSPECIFIED", - "VARIANT_STANDARD", - "VARIANT_CASCADE" + "CONSENT_VARIANT_UNSPECIFIED", + "CONSENT_VARIANT_STANDARD", + "CONSENT_VARIANT_CASCADE" ], "enumDescriptions": [ "Consent variant unspecified.", @@ -9709,7 +9709,7 @@ }, "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}/datasets/{datasetID}/dicomStores/{dicomStoreID}`." + "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" @@ -9799,7 +9799,7 @@ "description": "Info about the data stored in blob storage for the resource." }, "referencedResource": { - "description": "The resource whose storage info is returned. For example, to specify the resource path of a DICOM Instance: `projects/{projectid}/datasets/{datasetid}/dicomStores/{dicom_store_id}/dicomWeb/studi/{study_uid}/series/{series_uid}/instances/{instance_uid}`", + "description": "The resource whose storage info is returned. For example, to specify the resource path of a DICOM Instance: `projects/{projectID}/locations/{locationID}/datasets/{datasetID}/dicomStores/{dicom_store_id}/dicomWeb/studi/{study_uid}/series/{series_uid}/instances/{instance_uid}`", "type": "string" }, "structuredStorageInfo": { diff --git a/etc/api/homegraph/v1/homegraph-api.json b/etc/api/homegraph/v1/homegraph-api.json index ed0a295b70..bc63c6d0e6 100644 --- a/etc/api/homegraph/v1/homegraph-api.json +++ b/etc/api/homegraph/v1/homegraph-api.json @@ -216,7 +216,7 @@ } } }, - "revision": "20240226", + "revision": "20240417", "rootUrl": "https://homegraph.googleapis.com/", "schemas": { "AgentDeviceId": { diff --git a/etc/api/iam/v1/iam-api.json b/etc/api/iam/v1/iam-api.json index 1c1a3f5c44..0a9faad106 100644 --- a/etc/api/iam/v1/iam-api.json +++ b/etc/api/iam/v1/iam-api.json @@ -12,7 +12,7 @@ "baseUrl": "https://iam.googleapis.com/", "batchPath": "batch", "canonicalName": "Iam", - "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. ", + "description": "Manages identity and access control for Google Cloud resources, including the creation of service accounts, which you can use to authenticate to Google and make API calls. Enabling this API also enables the IAM Service Account Credentials API (iamcredentials.googleapis.com). However, disabling this API doesn't disable the IAM Service Account Credentials API. ", "discoveryVersion": "v1", "documentationLink": "https://cloud.google.com/iam/", "fullyEncodeReservedExpansion": true, @@ -369,7 +369,7 @@ ] }, "testIamPermissions": { - "description": "Returns the caller's permissions on the WorkforcePool. If the pool does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error.", + "description": "Returns the caller's permissions on the WorkforcePool. If the pool doesn't exist, this call returns an empty set of permissions. It doesn't return a `NOT_FOUND` error.", "flatPath": "v1/locations/{locationsId}/workforcePools/{workforcePoolsId}:testIamPermissions", "httpMethod": "POST", "id": "iam.locations.workforcePools.testIamPermissions", @@ -491,7 +491,7 @@ ] }, "delete": { - "description": "Deletes a WorkforcePoolProvider. Deleting a provider does not revoke credentials that have already been\\ issued; they continue to grant access. You can undelete a provider for 30 days. After 30 days, deletion is permanent. You cannot update deleted providers. However, you can view and list them.", + "description": "Deletes a WorkforcePoolProvider. Deleting a provider does not revoke credentials that have already been issued; they continue to grant access. You can undelete a provider for 30 days. After 30 days, deletion is permanent. You cannot update deleted providers. However, you can view and list them.", "flatPath": "v1/locations/{locationsId}/workforcePools/{workforcePoolsId}/providers/{providersId}", "httpMethod": "DELETE", "id": "iam.locations.workforcePools.providers.delete", @@ -866,7 +866,7 @@ "subjects": { "methods": { "delete": { - "description": "Deletes a WorkforcePoolSubject. Subject must not already be in a deleted state. A WorkforcePoolSubject is automatically created the first time an external credential is exchanged for a Google Cloud credential with a mapped `google.subject` attribute. There is no path to manually create WorkforcePoolSubjects. Once deleted, the WorkforcePoolSubject may not be used for 30 days. After 30 days, the WorkforcePoolSubject will be deleted forever and can be reused in token exchanges with Google Cloud STS. This will automatically create a new WorkforcePoolSubject that is independent of the previously deleted WorkforcePoolSubject with the same google.subject value.", + "description": "Deletes a WorkforcePoolSubject. Subject must not already be in a deleted state. A WorkforcePoolSubject is automatically created the first time an external credential is exchanged for a Google Cloud credential using a mapped `google.subject` attribute. There is no endpoint to manually create a WorkforcePoolSubject. For 30 days after a WorkforcePoolSubject is deleted, using the same `google.subject` attribute in token exchanges with Google Cloud STS fails. Call UndeleteWorkforcePoolSubject to undelete a WorkforcePoolSubject that has been deleted, within within 30 days of deleting it. After 30 days, the WorkforcePoolSubject is permanently deleted. At this point, a token exchange with Google Cloud STS that uses the same mapped `google.subject` attribute automatically creates a new WorkforcePoolSubject that is unrelated to the previously deleted WorkforcePoolSubject but has the same `google.subject` value.", "flatPath": "v1/locations/{locationsId}/workforcePools/{workforcePoolsId}/subjects/{subjectsId}", "httpMethod": "DELETE", "id": "iam.locations.workforcePools.subjects.delete", @@ -875,7 +875,7 @@ ], "parameters": { "name": { - "description": "Required. The resource name of the WorkforcePoolSubject. Special characters, like '/' and ':', must be escaped, because all URLs need to conform to the \"When to Escape and Unescape\" section of [RFC3986](https://www.ietf.org/rfc/rfc2396.txt). Format: `locations/{location}/workforcePools/{workforce_pool_id}/subjects/{subject_id}`", + "description": "Required. The resource name of the WorkforcePoolSubject. Special characters, like `/` and `:`, must be escaped, because all URLs need to conform to the \"When to Escape and Unescape\" section of [RFC3986](https://www.ietf.org/rfc/rfc2396.txt). Format: `locations/{location}/workforcePools/{workforce_pool_id}/subjects/{subject_id}`", "location": "path", "pattern": "^locations/[^/]+/workforcePools/[^/]+/subjects/[^/]+$", "required": true, @@ -900,7 +900,7 @@ ], "parameters": { "name": { - "description": "Required. The resource name of the WorkforcePoolSubject. Special characters, like '/' and ':', must be escaped, because all URLs need to conform to the \"When to Escape and Unescape\" section of [RFC3986](https://www.ietf.org/rfc/rfc2396.txt). Format: `locations/{location}/workforcePools/{workforce_pool_id}/subjects/{subject_id}`", + "description": "Required. The resource name of the WorkforcePoolSubject. Special characters, like `/` and `:`, must be escaped, because all URLs need to conform to the \"When to Escape and Unescape\" section of [RFC3986](https://www.ietf.org/rfc/rfc2396.txt). Format: `locations/{location}/workforcePools/{workforce_pool_id}/subjects/{subject_id}`", "location": "path", "pattern": "^locations/[^/]+/workforcePools/[^/]+/subjects/[^/]+$", "required": true, @@ -1189,6 +1189,344 @@ "resources": { "locations": { "resources": { + "oauthClients": { + "methods": { + "create": { + "description": "Creates a new OauthClient. You cannot reuse the name of a deleted oauth client until 30 days after deletion.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/oauthClients", + "httpMethod": "POST", + "id": "iam.projects.locations.oauthClients.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "oauthClientId": { + "description": "Required. The ID to use for the oauth client, which becomes the final component of the resource name. This value should be a string of 6 to 63 lowercase letters, digits, or hyphens. It must start with a letter, and cannot have a trailing hyphen. The prefix `gcp-` is reserved for use by Google, and may not be specified.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent resource to create the oauth client in. The only supported location is `global`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/oauthClients", + "request": { + "$ref": "OauthClient" + }, + "response": { + "$ref": "OauthClient" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a OauthClient. You cannot use a deleted oauth client. However, deletion does not revoke access tokens that have already been issued; they continue to grant access. Deletion does revoke refresh tokens that have already been issued; They cannot be used to renew an access token. If the oauth client is undeleted, and the refresh tokens are not expired, they are valid for token exchange again. You can undelete an oauth client for 30 days. After 30 days, deletion is permanent. You cannot update deleted oauth clients. However, you can view and list them.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/oauthClients/{oauthClientsId}", + "httpMethod": "DELETE", + "id": "iam.projects.locations.oauthClients.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the oauth client to delete. Format: `projects/{project}/locations/{location}/oauthClients/{oauth_client}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/oauthClients/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "OauthClient" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets an individual OauthClient.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/oauthClients/{oauthClientsId}", + "httpMethod": "GET", + "id": "iam.projects.locations.oauthClients.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the oauth client to retrieve. Format: `projects/{project}/locations/{location}/oauthClients/{oauth_client}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/oauthClients/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "OauthClient" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists all non-deleted OauthClientss in a project. If `show_deleted` is set to `true`, then deleted oauth clients are also listed.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/oauthClients", + "httpMethod": "GET", + "id": "iam.projects.locations.oauthClients.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Optional. The maximum number of oauth clients to return. If unspecified, at most 50 oauth clients will be returned. The maximum value is 100; values above 100 are truncated to 100.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A page token, received from a previous `ListOauthClients` call. Provide this to retrieve the subsequent page.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent to list oauth clients for.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + }, + "showDeleted": { + "description": "Optional. Whether to return soft-deleted oauth clients.", + "location": "query", + "type": "boolean" + } + }, + "path": "v1/{+parent}/oauthClients", + "response": { + "$ref": "ListOauthClientsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates an existing OauthClient.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/oauthClients/{oauthClientsId}", + "httpMethod": "PATCH", + "id": "iam.projects.locations.oauthClients.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Immutable. The resource name of the oauth client. Format:`projects/{project}/locations/{location}/oauthClients/{oauth_client}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/oauthClients/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. The list of fields to update.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "OauthClient" + }, + "response": { + "$ref": "OauthClient" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "undelete": { + "description": "Undeletes a OauthClient, as long as it was deleted fewer than 30 days ago.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/oauthClients/{oauthClientsId}:undelete", + "httpMethod": "POST", + "id": "iam.projects.locations.oauthClients.undelete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the oauth client to undelete. Format: `projects/{project}/locations/{location}/oauthClients/{oauth_client}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/oauthClients/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:undelete", + "request": { + "$ref": "UndeleteOauthClientRequest" + }, + "response": { + "$ref": "OauthClient" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, + "resources": { + "credentials": { + "methods": { + "create": { + "description": "Creates a new OauthClientCredential.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/oauthClients/{oauthClientsId}/credentials", + "httpMethod": "POST", + "id": "iam.projects.locations.oauthClients.credentials.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "oauthClientCredentialId": { + "description": "Required. The ID to use for the oauth client credential, which becomes the final component of the resource name. This value should be 4-32 characters, and may contain the characters [a-z0-9-]. The prefix `gcp-` is reserved for use by Google, and may not be specified.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent resource to create the oauth client Credential in.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/oauthClients/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/credentials", + "request": { + "$ref": "OauthClientCredential" + }, + "response": { + "$ref": "OauthClientCredential" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a OauthClientCredential. Before deleting an oauth client credential, it should first be disabled.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/oauthClients/{oauthClientsId}/credentials/{credentialsId}", + "httpMethod": "DELETE", + "id": "iam.projects.locations.oauthClients.credentials.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the oauth client credential to delete. Format: `projects/{project}/locations/{location}/oauthClients/{oauth_client}/credentials/{credential}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/oauthClients/[^/]+/credentials/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets an individual OauthClientCredential.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/oauthClients/{oauthClientsId}/credentials/{credentialsId}", + "httpMethod": "GET", + "id": "iam.projects.locations.oauthClients.credentials.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the oauth client credential to retrieve. Format: `projects/{project}/locations/{location}/oauthClients/{oauth_client}/credentials/{credential}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/oauthClients/[^/]+/credentials/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "OauthClientCredential" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists all OauthClientCredentialss in a OauthClient.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/oauthClients/{oauthClientsId}/credentials", + "httpMethod": "GET", + "id": "iam.projects.locations.oauthClients.credentials.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent to list oauth client credentials for.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/oauthClients/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/credentials", + "response": { + "$ref": "ListOauthClientCredentialsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates an existing OauthClientCredential.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/oauthClients/{oauthClientsId}/credentials/{credentialsId}", + "httpMethod": "PATCH", + "id": "iam.projects.locations.oauthClients.credentials.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Immutable. The resource name of the oauth client credential. Format: `projects/{project}/locations/{location}/oauthClients/{oauth_client}/credentials/{credential}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/oauthClients/[^/]+/credentials/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. The list of fields to update.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "OauthClientCredential" + }, + "response": { + "$ref": "OauthClientCredential" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + }, "workloadIdentityPools": { "methods": { "create": { @@ -2718,6 +3056,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "patch": { + "description": "Patches a ServiceAccountKey.", + "flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}/keys/{keysId}:patch", + "httpMethod": "POST", + "id": "iam.projects.serviceAccounts.keys.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The resource name of the service account key in the following format `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}/keys/{key}`.", + "location": "path", + "pattern": "^projects/[^/]+/serviceAccounts/[^/]+/keys/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:patch", + "request": { + "$ref": "PatchServiceAccountKeyRequest" + }, + "response": { + "$ref": "ServiceAccountKey" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "upload": { "description": "Uploads the public key portion of a key pair that you manage, and associates the public key with a ServiceAccount. After you upload the public key, you can use the private key from the key pair as a service account key.", "flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}/keys:upload", @@ -2850,7 +3216,7 @@ } } }, - "revision": "20240220", + "revision": "20240415", "rootUrl": "https://iam.googleapis.com/", "schemas": { "AccessRestrictions": { @@ -3086,7 +3452,28 @@ "DisableServiceAccountKeyRequest": { "description": "The service account key disable request.", "id": "DisableServiceAccountKeyRequest", - "properties": {}, + "properties": { + "extendedStatusMessage": { + "description": "Optional. Usable by internal google services only. An extended_status_message can be used to include additional information about the key, such as its private key data being exposed on a public repository like GitHub.", + "type": "string" + }, + "serviceAccountKeyDisableReason": { + "description": "Optional. Describes the reason this key is being disabled. If unspecified, the default value of SERVICE_ACCOUNT_KEY_DISABLE_REASON_USER_INITIATED will be used.", + "enum": [ + "SERVICE_ACCOUNT_KEY_DISABLE_REASON_UNSPECIFIED", + "SERVICE_ACCOUNT_KEY_DISABLE_REASON_USER_INITIATED", + "SERVICE_ACCOUNT_KEY_DISABLE_REASON_EXPOSED", + "SERVICE_ACCOUNT_KEY_DISABLE_REASON_COMPROMISE_DETECTED" + ], + "enumDescriptions": [ + "Unspecified disable reason", + "Disabled by the user", + "Google detected this Service Account external key's private key data as exposed, typically in a public repository on GitHub or similar.", + "This service account external key was detected as compromised and used by an attacker." + ], + "type": "string" + } + }, "type": "object" }, "DisableServiceAccountRequest": { @@ -3136,6 +3523,31 @@ }, "type": "object" }, + "ExtendedStatus": { + "description": "Extended status can store additional metadata. For example, for keys disabled due to their private key data being expoesed we may include a message with more information about the exposure.", + "id": "ExtendedStatus", + "properties": { + "key": { + "description": "The key for this extended status.", + "enum": [ + "SERVICE_ACCOUNT_KEY_EXTENDED_STATUS_KEY_UNSPECIFIED", + "SERVICE_ACCOUNT_KEY_EXTENDED_STATUS_KEY_EXPOSED", + "SERVICE_ACCOUNT_KEY_EXTENDED_STATUS_KEY_COMPROMISE_DETECTED" + ], + "enumDescriptions": [ + "Unspecified extended status, should not be used.", + "This key has been detected as exposed. extended_status_value may contain information about the exposure (public GitHub repo, open internet, etc.)", + "This key was implicated in a compromise or other attack. extended_status_value may contain information about the abuse perpetrated." + ], + "type": "string" + }, + "value": { + "description": "The value for the extended status.", + "type": "string" + } + }, + "type": "object" + }, "GetIamPolicyRequest": { "description": "Request message for `GetIamPolicy` method.", "id": "GetIamPolicyRequest", @@ -3159,6 +3571,52 @@ }, "type": "object" }, + "GoogleIamAdminV1WorkforcePoolProviderExtraAttributesOAuth2Client": { + "description": "Represents the OAuth 2.0 client credential configuration for retrieving additional user attributes that are not present in the initial authentication credentials from the identity provider, e.g. groups. See https://datatracker.ietf.org/doc/html/rfc6749#section-4.4 for more details on client credentials grant flow.", + "id": "GoogleIamAdminV1WorkforcePoolProviderExtraAttributesOAuth2Client", + "properties": { + "attributesType": { + "description": "Required. Represents the IdP and type of claims that should be fetched.", + "enum": [ + "ATTRIBUTES_TYPE_UNSPECIFIED", + "AZURE_AD_GROUPS_MAIL" + ], + "enumDescriptions": [ + "No AttributesType specified.", + "Used to get the user's group claims from the Azure AD identity provider using configuration provided in ExtraAttributesOAuth2Client and `mail` property of the `microsoft.graph.group` object is used for claim mapping. See https://learn.microsoft.com/en-us/graph/api/resources/group?view=graph-rest-1.0#properties for more details on `microsoft.graph.group` properties. The attributes obtained from idntity provider are mapped to `assertion.groups`." + ], + "type": "string" + }, + "clientId": { + "description": "Required. The OAuth 2.0 client ID for retrieving extra attributes from the identity provider. Required to get the Access Token using client credentials grant flow.", + "type": "string" + }, + "clientSecret": { + "$ref": "GoogleIamAdminV1WorkforcePoolProviderOidcClientSecret", + "description": "Required. The OAuth 2.0 client secret for retrieving extra attributes from the identity provider. Required to get the Access Token using client credentials grant flow." + }, + "issuerUri": { + "description": "Required. The OIDC identity provider's issuer URI. Must be a valid URI using the `https` scheme. Required to get the OIDC discovery document.", + "type": "string" + }, + "queryParameters": { + "$ref": "GoogleIamAdminV1WorkforcePoolProviderExtraAttributesOAuth2ClientQueryParameters", + "description": "Optional. Represents the parameters to control which claims are fetched from an IdP." + } + }, + "type": "object" + }, + "GoogleIamAdminV1WorkforcePoolProviderExtraAttributesOAuth2ClientQueryParameters": { + "description": "Represents the parameters to control which claims are fetched from an IdP.", + "id": "GoogleIamAdminV1WorkforcePoolProviderExtraAttributesOAuth2ClientQueryParameters", + "properties": { + "filter": { + "description": "Optional. The filter used to request specific records from IdP. In case of attributes type as AZURE_AD_GROUPS_MAIL, it represents the filter used to request specific groups for users from IdP. By default all the groups associated with the user are fetched. The groups that are used should be mail enabled and security enabled. See https://learn.microsoft.com/en-us/graph/search-query-parameter for more details.", + "type": "string" + } + }, + "type": "object" + }, "GoogleIamAdminV1WorkforcePoolProviderOidc": { "description": "Represents an OpenId Connect 1.0 identity provider.", "id": "GoogleIamAdminV1WorkforcePoolProviderOidc", @@ -3172,7 +3630,7 @@ "description": "The optional client secret. Required to enable Authorization Code flow for web sign-in." }, "issuerUri": { - "description": "Required. The OIDC issuer URI. Must be a valid URI using the 'https' scheme.", + "description": "Required. The OIDC issuer URI. Must be a valid URI using the `https` scheme.", "type": "string" }, "jwksJson": { @@ -3404,6 +3862,38 @@ }, "type": "object" }, + "ListOauthClientCredentialsResponse": { + "description": "Response message for ListOauthClientCredentials.", + "id": "ListOauthClientCredentialsResponse", + "properties": { + "oauthClientCredentials": { + "description": "A list of oauth client credentials.", + "items": { + "$ref": "OauthClientCredential" + }, + "type": "array" + } + }, + "type": "object" + }, + "ListOauthClientsResponse": { + "description": "Response message for ListOauthClients.", + "id": "ListOauthClientsResponse", + "properties": { + "nextPageToken": { + "description": "Optional. A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.", + "type": "string" + }, + "oauthClients": { + "description": "A list of oauth clients.", + "items": { + "$ref": "OauthClient" + }, + "type": "array" + } + }, + "type": "object" + }, "ListRolesResponse": { "description": "The response containing the roles defined under a resource.", "id": "ListRolesResponse", @@ -3562,6 +4052,124 @@ }, "type": "object" }, + "OauthClient": { + "description": "Represents an oauth client. Used to access Google Cloud resources on behave of a user by using OAuth2 Protocol to obtain an access token from Google Cloud Platform.", + "id": "OauthClient", + "properties": { + "allowedGrantTypes": { + "description": "Required. The list of OAuth grant type is allowed for the oauth client.", + "items": { + "enum": [ + "GRANT_TYPE_UNSPECIFIED", + "AUTHORIZATION_CODE_GRANT", + "REFRESH_TOKEN_GRANT" + ], + "enumDescriptions": [ + "should not be used", + "authorization code grant", + "refresh token grant" + ], + "type": "string" + }, + "type": "array" + }, + "allowedRedirectUris": { + "description": "Required. The list of redirect uris that is allowed to redirect back when authorization process is completed.", + "items": { + "type": "string" + }, + "type": "array" + }, + "allowedScopes": { + "description": "Required. The list of scopes that the oauth client is allowed to request during OAuth flows. The following scopes are supported: * `https://www.googleapis.com/auth/cloud-platform`: See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account. * `openid`: Associate you with your personal info on Google Cloud. * `email`: See your Google Cloud Account email address.", + "items": { + "type": "string" + }, + "type": "array" + }, + "clientId": { + "description": "Output only. The system-generated oauth client id.", + "readOnly": true, + "type": "string" + }, + "clientType": { + "description": "Immutable. The type of oauth client. either public or private.", + "enum": [ + "CLIENT_TYPE_UNSPECIFIED", + "PUBLIC_CLIENT", + "CONFIDENTIAL_CLIENT" + ], + "enumDescriptions": [ + "should not be used", + "public client has no secret", + "private client" + ], + "type": "string" + }, + "description": { + "description": "Optional. A user-specified description of the oauth client. Cannot exceed 256 characters.", + "type": "string" + }, + "disabled": { + "description": "Optional. Whether the oauth client is disabled. You cannot use a disabled oauth client for login.", + "type": "boolean" + }, + "displayName": { + "description": "Optional. A user-specified display name of the oauth client. Cannot exceed 32 characters.", + "type": "string" + }, + "expireTime": { + "description": "Output only. Time after which the oauth client will be permanently purged and cannot be recovered.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Immutable. The resource name of the oauth client. Format:`projects/{project}/locations/{location}/oauthClients/{oauth_client}`.", + "type": "string" + }, + "state": { + "description": "Output only. The state of the oauth client.", + "enum": [ + "STATE_UNSPECIFIED", + "ACTIVE", + "DELETED" + ], + "enumDescriptions": [ + "Default value. This value is unused.", + "The oauth client is active.", + "The oauth client is soft-deleted. Soft-deleted oauth client is permanently deleted after approximately 30 days unless restored via UndeleteOauthClient." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "OauthClientCredential": { + "description": "Represents an oauth client credential. Used to authenticate an oauth client while accessing Google Cloud resources on behalf of a user by using OAuth2 Protocol.", + "id": "OauthClientCredential", + "properties": { + "clientSecret": { + "description": "Output only. The system-generated oauth client secret.", + "readOnly": true, + "type": "string" + }, + "disabled": { + "description": "Optional. Whether the oauth client credential is disabled. You cannot use a disabled oauth client credential for OAuth.", + "type": "boolean" + }, + "displayName": { + "description": "Optional. A user-specified display name of the oauth client credential Cannot exceed 32 characters.", + "type": "string" + }, + "name": { + "description": "Immutable. The resource name of the oauth client credential. Format: `projects/{project}/locations/{location}/oauthClients/{oauth_client}/credentials/{credential}`", + "type": "string" + } + }, + "type": "object" + }, "Oidc": { "description": "Represents an OpenId Connect 1.0 identity provider.", "id": "Oidc", @@ -3663,6 +4271,22 @@ }, "type": "object" }, + "PatchServiceAccountKeyRequest": { + "description": "The service account key patch request.", + "id": "PatchServiceAccountKeyRequest", + "properties": { + "serviceAccountKey": { + "$ref": "ServiceAccountKey", + "description": "Required. The service account key to update." + }, + "updateMask": { + "description": "Required. The update mask to apply to the service account key. Only the following fields are eligible for patching: - contact - description", + "format": "google-fieldmask", + "type": "string" + } + }, + "type": "object" + }, "PatchServiceAccountRequest": { "description": "The service account patch request. You can patch only the `display_name` and `description` fields. You must use the `update_mask` field to specify which of these fields you want to patch. Only the fields specified in the request are guaranteed to be returned in the response. Other fields may be empty in the response.", "id": "PatchServiceAccountRequest", @@ -3916,6 +4540,37 @@ }, "type": "object" }, + "ReconciliationOperationMetadata": { + "description": "Operation metadata returned by the CLH during resource state reconciliation.", + "id": "ReconciliationOperationMetadata", + "properties": { + "deleteResource": { + "deprecated": true, + "description": "DEPRECATED. Use exclusive_action instead.", + "type": "boolean" + }, + "exclusiveAction": { + "description": "Excluisive action returned by the CLH.", + "enum": [ + "UNKNOWN_REPAIR_ACTION", + "DELETE", + "RETRY" + ], + "enumDeprecated": [ + false, + true, + false + ], + "enumDescriptions": [ + "Unknown repair action.", + "The resource has to be deleted. When using this bit, the CLH should fail the operation. DEPRECATED. Instead use DELETE_RESOURCE OperationSignal in SideChannel.", + "This resource could not be repaired but the repair should be tried again at a later time. This can happen if there is a dependency that needs to be resolved first- e.g. if a parent resource must be repaired before a child resource." + ], + "type": "string" + } + }, + "type": "object" + }, "Role": { "description": "A role in the Identity and Access Management API.", "id": "Role", @@ -3941,7 +4596,7 @@ "type": "array" }, "name": { - "description": "The name of the role. When `Role` is used in `CreateRole`, the role name must not be set. When `Role` is used in output and other input such as `UpdateRole`, the role name is the complete path. For example, `roles/logging.viewer` for predefined roles, `organizations/{ORGANIZATION_ID}/roles/my-role` for organization-level custom roles, and `projects/{PROJECT_ID}/roles/my-role` for project-level custom roles.", + "description": "The name of the role. When `Role` is used in `CreateRole`, the role name must not be set. When `Role` is used in output and other input such as `UpdateRole`, the role name is the complete path. For example, `roles/logging.viewer` for predefined roles, `organizations/{ORGANIZATION_ID}/roles/myRole` for organization-level custom roles, and `projects/{PROJECT_ID}/roles/myRole` for project-level custom roles.", "type": "string" }, "stage": { @@ -3976,7 +4631,7 @@ "id": "Saml", "properties": { "idpMetadataXml": { - "description": "Required. SAML Identity provider configuration metadata xml doc. The xml document should comply with [SAML 2.0 specification](https://www.oasis-open.org/committees/download.php/56785/sstc-saml-metadata-errata-2.0-wd-05.pdf). The max size of the acceptable xml document will be bounded to 128k characters. The metadata xml document should satisfy the following constraints: 1) Must contain an Identity Provider Entity ID. 2) Must contain at least one non-expired signing key certificate. 3) For each signing key: a) Valid from should be no more than 7 days from now. b) Valid to should be no more than 15 years in the future. 4) Upto 3 IdP signing keys are allowed in the metadata xml. When updating the provider's metadata xml, at lease one non-expired signing key must overlap with the existing metadata. This requirement is skipped if there are no non-expired signing keys present in the existing metadata", + "description": "Required. SAML identity provider (IdP) configuration metadata XML doc. The XML document must comply with the [SAML 2.0 specification](https://docs.oasis-open.org/security/saml/v2.0/saml-metadata-2.0-os.pdf). The maximum size of an acceptable XML document is 128K characters. The SAML metadata XML document must satisfy the following constraints: * Must contain an IdP Entity ID. * Must contain at least one non-expired signing certificate. * For each signing certificate, the expiration must be: * From no more than 7 days in the future. * To no more than 15 years in the future. * Up to three IdP signing keys are allowed. When updating the provider's metadata XML, at least one non-expired signing key must overlap with the existing metadata. This requirement is skipped if there are no non-expired signing keys present in the existing metadata.", "type": "string" } }, @@ -4036,10 +4691,46 @@ "description": "Represents a service account key. A service account has two sets of key-pairs: user-managed, and system-managed. User-managed key-pairs can be created and deleted by users. Users are responsible for rotating these keys periodically to ensure security of their service accounts. Users retain the private key of these key-pairs, and Google retains ONLY the public key. System-managed keys are automatically rotated by Google, and are used for signing for a maximum of two weeks. The rotation process is probabilistic, and usage of the new key will gradually ramp up and down over the key's lifetime. If you cache the public key set for a service account, we recommend that you update the cache every 15 minutes. User-managed keys can be added and removed at any time, so it is important to update the cache frequently. For Google-managed keys, Google will publish a key at least 6 hours before it is first used for signing and will keep publishing it for at least 6 hours after it was last used for signing. Public keys for all service accounts are also published at the OAuth2 Service Account API.", "id": "ServiceAccountKey", "properties": { + "contact": { + "description": "Optional. A user provided email address as the point of contact for this service account key. Must be an email address. Limit 64 characters.", + "type": "string" + }, + "creator": { + "description": "Output only. The cloud identity that created this service account key. Populated automatically when the key is created and not editable by the user.", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "Optional. A user provided description of this service account key.", + "type": "string" + }, + "disableReason": { + "description": "optional. If the key is disabled, it may have a DisableReason describing why it was disabled.", + "enum": [ + "SERVICE_ACCOUNT_KEY_DISABLE_REASON_UNSPECIFIED", + "SERVICE_ACCOUNT_KEY_DISABLE_REASON_USER_INITIATED", + "SERVICE_ACCOUNT_KEY_DISABLE_REASON_EXPOSED", + "SERVICE_ACCOUNT_KEY_DISABLE_REASON_COMPROMISE_DETECTED" + ], + "enumDescriptions": [ + "Unspecified disable reason", + "Disabled by the user", + "Google detected this Service Account external key's private key data as exposed, typically in a public repository on GitHub or similar.", + "This service account external key was detected as compromised and used by an attacker." + ], + "type": "string" + }, "disabled": { "description": "The key status.", "type": "boolean" }, + "extendedStatus": { + "description": "Extended Status provides permanent information about a service account key. For example, if this key was detected as exposed or compromised, that information will remain for the lifetime of the key in the extended_status.", + "items": { + "$ref": "ExtendedStatus" + }, + "type": "array" + }, "keyAlgorithm": { "description": "Specifies the algorithm (and possibly key size) for the key.", "enum": [ @@ -4265,6 +4956,12 @@ }, "type": "object" }, + "UndeleteOauthClientRequest": { + "description": "Request message for UndeleteOauthClient.", + "id": "UndeleteOauthClientRequest", + "properties": {}, + "type": "object" + }, "UndeleteRoleRequest": { "description": "The request to undelete an existing role.", "id": "UndeleteRoleRequest", @@ -4417,7 +5114,7 @@ "additionalProperties": { "type": "string" }, - "description": "Required. Maps attributes from the authentication credentials issued by an external identity provider to Google Cloud attributes, such as `subject` and `segment`. Each key must be a string specifying the Google Cloud IAM attribute to map to. The following keys are supported: * `google.subject`: The principal IAM is authenticating. You can reference this value in IAM bindings. This is also the subject that appears in Cloud Logging logs. This is a required field and the mapped subject cannot exceed 127 bytes. * `google.groups`: Groups the authenticating user belongs to. You can grant groups access to resources using an IAM `principalSet` binding; access applies to all members of the group. * `google.display_name`: The name of the authenticated user. This is an optional field and the mapped display name cannot exceed 100 bytes. If not set, `google.subject` will be displayed instead. This attribute cannot be referenced in IAM bindings. * `google.profile_photo`: The URL that specifies the authenticated user's thumbnail photo. This is an optional field. When set, the image will be visible as the user's profile picture. If not set, a generic user icon will be displayed instead. This attribute cannot be referenced in IAM bindings. * `google.posix_username`: The linux username used by OS login. This is an optional field and the mapped posix username cannot exceed 32 characters, The key must match the regex \"^a-zA-Z0-9._{0,31}$\". This attribute cannot be referenced in IAM bindings. You can also provide custom attributes by specifying `attribute.{custom_attribute}`, where {custom_attribute} is the name of the custom attribute to be mapped. You can define a maximum of 50 custom attributes. The maximum length of a mapped attribute key is 100 characters, and the key may only contain the characters [a-z0-9_]. You can reference these attributes in IAM policies to define fine-grained access for a workforce pool to Google Cloud resources. For example: * `google.subject`: `principal://iam.googleapis.com/locations/global/workforcePools/{pool}/subject/{value}` * `google.groups`: `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool}/group/{value}` * `attribute.{custom_attribute}`: `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool}/attribute.{custom_attribute}/{value}` Each value must be a [Common Expression Language] (https://opensource.google/projects/cel) function that maps an identity provider credential to the normalized attribute specified by the corresponding map key. You can use the `assertion` keyword in the expression to access a JSON representation of the authentication credential issued by the provider. The maximum length of an attribute mapping expression is 2048 characters. When evaluated, the total size of all mapped attributes must not exceed 4KB. For OIDC providers, you must supply a custom mapping that includes the `google.subject` attribute. For example, the following maps the `sub` claim of the incoming credential to the `subject` attribute on a Google token: ``` {\"google.subject\": \"assertion.sub\"} ```", + "description": "Required. Maps attributes from the authentication credentials issued by an external identity provider to Google Cloud attributes, such as `subject` and `segment`. Each key must be a string specifying the Google Cloud IAM attribute to map to. The following keys are supported: * `google.subject`: The principal IAM is authenticating. You can reference this value in IAM bindings. This is also the subject that appears in Cloud Logging logs. This is a required field and the mapped subject cannot exceed 127 bytes. * `google.groups`: Groups the authenticating user belongs to. You can grant groups access to resources using an IAM `principalSet` binding; access applies to all members of the group. * `google.display_name`: The name of the authenticated user. This is an optional field and the mapped display name cannot exceed 100 bytes. If not set, `google.subject` will be displayed instead. This attribute cannot be referenced in IAM bindings. * `google.profile_photo`: The URL that specifies the authenticated user's thumbnail photo. This is an optional field. When set, the image will be visible as the user's profile picture. If not set, a generic user icon will be displayed instead. This attribute cannot be referenced in IAM bindings. * `google.posix_username`: The Linux username used by OS Login. This is an optional field and the mapped POSIX username cannot exceed 32 characters, The key must match the regex \"^a-zA-Z0-9._{0,31}$\". This attribute cannot be referenced in IAM bindings. You can also provide custom attributes by specifying `attribute.{custom_attribute}`, where {custom_attribute} is the name of the custom attribute to be mapped. You can define a maximum of 50 custom attributes. The maximum length of a mapped attribute key is 100 characters, and the key may only contain the characters [a-z0-9_]. You can reference these attributes in IAM policies to define fine-grained access for a workforce pool to Google Cloud resources. For example: * `google.subject`: `principal://iam.googleapis.com/locations/global/workforcePools/{pool}/subject/{value}` * `google.groups`: `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool}/group/{value}` * `attribute.{custom_attribute}`: `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool}/attribute.{custom_attribute}/{value}` Each value must be a [Common Expression Language] (https://opensource.google/projects/cel) function that maps an identity provider credential to the normalized attribute specified by the corresponding map key. You can use the `assertion` keyword in the expression to access a JSON representation of the authentication credential issued by the provider. The maximum length of an attribute mapping expression is 2048 characters. When evaluated, the total size of all mapped attributes must not exceed 4KB. For OIDC providers, you must supply a custom mapping that includes the `google.subject` attribute. For example, the following maps the `sub` claim of the incoming credential to the `subject` attribute on a Google token: ``` {\"google.subject\": \"assertion.sub\"} ```", "type": "object" }, "description": { @@ -4438,6 +5135,10 @@ "readOnly": true, "type": "string" }, + "extraAttributesOauth2Client": { + "$ref": "GoogleIamAdminV1WorkforcePoolProviderExtraAttributesOAuth2Client", + "description": "Optional. The configuration for OAuth 2.0 client used to get the additional user attributes. This should be used when users can't get the desired claims in authentication credentials. Currently this configuration is only supported with OIDC protocol." + }, "name": { "description": "Output only. The resource name of the provider. Format: `locations/{location}/workforcePools/{workforce_pool_id}/providers/{provider_id}`", "readOnly": true, diff --git a/etc/api/iamcredentials/v1/iamcredentials-api.json b/etc/api/iamcredentials/v1/iamcredentials-api.json index 0ab41243f1..19cf8198be 100644 --- a/etc/api/iamcredentials/v1/iamcredentials-api.json +++ b/etc/api/iamcredentials/v1/iamcredentials-api.json @@ -12,7 +12,7 @@ "baseUrl": "https://iamcredentials.googleapis.com/", "batchPath": "batch", "canonicalName": "IAM Credentials", - "description": "Creates short-lived credentials for impersonating IAM service accounts. To enable this API, you must enable the IAM API (iam.googleapis.com). ", + "description": "Creates short-lived credentials for impersonating IAM service accounts. Disabling this API also disables the IAM API (iam.googleapis.com). However, enabling this API doesn't enable the IAM API. ", "discoveryVersion": "v1", "documentationLink": "https://cloud.google.com/iam/docs/creating-short-lived-service-account-credentials", "fullyEncodeReservedExpansion": true, @@ -226,7 +226,7 @@ } } }, - "revision": "20240221", + "revision": "20240410", "rootUrl": "https://iamcredentials.googleapis.com/", "schemas": { "GenerateAccessTokenRequest": { diff --git a/etc/api/iap/v1/iap-api.json b/etc/api/iap/v1/iap-api.json index e836bc963d..02c9b7187f 100644 --- a/etc/api/iap/v1/iap-api.json +++ b/etc/api/iap/v1/iap-api.json @@ -650,7 +650,7 @@ ] }, "validateAttributeExpression": { - "description": "Validates a given CEL expression conforms to IAP restrictions.", + "description": "Validates that a given CEL expression conforms to IAP restrictions.", "flatPath": "v1/{v1Id}:validateAttributeExpression", "httpMethod": "POST", "id": "iap.validateAttributeExpression", @@ -659,7 +659,7 @@ ], "parameters": { "expression": { - "description": "Required. User input string expression. Should be of the form 'attributes.saml_attributes.filter(attribute, attribute.name in ['{attribute_name}', '{attribute_name}'])'", + "description": "Required. User input string expression. Should be of the form `attributes.saml_attributes.filter(attribute, attribute.name in ['{attribute_name}', '{attribute_name}'])`", "location": "query", "type": "string" }, @@ -682,7 +682,7 @@ } } }, - "revision": "20240224", + "revision": "20240412", "rootUrl": "https://iap.googleapis.com/", "schemas": { "AccessDeniedPageSettings": { @@ -1199,15 +1199,15 @@ "type": "object" }, "name": { - "description": "Name of the resource on which conditions will be evaluated. Must use the Relative Resource Name of the resource, which is the URI path of the resource without the leading \"/\". Examples are \"projects/_/buckets/[BUCKET-ID]\" for storage buckets or \"projects/[PROJECT-ID]/global/firewalls/[FIREWALL-ID]\" for a firewall. This field is required for evaluating conditions with rules on resource names. For a `list` permission check, the resource.name value must be set to the parent resource. If the parent resource is a project, this field should be left unset.", + "description": "The **relative** name of the resource, which is the URI path of the resource without the leading \"/\". See https://cloud.google.com/iam/docs/conditions-resource-attributes#resource-name for examples used by other GCP Services. This field is **required** for services integrated with resource-attribute-based IAM conditions and/or CustomOrgPolicy. This field requires special handling for parents-only permissions such as `create` and `list`. See the document linked below for further details. See go/iam-conditions-sig-g3#populate-resource-attributes for specific details on populating this field.", "type": "string" }, "service": { - "description": "The name of the service this resource belongs to. It is configured using the official_service_name of the Service as defined in service configurations under //configs/cloud/resourcetypes. For example, the official_service_name of cloud resource manager service is set as 'cloudresourcemanager.googleapis.com' according to //configs/cloud/resourcetypes/google/cloud/resourcemanager/prod.yaml", + "description": "The name of the service this resource belongs to. It is configured using the official_service_name of the Service as defined in service configurations under //configs/cloud/resourcetypes. For example, the official_service_name of cloud resource manager service is set as 'cloudresourcemanager.googleapis.com' according to //configs/cloud/resourcetypes/google/cloud/resourcemanager/prod.yaml This field is **required** for services integrated with resource-attribute-based IAM conditions and/or CustomOrgPolicy. This field requires special handling for parents-only permissions such as `create` and `list`. See the document linked below for further details. See go/iam-conditions-sig-g3#populate-resource-attributes for specific details on populating this field.", "type": "string" }, "type": { - "description": "The public resource type name of the resource on which conditions will be evaluated. It is configured using the official_name of the ResourceType as defined in service configurations under //configs/cloud/resourcetypes. For example, the official_name for GCP projects is set as 'cloudresourcemanager.googleapis.com/Project' according to //configs/cloud/resourcetypes/google/cloud/resourcemanager/prod.yaml For details see go/iam-conditions-integration-guide.", + "description": "The public resource type name of the resource. It is configured using the official_name of the ResourceType as defined in service configurations under //configs/cloud/resourcetypes. For example, the official_name for GCP projects is set as 'cloudresourcemanager.googleapis.com/Project' according to //configs/cloud/resourcetypes/google/cloud/resourcemanager/prod.yaml This field is **required** for services integrated with resource-attribute-based IAM conditions and/or CustomOrgPolicy. This field requires special handling for parents-only permissions such as `create` and `list`. See the document linked below for further details. See go/iam-conditions-sig-g3#populate-resource-attributes for specific details on populating this field.", "type": "string" } }, diff --git a/etc/api/iap/v1beta1/iap-api.json b/etc/api/iap/v1beta1/iap-api.json index a5ff956b7a..215b274f0f 100644 --- a/etc/api/iap/v1beta1/iap-api.json +++ b/etc/api/iap/v1beta1/iap-api.json @@ -194,7 +194,7 @@ } } }, - "revision": "20240224", + "revision": "20240412", "rootUrl": "https://iap.googleapis.com/", "schemas": { "Binding": { diff --git a/etc/api/indexing/v3/indexing-api.json b/etc/api/indexing/v3/indexing-api.json index 368106c563..7f5ce0aeaa 100644 --- a/etc/api/indexing/v3/indexing-api.json +++ b/etc/api/indexing/v3/indexing-api.json @@ -149,7 +149,7 @@ } } }, - "revision": "20240227", + "revision": "20240409", "rootUrl": "https://indexing.googleapis.com/", "schemas": { "PublishUrlNotificationResponse": { diff --git a/etc/api/jobs/v3/jobs-api.json b/etc/api/jobs/v3/jobs-api.json index 8cc9793443..3fedfebddf 100644 --- a/etc/api/jobs/v3/jobs-api.json +++ b/etc/api/jobs/v3/jobs-api.json @@ -652,7 +652,7 @@ } } }, - "revision": "20240202", + "revision": "20240404", "rootUrl": "https://jobs.googleapis.com/", "schemas": { "ApplicationInfo": { diff --git a/etc/api/jobs/v3p1beta1/jobs-api.json b/etc/api/jobs/v3p1beta1/jobs-api.json index c6c6fdc262..cb122832ab 100644 --- a/etc/api/jobs/v3p1beta1/jobs-api.json +++ b/etc/api/jobs/v3p1beta1/jobs-api.json @@ -682,7 +682,7 @@ } } }, - "revision": "20240202", + "revision": "20240404", "rootUrl": "https://jobs.googleapis.com/", "schemas": { "ApplicationInfo": { diff --git a/etc/api/jobs/v4/jobs-api.json b/etc/api/jobs/v4/jobs-api.json index 1734048dcd..2e1f8fed6e 100644 --- a/etc/api/jobs/v4/jobs-api.json +++ b/etc/api/jobs/v4/jobs-api.json @@ -903,7 +903,7 @@ } } }, - "revision": "20240202", + "revision": "20240404", "rootUrl": "https://jobs.googleapis.com/", "schemas": { "ApplicationInfo": { diff --git a/etc/api/keep/v1/keep-api.json b/etc/api/keep/v1/keep-api.json index eb949dd07d..928a6eb569 100644 --- a/etc/api/keep/v1/keep-api.json +++ b/etc/api/keep/v1/keep-api.json @@ -314,7 +314,7 @@ } } }, - "revision": "20240227", + "revision": "20240409", "rootUrl": "https://keep.googleapis.com/", "schemas": { "Attachment": { diff --git a/etc/api/kgsearch/v1/kgsearch-api.json b/etc/api/kgsearch/v1/kgsearch-api.json index 1152439ee6..afd8033d23 100644 --- a/etc/api/kgsearch/v1/kgsearch-api.json +++ b/etc/api/kgsearch/v1/kgsearch-api.json @@ -151,7 +151,7 @@ } } }, - "revision": "20240303", + "revision": "20240414", "rootUrl": "https://kgsearch.googleapis.com/", "schemas": { "SearchResponse": { diff --git a/etc/api/language/v1/language-api.json b/etc/api/language/v1/language-api.json index 2edc849f1b..19fd29d65c 100644 --- a/etc/api/language/v1/language-api.json +++ b/etc/api/language/v1/language-api.json @@ -246,7 +246,7 @@ } } }, - "revision": "20240303", + "revision": "20240414", "rootUrl": "https://language.googleapis.com/", "schemas": { "AnalyzeEntitiesRequest": { diff --git a/etc/api/language/v1beta2/language-api.json b/etc/api/language/v1beta2/language-api.json index a102bfd8fb..d9c956b918 100644 --- a/etc/api/language/v1beta2/language-api.json +++ b/etc/api/language/v1beta2/language-api.json @@ -246,7 +246,7 @@ } } }, - "revision": "20240303", + "revision": "20240414", "rootUrl": "https://language.googleapis.com/", "schemas": { "AnalyzeEntitiesRequest": { diff --git a/etc/api/libraryagent/v1/libraryagent-api.json b/etc/api/libraryagent/v1/libraryagent-api.json index 1ecaca75d9..90838680b7 100644 --- a/etc/api/libraryagent/v1/libraryagent-api.json +++ b/etc/api/libraryagent/v1/libraryagent-api.json @@ -279,7 +279,7 @@ } } }, - "revision": "20240303", + "revision": "20240418", "rootUrl": "https://libraryagent.googleapis.com/", "schemas": { "GoogleExampleLibraryagentV1Book": { diff --git a/etc/api/licensing/v1/licensing-api.json b/etc/api/licensing/v1/licensing-api.json index 3558e89e80..193bccfc16 100644 --- a/etc/api/licensing/v1/licensing-api.json +++ b/etc/api/licensing/v1/licensing-api.json @@ -400,7 +400,7 @@ } } }, - "revision": "20240301", + "revision": "20240410", "rootUrl": "https://licensing.googleapis.com/", "schemas": { "Empty": { diff --git a/etc/api/lifesciences/v2beta/lifesciences-api.json b/etc/api/lifesciences/v2beta/lifesciences-api.json index 46a9888576..6a3238bbde 100644 --- a/etc/api/lifesciences/v2beta/lifesciences-api.json +++ b/etc/api/lifesciences/v2beta/lifesciences-api.json @@ -312,7 +312,7 @@ } } }, - "revision": "20240220", + "revision": "20240329", "rootUrl": "https://lifesciences.googleapis.com/", "schemas": { "Accelerator": { @@ -325,7 +325,7 @@ "type": "string" }, "type": { - "description": "The accelerator type string (for example, \"nvidia-tesla-k80\"). Only NVIDIA GPU accelerators are currently supported. If an NVIDIA GPU is attached, the required runtime libraries will be made available to all containers under `/usr/local/nvidia`. The driver version to install must be specified using the NVIDIA driver version parameter on the virtual machine specification. Note that attaching a GPU increases the worker VM startup time by a few minutes.", + "description": "The accelerator type string (for example, \"nvidia-tesla-t4\"). Only NVIDIA GPU accelerators are currently supported. If an NVIDIA GPU is attached, the required runtime libraries will be made available to all containers under `/usr/local/nvidia`. The driver version to install must be specified using the NVIDIA driver version parameter on the virtual machine specification. Note that attaching a GPU increases the worker VM startup time by a few minutes.", "type": "string" } }, diff --git a/etc/api/localservices/v1/localservices-api.json b/etc/api/localservices/v1/localservices-api.json index 37632a66d0..75451b3607 100644 --- a/etc/api/localservices/v1/localservices-api.json +++ b/etc/api/localservices/v1/localservices-api.json @@ -250,7 +250,7 @@ } } }, - "revision": "20240303", + "revision": "20240418", "rootUrl": "https://localservices.googleapis.com/", "schemas": { "GoogleAdsHomeservicesLocalservicesV1AccountReport": { diff --git a/etc/api/logging/v2/logging-api.json b/etc/api/logging/v2/logging-api.json index 0cabae16a5..f8cef12cc1 100644 --- a/etc/api/logging/v2/logging-api.json +++ b/etc/api/logging/v2/logging-api.json @@ -28,10 +28,85 @@ "discoveryVersion": "v1", "documentationLink": "https://cloud.google.com/logging/docs/", "endpoints": [ + { + "description": "Regional Endpoint", + "endpointUrl": "https://logging.europe-west3.rep.googleapis.com/", + "location": "europe-west3" + }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://logging.europe-west8.rep.googleapis.com/", + "location": "europe-west8" + }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://logging.europe-west9.rep.googleapis.com/", + "location": "europe-west9" + }, { "description": "Regional Endpoint", "endpointUrl": "https://logging.me-central2.rep.googleapis.com/", "location": "me-central2" + }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://logging.us-central1.rep.googleapis.com/", + "location": "us-central1" + }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://logging.us-central2.rep.googleapis.com/", + "location": "us-central2" + }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://logging.us-east1.rep.googleapis.com/", + "location": "us-east1" + }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://logging.us-east4.rep.googleapis.com/", + "location": "us-east4" + }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://logging.us-east5.rep.googleapis.com/", + "location": "us-east5" + }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://logging.us-east7.rep.googleapis.com/", + "location": "us-east7" + }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://logging.us-south1.rep.googleapis.com/", + "location": "us-south1" + }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://logging.us-west1.rep.googleapis.com/", + "location": "us-west1" + }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://logging.us-west2.rep.googleapis.com/", + "location": "us-west2" + }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://logging.us-west3.rep.googleapis.com/", + "location": "us-west3" + }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://logging.us-west4.rep.googleapis.com/", + "location": "us-west4" + }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://logging.us-west8.rep.googleapis.com/", + "location": "us-west8" } ], "fullyEncodeReservedExpansion": true, @@ -433,7 +508,7 @@ ], "parameters": { "bucketId": { - "description": "Required. A client-assigned identifier such as \"my-bucket\". Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods.", + "description": "Required. A client-assigned identifier such as \"my-bucket\". Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods. Bucket identifiers must start with an alphanumeric character.", "location": "query", "type": "string" }, @@ -467,7 +542,7 @@ ], "parameters": { "bucketId": { - "description": "Required. A client-assigned identifier such as \"my-bucket\". Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods.", + "description": "Required. A client-assigned identifier such as \"my-bucket\". Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods. Bucket identifiers must start with an alphanumeric character.", "location": "query", "type": "string" }, @@ -1467,6 +1542,11 @@ "parent" ], "parameters": { + "filter": { + "description": "Optional. A filter expression to constrain the sinks returned. Today, this only supports the following strings: '' 'in_scope(\"ALL\")', 'in_scope(\"ANCESTOR\")', 'in_scope(\"DEFAULT\")'.Description of scopes below. ALL: Includes all of the sinks which can be returned in any other scope. ANCESTOR: Includes intercepting sinks owned by ancestor resources. DEFAULT: Includes sinks owned by parent.When the empty string is provided, then the filter 'in_scope(\"DEFAULT\")' is applied.", + "location": "query", + "type": "string" + }, "pageSize": { "description": "Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of nextPageToken in the response indicates that more results might be available.", "format": "int32", @@ -2181,7 +2261,7 @@ ], "parameters": { "bucketId": { - "description": "Required. A client-assigned identifier such as \"my-bucket\". Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods.", + "description": "Required. A client-assigned identifier such as \"my-bucket\". Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods. Bucket identifiers must start with an alphanumeric character.", "location": "query", "type": "string" }, @@ -2215,7 +2295,7 @@ ], "parameters": { "bucketId": { - "description": "Required. A client-assigned identifier such as \"my-bucket\". Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods.", + "description": "Required. A client-assigned identifier such as \"my-bucket\". Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods. Bucket identifiers must start with an alphanumeric character.", "location": "query", "type": "string" }, @@ -3215,6 +3295,11 @@ "parent" ], "parameters": { + "filter": { + "description": "Optional. A filter expression to constrain the sinks returned. Today, this only supports the following strings: '' 'in_scope(\"ALL\")', 'in_scope(\"ANCESTOR\")', 'in_scope(\"DEFAULT\")'.Description of scopes below. ALL: Includes all of the sinks which can be returned in any other scope. ANCESTOR: Includes intercepting sinks owned by ancestor resources. DEFAULT: Includes sinks owned by parent.When the empty string is provided, then the filter 'in_scope(\"DEFAULT\")' is applied.", + "location": "query", + "type": "string" + }, "pageSize": { "description": "Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of nextPageToken in the response indicates that more results might be available.", "format": "int32", @@ -3427,7 +3512,7 @@ ], "parameters": { "bucketId": { - "description": "Required. A client-assigned identifier such as \"my-bucket\". Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods.", + "description": "Required. A client-assigned identifier such as \"my-bucket\". Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods. Bucket identifiers must start with an alphanumeric character.", "location": "query", "type": "string" }, @@ -3461,7 +3546,7 @@ ], "parameters": { "bucketId": { - "description": "Required. A client-assigned identifier such as \"my-bucket\". Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods.", + "description": "Required. A client-assigned identifier such as \"my-bucket\". Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods. Bucket identifiers must start with an alphanumeric character.", "location": "query", "type": "string" }, @@ -4573,7 +4658,7 @@ ], "parameters": { "bucketId": { - "description": "Required. A client-assigned identifier such as \"my-bucket\". Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods.", + "description": "Required. A client-assigned identifier such as \"my-bucket\". Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods. Bucket identifiers must start with an alphanumeric character.", "location": "query", "type": "string" }, @@ -4607,7 +4692,7 @@ ], "parameters": { "bucketId": { - "description": "Required. A client-assigned identifier such as \"my-bucket\". Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods.", + "description": "Required. A client-assigned identifier such as \"my-bucket\". Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods. Bucket identifiers must start with an alphanumeric character.", "location": "query", "type": "string" }, @@ -5607,6 +5692,11 @@ "parent" ], "parameters": { + "filter": { + "description": "Optional. A filter expression to constrain the sinks returned. Today, this only supports the following strings: '' 'in_scope(\"ALL\")', 'in_scope(\"ANCESTOR\")', 'in_scope(\"DEFAULT\")'.Description of scopes below. ALL: Includes all of the sinks which can be returned in any other scope. ANCESTOR: Includes intercepting sinks owned by ancestor resources. DEFAULT: Includes sinks owned by parent.When the empty string is provided, then the filter 'in_scope(\"DEFAULT\")' is applied.", + "location": "query", + "type": "string" + }, "pageSize": { "description": "Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of nextPageToken in the response indicates that more results might be available.", "format": "int32", @@ -6040,7 +6130,7 @@ ], "parameters": { "bucketId": { - "description": "Required. A client-assigned identifier such as \"my-bucket\". Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods.", + "description": "Required. A client-assigned identifier such as \"my-bucket\". Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods. Bucket identifiers must start with an alphanumeric character.", "location": "query", "type": "string" }, @@ -6074,7 +6164,7 @@ ], "parameters": { "bucketId": { - "description": "Required. A client-assigned identifier such as \"my-bucket\". Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods.", + "description": "Required. A client-assigned identifier such as \"my-bucket\". Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods. Bucket identifiers must start with an alphanumeric character.", "location": "query", "type": "string" }, @@ -7232,6 +7322,11 @@ "parent" ], "parameters": { + "filter": { + "description": "Optional. A filter expression to constrain the sinks returned. Today, this only supports the following strings: '' 'in_scope(\"ALL\")', 'in_scope(\"ANCESTOR\")', 'in_scope(\"DEFAULT\")'.Description of scopes below. ALL: Includes all of the sinks which can be returned in any other scope. ANCESTOR: Includes intercepting sinks owned by ancestor resources. DEFAULT: Includes sinks owned by parent.When the empty string is provided, then the filter 'in_scope(\"DEFAULT\")' is applied.", + "location": "query", + "type": "string" + }, "pageSize": { "description": "Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of nextPageToken in the response indicates that more results might be available.", "format": "int32", @@ -7460,6 +7555,11 @@ "parent" ], "parameters": { + "filter": { + "description": "Optional. A filter expression to constrain the sinks returned. Today, this only supports the following strings: '' 'in_scope(\"ALL\")', 'in_scope(\"ANCESTOR\")', 'in_scope(\"DEFAULT\")'.Description of scopes below. ALL: Includes all of the sinks which can be returned in any other scope. ANCESTOR: Includes intercepting sinks owned by ancestor resources. DEFAULT: Includes sinks owned by parent.When the empty string is provided, then the filter 'in_scope(\"DEFAULT\")' is applied.", + "location": "query", + "type": "string" + }, "pageSize": { "description": "Optional. The maximum number of results to return from this request. Non-positive values are ignored. The presence of nextPageToken in the response indicates that more results might be available.", "format": "int32", @@ -7668,7 +7768,7 @@ } } }, - "revision": "20240223", + "revision": "20240412", "rootUrl": "https://logging.googleapis.com/", "schemas": { "BigQueryDataset": { @@ -7912,7 +8012,7 @@ "description": "Required. The new bucket. The region specified in the new bucket must be compliant with any Location Restriction Org Policy. The name field in the bucket is ignored." }, "bucketId": { - "description": "Required. A client-assigned identifier such as \"my-bucket\". Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods.", + "description": "Required. A client-assigned identifier such as \"my-bucket\". Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods. Bucket identifiers must start with an alphanumeric character.", "type": "string" }, "parent": { @@ -8615,7 +8715,7 @@ "id": "LogBucket", "properties": { "analyticsEnabled": { - "description": "Optional. Whether log analytics is enabled for this bucket.Once enabled, log analytics features cannot be disabled.", + "description": "Whether log analytics is enabled for this bucket.Once enabled, log analytics features cannot be disabled.", "type": "boolean" }, "cmekSettings": { @@ -9063,6 +9163,10 @@ "description": "Optional. This field applies only to sinks owned by organizations and folders. If the field is false, the default, only the logs owned by the sink's parent resource are available for export. If the field is true, then log entries from all the projects, folders, and billing accounts contained in the sink's parent resource are also available for export. Whether a particular log entry from the children is exported depends on the sink's filter expression.For example, if this field is true, then the filter resource.type=gce_instance would export all Compute Engine VM instance log entries from all projects in the sink's parent.To only export entries from certain child projects, filter on the project part of the log name:logName:(\"projects/test-project1/\" OR \"projects/test-project2/\") AND resource.type=gce_instance", "type": "boolean" }, + "interceptChildren": { + "description": "Optional. This field applies only to sinks owned by organizations and folders.When the value of 'intercept_children' is true, the following restrictions apply: The sink must have the include_children flag set to true. The sink destination must be a Cloud project.Also, the following behaviors apply: Any logs matched by the sink won't be included by non-_Required sinks owned by child resources. The sink appears in the results of a ListSinks call from a child resource if the value of the filter field in its request is either 'in_scope(\"ALL\")' or 'in_scope(\"ANCESTOR\")'.", + "type": "boolean" + }, "name": { "description": "Output only. The client-assigned sink identifier, unique within the project.For example: \"my-syslog-errors-to-pubsub\".Sink identifiers are limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, periods.First character has to be alphanumeric.", "readOnly": true, @@ -9083,6 +9187,11 @@ ], "type": "string" }, + "resourceName": { + "description": "Output only. The resource name of the sink. \"projects/[PROJECT_ID]/sinks/[SINK_NAME] \"organizations/[ORGANIZATION_ID]/sinks/[SINK_NAME] \"billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_NAME] \"folders/[FOLDER_ID]/sinks/[SINK_NAME] For example: projects/my_project/sinks/SINK_NAME", + "readOnly": true, + "type": "string" + }, "updateTime": { "description": "Output only. The last update timestamp of the sink.This field may not be present for older sinks.", "format": "google-datetime", @@ -9666,7 +9775,7 @@ "type": "string" }, "displayName": { - "description": "Optional. The user specified title for the SavedQuery.", + "description": "Required. The user specified title for the SavedQuery.", "type": "string" }, "loggingQuery": { diff --git a/etc/api/manufacturers/v1/manufacturers-api.json b/etc/api/manufacturers/v1/manufacturers-api.json index 72391e1a22..bfac152789 100644 --- a/etc/api/manufacturers/v1/manufacturers-api.json +++ b/etc/api/manufacturers/v1/manufacturers-api.json @@ -416,7 +416,7 @@ } } }, - "revision": "20240205", + "revision": "20240416", "rootUrl": "https://manufacturers.googleapis.com/", "schemas": { "Attributes": { diff --git a/etc/api/memcache/v1/memcache-api.json b/etc/api/memcache/v1/memcache-api.json index f7dc2dfb01..27501f2f13 100644 --- a/etc/api/memcache/v1/memcache-api.json +++ b/etc/api/memcache/v1/memcache-api.json @@ -584,7 +584,7 @@ } } }, - "revision": "20240222", + "revision": "20240307", "rootUrl": "https://memcache.googleapis.com/", "schemas": { "ApplyParametersRequest": { @@ -1333,7 +1333,7 @@ "type": "object" }, "MaintenancePolicy": { - "description": "LINT.IfChange Defines policies to service maintenance events.", + "description": "Defines policies to service maintenance events.", "id": "MaintenancePolicy", "properties": { "createTime": { diff --git a/etc/api/memcache/v1beta2/memcache-api.json b/etc/api/memcache/v1beta2/memcache-api.json index 89464027e7..a8c0733667 100644 --- a/etc/api/memcache/v1beta2/memcache-api.json +++ b/etc/api/memcache/v1beta2/memcache-api.json @@ -612,7 +612,7 @@ } } }, - "revision": "20240222", + "revision": "20240307", "rootUrl": "https://memcache.googleapis.com/", "schemas": { "ApplyParametersRequest": { @@ -1384,7 +1384,7 @@ "type": "object" }, "MaintenancePolicy": { - "description": "LINT.IfChange Defines policies to service maintenance events.", + "description": "Defines policies to service maintenance events.", "id": "MaintenancePolicy", "properties": { "createTime": { diff --git a/etc/api/metastore/v1alpha/metastore-api.json b/etc/api/metastore/v1alpha/metastore-api.json index cc32b6408d..6f3b9378c9 100644 --- a/etc/api/metastore/v1alpha/metastore-api.json +++ b/etc/api/metastore/v1alpha/metastore-api.json @@ -627,6 +627,62 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "cancelMigration": { + "description": "Cancels the ongoing Managed Migration process.", + "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/services/{servicesId}:cancelMigration", + "httpMethod": "POST", + "id": "metastore.projects.locations.services.cancelMigration", + "parameterOrder": [ + "service" + ], + "parameters": { + "service": { + "description": "Required. The relative resource name of the metastore service to cancel the ongoing migration to, in the following format:projects/{project_id}/locations/{location_id}/services/{service_id}.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+service}:cancelMigration", + "request": { + "$ref": "CancelMigrationRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "completeMigration": { + "description": "Completes the managed migration process. The Dataproc Metastore service will switch to using its own backend database after successful migration.", + "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/services/{servicesId}:completeMigration", + "httpMethod": "POST", + "id": "metastore.projects.locations.services.completeMigration", + "parameterOrder": [ + "service" + ], + "parameters": { + "service": { + "description": "Required. The relative resource name of the metastore service to complete the migration to, in the following format:projects/{project_id}/locations/{location_id}/services/{service_id}.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+service}:completeMigration", + "request": { + "$ref": "CompleteMigrationRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "create": { "description": "Creates a metastore service in a project and location.", "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/services", @@ -893,7 +949,7 @@ ] }, "queryMetadata": { - "description": "Query DPMS metadata.", + "description": "Query Dataproc Metastore metadata.", "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/services/{servicesId}:queryMetadata", "httpMethod": "POST", "id": "metastore.projects.locations.services.queryMetadata", @@ -1004,6 +1060,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "startMigration": { + "description": "Starts the Managed Migration process.", + "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/services/{servicesId}:startMigration", + "httpMethod": "POST", + "id": "metastore.projects.locations.services.startMigration", + "parameterOrder": [ + "service" + ], + "parameters": { + "service": { + "description": "Required. The relative resource name of the metastore service to start migrating to, in the following format:projects/{project_id}/locations/{location_id}/services/{service_id}.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+service}:startMigration", + "request": { + "$ref": "StartMigrationRequest" + }, + "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": "v1alpha/projects/{projectsId}/locations/{locationsId}/services/{servicesId}:testIamPermissions", @@ -1631,6 +1715,77 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] + }, + "get": { + "description": "Gets details of a single migration execution.", + "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/services/{servicesId}/migrationExecutions/{migrationExecutionsId}", + "httpMethod": "GET", + "id": "metastore.projects.locations.services.migrationExecutions.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The relative resource name of the migration execution to retrieve, in the following form:projects/{project_number}/locations/{location_id}/services/{service_id}/migrationExecutions/{migration_execution_id}.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+/migrationExecutions/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+name}", + "response": { + "$ref": "MigrationExecution" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists migration executions on a service.", + "flatPath": "v1alpha/projects/{projectsId}/locations/{locationsId}/services/{servicesId}/migrationExecutions", + "httpMethod": "GET", + "id": "metastore.projects.locations.services.migrationExecutions.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. The filter to apply to list results.", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Optional. Specify the ordering of results as described in Sorting Order (https://cloud.google.com/apis/design/design_patterns#sorting_order). If not specified, the results will be sorted in the default order.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. The maximum number of migration executions to return. The response may contain less than the maximum number. If unspecified, no more than 500 migration executions are returned. The maximum value is 1000; values above 1000 are changed to 1000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A page token, received from a previous DataprocMetastore.ListMigrationExecutions call. Provide this token to retrieve the subsequent page.To retrieve the first page, supply an empty page token.When paginating, other parameters provided to DataprocMetastore.ListMigrationExecutions must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The relative resource name of the service whose migration executions to list, in the following form:projects/{project_number}/locations/{location_id}/services/{service_id}/migrationExecutions.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1alpha/{+parent}/migrationExecutions", + "response": { + "$ref": "ListMigrationExecutionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } } } @@ -1641,7 +1796,7 @@ } } }, - "revision": "20240228", + "revision": "20240411", "rootUrl": "https://metastore.googleapis.com/", "schemas": { "AlterMetadataResourceLocationRequest": { @@ -1736,6 +1891,27 @@ }, "type": "object" }, + "AutoscalingConfig": { + "description": "Represents the autoscaling configuration of a metastore service.", + "id": "AutoscalingConfig", + "properties": { + "autoscalingEnabled": { + "description": "Optional. Whether or not autoscaling is enabled for this service.", + "type": "boolean" + }, + "autoscalingFactor": { + "description": "Output only. The scaling factor of a service with autoscaling enabled.", + "format": "float", + "readOnly": true, + "type": "number" + }, + "limitConfig": { + "$ref": "LimitConfig", + "description": "Optional. The LimitConfig of the service." + } + }, + "type": "object" + }, "AuxiliaryVersionConfig": { "description": "Configuration information for the auxiliary service versions.", "id": "AuxiliaryVersionConfig", @@ -1869,12 +2045,136 @@ }, "type": "object" }, + "CancelMigrationRequest": { + "description": "Request message for DataprocMetastore.CancelMigration.", + "id": "CancelMigrationRequest", + "properties": {}, + "type": "object" + }, + "CancelMigrationResponse": { + "description": "Response message for DataprocMetastore.CancelMigration.", + "id": "CancelMigrationResponse", + "properties": { + "migrationExecution": { + "description": "The relative resource name of the migration execution, in the following form:projects/{project_number}/locations/{location_id}/services/{service_id}/migrationExecutions/{migration_execution_id}.", + "type": "string" + } + }, + "type": "object" + }, "CancelOperationRequest": { "description": "The request message for Operations.CancelOperation.", "id": "CancelOperationRequest", "properties": {}, "type": "object" }, + "CdcConfig": { + "description": "Configuration information to start the Change Data Capture (CDC) streams from customer database to backend database of Dataproc Metastore.", + "id": "CdcConfig", + "properties": { + "bucket": { + "description": "Optional. The bucket to write the intermediate stream event data in. The bucket name must be without any prefix like \"gs://\". See the bucket naming requirements (https://cloud.google.com/storage/docs/buckets#naming). This field is optional. If not set, the Artifacts Cloud Storage bucket will be used.", + "type": "string" + }, + "password": { + "description": "Required. Input only. The password for the user that Datastream service should use for the MySQL connection. This field is not returned on request.", + "type": "string" + }, + "reverseProxySubnet": { + "description": "Required. The URL of the subnetwork resource to create the VM instance hosting the reverse proxy in. More context in https://cloud.google.com/datastream/docs/private-connectivity#reverse-csql-proxy The subnetwork should reside in the network provided in the request that Datastream will peer to and should be in the same region as Datastream, in the following format. projects/{project_id}/regions/{region_id}/subnetworks/{subnetwork_id}", + "type": "string" + }, + "rootPath": { + "description": "Optional. The root path inside the Cloud Storage bucket. The stream event data will be written to this path. The default value is /migration.", + "type": "string" + }, + "subnetIpRange": { + "description": "Required. A /29 CIDR IP range for peering with datastream.", + "type": "string" + }, + "username": { + "description": "Required. The username that the Datastream service should use for the MySQL connection.", + "type": "string" + }, + "vpcNetwork": { + "description": "Required. Fully qualified name of the Cloud SQL instance's VPC network or the shared VPC network that Datastream will peer to, in the following format: projects/{project_id}/locations/global/networks/{network_id}. More context in https://cloud.google.com/datastream/docs/network-connectivity-options#privateconnectivity", + "type": "string" + } + }, + "type": "object" + }, + "CloudSQLConnectionConfig": { + "description": "Configuration information to establish customer database connection before the cutover phase of migration", + "id": "CloudSQLConnectionConfig", + "properties": { + "hiveDatabaseName": { + "description": "Required. The hive database name.", + "type": "string" + }, + "instanceConnectionName": { + "description": "Required. Cloud SQL database connection name (project_id:region:instance_name)", + "type": "string" + }, + "ipAddress": { + "description": "Required. The private IP address of the Cloud SQL instance.", + "type": "string" + }, + "natSubnet": { + "description": "Required. The relative resource name of the subnetwork to be used for Private Service Connect. Note that this cannot be a regular subnet and is used only for NAT. (https://cloud.google.com/vpc/docs/about-vpc-hosted-services#psc-subnets) This subnet is used to publish the SOCKS5 proxy service. The subnet size must be at least /29 and it should reside in a network through which the Cloud SQL instance is accessible. The resource name should be in the format, projects/{project_id}/regions/{region_id}/subnetworks/{subnetwork_id}", + "type": "string" + }, + "password": { + "description": "Required. Input only. The password for the user that Dataproc Metastore service will be using to connect to the database. This field is not returned on request.", + "type": "string" + }, + "port": { + "description": "Required. The network port of the database.", + "format": "int32", + "type": "integer" + }, + "proxySubnet": { + "description": "Required. The relative resource name of the subnetwork to deploy the SOCKS5 proxy service in. The subnetwork should reside in a network through which the Cloud SQL instance is accessible. The resource name should be in the format, projects/{project_id}/regions/{region_id}/subnetworks/{subnetwork_id}", + "type": "string" + }, + "username": { + "description": "Required. The username that Dataproc Metastore service will use to connect to the database.", + "type": "string" + } + }, + "type": "object" + }, + "CloudSQLMigrationConfig": { + "description": "Configuration information for migrating from self-managed hive metastore on Google Cloud using Cloud SQL as the backend database to Dataproc Metastore.", + "id": "CloudSQLMigrationConfig", + "properties": { + "cdcConfig": { + "$ref": "CdcConfig", + "description": "Required. Configuration information to start the Change Data Capture (CDC) streams from customer database to backend database of Dataproc Metastore. Dataproc Metastore switches to using its backend database after the cutover phase of migration." + }, + "cloudSqlConnectionConfig": { + "$ref": "CloudSQLConnectionConfig", + "description": "Required. Configuration information to establish customer database connection before the cutover phase of migration" + } + }, + "type": "object" + }, + "CompleteMigrationRequest": { + "description": "Request message for DataprocMetastore.CompleteMigration.", + "id": "CompleteMigrationRequest", + "properties": {}, + "type": "object" + }, + "CompleteMigrationResponse": { + "description": "Response message for DataprocMetastore.CompleteMigration.", + "id": "CompleteMigrationResponse", + "properties": { + "migrationExecution": { + "description": "The relative resource name of the migration execution, in the following form:projects/{project_number}/locations/{location_id}/services/{service_id}/migrationExecutions/{migration_execution_id}.", + "type": "string" + } + }, + "type": "object" + }, "Consumer": { "description": "Contains information of the customer's network configurations.", "id": "Consumer", @@ -1975,7 +2275,7 @@ "id": "EncryptionConfig", "properties": { "kmsKey": { - "description": "The fully qualified customer provided Cloud KMS key name to use for customer data encryption, in the following form:projects/{project_number}/locations/{location_id}/keyRings/{key_ring_id}/cryptoKeys/{crypto_key_id}.", + "description": "The fully qualified customer provided Cloud KMS key name to use for customer data encryption, in the following format:projects/{project_number}/locations/{location_id}/keyRings/{key_ring_id}/cryptoKeys/{crypto_key_id}.", "type": "string" } }, @@ -2253,6 +2553,23 @@ }, "type": "object" }, + "LimitConfig": { + "description": "Represents the autoscaling limit configuration of a metastore service.", + "id": "LimitConfig", + "properties": { + "maxScalingFactor": { + "description": "Optional. The highest scaling factor that the service should be autoscaled to.", + "format": "float", + "type": "number" + }, + "minScalingFactor": { + "description": "Optional. The lowest scaling factor that the service should be autoscaled to.", + "format": "float", + "type": "number" + } + }, + "type": "object" + }, "ListBackupsResponse": { "description": "Response message for DataprocMetastore.ListBackups.", "id": "ListBackupsResponse", @@ -2346,6 +2663,31 @@ }, "type": "object" }, + "ListMigrationExecutionsResponse": { + "description": "Response message for DataprocMetastore.ListMigrationExecutions.", + "id": "ListMigrationExecutionsResponse", + "properties": { + "migrationExecutions": { + "description": "The migration executions on the specified service.", + "items": { + "$ref": "MigrationExecution" + }, + "type": "array" + }, + "nextPageToken": { + "description": "A token that can be sent as page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.", + "type": "string" + }, + "unreachable": { + "description": "Locations that could not be reached.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "ListOperationsResponse": { "description": "The response message for Operations.ListOperations.", "id": "ListOperationsResponse", @@ -2629,6 +2971,81 @@ }, "type": "object" }, + "MigrationExecution": { + "description": "The details of a migration execution resource.", + "id": "MigrationExecution", + "properties": { + "cloudSqlMigrationConfig": { + "$ref": "CloudSQLMigrationConfig", + "description": "Configuration information specific to migrating from self-managed hive metastore on Google Cloud using Cloud SQL as the backend database to Dataproc Metastore." + }, + "createTime": { + "description": "Output only. The time when the migration execution was started.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "endTime": { + "description": "Output only. The time when the migration execution finished.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Output only. The relative resource name of the migration execution, in the following form: projects/{project_number}/locations/{location_id}/services/{service_id}/migrationExecutions/{migration_execution_id}", + "readOnly": true, + "type": "string" + }, + "phase": { + "description": "Output only. The current phase of the migration execution.", + "enum": [ + "PHASE_UNSPECIFIED", + "REPLICATION", + "CUTOVER" + ], + "enumDescriptions": [ + "The phase of the migration execution is unknown.", + "Replication phase refers to the migration phase when Dataproc Metastore is running a pipeline to replicate changes in the customer database to its backend database. During this phase, Dataproc Metastore uses the customer database as the hive metastore backend database.", + "Cutover phase refers to the migration phase when Dataproc Metastore switches to using its own backend database. Migration enters this phase when customer is done migrating all their clusters/workloads to Dataproc Metastore and triggers CompleteMigration." + ], + "readOnly": true, + "type": "string" + }, + "state": { + "description": "Output only. The current state of the migration execution.", + "enum": [ + "STATE_UNSPECIFIED", + "STARTING", + "RUNNING", + "CANCELLING", + "AWAITING_USER_ACTION", + "SUCCEEDED", + "FAILED", + "CANCELLED", + "DELETING" + ], + "enumDescriptions": [ + "The state of the migration execution is unknown.", + "The migration execution is starting.", + "The migration execution is running.", + "The migration execution is in the process of being cancelled.", + "The migration execution is awaiting user action.", + "The migration execution has completed successfully.", + "The migration execution has failed.", + "The migration execution is cancelled.", + "The migration execution is being deleted." + ], + "readOnly": true, + "type": "string" + }, + "stateMessage": { + "description": "Output only. Additional information about the current state of the migration execution.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "MoveTableToDatabaseRequest": { "description": "Request message for DataprocMetastore.MoveTableToDatabase.", "id": "MoveTableToDatabaseRequest", @@ -2944,6 +3361,10 @@ "description": "Represents the scaling configuration of a metastore service.", "id": "ScalingConfig", "properties": { + "autoscalingConfig": { + "$ref": "AutoscalingConfig", + "description": "Optional. The autoscaling configuration." + }, "instanceSize": { "description": "An enum of readable instance sizes, with each instance size mapping to a float value (e.g. InstanceSize.EXTRA_SMALL = scaling_factor(0.1))", "enum": [ @@ -3128,7 +3549,8 @@ "SUSPENDED", "UPDATING", "DELETING", - "ERROR" + "ERROR", + "MIGRATING" ], "enumDescriptions": [ "The state of the metastore service is unknown.", @@ -3138,7 +3560,8 @@ "The metastore service is suspended and unable to serve queries.", "The metastore service is being updated. It remains usable but cannot accept additional update requests or be deleted at this time.", "The metastore service is undergoing deletion. It cannot be used.", - "The metastore service has encountered an error and cannot be used. The metastore service should be deleted." + "The metastore service has encountered an error and cannot be used. The metastore service should be deleted.", + "The metastore service is processing a managed migration." ], "readOnly": true, "type": "string" @@ -3196,6 +3619,21 @@ }, "type": "object" }, + "StartMigrationRequest": { + "description": "Request message for DataprocMetastore.StartMigration.", + "id": "StartMigrationRequest", + "properties": { + "migrationExecution": { + "$ref": "MigrationExecution", + "description": "Required. The configuration details for the migration." + }, + "requestId": { + "description": "Optional. A request ID. Specify a unique request ID to allow the server to ignore the request if it has completed. The server will ignore subsequent requests that provide a duplicate request ID for at least 60 minutes after the first request.For example, if an initial request times out, followed by another request with the same request ID, the server ignores the second request to prevent the creation of duplicate commitments.The request ID must be a valid UUID (https://en.wikipedia.org/wiki/Universally_unique_identifier#Format) A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.", + "type": "string" + } + }, + "type": "object" + }, "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", diff --git a/etc/api/metastore/v1beta/metastore-api.json b/etc/api/metastore/v1beta/metastore-api.json index 953dee257e..ef89f76bd1 100644 --- a/etc/api/metastore/v1beta/metastore-api.json +++ b/etc/api/metastore/v1beta/metastore-api.json @@ -627,6 +627,62 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "cancelMigration": { + "description": "Cancels the ongoing Managed Migration process.", + "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/services/{servicesId}:cancelMigration", + "httpMethod": "POST", + "id": "metastore.projects.locations.services.cancelMigration", + "parameterOrder": [ + "service" + ], + "parameters": { + "service": { + "description": "Required. The relative resource name of the metastore service to cancel the ongoing migration to, in the following format:projects/{project_id}/locations/{location_id}/services/{service_id}.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+service}:cancelMigration", + "request": { + "$ref": "CancelMigrationRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "completeMigration": { + "description": "Completes the managed migration process. The Dataproc Metastore service will switch to using its own backend database after successful migration.", + "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/services/{servicesId}:completeMigration", + "httpMethod": "POST", + "id": "metastore.projects.locations.services.completeMigration", + "parameterOrder": [ + "service" + ], + "parameters": { + "service": { + "description": "Required. The relative resource name of the metastore service to complete the migration to, in the following format:projects/{project_id}/locations/{location_id}/services/{service_id}.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+service}:completeMigration", + "request": { + "$ref": "CompleteMigrationRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "create": { "description": "Creates a metastore service in a project and location.", "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/services", @@ -893,7 +949,7 @@ ] }, "queryMetadata": { - "description": "Query DPMS metadata.", + "description": "Query Dataproc Metastore metadata.", "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/services/{servicesId}:queryMetadata", "httpMethod": "POST", "id": "metastore.projects.locations.services.queryMetadata", @@ -1004,6 +1060,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "startMigration": { + "description": "Starts the Managed Migration process.", + "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/services/{servicesId}:startMigration", + "httpMethod": "POST", + "id": "metastore.projects.locations.services.startMigration", + "parameterOrder": [ + "service" + ], + "parameters": { + "service": { + "description": "Required. The relative resource name of the metastore service to start migrating to, in the following format:projects/{project_id}/locations/{location_id}/services/{service_id}.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+service}:startMigration", + "request": { + "$ref": "StartMigrationRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "testIamPermissions": { "description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a NOT_FOUND error.Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/services/{servicesId}:testIamPermissions", @@ -1631,6 +1715,77 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] + }, + "get": { + "description": "Gets details of a single migration execution.", + "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/services/{servicesId}/migrationExecutions/{migrationExecutionsId}", + "httpMethod": "GET", + "id": "metastore.projects.locations.services.migrationExecutions.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The relative resource name of the migration execution to retrieve, in the following form:projects/{project_number}/locations/{location_id}/services/{service_id}/migrationExecutions/{migration_execution_id}.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+/migrationExecutions/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+name}", + "response": { + "$ref": "MigrationExecution" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists migration executions on a service.", + "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/services/{servicesId}/migrationExecutions", + "httpMethod": "GET", + "id": "metastore.projects.locations.services.migrationExecutions.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. The filter to apply to list results.", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Optional. Specify the ordering of results as described in Sorting Order (https://cloud.google.com/apis/design/design_patterns#sorting_order). If not specified, the results will be sorted in the default order.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. The maximum number of migration executions to return. The response may contain less than the maximum number. If unspecified, no more than 500 migration executions are returned. The maximum value is 1000; values above 1000 are changed to 1000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A page token, received from a previous DataprocMetastore.ListMigrationExecutions call. Provide this token to retrieve the subsequent page.To retrieve the first page, supply an empty page token.When paginating, other parameters provided to DataprocMetastore.ListMigrationExecutions must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The relative resource name of the service whose migration executions to list, in the following form:projects/{project_number}/locations/{location_id}/services/{service_id}/migrationExecutions.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+parent}/migrationExecutions", + "response": { + "$ref": "ListMigrationExecutionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } } } @@ -1641,7 +1796,7 @@ } } }, - "revision": "20240228", + "revision": "20240411", "rootUrl": "https://metastore.googleapis.com/", "schemas": { "AlterMetadataResourceLocationRequest": { @@ -1736,6 +1891,27 @@ }, "type": "object" }, + "AutoscalingConfig": { + "description": "Represents the autoscaling configuration of a metastore service.", + "id": "AutoscalingConfig", + "properties": { + "autoscalingEnabled": { + "description": "Optional. Whether or not autoscaling is enabled for this service.", + "type": "boolean" + }, + "autoscalingFactor": { + "description": "Output only. The scaling factor of a service with autoscaling enabled.", + "format": "float", + "readOnly": true, + "type": "number" + }, + "limitConfig": { + "$ref": "LimitConfig", + "description": "Optional. The LimitConfig of the service." + } + }, + "type": "object" + }, "AuxiliaryVersionConfig": { "description": "Configuration information for the auxiliary service versions.", "id": "AuxiliaryVersionConfig", @@ -1869,12 +2045,136 @@ }, "type": "object" }, + "CancelMigrationRequest": { + "description": "Request message for DataprocMetastore.CancelMigration.", + "id": "CancelMigrationRequest", + "properties": {}, + "type": "object" + }, + "CancelMigrationResponse": { + "description": "Response message for DataprocMetastore.CancelMigration.", + "id": "CancelMigrationResponse", + "properties": { + "migrationExecution": { + "description": "The relative resource name of the migration execution, in the following form:projects/{project_number}/locations/{location_id}/services/{service_id}/migrationExecutions/{migration_execution_id}.", + "type": "string" + } + }, + "type": "object" + }, "CancelOperationRequest": { "description": "The request message for Operations.CancelOperation.", "id": "CancelOperationRequest", "properties": {}, "type": "object" }, + "CdcConfig": { + "description": "Configuration information to start the Change Data Capture (CDC) streams from customer database to backend database of Dataproc Metastore.", + "id": "CdcConfig", + "properties": { + "bucket": { + "description": "Optional. The bucket to write the intermediate stream event data in. The bucket name must be without any prefix like \"gs://\". See the bucket naming requirements (https://cloud.google.com/storage/docs/buckets#naming). This field is optional. If not set, the Artifacts Cloud Storage bucket will be used.", + "type": "string" + }, + "password": { + "description": "Required. Input only. The password for the user that Datastream service should use for the MySQL connection. This field is not returned on request.", + "type": "string" + }, + "reverseProxySubnet": { + "description": "Required. The URL of the subnetwork resource to create the VM instance hosting the reverse proxy in. More context in https://cloud.google.com/datastream/docs/private-connectivity#reverse-csql-proxy The subnetwork should reside in the network provided in the request that Datastream will peer to and should be in the same region as Datastream, in the following format. projects/{project_id}/regions/{region_id}/subnetworks/{subnetwork_id}", + "type": "string" + }, + "rootPath": { + "description": "Optional. The root path inside the Cloud Storage bucket. The stream event data will be written to this path. The default value is /migration.", + "type": "string" + }, + "subnetIpRange": { + "description": "Required. A /29 CIDR IP range for peering with datastream.", + "type": "string" + }, + "username": { + "description": "Required. The username that the Datastream service should use for the MySQL connection.", + "type": "string" + }, + "vpcNetwork": { + "description": "Required. Fully qualified name of the Cloud SQL instance's VPC network or the shared VPC network that Datastream will peer to, in the following format: projects/{project_id}/locations/global/networks/{network_id}. More context in https://cloud.google.com/datastream/docs/network-connectivity-options#privateconnectivity", + "type": "string" + } + }, + "type": "object" + }, + "CloudSQLConnectionConfig": { + "description": "Configuration information to establish customer database connection before the cutover phase of migration", + "id": "CloudSQLConnectionConfig", + "properties": { + "hiveDatabaseName": { + "description": "Required. The hive database name.", + "type": "string" + }, + "instanceConnectionName": { + "description": "Required. Cloud SQL database connection name (project_id:region:instance_name)", + "type": "string" + }, + "ipAddress": { + "description": "Required. The private IP address of the Cloud SQL instance.", + "type": "string" + }, + "natSubnet": { + "description": "Required. The relative resource name of the subnetwork to be used for Private Service Connect. Note that this cannot be a regular subnet and is used only for NAT. (https://cloud.google.com/vpc/docs/about-vpc-hosted-services#psc-subnets) This subnet is used to publish the SOCKS5 proxy service. The subnet size must be at least /29 and it should reside in a network through which the Cloud SQL instance is accessible. The resource name should be in the format, projects/{project_id}/regions/{region_id}/subnetworks/{subnetwork_id}", + "type": "string" + }, + "password": { + "description": "Required. Input only. The password for the user that Dataproc Metastore service will be using to connect to the database. This field is not returned on request.", + "type": "string" + }, + "port": { + "description": "Required. The network port of the database.", + "format": "int32", + "type": "integer" + }, + "proxySubnet": { + "description": "Required. The relative resource name of the subnetwork to deploy the SOCKS5 proxy service in. The subnetwork should reside in a network through which the Cloud SQL instance is accessible. The resource name should be in the format, projects/{project_id}/regions/{region_id}/subnetworks/{subnetwork_id}", + "type": "string" + }, + "username": { + "description": "Required. The username that Dataproc Metastore service will use to connect to the database.", + "type": "string" + } + }, + "type": "object" + }, + "CloudSQLMigrationConfig": { + "description": "Configuration information for migrating from self-managed hive metastore on Google Cloud using Cloud SQL as the backend database to Dataproc Metastore.", + "id": "CloudSQLMigrationConfig", + "properties": { + "cdcConfig": { + "$ref": "CdcConfig", + "description": "Required. Configuration information to start the Change Data Capture (CDC) streams from customer database to backend database of Dataproc Metastore. Dataproc Metastore switches to using its backend database after the cutover phase of migration." + }, + "cloudSqlConnectionConfig": { + "$ref": "CloudSQLConnectionConfig", + "description": "Required. Configuration information to establish customer database connection before the cutover phase of migration" + } + }, + "type": "object" + }, + "CompleteMigrationRequest": { + "description": "Request message for DataprocMetastore.CompleteMigration.", + "id": "CompleteMigrationRequest", + "properties": {}, + "type": "object" + }, + "CompleteMigrationResponse": { + "description": "Response message for DataprocMetastore.CompleteMigration.", + "id": "CompleteMigrationResponse", + "properties": { + "migrationExecution": { + "description": "The relative resource name of the migration execution, in the following form:projects/{project_number}/locations/{location_id}/services/{service_id}/migrationExecutions/{migration_execution_id}.", + "type": "string" + } + }, + "type": "object" + }, "Consumer": { "description": "Contains information of the customer's network configurations.", "id": "Consumer", @@ -1975,7 +2275,7 @@ "id": "EncryptionConfig", "properties": { "kmsKey": { - "description": "The fully qualified customer provided Cloud KMS key name to use for customer data encryption, in the following form:projects/{project_number}/locations/{location_id}/keyRings/{key_ring_id}/cryptoKeys/{crypto_key_id}.", + "description": "The fully qualified customer provided Cloud KMS key name to use for customer data encryption, in the following format:projects/{project_number}/locations/{location_id}/keyRings/{key_ring_id}/cryptoKeys/{crypto_key_id}.", "type": "string" } }, @@ -2253,6 +2553,23 @@ }, "type": "object" }, + "LimitConfig": { + "description": "Represents the autoscaling limit configuration of a metastore service.", + "id": "LimitConfig", + "properties": { + "maxScalingFactor": { + "description": "Optional. The highest scaling factor that the service should be autoscaled to.", + "format": "float", + "type": "number" + }, + "minScalingFactor": { + "description": "Optional. The lowest scaling factor that the service should be autoscaled to.", + "format": "float", + "type": "number" + } + }, + "type": "object" + }, "ListBackupsResponse": { "description": "Response message for DataprocMetastore.ListBackups.", "id": "ListBackupsResponse", @@ -2346,6 +2663,31 @@ }, "type": "object" }, + "ListMigrationExecutionsResponse": { + "description": "Response message for DataprocMetastore.ListMigrationExecutions.", + "id": "ListMigrationExecutionsResponse", + "properties": { + "migrationExecutions": { + "description": "The migration executions on the specified service.", + "items": { + "$ref": "MigrationExecution" + }, + "type": "array" + }, + "nextPageToken": { + "description": "A token that can be sent as page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.", + "type": "string" + }, + "unreachable": { + "description": "Locations that could not be reached.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "ListOperationsResponse": { "description": "The response message for Operations.ListOperations.", "id": "ListOperationsResponse", @@ -2629,6 +2971,81 @@ }, "type": "object" }, + "MigrationExecution": { + "description": "The details of a migration execution resource.", + "id": "MigrationExecution", + "properties": { + "cloudSqlMigrationConfig": { + "$ref": "CloudSQLMigrationConfig", + "description": "Configuration information specific to migrating from self-managed hive metastore on Google Cloud using Cloud SQL as the backend database to Dataproc Metastore." + }, + "createTime": { + "description": "Output only. The time when the migration execution was started.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "endTime": { + "description": "Output only. The time when the migration execution finished.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Output only. The relative resource name of the migration execution, in the following form: projects/{project_number}/locations/{location_id}/services/{service_id}/migrationExecutions/{migration_execution_id}", + "readOnly": true, + "type": "string" + }, + "phase": { + "description": "Output only. The current phase of the migration execution.", + "enum": [ + "PHASE_UNSPECIFIED", + "REPLICATION", + "CUTOVER" + ], + "enumDescriptions": [ + "The phase of the migration execution is unknown.", + "Replication phase refers to the migration phase when Dataproc Metastore is running a pipeline to replicate changes in the customer database to its backend database. During this phase, Dataproc Metastore uses the customer database as the hive metastore backend database.", + "Cutover phase refers to the migration phase when Dataproc Metastore switches to using its own backend database. Migration enters this phase when customer is done migrating all their clusters/workloads to Dataproc Metastore and triggers CompleteMigration." + ], + "readOnly": true, + "type": "string" + }, + "state": { + "description": "Output only. The current state of the migration execution.", + "enum": [ + "STATE_UNSPECIFIED", + "STARTING", + "RUNNING", + "CANCELLING", + "AWAITING_USER_ACTION", + "SUCCEEDED", + "FAILED", + "CANCELLED", + "DELETING" + ], + "enumDescriptions": [ + "The state of the migration execution is unknown.", + "The migration execution is starting.", + "The migration execution is running.", + "The migration execution is in the process of being cancelled.", + "The migration execution is awaiting user action.", + "The migration execution has completed successfully.", + "The migration execution has failed.", + "The migration execution is cancelled.", + "The migration execution is being deleted." + ], + "readOnly": true, + "type": "string" + }, + "stateMessage": { + "description": "Output only. Additional information about the current state of the migration execution.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "MoveTableToDatabaseRequest": { "description": "Request message for DataprocMetastore.MoveTableToDatabase.", "id": "MoveTableToDatabaseRequest", @@ -2944,6 +3361,10 @@ "description": "Represents the scaling configuration of a metastore service.", "id": "ScalingConfig", "properties": { + "autoscalingConfig": { + "$ref": "AutoscalingConfig", + "description": "Optional. The autoscaling configuration." + }, "instanceSize": { "description": "An enum of readable instance sizes, with each instance size mapping to a float value (e.g. InstanceSize.EXTRA_SMALL = scaling_factor(0.1))", "enum": [ @@ -3128,7 +3549,8 @@ "SUSPENDED", "UPDATING", "DELETING", - "ERROR" + "ERROR", + "MIGRATING" ], "enumDescriptions": [ "The state of the metastore service is unknown.", @@ -3138,7 +3560,8 @@ "The metastore service is suspended and unable to serve queries.", "The metastore service is being updated. It remains usable but cannot accept additional update requests or be deleted at this time.", "The metastore service is undergoing deletion. It cannot be used.", - "The metastore service has encountered an error and cannot be used. The metastore service should be deleted." + "The metastore service has encountered an error and cannot be used. The metastore service should be deleted.", + "The metastore service is processing a managed migration." ], "readOnly": true, "type": "string" @@ -3196,6 +3619,21 @@ }, "type": "object" }, + "StartMigrationRequest": { + "description": "Request message for DataprocMetastore.StartMigration.", + "id": "StartMigrationRequest", + "properties": { + "migrationExecution": { + "$ref": "MigrationExecution", + "description": "Required. The configuration details for the migration." + }, + "requestId": { + "description": "Optional. A request ID. Specify a unique request ID to allow the server to ignore the request if it has completed. The server will ignore subsequent requests that provide a duplicate request ID for at least 60 minutes after the first request.For example, if an initial request times out, followed by another request with the same request ID, the server ignores the second request to prevent the creation of duplicate commitments.The request ID must be a valid UUID (https://en.wikipedia.org/wiki/Universally_unique_identifier#Format) A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.", + "type": "string" + } + }, + "type": "object" + }, "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", diff --git a/etc/api/ml/v1/ml-api.json b/etc/api/ml/v1/ml-api.json index 0d72bab150..93e3f3e239 100644 --- a/etc/api/ml/v1/ml-api.json +++ b/etc/api/ml/v1/ml-api.json @@ -1486,7 +1486,7 @@ } } }, - "revision": "20240127", + "revision": "20240311", "rootUrl": "https://ml.googleapis.com/", "schemas": { "GoogleApi__HttpBody": { diff --git a/etc/api/monitoring/v1/monitoring-api.json b/etc/api/monitoring/v1/monitoring-api.json index 74e02f2f80..804adfd3b9 100644 --- a/etc/api/monitoring/v1/monitoring-api.json +++ b/etc/api/monitoring/v1/monitoring-api.json @@ -753,7 +753,7 @@ } } }, - "revision": "20240225", + "revision": "20240414", "rootUrl": "https://monitoring.googleapis.com/", "schemas": { "Aggregation": { diff --git a/etc/api/monitoring/v3/monitoring-api.json b/etc/api/monitoring/v3/monitoring-api.json index b2d3603c01..1be234644b 100644 --- a/etc/api/monitoring/v3/monitoring-api.json +++ b/etc/api/monitoring/v3/monitoring-api.json @@ -2452,7 +2452,7 @@ ], "parameters": { "name": { - "description": "Resource name for this Service. The format is: projects/[PROJECT_ID_OR_NUMBER]/services/[SERVICE_ID] ", + "description": "Identifier. Resource name for this Service. The format is: projects/[PROJECT_ID_OR_NUMBER]/services/[SERVICE_ID] ", "location": "path", "pattern": "^[^/]+/[^/]+/services/[^/]+$", "required": true, @@ -2651,7 +2651,7 @@ ], "parameters": { "name": { - "description": "Resource name for this ServiceLevelObjective. The format is: projects/[PROJECT_ID_OR_NUMBER]/services/[SERVICE_ID]/serviceLevelObjectives/[SLO_NAME] ", + "description": "Identifier. Resource name for this ServiceLevelObjective. The format is: projects/[PROJECT_ID_OR_NUMBER]/services/[SERVICE_ID]/serviceLevelObjectives/[SLO_NAME] ", "location": "path", "pattern": "^[^/]+/[^/]+/services/[^/]+/serviceLevelObjectives/[^/]+$", "required": true, @@ -2714,7 +2714,7 @@ } } }, - "revision": "20240225", + "revision": "20240414", "rootUrl": "https://monitoring.googleapis.com/", "schemas": { "Aggregation": { @@ -3453,7 +3453,7 @@ "type": "object" }, "Documentation": { - "description": "A content string and a MIME type that describes the content string's format.", + "description": "Documentation that is included in the notifications and incidents pertaining to this policy.", "id": "Documentation", "properties": { "content": { @@ -3859,7 +3859,7 @@ }, "authInfo": { "$ref": "BasicAuthentication", - "description": "The authentication information. Optional when creating an HTTP check; defaults to empty." + "description": "The authentication information. Optional when creating an HTTP check; defaults to empty. Do not set both auth_method and auth_info." }, "body": { "description": "The request body associated with the HTTP POST request. If content_type is URL_ENCODED, the body passed in must be URL-encoded. Users can provide a Content-Length header via the headers field or the API will do so. If the request_method is GET and body is not empty, the API will return an error. The maximum byte size is 1 megabyte.Note: If client libraries aren't used (which performs the conversion automatically) base64 encode your body data since the field is of bytes type.", @@ -3922,6 +3922,10 @@ ], "type": "string" }, + "serviceAgentAuthentication": { + "$ref": "ServiceAgentAuthentication", + "description": "If specified, Uptime will generate and attach an OIDC JWT token for the Monitoring service agent service account as an Authorization header in the HTTP request when probing." + }, "useSsl": { "description": "If true, use HTTPS instead of HTTP to run the check.", "type": "boolean" @@ -5367,7 +5371,7 @@ "description": "Type used for Istio services scoped to an Istio mesh." }, "name": { - "description": "Resource name for this Service. The format is: projects/[PROJECT_ID_OR_NUMBER]/services/[SERVICE_ID] ", + "description": "Identifier. Resource name for this Service. The format is: projects/[PROJECT_ID_OR_NUMBER]/services/[SERVICE_ID] ", "type": "string" }, "telemetry": { @@ -5384,6 +5388,25 @@ }, "type": "object" }, + "ServiceAgentAuthentication": { + "description": "Contains information needed for generating an OpenID Connect token (https://developers.google.com/identity/protocols/OpenIDConnect). The OIDC token will be generated for the Monitoring service agent service account.", + "id": "ServiceAgentAuthentication", + "properties": { + "type": { + "description": "Type of authentication.", + "enum": [ + "SERVICE_AGENT_AUTHENTICATION_TYPE_UNSPECIFIED", + "OIDC_TOKEN" + ], + "enumDescriptions": [ + "Default value, will result in OIDC Authentication.", + "OIDC Authentication" + ], + "type": "string" + } + }, + "type": "object" + }, "ServiceLevelIndicator": { "description": "A Service-Level Indicator (SLI) describes the \"performance\" of a service. For some services, the SLI is well-defined. In such cases, the SLI can be described easily by referencing the well-known SLI and providing the needed parameters. Alternatively, a \"custom\" SLI can be defined with a query to the underlying metric store. An SLI is defined to be good_service / total_service over any queried time interval. The value of performance always falls into the range 0 <= performance <= 1. A custom SLI describes how to compute this ratio, whether this is by dividing values from a pair of time series, cutting a Distribution into good and bad counts, or counting time windows in which the service complies with a criterion. For separation of concerns, a single Service-Level Indicator measures performance for only one aspect of service quality, such as fraction of successful queries or fast-enough queries.", "id": "ServiceLevelIndicator", @@ -5441,7 +5464,7 @@ "type": "number" }, "name": { - "description": "Resource name for this ServiceLevelObjective. The format is: projects/[PROJECT_ID_OR_NUMBER]/services/[SERVICE_ID]/serviceLevelObjectives/[SLO_NAME] ", + "description": "Identifier. Resource name for this ServiceLevelObjective. The format is: projects/[PROJECT_ID_OR_NUMBER]/services/[SERVICE_ID]/serviceLevelObjectives/[SLO_NAME] ", "type": "string" }, "rollingPeriod": { diff --git a/etc/api/mybusinessaccountmanagement/v1/mybusinessaccountmanagement-api.json b/etc/api/mybusinessaccountmanagement/v1/mybusinessaccountmanagement-api.json index b75b0df9c3..104032db2f 100644 --- a/etc/api/mybusinessaccountmanagement/v1/mybusinessaccountmanagement-api.json +++ b/etc/api/mybusinessaccountmanagement/v1/mybusinessaccountmanagement-api.json @@ -530,7 +530,7 @@ } } }, - "revision": "20240304", + "revision": "20240417", "rootUrl": "https://mybusinessaccountmanagement.googleapis.com/", "schemas": { "AcceptInvitationRequest": { diff --git a/etc/api/mybusinessbusinessinformation/v1/mybusinessbusinessinformation-api.json b/etc/api/mybusinessbusinessinformation/v1/mybusinessbusinessinformation-api.json index b83cd062ab..4181c88137 100644 --- a/etc/api/mybusinessbusinessinformation/v1/mybusinessbusinessinformation-api.json +++ b/etc/api/mybusinessbusinessinformation/v1/mybusinessbusinessinformation-api.json @@ -612,7 +612,7 @@ } } }, - "revision": "20240304", + "revision": "20240417", "rootUrl": "https://mybusinessbusinessinformation.googleapis.com/", "schemas": { "AdWordsLocationExtensions": { diff --git a/etc/api/mybusinesslodging/v1/mybusinesslodging-api.json b/etc/api/mybusinesslodging/v1/mybusinesslodging-api.json index 0d7d628a6a..ee74a11622 100644 --- a/etc/api/mybusinesslodging/v1/mybusinesslodging-api.json +++ b/etc/api/mybusinesslodging/v1/mybusinesslodging-api.json @@ -194,7 +194,7 @@ } } }, - "revision": "20240304", + "revision": "20240417", "rootUrl": "https://mybusinesslodging.googleapis.com/", "schemas": { "Accessibility": { diff --git a/etc/api/mybusinessnotifications/v1/mybusinessnotifications-api.json b/etc/api/mybusinessnotifications/v1/mybusinessnotifications-api.json index 494925c699..7eaa077496 100644 --- a/etc/api/mybusinessnotifications/v1/mybusinessnotifications-api.json +++ b/etc/api/mybusinessnotifications/v1/mybusinessnotifications-api.json @@ -154,7 +154,7 @@ } } }, - "revision": "20240304", + "revision": "20240417", "rootUrl": "https://mybusinessnotifications.googleapis.com/", "schemas": { "NotificationSetting": { diff --git a/etc/api/mybusinessplaceactions/v1/mybusinessplaceactions-api.json b/etc/api/mybusinessplaceactions/v1/mybusinessplaceactions-api.json index 0517f679a9..8181542f52 100644 --- a/etc/api/mybusinessplaceactions/v1/mybusinessplaceactions-api.json +++ b/etc/api/mybusinessplaceactions/v1/mybusinessplaceactions-api.json @@ -281,7 +281,7 @@ } } }, - "revision": "20240304", + "revision": "20240417", "rootUrl": "https://mybusinessplaceactions.googleapis.com/", "schemas": { "Empty": { diff --git a/etc/api/mybusinessqanda/v1/mybusinessqanda-api.json b/etc/api/mybusinessqanda/v1/mybusinessqanda-api.json index c4a2862553..1e1e65aee4 100644 --- a/etc/api/mybusinessqanda/v1/mybusinessqanda-api.json +++ b/etc/api/mybusinessqanda/v1/mybusinessqanda-api.json @@ -323,7 +323,7 @@ } } }, - "revision": "20240304", + "revision": "20240417", "rootUrl": "https://mybusinessqanda.googleapis.com/", "schemas": { "Answer": { diff --git a/etc/api/mybusinessverifications/v1/mybusinessverifications-api.json b/etc/api/mybusinessverifications/v1/mybusinessverifications-api.json index e3ea42dfa0..818b6835a3 100644 --- a/etc/api/mybusinessverifications/v1/mybusinessverifications-api.json +++ b/etc/api/mybusinessverifications/v1/mybusinessverifications-api.json @@ -237,7 +237,7 @@ } } }, - "revision": "20240304", + "revision": "20240417", "rootUrl": "https://mybusinessverifications.googleapis.com/", "schemas": { "AddressVerificationData": { diff --git a/etc/api/networkconnectivity/v1/networkconnectivity-api.json b/etc/api/networkconnectivity/v1/networkconnectivity-api.json index ab1012803a..2006a13c77 100644 --- a/etc/api/networkconnectivity/v1/networkconnectivity-api.json +++ b/etc/api/networkconnectivity/v1/networkconnectivity-api.json @@ -2630,7 +2630,7 @@ } } }, - "revision": "20240221", + "revision": "20240313", "rootUrl": "https://networkconnectivity.googleapis.com/", "schemas": { "AcceptHubSpokeRequest": { @@ -4086,7 +4086,7 @@ "type": "object" }, "location": { - "description": "Output only. The location of the route. Uses the following form: \"projects/{project}/locations/{location}\" Example: projects/1234/locations/us-central1", + "description": "Output only. The origin location of the route. Uses the following form: \"projects/{project}/locations/{location}\" Example: projects/1234/locations/us-central1", "readOnly": true, "type": "string" }, diff --git a/etc/api/networkconnectivity/v1alpha1/networkconnectivity-api.json b/etc/api/networkconnectivity/v1alpha1/networkconnectivity-api.json index 7a05dd902d..ad2259bf66 100644 --- a/etc/api/networkconnectivity/v1alpha1/networkconnectivity-api.json +++ b/etc/api/networkconnectivity/v1alpha1/networkconnectivity-api.json @@ -1116,7 +1116,7 @@ } } }, - "revision": "20240221", + "revision": "20240313", "rootUrl": "https://networkconnectivity.googleapis.com/", "schemas": { "AuditConfig": { diff --git a/etc/api/networkmanagement/v1/networkmanagement-api.json b/etc/api/networkmanagement/v1/networkmanagement-api.json index b7ef0855d1..1d565e851f 100644 --- a/etc/api/networkmanagement/v1/networkmanagement-api.json +++ b/etc/api/networkmanagement/v1/networkmanagement-api.json @@ -342,7 +342,7 @@ ] }, "patch": { - "description": "Updates the configuration of an existing `ConnectivityTest`. After you update a test, the reachability analysis is performed as part of the long running operation, which completes when the analysis completes. The Reachability state in the test resource is updated with the new result. If the endpoint specifications in `ConnectivityTest` are invalid (for example, they contain non-existent resources in the network, or the user does not have read permissions to the network configurations of listed projects), then the reachability result returns a value of UNKNOWN. If the endpoint specifications in `ConnectivityTest` are incomplete, the reachability result returns a value of `AMBIGUOUS`. See the documentation in `ConnectivityTest` for for more details.", + "description": "Updates the configuration of an existing `ConnectivityTest`. After you update a test, the reachability analysis is performed as part of the long running operation, which completes when the analysis completes. The Reachability state in the test resource is updated with the new result. If the endpoint specifications in `ConnectivityTest` are invalid (for example, they contain non-existent resources in the network, or the user does not have read permissions to the network configurations of listed projects), then the reachability result returns a value of UNKNOWN. If the endpoint specifications in `ConnectivityTest` are incomplete, the reachability result returns a value of `AMBIGUOUS`. See the documentation in `ConnectivityTest` for more details.", "flatPath": "v1/projects/{projectsId}/locations/global/connectivityTests/{connectivityTestsId}", "httpMethod": "PATCH", "id": "networkmanagement.projects.locations.global.connectivityTests.patch", @@ -591,7 +591,7 @@ } } }, - "revision": "20240221", + "revision": "20240410", "rootUrl": "https://networkmanagement.googleapis.com/", "schemas": { "AbortInfo": { @@ -630,7 +630,9 @@ "GOOGLE_MANAGED_SERVICE_AMBIGUOUS_PSC_ENDPOINT", "SOURCE_PSC_CLOUD_SQL_UNSUPPORTED", "SOURCE_FORWARDING_RULE_UNSUPPORTED", - "NON_ROUTABLE_IP_ADDRESS" + "NON_ROUTABLE_IP_ADDRESS", + "UNKNOWN_ISSUE_IN_GOOGLE_MANAGED_PROJECT", + "UNSUPPORTED_GOOGLE_MANAGED_PROJECT_CONFIG" ], "enumDeprecated": [ false, @@ -662,6 +664,8 @@ false, false, false, + false, + false, false ], "enumDescriptions": [ @@ -694,7 +698,9 @@ "Aborted because a PSC endpoint selection for the Google-managed service is ambiguous (several PSC endpoints satisfy test input).", "Aborted because tests with a PSC-based Cloud SQL instance as a source are not supported.", "Aborted because tests with a forwarding rule as a source are not supported.", - "Aborted because one of the endpoints is a non-routable IP address (loopback, link-local, etc)." + "Aborted because one of the endpoints is a non-routable IP address (loopback, link-local, etc).", + "Aborted due to an unknown issue in the Google-managed project.", + "Aborted due to an unsupported configuration of the Google-managed project." ], "type": "string" }, @@ -930,6 +936,10 @@ "description": "A Connectivity Test for a network reachability analysis.", "id": "ConnectivityTest", "properties": { + "bypassFirewallChecks": { + "description": "Whether the test should skip firewall checking. If not provided, we assume false.", + "type": "boolean" + }, "createTime": { "description": "Output only. The time the test was created.", "format": "google-datetime", @@ -1105,13 +1115,15 @@ "PSC_ENDPOINT_ACCESSED_FROM_PEERED_NETWORK", "PSC_NEG_PRODUCER_ENDPOINT_NO_GLOBAL_ACCESS", "PSC_NEG_PRODUCER_FORWARDING_RULE_MULTIPLE_PORTS", + "CLOUD_SQL_PSC_NEG_UNSUPPORTED", "NO_NAT_SUBNETS_FOR_PSC_SERVICE_ATTACHMENT", "HYBRID_NEG_NON_DYNAMIC_ROUTE_MATCHED", "HYBRID_NEG_NON_LOCAL_DYNAMIC_ROUTE_MATCHED", "CLOUD_RUN_REVISION_NOT_READY", "DROPPED_INSIDE_PSC_SERVICE_PRODUCER", "LOAD_BALANCER_HAS_NO_PROXY_SUBNET", - "CLOUD_NAT_NO_ADDRESSES" + "CLOUD_NAT_NO_ADDRESSES", + "ROUTING_LOOP" ], "enumDescriptions": [ "Cause is unspecified.", @@ -1123,7 +1135,7 @@ "Packet is sent to a wrong (unintended) network. Example: you trace a packet from VM1:Network1 to VM2:Network2, however, the route configured in Network1 sends the packet destined for VM2's IP address to Network3.", "Route's next hop IP address cannot be resolved to a GCP resource.", "Route's next hop resource is not found.", - "Route's next hop instance doesn't hace a NIC in the route's network.", + "Route's next hop instance doesn't have a NIC in the route's network.", "Route's next hop IP address is not a primary IP address of the next hop instance.", "Route's next hop forwarding rule doesn't match next hop IP address.", "Route's next hop VPN tunnel is down (does not have valid IKE SAs).", @@ -1165,13 +1177,15 @@ "The packet is sent to the Private Service Connect endpoint over the peering, but [it's not supported](https://cloud.google.com/vpc/docs/configure-private-service-connect-services#on-premises).", "The packet is sent to the Private Service Connect backend (network endpoint group), but the producer PSC forwarding rule does not have global access enabled.", "The packet is sent to the Private Service Connect backend (network endpoint group), but the producer PSC forwarding rule has multiple ports specified.", + "The packet is sent to the Private Service Connect backend (network endpoint group) targeting a Cloud SQL service attachment, but this configuration is not supported.", "No NAT subnets are defined for the PSC service attachment.", "The packet sent from the hybrid NEG proxy matches a non-dynamic route, but such a configuration is not supported.", "The packet sent from the hybrid NEG proxy matches a dynamic route with a next hop in a different region, but such a configuration is not supported.", "Packet sent from a Cloud Run revision that is not ready.", "Packet was dropped inside Private Service Connect service producer.", "Packet sent to a load balancer, which requires a proxy-only subnet and the subnet is not found.", - "Packet sent to Cloud Nat without active NAT IPs." + "Packet sent to Cloud Nat without active NAT IPs.", + "Packet is stuck in a routing loop." ], "type": "string" }, diff --git a/etc/api/networkmanagement/v1beta1/networkmanagement-api.json b/etc/api/networkmanagement/v1beta1/networkmanagement-api.json index 38b075991d..87c4c2787c 100644 --- a/etc/api/networkmanagement/v1beta1/networkmanagement-api.json +++ b/etc/api/networkmanagement/v1beta1/networkmanagement-api.json @@ -342,7 +342,7 @@ ] }, "patch": { - "description": "Updates the configuration of an existing `ConnectivityTest`. After you update a test, the reachability analysis is performed as part of the long running operation, which completes when the analysis completes. The Reachability state in the test resource is updated with the new result. If the endpoint specifications in `ConnectivityTest` are invalid (for example, they contain non-existent resources in the network, or the user does not have read permissions to the network configurations of listed projects), then the reachability result returns a value of UNKNOWN. If the endpoint specifications in `ConnectivityTest` are incomplete, the reachability result returns a value of `AMBIGUOUS`. See the documentation in `ConnectivityTest` for for more details.", + "description": "Updates the configuration of an existing `ConnectivityTest`. After you update a test, the reachability analysis is performed as part of the long running operation, which completes when the analysis completes. The Reachability state in the test resource is updated with the new result. If the endpoint specifications in `ConnectivityTest` are invalid (for example, they contain non-existent resources in the network, or the user does not have read permissions to the network configurations of listed projects), then the reachability result returns a value of UNKNOWN. If the endpoint specifications in `ConnectivityTest` are incomplete, the reachability result returns a value of `AMBIGUOUS`. See the documentation in `ConnectivityTest` for more details.", "flatPath": "v1beta1/projects/{projectsId}/locations/global/connectivityTests/{connectivityTestsId}", "httpMethod": "PATCH", "id": "networkmanagement.projects.locations.global.connectivityTests.patch", @@ -585,13 +585,180 @@ } } } + }, + "vpcFlowLogsConfigs": { + "methods": { + "create": { + "description": "Creates a new VPC Flow Logs configuration. If a configuration with the exact same settings already exists, the creation fails.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/vpcFlowLogsConfigs", + "httpMethod": "POST", + "id": "networkmanagement.projects.locations.vpcFlowLogsConfigs.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent resource of the VPC Flow Logs configuration to create: `projects/{project_id}/locations/global`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + }, + "vpcFlowLogsConfigId": { + "description": "Required. ID of the VpcFlowLogsConfig.", + "location": "query", + "type": "string" + } + }, + "path": "v1beta1/{+parent}/vpcFlowLogsConfigs", + "request": { + "$ref": "VpcFlowLogsConfig" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a specific VpcFlowLog configuration.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/vpcFlowLogsConfigs/{vpcFlowLogsConfigsId}", + "httpMethod": "DELETE", + "id": "networkmanagement.projects.locations.vpcFlowLogsConfigs.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. VpcFlowLogsConfig name using the form: `projects/{project_id}/locations/global/vpcFlowLogsConfigs/{vpc_flow_logs_config}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/vpcFlowLogsConfigs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets the details of a specific VPC Flow Log configuration.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/vpcFlowLogsConfigs/{vpcFlowLogsConfigsId}", + "httpMethod": "GET", + "id": "networkmanagement.projects.locations.vpcFlowLogsConfigs.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. `VpcFlowLog` resource name using the form: `projects/{project_id}/locations/global/vpcFlowLogsConfigs/{vpc_flow_logs_config}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/vpcFlowLogsConfigs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "response": { + "$ref": "VpcFlowLogsConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists all VPC Flow Logs configurations in a given project.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/vpcFlowLogsConfigs", + "httpMethod": "GET", + "id": "networkmanagement.projects.locations.vpcFlowLogsConfigs.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. Lists the `VpcFlowLogsConfig`s that match the filter expression. A filter expression filters the resources listed in the response. The expression must be of the form ` ` where operators: `<`, `>`, `<=`, `>=`, `!=`, `=`, `:` are supported (colon `:` represents a HAS operator which is roughly synonymous with equality). can refer to a proto or JSON field, or a synthetic field. Field names can be camelCase or snake_case. Examples: - Filter by name: name = \"projects/proj-1/locations/global/vpcFlowLogsConfigs/config-1 - Filter by target resource: - Configurations at the VPC network level target_resource.network:* - Configurations for a VPC network called `vpc-1` target_resource.network = vpc-1", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Optional. Field to use to sort the list.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. Number of `VpcFlowLogsConfig`s to return.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. Page token from an earlier query, as returned in `next_page_token`.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent resource of the VpcFlowLogsConfig: `projects/{project_id}/locations/global`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta1/{+parent}/vpcFlowLogsConfigs", + "response": { + "$ref": "ListVpcFlowLogsConfigsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates an existing VpcFlowLogsConfig. If a configuration with the exact same settings already exists, the creation fails.", + "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/vpcFlowLogsConfigs/{vpcFlowLogsConfigsId}", + "httpMethod": "PATCH", + "id": "networkmanagement.projects.locations.vpcFlowLogsConfigs.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Identifier. Unique name of the configuration using the form: `projects/{project_id}/locations/global/vpcFlowLogs/{vpc_flow_log}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/vpcFlowLogsConfigs/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. Mask of fields to update. At least one path must be supplied in this field.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1beta1/{+name}", + "request": { + "$ref": "VpcFlowLogsConfig" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } } } } } } }, - "revision": "20240221", + "revision": "20240410", "rootUrl": "https://networkmanagement.googleapis.com/", "schemas": { "AbortInfo": { @@ -630,7 +797,9 @@ "GOOGLE_MANAGED_SERVICE_AMBIGUOUS_PSC_ENDPOINT", "SOURCE_PSC_CLOUD_SQL_UNSUPPORTED", "SOURCE_FORWARDING_RULE_UNSUPPORTED", - "NON_ROUTABLE_IP_ADDRESS" + "NON_ROUTABLE_IP_ADDRESS", + "UNKNOWN_ISSUE_IN_GOOGLE_MANAGED_PROJECT", + "UNSUPPORTED_GOOGLE_MANAGED_PROJECT_CONFIG" ], "enumDeprecated": [ false, @@ -662,6 +831,8 @@ false, false, false, + false, + false, false ], "enumDescriptions": [ @@ -694,7 +865,9 @@ "Aborted because a PSC endpoint selection for the Google-managed service is ambiguous (several PSC endpoints satisfy test input).", "Aborted because tests with a PSC-based Cloud SQL instance as a source are not supported.", "Aborted because tests with a forwarding rule as a source are not supported.", - "Aborted because one of the endpoints is a non-routable IP address (loopback, link-local, etc)." + "Aborted because one of the endpoints is a non-routable IP address (loopback, link-local, etc).", + "Aborted due to an unknown issue in the Google-managed project.", + "Aborted due to an unsupported configuration of the Google-managed project." ], "type": "string" }, @@ -884,11 +1057,6 @@ "description": "Location in which this revision is deployed.", "type": "string" }, - "serviceName": { - "deprecated": true, - "description": "ID of Cloud Run Service this revision belongs to.", - "type": "string" - }, "serviceUri": { "description": "URI of Cloud Run service this revision belongs to.", "type": "string" @@ -935,6 +1103,10 @@ "description": "A Connectivity Test for a network reachability analysis.", "id": "ConnectivityTest", "properties": { + "bypassFirewallChecks": { + "description": "Whether the test should skip firewall checking. If not provided, we assume false.", + "type": "boolean" + }, "createTime": { "description": "Output only. The time the test was created.", "format": "google-datetime", @@ -1110,13 +1282,15 @@ "PSC_ENDPOINT_ACCESSED_FROM_PEERED_NETWORK", "PSC_NEG_PRODUCER_ENDPOINT_NO_GLOBAL_ACCESS", "PSC_NEG_PRODUCER_FORWARDING_RULE_MULTIPLE_PORTS", + "CLOUD_SQL_PSC_NEG_UNSUPPORTED", "NO_NAT_SUBNETS_FOR_PSC_SERVICE_ATTACHMENT", "HYBRID_NEG_NON_DYNAMIC_ROUTE_MATCHED", "HYBRID_NEG_NON_LOCAL_DYNAMIC_ROUTE_MATCHED", "CLOUD_RUN_REVISION_NOT_READY", "DROPPED_INSIDE_PSC_SERVICE_PRODUCER", "LOAD_BALANCER_HAS_NO_PROXY_SUBNET", - "CLOUD_NAT_NO_ADDRESSES" + "CLOUD_NAT_NO_ADDRESSES", + "ROUTING_LOOP" ], "enumDescriptions": [ "Cause is unspecified.", @@ -1128,7 +1302,7 @@ "Packet is sent to a wrong (unintended) network. Example: you trace a packet from VM1:Network1 to VM2:Network2, however, the route configured in Network1 sends the packet destined for VM2's IP address to Network3.", "Route's next hop IP address cannot be resolved to a GCP resource.", "Route's next hop resource is not found.", - "Route's next hop instance doesn't hace a NIC in the route's network.", + "Route's next hop instance doesn't have a NIC in the route's network.", "Route's next hop IP address is not a primary IP address of the next hop instance.", "Route's next hop forwarding rule doesn't match next hop IP address.", "Route's next hop VPN tunnel is down (does not have valid IKE SAs).", @@ -1170,13 +1344,15 @@ "The packet is sent to the Private Service Connect endpoint over the peering, but [it's not supported](https://cloud.google.com/vpc/docs/configure-private-service-connect-services#on-premises).", "The packet is sent to the Private Service Connect backend (network endpoint group), but the producer PSC forwarding rule does not have global access enabled.", "The packet is sent to the Private Service Connect backend (network endpoint group), but the producer PSC forwarding rule has multiple ports specified.", + "The packet is sent to the Private Service Connect backend (network endpoint group) targeting a Cloud SQL service attachment, but this configuration is not supported.", "No NAT subnets are defined for the PSC service attachment.", "The packet sent from the hybrid NEG proxy matches a non-dynamic route, but such a configuration is not supported.", "The packet sent from the hybrid NEG proxy matches a dynamic route with a next hop in a different region, but such a configuration is not supported.", "Packet sent from a Cloud Run revision that is not ready.", "Packet was dropped inside Private Service Connect service producer.", "Packet sent to a load balancer, which requires a proxy-only subnet and the subnet is not found.", - "Packet sent to Cloud Nat without active NAT IPs." + "Packet sent to Cloud Nat without active NAT IPs.", + "Packet is stuck in a routing loop." ], "type": "string" }, @@ -1758,6 +1934,31 @@ }, "type": "object" }, + "ListVpcFlowLogsConfigsResponse": { + "description": "Response for the `ListVpcFlowLogsConfigs` method.", + "id": "ListVpcFlowLogsConfigsResponse", + "properties": { + "nextPageToken": { + "description": "Page token to fetch the next set of configurations.", + "type": "string" + }, + "unreachable": { + "description": "Locations that could not be reached (when querying all locations with `-`).", + "items": { + "type": "string" + }, + "type": "array" + }, + "vpcFlowLogsConfigs": { + "description": "List of VPC Flow Log configurations.", + "items": { + "$ref": "VpcFlowLogsConfig" + }, + "type": "array" + } + }, + "type": "object" + }, "LoadBalancerBackend": { "description": "For display only. Metadata associated with a specific load balancer backend.", "id": "LoadBalancerBackend", @@ -2814,6 +3015,117 @@ }, "type": "object" }, + "VpcFlowLogsConfig": { + "description": "A configuration to generate VPC Flow Logs.", + "id": "VpcFlowLogsConfig", + "properties": { + "aggregationInterval": { + "description": "Optional. The aggregation interval for the logs. Default value is INTERVAL_5_SEC.", + "enum": [ + "AGGREGATION_INTERVAL_UNSPECIFIED", + "INTERVAL_5_SEC", + "INTERVAL_30_SEC", + "INTERVAL_1_MIN", + "INTERVAL_5_MIN", + "INTERVAL_10_MIN", + "INTERVAL_15_MIN" + ], + "enumDescriptions": [ + "If not specified, will default to INTERVAL_5_SEC.", + "Aggregate logs in 5s intervals.", + "Aggregate logs in 30s intervals.", + "Aggregate logs in 1m intervals.", + "Aggregate logs in 5m intervals.", + "Aggregate logs in 10m intervals.", + "Aggregate logs in 15m intervals." + ], + "type": "string" + }, + "createTime": { + "description": "Output only. The time the config was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "Optional. The user-supplied description of the VPC Flow Logs configuration. Maximum of 512 characters.", + "type": "string" + }, + "filterExpr": { + "description": "Export filter used to define which VPC flow logs should be logged.", + "type": "string" + }, + "flowSampling": { + "description": "Optional. The value of the field must be in [0, 1]. The sampling rate of VPC flow logs within the subnetwork where 1.0 means all collected logs are reported and 0.0 means no logs are reported. Default value is 1.0.", + "format": "float", + "type": "number" + }, + "interconnectAttachment": { + "description": "Traffic will be logged from the Interconnect Attachment. Format: projects/{project_id}/locations/{region}/interconnectAttachments/{name}", + "type": "string" + }, + "metadata": { + "description": "Optional. Configures whether all, none or a subset of metadata fields should be added to the reported VPC flow logs. Default value is INCLUDE_ALL_METADATA.", + "enum": [ + "METADATA_UNSPECIFIED", + "INCLUDE_ALL_METADATA", + "EXCLUDE_ALL_METADATA", + "CUSTOM_METADATA" + ], + "enumDescriptions": [ + "If not specified, will default to INCLUDE_ALL_METADATA.", + "Include all metadata fields.", + "Exclude all metadata fields.", + "Include only custom fields (specified in metadata_fields)." + ], + "type": "string" + }, + "metadataFields": { + "description": "Optional. Custom metadata fields to include in the reported VPC flow logs. Can only be specified if \"metadata\" was set to CUSTOM_METADATA.", + "items": { + "type": "string" + }, + "type": "array" + }, + "name": { + "description": "Identifier. Unique name of the configuration using the form: `projects/{project_id}/locations/global/vpcFlowLogs/{vpc_flow_log}`", + "type": "string" + }, + "network": { + "description": "Traffic will be logged from VMs, VPN tunnels and Interconnect Attachments within the network. Format: projects/{project_id}/networks/{name}", + "type": "string" + }, + "state": { + "description": "Optional. The state of the VPC Flow Log. Default value is ENABLED.", + "enum": [ + "STATE_UNSPECIFIED", + "ENABLED", + "DISABLED" + ], + "enumDescriptions": [ + "If not specified, will default to ENABLED.", + "When ENABLED, this configuration will generate logs.", + "When DISABLED, this configuration will not generate logs." + ], + "type": "string" + }, + "subnet": { + "description": "Traffic will be logged from VMs within the subnetwork. Format: projects/{project_id}/locations/{region}/subnetworks/{name}", + "type": "string" + }, + "updateTime": { + "description": "Output only. The time the config was updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "vpnTunnel": { + "description": "Traffic will be logged from the VPN Tunnel. Format: projects/{project_id}/locations/{region}/vpnTunnels/{name}", + "type": "string" + } + }, + "type": "object" + }, "VpnGatewayInfo": { "description": "For display only. Metadata associated with a Compute Engine VPN gateway.", "id": "VpnGatewayInfo", diff --git a/etc/api/networksecurity/v1/networksecurity-api.json b/etc/api/networksecurity/v1/networksecurity-api.json index 98a207cca7..e81353a97b 100644 --- a/etc/api/networksecurity/v1/networksecurity-api.json +++ b/etc/api/networksecurity/v1/networksecurity-api.json @@ -401,6 +401,188 @@ } } }, + "firewallEndpoints": { + "methods": { + "create": { + "description": "Creates a new FirewallEndpoint in a given project and location.", + "flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/firewallEndpoints", + "httpMethod": "POST", + "id": "networksecurity.organizations.locations.firewallEndpoints.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "firewallEndpointId": { + "description": "Required. Id of the requesting object. If auto-generating Id server-side, remove this field and firewall_endpoint_id from the method_signature of Create RPC.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Value for parent.", + "location": "path", + "pattern": "^organizations/[^/]+/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": "v1/{+parent}/firewallEndpoints", + "request": { + "$ref": "FirewallEndpoint" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a single Endpoint.", + "flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/firewallEndpoints/{firewallEndpointsId}", + "httpMethod": "DELETE", + "id": "networksecurity.organizations.locations.firewallEndpoints.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the resource", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/firewallEndpoints/[^/]+$", + "required": true, + "type": "string" + }, + "requestId": { + "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets details of a single Endpoint.", + "flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/firewallEndpoints/{firewallEndpointsId}", + "httpMethod": "GET", + "id": "networksecurity.organizations.locations.firewallEndpoints.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the resource", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/firewallEndpoints/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "FirewallEndpoint" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists FirewallEndpoints in a given project and location.", + "flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/firewallEndpoints", + "httpMethod": "GET", + "id": "networksecurity.organizations.locations.firewallEndpoints.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. Filtering results", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "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": "A token identifying a page of results the server should return.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Parent value for ListEndpointsRequest", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/firewallEndpoints", + "response": { + "$ref": "ListFirewallEndpointsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Update a single Endpoint.", + "flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/firewallEndpoints/{firewallEndpointsId}", + "httpMethod": "PATCH", + "id": "networksecurity.organizations.locations.firewallEndpoints.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Immutable. Identifier. name of resource", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/firewallEndpoints/[^/]+$", + "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 Endpoint resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "FirewallEndpoint" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "operations": { "methods": { "cancel": { @@ -523,6 +705,330 @@ ] } } + }, + "securityProfileGroups": { + "methods": { + "create": { + "description": "Creates a new SecurityProfileGroup in a given organization and location.", + "flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/securityProfileGroups", + "httpMethod": "POST", + "id": "networksecurity.organizations.locations.securityProfileGroups.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent resource of the SecurityProfileGroup. Must be in the format `projects|organizations/*/locations/{location}`.", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + }, + "securityProfileGroupId": { + "description": "Required. Short name of the SecurityProfileGroup resource to be created. This value should be 1-63 characters long, containing only letters, numbers, hyphens, and underscores, and should not start with a number. E.g. \"security_profile_group1\".", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+parent}/securityProfileGroups", + "request": { + "$ref": "SecurityProfileGroup" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a single SecurityProfileGroup.", + "flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/securityProfileGroups/{securityProfileGroupsId}", + "httpMethod": "DELETE", + "id": "networksecurity.organizations.locations.securityProfileGroups.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "etag": { + "description": "Optional. If client provided etag is out of date, delete will return FAILED_PRECONDITION error.", + "location": "query", + "type": "string" + }, + "name": { + "description": "Required. A name of the SecurityProfileGroup to delete. Must be in the format `projects|organizations/*/locations/{location}/securityProfileGroups/{security_profile_group}`.", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/securityProfileGroups/[^/]+$", + "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 SecurityProfileGroup.", + "flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/securityProfileGroups/{securityProfileGroupsId}", + "httpMethod": "GET", + "id": "networksecurity.organizations.locations.securityProfileGroups.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the SecurityProfileGroup to get. Must be in the format `projects|organizations/*/locations/{location}/securityProfileGroups/{security_profile_group}`.", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/securityProfileGroups/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "SecurityProfileGroup" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists SecurityProfileGroups in a given organization and location.", + "flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/securityProfileGroups", + "httpMethod": "GET", + "id": "networksecurity.organizations.locations.securityProfileGroups.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Maximum number of SecurityProfileGroups to return per call.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The value returned by the last `ListSecurityProfileGroupsResponse` Indicates that this is a continuation of a prior `ListSecurityProfileGroups` call, and that the system should return the next page of data.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The project or organization and location from which the SecurityProfileGroups should be listed, specified in the format `projects|organizations/*/locations/{location}`.", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/securityProfileGroups", + "response": { + "$ref": "ListSecurityProfileGroupsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates the parameters of a single SecurityProfileGroup.", + "flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/securityProfileGroups/{securityProfileGroupsId}", + "httpMethod": "PATCH", + "id": "networksecurity.organizations.locations.securityProfileGroups.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Immutable. Identifier. Name of the SecurityProfileGroup resource. It matches pattern `projects|organizations/*/locations/{location}/securityProfileGroups/{security_profile_group}`.", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/securityProfileGroups/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. Field mask is used to specify the fields to be overwritten in the SecurityProfileGroup 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.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "SecurityProfileGroup" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "securityProfiles": { + "methods": { + "create": { + "description": "Creates a new SecurityProfile in a given organization and location.", + "flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/securityProfiles", + "httpMethod": "POST", + "id": "networksecurity.organizations.locations.securityProfiles.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent resource of the SecurityProfile. Must be in the format `projects|organizations/*/locations/{location}`.", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + }, + "securityProfileId": { + "description": "Required. Short name of the SecurityProfile resource to be created. This value should be 1-63 characters long, containing only letters, numbers, hyphens, and underscores, and should not start with a number. E.g. \"security_profile1\".", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+parent}/securityProfiles", + "request": { + "$ref": "SecurityProfile" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a single SecurityProfile.", + "flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/securityProfiles/{securityProfilesId}", + "httpMethod": "DELETE", + "id": "networksecurity.organizations.locations.securityProfiles.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "etag": { + "description": "Optional. If client provided etag is out of date, delete will return FAILED_PRECONDITION error.", + "location": "query", + "type": "string" + }, + "name": { + "description": "Required. A name of the SecurityProfile to delete. Must be in the format `projects|organizations/*/locations/{location}/securityProfiles/{security_profile_id}`.", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/securityProfiles/[^/]+$", + "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 SecurityProfile.", + "flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/securityProfiles/{securityProfilesId}", + "httpMethod": "GET", + "id": "networksecurity.organizations.locations.securityProfiles.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the SecurityProfile to get. Must be in the format `projects|organizations/*/locations/{location}/securityProfiles/{security_profile_id}`.", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/securityProfiles/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "SecurityProfile" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists SecurityProfiles in a given organization and location.", + "flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/securityProfiles", + "httpMethod": "GET", + "id": "networksecurity.organizations.locations.securityProfiles.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Maximum number of SecurityProfiles to return per call.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The value returned by the last `ListSecurityProfilesResponse` Indicates that this is a continuation of a prior `ListSecurityProfiles` call, and that the system should return the next page of data.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The project or organization and location from which the SecurityProfiles should be listed, specified in the format `projects|organizations/*/locations/{location}`.", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/securityProfiles", + "response": { + "$ref": "ListSecurityProfilesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates the parameters of a single SecurityProfile.", + "flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/securityProfiles/{securityProfilesId}", + "httpMethod": "PATCH", + "id": "networksecurity.organizations.locations.securityProfiles.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Immutable. Identifier. Name of the SecurityProfile resource. It matches pattern `projects|organizations/*/locations/{location}/securityProfiles/{security_profile}`.", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/securityProfiles/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. Field mask is used to specify the fields to be overwritten in the SecurityProfile 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.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "SecurityProfile" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } } } } @@ -1467,6 +1973,188 @@ } } }, + "firewallEndpointAssociations": { + "methods": { + "create": { + "description": "Creates a new FirewallEndpointAssociation in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/firewallEndpointAssociations", + "httpMethod": "POST", + "id": "networksecurity.projects.locations.firewallEndpointAssociations.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "firewallEndpointAssociationId": { + "description": "Optional. Id of the requesting object. If auto-generating Id server-side, remove this field and firewall_endpoint_association_id from the method_signature of Create RPC.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Value for parent.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + }, + "requestId": { + "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+parent}/firewallEndpointAssociations", + "request": { + "$ref": "FirewallEndpointAssociation" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a single FirewallEndpointAssociation.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/firewallEndpointAssociations/{firewallEndpointAssociationsId}", + "httpMethod": "DELETE", + "id": "networksecurity.projects.locations.firewallEndpointAssociations.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the resource", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/firewallEndpointAssociations/[^/]+$", + "required": true, + "type": "string" + }, + "requestId": { + "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets details of a single FirewallEndpointAssociation.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/firewallEndpointAssociations/{firewallEndpointAssociationsId}", + "httpMethod": "GET", + "id": "networksecurity.projects.locations.firewallEndpointAssociations.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the resource", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/firewallEndpointAssociations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "FirewallEndpointAssociation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists Associations in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/firewallEndpointAssociations", + "httpMethod": "GET", + "id": "networksecurity.projects.locations.firewallEndpointAssociations.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. Filtering results", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "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": "A token identifying a page of results the server should return.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Parent value for ListAssociationsRequest", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/firewallEndpointAssociations", + "response": { + "$ref": "ListFirewallEndpointAssociationsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Update a single FirewallEndpointAssociation.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/firewallEndpointAssociations/{firewallEndpointAssociationsId}", + "httpMethod": "PATCH", + "id": "networksecurity.projects.locations.firewallEndpointAssociations.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Immutable. Identifier. name of resource", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/firewallEndpointAssociations/[^/]+$", + "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 Association resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "FirewallEndpointAssociation" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "gatewaySecurityPolicies": { "methods": { "create": { @@ -2474,7 +3162,7 @@ } } }, - "revision": "20240221", + "revision": "20240313", "rootUrl": "https://networksecurity.googleapis.com/", "schemas": { "AddAddressGroupItemsRequest": { @@ -2758,6 +3446,172 @@ }, "type": "object" }, + "FirewallEndpoint": { + "description": "Message describing Endpoint object", + "id": "FirewallEndpoint", + "properties": { + "associatedNetworks": { + "deprecated": true, + "description": "Output only. List of networks that are associated with this endpoint in the local zone. This is a projection of the FirewallEndpointAssociations pointing at this endpoint. A network will only appear in this list after traffic routing is fully configured. Format: projects/{project}/global/networks/{name}.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "associations": { + "description": "Output only. List of FirewallEndpointAssociations that are associated to this endpoint. An association will only appear in this list after traffic routing is fully configured.", + "items": { + "$ref": "FirewallEndpointAssociationReference" + }, + "readOnly": true, + "type": "array" + }, + "billingProjectId": { + "description": "Required. Project to bill on endpoint uptime usage.", + "type": "string" + }, + "createTime": { + "description": "Output only. Create time stamp", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "Optional. Description of the firewall endpoint. Max length 2048 characters.", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Labels as key value pairs", + "type": "object" + }, + "name": { + "description": "Immutable. Identifier. name of resource", + "type": "string" + }, + "reconciling": { + "description": "Output only. Whether reconciling is in progress, recommended per https://google.aip.dev/128.", + "readOnly": true, + "type": "boolean" + }, + "state": { + "description": "Output only. Current state of the endpoint.", + "enum": [ + "STATE_UNSPECIFIED", + "CREATING", + "ACTIVE", + "DELETING", + "INACTIVE" + ], + "enumDescriptions": [ + "Not set.", + "Being created.", + "Processing configuration updates.", + "Being deleted.", + "Down or in an error state." + ], + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. Update time stamp", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "FirewallEndpointAssociation": { + "description": "Message describing Association object", + "id": "FirewallEndpointAssociation", + "properties": { + "createTime": { + "description": "Output only. Create time stamp", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "disabled": { + "description": "Optional. Whether the association is disabled. True indicates that traffic won't be intercepted", + "type": "boolean" + }, + "firewallEndpoint": { + "description": "Required. The URL of the FirewallEndpoint that is being associated.", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Labels as key value pairs", + "type": "object" + }, + "name": { + "description": "Immutable. Identifier. name of resource", + "type": "string" + }, + "network": { + "description": "Required. The URL of the network that is being associated.", + "type": "string" + }, + "reconciling": { + "description": "Output only. Whether reconciling is in progress, recommended per https://google.aip.dev/128.", + "readOnly": true, + "type": "boolean" + }, + "state": { + "description": "Output only. Current state of the association.", + "enum": [ + "STATE_UNSPECIFIED", + "CREATING", + "ACTIVE", + "DELETING", + "INACTIVE" + ], + "enumDescriptions": [ + "Not set.", + "Being created.", + "Active and ready for traffic.", + "Being deleted.", + "Down or in an error state." + ], + "readOnly": true, + "type": "string" + }, + "tlsInspectionPolicy": { + "description": "Optional. The URL of the TlsInspectionPolicy that is being associated.", + "type": "string" + }, + "updateTime": { + "description": "Output only. Update time stamp", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "FirewallEndpointAssociationReference": { + "description": "This is a subset of the FirewallEndpointAssociation message, containing fields to be used by the consumer.", + "id": "FirewallEndpointAssociationReference", + "properties": { + "name": { + "description": "Output only. The resource name of the FirewallEndpointAssociation. Format: projects/{project}/locations/{location}/firewallEndpointAssociations/{id}", + "readOnly": true, + "type": "string" + }, + "network": { + "description": "Output only. The VPC network associated. Format: projects/{project}/global/networks/{name}.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "GatewaySecurityPolicy": { "description": "The GatewaySecurityPolicy resource contains a collection of GatewaySecurityPolicyRules and associated metadata.", "id": "GatewaySecurityPolicy", @@ -3129,6 +3983,56 @@ }, "type": "object" }, + "ListFirewallEndpointAssociationsResponse": { + "description": "Message for response to listing Associations", + "id": "ListFirewallEndpointAssociationsResponse", + "properties": { + "firewallEndpointAssociations": { + "description": "The list of Association", + "items": { + "$ref": "FirewallEndpointAssociation" + }, + "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" + }, + "ListFirewallEndpointsResponse": { + "description": "Message for response to listing Endpoints", + "id": "ListFirewallEndpointsResponse", + "properties": { + "firewallEndpoints": { + "description": "The list of Endpoint", + "items": { + "$ref": "FirewallEndpoint" + }, + "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" + }, "ListGatewaySecurityPoliciesResponse": { "description": "Response returned by the ListGatewaySecurityPolicies method.", "id": "ListGatewaySecurityPoliciesResponse", @@ -3215,6 +4119,42 @@ }, "type": "object" }, + "ListSecurityProfileGroupsResponse": { + "description": "Response returned by the ListSecurityProfileGroups method.", + "id": "ListSecurityProfileGroupsResponse", + "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" + }, + "securityProfileGroups": { + "description": "List of SecurityProfileGroups resources.", + "items": { + "$ref": "SecurityProfileGroup" + }, + "type": "array" + } + }, + "type": "object" + }, + "ListSecurityProfilesResponse": { + "description": "Response returned by the ListSecurityProfiles method.", + "id": "ListSecurityProfilesResponse", + "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" + }, + "securityProfiles": { + "description": "List of SecurityProfile resources.", + "items": { + "$ref": "SecurityProfile" + }, + "type": "array" + } + }, + "type": "object" + }, "ListServerTlsPoliciesResponse": { "description": "Response returned by the ListServerTlsPolicies method.", "id": "ListServerTlsPoliciesResponse", @@ -3467,6 +4407,104 @@ }, "type": "object" }, + "SecurityProfile": { + "description": "SecurityProfile is a resource that defines the behavior for one of many ProfileTypes. Next ID: 9", + "id": "SecurityProfile", + "properties": { + "createTime": { + "description": "Output only. Resource creation timestamp.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "Optional. An optional description of the profile. Max length 512 characters.", + "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.", + "readOnly": true, + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Labels as key value pairs.", + "type": "object" + }, + "name": { + "description": "Immutable. Identifier. Name of the SecurityProfile resource. It matches pattern `projects|organizations/*/locations/{location}/securityProfiles/{security_profile}`.", + "type": "string" + }, + "threatPreventionProfile": { + "$ref": "ThreatPreventionProfile", + "description": "The threat prevention configuration for the SecurityProfile." + }, + "type": { + "description": "Immutable. The single ProfileType that the SecurityProfile resource configures.", + "enum": [ + "PROFILE_TYPE_UNSPECIFIED", + "THREAT_PREVENTION" + ], + "enumDescriptions": [ + "Profile type not specified.", + "Profile type for threat prevention." + ], + "type": "string" + }, + "updateTime": { + "description": "Output only. Last resource update timestamp.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "SecurityProfileGroup": { + "description": "SecurityProfileGroup is a resource that defines the behavior for various ProfileTypes. Next ID: 8", + "id": "SecurityProfileGroup", + "properties": { + "createTime": { + "description": "Output only. Resource creation timestamp.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "Optional. An optional description of the profile group. Max length 2048 characters.", + "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.", + "readOnly": true, + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Labels as key value pairs.", + "type": "object" + }, + "name": { + "description": "Immutable. Identifier. Name of the SecurityProfileGroup resource. It matches pattern `projects|organizations/*/locations/{location}/securityProfileGroups/{security_profile_group}`.", + "type": "string" + }, + "threatPreventionProfile": { + "description": "Optional. Reference to a SecurityProfile with the threat prevention configuration for the SecurityProfileGroup.", + "type": "string" + }, + "updateTime": { + "description": "Output only. Last resource update timestamp.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "ServerTlsPolicy": { "description": "ServerTlsPolicy is a resource that specifies how a server should authenticate incoming requests. This resource itself does not affect configuration unless it is attached to a target HTTPS proxy or endpoint config selector resource. ServerTlsPolicy in the form accepted by external HTTPS load balancers can be attached only to TargetHttpsProxy with an `EXTERNAL` or `EXTERNAL_MANAGED` load balancing scheme. Traffic Director compatible ServerTlsPolicies can be attached to EndpointPolicy and TargetHttpsProxy with Traffic Director `INTERNAL_SELF_MANAGED` load balancing scheme.", "id": "ServerTlsPolicy", @@ -3513,6 +4551,51 @@ }, "type": "object" }, + "SeverityOverride": { + "description": "Defines what action to take for a specific severity match.", + "id": "SeverityOverride", + "properties": { + "action": { + "description": "Required. Threat action override.", + "enum": [ + "THREAT_ACTION_UNSPECIFIED", + "DEFAULT_ACTION", + "ALLOW", + "ALERT", + "DENY" + ], + "enumDescriptions": [ + "Threat action not specified.", + "The default action (as specified by the vendor) is taken.", + "The packet matching this rule will be allowed to transmit.", + "The packet matching this rule will be allowed to transmit, but a threat_log entry will be sent to the consumer project.", + "The packet matching this rule will be dropped, and a threat_log entry will be sent to the consumer project." + ], + "type": "string" + }, + "severity": { + "description": "Required. Severity level to match.", + "enum": [ + "SEVERITY_UNSPECIFIED", + "INFORMATIONAL", + "LOW", + "MEDIUM", + "HIGH", + "CRITICAL" + ], + "enumDescriptions": [ + "Severity level not specified.", + "Suspicious events that do not pose an immediate threat, but that are reported to call attention to deeper problems that could possibly exist.", + "Warning-level threats that have very little impact on an organization's infrastructure. They usually require local or physical system access and may often result in victim privacy issues and information leakage.", + "Minor threats in which impact is minimized, that do not compromise the target or exploits that require an attacker to reside on the same local network as the victim, affect only non-standard configurations or obscure applications, or provide very limited access.", + "Threats that have the ability to become critical but have mitigating factors; for example, they may be difficult to exploit, do not result in elevated privileges, or do not have a large victim pool.", + "Serious threats, such as those that affect default installations of widely deployed software, result in root compromise of servers, and the exploit code is widely available to attackers. The attacker usually does not need any special authentication credentials or knowledge about the individual victims and the target does not need to be manipulated into performing any special functions." + ], + "type": "string" + } + }, + "type": "object" + }, "Source": { "description": "Specification of traffic source attributes.", "id": "Source", @@ -3561,6 +4644,77 @@ }, "type": "object" }, + "ThreatOverride": { + "description": "Defines what action to take for a specific threat_id match.", + "id": "ThreatOverride", + "properties": { + "action": { + "description": "Required. Threat action override. For some threat types, only a subset of actions applies.", + "enum": [ + "THREAT_ACTION_UNSPECIFIED", + "DEFAULT_ACTION", + "ALLOW", + "ALERT", + "DENY" + ], + "enumDescriptions": [ + "Threat action not specified.", + "The default action (as specified by the vendor) is taken.", + "The packet matching this rule will be allowed to transmit.", + "The packet matching this rule will be allowed to transmit, but a threat_log entry will be sent to the consumer project.", + "The packet matching this rule will be dropped, and a threat_log entry will be sent to the consumer project." + ], + "type": "string" + }, + "threatId": { + "description": "Required. Vendor-specific ID of a threat to override.", + "type": "string" + }, + "type": { + "description": "Output only. Type of the threat (read only).", + "enum": [ + "THREAT_TYPE_UNSPECIFIED", + "UNKNOWN", + "VULNERABILITY", + "ANTIVIRUS", + "SPYWARE", + "DNS" + ], + "enumDescriptions": [ + "Type of threat not specified.", + "Type of threat is not derivable from threat ID. An override will be created for all types. Firewall will ignore overridden signature ID's that don't exist in the specific type.", + "Threats related to system flaws that an attacker might otherwise attempt to exploit.", + "Threats related to viruses and malware found in executables and file types.", + "Threats related to command-and-control (C2) activity, where spyware on an infected client is collecting data without the user's consent and/or communicating with a remote attacker.", + "Threats related to DNS." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "ThreatPreventionProfile": { + "description": "ThreatPreventionProfile defines an action for specific threat signatures or severity levels.", + "id": "ThreatPreventionProfile", + "properties": { + "severityOverrides": { + "description": "Optional. Configuration for overriding threats actions by severity match.", + "items": { + "$ref": "SeverityOverride" + }, + "type": "array" + }, + "threatOverrides": { + "description": "Optional. Configuration for overriding threats actions by threat_id match. If a threat is matched both by configuration provided in severity_overrides and threat_overrides, the threat_overrides action is applied.", + "items": { + "$ref": "ThreatOverride" + }, + "type": "array" + } + }, + "type": "object" + }, "TlsInspectionPolicy": { "description": "The TlsInspectionPolicy resource contains references to CA pools in Certificate Authority Service and associated metadata.", "id": "TlsInspectionPolicy", diff --git a/etc/api/networksecurity/v1beta1/networksecurity-api.json b/etc/api/networksecurity/v1beta1/networksecurity-api.json index c69cf121b4..e8db5605f2 100644 --- a/etc/api/networksecurity/v1beta1/networksecurity-api.json +++ b/etc/api/networksecurity/v1beta1/networksecurity-api.json @@ -3162,7 +3162,7 @@ } } }, - "revision": "20240221", + "revision": "20240320", "rootUrl": "https://networksecurity.googleapis.com/", "schemas": { "AddAddressGroupItemsRequest": { @@ -3535,6 +3535,10 @@ "readOnly": true, "type": "string" }, + "disabled": { + "description": "Optional. Whether the association is disabled. True indicates that traffic won't be intercepted", + "type": "boolean" + }, "firewallEndpoint": { "description": "Required. The URL of the FirewallEndpoint that is being associated.", "type": "string" diff --git a/etc/api/networkservices/v1/networkservices-api.json b/etc/api/networkservices/v1/networkservices-api.json index 7e5ec3dcd5..f581563e64 100644 --- a/etc/api/networkservices/v1/networkservices-api.json +++ b/etc/api/networkservices/v1/networkservices-api.json @@ -1415,7 +1415,7 @@ "type": "string" }, "updateMask": { - "description": "Required. Used to specify the fields to be overwritten in the `LbRouteExtension` resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field is overwritten if it is in the mask. If the user does not specify a mask, then all fields are overwritten.", + "description": "Optional. Used to specify the fields to be overwritten in the `LbRouteExtension` resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field is overwritten if it is in the mask. If the user does not specify a mask, then all fields are overwritten.", "format": "google-fieldmask", "location": "query", "type": "string" @@ -1597,7 +1597,7 @@ "type": "string" }, "updateMask": { - "description": "Required. Used to specify the fields to be overwritten in the `LbTrafficExtension` resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field is overwritten if it is in the mask. If the user does not specify a mask, then all fields are overwritten.", + "description": "Optional. Used to specify the fields to be overwritten in the `LbTrafficExtension` resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field is overwritten if it is in the mask. If the user does not specify a mask, then all fields are overwritten.", "format": "google-fieldmask", "location": "query", "type": "string" @@ -2756,7 +2756,7 @@ } } }, - "revision": "20240224", + "revision": "20240410", "rootUrl": "https://networkservices.googleapis.com/", "schemas": { "AuditConfig": { @@ -3073,7 +3073,7 @@ "id": "ExtensionChainMatchCondition", "properties": { "celExpression": { - "description": "Required. A Common Expression Language (CEL) expression that is used to match requests for which the extension chain is executed. For more information, see [CEL matcher language reference](/service-extensions/docs/cel-matcher-language-reference).", + "description": "Required. A Common Expression Language (CEL) expression that is used to match requests for which the extension chain is executed. For more information, see [CEL matcher language reference](https://cloud.google.com/service-extensions/docs/cel-matcher-language-reference).", "type": "string" } }, @@ -4091,7 +4091,7 @@ "additionalProperties": { "type": "string" }, - "description": "Optional. Set of labels associated with the `LbRouteExtension` resource. The format must comply with [the requirements for labels](/compute/docs/labeling-resources#requirements) for Google Cloud resources.", + "description": "Optional. Set of labels associated with the `LbRouteExtension` resource. The format must comply with [the requirements for labels](https://cloud.google.com/compute/docs/labeling-resources#requirements) for Google Cloud resources.", "type": "object" }, "loadBalancingScheme": { @@ -4153,7 +4153,7 @@ "additionalProperties": { "type": "string" }, - "description": "Optional. Set of labels associated with the `LbTrafficExtension` resource. The format must comply with [the requirements for labels](/compute/docs/labeling-resources#requirements) for Google Cloud resources.", + "description": "Optional. Set of labels associated with the `LbTrafficExtension` resource. The format must comply with [the requirements for labels](https://cloud.google.com/compute/docs/labeling-resources#requirements) for Google Cloud resources.", "type": "object" }, "loadBalancingScheme": { @@ -5076,7 +5076,7 @@ "type": "array" }, "sniHost": { - "description": "Optional. SNI (server name indicator) to match against. SNI will be matched against all wildcard domains, i.e. `www.example.com` will be first matched against `www.example.com`, then `*.example.com`, then `*.com.` Partial wildcards are not supported, and values like *w.example.com are invalid. At least one of sni_host and alpn is required. Up to 5 sni hosts across all matches can be set.", + "description": "Optional. SNI (server name indicator) to match against. SNI will be matched against all wildcard domains, i.e. `www.example.com` will be first matched against `www.example.com`, then `*.example.com`, then `*.com.` Partial wildcards are not supported, and values like *w.example.com are invalid. At least one of sni_host and alpn is required. Up to 100 sni hosts across all matches can be set.", "items": { "type": "string" }, diff --git a/etc/api/networkservices/v1beta1/networkservices-api.json b/etc/api/networkservices/v1beta1/networkservices-api.json index e8a0e15a80..8784af2e1b 100644 --- a/etc/api/networkservices/v1beta1/networkservices-api.json +++ b/etc/api/networkservices/v1beta1/networkservices-api.json @@ -1142,7 +1142,7 @@ "type": "string" }, "updateMask": { - "description": "Required. Used to specify the fields to be overwritten in the `LbRouteExtension` resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field is overwritten if it is in the mask. If the user does not specify a mask, then all fields are overwritten.", + "description": "Optional. Used to specify the fields to be overwritten in the `LbRouteExtension` resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field is overwritten if it is in the mask. If the user does not specify a mask, then all fields are overwritten.", "format": "google-fieldmask", "location": "query", "type": "string" @@ -1324,7 +1324,7 @@ "type": "string" }, "updateMask": { - "description": "Required. Used to specify the fields to be overwritten in the `LbTrafficExtension` resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field is overwritten if it is in the mask. If the user does not specify a mask, then all fields are overwritten.", + "description": "Optional. Used to specify the fields to be overwritten in the `LbTrafficExtension` resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field is overwritten if it is in the mask. If the user does not specify a mask, then all fields are overwritten.", "format": "google-fieldmask", "location": "query", "type": "string" @@ -2483,7 +2483,7 @@ } } }, - "revision": "20240224", + "revision": "20240410", "rootUrl": "https://networkservices.googleapis.com/", "schemas": { "AuditConfig": { @@ -2757,7 +2757,7 @@ "id": "ExtensionChainMatchCondition", "properties": { "celExpression": { - "description": "Required. A Common Expression Language (CEL) expression that is used to match requests for which the extension chain is executed. For more information, see [CEL matcher language reference](/service-extensions/docs/cel-matcher-language-reference).", + "description": "Required. A Common Expression Language (CEL) expression that is used to match requests for which the extension chain is executed. For more information, see [CEL matcher language reference](https://cloud.google.com/service-extensions/docs/cel-matcher-language-reference).", "type": "string" } }, @@ -3775,7 +3775,7 @@ "additionalProperties": { "type": "string" }, - "description": "Optional. Set of labels associated with the `LbRouteExtension` resource. The format must comply with [the requirements for labels](/compute/docs/labeling-resources#requirements) for Google Cloud resources.", + "description": "Optional. Set of labels associated with the `LbRouteExtension` resource. The format must comply with [the requirements for labels](https://cloud.google.com/compute/docs/labeling-resources#requirements) for Google Cloud resources.", "type": "object" }, "loadBalancingScheme": { @@ -3837,7 +3837,7 @@ "additionalProperties": { "type": "string" }, - "description": "Optional. Set of labels associated with the `LbTrafficExtension` resource. The format must comply with [the requirements for labels](/compute/docs/labeling-resources#requirements) for Google Cloud resources.", + "description": "Optional. Set of labels associated with the `LbTrafficExtension` resource. The format must comply with [the requirements for labels](https://cloud.google.com/compute/docs/labeling-resources#requirements) for Google Cloud resources.", "type": "object" }, "loadBalancingScheme": { @@ -4803,7 +4803,7 @@ "type": "array" }, "sniHost": { - "description": "Optional. SNI (server name indicator) to match against. SNI will be matched against all wildcard domains, i.e. `www.example.com` will be first matched against `www.example.com`, then `*.example.com`, then `*.com.` Partial wildcards are not supported, and values like *w.example.com are invalid. At least one of sni_host and alpn is required. Up to 5 sni hosts across all matches can be set.", + "description": "Optional. SNI (server name indicator) to match against. SNI will be matched against all wildcard domains, i.e. `www.example.com` will be first matched against `www.example.com`, then `*.example.com`, then `*.com.` Partial wildcards are not supported, and values like *w.example.com are invalid. At least one of sni_host and alpn is required. Up to 100 sni hosts across all matches can be set.", "items": { "type": "string" }, diff --git a/etc/api/notebooks/v1/notebooks-api.json b/etc/api/notebooks/v1/notebooks-api.json index c0ffb518aa..1bbe65e997 100644 --- a/etc/api/notebooks/v1/notebooks-api.json +++ b/etc/api/notebooks/v1/notebooks-api.json @@ -2008,7 +2008,7 @@ } } }, - "revision": "20231227", + "revision": "20240320", "rootUrl": "https://notebooks.googleapis.com/", "schemas": { "AcceleratorConfig": { @@ -2031,6 +2031,7 @@ "NVIDIA_TESLA_T4", "NVIDIA_TESLA_A100", "NVIDIA_L4", + "NVIDIA_A100_80GB", "NVIDIA_TESLA_T4_VWS", "NVIDIA_TESLA_P100_VWS", "NVIDIA_TESLA_P4_VWS", @@ -2046,6 +2047,7 @@ "Accelerator type is Nvidia Tesla T4.", "Accelerator type is Nvidia Tesla A100.", "Accelerator type is Nvidia Tesla L4.", + "Accelerator type is Nvidia Tesla A100 80GB.", "Accelerator type is NVIDIA Tesla T4 Virtual Workstations.", "Accelerator type is NVIDIA Tesla P100 Virtual Workstations.", "Accelerator type is NVIDIA Tesla P4 Virtual Workstations.", @@ -2073,7 +2075,7 @@ "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "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" } }, @@ -2707,7 +2709,7 @@ "additionalProperties": { "type": "string" }, - "description": "Custom metadata to apply to this instance. For example, to specify a Cloud Storage bucket for automatic backup, you can use the `gcs-data-bucket` metadata tag. Format: `\"--metadata=gcs-data-bucket=``BUCKET''\"`.", + "description": "Custom metadata to apply to this instance. For example, to specify a Cloud Storage bucket for automatic backup, you can use the `gcs-data-bucket` metadata tag. Format: `\"--metadata=gcs-data-bucket=BUCKET\"`.", "type": "object" }, "migrated": { @@ -4052,6 +4054,7 @@ "NVIDIA_TESLA_T4", "NVIDIA_TESLA_A100", "NVIDIA_L4", + "NVIDIA_A100_80GB", "NVIDIA_TESLA_T4_VWS", "NVIDIA_TESLA_P100_VWS", "NVIDIA_TESLA_P4_VWS", @@ -4067,6 +4070,7 @@ "Accelerator type is Nvidia Tesla T4.", "Accelerator type is Nvidia Tesla A100.", "Accelerator type is Nvidia Tesla L4.", + "Accelerator type is Nvidia Tesla A100 80GB.", "Accelerator type is NVIDIA Tesla T4 Virtual Workstations.", "Accelerator type is NVIDIA Tesla P100 Virtual Workstations.", "Accelerator type is NVIDIA Tesla P4 Virtual Workstations.", diff --git a/etc/api/ondemandscanning/v1/ondemandscanning-api.json b/etc/api/ondemandscanning/v1/ondemandscanning-api.json index 4aa9a08605..13b449d59d 100644 --- a/etc/api/ondemandscanning/v1/ondemandscanning-api.json +++ b/etc/api/ondemandscanning/v1/ondemandscanning-api.json @@ -339,7 +339,7 @@ } } }, - "revision": "20240226", + "revision": "20240415", "rootUrl": "https://ondemandscanning.googleapis.com/", "schemas": { "AliasContext": { diff --git a/etc/api/ondemandscanning/v1beta1/ondemandscanning-api.json b/etc/api/ondemandscanning/v1beta1/ondemandscanning-api.json index 247ce1dbeb..ec8b6b83ef 100644 --- a/etc/api/ondemandscanning/v1beta1/ondemandscanning-api.json +++ b/etc/api/ondemandscanning/v1beta1/ondemandscanning-api.json @@ -339,7 +339,7 @@ } } }, - "revision": "20240226", + "revision": "20240415", "rootUrl": "https://ondemandscanning.googleapis.com/", "schemas": { "AliasContext": { diff --git a/etc/api/orgpolicy/v2/orgpolicy-api.json b/etc/api/orgpolicy/v2/orgpolicy-api.json index c0f907e856..e23569d9c6 100644 --- a/etc/api/orgpolicy/v2/orgpolicy-api.json +++ b/etc/api/orgpolicy/v2/orgpolicy-api.json @@ -930,7 +930,7 @@ } } }, - "revision": "20240226", + "revision": "20240325", "rootUrl": "https://orgpolicy.googleapis.com/", "schemas": { "GoogleCloudOrgpolicyV2AlternatePolicySpec": { @@ -970,6 +970,10 @@ ], "type": "string" }, + "customConstraint": { + "$ref": "GoogleCloudOrgpolicyV2ConstraintGoogleDefinedCustomConstraint", + "description": "Defines this constraint as being a CustomConstraint." + }, "description": { "description": "Detailed description of what this constraint controls as well as how and where it is enforced. Mutable.", "type": "string" @@ -999,6 +1003,57 @@ "properties": {}, "type": "object" }, + "GoogleCloudOrgpolicyV2ConstraintGoogleDefinedCustomConstraint": { + "description": "A Google defined custom constraint. This represents a subset of fields missing from Constraint proto that are required to describe CustomConstraint", + "id": "GoogleCloudOrgpolicyV2ConstraintGoogleDefinedCustomConstraint", + "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" + }, + "methodTypes": { + "description": "All the operations being applied for this constraint.", + "items": { + "enum": [ + "METHOD_TYPE_UNSPECIFIED", + "CREATE", + "UPDATE", + "DELETE" + ], + "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." + ], + "type": "string" + }, + "type": "array" + }, + "resourceTypes": { + "description": "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" + } + }, + "type": "object" + }, "GoogleCloudOrgpolicyV2ConstraintListConstraint": { "description": "A constraint that allows or disallows a list of string values, which are configured by an Organization Policy administrator with a policy.", "id": "GoogleCloudOrgpolicyV2ConstraintListConstraint", diff --git a/etc/api/osconfig/v1/osconfig-api.json b/etc/api/osconfig/v1/osconfig-api.json index f6e0929f1b..7f00169002 100644 --- a/etc/api/osconfig/v1/osconfig-api.json +++ b/etc/api/osconfig/v1/osconfig-api.json @@ -109,6 +109,69 @@ "resources": { "locations": { "resources": { + "global": { + "methods": { + "getProjectFeatureSettings": { + "description": "GetProjectFeatureSettings returns the VM Manager feature settings for a project.", + "flatPath": "v1/projects/{projectsId}/locations/global/projectFeatureSettings", + "httpMethod": "GET", + "id": "osconfig.projects.locations.global.getProjectFeatureSettings", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name specifies the URL for the ProjectFeatureSettings resource: projects/project_id/locations/global/projectFeatureSettings.", + "location": "path", + "pattern": "^projects/[^/]+/locations/global/projectFeatureSettings$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "ProjectFeatureSettings" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "updateProjectFeatureSettings": { + "description": "UpdateProjectFeatureSettings sets the VM Manager features for a project.", + "flatPath": "v1/projects/{projectsId}/locations/global/projectFeatureSettings", + "httpMethod": "PATCH", + "id": "osconfig.projects.locations.global.updateProjectFeatureSettings", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Immutable. Name specifies the URL for the ProjectFeatureSettings resource: projects/project_id/locations/global/projectFeatureSettings.", + "location": "path", + "pattern": "^projects/[^/]+/locations/global/projectFeatureSettings$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Optional. Field mask that controls which fields of the ProjectFeatureSettings should be updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "ProjectFeatureSettings" + }, + "response": { + "$ref": "ProjectFeatureSettings" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "instances": { "resources": { "inventories": { @@ -1000,7 +1063,7 @@ } } }, - "revision": "20240304", + "revision": "20240415", "rootUrl": "https://osconfig.googleapis.com/", "schemas": { "AptSettings": { @@ -3293,6 +3356,31 @@ "properties": {}, "type": "object" }, + "ProjectFeatureSettings": { + "description": "ProjectFeatureSettings represents the VM Manager feature settings in a project. For more information, see Enable full VM Manager functionality.", + "id": "ProjectFeatureSettings", + "properties": { + "name": { + "description": "Required. Immutable. Name specifies the URL for the ProjectFeatureSettings resource: projects/project_id/locations/global/projectFeatureSettings.", + "type": "string" + }, + "patchAndConfigFeatureSet": { + "description": "Set PatchAndConfigFeatureSet for the project.", + "enum": [ + "PATCH_AND_CONFIG_FEATURE_SET_UNSPECIFIED", + "OSCONFIG_B", + "OSCONFIG_C" + ], + "enumDescriptions": [ + "Not specified placeholder", + "Enables only the basic set of VM Manager features in the project.", + "Enables all VM Manager features in the project." + ], + "type": "string" + } + }, + "type": "object" + }, "RecurringSchedule": { "description": "Sets the time for recurring patch deployments.", "id": "RecurringSchedule", diff --git a/etc/api/osconfig/v1alpha/osconfig-api.json b/etc/api/osconfig/v1alpha/osconfig-api.json index 700caf2adb..299caef26f 100644 --- a/etc/api/osconfig/v1alpha/osconfig-api.json +++ b/etc/api/osconfig/v1alpha/osconfig-api.json @@ -687,7 +687,7 @@ } } }, - "revision": "20240304", + "revision": "20240415", "rootUrl": "https://osconfig.googleapis.com/", "schemas": { "CVSSv3": { diff --git a/etc/api/osconfig/v1beta/osconfig-api.json b/etc/api/osconfig/v1beta/osconfig-api.json index a2931e5603..81477e78a0 100644 --- a/etc/api/osconfig/v1beta/osconfig-api.json +++ b/etc/api/osconfig/v1beta/osconfig-api.json @@ -689,7 +689,7 @@ } } }, - "revision": "20240304", + "revision": "20240415", "rootUrl": "https://osconfig.googleapis.com/", "schemas": { "AptRepository": { diff --git a/etc/api/oslogin/v1/oslogin-api.json b/etc/api/oslogin/v1/oslogin-api.json index 0e6ae91507..9b8975021d 100644 --- a/etc/api/oslogin/v1/oslogin-api.json +++ b/etc/api/oslogin/v1/oslogin-api.json @@ -349,7 +349,7 @@ } } }, - "revision": "20240225", + "revision": "20240414", "rootUrl": "https://oslogin.googleapis.com/", "schemas": { "Empty": { diff --git a/etc/api/oslogin/v1alpha/oslogin-api.json b/etc/api/oslogin/v1alpha/oslogin-api.json index bd56f1ee06..43760fe2bd 100644 --- a/etc/api/oslogin/v1alpha/oslogin-api.json +++ b/etc/api/oslogin/v1alpha/oslogin-api.json @@ -477,7 +477,7 @@ } } }, - "revision": "20240225", + "revision": "20240414", "rootUrl": "https://oslogin.googleapis.com/", "schemas": { "Empty": { diff --git a/etc/api/oslogin/v1beta/oslogin-api.json b/etc/api/oslogin/v1beta/oslogin-api.json index b8f1241692..37346c4778 100644 --- a/etc/api/oslogin/v1beta/oslogin-api.json +++ b/etc/api/oslogin/v1beta/oslogin-api.json @@ -447,7 +447,7 @@ } } }, - "revision": "20240225", + "revision": "20240414", "rootUrl": "https://oslogin.googleapis.com/", "schemas": { "Empty": { diff --git a/etc/api/pagespeedonline/v5/pagespeedonline-api.json b/etc/api/pagespeedonline/v5/pagespeedonline-api.json index 7b0d4a20fe..9d9b47fba0 100644 --- a/etc/api/pagespeedonline/v5/pagespeedonline-api.json +++ b/etc/api/pagespeedonline/v5/pagespeedonline-api.json @@ -193,7 +193,7 @@ } } }, - "revision": "20240229", + "revision": "20240418", "rootUrl": "https://pagespeedonline.googleapis.com/", "schemas": { "AuditRefs": { diff --git a/etc/api/paymentsresellersubscription/v1/paymentsresellersubscription-api.json b/etc/api/paymentsresellersubscription/v1/paymentsresellersubscription-api.json index 04e9b8aa2d..1d813eb327 100644 --- a/etc/api/paymentsresellersubscription/v1/paymentsresellersubscription-api.json +++ b/etc/api/paymentsresellersubscription/v1/paymentsresellersubscription-api.json @@ -435,7 +435,7 @@ } } }, - "revision": "20240303", + "revision": "20240418", "rootUrl": "https://paymentsresellersubscription.googleapis.com/", "schemas": { "GoogleCloudPaymentsResellerSubscriptionV1Amount": { @@ -1106,6 +1106,11 @@ }, "type": "array" }, + "purchaseTime": { + "description": "Optional. The timestamp when the user transaction was made with the Partner. Specify for the case of \"bundle with choice\", and it must be before the provision_time (when the user makes a selection).", + "format": "google-datetime", + "type": "string" + }, "redirectUri": { "description": "Output only. The place where partners should redirect the end-user to after creation. This field might also be populated when creation failed. However, Partners should always prepare a default URL to redirect the user in case this field is empty.", "readOnly": true, @@ -1231,7 +1236,7 @@ "type": "integer" }, "lineItemPromotionSpecs": { - "description": "Optional. The promotions applied on the line item. It can be: - a free trial promotion, which overrides the subscription-level free trial promotion. - an introductory pricing promotion. When used as input in Create or Provision API, specify its resource name only.", + "description": "Optional. The promotions applied on the line item. It can be: - an introductory pricing promotion. - a free trial promotion. This feature is not enabled. If used, the request will be rejected. When used as input in Create or Provision API, specify its resource name only.", "items": { "$ref": "GoogleCloudPaymentsResellerSubscriptionV1SubscriptionPromotionSpec" }, diff --git a/etc/api/people/v1/people-api.json b/etc/api/people/v1/people-api.json index b1919e615a..29780f6db7 100644 --- a/etc/api/people/v1/people-api.json +++ b/etc/api/people/v1/people-api.json @@ -429,13 +429,15 @@ "READ_SOURCE_TYPE_UNSPECIFIED", "READ_SOURCE_TYPE_PROFILE", "READ_SOURCE_TYPE_CONTACT", - "READ_SOURCE_TYPE_DOMAIN_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.DOMAIN_CONTACT.", + "Returns SourceType.OTHER_CONTACT." ], "location": "query", "repeated": true, @@ -565,13 +567,15 @@ "READ_SOURCE_TYPE_UNSPECIFIED", "READ_SOURCE_TYPE_PROFILE", "READ_SOURCE_TYPE_CONTACT", - "READ_SOURCE_TYPE_DOMAIN_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.DOMAIN_CONTACT.", + "Returns SourceType.OTHER_CONTACT." ], "location": "query", "repeated": true, @@ -642,13 +646,15 @@ "READ_SOURCE_TYPE_UNSPECIFIED", "READ_SOURCE_TYPE_PROFILE", "READ_SOURCE_TYPE_CONTACT", - "READ_SOURCE_TYPE_DOMAIN_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.DOMAIN_CONTACT.", + "Returns SourceType.OTHER_CONTACT." ], "location": "query", "repeated": true, @@ -697,13 +703,15 @@ "READ_SOURCE_TYPE_UNSPECIFIED", "READ_SOURCE_TYPE_PROFILE", "READ_SOURCE_TYPE_CONTACT", - "READ_SOURCE_TYPE_DOMAIN_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.DOMAIN_CONTACT.", + "Returns SourceType.OTHER_CONTACT." ], "location": "query", "repeated": true, @@ -716,6 +724,7 @@ }, "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", @@ -759,13 +768,15 @@ "READ_SOURCE_TYPE_UNSPECIFIED", "READ_SOURCE_TYPE_PROFILE", "READ_SOURCE_TYPE_CONTACT", - "READ_SOURCE_TYPE_DOMAIN_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.DOMAIN_CONTACT.", + "Returns SourceType.OTHER_CONTACT." ], "location": "query", "repeated": true, @@ -778,6 +789,7 @@ }, "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", @@ -893,13 +905,15 @@ "READ_SOURCE_TYPE_UNSPECIFIED", "READ_SOURCE_TYPE_PROFILE", "READ_SOURCE_TYPE_CONTACT", - "READ_SOURCE_TYPE_DOMAIN_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.DOMAIN_CONTACT.", + "Returns SourceType.OTHER_CONTACT." ], "location": "query", "repeated": true, @@ -1011,13 +1025,15 @@ "READ_SOURCE_TYPE_UNSPECIFIED", "READ_SOURCE_TYPE_PROFILE", "READ_SOURCE_TYPE_CONTACT", - "READ_SOURCE_TYPE_DOMAIN_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.DOMAIN_CONTACT.", + "Returns SourceType.OTHER_CONTACT." ], "location": "query", "repeated": true, @@ -1140,13 +1156,15 @@ "READ_SOURCE_TYPE_UNSPECIFIED", "READ_SOURCE_TYPE_PROFILE", "READ_SOURCE_TYPE_CONTACT", - "READ_SOURCE_TYPE_DOMAIN_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.DOMAIN_CONTACT.", + "Returns SourceType.OTHER_CONTACT." ], "location": "query", "repeated": true, @@ -1172,7 +1190,7 @@ } } }, - "revision": "20240303", + "revision": "20240417", "rootUrl": "https://people.googleapis.com/", "schemas": { "Address": { @@ -1281,13 +1299,15 @@ "READ_SOURCE_TYPE_UNSPECIFIED", "READ_SOURCE_TYPE_PROFILE", "READ_SOURCE_TYPE_CONTACT", - "READ_SOURCE_TYPE_DOMAIN_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.DOMAIN_CONTACT.", + "Returns SourceType.OTHER_CONTACT." ], "type": "string" }, @@ -1361,13 +1381,15 @@ "READ_SOURCE_TYPE_UNSPECIFIED", "READ_SOURCE_TYPE_PROFILE", "READ_SOURCE_TYPE_CONTACT", - "READ_SOURCE_TYPE_DOMAIN_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.DOMAIN_CONTACT.", + "Returns SourceType.OTHER_CONTACT." ], "type": "string" }, @@ -1654,13 +1676,15 @@ "READ_SOURCE_TYPE_UNSPECIFIED", "READ_SOURCE_TYPE_PROFILE", "READ_SOURCE_TYPE_CONTACT", - "READ_SOURCE_TYPE_DOMAIN_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.DOMAIN_CONTACT.", + "Returns SourceType.OTHER_CONTACT." ], "type": "string" }, @@ -3210,13 +3234,15 @@ "READ_SOURCE_TYPE_UNSPECIFIED", "READ_SOURCE_TYPE_PROFILE", "READ_SOURCE_TYPE_CONTACT", - "READ_SOURCE_TYPE_DOMAIN_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.DOMAIN_CONTACT.", + "Returns SourceType.OTHER_CONTACT." ], "type": "string" }, diff --git a/etc/api/photoslibrary/v1/photoslibrary-api.json b/etc/api/photoslibrary/v1/photoslibrary-api.json index efd3a6de43..3bafacf3a1 100644 --- a/etc/api/photoslibrary/v1/photoslibrary-api.json +++ b/etc/api/photoslibrary/v1/photoslibrary-api.json @@ -641,7 +641,7 @@ } } }, - "revision": "20240223", + "revision": "20240410", "rootUrl": "https://photoslibrary.googleapis.com/", "schemas": { "AddEnrichmentToAlbumRequest": { diff --git a/etc/api/playcustomapp/v1/playcustomapp-api.json b/etc/api/playcustomapp/v1/playcustomapp-api.json index cfe376f594..883023fc67 100644 --- a/etc/api/playcustomapp/v1/playcustomapp-api.json +++ b/etc/api/playcustomapp/v1/playcustomapp-api.json @@ -158,7 +158,7 @@ } } }, - "revision": "20240304", + "revision": "20240418", "rootUrl": "https://playcustomapp.googleapis.com/", "schemas": { "CustomApp": { diff --git a/etc/api/playintegrity/v1/playintegrity-api.json b/etc/api/playintegrity/v1/playintegrity-api.json index 97a11d206b..43229e72e2 100644 --- a/etc/api/playintegrity/v1/playintegrity-api.json +++ b/etc/api/playintegrity/v1/playintegrity-api.json @@ -138,7 +138,7 @@ } } }, - "revision": "20240304", + "revision": "20240418", "rootUrl": "https://playintegrity.googleapis.com/", "schemas": { "AccountActivity": { @@ -304,7 +304,7 @@ "type": "object" }, "DeviceIntegrity": { - "description": "Contains the device attestation information.", + "description": "Contains the device attestation information. Next tag: 4", "id": "DeviceIntegrity", "properties": { "deviceRecognitionVerdict": { diff --git a/etc/api/policyanalyzer/v1/policyanalyzer-api.json b/etc/api/policyanalyzer/v1/policyanalyzer-api.json index 525b18a31e..3b76b9bb93 100644 --- a/etc/api/policyanalyzer/v1/policyanalyzer-api.json +++ b/etc/api/policyanalyzer/v1/policyanalyzer-api.json @@ -163,7 +163,7 @@ } } }, - "revision": "20240303", + "revision": "20240414", "rootUrl": "https://policyanalyzer.googleapis.com/", "schemas": { "GoogleCloudPolicyanalyzerV1Activity": { diff --git a/etc/api/policyanalyzer/v1beta1/policyanalyzer-api.json b/etc/api/policyanalyzer/v1beta1/policyanalyzer-api.json index d5f7d3f337..805ab6710c 100644 --- a/etc/api/policyanalyzer/v1beta1/policyanalyzer-api.json +++ b/etc/api/policyanalyzer/v1beta1/policyanalyzer-api.json @@ -163,7 +163,7 @@ } } }, - "revision": "20240303", + "revision": "20240414", "rootUrl": "https://policyanalyzer.googleapis.com/", "schemas": { "GoogleCloudPolicyanalyzerV1beta1Activity": { diff --git a/etc/api/policysimulator/v1/policysimulator-api.json b/etc/api/policysimulator/v1/policysimulator-api.json index 1c1a834f65..9ef3e563ea 100644 --- a/etc/api/policysimulator/v1/policysimulator-api.json +++ b/etc/api/policysimulator/v1/policysimulator-api.json @@ -942,7 +942,7 @@ } } }, - "revision": "20240303", + "revision": "20240414", "rootUrl": "https://policysimulator.googleapis.com/", "schemas": { "GoogleCloudOrgpolicyV2AlternatePolicySpec": { diff --git a/etc/api/policytroubleshooter/v1/policytroubleshooter-api.json b/etc/api/policytroubleshooter/v1/policytroubleshooter-api.json index 0f250caf50..fc6bde67dc 100644 --- a/etc/api/policytroubleshooter/v1/policytroubleshooter-api.json +++ b/etc/api/policytroubleshooter/v1/policytroubleshooter-api.json @@ -128,7 +128,7 @@ } } }, - "revision": "20240303", + "revision": "20240414", "rootUrl": "https://policytroubleshooter.googleapis.com/", "schemas": { "GoogleCloudPolicytroubleshooterV1AccessTuple": { diff --git a/etc/api/policytroubleshooter/v1beta/policytroubleshooter-api.json b/etc/api/policytroubleshooter/v1beta/policytroubleshooter-api.json index 467f311822..a8cb8b682f 100644 --- a/etc/api/policytroubleshooter/v1beta/policytroubleshooter-api.json +++ b/etc/api/policytroubleshooter/v1beta/policytroubleshooter-api.json @@ -128,7 +128,7 @@ } } }, - "revision": "20240303", + "revision": "20240414", "rootUrl": "https://policytroubleshooter.googleapis.com/", "schemas": { "GoogleCloudPolicytroubleshooterV1betaAccessTuple": { diff --git a/etc/api/privateca/v1/privateca-api.json b/etc/api/privateca/v1/privateca-api.json index 406a79de75..eed725c133 100644 --- a/etc/api/privateca/v1/privateca-api.json +++ b/etc/api/privateca/v1/privateca-api.json @@ -227,7 +227,7 @@ ], "parameters": { "ignoreDependentResources": { - "description": "Optional. This field allows this pool to be deleted even if it's being depended on by another resource. However, doing so may result in unintended and unrecoverable effects on any dependent resource(s) since the pool will no longer be able to issue certificates.", + "description": "Optional. This field allows this pool to be deleted even if it's being depended on by another resource. However, doing so may result in unintended and unrecoverable effects on any dependent resources since the pool will no longer be able to issue certificates.", "location": "query", "type": "boolean" }, @@ -253,7 +253,7 @@ ] }, "fetchCaCerts": { - "description": "FetchCaCerts returns the current trust anchor for the CaPool. This will include CA certificate chains for all Certificate Authorities in the ENABLED, DISABLED, or STAGED states.", + "description": "FetchCaCerts returns the current trust anchor for the CaPool. This will include CA certificate chains for all certificate authorities in the ENABLED, DISABLED, or STAGED states.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/caPools/{caPoolsId}:fetchCaCerts", "httpMethod": "POST", "id": "privateca.projects.locations.caPools.fetchCaCerts", @@ -562,7 +562,7 @@ "type": "boolean" }, "ignoreDependentResources": { - "description": "Optional. This field allows this ca to be deleted even if it's being depended on by another resource. However, doing so may result in unintended and unrecoverable effects on any dependent resource(s) since the CA will no longer be able to issue certificates.", + "description": "Optional. This field allows this CA to be deleted even if it's being depended on by another resource. However, doing so may result in unintended and unrecoverable effects on any dependent resources since the CA will no longer be able to issue certificates.", "location": "query", "type": "boolean" }, @@ -1605,7 +1605,7 @@ } } }, - "revision": "20240221", + "revision": "20240410", "rootUrl": "https://privateca.googleapis.com/", "schemas": { "AccessUrls": { @@ -2045,7 +2045,7 @@ }, "subjectKeyId": { "$ref": "CertificateConfigKeyId", - "description": "Optional. When specified this provides a custom SKI to be used in the certificate. This should only be used to maintain a SKI of an existing CA originally created outside CAS, which was not generated using method (1) described in RFC 5280 section 4.2.1.2." + "description": "Optional. When specified this provides a custom SKI to be used in the certificate. This should only be used to maintain a SKI of an existing CA originally created outside CA service, which was not generated using method (1) described in RFC 5280 section 4.2.1.2." }, "x509Config": { "$ref": "X509Parameters", @@ -2059,7 +2059,7 @@ "id": "CertificateConfigKeyId", "properties": { "keyId": { - "description": "Optional. The value of this KeyId encoded in lowercase hexadecimal. This is most likely the 160 bit SHA-1 hash of the public key.", + "description": "Required. The value of this KeyId encoded in lowercase hexadecimal. This is most likely the 160 bit SHA-1 hash of the public key.", "type": "string" } }, @@ -2280,7 +2280,7 @@ "type": "object" }, "maximumLifetime": { - "description": "Optional. The maximum lifetime allowed for issued Certificates that use this template. If the issuing CaPool's IssuancePolicy specifies a maximum_lifetime the minimum of the two durations will be the maximum lifetime for issued Certificates. Note that if the issuing CertificateAuthority expires before a Certificate's requested maximum_lifetime, the effective lifetime will be explicitly truncated to match it.", + "description": "Optional. The maximum lifetime allowed for issued Certificates that use this template. If the issuing CaPool resource's IssuancePolicy specifies a maximum_lifetime the minimum of the two durations will be the maximum lifetime for issued Certificates. Note that if the issuing CertificateAuthority expires before a Certificate's requested maximum_lifetime, the effective lifetime will be explicitly truncated to match it.", "format": "google-duration", "type": "string" }, @@ -2311,7 +2311,7 @@ "id": "DisableCertificateAuthorityRequest", "properties": { "ignoreDependentResources": { - "description": "Optional. This field allows this CA to be disabled even if it's being depended on by another resource. However, doing so may result in unintended and unrecoverable effects on any dependent resource(s) since the CA will no longer be able to issue certificates.", + "description": "Optional. This field allows this CA to be disabled even if it's being depended on by another resource. However, doing so may result in unintended and unrecoverable effects on any dependent resources since the CA will no longer be able to issue certificates.", "type": "boolean" }, "requestId": { @@ -2431,7 +2431,7 @@ "id": "FetchCaCertsResponse", "properties": { "caCerts": { - "description": "The PEM encoded CA certificate chains of all Certificate Authorities in this CaPool in the ENABLED, DISABLED, or STAGED states.", + "description": "The PEM encoded CA certificate chains of all certificate authorities in this CaPool in the ENABLED, DISABLED, or STAGED states.", "items": { "$ref": "CertChain" }, @@ -2491,7 +2491,7 @@ "description": "Optional. Describes constraints on identities that may appear in Certificates issued through this CaPool. If this is omitted, then this CaPool will not add restrictions on a certificate's identity." }, "maximumLifetime": { - "description": "Optional. The maximum lifetime allowed for issued Certificates. Note that if the issuing CertificateAuthority expires before a Certificate's requested maximum_lifetime, the effective lifetime will be explicitly truncated to match it.", + "description": "Optional. The maximum lifetime allowed for issued Certificates. Note that if the issuing CertificateAuthority expires before a Certificate resource's requested maximum_lifetime, the effective lifetime will be explicitly truncated to match it.", "format": "google-duration", "type": "string" }, @@ -3031,7 +3031,7 @@ "id": "PublishingOptions", "properties": { "encodingFormat": { - "description": "Optional. Specifies the encoding format of each CertificateAuthority's CA certificate and CRLs. If this is omitted, CA certificates and CRLs will be published in PEM.", + "description": "Optional. Specifies the encoding format of each CertificateAuthority resource's CA certificate and CRLs. If this is omitted, CA certificates and CRLs will be published in PEM.", "enum": [ "ENCODING_FORMAT_UNSPECIFIED", "PEM", diff --git a/etc/api/privateca/v1beta1/privateca-api.json b/etc/api/privateca/v1beta1/privateca-api.json index 54ed9c3812..c11bcd0a28 100644 --- a/etc/api/privateca/v1beta1/privateca-api.json +++ b/etc/api/privateca/v1beta1/privateca-api.json @@ -580,7 +580,7 @@ } } }, - "revision": "20240221", + "revision": "20240410", "rootUrl": "https://privateca.googleapis.com/", "schemas": { "AuditConfig": { diff --git a/etc/api/prod_tt_sasportal/v1alpha1/prod_tt_sasportal-api.json b/etc/api/prod_tt_sasportal/v1alpha1/prod_tt_sasportal-api.json index c933c8d824..1f5ac3158a 100644 --- a/etc/api/prod_tt_sasportal/v1alpha1/prod_tt_sasportal-api.json +++ b/etc/api/prod_tt_sasportal/v1alpha1/prod_tt_sasportal-api.json @@ -2653,7 +2653,7 @@ } } }, - "revision": "20240226", + "revision": "20240409", "rootUrl": "https://prod-tt-sasportal.googleapis.com/", "schemas": { "SasPortalAssignment": { diff --git a/etc/api/pubsub/v1/pubsub-api.json b/etc/api/pubsub/v1/pubsub-api.json index 9c69e7d2e7..5ce4049dd3 100644 --- a/etc/api/pubsub/v1/pubsub-api.json +++ b/etc/api/pubsub/v1/pubsub-api.json @@ -1583,7 +1583,7 @@ } } }, - "revision": "20240227", + "revision": "20240409", "rootUrl": "https://pubsub.googleapis.com/", "schemas": { "AcknowledgeRequest": { @@ -1741,6 +1741,10 @@ "description": "Required. User-provided name for the Cloud Storage bucket. The bucket must be created by the user. The bucket name must be without any prefix like \"gs://\". See the [bucket naming requirements] (https://cloud.google.com/storage/docs/buckets#naming).", "type": "string" }, + "filenameDatetimeFormat": { + "description": "Optional. User-provided format string specifying how to represent datetimes in Cloud Storage filenames. See the [datetime format guidance](https://cloud.google.com/pubsub/docs/create-cloudstorage-subscription#file_names).", + "type": "string" + }, "filenamePrefix": { "description": "Optional. User-provided prefix for Cloud Storage filename. See the [object naming requirements](https://cloud.google.com/storage/docs/objects#naming).", "type": "string" diff --git a/etc/api/pubsub/v1beta1a/pubsub-api.json b/etc/api/pubsub/v1beta1a/pubsub-api.json index 25738b1bd2..fcd7e67c63 100644 --- a/etc/api/pubsub/v1beta1a/pubsub-api.json +++ b/etc/api/pubsub/v1beta1a/pubsub-api.json @@ -474,7 +474,7 @@ } } }, - "revision": "20240227", + "revision": "20240409", "rootUrl": "https://pubsub.googleapis.com/", "schemas": { "AcknowledgeRequest": { diff --git a/etc/api/pubsub/v1beta2/pubsub-api.json b/etc/api/pubsub/v1beta2/pubsub-api.json index 20bbe5ac56..1c0b0eb446 100644 --- a/etc/api/pubsub/v1beta2/pubsub-api.json +++ b/etc/api/pubsub/v1beta2/pubsub-api.json @@ -741,7 +741,7 @@ } } }, - "revision": "20240227", + "revision": "20240409", "rootUrl": "https://pubsub.googleapis.com/", "schemas": { "AcknowledgeRequest": { diff --git a/etc/api/pubsublite/v1/pubsublite-api.json b/etc/api/pubsublite/v1/pubsublite-api.json index 6b49807745..0df6453c47 100644 --- a/etc/api/pubsublite/v1/pubsublite-api.json +++ b/etc/api/pubsublite/v1/pubsublite-api.json @@ -1040,7 +1040,7 @@ } } }, - "revision": "20240224", + "revision": "20240412", "rootUrl": "https://pubsublite.googleapis.com/", "schemas": { "CancelOperationRequest": { diff --git a/etc/api/realtimebidding/v1/realtimebidding-api.json b/etc/api/realtimebidding/v1/realtimebidding-api.json index 706c542731..ac1a22136c 100644 --- a/etc/api/realtimebidding/v1/realtimebidding-api.json +++ b/etc/api/realtimebidding/v1/realtimebidding-api.json @@ -1305,7 +1305,7 @@ } } }, - "revision": "20240305", + "revision": "20240418", "rootUrl": "https://realtimebidding.googleapis.com/", "schemas": { "ActivatePretargetingConfigRequest": { @@ -2897,13 +2897,15 @@ "USER_ID_TYPE_UNSPECIFIED", "HOSTED_MATCH_DATA", "GOOGLE_COOKIE", - "DEVICE_ID" + "DEVICE_ID", + "PUBLISHER_PROVIDED_ID" ], "enumDescriptions": [ "Placeholder for unspecified user identifier.", "Hosted match data, referring to hosted_match_data in the bid request.", "Google cookie, referring to google_user_id in the bid request.", - "Mobile device advertising ID." + "Mobile device advertising ID.", + "The request has a publisher-provided ID available to the bidder." ], "type": "string" }, diff --git a/etc/api/recaptchaenterprise/v1/recaptchaenterprise-api.json b/etc/api/recaptchaenterprise/v1/recaptchaenterprise-api.json index e4d4218c29..fee06e917e 100644 --- a/etc/api/recaptchaenterprise/v1/recaptchaenterprise-api.json +++ b/etc/api/recaptchaenterprise/v1/recaptchaenterprise-api.json @@ -694,7 +694,7 @@ } } }, - "revision": "20240303", + "revision": "20240414", "rootUrl": "https://recaptchaenterprise.googleapis.com/", "schemas": { "GoogleCloudRecaptchaenterpriseV1AccountDefenderAssessment": { @@ -1034,6 +1034,20 @@ "description": "Optional. Flag for enabling firewall policy config assessment. If this flag is enabled, the firewall policy will be evaluated and a suggested firewall action will be returned in the response.", "type": "boolean" }, + "fraudPrevention": { + "description": "Optional. The Fraud Prevention setting for this assessment.", + "enum": [ + "FRAUD_PREVENTION_UNSPECIFIED", + "ENABLED", + "DISABLED" + ], + "enumDescriptions": [ + "Default, unspecified setting. If opted in for automatic detection, `fraud_prevention_assessment` is returned based on the request. Otherwise, `fraud_prevention_assessment` is returned if `transaction_data` is present in the `Event` and Fraud Prevention is enabled in the Google Cloud console.", + "Enable Fraud Prevention for this assessment, if Fraud Prevention is enabled in the Google Cloud console.", + "Disable Fraud Prevention for this assessment, regardless of opt-in status or Google Cloud console settings." + ], + "type": "string" + }, "hashedAccountId": { "deprecated": true, "description": "Optional. Deprecated: use `user_info.account_id` instead. Unique stable hashed user identifier for the request. The identifier must be hashed using hmac-sha256 with stable secret.", @@ -1415,7 +1429,7 @@ "type": "object" }, "GoogleCloudRecaptchaenterpriseV1ListFirewallPoliciesResponse": { - "description": "Response to request to list firewall policies belonging to a key.", + "description": "Response to request to list firewall policies belonging to a project.", "id": "GoogleCloudRecaptchaenterpriseV1ListFirewallPoliciesResponse", "properties": { "firewallPolicies": { diff --git a/etc/api/recommendationengine/v1beta1/recommendationengine-api.json b/etc/api/recommendationengine/v1beta1/recommendationengine-api.json index 233ba93071..f7c328a6fe 100644 --- a/etc/api/recommendationengine/v1beta1/recommendationengine-api.json +++ b/etc/api/recommendationengine/v1beta1/recommendationengine-api.json @@ -841,7 +841,7 @@ } } }, - "revision": "20240229", + "revision": "20240411", "rootUrl": "https://recommendationengine.googleapis.com/", "schemas": { "GoogleApiHttpBody": { diff --git a/etc/api/recommender/v1/recommender-api.json b/etc/api/recommender/v1/recommender-api.json index 031807923a..705f8fbd7a 100644 --- a/etc/api/recommender/v1/recommender-api.json +++ b/etc/api/recommender/v1/recommender-api.json @@ -1686,7 +1686,7 @@ } } }, - "revision": "20240226", + "revision": "20240414", "rootUrl": "https://recommender.googleapis.com/", "schemas": { "GoogleCloudRecommenderV1CostProjection": { @@ -1813,7 +1813,7 @@ "type": "string" }, "name": { - "description": "Name of the insight.", + "description": "Identifier. Name of the insight.", "type": "string" }, "observationPeriod": { @@ -2171,7 +2171,7 @@ "type": "string" }, "name": { - "description": "Name of recommendation.", + "description": "Identifier. Name of recommendation.", "type": "string" }, "primaryImpact": { diff --git a/etc/api/recommender/v1beta1/recommender-api.json b/etc/api/recommender/v1beta1/recommender-api.json index 4f3bca19ea..2d23d8e8f3 100644 --- a/etc/api/recommender/v1beta1/recommender-api.json +++ b/etc/api/recommender/v1beta1/recommender-api.json @@ -1920,7 +1920,7 @@ } } }, - "revision": "20240226", + "revision": "20240414", "rootUrl": "https://recommender.googleapis.com/", "schemas": { "GoogleCloudLocationListLocationsResponse": { @@ -2113,7 +2113,7 @@ "type": "string" }, "name": { - "description": "Name of the insight.", + "description": "Identifier. Name of the insight.", "type": "string" }, "observationPeriod": { @@ -2518,7 +2518,7 @@ "type": "string" }, "name": { - "description": "Name of recommendation.", + "description": "Identifier. Name of recommendation.", "type": "string" }, "primaryImpact": { diff --git a/etc/api/redis/v1/redis-api.json b/etc/api/redis/v1/redis-api.json index 4e0f250cb4..cd106b74db 100644 --- a/etc/api/redis/v1/redis-api.json +++ b/etc/api/redis/v1/redis-api.json @@ -821,9 +821,32 @@ } } }, - "revision": "20240226", + "revision": "20240411", "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 commands are appended to the AOF. It has the best data loss protection at the cost of performance" + ], + "type": "string" + } + }, + "type": "object" + }, "AvailabilityConfiguration": { "description": "Configuration for availability of database instance", "id": "AvailabilityConfiguration", @@ -960,6 +983,10 @@ "readOnly": true, "type": "string" }, + "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": { @@ -972,6 +999,34 @@ "description": "Required. 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": [ + "", + "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": "Required. 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": { @@ -987,6 +1042,13 @@ "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", @@ -1049,6 +1111,37 @@ }, "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" + }, "Compliance": { "description": "Contains compliance information about a security standard indicating unmet recommendations.", "id": "Compliance", @@ -1300,7 +1393,13 @@ "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_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" ], "enumDeprecated": [ false, @@ -1363,6 +1462,12 @@ false, false, false, + false, + false, + false, + false, + false, + false, false ], "enumDescriptions": [ @@ -1426,7 +1531,13 @@ "Represents server certificate is near expiry.", "Represents database auditing is disabled.", "Represents not restricted to authorized networks.", - "Represents violate org policy restrict public ip." + "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" ], "type": "string" }, @@ -1611,7 +1722,7 @@ }, "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" + "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." }, "product": { "$ref": "Product", @@ -1630,10 +1741,15 @@ "format": "google-datetime", "type": "string" }, + "userLabelSet": { + "$ref": "UserLabels", + "description": "User-provided labels associated with the resource" + }, "userLabels": { "additionalProperties": { "type": "string" }, + "deprecated": true, "description": "User-provided labels, represented as a dictionary where each label is a single key value pair.", "type": "object" } @@ -1756,7 +1872,13 @@ "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_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" ], "enumDeprecated": [ false, @@ -1819,6 +1941,12 @@ false, false, false, + false, + false, + false, + false, + false, + false, false ], "enumDescriptions": [ @@ -1882,7 +2010,13 @@ "Represents server certificate is near expiry.", "Represents database auditing is disabled.", "Represents not restricted to authorized networks.", - "Represents violate org policy restrict public ip." + "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" ], "type": "string" } @@ -1940,11 +2074,18 @@ "description": "An enum that represents the type of this entitlement.", "enum": [ "ENTITLEMENT_TYPE_UNSPECIFIED", - "DUET_AI" + "DUET_AI", + "GEMINI" + ], + "enumDeprecated": [ + false, + true, + false ], "enumDescriptions": [ "", - "The root entitlement representing Duet AI package ownership." + "The root entitlement representing Duet AI package ownership.", + "The root entitlement representing Gemini package ownership." ], "type": "string" } @@ -2888,6 +3029,36 @@ }, "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", @@ -3101,6 +3272,19 @@ }, "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", diff --git a/etc/api/redis/v1beta1/redis-api.json b/etc/api/redis/v1beta1/redis-api.json index 2dd0fd7276..4f5b3c1abe 100644 --- a/etc/api/redis/v1beta1/redis-api.json +++ b/etc/api/redis/v1beta1/redis-api.json @@ -821,9 +821,32 @@ } } }, - "revision": "20240226", + "revision": "20240411", "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 commands are appended to the AOF. It has the best data loss protection at the cost of performance" + ], + "type": "string" + } + }, + "type": "object" + }, "AvailabilityConfiguration": { "description": "Configuration for availability of database instance", "id": "AvailabilityConfiguration", @@ -960,6 +983,10 @@ "readOnly": true, "type": "string" }, + "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": { @@ -972,6 +999,34 @@ "description": "Required. 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": [ + "", + "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": "Required. 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": { @@ -987,6 +1042,13 @@ "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", @@ -1049,6 +1111,37 @@ }, "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" + }, "Compliance": { "description": "Contains compliance information about a security standard indicating unmet recommendations.", "id": "Compliance", @@ -1300,7 +1393,13 @@ "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_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" ], "enumDeprecated": [ false, @@ -1363,6 +1462,12 @@ false, false, false, + false, + false, + false, + false, + false, + false, false ], "enumDescriptions": [ @@ -1426,7 +1531,13 @@ "Represents server certificate is near expiry.", "Represents database auditing is disabled.", "Represents not restricted to authorized networks.", - "Represents violate org policy restrict public ip." + "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" ], "type": "string" }, @@ -1611,7 +1722,7 @@ }, "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" + "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." }, "product": { "$ref": "Product", @@ -1630,10 +1741,15 @@ "format": "google-datetime", "type": "string" }, + "userLabelSet": { + "$ref": "UserLabels", + "description": "User-provided labels associated with the resource" + }, "userLabels": { "additionalProperties": { "type": "string" }, + "deprecated": true, "description": "User-provided labels, represented as a dictionary where each label is a single key value pair.", "type": "object" } @@ -1756,7 +1872,13 @@ "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_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" ], "enumDeprecated": [ false, @@ -1819,6 +1941,12 @@ false, false, false, + false, + false, + false, + false, + false, + false, false ], "enumDescriptions": [ @@ -1882,7 +2010,13 @@ "Represents server certificate is near expiry.", "Represents database auditing is disabled.", "Represents not restricted to authorized networks.", - "Represents violate org policy restrict public ip." + "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" ], "type": "string" } @@ -1940,11 +2074,18 @@ "description": "An enum that represents the type of this entitlement.", "enum": [ "ENTITLEMENT_TYPE_UNSPECIFIED", - "DUET_AI" + "DUET_AI", + "GEMINI" + ], + "enumDeprecated": [ + false, + true, + false ], "enumDescriptions": [ "", - "The root entitlement representing Duet AI package ownership." + "The root entitlement representing Duet AI package ownership.", + "The root entitlement representing Gemini package ownership." ], "type": "string" } @@ -2895,6 +3036,36 @@ }, "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", @@ -3108,6 +3279,19 @@ }, "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", diff --git a/etc/api/reseller/v1/reseller-api.json b/etc/api/reseller/v1/reseller-api.json index ca98d41547..4870594169 100644 --- a/etc/api/reseller/v1/reseller-api.json +++ b/etc/api/reseller/v1/reseller-api.json @@ -651,7 +651,7 @@ } } }, - "revision": "20240303", + "revision": "20240414", "rootUrl": "https://reseller.googleapis.com/", "schemas": { "Address": { diff --git a/etc/api/resourcesettings/v1/resourcesettings-api.json b/etc/api/resourcesettings/v1/resourcesettings-api.json index 2674476c67..3fa5f72be2 100644 --- a/etc/api/resourcesettings/v1/resourcesettings-api.json +++ b/etc/api/resourcesettings/v1/resourcesettings-api.json @@ -499,7 +499,7 @@ } } }, - "revision": "20240303", + "revision": "20240417", "rootUrl": "https://resourcesettings.googleapis.com/", "schemas": { "GoogleCloudResourcesettingsV1ListSettingsResponse": { diff --git a/etc/api/retail/v2/retail-api.json b/etc/api/retail/v2/retail-api.json index 222e79d585..ed9b032169 100644 --- a/etc/api/retail/v2/retail-api.json +++ b/etc/api/retail/v2/retail-api.json @@ -2087,7 +2087,7 @@ } } }, - "revision": "20240222", + "revision": "20240411", "rootUrl": "https://retail.googleapis.com/", "schemas": { "GoogleApiHttpBody": { @@ -3031,7 +3031,7 @@ "id": "GoogleCloudRetailV2ExperimentInfoServingConfigExperiment", "properties": { "experimentServingConfig": { - "description": "The fully qualified resource name of the serving config VariantArm.serving_config_id responsible for generating the search response. For example: `projects/*/locations/*/catalogs/*/servingConfigs/*`.", + "description": "The fully qualified resource name of the serving config Experiment.VariantArm.serving_config_id responsible for generating the search response. For example: `projects/*/locations/*/catalogs/*/servingConfigs/*`.", "type": "string" }, "originalServingConfig": { @@ -3963,7 +3963,7 @@ "type": "array" }, "categories": { - "description": "Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, replace it with other character(s). For example, if a shoes product belongs to both [\"Shoes & Accessories\" -> \"Shoes\"] and [\"Sports & Fitness\" -> \"Athletic Clothing\" -> \"Shoes\"], it could be represented as: \"categories\": [ \"Shoes & Accessories > Shoes\", \"Sports & Fitness > Athletic Clothing > Shoes\" ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product unless overridden via pantheon UI. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436", + "description": "Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, replace it with other character(s). For example, if a shoes product belongs to both [\"Shoes & Accessories\" -> \"Shoes\"] and [\"Sports & Fitness\" -> \"Athletic Clothing\" -> \"Shoes\"], it could be represented as: \"categories\": [ \"Shoes & Accessories > Shoes\", \"Sports & Fitness > Athletic Clothing > Shoes\" ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product unless overridden through the Google Cloud console. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436", "items": { "type": "string" }, @@ -5318,6 +5318,10 @@ }, "type": "array" }, + "ignoreRecsDenylist": { + "description": "When the flag is enabled, the products in the denylist will not be filtered out in the recommendation filtering results.", + "type": "boolean" + }, "modelId": { "description": "The id of the model in the same Catalog to use at serving time. Currently only RecommendationModels are supported: https://cloud.google.com/retail/recommendations-ai/docs/create-models Can be changed but only to a compatible model (e.g. others-you-may-like CTR to others-you-may-like CVR). Required when solution_types is SOLUTION_TYPE_RECOMMENDATION.", "type": "string" diff --git a/etc/api/retail/v2alpha/retail-api.json b/etc/api/retail/v2alpha/retail-api.json index 04bd9575d1..aca1a1abff 100644 --- a/etc/api/retail/v2alpha/retail-api.json +++ b/etc/api/retail/v2alpha/retail-api.json @@ -135,6 +135,31 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "getAlertConfig": { + "description": "Get the AlertConfig of the requested project.", + "flatPath": "v2alpha/projects/{projectsId}/alertConfig", + "httpMethod": "GET", + "id": "retail.projects.getAlertConfig", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Full AlertConfig resource name. Format: projects/{project_number}/alertConfig", + "location": "path", + "pattern": "^projects/[^/]+/alertConfig$", + "required": true, + "type": "string" + } + }, + "path": "v2alpha/{+name}", + "response": { + "$ref": "GoogleCloudRetailV2alphaAlertConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "getLoggingConfig": { "description": "Gets the LoggingConfig of the requested project.", "flatPath": "v2alpha/projects/{projectsId}/loggingConfig", @@ -210,6 +235,40 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "updateAlertConfig": { + "description": "Update the alert config of the requested project.", + "flatPath": "v2alpha/projects/{projectsId}/alertConfig", + "httpMethod": "PATCH", + "id": "retail.projects.updateAlertConfig", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Immutable. The name of the AlertConfig singleton resource. Format: projects/*/alertConfig", + "location": "path", + "pattern": "^projects/[^/]+/alertConfig$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Indicates which fields in the provided AlertConfig to update. If not set, all supported fields are updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v2alpha/{+name}", + "request": { + "$ref": "GoogleCloudRetailV2alphaAlertConfig" + }, + "response": { + "$ref": "GoogleCloudRetailV2alphaAlertConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "updateLoggingConfig": { "description": "Updates the LoggingConfig of the requested project.", "flatPath": "v2alpha/projects/{projectsId}/loggingConfig", @@ -227,7 +286,7 @@ "type": "string" }, "updateMask": { - "description": "Indicates which fields in the provided LoggingConfig to update. The following are the only supported fields: * default_log_generation_rule * per_service_log_generation_rules If not set, all supported fields are updated.", + "description": "Indicates which fields in the provided LoggingConfig to update. The following are the only supported fields: * LoggingConfig.default_log_generation_rule * LoggingConfig.per_service_log_generation_rules If not set, all supported fields are updated.", "format": "google-fieldmask", "location": "query", "type": "string" @@ -2416,7 +2475,7 @@ } } }, - "revision": "20240222", + "revision": "20240411", "rootUrl": "https://retail.googleapis.com/", "schemas": { "GoogleApiHttpBody": { @@ -3241,6 +3300,67 @@ "properties": {}, "type": "object" }, + "GoogleCloudRetailV2alphaAlertConfig": { + "description": "Project level alert config.", + "id": "GoogleCloudRetailV2alphaAlertConfig", + "properties": { + "alertPolicies": { + "description": "Alert policies for a customer. They must be unique by [AlertPolicy.alert_group]", + "items": { + "$ref": "GoogleCloudRetailV2alphaAlertConfigAlertPolicy" + }, + "type": "array" + }, + "name": { + "description": "Required. Immutable. The name of the AlertConfig singleton resource. Format: projects/*/alertConfig", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaAlertConfigAlertPolicy": { + "description": "Alert policy for a customer.", + "id": "GoogleCloudRetailV2alphaAlertConfigAlertPolicy", + "properties": { + "alertGroup": { + "description": "The feature that provides alerting capability. Supported value is only `search-data-quality` for now.", + "type": "string" + }, + "enrollStatus": { + "description": "The enrollment status of a customer.", + "enum": [ + "ENROLL_STATUS_UNSPECIFIED", + "ENROLLED", + "DECLINED" + ], + "enumDescriptions": [ + "Default value. Used for customers who have not responded to the alert policy.", + "Customer is enrolled in this policy.", + "Customer declined this policy." + ], + "type": "string" + }, + "recipients": { + "description": "Recipients for the alert policy. One alert policy should not exceed 20 recipients.", + "items": { + "$ref": "GoogleCloudRetailV2alphaAlertConfigAlertPolicyRecipient" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaAlertConfigAlertPolicyRecipient": { + "description": "Recipient contact information.", + "id": "GoogleCloudRetailV2alphaAlertConfigAlertPolicyRecipient", + "properties": { + "emailAddress": { + "description": "Email address of the recipient.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudRetailV2alphaAttributesConfig": { "description": "Catalog level attribute config.", "id": "GoogleCloudRetailV2alphaAttributesConfig", @@ -4087,7 +4207,7 @@ "id": "GoogleCloudRetailV2alphaExperimentInfoServingConfigExperiment", "properties": { "experimentServingConfig": { - "description": "The fully qualified resource name of the serving config VariantArm.serving_config_id responsible for generating the search response. For example: `projects/*/locations/*/catalogs/*/servingConfigs/*`.", + "description": "The fully qualified resource name of the serving config Experiment.VariantArm.serving_config_id responsible for generating the search response. For example: `projects/*/locations/*/catalogs/*/servingConfigs/*`.", "type": "string" }, "originalServingConfig": { @@ -5405,7 +5525,7 @@ "type": "array" }, "categories": { - "description": "Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, replace it with other character(s). For example, if a shoes product belongs to both [\"Shoes & Accessories\" -> \"Shoes\"] and [\"Sports & Fitness\" -> \"Athletic Clothing\" -> \"Shoes\"], it could be represented as: \"categories\": [ \"Shoes & Accessories > Shoes\", \"Sports & Fitness > Athletic Clothing > Shoes\" ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product unless overridden via pantheon UI. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436", + "description": "Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, replace it with other character(s). For example, if a shoes product belongs to both [\"Shoes & Accessories\" -> \"Shoes\"] and [\"Sports & Fitness\" -> \"Athletic Clothing\" -> \"Shoes\"], it could be represented as: \"categories\": [ \"Shoes & Accessories > Shoes\", \"Sports & Fitness > Athletic Clothing > Shoes\" ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product unless overridden through the Google Cloud console. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436", "items": { "type": "string" }, @@ -6808,6 +6928,10 @@ }, "type": "array" }, + "ignoreRecsDenylist": { + "description": "When the flag is enabled, the products in the denylist will not be filtered out in the recommendation filtering results.", + "type": "boolean" + }, "modelId": { "description": "The id of the model in the same Catalog to use at serving time. Currently only RecommendationModels are supported: https://cloud.google.com/retail/recommendations-ai/docs/create-models Can be changed but only to a compatible model (e.g. others-you-may-like CTR to others-you-may-like CVR). Required when solution_types is SOLUTION_TYPE_RECOMMENDATION.", "type": "string" diff --git a/etc/api/retail/v2beta/retail-api.json b/etc/api/retail/v2beta/retail-api.json index 9448dec32d..37f914cc68 100644 --- a/etc/api/retail/v2beta/retail-api.json +++ b/etc/api/retail/v2beta/retail-api.json @@ -2115,7 +2115,7 @@ } } }, - "revision": "20240222", + "revision": "20240411", "rootUrl": "https://retail.googleapis.com/", "schemas": { "GoogleApiHttpBody": { @@ -4529,7 +4529,7 @@ "id": "GoogleCloudRetailV2betaExperimentInfoServingConfigExperiment", "properties": { "experimentServingConfig": { - "description": "The fully qualified resource name of the serving config VariantArm.serving_config_id responsible for generating the search response. For example: `projects/*/locations/*/catalogs/*/servingConfigs/*`.", + "description": "The fully qualified resource name of the serving config Experiment.VariantArm.serving_config_id responsible for generating the search response. For example: `projects/*/locations/*/catalogs/*/servingConfigs/*`.", "type": "string" }, "originalServingConfig": { @@ -5656,7 +5656,7 @@ "type": "array" }, "categories": { - "description": "Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, replace it with other character(s). For example, if a shoes product belongs to both [\"Shoes & Accessories\" -> \"Shoes\"] and [\"Sports & Fitness\" -> \"Athletic Clothing\" -> \"Shoes\"], it could be represented as: \"categories\": [ \"Shoes & Accessories > Shoes\", \"Sports & Fitness > Athletic Clothing > Shoes\" ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product unless overridden via pantheon UI. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436", + "description": "Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, replace it with other character(s). For example, if a shoes product belongs to both [\"Shoes & Accessories\" -> \"Shoes\"] and [\"Sports & Fitness\" -> \"Athletic Clothing\" -> \"Shoes\"], it could be represented as: \"categories\": [ \"Shoes & Accessories > Shoes\", \"Sports & Fitness > Athletic Clothing > Shoes\" ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product unless overridden through the Google Cloud console. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436", "items": { "type": "string" }, @@ -7011,6 +7011,10 @@ }, "type": "array" }, + "ignoreRecsDenylist": { + "description": "When the flag is enabled, the products in the denylist will not be filtered out in the recommendation filtering results.", + "type": "boolean" + }, "modelId": { "description": "The id of the model in the same Catalog to use at serving time. Currently only RecommendationModels are supported: https://cloud.google.com/retail/recommendations-ai/docs/create-models Can be changed but only to a compatible model (e.g. others-you-may-like CTR to others-you-may-like CVR). Required when solution_types is SOLUTION_TYPE_RECOMMENDATION.", "type": "string" diff --git a/etc/api/run/v1/run-api.json b/etc/api/run/v1/run-api.json index 11aed0b4aa..f622996193 100644 --- a/etc/api/run/v1/run-api.json +++ b/etc/api/run/v1/run-api.json @@ -2614,7 +2614,7 @@ } } }, - "revision": "20240225", + "revision": "20240412", "rootUrl": "https://run.googleapis.com/", "schemas": { "Addressable": { @@ -3411,6 +3411,1278 @@ }, "type": "object" }, + "GoogleDevtoolsCloudbuildV1ApprovalConfig": { + "description": "ApprovalConfig describes configuration for manual approval of a build.", + "id": "GoogleDevtoolsCloudbuildV1ApprovalConfig", + "properties": { + "approvalRequired": { + "description": "Whether or not approval is needed. If this is set on a build, it will become pending when created, and will need to be explicitly approved to start.", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1ApprovalResult": { + "description": "ApprovalResult describes the decision and associated metadata of a manual approval of a build.", + "id": "GoogleDevtoolsCloudbuildV1ApprovalResult", + "properties": { + "approvalTime": { + "description": "Output only. The time when the approval decision was made.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "approverAccount": { + "description": "Output only. Email of the user that called the ApproveBuild API to approve or reject a build at the time that the API was called.", + "readOnly": true, + "type": "string" + }, + "comment": { + "description": "Optional. An optional comment for this manual approval result.", + "type": "string" + }, + "decision": { + "description": "Required. The decision of this manual approval.", + "enum": [ + "DECISION_UNSPECIFIED", + "APPROVED", + "REJECTED" + ], + "enumDescriptions": [ + "Default enum type. This should not be used.", + "Build is approved.", + "Build is rejected." + ], + "type": "string" + }, + "url": { + "description": "Optional. An optional URL tied to this manual approval result. This field is essentially the same as comment, except that it will be rendered by the UI differently. An example use case is a link to an external job that approved this Build.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1ArtifactObjects": { + "description": "Files in the workspace to upload to Cloud Storage upon successful completion of all build steps.", + "id": "GoogleDevtoolsCloudbuildV1ArtifactObjects", + "properties": { + "location": { + "description": "Cloud Storage bucket and optional object path, in the form \"gs://bucket/path/to/somewhere/\". (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)). Files in the workspace matching any path pattern will be uploaded to Cloud Storage with this location as a prefix.", + "type": "string" + }, + "paths": { + "description": "Path globs used to match files in the build's workspace.", + "items": { + "type": "string" + }, + "type": "array" + }, + "timing": { + "$ref": "GoogleDevtoolsCloudbuildV1TimeSpan", + "description": "Output only. Stores timing information for pushing all artifact objects.", + "readOnly": true + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1Artifacts": { + "description": "Artifacts produced by a build that should be uploaded upon successful completion of all build steps.", + "id": "GoogleDevtoolsCloudbuildV1Artifacts", + "properties": { + "images": { + "description": "A list of images to be pushed upon the successful completion of all build steps. The images will be pushed using the builder service account's credentials. The digests of the pushed images will be stored in the Build resource's results field. If any of the images fail to be pushed, the build is marked FAILURE.", + "items": { + "type": "string" + }, + "type": "array" + }, + "mavenArtifacts": { + "description": "A list of Maven artifacts to be uploaded to Artifact Registry upon successful completion of all build steps. Artifacts in the workspace matching specified paths globs will be uploaded to the specified Artifact Registry repository using the builder service account's credentials. If any artifacts fail to be pushed, the build is marked FAILURE.", + "items": { + "$ref": "GoogleDevtoolsCloudbuildV1MavenArtifact" + }, + "type": "array" + }, + "npmPackages": { + "description": "A list of npm packages to be uploaded to Artifact Registry upon successful completion of all build steps. Npm packages in the specified paths will be uploaded to the specified Artifact Registry repository using the builder service account's credentials. If any packages fail to be pushed, the build is marked FAILURE.", + "items": { + "$ref": "GoogleDevtoolsCloudbuildV1NpmPackage" + }, + "type": "array" + }, + "objects": { + "$ref": "GoogleDevtoolsCloudbuildV1ArtifactObjects", + "description": "A list of objects to be uploaded to Cloud Storage upon successful completion of all build steps. Files in the workspace matching specified paths globs will be uploaded to the specified Cloud Storage location using the builder service account's credentials. The location and generation of the uploaded objects will be stored in the Build resource's results field. If any objects fail to be pushed, the build is marked FAILURE." + }, + "pythonPackages": { + "description": "A list of Python packages to be uploaded to Artifact Registry upon successful completion of all build steps. The build service account credentials will be used to perform the upload. If any objects fail to be pushed, the build is marked FAILURE.", + "items": { + "$ref": "GoogleDevtoolsCloudbuildV1PythonPackage" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1Build": { + "description": "A build resource in the Cloud Build API. At a high level, a `Build` describes where to find source code, how to build it (for example, the builder image to run on the source), and where to store the built artifacts. Fields can include the following variables, which will be expanded when the build is created: - $PROJECT_ID: the project ID of the build. - $PROJECT_NUMBER: the project number of the build. - $LOCATION: the location/region of the build. - $BUILD_ID: the autogenerated ID of the build. - $REPO_NAME: the source repository name specified by RepoSource. - $BRANCH_NAME: the branch name specified by RepoSource. - $TAG_NAME: the tag name specified by RepoSource. - $REVISION_ID or $COMMIT_SHA: the commit SHA specified by RepoSource or resolved from the specified branch or tag. - $SHORT_SHA: first 7 characters of $REVISION_ID or $COMMIT_SHA.", + "id": "GoogleDevtoolsCloudbuildV1Build", + "properties": { + "approval": { + "$ref": "GoogleDevtoolsCloudbuildV1BuildApproval", + "description": "Output only. Describes this build's approval configuration, status, and result.", + "readOnly": true + }, + "artifacts": { + "$ref": "GoogleDevtoolsCloudbuildV1Artifacts", + "description": "Artifacts produced by the build that should be uploaded upon successful completion of all build steps." + }, + "availableSecrets": { + "$ref": "GoogleDevtoolsCloudbuildV1Secrets", + "description": "Secrets and secret environment variables." + }, + "buildTriggerId": { + "description": "Output only. The ID of the `BuildTrigger` that triggered this build, if it was triggered automatically.", + "readOnly": true, + "type": "string" + }, + "createTime": { + "description": "Output only. Time at which the request to create the build was received.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "failureInfo": { + "$ref": "GoogleDevtoolsCloudbuildV1FailureInfo", + "description": "Output only. Contains information about the build when status=FAILURE.", + "readOnly": true + }, + "finishTime": { + "description": "Output only. Time at which execution of the build was finished. The difference between finish_time and start_time is the duration of the build's execution.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "id": { + "description": "Output only. Unique identifier of the build.", + "readOnly": true, + "type": "string" + }, + "images": { + "description": "A list of images to be pushed upon the successful completion of all build steps. The images are pushed using the builder service account's credentials. The digests of the pushed images will be stored in the `Build` resource's results field. If any of the images fail to be pushed, the build status is marked `FAILURE`.", + "items": { + "type": "string" + }, + "type": "array" + }, + "logUrl": { + "description": "Output only. URL to logs for this build in Google Cloud Console.", + "readOnly": true, + "type": "string" + }, + "logsBucket": { + "description": "Cloud Storage bucket where logs should be written (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)). Logs file names will be of the format `${logs_bucket}/log-${build_id}.txt`.", + "type": "string" + }, + "name": { + "description": "Output only. The 'Build' name with format: `projects/{project}/locations/{location}/builds/{build}`, where {build} is a unique identifier generated by the service.", + "readOnly": true, + "type": "string" + }, + "options": { + "$ref": "GoogleDevtoolsCloudbuildV1BuildOptions", + "description": "Special options for this build." + }, + "projectId": { + "description": "Output only. ID of the project.", + "readOnly": true, + "type": "string" + }, + "queueTtl": { + "description": "TTL in queue for this build. If provided and the build is enqueued longer than this value, the build will expire and the build status will be `EXPIRED`. The TTL starts ticking from create_time.", + "format": "google-duration", + "type": "string" + }, + "results": { + "$ref": "GoogleDevtoolsCloudbuildV1Results", + "description": "Output only. Results of the build.", + "readOnly": true + }, + "secrets": { + "description": "Secrets to decrypt using Cloud Key Management Service. Note: Secret Manager is the recommended technique for managing sensitive data with Cloud Build. Use `available_secrets` to configure builds to access secrets from Secret Manager. For instructions, see: https://cloud.google.com/cloud-build/docs/securing-builds/use-secrets", + "items": { + "$ref": "GoogleDevtoolsCloudbuildV1Secret" + }, + "type": "array" + }, + "serviceAccount": { + "description": "IAM service account whose credentials will be used at build runtime. Must be of the format `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. ACCOUNT can be email address or uniqueId of the service account. ", + "type": "string" + }, + "source": { + "$ref": "GoogleDevtoolsCloudbuildV1Source", + "description": "The location of the source files to build." + }, + "sourceProvenance": { + "$ref": "GoogleDevtoolsCloudbuildV1SourceProvenance", + "description": "Output only. A permanent fixed identifier for source.", + "readOnly": true + }, + "startTime": { + "description": "Output only. Time at which execution of the build was started.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "status": { + "description": "Output only. Status of the build.", + "enum": [ + "STATUS_UNKNOWN", + "PENDING", + "QUEUED", + "WORKING", + "SUCCESS", + "FAILURE", + "INTERNAL_ERROR", + "TIMEOUT", + "CANCELLED", + "EXPIRED" + ], + "enumDescriptions": [ + "Status of the build is unknown.", + "Build has been created and is pending execution and queuing. It has not been queued.", + "Build or step is queued; work has not yet begun.", + "Build or step is being executed.", + "Build or step finished successfully.", + "Build or step failed to complete successfully.", + "Build or step failed due to an internal cause.", + "Build or step took longer than was allowed.", + "Build or step was canceled by a user.", + "Build was enqueued for longer than the value of `queue_ttl`." + ], + "readOnly": true, + "type": "string" + }, + "statusDetail": { + "description": "Output only. Customer-readable message about the current status.", + "readOnly": true, + "type": "string" + }, + "steps": { + "description": "Required. The operations to be performed on the workspace.", + "items": { + "$ref": "GoogleDevtoolsCloudbuildV1BuildStep" + }, + "type": "array" + }, + "substitutions": { + "additionalProperties": { + "type": "string" + }, + "description": "Substitutions data for `Build` resource.", + "type": "object" + }, + "tags": { + "description": "Tags for annotation of a `Build`. These are not docker tags.", + "items": { + "type": "string" + }, + "type": "array" + }, + "timeout": { + "description": "Amount of time that this build should be allowed to run, to second granularity. If this amount of time elapses, work on the build will cease and the build status will be `TIMEOUT`. `timeout` starts ticking from `startTime`. Default time is 60 minutes.", + "format": "google-duration", + "type": "string" + }, + "timing": { + "additionalProperties": { + "$ref": "GoogleDevtoolsCloudbuildV1TimeSpan" + }, + "description": "Output only. Stores timing information for phases of the build. Valid keys are: * BUILD: time to execute all build steps. * PUSH: time to push all artifacts including docker images and non docker artifacts. * FETCHSOURCE: time to fetch source. * SETUPBUILD: time to set up build. If the build does not specify source or images, these keys will not be included.", + "readOnly": true, + "type": "object" + }, + "warnings": { + "description": "Output only. Non-fatal problems encountered during the execution of the build.", + "items": { + "$ref": "GoogleDevtoolsCloudbuildV1Warning" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1BuildApproval": { + "description": "BuildApproval describes a build's approval configuration, state, and result.", + "id": "GoogleDevtoolsCloudbuildV1BuildApproval", + "properties": { + "config": { + "$ref": "GoogleDevtoolsCloudbuildV1ApprovalConfig", + "description": "Output only. Configuration for manual approval of this build.", + "readOnly": true + }, + "result": { + "$ref": "GoogleDevtoolsCloudbuildV1ApprovalResult", + "description": "Output only. Result of manual approval for this Build.", + "readOnly": true + }, + "state": { + "description": "Output only. The state of this build's approval.", + "enum": [ + "STATE_UNSPECIFIED", + "PENDING", + "APPROVED", + "REJECTED", + "CANCELLED" + ], + "enumDescriptions": [ + "Default enum type. This should not be used.", + "Build approval is pending.", + "Build approval has been approved.", + "Build approval has been rejected.", + "Build was cancelled while it was still pending approval." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1BuildOperationMetadata": { + "description": "Metadata for build operations.", + "id": "GoogleDevtoolsCloudbuildV1BuildOperationMetadata", + "properties": { + "build": { + "$ref": "GoogleDevtoolsCloudbuildV1Build", + "description": "The build that the operation is tracking." + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1BuildOptions": { + "description": "Optional arguments to enable specific features of builds.", + "id": "GoogleDevtoolsCloudbuildV1BuildOptions", + "properties": { + "automapSubstitutions": { + "description": "Option to include built-in and custom substitutions as env variables for all build steps.", + "type": "boolean" + }, + "defaultLogsBucketBehavior": { + "description": "Optional. Option to specify how default logs buckets are setup.", + "enum": [ + "DEFAULT_LOGS_BUCKET_BEHAVIOR_UNSPECIFIED", + "REGIONAL_USER_OWNED_BUCKET" + ], + "enumDescriptions": [ + "Unspecified.", + "Bucket is located in user-owned project in the same region as the build. The builder service account must have access to create and write to Cloud Storage buckets in the build project." + ], + "type": "string" + }, + "diskSizeGb": { + "description": "Requested disk size for the VM that runs the build. Note that this is *NOT* \"disk free\"; some of the space will be used by the operating system and build utilities. Also note that this is the minimum disk size that will be allocated for the build -- the build may run with a larger disk than requested. At present, the maximum disk size is 2000GB; builds that request more than the maximum are rejected with an error.", + "format": "int64", + "type": "string" + }, + "dynamicSubstitutions": { + "description": "Option to specify whether or not to apply bash style string operations to the substitutions. NOTE: this is always enabled for triggered builds and cannot be overridden in the build configuration file.", + "type": "boolean" + }, + "env": { + "description": "A list of global environment variable definitions that will exist for all build steps in this build. If a variable is defined in both globally and in a build step, the variable will use the build step value. The elements are of the form \"KEY=VALUE\" for the environment variable \"KEY\" being given the value \"VALUE\".", + "items": { + "type": "string" + }, + "type": "array" + }, + "logStreamingOption": { + "description": "Option to define build log streaming behavior to Cloud Storage.", + "enum": [ + "STREAM_DEFAULT", + "STREAM_ON", + "STREAM_OFF" + ], + "enumDescriptions": [ + "Service may automatically determine build log streaming behavior.", + "Build logs should be streamed to Cloud Storage.", + "Build logs should not be streamed to Cloud Storage; they will be written when the build is completed." + ], + "type": "string" + }, + "logging": { + "description": "Option to specify the logging mode, which determines if and where build logs are stored.", + "enum": [ + "LOGGING_UNSPECIFIED", + "LEGACY", + "GCS_ONLY", + "STACKDRIVER_ONLY", + "CLOUD_LOGGING_ONLY", + "NONE" + ], + "enumDeprecated": [ + false, + false, + false, + true, + false, + false + ], + "enumDescriptions": [ + "The service determines the logging mode. The default is `LEGACY`. Do not rely on the default logging behavior as it may change in the future.", + "Build logs are stored in Cloud Logging and Cloud Storage.", + "Build logs are stored in Cloud Storage.", + "This option is the same as CLOUD_LOGGING_ONLY.", + "Build logs are stored in Cloud Logging. Selecting this option will not allow [logs streaming](https://cloud.google.com/sdk/gcloud/reference/builds/log).", + "Turn off all logging. No build logs will be captured." + ], + "type": "string" + }, + "machineType": { + "description": "Compute Engine machine type on which to run the build.", + "enum": [ + "UNSPECIFIED", + "N1_HIGHCPU_8", + "N1_HIGHCPU_32", + "E2_HIGHCPU_8", + "E2_HIGHCPU_32", + "E2_MEDIUM" + ], + "enumDeprecated": [ + false, + true, + true, + false, + false, + false + ], + "enumDescriptions": [ + "Standard machine type.", + "Highcpu machine with 8 CPUs.", + "Highcpu machine with 32 CPUs.", + "Highcpu e2 machine with 8 CPUs.", + "Highcpu e2 machine with 32 CPUs.", + "E2 machine with 1 CPU." + ], + "type": "string" + }, + "pool": { + "$ref": "GoogleDevtoolsCloudbuildV1PoolOption", + "description": "Optional. Specification for execution on a `WorkerPool`. See [running builds in a private pool](https://cloud.google.com/build/docs/private-pools/run-builds-in-private-pool) for more information." + }, + "requestedVerifyOption": { + "description": "Requested verifiability options.", + "enum": [ + "NOT_VERIFIED", + "VERIFIED" + ], + "enumDescriptions": [ + "Not a verifiable build (the default).", + "Build must be verified." + ], + "type": "string" + }, + "secretEnv": { + "description": "A list of global environment variables, which are encrypted using a Cloud Key Management Service crypto key. These values must be specified in the build's `Secret`. These variables will be available to all build steps in this build.", + "items": { + "type": "string" + }, + "type": "array" + }, + "sourceProvenanceHash": { + "description": "Requested hash for SourceProvenance.", + "items": { + "enum": [ + "NONE", + "SHA256", + "MD5", + "SHA512" + ], + "enumDescriptions": [ + "No hash requested.", + "Use a sha256 hash.", + "Use a md5 hash.", + "Use a sha512 hash." + ], + "type": "string" + }, + "type": "array" + }, + "substitutionOption": { + "description": "Option to specify behavior when there is an error in the substitution checks. NOTE: this is always set to ALLOW_LOOSE for triggered builds and cannot be overridden in the build configuration file.", + "enum": [ + "MUST_MATCH", + "ALLOW_LOOSE" + ], + "enumDescriptions": [ + "Fails the build if error in substitutions checks, like missing a substitution in the template or in the map.", + "Do not fail the build if error in substitutions checks." + ], + "type": "string" + }, + "volumes": { + "description": "Global list of volumes to mount for ALL build steps Each volume is created as an empty volume prior to starting the build process. Upon completion of the build, volumes and their contents are discarded. Global volume names and paths cannot conflict with the volumes defined a build step. Using a global volume in a build with only one step is not valid as it is indicative of a build request with an incorrect configuration.", + "items": { + "$ref": "GoogleDevtoolsCloudbuildV1Volume" + }, + "type": "array" + }, + "workerPool": { + "deprecated": true, + "description": "This field deprecated; please use `pool.name` instead.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1BuildStep": { + "description": "A step in the build pipeline.", + "id": "GoogleDevtoolsCloudbuildV1BuildStep", + "properties": { + "allowExitCodes": { + "description": "Allow this build step to fail without failing the entire build if and only if the exit code is one of the specified codes. If allow_failure is also specified, this field will take precedence.", + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + }, + "allowFailure": { + "description": "Allow this build step to fail without failing the entire build. If false, the entire build will fail if this step fails. Otherwise, the build will succeed, but this step will still have a failure status. Error information will be reported in the failure_detail field.", + "type": "boolean" + }, + "args": { + "description": "A list of arguments that will be presented to the step when it is started. If the image used to run the step's container has an entrypoint, the `args` are used as arguments to that entrypoint. If the image does not define an entrypoint, the first element in args is used as the entrypoint, and the remainder will be used as arguments.", + "items": { + "type": "string" + }, + "type": "array" + }, + "automapSubstitutions": { + "description": "Option to include built-in and custom substitutions as env variables for this build step. This option will override the global option in BuildOption.", + "type": "boolean" + }, + "dir": { + "description": "Working directory to use when running this step's container. If this value is a relative path, it is relative to the build's working directory. If this value is absolute, it may be outside the build's working directory, in which case the contents of the path may not be persisted across build step executions, unless a `volume` for that path is specified. If the build specifies a `RepoSource` with `dir` and a step with a `dir`, which specifies an absolute path, the `RepoSource` `dir` is ignored for the step's execution.", + "type": "string" + }, + "entrypoint": { + "description": "Entrypoint to be used instead of the build step image's default entrypoint. If unset, the image's default entrypoint is used.", + "type": "string" + }, + "env": { + "description": "A list of environment variable definitions to be used when running a step. The elements are of the form \"KEY=VALUE\" for the environment variable \"KEY\" being given the value \"VALUE\".", + "items": { + "type": "string" + }, + "type": "array" + }, + "exitCode": { + "description": "Output only. Return code from running the step.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "id": { + "description": "Unique identifier for this build step, used in `wait_for` to reference this build step as a dependency.", + "type": "string" + }, + "name": { + "description": "Required. The name of the container image that will run this particular build step. If the image is available in the host's Docker daemon's cache, it will be run directly. If not, the host will attempt to pull the image first, using the builder service account's credentials if necessary. The Docker daemon's cache will already have the latest versions of all of the officially supported build steps ([https://github.com/GoogleCloudPlatform/cloud-builders](https://github.com/GoogleCloudPlatform/cloud-builders)). The Docker daemon will also have cached many of the layers for some popular images, like \"ubuntu\", \"debian\", but they will be refreshed at the time you attempt to use them. If you built an image in a previous build step, it will be stored in the host's Docker daemon's cache and is available to use as the name for a later build step.", + "type": "string" + }, + "pullTiming": { + "$ref": "GoogleDevtoolsCloudbuildV1TimeSpan", + "description": "Output only. Stores timing information for pulling this build step's builder image only.", + "readOnly": true + }, + "script": { + "description": "A shell script to be executed in the step. When script is provided, the user cannot specify the entrypoint or args.", + "type": "string" + }, + "secretEnv": { + "description": "A list of environment variables which are encrypted using a Cloud Key Management Service crypto key. These values must be specified in the build's `Secret`.", + "items": { + "type": "string" + }, + "type": "array" + }, + "status": { + "description": "Output only. Status of the build step. At this time, build step status is only updated on build completion; step status is not updated in real-time as the build progresses.", + "enum": [ + "STATUS_UNKNOWN", + "PENDING", + "QUEUED", + "WORKING", + "SUCCESS", + "FAILURE", + "INTERNAL_ERROR", + "TIMEOUT", + "CANCELLED", + "EXPIRED" + ], + "enumDescriptions": [ + "Status of the build is unknown.", + "Build has been created and is pending execution and queuing. It has not been queued.", + "Build or step is queued; work has not yet begun.", + "Build or step is being executed.", + "Build or step finished successfully.", + "Build or step failed to complete successfully.", + "Build or step failed due to an internal cause.", + "Build or step took longer than was allowed.", + "Build or step was canceled by a user.", + "Build was enqueued for longer than the value of `queue_ttl`." + ], + "readOnly": true, + "type": "string" + }, + "timeout": { + "description": "Time limit for executing this build step. If not defined, the step has no time limit and will be allowed to continue to run until either it completes or the build itself times out.", + "format": "google-duration", + "type": "string" + }, + "timing": { + "$ref": "GoogleDevtoolsCloudbuildV1TimeSpan", + "description": "Output only. Stores timing information for executing this build step.", + "readOnly": true + }, + "volumes": { + "description": "List of volumes to mount into the build step. Each volume is created as an empty volume prior to execution of the build step. Upon completion of the build, volumes and their contents are discarded. Using a named volume in only one step is not valid as it is indicative of a build request with an incorrect configuration.", + "items": { + "$ref": "GoogleDevtoolsCloudbuildV1Volume" + }, + "type": "array" + }, + "waitFor": { + "description": "The ID(s) of the step(s) that this build step depends on. This build step will not start until all the build steps in `wait_for` have completed successfully. If `wait_for` is empty, this build step will start when all previous build steps in the `Build.Steps` list have completed successfully.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1BuiltImage": { + "description": "An image built by the pipeline.", + "id": "GoogleDevtoolsCloudbuildV1BuiltImage", + "properties": { + "digest": { + "description": "Docker Registry 2.0 digest.", + "type": "string" + }, + "name": { + "description": "Name used to push the container image to Google Container Registry, as presented to `docker push`.", + "type": "string" + }, + "pushTiming": { + "$ref": "GoogleDevtoolsCloudbuildV1TimeSpan", + "description": "Output only. Stores timing information for pushing the specified image.", + "readOnly": true + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1ConnectedRepository": { + "description": "Location of the source in a 2nd-gen Google Cloud Build repository resource.", + "id": "GoogleDevtoolsCloudbuildV1ConnectedRepository", + "properties": { + "dir": { + "description": "Directory, relative to the source root, in which to run the build.", + "type": "string" + }, + "repository": { + "description": "Required. Name of the Google Cloud Build repository, formatted as `projects/*/locations/*/connections/*/repositories/*`.", + "type": "string" + }, + "revision": { + "description": "The revision to fetch from the Git repository such as a branch, a tag, a commit SHA, or any Git ref.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1FailureInfo": { + "description": "A fatal problem encountered during the execution of the build.", + "id": "GoogleDevtoolsCloudbuildV1FailureInfo", + "properties": { + "detail": { + "description": "Explains the failure issue in more detail using hard-coded text.", + "type": "string" + }, + "type": { + "description": "The name of the failure.", + "enum": [ + "FAILURE_TYPE_UNSPECIFIED", + "PUSH_FAILED", + "PUSH_IMAGE_NOT_FOUND", + "PUSH_NOT_AUTHORIZED", + "LOGGING_FAILURE", + "USER_BUILD_STEP", + "FETCH_SOURCE_FAILED" + ], + "enumDescriptions": [ + "Type unspecified", + "Unable to push the image to the repository.", + "Final image not found.", + "Unauthorized push of the final image.", + "Backend logging failures. Should retry.", + "A build step has failed.", + "The source fetching has failed." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1FileHashes": { + "description": "Container message for hashes of byte content of files, used in SourceProvenance messages to verify integrity of source input to the build.", + "id": "GoogleDevtoolsCloudbuildV1FileHashes", + "properties": { + "fileHash": { + "description": "Collection of file hashes.", + "items": { + "$ref": "GoogleDevtoolsCloudbuildV1Hash" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1GitSource": { + "description": "Location of the source in any accessible Git repository.", + "id": "GoogleDevtoolsCloudbuildV1GitSource", + "properties": { + "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.", + "type": "string" + }, + "revision": { + "description": "The revision to fetch from the Git repository such as a branch, a tag, a commit SHA, or any Git ref. Cloud Build uses `git fetch` to fetch the revision from the Git repository; therefore make sure that the string you provide for `revision` is parsable by the command. For information on string values accepted by `git fetch`, see https://git-scm.com/docs/gitrevisions#_specifying_revisions. For information on `git fetch`, see https://git-scm.com/docs/git-fetch.", + "type": "string" + }, + "url": { + "description": "Location of the Git repo to build. This will be used as a `git remote`, see https://git-scm.com/docs/git-remote.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1Hash": { + "description": "Container message for hash values.", + "id": "GoogleDevtoolsCloudbuildV1Hash", + "properties": { + "type": { + "description": "The type of hash that was performed.", + "enum": [ + "NONE", + "SHA256", + "MD5", + "SHA512" + ], + "enumDescriptions": [ + "No hash requested.", + "Use a sha256 hash.", + "Use a md5 hash.", + "Use a sha512 hash." + ], + "type": "string" + }, + "value": { + "description": "The hash value.", + "format": "byte", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1InlineSecret": { + "description": "Pairs a set of secret environment variables mapped to encrypted values with the Cloud KMS key to use to decrypt the value.", + "id": "GoogleDevtoolsCloudbuildV1InlineSecret", + "properties": { + "envMap": { + "additionalProperties": { + "format": "byte", + "type": "string" + }, + "description": "Map of environment variable name to its encrypted value. Secret environment variables must be unique across all of a build's secrets, and must be used by at least one build step. Values can be at most 64 KB in size. There can be at most 100 secret values across all of a build's secrets.", + "type": "object" + }, + "kmsKeyName": { + "description": "Resource name of Cloud KMS crypto key to decrypt the encrypted value. In format: projects/*/locations/*/keyRings/*/cryptoKeys/*", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1MavenArtifact": { + "description": "A Maven artifact to upload to Artifact Registry upon successful completion of all build steps.", + "id": "GoogleDevtoolsCloudbuildV1MavenArtifact", + "properties": { + "artifactId": { + "description": "Maven `artifactId` value used when uploading the artifact to Artifact Registry.", + "type": "string" + }, + "groupId": { + "description": "Maven `groupId` value used when uploading the artifact to Artifact Registry.", + "type": "string" + }, + "path": { + "description": "Path to an artifact in the build's workspace to be uploaded to Artifact Registry. This can be either an absolute path, e.g. /workspace/my-app/target/my-app-1.0.SNAPSHOT.jar or a relative path from /workspace, e.g. my-app/target/my-app-1.0.SNAPSHOT.jar.", + "type": "string" + }, + "repository": { + "description": "Artifact Registry repository, in the form \"https://$REGION-maven.pkg.dev/$PROJECT/$REPOSITORY\" Artifact in the workspace specified by path will be uploaded to Artifact Registry with this location as a prefix.", + "type": "string" + }, + "version": { + "description": "Maven `version` value used when uploading the artifact to Artifact Registry.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1NpmPackage": { + "description": "Npm package to upload to Artifact Registry upon successful completion of all build steps.", + "id": "GoogleDevtoolsCloudbuildV1NpmPackage", + "properties": { + "packagePath": { + "description": "Path to the package.json. e.g. workspace/path/to/package", + "type": "string" + }, + "repository": { + "description": "Artifact Registry repository, in the form \"https://$REGION-npm.pkg.dev/$PROJECT/$REPOSITORY\" Npm package in the workspace specified by path will be zipped and uploaded to Artifact Registry with this location as a prefix.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1PoolOption": { + "description": "Details about how a build should be executed on a `WorkerPool`. See [running builds in a private pool](https://cloud.google.com/build/docs/private-pools/run-builds-in-private-pool) for more information.", + "id": "GoogleDevtoolsCloudbuildV1PoolOption", + "properties": { + "name": { + "description": "The `WorkerPool` resource to execute the build on. You must have `cloudbuild.workerpools.use` on the project hosting the WorkerPool. Format projects/{project}/locations/{location}/workerPools/{workerPoolId}", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1PythonPackage": { + "description": "Python package to upload to Artifact Registry upon successful completion of all build steps. A package can encapsulate multiple objects to be uploaded to a single repository.", + "id": "GoogleDevtoolsCloudbuildV1PythonPackage", + "properties": { + "paths": { + "description": "Path globs used to match files in the build's workspace. For Python/ Twine, this is usually `dist/*`, and sometimes additionally an `.asc` file.", + "items": { + "type": "string" + }, + "type": "array" + }, + "repository": { + "description": "Artifact Registry repository, in the form \"https://$REGION-python.pkg.dev/$PROJECT/$REPOSITORY\" Files in the workspace matching any path pattern will be uploaded to Artifact Registry with this location as a prefix.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1RepoSource": { + "description": "Location of the source in a Google Cloud Source Repository.", + "id": "GoogleDevtoolsCloudbuildV1RepoSource", + "properties": { + "branchName": { + "description": "Regex matching branches to build. The syntax of the regular expressions accepted is the syntax accepted by RE2 and described at https://github.com/google/re2/wiki/Syntax", + "type": "string" + }, + "commitSha": { + "description": "Explicit commit SHA to build.", + "type": "string" + }, + "dir": { + "description": "Directory, relative to the source root, in which to run the build. This must be a relative path. If a step's `dir` is specified and is an absolute path, this value is ignored for that step's execution.", + "type": "string" + }, + "invertRegex": { + "description": "Only trigger a build if the revision regex does NOT match the revision regex.", + "type": "boolean" + }, + "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" + }, + "substitutions": { + "additionalProperties": { + "type": "string" + }, + "description": "Substitutions to use in a triggered build. Should only be used with RunBuildTrigger", + "type": "object" + }, + "tagName": { + "description": "Regex matching tags to build. The syntax of the regular expressions accepted is the syntax accepted by RE2 and described at https://github.com/google/re2/wiki/Syntax", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1Results": { + "description": "Artifacts created by the build pipeline.", + "id": "GoogleDevtoolsCloudbuildV1Results", + "properties": { + "artifactManifest": { + "description": "Path to the artifact manifest for non-container artifacts uploaded to Cloud Storage. Only populated when artifacts are uploaded to Cloud Storage.", + "type": "string" + }, + "artifactTiming": { + "$ref": "GoogleDevtoolsCloudbuildV1TimeSpan", + "description": "Time to push all non-container artifacts to Cloud Storage." + }, + "buildStepImages": { + "description": "List of build step digests, in the order corresponding to build step indices.", + "items": { + "type": "string" + }, + "type": "array" + }, + "buildStepOutputs": { + "description": "List of build step outputs, produced by builder images, in the order corresponding to build step indices. [Cloud Builders](https://cloud.google.com/cloud-build/docs/cloud-builders) can produce this output by writing to `$BUILDER_OUTPUT/output`. Only the first 50KB of data is stored.", + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "images": { + "description": "Container images that were built as a part of the build.", + "items": { + "$ref": "GoogleDevtoolsCloudbuildV1BuiltImage" + }, + "type": "array" + }, + "mavenArtifacts": { + "description": "Maven artifacts uploaded to Artifact Registry at the end of the build.", + "items": { + "$ref": "GoogleDevtoolsCloudbuildV1UploadedMavenArtifact" + }, + "type": "array" + }, + "npmPackages": { + "description": "Npm packages uploaded to Artifact Registry at the end of the build.", + "items": { + "$ref": "GoogleDevtoolsCloudbuildV1UploadedNpmPackage" + }, + "type": "array" + }, + "numArtifacts": { + "description": "Number of non-container artifacts uploaded to Cloud Storage. Only populated when artifacts are uploaded to Cloud Storage.", + "format": "int64", + "type": "string" + }, + "pythonPackages": { + "description": "Python artifacts uploaded to Artifact Registry at the end of the build.", + "items": { + "$ref": "GoogleDevtoolsCloudbuildV1UploadedPythonPackage" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1Secret": { + "description": "Pairs a set of secret environment variables containing encrypted values with the Cloud KMS key to use to decrypt the value. Note: Use `kmsKeyName` with `available_secrets` instead of using `kmsKeyName` with `secret`. For instructions see: https://cloud.google.com/cloud-build/docs/securing-builds/use-encrypted-credentials.", + "id": "GoogleDevtoolsCloudbuildV1Secret", + "properties": { + "kmsKeyName": { + "description": "Cloud KMS key name to use to decrypt these envs.", + "type": "string" + }, + "secretEnv": { + "additionalProperties": { + "format": "byte", + "type": "string" + }, + "description": "Map of environment variable name to its encrypted value. Secret environment variables must be unique across all of a build's secrets, and must be used by at least one build step. Values can be at most 64 KB in size. There can be at most 100 secret values across all of a build's secrets.", + "type": "object" + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1SecretManagerSecret": { + "description": "Pairs a secret environment variable with a SecretVersion in Secret Manager.", + "id": "GoogleDevtoolsCloudbuildV1SecretManagerSecret", + "properties": { + "env": { + "description": "Environment variable name to associate with the secret. Secret environment variables must be unique across all of a build's secrets, and must be used by at least one build step.", + "type": "string" + }, + "versionName": { + "description": "Resource name of the SecretVersion. In format: projects/*/secrets/*/versions/*", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1Secrets": { + "description": "Secrets and secret environment variables.", + "id": "GoogleDevtoolsCloudbuildV1Secrets", + "properties": { + "inline": { + "description": "Secrets encrypted with KMS key and the associated secret environment variable.", + "items": { + "$ref": "GoogleDevtoolsCloudbuildV1InlineSecret" + }, + "type": "array" + }, + "secretManager": { + "description": "Secrets in Secret Manager and associated secret environment variable.", + "items": { + "$ref": "GoogleDevtoolsCloudbuildV1SecretManagerSecret" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1Source": { + "description": "Location of the source in a supported storage service.", + "id": "GoogleDevtoolsCloudbuildV1Source", + "properties": { + "connectedRepository": { + "$ref": "GoogleDevtoolsCloudbuildV1ConnectedRepository", + "description": "Optional. If provided, get the source from this 2nd-gen Google Cloud Build repository resource." + }, + "gitSource": { + "$ref": "GoogleDevtoolsCloudbuildV1GitSource", + "description": "If provided, get the source from this Git repository." + }, + "repoSource": { + "$ref": "GoogleDevtoolsCloudbuildV1RepoSource", + "description": "If provided, get the source from this location in a Cloud Source Repository." + }, + "storageSource": { + "$ref": "GoogleDevtoolsCloudbuildV1StorageSource", + "description": "If provided, get the source from this location in Cloud Storage." + }, + "storageSourceManifest": { + "$ref": "GoogleDevtoolsCloudbuildV1StorageSourceManifest", + "description": "If provided, get the source from this manifest in Cloud Storage. This feature is in Preview; see description [here](https://github.com/GoogleCloudPlatform/cloud-builders/tree/master/gcs-fetcher)." + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1SourceProvenance": { + "description": "Provenance of the source. Ways to find the original source, or verify that some source was used for this build.", + "id": "GoogleDevtoolsCloudbuildV1SourceProvenance", + "properties": { + "fileHashes": { + "additionalProperties": { + "$ref": "GoogleDevtoolsCloudbuildV1FileHashes" + }, + "description": "Output only. Hash(es) of the build source, which can be used to verify that the original source integrity was maintained in the build. Note that `FileHashes` will only be populated if `BuildOptions` has requested a `SourceProvenanceHash`. The keys to this map are file paths used as build source and the values contain the hash values for those files. If the build source came in a single package such as a gzipped tarfile (`.tar.gz`), the `FileHash` will be for the single path to that file.", + "readOnly": true, + "type": "object" + }, + "resolvedConnectedRepository": { + "$ref": "GoogleDevtoolsCloudbuildV1ConnectedRepository", + "description": "Output only. A copy of the build's `source.connected_repository`, if exists, with any revisions resolved.", + "readOnly": true + }, + "resolvedGitSource": { + "$ref": "GoogleDevtoolsCloudbuildV1GitSource", + "description": "Output only. A copy of the build's `source.git_source`, if exists, with any revisions resolved.", + "readOnly": true + }, + "resolvedRepoSource": { + "$ref": "GoogleDevtoolsCloudbuildV1RepoSource", + "description": "A copy of the build's `source.repo_source`, if exists, with any revisions resolved." + }, + "resolvedStorageSource": { + "$ref": "GoogleDevtoolsCloudbuildV1StorageSource", + "description": "A copy of the build's `source.storage_source`, if exists, with any generations resolved." + }, + "resolvedStorageSourceManifest": { + "$ref": "GoogleDevtoolsCloudbuildV1StorageSourceManifest", + "description": "A copy of the build's `source.storage_source_manifest`, if exists, with any revisions resolved. This feature is in Preview." + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1StorageSource": { + "description": "Location of the source in an archive file in Cloud Storage.", + "id": "GoogleDevtoolsCloudbuildV1StorageSource", + "properties": { + "bucket": { + "description": "Cloud Storage bucket containing the source (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).", + "type": "string" + }, + "generation": { + "description": "Cloud Storage generation for the object. If the generation is omitted, the latest generation will be used.", + "format": "int64", + "type": "string" + }, + "object": { + "description": "Cloud Storage object containing the source. This object must be a zipped (`.zip`) or gzipped archive file (`.tar.gz`) containing source to build.", + "type": "string" + }, + "sourceFetcher": { + "description": "Optional. Option to specify the tool to fetch the source file for the build.", + "enum": [ + "SOURCE_FETCHER_UNSPECIFIED", + "GSUTIL", + "GCS_FETCHER" + ], + "enumDescriptions": [ + "Unspecified defaults to GSUTIL.", + "Use the \"gsutil\" tool to download the source file.", + "Use the Cloud Storage Fetcher tool to download the source file." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1StorageSourceManifest": { + "description": "Location of the source manifest in Cloud Storage. This feature is in Preview; see description [here](https://github.com/GoogleCloudPlatform/cloud-builders/tree/master/gcs-fetcher).", + "id": "GoogleDevtoolsCloudbuildV1StorageSourceManifest", + "properties": { + "bucket": { + "description": "Cloud Storage bucket containing the source manifest (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).", + "type": "string" + }, + "generation": { + "description": "Cloud Storage generation for the object. If the generation is omitted, the latest generation will be used.", + "format": "int64", + "type": "string" + }, + "object": { + "description": "Cloud Storage object containing the source manifest. This object must be a JSON file.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1TimeSpan": { + "description": "Start and end times for a build execution phase.", + "id": "GoogleDevtoolsCloudbuildV1TimeSpan", + "properties": { + "endTime": { + "description": "End of time span.", + "format": "google-datetime", + "type": "string" + }, + "startTime": { + "description": "Start of time span.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1UploadedMavenArtifact": { + "description": "A Maven artifact uploaded using the MavenArtifact directive.", + "id": "GoogleDevtoolsCloudbuildV1UploadedMavenArtifact", + "properties": { + "fileHashes": { + "$ref": "GoogleDevtoolsCloudbuildV1FileHashes", + "description": "Hash types and values of the Maven Artifact." + }, + "pushTiming": { + "$ref": "GoogleDevtoolsCloudbuildV1TimeSpan", + "description": "Output only. Stores timing information for pushing the specified artifact.", + "readOnly": true + }, + "uri": { + "description": "URI of the uploaded artifact.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1UploadedNpmPackage": { + "description": "An npm package uploaded to Artifact Registry using the NpmPackage directive.", + "id": "GoogleDevtoolsCloudbuildV1UploadedNpmPackage", + "properties": { + "fileHashes": { + "$ref": "GoogleDevtoolsCloudbuildV1FileHashes", + "description": "Hash types and values of the npm package." + }, + "pushTiming": { + "$ref": "GoogleDevtoolsCloudbuildV1TimeSpan", + "description": "Output only. Stores timing information for pushing the specified artifact.", + "readOnly": true + }, + "uri": { + "description": "URI of the uploaded npm package.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1UploadedPythonPackage": { + "description": "Artifact uploaded using the PythonPackage directive.", + "id": "GoogleDevtoolsCloudbuildV1UploadedPythonPackage", + "properties": { + "fileHashes": { + "$ref": "GoogleDevtoolsCloudbuildV1FileHashes", + "description": "Hash types and values of the Python Artifact." + }, + "pushTiming": { + "$ref": "GoogleDevtoolsCloudbuildV1TimeSpan", + "description": "Output only. Stores timing information for pushing the specified artifact.", + "readOnly": true + }, + "uri": { + "description": "URI of the uploaded artifact.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1Volume": { + "description": "Volume describes a Docker container volume which is mounted into build steps in order to persist files across build step execution.", + "id": "GoogleDevtoolsCloudbuildV1Volume", + "properties": { + "name": { + "description": "Name of the volume to mount. Volume names must be unique per build step and must be valid names for Docker volumes. Each named volume must be used by at least two build steps.", + "type": "string" + }, + "path": { + "description": "Path at which to mount the volume. Paths must be absolute and cannot conflict with other volume paths on the same build step or with certain reserved volume paths.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1Warning": { + "description": "A non-fatal problem encountered during the execution of the build.", + "id": "GoogleDevtoolsCloudbuildV1Warning", + "properties": { + "priority": { + "description": "The priority for this warning.", + "enum": [ + "PRIORITY_UNSPECIFIED", + "INFO", + "WARNING", + "ALERT" + ], + "enumDescriptions": [ + "Should not be used.", + "e.g. deprecation warnings and alternative feature highlights.", + "e.g. automated detection of possible issues with the build.", + "e.g. alerts that a feature used in the build is pending removal" + ], + "type": "string" + }, + "text": { + "description": "Explanation of the warning generated.", + "type": "string" + } + }, + "type": "object" + }, "GoogleLongrunningListOperationsResponse": { "description": "The response message for Operations.ListOperations.", "id": "GoogleLongrunningListOperationsResponse", @@ -3581,6 +4853,14 @@ "description": "JobSpec describes how the job will look.", "id": "JobSpec", "properties": { + "runExecutionToken": { + "description": "A unique string used as a suffix for creating a new execution. The Job will become ready when the execution is successfully completed. The sum of job name and token length must be fewer than 63 characters.", + "type": "string" + }, + "startExecutionToken": { + "description": "A unique string used as a suffix for creating a new execution. The Job will become ready when the execution is successfully started. The sum of job name and token length must be fewer than 63 characters.", + "type": "string" + }, "template": { "$ref": "ExecutionTemplateSpec", "description": "Optional. Describes the execution that will be created when running a job." @@ -4001,7 +5281,7 @@ "type": "object" }, "NFSVolumeSource": { - "description": "Represents a persistent volume that will be mounted using NFS. This volume will be shared between all instances of the Service and data will not be deleted when the instance is shut down.", + "description": "Represents a persistent volume that will be mounted using NFS. This volume will be shared between all instances of the resource and data will not be deleted when the instance is shut down.", "id": "NFSVolumeSource", "properties": { "path": { @@ -4595,7 +5875,7 @@ }, "metadata": { "$ref": "ObjectMeta", - "description": "Metadata associated with this Service, including name, namespace, labels, and annotations. In Cloud Run, annotations with 'run.googleapis.com/' and 'autoscaling.knative.dev' are restricted, and the accepted annotations will be different depending on the resource type. The following Cloud Run-specific annotations are accepted in Service.metadata.annotations. * `run.googleapis.com/binary-authorization-breakglass` * `run.googleapis.com/binary-authorization` * `run.googleapis.com/client-name` * `run.googleapis.com/custom-audiences` * `run.googleapis.com/default-url-disabled`: Service. * `run.googleapis.com/description` * `run.googleapis.com/gc-traffic-tags` * `run.googleapis.com/ingress` * `run.googleapis.com/ingress` sets the ingress settings for the Service. See [the ingress settings documentation](/run/docs/securing/ingress) for details on configuring ingress settings. * `run.googleapis.com/ingress-status` is output-only and contains the currently active ingress settings for the Service. `run.googleapis.com/ingress-status` may differ from `run.googleapis.com/ingress` while the system is processing a change to `run.googleapis.com/ingress` or if the system failed to process a change to `run.googleapis.com/ingress`. When the system has processed all changes successfully `run.googleapis.com/ingress-status` and `run.googleapis.com/ingress` are equal." + "description": "Metadata associated with this Service, including name, namespace, labels, and annotations. In Cloud Run, annotations with 'run.googleapis.com/' and 'autoscaling.knative.dev' are restricted, and the accepted annotations will be different depending on the resource type. The following Cloud Run-specific annotations are accepted in Service.metadata.annotations. * `run.googleapis.com/binary-authorization-breakglass` * `run.googleapis.com/binary-authorization` * `run.googleapis.com/client-name` * `run.googleapis.com/custom-audiences` * `run.googleapis.com/default-url-disabled` * `run.googleapis.com/description` * `run.googleapis.com/gc-traffic-tags` * `run.googleapis.com/ingress` * `run.googleapis.com/ingress` sets the ingress settings for the Service. See [the ingress settings documentation](/run/docs/securing/ingress) for details on configuring ingress settings. * `run.googleapis.com/ingress-status` is output-only and contains the currently active ingress settings for the Service. `run.googleapis.com/ingress-status` may differ from `run.googleapis.com/ingress` while the system is processing a change to `run.googleapis.com/ingress` or if the system failed to process a change to `run.googleapis.com/ingress`. When the system has processed all changes successfully `run.googleapis.com/ingress-status` and `run.googleapis.com/ingress` are equal." }, "spec": { "$ref": "ServiceSpec", diff --git a/etc/api/run/v2/run-api.json b/etc/api/run/v2/run-api.json index 95d183b7e0..ca8f4e1047 100644 --- a/etc/api/run/v2/run-api.json +++ b/etc/api/run/v2/run-api.json @@ -310,6 +310,86 @@ "projects": { "resources": { "locations": { + "methods": { + "exportImage": { + "description": "Export image for a given resource.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/{locationsId1}:exportImage", + "httpMethod": "POST", + "id": "run.projects.locations.exportImage", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the resource of which image metadata should be exported. Format: `projects/{project_id_or_number}/locations/{location}/services/{service}/revisions/{revision}` for Revision `projects/{project_id_or_number}/locations/{location}/jobs/{job}/executions/{execution}` for Execution", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/.*$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}:exportImage", + "request": { + "$ref": "GoogleCloudRunV2ExportImageRequest" + }, + "response": { + "$ref": "GoogleCloudRunV2ExportImageResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "exportImageMetadata": { + "description": "Export image metadata for a given resource.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/{locationsId1}:exportImageMetadata", + "httpMethod": "GET", + "id": "run.projects.locations.exportImageMetadata", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the resource of which image metadata should be exported. Format: `projects/{project_id_or_number}/locations/{location}/services/{service}/revisions/{revision}` for Revision `projects/{project_id_or_number}/locations/{location}/jobs/{job}/executions/{execution}` for Execution", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/.*$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}:exportImageMetadata", + "response": { + "$ref": "GoogleCloudRunV2Metadata" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "exportMetadata": { + "description": "Export generated customer metadata for a given resource.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/{locationsId1}:exportMetadata", + "httpMethod": "GET", + "id": "run.projects.locations.exportMetadata", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the resource of which metadata should be exported. Format: `projects/{project_id_or_number}/locations/{location}/services/{service}` for Service `projects/{project_id_or_number}/locations/{location}/services/{service}/revisions/{revision}` for Revision `projects/{project_id_or_number}/locations/{location}/jobs/{job}/executions/{execution}` for Execution", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/.*$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}:exportMetadata", + "response": { + "$ref": "GoogleCloudRunV2Metadata" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, "resources": { "jobs": { "methods": { @@ -493,7 +573,7 @@ ], "parameters": { "allowMissing": { - "description": "If set to true, and if the Job does not exist, it will create a new one. Caller must have both create and update permissions for this call if this is set to true.", + "description": "Optional. If set to true, and if the Job does not exist, it will create a new one. Caller must have both create and update permissions for this call if this is set to true.", "location": "query", "type": "boolean" }, @@ -672,6 +752,39 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "exportStatus": { + "description": "Read the status of an image export operation.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/jobs/{jobsId}/executions/{executionsId}/{executionsId1}:exportStatus", + "httpMethod": "GET", + "id": "run.projects.locations.jobs.executions.exportStatus", + "parameterOrder": [ + "name", + "operationId" + ], + "parameters": { + "name": { + "description": "Required. The name of the resource of which image export operation status has to be fetched. Format: `projects/{project_id_or_number}/locations/{location}/services/{service}/revisions/{revision}` for Revision `projects/{project_id_or_number}/locations/{location}/jobs/{job}/executions/{execution}` for Execution", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/jobs/[^/]+/executions/[^/]+$", + "required": true, + "type": "string" + }, + "operationId": { + "description": "Required. The operation id returned from ExportImage.", + "location": "path", + "pattern": "^[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}/{+operationId}:exportStatus", + "response": { + "$ref": "GoogleCloudRunV2ExportStatusResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "get": { "description": "Gets information about an Execution.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/jobs/{jobsId}/executions/{executionsId}", @@ -1119,7 +1232,7 @@ ], "parameters": { "allowMissing": { - "description": "If set to true, and if the Service does not exist, it will create a new one. The caller must have 'run.services.create' permissions if this is set to true and the Service does not exist.", + "description": "Optional. If set to true, and if the Service does not exist, it will create a new one. The caller must have 'run.services.create' permissions if this is set to true and the Service does not exist.", "location": "query", "type": "boolean" }, @@ -1130,6 +1243,12 @@ "required": true, "type": "string" }, + "updateMask": { + "description": "Optional. The list of fields to be updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + }, "validateOnly": { "description": "Indicates that the request should be validated and default values populated, without persisting the request or updating any resources.", "location": "query", @@ -1242,6 +1361,39 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "exportStatus": { + "description": "Read the status of an image export operation.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/services/{servicesId}/revisions/{revisionsId}/{revisionsId1}:exportStatus", + "httpMethod": "GET", + "id": "run.projects.locations.services.revisions.exportStatus", + "parameterOrder": [ + "name", + "operationId" + ], + "parameters": { + "name": { + "description": "Required. The name of the resource of which image export operation status has to be fetched. Format: `projects/{project_id_or_number}/locations/{location}/services/{service}/revisions/{revision}` for Revision `projects/{project_id_or_number}/locations/{location}/jobs/{job}/executions/{execution}` for Execution", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+/revisions/[^/]+$", + "required": true, + "type": "string" + }, + "operationId": { + "description": "Required. The operation id returned from ExportImage.", + "location": "path", + "pattern": "^[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}/{+operationId}:exportStatus", + "response": { + "$ref": "GoogleCloudRunV2ExportStatusResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "get": { "description": "Gets information about a Revision.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/services/{servicesId}/revisions/{revisionsId}", @@ -1317,7 +1469,7 @@ } } }, - "revision": "20240225", + "revision": "20240412", "rootUrl": "https://run.googleapis.com/", "schemas": { "GoogleCloudRunV2BinaryAuthorization": { @@ -1325,11 +1477,15 @@ "id": "GoogleCloudRunV2BinaryAuthorization", "properties": { "breakglassJustification": { - "description": "If present, indicates to use Breakglass using this justification. If use_default is False, then it must be empty. For more information on breakglass, see https://cloud.google.com/binary-authorization/docs/using-breakglass", + "description": "Optional. If present, indicates to use Breakglass using this justification. If use_default is False, then it must be empty. For more information on breakglass, see https://cloud.google.com/binary-authorization/docs/using-breakglass", + "type": "string" + }, + "policy": { + "description": "Optional. The path to a binary authorization policy. Format: projects/{project}/platforms/cloudRun/{policy-name}", "type": "string" }, "useDefault": { - "description": "If True, indicates to use the default project's binary authorization policy. If False, binary authorization will be disabled.", + "description": "Optional. If True, indicates to use the default project's binary authorization policy. If False, binary authorization will be disabled.", "type": "boolean" } }, @@ -1369,7 +1525,7 @@ "id": "GoogleCloudRunV2Condition", "properties": { "executionReason": { - "description": "A reason for the execution condition.", + "description": "Output only. A reason for the execution condition.", "enum": [ "EXECUTION_REASON_UNDEFINED", "JOB_STATUS_SERVICE_POLLING_ERROR", @@ -1386,6 +1542,7 @@ "The execution is in the process of being cancelled.", "The execution was deleted." ], + "readOnly": true, "type": "string" }, "lastTransitionTime": { @@ -1398,7 +1555,7 @@ "type": "string" }, "reason": { - "description": "A common (service-level) reason for this condition.", + "description": "Output only. A common (service-level) reason for this condition.", "enum": [ "COMMON_REASON_UNDEFINED", "UNKNOWN", @@ -1433,10 +1590,11 @@ "System will retry later; current attempt failed.", "An internal error occurred. Further information may be in the message." ], + "readOnly": true, "type": "string" }, "revisionReason": { - "description": "A reason for the revision condition.", + "description": "Output only. A reason for the revision condition.", "enum": [ "REVISION_REASON_UNDEFINED", "PENDING", @@ -1467,6 +1625,7 @@ "A revision's container has no port specified since the revision is of a manually scaled service with 0 instance count", "A revision with min_instance_count > 0 was created and is waiting for enough instances to begin a traffic migration." ], + "readOnly": true, "type": "string" }, "severity": { @@ -1922,16 +2081,71 @@ }, "type": "object" }, + "GoogleCloudRunV2ExportImageRequest": { + "description": "Request message for exporting Cloud Run image.", + "id": "GoogleCloudRunV2ExportImageRequest", + "properties": { + "destinationRepo": { + "description": "Required. The export destination url (the Artifact Registry repo).", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRunV2ExportImageResponse": { + "description": "ExportImageResponse contains an operation Id to track the image export operation.", + "id": "GoogleCloudRunV2ExportImageResponse", + "properties": { + "operationId": { + "description": "An operation ID used to track the status of image exports tied to the original pod ID in the request.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRunV2ExportStatusResponse": { + "description": "ExportStatusResponse contains the status of image export operation, with the status of each image export job.", + "id": "GoogleCloudRunV2ExportStatusResponse", + "properties": { + "imageExportStatuses": { + "description": "The status of each image export job.", + "items": { + "$ref": "GoogleCloudRunV2ImageExportStatus" + }, + "type": "array" + }, + "operationId": { + "description": "The operation id.", + "type": "string" + }, + "operationState": { + "description": "Output only. The state of the overall export operation.", + "enum": [ + "OPERATION_STATE_UNSPECIFIED", + "IN_PROGRESS", + "FINISHED" + ], + "enumDescriptions": [ + "State unspecified.", + "Operation still in progress.", + "Operation finished." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudRunV2GCSVolumeSource": { - "description": "Represents a GCS Bucket mounted as a volume.", + "description": "Represents a volume backed by a Cloud Storage bucket using Cloud Storage FUSE.", "id": "GoogleCloudRunV2GCSVolumeSource", "properties": { "bucket": { - "description": "GCS Bucket name", + "description": "Cloud Storage Bucket name.", "type": "string" }, "readOnly": { - "description": "If true, mount the GCS bucket as read-only", + "description": "If true, the volume will be mounted as read only for all mounts.", "type": "boolean" } }, @@ -1942,12 +2156,12 @@ "id": "GoogleCloudRunV2GRPCAction", "properties": { "port": { - "description": "Port number of the gRPC service. Number must be in the range 1 to 65535. If not specified, defaults to the exposed port of the container, which is the value of container.ports[0].containerPort.", + "description": "Optional. Port number of the gRPC service. Number must be in the range 1 to 65535. If not specified, defaults to the exposed port of the container, which is the value of container.ports[0].containerPort.", "format": "int32", "type": "integer" }, "service": { - "description": "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md ). If this is not specified, the default behavior is defined by gRPC.", + "description": "Optional. Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md ). If this is not specified, the default behavior is defined by gRPC.", "type": "string" } }, @@ -1958,18 +2172,18 @@ "id": "GoogleCloudRunV2HTTPGetAction", "properties": { "httpHeaders": { - "description": "Custom headers to set in the request. HTTP allows repeated headers.", + "description": "Optional. Custom headers to set in the request. HTTP allows repeated headers.", "items": { "$ref": "GoogleCloudRunV2HTTPHeader" }, "type": "array" }, "path": { - "description": "Path to access on the HTTP server. Defaults to '/'.", + "description": "Optional. Path to access on the HTTP server. Defaults to '/'.", "type": "string" }, "port": { - "description": "Port number to access on the container. Must be in the range 1 to 65535. If not specified, defaults to the exposed port of the container, which is the value of container.ports[0].containerPort.", + "description": "Optional. Port number to access on the container. Must be in the range 1 to 65535. If not specified, defaults to the exposed port of the container, which is the value of container.ports[0].containerPort.", "format": "int32", "type": "integer" } @@ -1985,7 +2199,41 @@ "type": "string" }, "value": { - "description": "The header field value", + "description": "Optional. The header field value", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRunV2ImageExportStatus": { + "description": "The status of an image export job.", + "id": "GoogleCloudRunV2ImageExportStatus", + "properties": { + "exportJobState": { + "description": "Output only. Has the image export job finished (regardless of successful or failure).", + "enum": [ + "EXPORT_JOB_STATE_UNSPECIFIED", + "IN_PROGRESS", + "FINISHED" + ], + "enumDescriptions": [ + "State unspecified.", + "Job still in progress.", + "Job finished." + ], + "readOnly": true, + "type": "string" + }, + "exportedImageDigest": { + "description": "The exported image ID as it will appear in Artifact Registry.", + "type": "string" + }, + "status": { + "$ref": "UtilStatusProto", + "description": "The status of the export task if done." + }, + "tag": { + "description": "The image tag as it will appear in Artifact Registry.", "type": "string" } }, @@ -2123,6 +2371,10 @@ "readOnly": true, "type": "boolean" }, + "startExecutionToken": { + "description": "A unique string used as a suffix creating a new execution. The Job will become ready when the execution is successfully started. The sum of job name and token length must be fewer than 63 characters.", + "type": "string" + }, "template": { "$ref": "GoogleCloudRunV2ExecutionTemplate", "description": "Required. The template used to create executions for this Job." @@ -2236,6 +2488,17 @@ }, "type": "object" }, + "GoogleCloudRunV2Metadata": { + "description": "Metadata represents the JSON encoded generated customer metadata.", + "id": "GoogleCloudRunV2Metadata", + "properties": { + "metadata": { + "description": "JSON encoded Google-generated Customer Metadata for a given resource/project.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudRunV2NFSVolumeSource": { "description": "Represents an NFS mount.", "id": "GoogleCloudRunV2NFSVolumeSource", @@ -2245,7 +2508,7 @@ "type": "string" }, "readOnly": { - "description": "If true, mount the NFS volume as read only", + "description": "If true, the volume will be mounted as read only for all mounts.", "type": "boolean" }, "server": { @@ -2260,15 +2523,15 @@ "id": "GoogleCloudRunV2NetworkInterface", "properties": { "network": { - "description": "The VPC network that the Cloud Run resource will be able to send traffic to. At least one of network or subnetwork must be specified. If both network and subnetwork are specified, the given VPC subnetwork must belong to the given VPC network. If network is not specified, it will be looked up from the subnetwork.", + "description": "Optional. The VPC network that the Cloud Run resource will be able to send traffic to. At least one of network or subnetwork must be specified. If both network and subnetwork are specified, the given VPC subnetwork must belong to the given VPC network. If network is not specified, it will be looked up from the subnetwork.", "type": "string" }, "subnetwork": { - "description": "The VPC subnetwork that the Cloud Run resource will get IPs from. At least one of network or subnetwork must be specified. If both network and subnetwork are specified, the given VPC subnetwork must belong to the given VPC network. If subnetwork is not specified, the subnetwork with the same name with the network will be used.", + "description": "Optional. The VPC subnetwork that the Cloud Run resource will get IPs from. At least one of network or subnetwork must be specified. If both network and subnetwork are specified, the given VPC subnetwork must belong to the given VPC network. If subnetwork is not specified, the subnetwork with the same name with the network will be used.", "type": "string" }, "tags": { - "description": "Network tags applied to this Cloud Run resource.", + "description": "Optional. Network tags applied to this Cloud Run resource.", "items": { "type": "string" }, @@ -2306,34 +2569,34 @@ "id": "GoogleCloudRunV2Probe", "properties": { "failureThreshold": { - "description": "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", + "description": "Optional. Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.", "format": "int32", "type": "integer" }, "grpc": { "$ref": "GoogleCloudRunV2GRPCAction", - "description": "GRPC specifies an action involving a gRPC port. Exactly one of httpGet, tcpSocket, or grpc must be specified." + "description": "Optional. GRPC specifies an action involving a gRPC port. Exactly one of httpGet, tcpSocket, or grpc must be specified." }, "httpGet": { "$ref": "GoogleCloudRunV2HTTPGetAction", - "description": "HTTPGet specifies the http request to perform. Exactly one of httpGet, tcpSocket, or grpc must be specified." + "description": "Optional. HTTPGet specifies the http request to perform. Exactly one of httpGet, tcpSocket, or grpc must be specified." }, "initialDelaySeconds": { - "description": "Number of seconds after the container has started before the probe is initiated. Defaults to 0 seconds. Minimum value is 0. Maximum value for liveness probe is 3600. Maximum value for startup probe is 240.", + "description": "Optional. Number of seconds after the container has started before the probe is initiated. Defaults to 0 seconds. Minimum value is 0. Maximum value for liveness probe is 3600. Maximum value for startup probe is 240.", "format": "int32", "type": "integer" }, "periodSeconds": { - "description": "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1. Maximum value for liveness probe is 3600. Maximum value for startup probe is 240. Must be greater or equal than timeout_seconds.", + "description": "Optional. How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1. Maximum value for liveness probe is 3600. Maximum value for startup probe is 240. Must be greater or equal than timeout_seconds.", "format": "int32", "type": "integer" }, "tcpSocket": { "$ref": "GoogleCloudRunV2TCPSocketAction", - "description": "TCPSocket specifies an action involving a TCP port. Exactly one of httpGet, tcpSocket, or grpc must be specified." + "description": "Optional. TCPSocket specifies an action involving a TCP port. Exactly one of httpGet, tcpSocket, or grpc must be specified." }, "timeoutSeconds": { - "description": "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. Maximum value is 3600. Must be smaller than period_seconds.", + "description": "Optional. Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. Maximum value is 3600. Must be smaller than period_seconds.", "format": "int32", "type": "integer" } @@ -2575,12 +2838,12 @@ "id": "GoogleCloudRunV2RevisionScaling", "properties": { "maxInstanceCount": { - "description": "Maximum number of serving instances that this resource should have.", + "description": "Optional. Maximum number of serving instances that this resource should have.", "format": "int32", "type": "integer" }, "minInstanceCount": { - "description": "Minimum number of serving instances that this resource should have.", + "description": "Optional. Minimum number of serving instances that this resource should have.", "format": "int32", "type": "integer" } @@ -2607,7 +2870,7 @@ "additionalProperties": { "type": "string" }, - "description": "Unstructured key value map that may be set by external tools to store and arbitrary metadata. They are not queryable and should be preserved when modifying objects. Cloud Run API v2 does not support annotations with `run.googleapis.com`, `cloud.googleapis.com`, `serving.knative.dev`, or `autoscaling.knative.dev` namespaces, and they will be rejected. All system annotations in v1 now have a corresponding field in v2 RevisionTemplate. This field follows Kubernetes annotations' namespacing, limits, and rules.", + "description": "Optional. Unstructured key value map that may be set by external tools to store and arbitrary metadata. They are not queryable and should be preserved when modifying objects. Cloud Run API v2 does not support annotations with `run.googleapis.com`, `cloud.googleapis.com`, `serving.knative.dev`, or `autoscaling.knative.dev` namespaces, and they will be rejected. All system annotations in v1 now have a corresponding field in v2 RevisionTemplate. This field follows Kubernetes annotations' namespacing, limits, and rules.", "type": "object" }, "containers": { @@ -2622,7 +2885,7 @@ "type": "string" }, "executionEnvironment": { - "description": "The sandbox environment to host this Revision.", + "description": "Optional. The sandbox environment to host this Revision.", "enum": [ "EXECUTION_ENVIRONMENT_UNSPECIFIED", "EXECUTION_ENVIRONMENT_GEN1", @@ -2643,24 +2906,24 @@ "additionalProperties": { "type": "string" }, - "description": "Unstructured key value map that can be used to organize and categorize objects. User-provided labels are shared with Google's billing system, so they can be used to filter, or break down billing charges by team, component, environment, state, etc. For more information, visit https://cloud.google.com/resource-manager/docs/creating-managing-labels or https://cloud.google.com/run/docs/configuring/labels. Cloud Run API v2 does not support labels with `run.googleapis.com`, `cloud.googleapis.com`, `serving.knative.dev`, or `autoscaling.knative.dev` namespaces, and they will be rejected. All system labels in v1 now have a corresponding field in v2 RevisionTemplate.", + "description": "Optional. Unstructured key value map that can be used to organize and categorize objects. User-provided labels are shared with Google's billing system, so they can be used to filter, or break down billing charges by team, component, environment, state, etc. For more information, visit https://cloud.google.com/resource-manager/docs/creating-managing-labels or https://cloud.google.com/run/docs/configuring/labels. Cloud Run API v2 does not support labels with `run.googleapis.com`, `cloud.googleapis.com`, `serving.knative.dev`, or `autoscaling.knative.dev` namespaces, and they will be rejected. All system labels in v1 now have a corresponding field in v2 RevisionTemplate.", "type": "object" }, "maxInstanceRequestConcurrency": { - "description": "Sets the maximum number of requests that each serving instance can receive.", + "description": "Optional. Sets the maximum number of requests that each serving instance can receive.", "format": "int32", "type": "integer" }, "revision": { - "description": "The unique name for the revision. If this field is omitted, it will be automatically generated based on the Service name.", + "description": "Optional. The unique name for the revision. If this field is omitted, it will be automatically generated based on the Service name.", "type": "string" }, "scaling": { "$ref": "GoogleCloudRunV2RevisionScaling", - "description": "Scaling settings for this Revision." + "description": "Optional. Scaling settings for this Revision." }, "serviceAccount": { - "description": "Email address of the IAM service account associated with the revision of the service. The service account represents the identity of the running revision, and determines what permissions the revision has. If not provided, the revision will use the project's default service account.", + "description": "Optional. Email address of the IAM service account associated with the revision of the service. The service account represents the identity of the running revision, and determines what permissions the revision has. If not provided, the revision will use the project's default service account.", "type": "string" }, "sessionAffinity": { @@ -2668,12 +2931,12 @@ "type": "boolean" }, "timeout": { - "description": "Max allowed time for an instance to respond to a request.", + "description": "Optional. Max allowed time for an instance to respond to a request.", "format": "google-duration", "type": "string" }, "volumes": { - "description": "A list of Volumes to make available to containers.", + "description": "Optional. A list of Volumes to make available to containers.", "items": { "$ref": "GoogleCloudRunV2Volume" }, @@ -2681,7 +2944,7 @@ }, "vpcAccess": { "$ref": "GoogleCloudRunV2VpcAccess", - "description": "VPC Access configuration to use for this Revision. For more information, visit https://cloud.google.com/run/docs/configuring/connecting-vpc." + "description": "Optional. VPC Access configuration to use for this Revision. For more information, visit https://cloud.google.com/run/docs/configuring/connecting-vpc." } }, "type": "object" @@ -2756,7 +3019,7 @@ }, "binaryAuthorization": { "$ref": "GoogleCloudRunV2BinaryAuthorization", - "description": "Settings for the Binary Authorization feature." + "description": "Optional. Settings for the Binary Authorization feature." }, "client": { "description": "Arbitrary identifier for the API client.", @@ -2824,18 +3087,20 @@ "type": "string" }, "ingress": { - "description": "Provides the ingress settings for this Service. On output, returns the currently observed ingress settings, or INGRESS_TRAFFIC_UNSPECIFIED if no revision is active.", + "description": "Optional. Provides the ingress settings for this Service. On output, returns the currently observed ingress settings, or INGRESS_TRAFFIC_UNSPECIFIED if no revision is active.", "enum": [ "INGRESS_TRAFFIC_UNSPECIFIED", "INGRESS_TRAFFIC_ALL", "INGRESS_TRAFFIC_INTERNAL_ONLY", - "INGRESS_TRAFFIC_INTERNAL_LOAD_BALANCER" + "INGRESS_TRAFFIC_INTERNAL_LOAD_BALANCER", + "INGRESS_TRAFFIC_NONE" ], "enumDescriptions": [ "Unspecified", "All inbound traffic is allowed.", "Only internal traffic is allowed.", - "Both internal and Google Cloud Load Balancer traffic is allowed." + "Both internal and Google Cloud Load Balancer traffic is allowed.", + "No ingress traffic is allowed." ], "type": "string" }, @@ -2862,7 +3127,7 @@ "type": "string" }, "launchStage": { - "description": "The launch stage as defined by [Google Cloud Platform Launch Stages](https://cloud.google.com/terms/launch-stages). Cloud Run supports `ALPHA`, `BETA`, and `GA`. If no value is specified, GA is assumed. Set the launch stage to a preview stage on input to allow use of preview features in that stage. On read (or output), describes whether the resource uses preview features. For example, if ALPHA is provided as input, but only BETA and GA-level features are used, this field will be BETA on output.", + "description": "Optional. The launch stage as defined by [Google Cloud Platform Launch Stages](https://cloud.google.com/terms/launch-stages). Cloud Run supports `ALPHA`, `BETA`, and `GA`. If no value is specified, GA is assumed. Set the launch stage to a preview stage on input to allow use of preview features in that stage. On read (or output), describes whether the resource uses preview features. For example, if ALPHA is provided as input, but only BETA and GA-level features are used, this field will be BETA on output.", "enum": [ "LAUNCH_STAGE_UNSPECIFIED", "UNIMPLEMENTED", @@ -2919,7 +3184,7 @@ "readOnly": true }, "traffic": { - "description": "Specifies how to distribute traffic over a collection of Revisions belonging to the Service. If traffic is empty or not provided, defaults to 100% traffic to the latest `Ready` Revision.", + "description": "Optional. Specifies how to distribute traffic over a collection of Revisions belonging to the Service. If traffic is empty or not provided, defaults to 100% traffic to the latest `Ready` Revision.", "items": { "$ref": "GoogleCloudRunV2TrafficTarget" }, @@ -2957,7 +3222,7 @@ "id": "GoogleCloudRunV2ServiceScaling", "properties": { "minInstanceCount": { - "description": "total min instances for the service. This number of instances is divided among all revisions with specified traffic based on the percent of traffic they are receiving. (ALPHA)", + "description": "Optional. total min instances for the service. This number of instances is divided among all revisions with specified traffic based on the percent of traffic they are receiving. (BETA)", "format": "int32", "type": "integer" } @@ -2969,7 +3234,7 @@ "id": "GoogleCloudRunV2TCPSocketAction", "properties": { "port": { - "description": "Port number to access on the container. Must be in the range 1 to 65535. If not specified, defaults to the exposed port of the container, which is the value of container.ports[0].containerPort.", + "description": "Optional. Port number to access on the container. Must be in the range 1 to 65535. If not specified, defaults to the exposed port of the container, which is the value of container.ports[0].containerPort.", "format": "int32", "type": "integer" } @@ -3204,7 +3469,7 @@ "type": "string" }, "executionEnvironment": { - "description": "The execution environment being used to host this Task.", + "description": "Optional. The execution environment being used to host this Task.", "enum": [ "EXECUTION_ENVIRONMENT_UNSPECIFIED", "EXECUTION_ENVIRONMENT_GEN1", @@ -3223,16 +3488,16 @@ "type": "integer" }, "serviceAccount": { - "description": "Email address of the IAM service account associated with the Task of a Job. The service account represents the identity of the running task, and determines what permissions the task has. If not provided, the task will use the project's default service account.", + "description": "Optional. Email address of the IAM service account associated with the Task of a Job. The service account represents the identity of the running task, and determines what permissions the task has. If not provided, the task will use the project's default service account.", "type": "string" }, "timeout": { - "description": "Max allowed time duration the Task may be active before the system will actively try to mark it failed and kill associated containers. This applies per attempt of a task, meaning each retry can run for the full timeout. Defaults to 600 seconds.", + "description": "Optional. Max allowed time duration the Task may be active before the system will actively try to mark it failed and kill associated containers. This applies per attempt of a task, meaning each retry can run for the full timeout. Defaults to 600 seconds.", "format": "google-duration", "type": "string" }, "volumes": { - "description": "A list of Volumes to make available to containers.", + "description": "Optional. A list of Volumes to make available to containers.", "items": { "$ref": "GoogleCloudRunV2Volume" }, @@ -3240,7 +3505,7 @@ }, "vpcAccess": { "$ref": "GoogleCloudRunV2VpcAccess", - "description": "VPC Access configuration to use for this Task. For more information, visit https://cloud.google.com/run/docs/configuring/connecting-vpc." + "description": "Optional. VPC Access configuration to use for this Task. For more information, visit https://cloud.google.com/run/docs/configuring/connecting-vpc." } }, "type": "object" @@ -3392,7 +3657,7 @@ "type": "string" }, "egress": { - "description": "Traffic VPC egress settings. If not provided, it defaults to PRIVATE_RANGES_ONLY.", + "description": "Optional. Traffic VPC egress settings. If not provided, it defaults to PRIVATE_RANGES_ONLY.", "enum": [ "VPC_EGRESS_UNSPECIFIED", "ALL_TRAFFIC", @@ -3406,7 +3671,7 @@ "type": "string" }, "networkInterfaces": { - "description": "Direct VPC egress settings. Currently only single network interface is supported.", + "description": "Optional. Direct VPC egress settings. Currently only single network interface is supported.", "items": { "$ref": "GoogleCloudRunV2NetworkInterface" }, @@ -3415,6 +3680,1278 @@ }, "type": "object" }, + "GoogleDevtoolsCloudbuildV1ApprovalConfig": { + "description": "ApprovalConfig describes configuration for manual approval of a build.", + "id": "GoogleDevtoolsCloudbuildV1ApprovalConfig", + "properties": { + "approvalRequired": { + "description": "Whether or not approval is needed. If this is set on a build, it will become pending when created, and will need to be explicitly approved to start.", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1ApprovalResult": { + "description": "ApprovalResult describes the decision and associated metadata of a manual approval of a build.", + "id": "GoogleDevtoolsCloudbuildV1ApprovalResult", + "properties": { + "approvalTime": { + "description": "Output only. The time when the approval decision was made.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "approverAccount": { + "description": "Output only. Email of the user that called the ApproveBuild API to approve or reject a build at the time that the API was called.", + "readOnly": true, + "type": "string" + }, + "comment": { + "description": "Optional. An optional comment for this manual approval result.", + "type": "string" + }, + "decision": { + "description": "Required. The decision of this manual approval.", + "enum": [ + "DECISION_UNSPECIFIED", + "APPROVED", + "REJECTED" + ], + "enumDescriptions": [ + "Default enum type. This should not be used.", + "Build is approved.", + "Build is rejected." + ], + "type": "string" + }, + "url": { + "description": "Optional. An optional URL tied to this manual approval result. This field is essentially the same as comment, except that it will be rendered by the UI differently. An example use case is a link to an external job that approved this Build.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1ArtifactObjects": { + "description": "Files in the workspace to upload to Cloud Storage upon successful completion of all build steps.", + "id": "GoogleDevtoolsCloudbuildV1ArtifactObjects", + "properties": { + "location": { + "description": "Cloud Storage bucket and optional object path, in the form \"gs://bucket/path/to/somewhere/\". (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)). Files in the workspace matching any path pattern will be uploaded to Cloud Storage with this location as a prefix.", + "type": "string" + }, + "paths": { + "description": "Path globs used to match files in the build's workspace.", + "items": { + "type": "string" + }, + "type": "array" + }, + "timing": { + "$ref": "GoogleDevtoolsCloudbuildV1TimeSpan", + "description": "Output only. Stores timing information for pushing all artifact objects.", + "readOnly": true + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1Artifacts": { + "description": "Artifacts produced by a build that should be uploaded upon successful completion of all build steps.", + "id": "GoogleDevtoolsCloudbuildV1Artifacts", + "properties": { + "images": { + "description": "A list of images to be pushed upon the successful completion of all build steps. The images will be pushed using the builder service account's credentials. The digests of the pushed images will be stored in the Build resource's results field. If any of the images fail to be pushed, the build is marked FAILURE.", + "items": { + "type": "string" + }, + "type": "array" + }, + "mavenArtifacts": { + "description": "A list of Maven artifacts to be uploaded to Artifact Registry upon successful completion of all build steps. Artifacts in the workspace matching specified paths globs will be uploaded to the specified Artifact Registry repository using the builder service account's credentials. If any artifacts fail to be pushed, the build is marked FAILURE.", + "items": { + "$ref": "GoogleDevtoolsCloudbuildV1MavenArtifact" + }, + "type": "array" + }, + "npmPackages": { + "description": "A list of npm packages to be uploaded to Artifact Registry upon successful completion of all build steps. Npm packages in the specified paths will be uploaded to the specified Artifact Registry repository using the builder service account's credentials. If any packages fail to be pushed, the build is marked FAILURE.", + "items": { + "$ref": "GoogleDevtoolsCloudbuildV1NpmPackage" + }, + "type": "array" + }, + "objects": { + "$ref": "GoogleDevtoolsCloudbuildV1ArtifactObjects", + "description": "A list of objects to be uploaded to Cloud Storage upon successful completion of all build steps. Files in the workspace matching specified paths globs will be uploaded to the specified Cloud Storage location using the builder service account's credentials. The location and generation of the uploaded objects will be stored in the Build resource's results field. If any objects fail to be pushed, the build is marked FAILURE." + }, + "pythonPackages": { + "description": "A list of Python packages to be uploaded to Artifact Registry upon successful completion of all build steps. The build service account credentials will be used to perform the upload. If any objects fail to be pushed, the build is marked FAILURE.", + "items": { + "$ref": "GoogleDevtoolsCloudbuildV1PythonPackage" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1Build": { + "description": "A build resource in the Cloud Build API. At a high level, a `Build` describes where to find source code, how to build it (for example, the builder image to run on the source), and where to store the built artifacts. Fields can include the following variables, which will be expanded when the build is created: - $PROJECT_ID: the project ID of the build. - $PROJECT_NUMBER: the project number of the build. - $LOCATION: the location/region of the build. - $BUILD_ID: the autogenerated ID of the build. - $REPO_NAME: the source repository name specified by RepoSource. - $BRANCH_NAME: the branch name specified by RepoSource. - $TAG_NAME: the tag name specified by RepoSource. - $REVISION_ID or $COMMIT_SHA: the commit SHA specified by RepoSource or resolved from the specified branch or tag. - $SHORT_SHA: first 7 characters of $REVISION_ID or $COMMIT_SHA.", + "id": "GoogleDevtoolsCloudbuildV1Build", + "properties": { + "approval": { + "$ref": "GoogleDevtoolsCloudbuildV1BuildApproval", + "description": "Output only. Describes this build's approval configuration, status, and result.", + "readOnly": true + }, + "artifacts": { + "$ref": "GoogleDevtoolsCloudbuildV1Artifacts", + "description": "Artifacts produced by the build that should be uploaded upon successful completion of all build steps." + }, + "availableSecrets": { + "$ref": "GoogleDevtoolsCloudbuildV1Secrets", + "description": "Secrets and secret environment variables." + }, + "buildTriggerId": { + "description": "Output only. The ID of the `BuildTrigger` that triggered this build, if it was triggered automatically.", + "readOnly": true, + "type": "string" + }, + "createTime": { + "description": "Output only. Time at which the request to create the build was received.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "failureInfo": { + "$ref": "GoogleDevtoolsCloudbuildV1FailureInfo", + "description": "Output only. Contains information about the build when status=FAILURE.", + "readOnly": true + }, + "finishTime": { + "description": "Output only. Time at which execution of the build was finished. The difference between finish_time and start_time is the duration of the build's execution.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "id": { + "description": "Output only. Unique identifier of the build.", + "readOnly": true, + "type": "string" + }, + "images": { + "description": "A list of images to be pushed upon the successful completion of all build steps. The images are pushed using the builder service account's credentials. The digests of the pushed images will be stored in the `Build` resource's results field. If any of the images fail to be pushed, the build status is marked `FAILURE`.", + "items": { + "type": "string" + }, + "type": "array" + }, + "logUrl": { + "description": "Output only. URL to logs for this build in Google Cloud Console.", + "readOnly": true, + "type": "string" + }, + "logsBucket": { + "description": "Cloud Storage bucket where logs should be written (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)). Logs file names will be of the format `${logs_bucket}/log-${build_id}.txt`.", + "type": "string" + }, + "name": { + "description": "Output only. The 'Build' name with format: `projects/{project}/locations/{location}/builds/{build}`, where {build} is a unique identifier generated by the service.", + "readOnly": true, + "type": "string" + }, + "options": { + "$ref": "GoogleDevtoolsCloudbuildV1BuildOptions", + "description": "Special options for this build." + }, + "projectId": { + "description": "Output only. ID of the project.", + "readOnly": true, + "type": "string" + }, + "queueTtl": { + "description": "TTL in queue for this build. If provided and the build is enqueued longer than this value, the build will expire and the build status will be `EXPIRED`. The TTL starts ticking from create_time.", + "format": "google-duration", + "type": "string" + }, + "results": { + "$ref": "GoogleDevtoolsCloudbuildV1Results", + "description": "Output only. Results of the build.", + "readOnly": true + }, + "secrets": { + "description": "Secrets to decrypt using Cloud Key Management Service. Note: Secret Manager is the recommended technique for managing sensitive data with Cloud Build. Use `available_secrets` to configure builds to access secrets from Secret Manager. For instructions, see: https://cloud.google.com/cloud-build/docs/securing-builds/use-secrets", + "items": { + "$ref": "GoogleDevtoolsCloudbuildV1Secret" + }, + "type": "array" + }, + "serviceAccount": { + "description": "IAM service account whose credentials will be used at build runtime. Must be of the format `projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}`. ACCOUNT can be email address or uniqueId of the service account. ", + "type": "string" + }, + "source": { + "$ref": "GoogleDevtoolsCloudbuildV1Source", + "description": "The location of the source files to build." + }, + "sourceProvenance": { + "$ref": "GoogleDevtoolsCloudbuildV1SourceProvenance", + "description": "Output only. A permanent fixed identifier for source.", + "readOnly": true + }, + "startTime": { + "description": "Output only. Time at which execution of the build was started.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "status": { + "description": "Output only. Status of the build.", + "enum": [ + "STATUS_UNKNOWN", + "PENDING", + "QUEUED", + "WORKING", + "SUCCESS", + "FAILURE", + "INTERNAL_ERROR", + "TIMEOUT", + "CANCELLED", + "EXPIRED" + ], + "enumDescriptions": [ + "Status of the build is unknown.", + "Build has been created and is pending execution and queuing. It has not been queued.", + "Build or step is queued; work has not yet begun.", + "Build or step is being executed.", + "Build or step finished successfully.", + "Build or step failed to complete successfully.", + "Build or step failed due to an internal cause.", + "Build or step took longer than was allowed.", + "Build or step was canceled by a user.", + "Build was enqueued for longer than the value of `queue_ttl`." + ], + "readOnly": true, + "type": "string" + }, + "statusDetail": { + "description": "Output only. Customer-readable message about the current status.", + "readOnly": true, + "type": "string" + }, + "steps": { + "description": "Required. The operations to be performed on the workspace.", + "items": { + "$ref": "GoogleDevtoolsCloudbuildV1BuildStep" + }, + "type": "array" + }, + "substitutions": { + "additionalProperties": { + "type": "string" + }, + "description": "Substitutions data for `Build` resource.", + "type": "object" + }, + "tags": { + "description": "Tags for annotation of a `Build`. These are not docker tags.", + "items": { + "type": "string" + }, + "type": "array" + }, + "timeout": { + "description": "Amount of time that this build should be allowed to run, to second granularity. If this amount of time elapses, work on the build will cease and the build status will be `TIMEOUT`. `timeout` starts ticking from `startTime`. Default time is 60 minutes.", + "format": "google-duration", + "type": "string" + }, + "timing": { + "additionalProperties": { + "$ref": "GoogleDevtoolsCloudbuildV1TimeSpan" + }, + "description": "Output only. Stores timing information for phases of the build. Valid keys are: * BUILD: time to execute all build steps. * PUSH: time to push all artifacts including docker images and non docker artifacts. * FETCHSOURCE: time to fetch source. * SETUPBUILD: time to set up build. If the build does not specify source or images, these keys will not be included.", + "readOnly": true, + "type": "object" + }, + "warnings": { + "description": "Output only. Non-fatal problems encountered during the execution of the build.", + "items": { + "$ref": "GoogleDevtoolsCloudbuildV1Warning" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1BuildApproval": { + "description": "BuildApproval describes a build's approval configuration, state, and result.", + "id": "GoogleDevtoolsCloudbuildV1BuildApproval", + "properties": { + "config": { + "$ref": "GoogleDevtoolsCloudbuildV1ApprovalConfig", + "description": "Output only. Configuration for manual approval of this build.", + "readOnly": true + }, + "result": { + "$ref": "GoogleDevtoolsCloudbuildV1ApprovalResult", + "description": "Output only. Result of manual approval for this Build.", + "readOnly": true + }, + "state": { + "description": "Output only. The state of this build's approval.", + "enum": [ + "STATE_UNSPECIFIED", + "PENDING", + "APPROVED", + "REJECTED", + "CANCELLED" + ], + "enumDescriptions": [ + "Default enum type. This should not be used.", + "Build approval is pending.", + "Build approval has been approved.", + "Build approval has been rejected.", + "Build was cancelled while it was still pending approval." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1BuildOperationMetadata": { + "description": "Metadata for build operations.", + "id": "GoogleDevtoolsCloudbuildV1BuildOperationMetadata", + "properties": { + "build": { + "$ref": "GoogleDevtoolsCloudbuildV1Build", + "description": "The build that the operation is tracking." + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1BuildOptions": { + "description": "Optional arguments to enable specific features of builds.", + "id": "GoogleDevtoolsCloudbuildV1BuildOptions", + "properties": { + "automapSubstitutions": { + "description": "Option to include built-in and custom substitutions as env variables for all build steps.", + "type": "boolean" + }, + "defaultLogsBucketBehavior": { + "description": "Optional. Option to specify how default logs buckets are setup.", + "enum": [ + "DEFAULT_LOGS_BUCKET_BEHAVIOR_UNSPECIFIED", + "REGIONAL_USER_OWNED_BUCKET" + ], + "enumDescriptions": [ + "Unspecified.", + "Bucket is located in user-owned project in the same region as the build. The builder service account must have access to create and write to Cloud Storage buckets in the build project." + ], + "type": "string" + }, + "diskSizeGb": { + "description": "Requested disk size for the VM that runs the build. Note that this is *NOT* \"disk free\"; some of the space will be used by the operating system and build utilities. Also note that this is the minimum disk size that will be allocated for the build -- the build may run with a larger disk than requested. At present, the maximum disk size is 2000GB; builds that request more than the maximum are rejected with an error.", + "format": "int64", + "type": "string" + }, + "dynamicSubstitutions": { + "description": "Option to specify whether or not to apply bash style string operations to the substitutions. NOTE: this is always enabled for triggered builds and cannot be overridden in the build configuration file.", + "type": "boolean" + }, + "env": { + "description": "A list of global environment variable definitions that will exist for all build steps in this build. If a variable is defined in both globally and in a build step, the variable will use the build step value. The elements are of the form \"KEY=VALUE\" for the environment variable \"KEY\" being given the value \"VALUE\".", + "items": { + "type": "string" + }, + "type": "array" + }, + "logStreamingOption": { + "description": "Option to define build log streaming behavior to Cloud Storage.", + "enum": [ + "STREAM_DEFAULT", + "STREAM_ON", + "STREAM_OFF" + ], + "enumDescriptions": [ + "Service may automatically determine build log streaming behavior.", + "Build logs should be streamed to Cloud Storage.", + "Build logs should not be streamed to Cloud Storage; they will be written when the build is completed." + ], + "type": "string" + }, + "logging": { + "description": "Option to specify the logging mode, which determines if and where build logs are stored.", + "enum": [ + "LOGGING_UNSPECIFIED", + "LEGACY", + "GCS_ONLY", + "STACKDRIVER_ONLY", + "CLOUD_LOGGING_ONLY", + "NONE" + ], + "enumDeprecated": [ + false, + false, + false, + true, + false, + false + ], + "enumDescriptions": [ + "The service determines the logging mode. The default is `LEGACY`. Do not rely on the default logging behavior as it may change in the future.", + "Build logs are stored in Cloud Logging and Cloud Storage.", + "Build logs are stored in Cloud Storage.", + "This option is the same as CLOUD_LOGGING_ONLY.", + "Build logs are stored in Cloud Logging. Selecting this option will not allow [logs streaming](https://cloud.google.com/sdk/gcloud/reference/builds/log).", + "Turn off all logging. No build logs will be captured." + ], + "type": "string" + }, + "machineType": { + "description": "Compute Engine machine type on which to run the build.", + "enum": [ + "UNSPECIFIED", + "N1_HIGHCPU_8", + "N1_HIGHCPU_32", + "E2_HIGHCPU_8", + "E2_HIGHCPU_32", + "E2_MEDIUM" + ], + "enumDeprecated": [ + false, + true, + true, + false, + false, + false + ], + "enumDescriptions": [ + "Standard machine type.", + "Highcpu machine with 8 CPUs.", + "Highcpu machine with 32 CPUs.", + "Highcpu e2 machine with 8 CPUs.", + "Highcpu e2 machine with 32 CPUs.", + "E2 machine with 1 CPU." + ], + "type": "string" + }, + "pool": { + "$ref": "GoogleDevtoolsCloudbuildV1PoolOption", + "description": "Optional. Specification for execution on a `WorkerPool`. See [running builds in a private pool](https://cloud.google.com/build/docs/private-pools/run-builds-in-private-pool) for more information." + }, + "requestedVerifyOption": { + "description": "Requested verifiability options.", + "enum": [ + "NOT_VERIFIED", + "VERIFIED" + ], + "enumDescriptions": [ + "Not a verifiable build (the default).", + "Build must be verified." + ], + "type": "string" + }, + "secretEnv": { + "description": "A list of global environment variables, which are encrypted using a Cloud Key Management Service crypto key. These values must be specified in the build's `Secret`. These variables will be available to all build steps in this build.", + "items": { + "type": "string" + }, + "type": "array" + }, + "sourceProvenanceHash": { + "description": "Requested hash for SourceProvenance.", + "items": { + "enum": [ + "NONE", + "SHA256", + "MD5", + "SHA512" + ], + "enumDescriptions": [ + "No hash requested.", + "Use a sha256 hash.", + "Use a md5 hash.", + "Use a sha512 hash." + ], + "type": "string" + }, + "type": "array" + }, + "substitutionOption": { + "description": "Option to specify behavior when there is an error in the substitution checks. NOTE: this is always set to ALLOW_LOOSE for triggered builds and cannot be overridden in the build configuration file.", + "enum": [ + "MUST_MATCH", + "ALLOW_LOOSE" + ], + "enumDescriptions": [ + "Fails the build if error in substitutions checks, like missing a substitution in the template or in the map.", + "Do not fail the build if error in substitutions checks." + ], + "type": "string" + }, + "volumes": { + "description": "Global list of volumes to mount for ALL build steps Each volume is created as an empty volume prior to starting the build process. Upon completion of the build, volumes and their contents are discarded. Global volume names and paths cannot conflict with the volumes defined a build step. Using a global volume in a build with only one step is not valid as it is indicative of a build request with an incorrect configuration.", + "items": { + "$ref": "GoogleDevtoolsCloudbuildV1Volume" + }, + "type": "array" + }, + "workerPool": { + "deprecated": true, + "description": "This field deprecated; please use `pool.name` instead.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1BuildStep": { + "description": "A step in the build pipeline.", + "id": "GoogleDevtoolsCloudbuildV1BuildStep", + "properties": { + "allowExitCodes": { + "description": "Allow this build step to fail without failing the entire build if and only if the exit code is one of the specified codes. If allow_failure is also specified, this field will take precedence.", + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + }, + "allowFailure": { + "description": "Allow this build step to fail without failing the entire build. If false, the entire build will fail if this step fails. Otherwise, the build will succeed, but this step will still have a failure status. Error information will be reported in the failure_detail field.", + "type": "boolean" + }, + "args": { + "description": "A list of arguments that will be presented to the step when it is started. If the image used to run the step's container has an entrypoint, the `args` are used as arguments to that entrypoint. If the image does not define an entrypoint, the first element in args is used as the entrypoint, and the remainder will be used as arguments.", + "items": { + "type": "string" + }, + "type": "array" + }, + "automapSubstitutions": { + "description": "Option to include built-in and custom substitutions as env variables for this build step. This option will override the global option in BuildOption.", + "type": "boolean" + }, + "dir": { + "description": "Working directory to use when running this step's container. If this value is a relative path, it is relative to the build's working directory. If this value is absolute, it may be outside the build's working directory, in which case the contents of the path may not be persisted across build step executions, unless a `volume` for that path is specified. If the build specifies a `RepoSource` with `dir` and a step with a `dir`, which specifies an absolute path, the `RepoSource` `dir` is ignored for the step's execution.", + "type": "string" + }, + "entrypoint": { + "description": "Entrypoint to be used instead of the build step image's default entrypoint. If unset, the image's default entrypoint is used.", + "type": "string" + }, + "env": { + "description": "A list of environment variable definitions to be used when running a step. The elements are of the form \"KEY=VALUE\" for the environment variable \"KEY\" being given the value \"VALUE\".", + "items": { + "type": "string" + }, + "type": "array" + }, + "exitCode": { + "description": "Output only. Return code from running the step.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "id": { + "description": "Unique identifier for this build step, used in `wait_for` to reference this build step as a dependency.", + "type": "string" + }, + "name": { + "description": "Required. The name of the container image that will run this particular build step. If the image is available in the host's Docker daemon's cache, it will be run directly. If not, the host will attempt to pull the image first, using the builder service account's credentials if necessary. The Docker daemon's cache will already have the latest versions of all of the officially supported build steps ([https://github.com/GoogleCloudPlatform/cloud-builders](https://github.com/GoogleCloudPlatform/cloud-builders)). The Docker daemon will also have cached many of the layers for some popular images, like \"ubuntu\", \"debian\", but they will be refreshed at the time you attempt to use them. If you built an image in a previous build step, it will be stored in the host's Docker daemon's cache and is available to use as the name for a later build step.", + "type": "string" + }, + "pullTiming": { + "$ref": "GoogleDevtoolsCloudbuildV1TimeSpan", + "description": "Output only. Stores timing information for pulling this build step's builder image only.", + "readOnly": true + }, + "script": { + "description": "A shell script to be executed in the step. When script is provided, the user cannot specify the entrypoint or args.", + "type": "string" + }, + "secretEnv": { + "description": "A list of environment variables which are encrypted using a Cloud Key Management Service crypto key. These values must be specified in the build's `Secret`.", + "items": { + "type": "string" + }, + "type": "array" + }, + "status": { + "description": "Output only. Status of the build step. At this time, build step status is only updated on build completion; step status is not updated in real-time as the build progresses.", + "enum": [ + "STATUS_UNKNOWN", + "PENDING", + "QUEUED", + "WORKING", + "SUCCESS", + "FAILURE", + "INTERNAL_ERROR", + "TIMEOUT", + "CANCELLED", + "EXPIRED" + ], + "enumDescriptions": [ + "Status of the build is unknown.", + "Build has been created and is pending execution and queuing. It has not been queued.", + "Build or step is queued; work has not yet begun.", + "Build or step is being executed.", + "Build or step finished successfully.", + "Build or step failed to complete successfully.", + "Build or step failed due to an internal cause.", + "Build or step took longer than was allowed.", + "Build or step was canceled by a user.", + "Build was enqueued for longer than the value of `queue_ttl`." + ], + "readOnly": true, + "type": "string" + }, + "timeout": { + "description": "Time limit for executing this build step. If not defined, the step has no time limit and will be allowed to continue to run until either it completes or the build itself times out.", + "format": "google-duration", + "type": "string" + }, + "timing": { + "$ref": "GoogleDevtoolsCloudbuildV1TimeSpan", + "description": "Output only. Stores timing information for executing this build step.", + "readOnly": true + }, + "volumes": { + "description": "List of volumes to mount into the build step. Each volume is created as an empty volume prior to execution of the build step. Upon completion of the build, volumes and their contents are discarded. Using a named volume in only one step is not valid as it is indicative of a build request with an incorrect configuration.", + "items": { + "$ref": "GoogleDevtoolsCloudbuildV1Volume" + }, + "type": "array" + }, + "waitFor": { + "description": "The ID(s) of the step(s) that this build step depends on. This build step will not start until all the build steps in `wait_for` have completed successfully. If `wait_for` is empty, this build step will start when all previous build steps in the `Build.Steps` list have completed successfully.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1BuiltImage": { + "description": "An image built by the pipeline.", + "id": "GoogleDevtoolsCloudbuildV1BuiltImage", + "properties": { + "digest": { + "description": "Docker Registry 2.0 digest.", + "type": "string" + }, + "name": { + "description": "Name used to push the container image to Google Container Registry, as presented to `docker push`.", + "type": "string" + }, + "pushTiming": { + "$ref": "GoogleDevtoolsCloudbuildV1TimeSpan", + "description": "Output only. Stores timing information for pushing the specified image.", + "readOnly": true + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1ConnectedRepository": { + "description": "Location of the source in a 2nd-gen Google Cloud Build repository resource.", + "id": "GoogleDevtoolsCloudbuildV1ConnectedRepository", + "properties": { + "dir": { + "description": "Directory, relative to the source root, in which to run the build.", + "type": "string" + }, + "repository": { + "description": "Required. Name of the Google Cloud Build repository, formatted as `projects/*/locations/*/connections/*/repositories/*`.", + "type": "string" + }, + "revision": { + "description": "The revision to fetch from the Git repository such as a branch, a tag, a commit SHA, or any Git ref.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1FailureInfo": { + "description": "A fatal problem encountered during the execution of the build.", + "id": "GoogleDevtoolsCloudbuildV1FailureInfo", + "properties": { + "detail": { + "description": "Explains the failure issue in more detail using hard-coded text.", + "type": "string" + }, + "type": { + "description": "The name of the failure.", + "enum": [ + "FAILURE_TYPE_UNSPECIFIED", + "PUSH_FAILED", + "PUSH_IMAGE_NOT_FOUND", + "PUSH_NOT_AUTHORIZED", + "LOGGING_FAILURE", + "USER_BUILD_STEP", + "FETCH_SOURCE_FAILED" + ], + "enumDescriptions": [ + "Type unspecified", + "Unable to push the image to the repository.", + "Final image not found.", + "Unauthorized push of the final image.", + "Backend logging failures. Should retry.", + "A build step has failed.", + "The source fetching has failed." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1FileHashes": { + "description": "Container message for hashes of byte content of files, used in SourceProvenance messages to verify integrity of source input to the build.", + "id": "GoogleDevtoolsCloudbuildV1FileHashes", + "properties": { + "fileHash": { + "description": "Collection of file hashes.", + "items": { + "$ref": "GoogleDevtoolsCloudbuildV1Hash" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1GitSource": { + "description": "Location of the source in any accessible Git repository.", + "id": "GoogleDevtoolsCloudbuildV1GitSource", + "properties": { + "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.", + "type": "string" + }, + "revision": { + "description": "The revision to fetch from the Git repository such as a branch, a tag, a commit SHA, or any Git ref. Cloud Build uses `git fetch` to fetch the revision from the Git repository; therefore make sure that the string you provide for `revision` is parsable by the command. For information on string values accepted by `git fetch`, see https://git-scm.com/docs/gitrevisions#_specifying_revisions. For information on `git fetch`, see https://git-scm.com/docs/git-fetch.", + "type": "string" + }, + "url": { + "description": "Location of the Git repo to build. This will be used as a `git remote`, see https://git-scm.com/docs/git-remote.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1Hash": { + "description": "Container message for hash values.", + "id": "GoogleDevtoolsCloudbuildV1Hash", + "properties": { + "type": { + "description": "The type of hash that was performed.", + "enum": [ + "NONE", + "SHA256", + "MD5", + "SHA512" + ], + "enumDescriptions": [ + "No hash requested.", + "Use a sha256 hash.", + "Use a md5 hash.", + "Use a sha512 hash." + ], + "type": "string" + }, + "value": { + "description": "The hash value.", + "format": "byte", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1InlineSecret": { + "description": "Pairs a set of secret environment variables mapped to encrypted values with the Cloud KMS key to use to decrypt the value.", + "id": "GoogleDevtoolsCloudbuildV1InlineSecret", + "properties": { + "envMap": { + "additionalProperties": { + "format": "byte", + "type": "string" + }, + "description": "Map of environment variable name to its encrypted value. Secret environment variables must be unique across all of a build's secrets, and must be used by at least one build step. Values can be at most 64 KB in size. There can be at most 100 secret values across all of a build's secrets.", + "type": "object" + }, + "kmsKeyName": { + "description": "Resource name of Cloud KMS crypto key to decrypt the encrypted value. In format: projects/*/locations/*/keyRings/*/cryptoKeys/*", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1MavenArtifact": { + "description": "A Maven artifact to upload to Artifact Registry upon successful completion of all build steps.", + "id": "GoogleDevtoolsCloudbuildV1MavenArtifact", + "properties": { + "artifactId": { + "description": "Maven `artifactId` value used when uploading the artifact to Artifact Registry.", + "type": "string" + }, + "groupId": { + "description": "Maven `groupId` value used when uploading the artifact to Artifact Registry.", + "type": "string" + }, + "path": { + "description": "Path to an artifact in the build's workspace to be uploaded to Artifact Registry. This can be either an absolute path, e.g. /workspace/my-app/target/my-app-1.0.SNAPSHOT.jar or a relative path from /workspace, e.g. my-app/target/my-app-1.0.SNAPSHOT.jar.", + "type": "string" + }, + "repository": { + "description": "Artifact Registry repository, in the form \"https://$REGION-maven.pkg.dev/$PROJECT/$REPOSITORY\" Artifact in the workspace specified by path will be uploaded to Artifact Registry with this location as a prefix.", + "type": "string" + }, + "version": { + "description": "Maven `version` value used when uploading the artifact to Artifact Registry.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1NpmPackage": { + "description": "Npm package to upload to Artifact Registry upon successful completion of all build steps.", + "id": "GoogleDevtoolsCloudbuildV1NpmPackage", + "properties": { + "packagePath": { + "description": "Path to the package.json. e.g. workspace/path/to/package", + "type": "string" + }, + "repository": { + "description": "Artifact Registry repository, in the form \"https://$REGION-npm.pkg.dev/$PROJECT/$REPOSITORY\" Npm package in the workspace specified by path will be zipped and uploaded to Artifact Registry with this location as a prefix.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1PoolOption": { + "description": "Details about how a build should be executed on a `WorkerPool`. See [running builds in a private pool](https://cloud.google.com/build/docs/private-pools/run-builds-in-private-pool) for more information.", + "id": "GoogleDevtoolsCloudbuildV1PoolOption", + "properties": { + "name": { + "description": "The `WorkerPool` resource to execute the build on. You must have `cloudbuild.workerpools.use` on the project hosting the WorkerPool. Format projects/{project}/locations/{location}/workerPools/{workerPoolId}", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1PythonPackage": { + "description": "Python package to upload to Artifact Registry upon successful completion of all build steps. A package can encapsulate multiple objects to be uploaded to a single repository.", + "id": "GoogleDevtoolsCloudbuildV1PythonPackage", + "properties": { + "paths": { + "description": "Path globs used to match files in the build's workspace. For Python/ Twine, this is usually `dist/*`, and sometimes additionally an `.asc` file.", + "items": { + "type": "string" + }, + "type": "array" + }, + "repository": { + "description": "Artifact Registry repository, in the form \"https://$REGION-python.pkg.dev/$PROJECT/$REPOSITORY\" Files in the workspace matching any path pattern will be uploaded to Artifact Registry with this location as a prefix.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1RepoSource": { + "description": "Location of the source in a Google Cloud Source Repository.", + "id": "GoogleDevtoolsCloudbuildV1RepoSource", + "properties": { + "branchName": { + "description": "Regex matching branches to build. The syntax of the regular expressions accepted is the syntax accepted by RE2 and described at https://github.com/google/re2/wiki/Syntax", + "type": "string" + }, + "commitSha": { + "description": "Explicit commit SHA to build.", + "type": "string" + }, + "dir": { + "description": "Directory, relative to the source root, in which to run the build. This must be a relative path. If a step's `dir` is specified and is an absolute path, this value is ignored for that step's execution.", + "type": "string" + }, + "invertRegex": { + "description": "Only trigger a build if the revision regex does NOT match the revision regex.", + "type": "boolean" + }, + "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" + }, + "substitutions": { + "additionalProperties": { + "type": "string" + }, + "description": "Substitutions to use in a triggered build. Should only be used with RunBuildTrigger", + "type": "object" + }, + "tagName": { + "description": "Regex matching tags to build. The syntax of the regular expressions accepted is the syntax accepted by RE2 and described at https://github.com/google/re2/wiki/Syntax", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1Results": { + "description": "Artifacts created by the build pipeline.", + "id": "GoogleDevtoolsCloudbuildV1Results", + "properties": { + "artifactManifest": { + "description": "Path to the artifact manifest for non-container artifacts uploaded to Cloud Storage. Only populated when artifacts are uploaded to Cloud Storage.", + "type": "string" + }, + "artifactTiming": { + "$ref": "GoogleDevtoolsCloudbuildV1TimeSpan", + "description": "Time to push all non-container artifacts to Cloud Storage." + }, + "buildStepImages": { + "description": "List of build step digests, in the order corresponding to build step indices.", + "items": { + "type": "string" + }, + "type": "array" + }, + "buildStepOutputs": { + "description": "List of build step outputs, produced by builder images, in the order corresponding to build step indices. [Cloud Builders](https://cloud.google.com/cloud-build/docs/cloud-builders) can produce this output by writing to `$BUILDER_OUTPUT/output`. Only the first 50KB of data is stored.", + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "images": { + "description": "Container images that were built as a part of the build.", + "items": { + "$ref": "GoogleDevtoolsCloudbuildV1BuiltImage" + }, + "type": "array" + }, + "mavenArtifacts": { + "description": "Maven artifacts uploaded to Artifact Registry at the end of the build.", + "items": { + "$ref": "GoogleDevtoolsCloudbuildV1UploadedMavenArtifact" + }, + "type": "array" + }, + "npmPackages": { + "description": "Npm packages uploaded to Artifact Registry at the end of the build.", + "items": { + "$ref": "GoogleDevtoolsCloudbuildV1UploadedNpmPackage" + }, + "type": "array" + }, + "numArtifacts": { + "description": "Number of non-container artifacts uploaded to Cloud Storage. Only populated when artifacts are uploaded to Cloud Storage.", + "format": "int64", + "type": "string" + }, + "pythonPackages": { + "description": "Python artifacts uploaded to Artifact Registry at the end of the build.", + "items": { + "$ref": "GoogleDevtoolsCloudbuildV1UploadedPythonPackage" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1Secret": { + "description": "Pairs a set of secret environment variables containing encrypted values with the Cloud KMS key to use to decrypt the value. Note: Use `kmsKeyName` with `available_secrets` instead of using `kmsKeyName` with `secret`. For instructions see: https://cloud.google.com/cloud-build/docs/securing-builds/use-encrypted-credentials.", + "id": "GoogleDevtoolsCloudbuildV1Secret", + "properties": { + "kmsKeyName": { + "description": "Cloud KMS key name to use to decrypt these envs.", + "type": "string" + }, + "secretEnv": { + "additionalProperties": { + "format": "byte", + "type": "string" + }, + "description": "Map of environment variable name to its encrypted value. Secret environment variables must be unique across all of a build's secrets, and must be used by at least one build step. Values can be at most 64 KB in size. There can be at most 100 secret values across all of a build's secrets.", + "type": "object" + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1SecretManagerSecret": { + "description": "Pairs a secret environment variable with a SecretVersion in Secret Manager.", + "id": "GoogleDevtoolsCloudbuildV1SecretManagerSecret", + "properties": { + "env": { + "description": "Environment variable name to associate with the secret. Secret environment variables must be unique across all of a build's secrets, and must be used by at least one build step.", + "type": "string" + }, + "versionName": { + "description": "Resource name of the SecretVersion. In format: projects/*/secrets/*/versions/*", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1Secrets": { + "description": "Secrets and secret environment variables.", + "id": "GoogleDevtoolsCloudbuildV1Secrets", + "properties": { + "inline": { + "description": "Secrets encrypted with KMS key and the associated secret environment variable.", + "items": { + "$ref": "GoogleDevtoolsCloudbuildV1InlineSecret" + }, + "type": "array" + }, + "secretManager": { + "description": "Secrets in Secret Manager and associated secret environment variable.", + "items": { + "$ref": "GoogleDevtoolsCloudbuildV1SecretManagerSecret" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1Source": { + "description": "Location of the source in a supported storage service.", + "id": "GoogleDevtoolsCloudbuildV1Source", + "properties": { + "connectedRepository": { + "$ref": "GoogleDevtoolsCloudbuildV1ConnectedRepository", + "description": "Optional. If provided, get the source from this 2nd-gen Google Cloud Build repository resource." + }, + "gitSource": { + "$ref": "GoogleDevtoolsCloudbuildV1GitSource", + "description": "If provided, get the source from this Git repository." + }, + "repoSource": { + "$ref": "GoogleDevtoolsCloudbuildV1RepoSource", + "description": "If provided, get the source from this location in a Cloud Source Repository." + }, + "storageSource": { + "$ref": "GoogleDevtoolsCloudbuildV1StorageSource", + "description": "If provided, get the source from this location in Cloud Storage." + }, + "storageSourceManifest": { + "$ref": "GoogleDevtoolsCloudbuildV1StorageSourceManifest", + "description": "If provided, get the source from this manifest in Cloud Storage. This feature is in Preview; see description [here](https://github.com/GoogleCloudPlatform/cloud-builders/tree/master/gcs-fetcher)." + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1SourceProvenance": { + "description": "Provenance of the source. Ways to find the original source, or verify that some source was used for this build.", + "id": "GoogleDevtoolsCloudbuildV1SourceProvenance", + "properties": { + "fileHashes": { + "additionalProperties": { + "$ref": "GoogleDevtoolsCloudbuildV1FileHashes" + }, + "description": "Output only. Hash(es) of the build source, which can be used to verify that the original source integrity was maintained in the build. Note that `FileHashes` will only be populated if `BuildOptions` has requested a `SourceProvenanceHash`. The keys to this map are file paths used as build source and the values contain the hash values for those files. If the build source came in a single package such as a gzipped tarfile (`.tar.gz`), the `FileHash` will be for the single path to that file.", + "readOnly": true, + "type": "object" + }, + "resolvedConnectedRepository": { + "$ref": "GoogleDevtoolsCloudbuildV1ConnectedRepository", + "description": "Output only. A copy of the build's `source.connected_repository`, if exists, with any revisions resolved.", + "readOnly": true + }, + "resolvedGitSource": { + "$ref": "GoogleDevtoolsCloudbuildV1GitSource", + "description": "Output only. A copy of the build's `source.git_source`, if exists, with any revisions resolved.", + "readOnly": true + }, + "resolvedRepoSource": { + "$ref": "GoogleDevtoolsCloudbuildV1RepoSource", + "description": "A copy of the build's `source.repo_source`, if exists, with any revisions resolved." + }, + "resolvedStorageSource": { + "$ref": "GoogleDevtoolsCloudbuildV1StorageSource", + "description": "A copy of the build's `source.storage_source`, if exists, with any generations resolved." + }, + "resolvedStorageSourceManifest": { + "$ref": "GoogleDevtoolsCloudbuildV1StorageSourceManifest", + "description": "A copy of the build's `source.storage_source_manifest`, if exists, with any revisions resolved. This feature is in Preview." + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1StorageSource": { + "description": "Location of the source in an archive file in Cloud Storage.", + "id": "GoogleDevtoolsCloudbuildV1StorageSource", + "properties": { + "bucket": { + "description": "Cloud Storage bucket containing the source (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).", + "type": "string" + }, + "generation": { + "description": "Cloud Storage generation for the object. If the generation is omitted, the latest generation will be used.", + "format": "int64", + "type": "string" + }, + "object": { + "description": "Cloud Storage object containing the source. This object must be a zipped (`.zip`) or gzipped archive file (`.tar.gz`) containing source to build.", + "type": "string" + }, + "sourceFetcher": { + "description": "Optional. Option to specify the tool to fetch the source file for the build.", + "enum": [ + "SOURCE_FETCHER_UNSPECIFIED", + "GSUTIL", + "GCS_FETCHER" + ], + "enumDescriptions": [ + "Unspecified defaults to GSUTIL.", + "Use the \"gsutil\" tool to download the source file.", + "Use the Cloud Storage Fetcher tool to download the source file." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1StorageSourceManifest": { + "description": "Location of the source manifest in Cloud Storage. This feature is in Preview; see description [here](https://github.com/GoogleCloudPlatform/cloud-builders/tree/master/gcs-fetcher).", + "id": "GoogleDevtoolsCloudbuildV1StorageSourceManifest", + "properties": { + "bucket": { + "description": "Cloud Storage bucket containing the source manifest (see [Bucket Name Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)).", + "type": "string" + }, + "generation": { + "description": "Cloud Storage generation for the object. If the generation is omitted, the latest generation will be used.", + "format": "int64", + "type": "string" + }, + "object": { + "description": "Cloud Storage object containing the source manifest. This object must be a JSON file.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1TimeSpan": { + "description": "Start and end times for a build execution phase.", + "id": "GoogleDevtoolsCloudbuildV1TimeSpan", + "properties": { + "endTime": { + "description": "End of time span.", + "format": "google-datetime", + "type": "string" + }, + "startTime": { + "description": "Start of time span.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1UploadedMavenArtifact": { + "description": "A Maven artifact uploaded using the MavenArtifact directive.", + "id": "GoogleDevtoolsCloudbuildV1UploadedMavenArtifact", + "properties": { + "fileHashes": { + "$ref": "GoogleDevtoolsCloudbuildV1FileHashes", + "description": "Hash types and values of the Maven Artifact." + }, + "pushTiming": { + "$ref": "GoogleDevtoolsCloudbuildV1TimeSpan", + "description": "Output only. Stores timing information for pushing the specified artifact.", + "readOnly": true + }, + "uri": { + "description": "URI of the uploaded artifact.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1UploadedNpmPackage": { + "description": "An npm package uploaded to Artifact Registry using the NpmPackage directive.", + "id": "GoogleDevtoolsCloudbuildV1UploadedNpmPackage", + "properties": { + "fileHashes": { + "$ref": "GoogleDevtoolsCloudbuildV1FileHashes", + "description": "Hash types and values of the npm package." + }, + "pushTiming": { + "$ref": "GoogleDevtoolsCloudbuildV1TimeSpan", + "description": "Output only. Stores timing information for pushing the specified artifact.", + "readOnly": true + }, + "uri": { + "description": "URI of the uploaded npm package.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1UploadedPythonPackage": { + "description": "Artifact uploaded using the PythonPackage directive.", + "id": "GoogleDevtoolsCloudbuildV1UploadedPythonPackage", + "properties": { + "fileHashes": { + "$ref": "GoogleDevtoolsCloudbuildV1FileHashes", + "description": "Hash types and values of the Python Artifact." + }, + "pushTiming": { + "$ref": "GoogleDevtoolsCloudbuildV1TimeSpan", + "description": "Output only. Stores timing information for pushing the specified artifact.", + "readOnly": true + }, + "uri": { + "description": "URI of the uploaded artifact.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1Volume": { + "description": "Volume describes a Docker container volume which is mounted into build steps in order to persist files across build step execution.", + "id": "GoogleDevtoolsCloudbuildV1Volume", + "properties": { + "name": { + "description": "Name of the volume to mount. Volume names must be unique per build step and must be valid names for Docker volumes. Each named volume must be used by at least two build steps.", + "type": "string" + }, + "path": { + "description": "Path at which to mount the volume. Paths must be absolute and cannot conflict with other volume paths on the same build step or with certain reserved volume paths.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleDevtoolsCloudbuildV1Warning": { + "description": "A non-fatal problem encountered during the execution of the build.", + "id": "GoogleDevtoolsCloudbuildV1Warning", + "properties": { + "priority": { + "description": "The priority for this warning.", + "enum": [ + "PRIORITY_UNSPECIFIED", + "INFO", + "WARNING", + "ALERT" + ], + "enumDescriptions": [ + "Should not be used.", + "e.g. deprecation warnings and alternative feature highlights.", + "e.g. automated detection of possible issues with the build.", + "e.g. alerts that a feature used in the build is pending removal" + ], + "type": "string" + }, + "text": { + "description": "Explanation of the warning generated.", + "type": "string" + } + }, + "type": "object" + }, "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", @@ -3680,6 +5217,41 @@ } }, "type": "object" + }, + "Proto2BridgeMessageSet": { + "description": "This is proto2's version of MessageSet.", + "id": "Proto2BridgeMessageSet", + "properties": {}, + "type": "object" + }, + "UtilStatusProto": { + "description": "Wire-format for a Status object", + "id": "UtilStatusProto", + "properties": { + "canonicalCode": { + "description": "The canonical error code (see codes.proto) that most closely corresponds to this status. This may be missing, and in the common case of the generic space, it definitely will be.", + "format": "int32", + "type": "integer" + }, + "code": { + "description": "Numeric code drawn from the space specified below. Often, this is the canonical error space, and code is drawn from google3/util/task/codes.proto", + "format": "int32", + "type": "integer" + }, + "message": { + "description": "Detail message", + "type": "string" + }, + "messageSet": { + "$ref": "Proto2BridgeMessageSet", + "description": "message_set associates an arbitrary proto message with the status." + }, + "space": { + "description": "The following are usually only present when code != 0 Space to which this status belongs", + "type": "string" + } + }, + "type": "object" } }, "servicePath": "", diff --git a/etc/api/safebrowsing/v4/safebrowsing-api.json b/etc/api/safebrowsing/v4/safebrowsing-api.json index bd57441376..28ecd868e7 100644 --- a/etc/api/safebrowsing/v4/safebrowsing-api.json +++ b/etc/api/safebrowsing/v4/safebrowsing-api.json @@ -261,7 +261,7 @@ } } }, - "revision": "20240225", + "revision": "20240414", "rootUrl": "https://safebrowsing.googleapis.com/", "schemas": { "GoogleProtobufEmpty": { diff --git a/etc/api/sasportal/v1alpha1/sasportal-api.json b/etc/api/sasportal/v1alpha1/sasportal-api.json index 6252cf3bab..6fb3498a0a 100644 --- a/etc/api/sasportal/v1alpha1/sasportal-api.json +++ b/etc/api/sasportal/v1alpha1/sasportal-api.json @@ -2652,7 +2652,7 @@ } } }, - "revision": "20240226", + "revision": "20240418", "rootUrl": "https://sasportal.googleapis.com/", "schemas": { "SasPortalAssignment": { diff --git a/etc/api/script/v1/script-api.json b/etc/api/script/v1/script-api.json index d701a8a195..6e16409b13 100644 --- a/etc/api/script/v1/script-api.json +++ b/etc/api/script/v1/script-api.json @@ -891,7 +891,7 @@ } } }, - "revision": "20240225", + "revision": "20240331", "rootUrl": "https://script.googleapis.com/", "schemas": { "Content": { diff --git a/etc/api/searchconsole/v1/searchconsole-api.json b/etc/api/searchconsole/v1/searchconsole-api.json index ce3af4b94a..032f0c3713 100644 --- a/etc/api/searchconsole/v1/searchconsole-api.json +++ b/etc/api/searchconsole/v1/searchconsole-api.json @@ -400,7 +400,7 @@ } } }, - "revision": "20240304", + "revision": "20240420", "rootUrl": "https://searchconsole.googleapis.com/", "schemas": { "AmpInspectionResult": { diff --git a/etc/api/secretmanager/v1/secretmanager-api.json b/etc/api/secretmanager/v1/secretmanager-api.json index 93a9f1a72c..34185665ad 100644 --- a/etc/api/secretmanager/v1/secretmanager-api.json +++ b/etc/api/secretmanager/v1/secretmanager-api.json @@ -15,6 +15,13 @@ "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" + } + ], "fullyEncodeReservedExpansion": true, "icons": { "x16": "http://www.google.com/images/icons/product/search-16.gif", @@ -1108,7 +1115,7 @@ } } }, - "revision": "20240223", + "revision": "20240320", "rootUrl": "https://secretmanager.googleapis.com/", "schemas": { "AccessSecretVersionResponse": { @@ -1539,6 +1546,10 @@ "readOnly": true, "type": "string" }, + "customerManagedEncryption": { + "$ref": "CustomerManagedEncryption", + "description": "Optional. The customer-managed encryption configuration of the Regionalised 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" @@ -1587,6 +1598,11 @@ }, "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" @@ -1623,6 +1639,11 @@ "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 Regionalised Secret.", + "readOnly": true + }, "destroyTime": { "description": "Output only. The time this SecretVersion was destroyed. Only present if state is DESTROYED.", "format": "google-datetime", @@ -1643,6 +1664,12 @@ "$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": [ diff --git a/etc/api/secretmanager/v1beta1/secretmanager-api.json b/etc/api/secretmanager/v1beta1/secretmanager-api.json index 544a943336..37ae5be01d 100644 --- a/etc/api/secretmanager/v1beta1/secretmanager-api.json +++ b/etc/api/secretmanager/v1beta1/secretmanager-api.json @@ -15,6 +15,13 @@ "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" + } + ], "fullyEncodeReservedExpansion": true, "icons": { "x16": "http://www.google.com/images/icons/product/search-16.gif", @@ -628,7 +635,7 @@ } } }, - "revision": "20240223", + "revision": "20240320", "rootUrl": "https://secretmanager.googleapis.com/", "schemas": { "AccessSecretVersionResponse": { diff --git a/etc/api/securitycenter/v1/securitycenter-api.json b/etc/api/securitycenter/v1/securitycenter-api.json index c5ddc98179..20303ee24c 100644 --- a/etc/api/securitycenter/v1/securitycenter-api.json +++ b/etc/api/securitycenter/v1/securitycenter-api.json @@ -5820,7 +5820,7 @@ } } }, - "revision": "20240302", + "revision": "20240415", "rootUrl": "https://securitycenter.googleapis.com/", "schemas": { "Access": { @@ -5912,6 +5912,18 @@ }, "type": "object" }, + "AdaptiveProtection": { + "description": "Information about [Google Cloud Armor Adaptive Protection](https://cloud.google.com/armor/docs/cloud-armor-overview#google-cloud-armor-adaptive-protection).", + "id": "AdaptiveProtection", + "properties": { + "confidence": { + "description": "A score of 0 means that there is low confidence that the detected event is an actual attack. A score of 1 means that there is high confidence that the detected event is an attack. See the [Adaptive Protection documentation](https://cloud.google.com/armor/docs/adaptive-protection-overview#configure-alert-tuning) for further explanation.", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, "Application": { "description": "Represents an application associated with a finding.", "id": "Application", @@ -6006,6 +6018,27 @@ }, "type": "object" }, + "Attack": { + "description": "Information about DDoS attack volume and classification.", + "id": "Attack", + "properties": { + "classification": { + "description": "Type of attack, for example, \u2018SYN-flood\u2019, \u2018NTP-udp\u2019, or \u2018CHARGEN-udp\u2019.", + "type": "string" + }, + "volumeBps": { + "description": "Total BPS (bytes per second) volume of attack.", + "format": "int32", + "type": "integer" + }, + "volumePps": { + "description": "Total PPS (packets per second) volume of attack.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "AttackExposure": { "description": "An attack exposure contains the results of an attack path simulation run.", "id": "AttackExposure", @@ -6225,6 +6258,69 @@ }, "type": "object" }, + "AwsAccount": { + "description": "An AWS account that is a member of an organization.", + "id": "AwsAccount", + "properties": { + "id": { + "description": "The unique identifier (ID) of the account, containing exactly 12 digits.", + "type": "string" + }, + "name": { + "description": "The friendly name of this account.", + "type": "string" + } + }, + "type": "object" + }, + "AwsMetadata": { + "description": "AWS metadata associated with the resource, only applicable if the finding's cloud provider is Amazon Web Services.", + "id": "AwsMetadata", + "properties": { + "account": { + "$ref": "AwsAccount", + "description": "The AWS account associated with the resource." + }, + "organization": { + "$ref": "AwsOrganization", + "description": "The AWS organization associated with the resource." + }, + "organizationalUnits": { + "description": "A list of AWS organizational units associated with the resource, ordered from lowest level (closest to the account) to highest level.", + "items": { + "$ref": "AwsOrganizationalUnit" + }, + "type": "array" + } + }, + "type": "object" + }, + "AwsOrganization": { + "description": "An organization is a collection of accounts that are centrally managed together using consolidated billing, organized hierarchically with organizational units (OUs), and controlled with policies.", + "id": "AwsOrganization", + "properties": { + "id": { + "description": "The unique identifier (ID) for the organization. The regex pattern for an organization ID string requires \"o-\" followed by from 10 to 32 lowercase letters or digits.", + "type": "string" + } + }, + "type": "object" + }, + "AwsOrganizationalUnit": { + "description": "An Organizational Unit (OU) is a container of AWS accounts within a root of an organization. Policies that are attached to an OU apply to all accounts contained in that OU and in any child OUs.", + "id": "AwsOrganizationalUnit", + "properties": { + "id": { + "description": "The unique identifier (ID) associated with this OU. The regex pattern for an organizational unit ID string requires \"ou-\" followed by from 4 to 32 lowercase letters or digits (the ID of the root that contains the OU). This string is followed by a second \"-\" dash and from 8 to 32 additional lowercase letters or digits. For example, \"ou-ab12-cd34ef56\".", + "type": "string" + }, + "name": { + "description": "The friendly name of the OU.", + "type": "string" + } + }, + "type": "object" + }, "BackupDisasterRecovery": { "description": "Information related to Google Cloud Backup and DR Service findings.", "id": "BackupDisasterRecovery", @@ -6348,6 +6444,38 @@ }, "type": "object" }, + "CloudArmor": { + "description": "Fields related to Google Cloud Armor findings.", + "id": "CloudArmor", + "properties": { + "adaptiveProtection": { + "$ref": "AdaptiveProtection", + "description": "Information about potential Layer 7 DDoS attacks identified by [Google Cloud Armor Adaptive Protection](https://cloud.google.com/armor/docs/adaptive-protection-overview)." + }, + "attack": { + "$ref": "Attack", + "description": "Information about DDoS attack volume and classification." + }, + "duration": { + "description": "Duration of attack from the start until the current moment (updated every 5 minutes).", + "format": "google-duration", + "type": "string" + }, + "requests": { + "$ref": "Requests", + "description": "Information about incoming requests evaluated by [Google Cloud Armor security policies](https://cloud.google.com/armor/docs/security-policy-overview)." + }, + "securityPolicy": { + "$ref": "SecurityPolicy", + "description": "Information about the [Google Cloud Armor security policy](https://cloud.google.com/armor/docs/security-policy-overview) relevant to the finding." + }, + "threatVector": { + "description": "Distinguish between volumetric & protocol DDoS attack and application layer attacks. For example, \u201cL3_4\u201d for Layer 3 and Layer 4 DDoS attacks, or \u201cL_7\u201d for Layer 7 DDoS attacks.", + "type": "string" + } + }, + "type": "object" + }, "CloudDlpDataProfile": { "description": "The [data profile](https://cloud.google.com/dlp/docs/data-profiles) associated with the finding.", "id": "CloudDlpDataProfile", @@ -6451,6 +6579,22 @@ "description": "The category of Findings matching.", "type": "string" }, + "cloudProvider": { + "description": "The cloud provider for the compliance snapshot.", + "enum": [ + "CLOUD_PROVIDER_UNSPECIFIED", + "GOOGLE_CLOUD_PLATFORM", + "AMAZON_WEB_SERVICES", + "MICROSOFT_AZURE" + ], + "enumDescriptions": [ + "The cloud provider is unspecified.", + "The cloud provider is Google Cloud Platform.", + "The cloud provider is Amazon Web Services.", + "The cloud provider is Microsoft Azure." + ], + "type": "string" + }, "complianceStandard": { "description": "The compliance standard (ie CIS).", "type": "string" @@ -6472,10 +6616,6 @@ "description": "The compliance snapshot name. Format: //sources//complianceSnapshots/", "type": "string" }, - "projectDisplayName": { - "description": "The CRM resource display name that is closest to the snapshot the Findings belong to.", - "type": "string" - }, "snapshotTime": { "description": "The snapshot time of the snapshot.", "format": "google-datetime", @@ -7176,6 +7316,10 @@ "description": "The additional taxonomy group within findings from a given source. This field is immutable after creation time. Example: \"XSS_FLASH_INJECTION\"", "type": "string" }, + "cloudArmor": { + "$ref": "CloudArmor", + "description": "Fields related to Cloud Armor findings." + }, "cloudDlpDataProfile": { "$ref": "CloudDlpDataProfile", "description": "Cloud DLP data profile that is associated with the finding." @@ -7351,6 +7495,10 @@ "description": "Steps to address the finding.", "type": "string" }, + "notebook": { + "$ref": "Notebook", + "description": "Notebook associated with the finding." + }, "orgPolicies": { "description": "Contains information about the org policies associated with the finding.", "items": { @@ -7448,6 +7596,41 @@ }, "type": "object" }, + "GcpMetadata": { + "description": "GCP metadata associated with the resource, only applicable if the finding's cloud provider is Google Cloud Platform.", + "id": "GcpMetadata", + "properties": { + "folders": { + "description": "Output only. Contains a Folder message for each folder in the assets ancestry. The first folder is the deepest nested folder, and the last folder is the folder directly under the Organization.", + "items": { + "$ref": "GoogleCloudSecuritycenterV2Folder" + }, + "readOnly": true, + "type": "array" + }, + "organization": { + "description": "The name of the organization that the resource belongs to.", + "type": "string" + }, + "parent": { + "description": "The full resource name of resource's parent.", + "type": "string" + }, + "parentDisplayName": { + "description": "The human readable name of resource's parent.", + "type": "string" + }, + "project": { + "description": "The full resource name of project that the resource belongs to.", + "type": "string" + }, + "projectDisplayName": { + "description": "The project ID that the resource belongs to.", + "type": "string" + } + }, + "type": "object" + }, "Geolocation": { "description": "Represents a geographical location for a given access.", "id": "Geolocation", @@ -7792,6 +7975,26 @@ "description": "Information related to the Google Cloud resource.", "id": "GoogleCloudSecuritycenterV1Resource", "properties": { + "awsMetadata": { + "$ref": "AwsMetadata", + "description": "The AWS metadata associated with the finding." + }, + "cloudProvider": { + "description": "Indicates which cloud provider the resource resides in.", + "enum": [ + "CLOUD_PROVIDER_UNSPECIFIED", + "GOOGLE_CLOUD_PLATFORM", + "AMAZON_WEB_SERVICES", + "MICROSOFT_AZURE" + ], + "enumDescriptions": [ + "The cloud provider is unspecified.", + "The cloud provider is Google Cloud Platform.", + "The cloud provider is Amazon Web Services.", + "The cloud provider is Microsoft Azure." + ], + "type": "string" + }, "displayName": { "description": "The human readable name of the resource.", "type": "string" @@ -7804,10 +8007,18 @@ "readOnly": true, "type": "array" }, + "location": { + "description": "The region or location of the service (if applicable).", + "type": "string" + }, "name": { "description": "The full resource name of the resource. See: https://cloud.google.com/apis/design/resource_names#full_resource_name", "type": "string" }, + "organization": { + "description": "Indicates which organization or tenant in the cloud provider the finding applies to.", + "type": "string" + }, "parent": { "description": "The full resource name of resource's parent.", "type": "string" @@ -7824,6 +8035,18 @@ "description": "The project ID that the resource belongs to.", "type": "string" }, + "resourcePath": { + "$ref": "ResourcePath", + "description": "Provides the path to the resource within the resource hierarchy." + }, + "resourcePathString": { + "description": "A string representation of the resource path. For GCP, it has the format of: organizations/{organization_id}/folders/{folder_id}/folders/{folder_id}/projects/{project_id} where there can be any number of folders. For AWS, it has the format of: org/{organization_id}/ou/{organizational_unit_id}/ou/{organizational_unit_id}/account/{account_id} where there can be any number of organizational units. For Azure, it has the format of: mg/{management_group_id}/mg/{management_group_id}/subscription/{subscription_id}/rg/{resource_group_name} where there can be any number of management groups.", + "type": "string" + }, + "service": { + "description": "The parent service or product from which the resource is provided, for example, GKE or SNS.", + "type": "string" + }, "type": { "description": "The full resource type of the resource.", "type": "string" @@ -7849,6 +8072,22 @@ "description": "A resource value config (RVC) is a mapping configuration of user's resources to resource values. Used in Attack path simulations.", "id": "GoogleCloudSecuritycenterV1ResourceValueConfig", "properties": { + "cloudProvider": { + "description": "Cloud provider this configuration applies to", + "enum": [ + "CLOUD_PROVIDER_UNSPECIFIED", + "GOOGLE_CLOUD_PLATFORM", + "AMAZON_WEB_SERVICES", + "MICROSOFT_AZURE" + ], + "enumDescriptions": [ + "The cloud provider is unspecified.", + "The cloud provider is Google Cloud Platform.", + "The cloud provider is Amazon Web Services.", + "The cloud provider is Microsoft Azure." + ], + "type": "string" + }, "createTime": { "description": "Output only. Timestamp this resource value config was created.", "format": "google-datetime", @@ -8359,6 +8598,18 @@ }, "type": "object" }, + "GoogleCloudSecuritycenterV2AdaptiveProtection": { + "description": "Information about [Google Cloud Armor Adaptive Protection](https://cloud.google.com/armor/docs/cloud-armor-overview#google-cloud-armor-adaptive-protection).", + "id": "GoogleCloudSecuritycenterV2AdaptiveProtection", + "properties": { + "confidence": { + "description": "A score of 0 means that there is low confidence that the detected event is an actual attack. A score of 1 means that there is high confidence that the detected event is an attack. See the [Adaptive Protection documentation](https://cloud.google.com/armor/docs/adaptive-protection-overview#configure-alert-tuning) for further explanation.", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, "GoogleCloudSecuritycenterV2Application": { "description": "Represents an application associated with a finding.", "id": "GoogleCloudSecuritycenterV2Application", @@ -8374,6 +8625,27 @@ }, "type": "object" }, + "GoogleCloudSecuritycenterV2Attack": { + "description": "Information about DDoS attack volume and classification.", + "id": "GoogleCloudSecuritycenterV2Attack", + "properties": { + "classification": { + "description": "Type of attack, for example, \u2018SYN-flood\u2019, \u2018NTP-udp\u2019, or \u2018CHARGEN-udp\u2019.", + "type": "string" + }, + "volumeBps": { + "description": "Total BPS (bytes per second) volume of attack.", + "format": "int32", + "type": "integer" + }, + "volumePps": { + "description": "Total PPS (packets per second) volume of attack.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "GoogleCloudSecuritycenterV2AttackExposure": { "description": "An attack exposure contains the results of an attack path simulation run.", "id": "GoogleCloudSecuritycenterV2AttackExposure", @@ -8425,6 +8697,69 @@ }, "type": "object" }, + "GoogleCloudSecuritycenterV2AwsAccount": { + "description": "An AWS account that is a member of an organization.", + "id": "GoogleCloudSecuritycenterV2AwsAccount", + "properties": { + "id": { + "description": "The unique identifier (ID) of the account, containing exactly 12 digits.", + "type": "string" + }, + "name": { + "description": "The friendly name of this account.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2AwsMetadata": { + "description": "AWS metadata associated with the resource, only applicable if the finding's cloud provider is Amazon Web Services.", + "id": "GoogleCloudSecuritycenterV2AwsMetadata", + "properties": { + "account": { + "$ref": "GoogleCloudSecuritycenterV2AwsAccount", + "description": "The AWS account associated with the resource." + }, + "organization": { + "$ref": "GoogleCloudSecuritycenterV2AwsOrganization", + "description": "The AWS organization associated with the resource." + }, + "organizationalUnits": { + "description": "A list of AWS organizational units associated with the resource, ordered from lowest level (closest to the account) to highest level.", + "items": { + "$ref": "GoogleCloudSecuritycenterV2AwsOrganizationalUnit" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2AwsOrganization": { + "description": "An organization is a collection of accounts that are centrally managed together using consolidated billing, organized hierarchically with organizational units (OUs), and controlled with policies.", + "id": "GoogleCloudSecuritycenterV2AwsOrganization", + "properties": { + "id": { + "description": "The unique identifier (ID) for the organization. The regex pattern for an organization ID string requires \"o-\" followed by from 10 to 32 lowercase letters or digits.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2AwsOrganizationalUnit": { + "description": "An Organizational Unit (OU) is a container of AWS accounts within a root of an organization. Policies that are attached to an OU apply to all accounts contained in that OU and in any child OUs.", + "id": "GoogleCloudSecuritycenterV2AwsOrganizationalUnit", + "properties": { + "id": { + "description": "The unique identifier (ID) associated with this OU. The regex pattern for an organizational unit ID string requires \"ou-\" followed by from 4 to 32 lowercase letters or digits (the ID of the root that contains the OU). This string is followed by a second \"-\" dash and from 8 to 32 additional lowercase letters or digits. For example, \"ou-ab12-cd34ef56\".", + "type": "string" + }, + "name": { + "description": "The friendly name of the OU.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudSecuritycenterV2BackupDisasterRecovery": { "description": "Information related to Google Cloud Backup and DR Service findings.", "id": "GoogleCloudSecuritycenterV2BackupDisasterRecovery", @@ -8559,6 +8894,38 @@ "properties": {}, "type": "object" }, + "GoogleCloudSecuritycenterV2CloudArmor": { + "description": "Fields related to Google Cloud Armor findings.", + "id": "GoogleCloudSecuritycenterV2CloudArmor", + "properties": { + "adaptiveProtection": { + "$ref": "GoogleCloudSecuritycenterV2AdaptiveProtection", + "description": "Information about potential Layer 7 DDoS attacks identified by [Google Cloud Armor Adaptive Protection](https://cloud.google.com/armor/docs/adaptive-protection-overview)." + }, + "attack": { + "$ref": "GoogleCloudSecuritycenterV2Attack", + "description": "Information about DDoS attack volume and classification." + }, + "duration": { + "description": "Duration of attack from the start until the current moment (updated every 5 minutes).", + "format": "google-duration", + "type": "string" + }, + "requests": { + "$ref": "GoogleCloudSecuritycenterV2Requests", + "description": "Information about incoming requests evaluated by [Google Cloud Armor security policies](https://cloud.google.com/armor/docs/security-policy-overview)." + }, + "securityPolicy": { + "$ref": "GoogleCloudSecuritycenterV2SecurityPolicy", + "description": "Information about the [Google Cloud Armor security policy](https://cloud.google.com/armor/docs/security-policy-overview) relevant to the finding." + }, + "threatVector": { + "description": "Distinguish between volumetric & protocol DDoS attack and application layer attacks. For example, \u201cL3_4\u201d for Layer 3 and Layer 4 DDoS attacks, or \u201cL_7\u201d for Layer 7 DDoS attacks.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudSecuritycenterV2CloudDlpDataProfile": { "description": "The [data profile](https://cloud.google.com/dlp/docs/data-profiles) associated with the finding.", "id": "GoogleCloudSecuritycenterV2CloudDlpDataProfile", @@ -9211,6 +9578,10 @@ "description": "Immutable. The additional taxonomy group within findings from a given source. Example: \"XSS_FLASH_INJECTION\"", "type": "string" }, + "cloudArmor": { + "$ref": "GoogleCloudSecuritycenterV2CloudArmor", + "description": "Fields related to Cloud Armor findings." + }, "cloudDlpDataProfile": { "$ref": "GoogleCloudSecuritycenterV2CloudDlpDataProfile", "description": "Cloud DLP data profile that is associated with the finding." @@ -9387,6 +9758,10 @@ "description": "Steps to address the finding.", "type": "string" }, + "notebook": { + "$ref": "GoogleCloudSecuritycenterV2Notebook", + "description": "Notebook associated with the finding." + }, "orgPolicies": { "description": "Contains information about the org policies associated with the finding.", "items": { @@ -9470,6 +9845,21 @@ }, "type": "object" }, + "GoogleCloudSecuritycenterV2Folder": { + "description": "Message that contains the resource name and display name of a folder resource.", + "id": "GoogleCloudSecuritycenterV2Folder", + "properties": { + "resourceFolder": { + "description": "Full resource name of this folder. See: https://cloud.google.com/apis/design/resource_names#full_resource_name", + "type": "string" + }, + "resourceFolderDisplayName": { + "description": "The user defined display name for this folder.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudSecuritycenterV2Geolocation": { "description": "Represents a geographical location for a given access.", "id": "GoogleCloudSecuritycenterV2Geolocation", @@ -9757,6 +10147,7 @@ "PROCESS_DISCOVERY", "COMMAND_AND_SCRIPTING_INTERPRETER", "UNIX_SHELL", + "PYTHON", "PERMISSION_GROUPS_DISCOVERY", "CLOUD_GROUPS", "APPLICATION_LAYER_PROTOCOL", @@ -9818,6 +10209,7 @@ "T1057", "T1059", "T1059.004", + "T1059.006", "T1069", "T1069.003", "T1071", @@ -9924,6 +10316,7 @@ "PROCESS_DISCOVERY", "COMMAND_AND_SCRIPTING_INTERPRETER", "UNIX_SHELL", + "PYTHON", "PERMISSION_GROUPS_DISCOVERY", "CLOUD_GROUPS", "APPLICATION_LAYER_PROTOCOL", @@ -9985,6 +10378,7 @@ "T1057", "T1059", "T1059.004", + "T1059.006", "T1069", "T1069.003", "T1071", @@ -10124,6 +10518,30 @@ }, "type": "object" }, + "GoogleCloudSecuritycenterV2Notebook": { + "description": "Represents a Jupyter notebook IPYNB file, such as a [Colab Enterprise notebook](https://cloud.google.com/colab/docs/introduction) file, that is associated with a finding.", + "id": "GoogleCloudSecuritycenterV2Notebook", + "properties": { + "lastAuthor": { + "description": "The user ID of the latest author to modify the notebook.", + "type": "string" + }, + "name": { + "description": "The name of the notebook.", + "type": "string" + }, + "notebookUpdateTime": { + "description": "The most recent time the notebook was updated.", + "format": "google-datetime", + "type": "string" + }, + "service": { + "description": "The source notebook service, for example, \"Colab Enterprise\".", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudSecuritycenterV2NotificationMessage": { "description": "Cloud SCC's Notification", "id": "GoogleCloudSecuritycenterV2NotificationMessage", @@ -10357,18 +10775,85 @@ }, "type": "object" }, + "GoogleCloudSecuritycenterV2Requests": { + "description": "Information about the requests relevant to the finding.", + "id": "GoogleCloudSecuritycenterV2Requests", + "properties": { + "longTermAllowed": { + "description": "Allowed RPS (requests per second) over the long term.", + "format": "int32", + "type": "integer" + }, + "longTermDenied": { + "description": "Denied RPS (requests per second) over the long term.", + "format": "int32", + "type": "integer" + }, + "ratio": { + "description": "For 'Increasing deny ratio', the ratio is the denied traffic divided by the allowed traffic. For 'Allowed traffic spike', the ratio is the allowed traffic in the short term divided by allowed traffic in the long term.", + "format": "double", + "type": "number" + }, + "shortTermAllowed": { + "description": "Allowed RPS (requests per second) in the short term.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "GoogleCloudSecuritycenterV2Resource": { "description": "Information related to the Google Cloud resource.", "id": "GoogleCloudSecuritycenterV2Resource", "properties": { + "awsMetadata": { + "$ref": "GoogleCloudSecuritycenterV2AwsMetadata", + "description": "The AWS metadata associated with the finding." + }, + "cloudProvider": { + "description": "Indicates which cloud provider the finding is from.", + "enum": [ + "CLOUD_PROVIDER_UNSPECIFIED", + "GOOGLE_CLOUD_PLATFORM", + "AMAZON_WEB_SERVICES", + "MICROSOFT_AZURE" + ], + "enumDescriptions": [ + "The cloud provider is unspecified.", + "The cloud provider is Google Cloud Platform.", + "The cloud provider is Amazon Web Services.", + "The cloud provider is Microsoft Azure." + ], + "type": "string" + }, "displayName": { "description": "The human readable name of the resource.", "type": "string" }, + "gcpMetadata": { + "$ref": "GcpMetadata", + "description": "The GCP metadata associated with the finding." + }, + "location": { + "description": "The region or location of the service (if applicable).", + "type": "string" + }, "name": { "description": "The full resource name of the resource. See: https://cloud.google.com/apis/design/resource_names#full_resource_name", "type": "string" }, + "resourcePath": { + "$ref": "GoogleCloudSecuritycenterV2ResourcePath", + "description": "Provides the path to the resource within the resource hierarchy." + }, + "resourcePathString": { + "description": "A string representation of the resource path. For GCP, it has the format of: organizations/{organization_id}/folders/{folder_id}/folders/{folder_id}/projects/{project_id} where there can be any number of folders. For AWS, it has the format of: org/{organization_id}/ou/{organizational_unit_id}/ou/{organizational_unit_id}/account/{account_id} where there can be any number of organizational units. For Azure, it has the format of: mg/{management_group_id}/mg/{management_group_id}/subscription/{subscription_id}/rg/{resource_group_name} where there can be any number of management groups.", + "type": "string" + }, + "service": { + "description": "The service or resource provider associated with the resource.", + "type": "string" + }, "type": { "description": "The full resource type of the resource.", "type": "string" @@ -10376,10 +10861,83 @@ }, "type": "object" }, + "GoogleCloudSecuritycenterV2ResourcePath": { + "description": "Represents the path of resources leading up to the resource this finding is about.", + "id": "GoogleCloudSecuritycenterV2ResourcePath", + "properties": { + "nodes": { + "description": "The list of nodes that make the up resource path, ordered from lowest level to highest level.", + "items": { + "$ref": "GoogleCloudSecuritycenterV2ResourcePathNode" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2ResourcePathNode": { + "description": "A node within the resource path. Each node represents a resource within the resource hierarchy.", + "id": "GoogleCloudSecuritycenterV2ResourcePathNode", + "properties": { + "displayName": { + "description": "The display name of the resource this node represents.", + "type": "string" + }, + "id": { + "description": "The ID of the resource this node represents.", + "type": "string" + }, + "nodeType": { + "description": "The type of resource this node represents.", + "enum": [ + "RESOURCE_PATH_NODE_TYPE_UNSPECIFIED", + "GCP_ORGANIZATION", + "GCP_FOLDER", + "GCP_PROJECT", + "AWS_ORGANIZATION", + "AWS_ORGANIZATIONAL_UNIT", + "AWS_ACCOUNT", + "AZURE_MANAGEMENT_GROUP", + "AZURE_SUBSCRIPTION", + "AZURE_RESOURCE_GROUP" + ], + "enumDescriptions": [ + "Node type is unspecified.", + "The node represents a GCP organization.", + "The node represents a GCP folder.", + "The node represents a GCP project.", + "The node represents an AWS organization.", + "The node represents an AWS organizational unit.", + "The node represents an AWS account.", + "The node represents an Azure management group.", + "The node represents an Azure subscription.", + "The node represents an Azure resource group." + ], + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudSecuritycenterV2ResourceValueConfig": { "description": "A resource value config (RVC) is a mapping configuration of user's resources to resource values. Used in Attack path simulations.", "id": "GoogleCloudSecuritycenterV2ResourceValueConfig", "properties": { + "cloudProvider": { + "description": "Cloud provider this configuration applies to", + "enum": [ + "CLOUD_PROVIDER_UNSPECIFIED", + "GOOGLE_CLOUD_PLATFORM", + "AMAZON_WEB_SERVICES", + "MICROSOFT_AZURE" + ], + "enumDescriptions": [ + "The cloud provider is unspecified.", + "The cloud provider is Google Cloud Platform.", + "The cloud provider is Amazon Web Services.", + "The cloud provider is Microsoft Azure." + ], + "type": "string" + }, "createTime": { "description": "Output only. Timestamp this resource value config was created.", "format": "google-datetime", @@ -10501,7 +11059,7 @@ "id": "GoogleCloudSecuritycenterV2SecurityMarks", "properties": { "canonicalName": { - "description": "The canonical name of the marks. The following list shows some examples: + `organizations/{organization_id}/assets/{asset_id}/securityMarks\" + `organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/securityMarks\" + `organizations/{organization_id}/sources/{source_id}/locations/{location}/findings/{finding_id}/securityMarks\" + `folders/{folder_id}/assets/{asset_id}/securityMarks\" + `folders/{folder_id}/sources/{source_id}/findings/{finding_id}/securityMarks\" + `folders/{folder_id}/sources/{source_id}/locations/{location}/findings/{finding_id}/securityMarks\" + `projects/{project_number}/assets/{asset_id}/securityMarks\" + `projects/{project_number}/sources/{source_id}/findings/{finding_id}/securityMarks\" + `projects/{project_number}/sources/{source_id}/locations/{location}/findings/{finding_id}/securityMarks\"", + "description": "The canonical name of the marks. The following list shows some examples: + `organizations/{organization_id}/assets/{asset_id}/securityMarks` + `organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/securityMarks` + `organizations/{organization_id}/sources/{source_id}/locations/{location}/findings/{finding_id}/securityMarks` + `folders/{folder_id}/assets/{asset_id}/securityMarks` + `folders/{folder_id}/sources/{source_id}/findings/{finding_id}/securityMarks` + `folders/{folder_id}/sources/{source_id}/locations/{location}/findings/{finding_id}/securityMarks` + `projects/{project_number}/assets/{asset_id}/securityMarks` + `projects/{project_number}/sources/{source_id}/findings/{finding_id}/securityMarks` + `projects/{project_number}/sources/{source_id}/locations/{location}/findings/{finding_id}/securityMarks`", "type": "string" }, "marks": { @@ -10518,6 +11076,25 @@ }, "type": "object" }, + "GoogleCloudSecuritycenterV2SecurityPolicy": { + "description": "Information about the [Google Cloud Armor security policy](https://cloud.google.com/armor/docs/security-policy-overview) relevant to the finding.", + "id": "GoogleCloudSecuritycenterV2SecurityPolicy", + "properties": { + "name": { + "description": "The name of the Google Cloud Armor security policy, for example, \"my-security-policy\".", + "type": "string" + }, + "preview": { + "description": "Whether or not the associated rule or policy is in preview mode.", + "type": "boolean" + }, + "type": { + "description": "The type of Google Cloud Armor security policy for example, \u2018backend security policy\u2019, \u2018edge security policy\u2019, \u2018network edge security policy\u2019, or \u2018always-on DDoS protection\u2019.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudSecuritycenterV2SecurityPosture": { "description": "Represents a posture that is deployed on Google Cloud by the Security Command Center Posture Management service. A posture contains one or more policy sets. A policy set is a group of policies that enforce a set of security rules on Google Cloud.", "id": "GoogleCloudSecuritycenterV2SecurityPosture", @@ -11519,6 +12096,7 @@ "PROCESS_DISCOVERY", "COMMAND_AND_SCRIPTING_INTERPRETER", "UNIX_SHELL", + "PYTHON", "PERMISSION_GROUPS_DISCOVERY", "CLOUD_GROUPS", "APPLICATION_LAYER_PROTOCOL", @@ -11580,6 +12158,7 @@ "T1057", "T1059", "T1059.004", + "T1059.006", "T1069", "T1069.003", "T1071", @@ -11686,6 +12265,7 @@ "PROCESS_DISCOVERY", "COMMAND_AND_SCRIPTING_INTERPRETER", "UNIX_SHELL", + "PYTHON", "PERMISSION_GROUPS_DISCOVERY", "CLOUD_GROUPS", "APPLICATION_LAYER_PROTOCOL", @@ -11747,6 +12327,7 @@ "T1057", "T1059", "T1059.004", + "T1059.006", "T1069", "T1069.003", "T1071", @@ -11838,6 +12419,30 @@ }, "type": "object" }, + "Notebook": { + "description": "Represents a Jupyter notebook IPYNB file, such as a [Colab Enterprise notebook](https://cloud.google.com/colab/docs/introduction) file, that is associated with a finding.", + "id": "Notebook", + "properties": { + "lastAuthor": { + "description": "The user ID of the latest author to modify the notebook.", + "type": "string" + }, + "name": { + "description": "The name of the notebook.", + "type": "string" + }, + "notebookUpdateTime": { + "description": "The most recent time the notebook was updated.", + "format": "google-datetime", + "type": "string" + }, + "service": { + "description": "The source notebook service, for example, \"Colab Enterprise\".", + "type": "string" + } + }, + "type": "object" + }, "NotificationConfig": { "description": "Cloud Security Command Center (Cloud SCC) notification configs. A notification config is a Cloud SCC resource that contains the configuration to send notifications for create/update events of findings, assets and etc.", "id": "NotificationConfig", @@ -12199,10 +12804,57 @@ }, "type": "object" }, + "Requests": { + "description": "Information about the requests relevant to the finding.", + "id": "Requests", + "properties": { + "longTermAllowed": { + "description": "Allowed RPS (requests per second) over the long term.", + "format": "int32", + "type": "integer" + }, + "longTermDenied": { + "description": "Denied RPS (requests per second) over the long term.", + "format": "int32", + "type": "integer" + }, + "ratio": { + "description": "For 'Increasing deny ratio', the ratio is the denied traffic divided by the allowed traffic. For 'Allowed traffic spike', the ratio is the allowed traffic in the short term divided by allowed traffic in the long term.", + "format": "double", + "type": "number" + }, + "shortTermAllowed": { + "description": "Allowed RPS (requests per second) in the short term.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "Resource": { "description": "Information related to the Google Cloud resource that is associated with this finding.", "id": "Resource", "properties": { + "awsMetadata": { + "$ref": "AwsMetadata", + "description": "The AWS metadata associated with the finding." + }, + "cloudProvider": { + "description": "Indicates which cloud provider the finding is from.", + "enum": [ + "CLOUD_PROVIDER_UNSPECIFIED", + "GOOGLE_CLOUD_PLATFORM", + "AMAZON_WEB_SERVICES", + "MICROSOFT_AZURE" + ], + "enumDescriptions": [ + "The cloud provider is unspecified.", + "The cloud provider is Google Cloud Platform.", + "The cloud provider is Amazon Web Services.", + "The cloud provider is Microsoft Azure." + ], + "type": "string" + }, "displayName": { "description": "The human readable name of the resource.", "type": "string" @@ -12214,10 +12866,18 @@ }, "type": "array" }, + "location": { + "description": "The region or location of the service (if applicable).", + "type": "string" + }, "name": { "description": "The full resource name of the resource. See: https://cloud.google.com/apis/design/resource_names#full_resource_name", "type": "string" }, + "organization": { + "description": "Indicates which organization / tenant the finding is for.", + "type": "string" + }, "parentDisplayName": { "description": "The human readable name of resource's parent.", "type": "string" @@ -12234,6 +12894,18 @@ "description": "The full resource name of project that the resource belongs to.", "type": "string" }, + "resourcePath": { + "$ref": "ResourcePath", + "description": "Provides the path to the resource within the resource hierarchy." + }, + "resourcePathString": { + "description": "A string representation of the resource path. For GCP, it has the format of: org/{organization_id}/folder/{folder_id}/folder/{folder_id}/project/{project_id} where there can be any number of folders. For AWS, it has the format of: org/{organization_id}/ou/{organizational_unit_id}/ou/{organizational_unit_id}/account/{account_id} where there can be any number of organizational units. For Azure, it has the format of: mg/{management_group_id}/mg/{management_group_id}/subscription/{subscription_id}/rg/{resource_group_name} where there can be any number of management groups.", + "type": "string" + }, + "service": { + "description": "The service or resource provider associated with the resource.", + "type": "string" + }, "type": { "description": "The full resource type of the resource.", "type": "string" @@ -12241,6 +12913,63 @@ }, "type": "object" }, + "ResourcePath": { + "description": "Represents the path of resources leading up to the resource this finding is about.", + "id": "ResourcePath", + "properties": { + "nodes": { + "description": "The list of nodes that make the up resource path, ordered from lowest level to highest level.", + "items": { + "$ref": "ResourcePathNode" + }, + "type": "array" + } + }, + "type": "object" + }, + "ResourcePathNode": { + "description": "A node within the resource path. Each node represents a resource within the resource hierarchy.", + "id": "ResourcePathNode", + "properties": { + "displayName": { + "description": "The display name of the resource this node represents.", + "type": "string" + }, + "id": { + "description": "The ID of the resource this node represents.", + "type": "string" + }, + "nodeType": { + "description": "The type of resource this node represents.", + "enum": [ + "RESOURCE_PATH_NODE_TYPE_UNSPECIFIED", + "GCP_ORGANIZATION", + "GCP_FOLDER", + "GCP_PROJECT", + "AWS_ORGANIZATION", + "AWS_ORGANIZATIONAL_UNIT", + "AWS_ACCOUNT", + "AZURE_MANAGEMENT_GROUP", + "AZURE_SUBSCRIPTION", + "AZURE_RESOURCE_GROUP" + ], + "enumDescriptions": [ + "Node type is unspecified.", + "The node represents a GCP organization.", + "The node represents a GCP folder.", + "The node represents a GCP project.", + "The node represents an AWS organization.", + "The node represents an AWS organizational unit.", + "The node represents an AWS account.", + "The node represents an Azure management group.", + "The node represents an Azure subscription.", + "The node represents an Azure resource group." + ], + "type": "string" + } + }, + "type": "object" + }, "ResourceValueConfigMetadata": { "description": "Metadata about a ResourceValueConfig. For example, id and name.", "id": "ResourceValueConfigMetadata", @@ -12378,6 +13107,25 @@ }, "type": "object" }, + "SecurityPolicy": { + "description": "Information about the [Google Cloud Armor security policy](https://cloud.google.com/armor/docs/security-policy-overview) relevant to the finding.", + "id": "SecurityPolicy", + "properties": { + "name": { + "description": "The name of the Google Cloud Armor security policy, for example, \"my-security-policy\".", + "type": "string" + }, + "preview": { + "description": "Whether or not the associated rule or policy is in preview mode.", + "type": "boolean" + }, + "type": { + "description": "The type of Google Cloud Armor security policy for example, \u2018backend security policy\u2019, \u2018edge security policy\u2019, \u2018network edge security policy\u2019, or \u2018always-on DDoS protection\u2019.", + "type": "string" + } + }, + "type": "object" + }, "SecurityPosture": { "description": "Represents a posture that is deployed on Google Cloud by the Security Command Center Posture Management service. A posture contains one or more policy sets. A policy set is a group of policies that enforce a set of security rules on Google Cloud.", "id": "SecurityPosture", @@ -12572,6 +13320,22 @@ "description": "Attack path simulation", "id": "Simulation", "properties": { + "cloudProvider": { + "description": "Indicates which cloud provider was used in this simulation.", + "enum": [ + "CLOUD_PROVIDER_UNSPECIFIED", + "GOOGLE_CLOUD_PLATFORM", + "AMAZON_WEB_SERVICES", + "MICROSOFT_AZURE" + ], + "enumDescriptions": [ + "The cloud provider is unspecified.", + "The cloud provider is Google Cloud Platform.", + "The cloud provider is Amazon Web Services.", + "The cloud provider is Microsoft Azure." + ], + "type": "string" + }, "createTime": { "description": "Output only. Time simulation was created", "format": "google-datetime", @@ -12844,6 +13608,57 @@ }, "type": "object" }, + "VulnerabilityCountBySeverity": { + "description": "Vulnerability count by severity.", + "id": "VulnerabilityCountBySeverity", + "properties": { + "severityToFindingCount": { + "additionalProperties": { + "format": "int64", + "type": "string" + }, + "description": "Key is the Severity enum.", + "type": "object" + } + }, + "type": "object" + }, + "VulnerabilitySnapshot": { + "description": "Result containing the properties and count of a VulnerabilitySnapshot request.", + "id": "VulnerabilitySnapshot", + "properties": { + "cloudProvider": { + "description": "The cloud provider for the vulnerability snapshot.", + "enum": [ + "CLOUD_PROVIDER_UNSPECIFIED", + "GOOGLE_CLOUD_PLATFORM", + "AMAZON_WEB_SERVICES", + "MICROSOFT_AZURE" + ], + "enumDescriptions": [ + "The cloud provider is unspecified.", + "The cloud provider is Google Cloud Platform.", + "The cloud provider is Amazon Web Services.", + "The cloud provider is Microsoft Azure." + ], + "type": "string" + }, + "findingCount": { + "$ref": "VulnerabilityCountBySeverity", + "description": "The vulnerability count by severity." + }, + "name": { + "description": "Identifier. The vulnerability snapshot name. Format: //locations//vulnerabilitySnapshots/", + "type": "string" + }, + "snapshotTime": { + "description": "The time that the snapshot was taken.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, "YaraRuleSignature": { "description": "A signature corresponding to a YARA rule.", "id": "YaraRuleSignature", diff --git a/etc/api/securitycenter/v1beta1/securitycenter-api.json b/etc/api/securitycenter/v1beta1/securitycenter-api.json index a4064c10b6..5006efe786 100644 --- a/etc/api/securitycenter/v1beta1/securitycenter-api.json +++ b/etc/api/securitycenter/v1beta1/securitycenter-api.json @@ -896,7 +896,7 @@ } } }, - "revision": "20240302", + "revision": "20240415", "rootUrl": "https://securitycenter.googleapis.com/", "schemas": { "Access": { @@ -988,6 +988,18 @@ }, "type": "object" }, + "AdaptiveProtection": { + "description": "Information about [Google Cloud Armor Adaptive Protection](https://cloud.google.com/armor/docs/cloud-armor-overview#google-cloud-armor-adaptive-protection).", + "id": "AdaptiveProtection", + "properties": { + "confidence": { + "description": "A score of 0 means that there is low confidence that the detected event is an actual attack. A score of 1 means that there is high confidence that the detected event is an attack. See the [Adaptive Protection documentation](https://cloud.google.com/armor/docs/adaptive-protection-overview#configure-alert-tuning) for further explanation.", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, "Application": { "description": "Represents an application associated with a finding.", "id": "Application", @@ -1067,6 +1079,27 @@ }, "type": "object" }, + "Attack": { + "description": "Information about DDoS attack volume and classification.", + "id": "Attack", + "properties": { + "classification": { + "description": "Type of attack, for example, \u2018SYN-flood\u2019, \u2018NTP-udp\u2019, or \u2018CHARGEN-udp\u2019.", + "type": "string" + }, + "volumeBps": { + "description": "Total BPS (bytes per second) volume of attack.", + "format": "int32", + "type": "integer" + }, + "volumePps": { + "description": "Total PPS (packets per second) volume of attack.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "AttackExposure": { "description": "An attack exposure contains the results of an attack path simulation run.", "id": "AttackExposure", @@ -1165,6 +1198,69 @@ }, "type": "object" }, + "AwsAccount": { + "description": "An AWS account that is a member of an organization.", + "id": "AwsAccount", + "properties": { + "id": { + "description": "The unique identifier (ID) of the account, containing exactly 12 digits.", + "type": "string" + }, + "name": { + "description": "The friendly name of this account.", + "type": "string" + } + }, + "type": "object" + }, + "AwsMetadata": { + "description": "AWS metadata associated with the resource, only applicable if the finding's cloud provider is Amazon Web Services.", + "id": "AwsMetadata", + "properties": { + "account": { + "$ref": "AwsAccount", + "description": "The AWS account associated with the resource." + }, + "organization": { + "$ref": "AwsOrganization", + "description": "The AWS organization associated with the resource." + }, + "organizationalUnits": { + "description": "A list of AWS organizational units associated with the resource, ordered from lowest level (closest to the account) to highest level.", + "items": { + "$ref": "AwsOrganizationalUnit" + }, + "type": "array" + } + }, + "type": "object" + }, + "AwsOrganization": { + "description": "An organization is a collection of accounts that are centrally managed together using consolidated billing, organized hierarchically with organizational units (OUs), and controlled with policies.", + "id": "AwsOrganization", + "properties": { + "id": { + "description": "The unique identifier (ID) for the organization. The regex pattern for an organization ID string requires \"o-\" followed by from 10 to 32 lowercase letters or digits.", + "type": "string" + } + }, + "type": "object" + }, + "AwsOrganizationalUnit": { + "description": "An Organizational Unit (OU) is a container of AWS accounts within a root of an organization. Policies that are attached to an OU apply to all accounts contained in that OU and in any child OUs.", + "id": "AwsOrganizationalUnit", + "properties": { + "id": { + "description": "The unique identifier (ID) associated with this OU. The regex pattern for an organizational unit ID string requires \"ou-\" followed by from 4 to 32 lowercase letters or digits (the ID of the root that contains the OU). This string is followed by a second \"-\" dash and from 8 to 32 additional lowercase letters or digits. For example, \"ou-ab12-cd34ef56\".", + "type": "string" + }, + "name": { + "description": "The friendly name of the OU.", + "type": "string" + } + }, + "type": "object" + }, "BackupDisasterRecovery": { "description": "Information related to Google Cloud Backup and DR Service findings.", "id": "BackupDisasterRecovery", @@ -1250,6 +1346,38 @@ "properties": {}, "type": "object" }, + "CloudArmor": { + "description": "Fields related to Google Cloud Armor findings.", + "id": "CloudArmor", + "properties": { + "adaptiveProtection": { + "$ref": "AdaptiveProtection", + "description": "Information about potential Layer 7 DDoS attacks identified by [Google Cloud Armor Adaptive Protection](https://cloud.google.com/armor/docs/adaptive-protection-overview)." + }, + "attack": { + "$ref": "Attack", + "description": "Information about DDoS attack volume and classification." + }, + "duration": { + "description": "Duration of attack from the start until the current moment (updated every 5 minutes).", + "format": "google-duration", + "type": "string" + }, + "requests": { + "$ref": "Requests", + "description": "Information about incoming requests evaluated by [Google Cloud Armor security policies](https://cloud.google.com/armor/docs/security-policy-overview)." + }, + "securityPolicy": { + "$ref": "SecurityPolicy", + "description": "Information about the [Google Cloud Armor security policy](https://cloud.google.com/armor/docs/security-policy-overview) relevant to the finding." + }, + "threatVector": { + "description": "Distinguish between volumetric & protocol DDoS attack and application layer attacks. For example, \u201cL3_4\u201d for Layer 3 and Layer 4 DDoS attacks, or \u201cL_7\u201d for Layer 7 DDoS attacks.", + "type": "string" + } + }, + "type": "object" + }, "CloudDlpDataProfile": { "description": "The [data profile](https://cloud.google.com/dlp/docs/data-profiles) associated with the finding.", "id": "CloudDlpDataProfile", @@ -1353,6 +1481,22 @@ "description": "The category of Findings matching.", "type": "string" }, + "cloudProvider": { + "description": "The cloud provider for the compliance snapshot.", + "enum": [ + "CLOUD_PROVIDER_UNSPECIFIED", + "GOOGLE_CLOUD_PLATFORM", + "AMAZON_WEB_SERVICES", + "MICROSOFT_AZURE" + ], + "enumDescriptions": [ + "The cloud provider is unspecified.", + "The cloud provider is Google Cloud Platform.", + "The cloud provider is Amazon Web Services.", + "The cloud provider is Microsoft Azure." + ], + "type": "string" + }, "complianceStandard": { "description": "The compliance standard (ie CIS).", "type": "string" @@ -1374,10 +1518,6 @@ "description": "The compliance snapshot name. Format: //sources//complianceSnapshots/", "type": "string" }, - "projectDisplayName": { - "description": "The CRM resource display name that is closest to the snapshot the Findings belong to.", - "type": "string" - }, "snapshotTime": { "description": "The snapshot time of the snapshot.", "format": "google-datetime", @@ -1913,6 +2053,10 @@ "description": "The additional taxonomy group within findings from a given source. This field is immutable after creation time. Example: \"XSS_FLASH_INJECTION\"", "type": "string" }, + "cloudArmor": { + "$ref": "CloudArmor", + "description": "Fields related to Cloud Armor findings." + }, "cloudDlpDataProfile": { "$ref": "CloudDlpDataProfile", "description": "Cloud DLP data profile that is associated with the finding." @@ -2088,6 +2232,10 @@ "description": "Steps to address the finding.", "type": "string" }, + "notebook": { + "$ref": "Notebook", + "description": "Notebook associated with the finding." + }, "orgPolicies": { "description": "Contains information about the org policies associated with the finding.", "items": { @@ -2185,6 +2333,41 @@ }, "type": "object" }, + "GcpMetadata": { + "description": "GCP metadata associated with the resource, only applicable if the finding's cloud provider is Google Cloud Platform.", + "id": "GcpMetadata", + "properties": { + "folders": { + "description": "Output only. Contains a Folder message for each folder in the assets ancestry. The first folder is the deepest nested folder, and the last folder is the folder directly under the Organization.", + "items": { + "$ref": "GoogleCloudSecuritycenterV2Folder" + }, + "readOnly": true, + "type": "array" + }, + "organization": { + "description": "The name of the organization that the resource belongs to.", + "type": "string" + }, + "parent": { + "description": "The full resource name of resource's parent.", + "type": "string" + }, + "parentDisplayName": { + "description": "The human readable name of resource's parent.", + "type": "string" + }, + "project": { + "description": "The full resource name of project that the resource belongs to.", + "type": "string" + }, + "projectDisplayName": { + "description": "The project ID that the resource belongs to.", + "type": "string" + } + }, + "type": "object" + }, "Geolocation": { "description": "Represents a geographical location for a given access.", "id": "Geolocation", @@ -2529,6 +2712,26 @@ "description": "Information related to the Google Cloud resource.", "id": "GoogleCloudSecuritycenterV1Resource", "properties": { + "awsMetadata": { + "$ref": "AwsMetadata", + "description": "The AWS metadata associated with the finding." + }, + "cloudProvider": { + "description": "Indicates which cloud provider the resource resides in.", + "enum": [ + "CLOUD_PROVIDER_UNSPECIFIED", + "GOOGLE_CLOUD_PLATFORM", + "AMAZON_WEB_SERVICES", + "MICROSOFT_AZURE" + ], + "enumDescriptions": [ + "The cloud provider is unspecified.", + "The cloud provider is Google Cloud Platform.", + "The cloud provider is Amazon Web Services.", + "The cloud provider is Microsoft Azure." + ], + "type": "string" + }, "displayName": { "description": "The human readable name of the resource.", "type": "string" @@ -2541,10 +2744,18 @@ "readOnly": true, "type": "array" }, + "location": { + "description": "The region or location of the service (if applicable).", + "type": "string" + }, "name": { "description": "The full resource name of the resource. See: https://cloud.google.com/apis/design/resource_names#full_resource_name", "type": "string" }, + "organization": { + "description": "Indicates which organization or tenant in the cloud provider the finding applies to.", + "type": "string" + }, "parent": { "description": "The full resource name of resource's parent.", "type": "string" @@ -2561,6 +2772,18 @@ "description": "The project ID that the resource belongs to.", "type": "string" }, + "resourcePath": { + "$ref": "ResourcePath", + "description": "Provides the path to the resource within the resource hierarchy." + }, + "resourcePathString": { + "description": "A string representation of the resource path. For GCP, it has the format of: organizations/{organization_id}/folders/{folder_id}/folders/{folder_id}/projects/{project_id} where there can be any number of folders. For AWS, it has the format of: org/{organization_id}/ou/{organizational_unit_id}/ou/{organizational_unit_id}/account/{account_id} where there can be any number of organizational units. For Azure, it has the format of: mg/{management_group_id}/mg/{management_group_id}/subscription/{subscription_id}/rg/{resource_group_name} where there can be any number of management groups.", + "type": "string" + }, + "service": { + "description": "The parent service or product from which the resource is provided, for example, GKE or SNS.", + "type": "string" + }, "type": { "description": "The full resource type of the resource.", "type": "string" @@ -2586,6 +2809,22 @@ "description": "A resource value config (RVC) is a mapping configuration of user's resources to resource values. Used in Attack path simulations.", "id": "GoogleCloudSecuritycenterV1ResourceValueConfig", "properties": { + "cloudProvider": { + "description": "Cloud provider this configuration applies to", + "enum": [ + "CLOUD_PROVIDER_UNSPECIFIED", + "GOOGLE_CLOUD_PLATFORM", + "AMAZON_WEB_SERVICES", + "MICROSOFT_AZURE" + ], + "enumDescriptions": [ + "The cloud provider is unspecified.", + "The cloud provider is Google Cloud Platform.", + "The cloud provider is Amazon Web Services.", + "The cloud provider is Microsoft Azure." + ], + "type": "string" + }, "createTime": { "description": "Output only. Timestamp this resource value config was created.", "format": "google-datetime", @@ -3177,6 +3416,18 @@ }, "type": "object" }, + "GoogleCloudSecuritycenterV2AdaptiveProtection": { + "description": "Information about [Google Cloud Armor Adaptive Protection](https://cloud.google.com/armor/docs/cloud-armor-overview#google-cloud-armor-adaptive-protection).", + "id": "GoogleCloudSecuritycenterV2AdaptiveProtection", + "properties": { + "confidence": { + "description": "A score of 0 means that there is low confidence that the detected event is an actual attack. A score of 1 means that there is high confidence that the detected event is an attack. See the [Adaptive Protection documentation](https://cloud.google.com/armor/docs/adaptive-protection-overview#configure-alert-tuning) for further explanation.", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, "GoogleCloudSecuritycenterV2Application": { "description": "Represents an application associated with a finding.", "id": "GoogleCloudSecuritycenterV2Application", @@ -3192,6 +3443,27 @@ }, "type": "object" }, + "GoogleCloudSecuritycenterV2Attack": { + "description": "Information about DDoS attack volume and classification.", + "id": "GoogleCloudSecuritycenterV2Attack", + "properties": { + "classification": { + "description": "Type of attack, for example, \u2018SYN-flood\u2019, \u2018NTP-udp\u2019, or \u2018CHARGEN-udp\u2019.", + "type": "string" + }, + "volumeBps": { + "description": "Total BPS (bytes per second) volume of attack.", + "format": "int32", + "type": "integer" + }, + "volumePps": { + "description": "Total PPS (packets per second) volume of attack.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "GoogleCloudSecuritycenterV2AttackExposure": { "description": "An attack exposure contains the results of an attack path simulation run.", "id": "GoogleCloudSecuritycenterV2AttackExposure", @@ -3243,6 +3515,69 @@ }, "type": "object" }, + "GoogleCloudSecuritycenterV2AwsAccount": { + "description": "An AWS account that is a member of an organization.", + "id": "GoogleCloudSecuritycenterV2AwsAccount", + "properties": { + "id": { + "description": "The unique identifier (ID) of the account, containing exactly 12 digits.", + "type": "string" + }, + "name": { + "description": "The friendly name of this account.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2AwsMetadata": { + "description": "AWS metadata associated with the resource, only applicable if the finding's cloud provider is Amazon Web Services.", + "id": "GoogleCloudSecuritycenterV2AwsMetadata", + "properties": { + "account": { + "$ref": "GoogleCloudSecuritycenterV2AwsAccount", + "description": "The AWS account associated with the resource." + }, + "organization": { + "$ref": "GoogleCloudSecuritycenterV2AwsOrganization", + "description": "The AWS organization associated with the resource." + }, + "organizationalUnits": { + "description": "A list of AWS organizational units associated with the resource, ordered from lowest level (closest to the account) to highest level.", + "items": { + "$ref": "GoogleCloudSecuritycenterV2AwsOrganizationalUnit" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2AwsOrganization": { + "description": "An organization is a collection of accounts that are centrally managed together using consolidated billing, organized hierarchically with organizational units (OUs), and controlled with policies.", + "id": "GoogleCloudSecuritycenterV2AwsOrganization", + "properties": { + "id": { + "description": "The unique identifier (ID) for the organization. The regex pattern for an organization ID string requires \"o-\" followed by from 10 to 32 lowercase letters or digits.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2AwsOrganizationalUnit": { + "description": "An Organizational Unit (OU) is a container of AWS accounts within a root of an organization. Policies that are attached to an OU apply to all accounts contained in that OU and in any child OUs.", + "id": "GoogleCloudSecuritycenterV2AwsOrganizationalUnit", + "properties": { + "id": { + "description": "The unique identifier (ID) associated with this OU. The regex pattern for an organizational unit ID string requires \"ou-\" followed by from 4 to 32 lowercase letters or digits (the ID of the root that contains the OU). This string is followed by a second \"-\" dash and from 8 to 32 additional lowercase letters or digits. For example, \"ou-ab12-cd34ef56\".", + "type": "string" + }, + "name": { + "description": "The friendly name of the OU.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudSecuritycenterV2BackupDisasterRecovery": { "description": "Information related to Google Cloud Backup and DR Service findings.", "id": "GoogleCloudSecuritycenterV2BackupDisasterRecovery", @@ -3377,6 +3712,38 @@ "properties": {}, "type": "object" }, + "GoogleCloudSecuritycenterV2CloudArmor": { + "description": "Fields related to Google Cloud Armor findings.", + "id": "GoogleCloudSecuritycenterV2CloudArmor", + "properties": { + "adaptiveProtection": { + "$ref": "GoogleCloudSecuritycenterV2AdaptiveProtection", + "description": "Information about potential Layer 7 DDoS attacks identified by [Google Cloud Armor Adaptive Protection](https://cloud.google.com/armor/docs/adaptive-protection-overview)." + }, + "attack": { + "$ref": "GoogleCloudSecuritycenterV2Attack", + "description": "Information about DDoS attack volume and classification." + }, + "duration": { + "description": "Duration of attack from the start until the current moment (updated every 5 minutes).", + "format": "google-duration", + "type": "string" + }, + "requests": { + "$ref": "GoogleCloudSecuritycenterV2Requests", + "description": "Information about incoming requests evaluated by [Google Cloud Armor security policies](https://cloud.google.com/armor/docs/security-policy-overview)." + }, + "securityPolicy": { + "$ref": "GoogleCloudSecuritycenterV2SecurityPolicy", + "description": "Information about the [Google Cloud Armor security policy](https://cloud.google.com/armor/docs/security-policy-overview) relevant to the finding." + }, + "threatVector": { + "description": "Distinguish between volumetric & protocol DDoS attack and application layer attacks. For example, \u201cL3_4\u201d for Layer 3 and Layer 4 DDoS attacks, or \u201cL_7\u201d for Layer 7 DDoS attacks.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudSecuritycenterV2CloudDlpDataProfile": { "description": "The [data profile](https://cloud.google.com/dlp/docs/data-profiles) associated with the finding.", "id": "GoogleCloudSecuritycenterV2CloudDlpDataProfile", @@ -4029,6 +4396,10 @@ "description": "Immutable. The additional taxonomy group within findings from a given source. Example: \"XSS_FLASH_INJECTION\"", "type": "string" }, + "cloudArmor": { + "$ref": "GoogleCloudSecuritycenterV2CloudArmor", + "description": "Fields related to Cloud Armor findings." + }, "cloudDlpDataProfile": { "$ref": "GoogleCloudSecuritycenterV2CloudDlpDataProfile", "description": "Cloud DLP data profile that is associated with the finding." @@ -4205,6 +4576,10 @@ "description": "Steps to address the finding.", "type": "string" }, + "notebook": { + "$ref": "GoogleCloudSecuritycenterV2Notebook", + "description": "Notebook associated with the finding." + }, "orgPolicies": { "description": "Contains information about the org policies associated with the finding.", "items": { @@ -4288,6 +4663,21 @@ }, "type": "object" }, + "GoogleCloudSecuritycenterV2Folder": { + "description": "Message that contains the resource name and display name of a folder resource.", + "id": "GoogleCloudSecuritycenterV2Folder", + "properties": { + "resourceFolder": { + "description": "Full resource name of this folder. See: https://cloud.google.com/apis/design/resource_names#full_resource_name", + "type": "string" + }, + "resourceFolderDisplayName": { + "description": "The user defined display name for this folder.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudSecuritycenterV2Geolocation": { "description": "Represents a geographical location for a given access.", "id": "GoogleCloudSecuritycenterV2Geolocation", @@ -4575,6 +4965,7 @@ "PROCESS_DISCOVERY", "COMMAND_AND_SCRIPTING_INTERPRETER", "UNIX_SHELL", + "PYTHON", "PERMISSION_GROUPS_DISCOVERY", "CLOUD_GROUPS", "APPLICATION_LAYER_PROTOCOL", @@ -4636,6 +5027,7 @@ "T1057", "T1059", "T1059.004", + "T1059.006", "T1069", "T1069.003", "T1071", @@ -4742,6 +5134,7 @@ "PROCESS_DISCOVERY", "COMMAND_AND_SCRIPTING_INTERPRETER", "UNIX_SHELL", + "PYTHON", "PERMISSION_GROUPS_DISCOVERY", "CLOUD_GROUPS", "APPLICATION_LAYER_PROTOCOL", @@ -4803,6 +5196,7 @@ "T1057", "T1059", "T1059.004", + "T1059.006", "T1069", "T1069.003", "T1071", @@ -4942,6 +5336,30 @@ }, "type": "object" }, + "GoogleCloudSecuritycenterV2Notebook": { + "description": "Represents a Jupyter notebook IPYNB file, such as a [Colab Enterprise notebook](https://cloud.google.com/colab/docs/introduction) file, that is associated with a finding.", + "id": "GoogleCloudSecuritycenterV2Notebook", + "properties": { + "lastAuthor": { + "description": "The user ID of the latest author to modify the notebook.", + "type": "string" + }, + "name": { + "description": "The name of the notebook.", + "type": "string" + }, + "notebookUpdateTime": { + "description": "The most recent time the notebook was updated.", + "format": "google-datetime", + "type": "string" + }, + "service": { + "description": "The source notebook service, for example, \"Colab Enterprise\".", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudSecuritycenterV2NotificationMessage": { "description": "Cloud SCC's Notification", "id": "GoogleCloudSecuritycenterV2NotificationMessage", @@ -5175,18 +5593,85 @@ }, "type": "object" }, + "GoogleCloudSecuritycenterV2Requests": { + "description": "Information about the requests relevant to the finding.", + "id": "GoogleCloudSecuritycenterV2Requests", + "properties": { + "longTermAllowed": { + "description": "Allowed RPS (requests per second) over the long term.", + "format": "int32", + "type": "integer" + }, + "longTermDenied": { + "description": "Denied RPS (requests per second) over the long term.", + "format": "int32", + "type": "integer" + }, + "ratio": { + "description": "For 'Increasing deny ratio', the ratio is the denied traffic divided by the allowed traffic. For 'Allowed traffic spike', the ratio is the allowed traffic in the short term divided by allowed traffic in the long term.", + "format": "double", + "type": "number" + }, + "shortTermAllowed": { + "description": "Allowed RPS (requests per second) in the short term.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "GoogleCloudSecuritycenterV2Resource": { "description": "Information related to the Google Cloud resource.", "id": "GoogleCloudSecuritycenterV2Resource", "properties": { + "awsMetadata": { + "$ref": "GoogleCloudSecuritycenterV2AwsMetadata", + "description": "The AWS metadata associated with the finding." + }, + "cloudProvider": { + "description": "Indicates which cloud provider the finding is from.", + "enum": [ + "CLOUD_PROVIDER_UNSPECIFIED", + "GOOGLE_CLOUD_PLATFORM", + "AMAZON_WEB_SERVICES", + "MICROSOFT_AZURE" + ], + "enumDescriptions": [ + "The cloud provider is unspecified.", + "The cloud provider is Google Cloud Platform.", + "The cloud provider is Amazon Web Services.", + "The cloud provider is Microsoft Azure." + ], + "type": "string" + }, "displayName": { "description": "The human readable name of the resource.", "type": "string" }, + "gcpMetadata": { + "$ref": "GcpMetadata", + "description": "The GCP metadata associated with the finding." + }, + "location": { + "description": "The region or location of the service (if applicable).", + "type": "string" + }, "name": { "description": "The full resource name of the resource. See: https://cloud.google.com/apis/design/resource_names#full_resource_name", "type": "string" }, + "resourcePath": { + "$ref": "GoogleCloudSecuritycenterV2ResourcePath", + "description": "Provides the path to the resource within the resource hierarchy." + }, + "resourcePathString": { + "description": "A string representation of the resource path. For GCP, it has the format of: organizations/{organization_id}/folders/{folder_id}/folders/{folder_id}/projects/{project_id} where there can be any number of folders. For AWS, it has the format of: org/{organization_id}/ou/{organizational_unit_id}/ou/{organizational_unit_id}/account/{account_id} where there can be any number of organizational units. For Azure, it has the format of: mg/{management_group_id}/mg/{management_group_id}/subscription/{subscription_id}/rg/{resource_group_name} where there can be any number of management groups.", + "type": "string" + }, + "service": { + "description": "The service or resource provider associated with the resource.", + "type": "string" + }, "type": { "description": "The full resource type of the resource.", "type": "string" @@ -5194,10 +5679,83 @@ }, "type": "object" }, + "GoogleCloudSecuritycenterV2ResourcePath": { + "description": "Represents the path of resources leading up to the resource this finding is about.", + "id": "GoogleCloudSecuritycenterV2ResourcePath", + "properties": { + "nodes": { + "description": "The list of nodes that make the up resource path, ordered from lowest level to highest level.", + "items": { + "$ref": "GoogleCloudSecuritycenterV2ResourcePathNode" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2ResourcePathNode": { + "description": "A node within the resource path. Each node represents a resource within the resource hierarchy.", + "id": "GoogleCloudSecuritycenterV2ResourcePathNode", + "properties": { + "displayName": { + "description": "The display name of the resource this node represents.", + "type": "string" + }, + "id": { + "description": "The ID of the resource this node represents.", + "type": "string" + }, + "nodeType": { + "description": "The type of resource this node represents.", + "enum": [ + "RESOURCE_PATH_NODE_TYPE_UNSPECIFIED", + "GCP_ORGANIZATION", + "GCP_FOLDER", + "GCP_PROJECT", + "AWS_ORGANIZATION", + "AWS_ORGANIZATIONAL_UNIT", + "AWS_ACCOUNT", + "AZURE_MANAGEMENT_GROUP", + "AZURE_SUBSCRIPTION", + "AZURE_RESOURCE_GROUP" + ], + "enumDescriptions": [ + "Node type is unspecified.", + "The node represents a GCP organization.", + "The node represents a GCP folder.", + "The node represents a GCP project.", + "The node represents an AWS organization.", + "The node represents an AWS organizational unit.", + "The node represents an AWS account.", + "The node represents an Azure management group.", + "The node represents an Azure subscription.", + "The node represents an Azure resource group." + ], + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudSecuritycenterV2ResourceValueConfig": { "description": "A resource value config (RVC) is a mapping configuration of user's resources to resource values. Used in Attack path simulations.", "id": "GoogleCloudSecuritycenterV2ResourceValueConfig", "properties": { + "cloudProvider": { + "description": "Cloud provider this configuration applies to", + "enum": [ + "CLOUD_PROVIDER_UNSPECIFIED", + "GOOGLE_CLOUD_PLATFORM", + "AMAZON_WEB_SERVICES", + "MICROSOFT_AZURE" + ], + "enumDescriptions": [ + "The cloud provider is unspecified.", + "The cloud provider is Google Cloud Platform.", + "The cloud provider is Amazon Web Services.", + "The cloud provider is Microsoft Azure." + ], + "type": "string" + }, "createTime": { "description": "Output only. Timestamp this resource value config was created.", "format": "google-datetime", @@ -5319,7 +5877,7 @@ "id": "GoogleCloudSecuritycenterV2SecurityMarks", "properties": { "canonicalName": { - "description": "The canonical name of the marks. The following list shows some examples: + `organizations/{organization_id}/assets/{asset_id}/securityMarks\" + `organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/securityMarks\" + `organizations/{organization_id}/sources/{source_id}/locations/{location}/findings/{finding_id}/securityMarks\" + `folders/{folder_id}/assets/{asset_id}/securityMarks\" + `folders/{folder_id}/sources/{source_id}/findings/{finding_id}/securityMarks\" + `folders/{folder_id}/sources/{source_id}/locations/{location}/findings/{finding_id}/securityMarks\" + `projects/{project_number}/assets/{asset_id}/securityMarks\" + `projects/{project_number}/sources/{source_id}/findings/{finding_id}/securityMarks\" + `projects/{project_number}/sources/{source_id}/locations/{location}/findings/{finding_id}/securityMarks\"", + "description": "The canonical name of the marks. The following list shows some examples: + `organizations/{organization_id}/assets/{asset_id}/securityMarks` + `organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/securityMarks` + `organizations/{organization_id}/sources/{source_id}/locations/{location}/findings/{finding_id}/securityMarks` + `folders/{folder_id}/assets/{asset_id}/securityMarks` + `folders/{folder_id}/sources/{source_id}/findings/{finding_id}/securityMarks` + `folders/{folder_id}/sources/{source_id}/locations/{location}/findings/{finding_id}/securityMarks` + `projects/{project_number}/assets/{asset_id}/securityMarks` + `projects/{project_number}/sources/{source_id}/findings/{finding_id}/securityMarks` + `projects/{project_number}/sources/{source_id}/locations/{location}/findings/{finding_id}/securityMarks`", "type": "string" }, "marks": { @@ -5336,6 +5894,25 @@ }, "type": "object" }, + "GoogleCloudSecuritycenterV2SecurityPolicy": { + "description": "Information about the [Google Cloud Armor security policy](https://cloud.google.com/armor/docs/security-policy-overview) relevant to the finding.", + "id": "GoogleCloudSecuritycenterV2SecurityPolicy", + "properties": { + "name": { + "description": "The name of the Google Cloud Armor security policy, for example, \"my-security-policy\".", + "type": "string" + }, + "preview": { + "description": "Whether or not the associated rule or policy is in preview mode.", + "type": "boolean" + }, + "type": { + "description": "The type of Google Cloud Armor security policy for example, \u2018backend security policy\u2019, \u2018edge security policy\u2019, \u2018network edge security policy\u2019, or \u2018always-on DDoS protection\u2019.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudSecuritycenterV2SecurityPosture": { "description": "Represents a posture that is deployed on Google Cloud by the Security Command Center Posture Management service. A posture contains one or more policy sets. A policy set is a group of policies that enforce a set of security rules on Google Cloud.", "id": "GoogleCloudSecuritycenterV2SecurityPosture", @@ -6058,6 +6635,7 @@ "PROCESS_DISCOVERY", "COMMAND_AND_SCRIPTING_INTERPRETER", "UNIX_SHELL", + "PYTHON", "PERMISSION_GROUPS_DISCOVERY", "CLOUD_GROUPS", "APPLICATION_LAYER_PROTOCOL", @@ -6119,6 +6697,7 @@ "T1057", "T1059", "T1059.004", + "T1059.006", "T1069", "T1069.003", "T1071", @@ -6225,6 +6804,7 @@ "PROCESS_DISCOVERY", "COMMAND_AND_SCRIPTING_INTERPRETER", "UNIX_SHELL", + "PYTHON", "PERMISSION_GROUPS_DISCOVERY", "CLOUD_GROUPS", "APPLICATION_LAYER_PROTOCOL", @@ -6286,6 +6866,7 @@ "T1057", "T1059", "T1059.004", + "T1059.006", "T1069", "T1069.003", "T1071", @@ -6377,6 +6958,30 @@ }, "type": "object" }, + "Notebook": { + "description": "Represents a Jupyter notebook IPYNB file, such as a [Colab Enterprise notebook](https://cloud.google.com/colab/docs/introduction) file, that is associated with a finding.", + "id": "Notebook", + "properties": { + "lastAuthor": { + "description": "The user ID of the latest author to modify the notebook.", + "type": "string" + }, + "name": { + "description": "The name of the notebook.", + "type": "string" + }, + "notebookUpdateTime": { + "description": "The most recent time the notebook was updated.", + "format": "google-datetime", + "type": "string" + }, + "service": { + "description": "The source notebook service, for example, \"Colab Enterprise\".", + "type": "string" + } + }, + "type": "object" + }, "Object": { "description": "Kubernetes object related to the finding, uniquely identified by GKNN. Used if the object Kind is not one of Pod, Node, NodePool, Binding, or AccessReview.", "id": "Object", @@ -6676,6 +7281,90 @@ }, "type": "object" }, + "Requests": { + "description": "Information about the requests relevant to the finding.", + "id": "Requests", + "properties": { + "longTermAllowed": { + "description": "Allowed RPS (requests per second) over the long term.", + "format": "int32", + "type": "integer" + }, + "longTermDenied": { + "description": "Denied RPS (requests per second) over the long term.", + "format": "int32", + "type": "integer" + }, + "ratio": { + "description": "For 'Increasing deny ratio', the ratio is the denied traffic divided by the allowed traffic. For 'Allowed traffic spike', the ratio is the allowed traffic in the short term divided by allowed traffic in the long term.", + "format": "double", + "type": "number" + }, + "shortTermAllowed": { + "description": "Allowed RPS (requests per second) in the short term.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "ResourcePath": { + "description": "Represents the path of resources leading up to the resource this finding is about.", + "id": "ResourcePath", + "properties": { + "nodes": { + "description": "The list of nodes that make the up resource path, ordered from lowest level to highest level.", + "items": { + "$ref": "ResourcePathNode" + }, + "type": "array" + } + }, + "type": "object" + }, + "ResourcePathNode": { + "description": "A node within the resource path. Each node represents a resource within the resource hierarchy.", + "id": "ResourcePathNode", + "properties": { + "displayName": { + "description": "The display name of the resource this node represents.", + "type": "string" + }, + "id": { + "description": "The ID of the resource this node represents.", + "type": "string" + }, + "nodeType": { + "description": "The type of resource this node represents.", + "enum": [ + "RESOURCE_PATH_NODE_TYPE_UNSPECIFIED", + "GCP_ORGANIZATION", + "GCP_FOLDER", + "GCP_PROJECT", + "AWS_ORGANIZATION", + "AWS_ORGANIZATIONAL_UNIT", + "AWS_ACCOUNT", + "AZURE_MANAGEMENT_GROUP", + "AZURE_SUBSCRIPTION", + "AZURE_RESOURCE_GROUP" + ], + "enumDescriptions": [ + "Node type is unspecified.", + "The node represents a GCP organization.", + "The node represents a GCP folder.", + "The node represents a GCP project.", + "The node represents an AWS organization.", + "The node represents an AWS organizational unit.", + "The node represents an AWS account.", + "The node represents an Azure management group.", + "The node represents an Azure subscription.", + "The node represents an Azure resource group." + ], + "type": "string" + } + }, + "type": "object" + }, "Role": { "description": "Kubernetes Role or ClusterRole.", "id": "Role", @@ -6783,6 +7472,25 @@ }, "type": "object" }, + "SecurityPolicy": { + "description": "Information about the [Google Cloud Armor security policy](https://cloud.google.com/armor/docs/security-policy-overview) relevant to the finding.", + "id": "SecurityPolicy", + "properties": { + "name": { + "description": "The name of the Google Cloud Armor security policy, for example, \"my-security-policy\".", + "type": "string" + }, + "preview": { + "description": "Whether or not the associated rule or policy is in preview mode.", + "type": "boolean" + }, + "type": { + "description": "The type of Google Cloud Armor security policy for example, \u2018backend security policy\u2019, \u2018edge security policy\u2019, \u2018network edge security policy\u2019, or \u2018always-on DDoS protection\u2019.", + "type": "string" + } + }, + "type": "object" + }, "SecurityPosture": { "description": "Represents a posture that is deployed on Google Cloud by the Security Command Center Posture Management service. A posture contains one or more policy sets. A policy set is a group of policies that enforce a set of security rules on Google Cloud.", "id": "SecurityPosture", @@ -7042,6 +7750,57 @@ }, "type": "object" }, + "VulnerabilityCountBySeverity": { + "description": "Vulnerability count by severity.", + "id": "VulnerabilityCountBySeverity", + "properties": { + "severityToFindingCount": { + "additionalProperties": { + "format": "int64", + "type": "string" + }, + "description": "Key is the Severity enum.", + "type": "object" + } + }, + "type": "object" + }, + "VulnerabilitySnapshot": { + "description": "Result containing the properties and count of a VulnerabilitySnapshot request.", + "id": "VulnerabilitySnapshot", + "properties": { + "cloudProvider": { + "description": "The cloud provider for the vulnerability snapshot.", + "enum": [ + "CLOUD_PROVIDER_UNSPECIFIED", + "GOOGLE_CLOUD_PLATFORM", + "AMAZON_WEB_SERVICES", + "MICROSOFT_AZURE" + ], + "enumDescriptions": [ + "The cloud provider is unspecified.", + "The cloud provider is Google Cloud Platform.", + "The cloud provider is Amazon Web Services.", + "The cloud provider is Microsoft Azure." + ], + "type": "string" + }, + "findingCount": { + "$ref": "VulnerabilityCountBySeverity", + "description": "The vulnerability count by severity." + }, + "name": { + "description": "Identifier. The vulnerability snapshot name. Format: //locations//vulnerabilitySnapshots/", + "type": "string" + }, + "snapshotTime": { + "description": "The time that the snapshot was taken.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, "YaraRuleSignature": { "description": "A signature corresponding to a YARA rule.", "id": "YaraRuleSignature", diff --git a/etc/api/securitycenter/v1beta2/securitycenter-api.json b/etc/api/securitycenter/v1beta2/securitycenter-api.json index e8cba97df2..64055a047e 100644 --- a/etc/api/securitycenter/v1beta2/securitycenter-api.json +++ b/etc/api/securitycenter/v1beta2/securitycenter-api.json @@ -1906,7 +1906,7 @@ } } }, - "revision": "20240302", + "revision": "20240415", "rootUrl": "https://securitycenter.googleapis.com/", "schemas": { "Access": { @@ -1998,6 +1998,18 @@ }, "type": "object" }, + "AdaptiveProtection": { + "description": "Information about [Google Cloud Armor Adaptive Protection](https://cloud.google.com/armor/docs/cloud-armor-overview#google-cloud-armor-adaptive-protection).", + "id": "AdaptiveProtection", + "properties": { + "confidence": { + "description": "A score of 0 means that there is low confidence that the detected event is an actual attack. A score of 1 means that there is high confidence that the detected event is an attack. See the [Adaptive Protection documentation](https://cloud.google.com/armor/docs/adaptive-protection-overview#configure-alert-tuning) for further explanation.", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, "Application": { "description": "Represents an application associated with a finding.", "id": "Application", @@ -2013,6 +2025,27 @@ }, "type": "object" }, + "Attack": { + "description": "Information about DDoS attack volume and classification.", + "id": "Attack", + "properties": { + "classification": { + "description": "Type of attack, for example, \u2018SYN-flood\u2019, \u2018NTP-udp\u2019, or \u2018CHARGEN-udp\u2019.", + "type": "string" + }, + "volumeBps": { + "description": "Total BPS (bytes per second) volume of attack.", + "format": "int32", + "type": "integer" + }, + "volumePps": { + "description": "Total PPS (packets per second) volume of attack.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "AttackExposure": { "description": "An attack exposure contains the results of an attack path simulation run.", "id": "AttackExposure", @@ -2063,6 +2096,69 @@ }, "type": "object" }, + "AwsAccount": { + "description": "An AWS account that is a member of an organization.", + "id": "AwsAccount", + "properties": { + "id": { + "description": "The unique identifier (ID) of the account, containing exactly 12 digits.", + "type": "string" + }, + "name": { + "description": "The friendly name of this account.", + "type": "string" + } + }, + "type": "object" + }, + "AwsMetadata": { + "description": "AWS metadata associated with the resource, only applicable if the finding's cloud provider is Amazon Web Services.", + "id": "AwsMetadata", + "properties": { + "account": { + "$ref": "AwsAccount", + "description": "The AWS account associated with the resource." + }, + "organization": { + "$ref": "AwsOrganization", + "description": "The AWS organization associated with the resource." + }, + "organizationalUnits": { + "description": "A list of AWS organizational units associated with the resource, ordered from lowest level (closest to the account) to highest level.", + "items": { + "$ref": "AwsOrganizationalUnit" + }, + "type": "array" + } + }, + "type": "object" + }, + "AwsOrganization": { + "description": "An organization is a collection of accounts that are centrally managed together using consolidated billing, organized hierarchically with organizational units (OUs), and controlled with policies.", + "id": "AwsOrganization", + "properties": { + "id": { + "description": "The unique identifier (ID) for the organization. The regex pattern for an organization ID string requires \"o-\" followed by from 10 to 32 lowercase letters or digits.", + "type": "string" + } + }, + "type": "object" + }, + "AwsOrganizationalUnit": { + "description": "An Organizational Unit (OU) is a container of AWS accounts within a root of an organization. Policies that are attached to an OU apply to all accounts contained in that OU and in any child OUs.", + "id": "AwsOrganizationalUnit", + "properties": { + "id": { + "description": "The unique identifier (ID) associated with this OU. The regex pattern for an organizational unit ID string requires \"ou-\" followed by from 4 to 32 lowercase letters or digits (the ID of the root that contains the OU). This string is followed by a second \"-\" dash and from 8 to 32 additional lowercase letters or digits. For example, \"ou-ab12-cd34ef56\".", + "type": "string" + }, + "name": { + "description": "The friendly name of the OU.", + "type": "string" + } + }, + "type": "object" + }, "BackupDisasterRecovery": { "description": "Information related to Google Cloud Backup and DR Service findings.", "id": "BackupDisasterRecovery", @@ -2120,6 +2216,38 @@ }, "type": "object" }, + "CloudArmor": { + "description": "Fields related to Google Cloud Armor findings.", + "id": "CloudArmor", + "properties": { + "adaptiveProtection": { + "$ref": "AdaptiveProtection", + "description": "Information about potential Layer 7 DDoS attacks identified by [Google Cloud Armor Adaptive Protection](https://cloud.google.com/armor/docs/adaptive-protection-overview)." + }, + "attack": { + "$ref": "Attack", + "description": "Information about DDoS attack volume and classification." + }, + "duration": { + "description": "Duration of attack from the start until the current moment (updated every 5 minutes).", + "format": "google-duration", + "type": "string" + }, + "requests": { + "$ref": "Requests", + "description": "Information about incoming requests evaluated by [Google Cloud Armor security policies](https://cloud.google.com/armor/docs/security-policy-overview)." + }, + "securityPolicy": { + "$ref": "SecurityPolicy", + "description": "Information about the [Google Cloud Armor security policy](https://cloud.google.com/armor/docs/security-policy-overview) relevant to the finding." + }, + "threatVector": { + "description": "Distinguish between volumetric & protocol DDoS attack and application layer attacks. For example, \u201cL3_4\u201d for Layer 3 and Layer 4 DDoS attacks, or \u201cL_7\u201d for Layer 7 DDoS attacks.", + "type": "string" + } + }, + "type": "object" + }, "CloudDlpDataProfile": { "description": "The [data profile](https://cloud.google.com/dlp/docs/data-profiles) associated with the finding.", "id": "CloudDlpDataProfile", @@ -2223,6 +2351,22 @@ "description": "The category of Findings matching.", "type": "string" }, + "cloudProvider": { + "description": "The cloud provider for the compliance snapshot.", + "enum": [ + "CLOUD_PROVIDER_UNSPECIFIED", + "GOOGLE_CLOUD_PLATFORM", + "AMAZON_WEB_SERVICES", + "MICROSOFT_AZURE" + ], + "enumDescriptions": [ + "The cloud provider is unspecified.", + "The cloud provider is Google Cloud Platform.", + "The cloud provider is Amazon Web Services.", + "The cloud provider is Microsoft Azure." + ], + "type": "string" + }, "complianceStandard": { "description": "The compliance standard (ie CIS).", "type": "string" @@ -2244,10 +2388,6 @@ "description": "The compliance snapshot name. Format: //sources//complianceSnapshots/", "type": "string" }, - "projectDisplayName": { - "description": "The CRM resource display name that is closest to the snapshot the Findings belong to.", - "type": "string" - }, "snapshotTime": { "description": "The snapshot time of the snapshot.", "format": "google-datetime", @@ -2930,6 +3070,10 @@ "description": "The additional taxonomy group within findings from a given source. This field is immutable after creation time. Example: \"XSS_FLASH_INJECTION\"", "type": "string" }, + "cloudArmor": { + "$ref": "CloudArmor", + "description": "Fields related to Cloud Armor findings." + }, "cloudDlpDataProfile": { "$ref": "CloudDlpDataProfile", "description": "Cloud DLP data profile that is associated with the finding." @@ -3105,6 +3249,10 @@ "description": "Steps to address the finding.", "type": "string" }, + "notebook": { + "$ref": "Notebook", + "description": "Notebook associated with the finding." + }, "orgPolicies": { "description": "Contains information about the org policies associated with the finding.", "items": { @@ -3202,6 +3350,41 @@ }, "type": "object" }, + "GcpMetadata": { + "description": "GCP metadata associated with the resource, only applicable if the finding's cloud provider is Google Cloud Platform.", + "id": "GcpMetadata", + "properties": { + "folders": { + "description": "Output only. Contains a Folder message for each folder in the assets ancestry. The first folder is the deepest nested folder, and the last folder is the folder directly under the Organization.", + "items": { + "$ref": "GoogleCloudSecuritycenterV2Folder" + }, + "readOnly": true, + "type": "array" + }, + "organization": { + "description": "The name of the organization that the resource belongs to.", + "type": "string" + }, + "parent": { + "description": "The full resource name of resource's parent.", + "type": "string" + }, + "parentDisplayName": { + "description": "The human readable name of resource's parent.", + "type": "string" + }, + "project": { + "description": "The full resource name of project that the resource belongs to.", + "type": "string" + }, + "projectDisplayName": { + "description": "The project ID that the resource belongs to.", + "type": "string" + } + }, + "type": "object" + }, "Geolocation": { "description": "Represents a geographical location for a given access.", "id": "Geolocation", @@ -3523,6 +3706,26 @@ "description": "Information related to the Google Cloud resource.", "id": "GoogleCloudSecuritycenterV1Resource", "properties": { + "awsMetadata": { + "$ref": "AwsMetadata", + "description": "The AWS metadata associated with the finding." + }, + "cloudProvider": { + "description": "Indicates which cloud provider the resource resides in.", + "enum": [ + "CLOUD_PROVIDER_UNSPECIFIED", + "GOOGLE_CLOUD_PLATFORM", + "AMAZON_WEB_SERVICES", + "MICROSOFT_AZURE" + ], + "enumDescriptions": [ + "The cloud provider is unspecified.", + "The cloud provider is Google Cloud Platform.", + "The cloud provider is Amazon Web Services.", + "The cloud provider is Microsoft Azure." + ], + "type": "string" + }, "displayName": { "description": "The human readable name of the resource.", "type": "string" @@ -3535,10 +3738,18 @@ "readOnly": true, "type": "array" }, + "location": { + "description": "The region or location of the service (if applicable).", + "type": "string" + }, "name": { "description": "The full resource name of the resource. See: https://cloud.google.com/apis/design/resource_names#full_resource_name", "type": "string" }, + "organization": { + "description": "Indicates which organization or tenant in the cloud provider the finding applies to.", + "type": "string" + }, "parent": { "description": "The full resource name of resource's parent.", "type": "string" @@ -3555,6 +3766,18 @@ "description": "The project ID that the resource belongs to.", "type": "string" }, + "resourcePath": { + "$ref": "ResourcePath", + "description": "Provides the path to the resource within the resource hierarchy." + }, + "resourcePathString": { + "description": "A string representation of the resource path. For GCP, it has the format of: organizations/{organization_id}/folders/{folder_id}/folders/{folder_id}/projects/{project_id} where there can be any number of folders. For AWS, it has the format of: org/{organization_id}/ou/{organizational_unit_id}/ou/{organizational_unit_id}/account/{account_id} where there can be any number of organizational units. For Azure, it has the format of: mg/{management_group_id}/mg/{management_group_id}/subscription/{subscription_id}/rg/{resource_group_name} where there can be any number of management groups.", + "type": "string" + }, + "service": { + "description": "The parent service or product from which the resource is provided, for example, GKE or SNS.", + "type": "string" + }, "type": { "description": "The full resource type of the resource.", "type": "string" @@ -3580,6 +3803,22 @@ "description": "A resource value config (RVC) is a mapping configuration of user's resources to resource values. Used in Attack path simulations.", "id": "GoogleCloudSecuritycenterV1ResourceValueConfig", "properties": { + "cloudProvider": { + "description": "Cloud provider this configuration applies to", + "enum": [ + "CLOUD_PROVIDER_UNSPECIFIED", + "GOOGLE_CLOUD_PLATFORM", + "AMAZON_WEB_SERVICES", + "MICROSOFT_AZURE" + ], + "enumDescriptions": [ + "The cloud provider is unspecified.", + "The cloud provider is Google Cloud Platform.", + "The cloud provider is Amazon Web Services.", + "The cloud provider is Microsoft Azure." + ], + "type": "string" + }, "createTime": { "description": "Output only. Timestamp this resource value config was created.", "format": "google-datetime", @@ -4090,6 +4329,18 @@ }, "type": "object" }, + "GoogleCloudSecuritycenterV2AdaptiveProtection": { + "description": "Information about [Google Cloud Armor Adaptive Protection](https://cloud.google.com/armor/docs/cloud-armor-overview#google-cloud-armor-adaptive-protection).", + "id": "GoogleCloudSecuritycenterV2AdaptiveProtection", + "properties": { + "confidence": { + "description": "A score of 0 means that there is low confidence that the detected event is an actual attack. A score of 1 means that there is high confidence that the detected event is an attack. See the [Adaptive Protection documentation](https://cloud.google.com/armor/docs/adaptive-protection-overview#configure-alert-tuning) for further explanation.", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, "GoogleCloudSecuritycenterV2Application": { "description": "Represents an application associated with a finding.", "id": "GoogleCloudSecuritycenterV2Application", @@ -4105,6 +4356,27 @@ }, "type": "object" }, + "GoogleCloudSecuritycenterV2Attack": { + "description": "Information about DDoS attack volume and classification.", + "id": "GoogleCloudSecuritycenterV2Attack", + "properties": { + "classification": { + "description": "Type of attack, for example, \u2018SYN-flood\u2019, \u2018NTP-udp\u2019, or \u2018CHARGEN-udp\u2019.", + "type": "string" + }, + "volumeBps": { + "description": "Total BPS (bytes per second) volume of attack.", + "format": "int32", + "type": "integer" + }, + "volumePps": { + "description": "Total PPS (packets per second) volume of attack.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "GoogleCloudSecuritycenterV2AttackExposure": { "description": "An attack exposure contains the results of an attack path simulation run.", "id": "GoogleCloudSecuritycenterV2AttackExposure", @@ -4156,6 +4428,69 @@ }, "type": "object" }, + "GoogleCloudSecuritycenterV2AwsAccount": { + "description": "An AWS account that is a member of an organization.", + "id": "GoogleCloudSecuritycenterV2AwsAccount", + "properties": { + "id": { + "description": "The unique identifier (ID) of the account, containing exactly 12 digits.", + "type": "string" + }, + "name": { + "description": "The friendly name of this account.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2AwsMetadata": { + "description": "AWS metadata associated with the resource, only applicable if the finding's cloud provider is Amazon Web Services.", + "id": "GoogleCloudSecuritycenterV2AwsMetadata", + "properties": { + "account": { + "$ref": "GoogleCloudSecuritycenterV2AwsAccount", + "description": "The AWS account associated with the resource." + }, + "organization": { + "$ref": "GoogleCloudSecuritycenterV2AwsOrganization", + "description": "The AWS organization associated with the resource." + }, + "organizationalUnits": { + "description": "A list of AWS organizational units associated with the resource, ordered from lowest level (closest to the account) to highest level.", + "items": { + "$ref": "GoogleCloudSecuritycenterV2AwsOrganizationalUnit" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2AwsOrganization": { + "description": "An organization is a collection of accounts that are centrally managed together using consolidated billing, organized hierarchically with organizational units (OUs), and controlled with policies.", + "id": "GoogleCloudSecuritycenterV2AwsOrganization", + "properties": { + "id": { + "description": "The unique identifier (ID) for the organization. The regex pattern for an organization ID string requires \"o-\" followed by from 10 to 32 lowercase letters or digits.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2AwsOrganizationalUnit": { + "description": "An Organizational Unit (OU) is a container of AWS accounts within a root of an organization. Policies that are attached to an OU apply to all accounts contained in that OU and in any child OUs.", + "id": "GoogleCloudSecuritycenterV2AwsOrganizationalUnit", + "properties": { + "id": { + "description": "The unique identifier (ID) associated with this OU. The regex pattern for an organizational unit ID string requires \"ou-\" followed by from 4 to 32 lowercase letters or digits (the ID of the root that contains the OU). This string is followed by a second \"-\" dash and from 8 to 32 additional lowercase letters or digits. For example, \"ou-ab12-cd34ef56\".", + "type": "string" + }, + "name": { + "description": "The friendly name of the OU.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudSecuritycenterV2BackupDisasterRecovery": { "description": "Information related to Google Cloud Backup and DR Service findings.", "id": "GoogleCloudSecuritycenterV2BackupDisasterRecovery", @@ -4290,6 +4625,38 @@ "properties": {}, "type": "object" }, + "GoogleCloudSecuritycenterV2CloudArmor": { + "description": "Fields related to Google Cloud Armor findings.", + "id": "GoogleCloudSecuritycenterV2CloudArmor", + "properties": { + "adaptiveProtection": { + "$ref": "GoogleCloudSecuritycenterV2AdaptiveProtection", + "description": "Information about potential Layer 7 DDoS attacks identified by [Google Cloud Armor Adaptive Protection](https://cloud.google.com/armor/docs/adaptive-protection-overview)." + }, + "attack": { + "$ref": "GoogleCloudSecuritycenterV2Attack", + "description": "Information about DDoS attack volume and classification." + }, + "duration": { + "description": "Duration of attack from the start until the current moment (updated every 5 minutes).", + "format": "google-duration", + "type": "string" + }, + "requests": { + "$ref": "GoogleCloudSecuritycenterV2Requests", + "description": "Information about incoming requests evaluated by [Google Cloud Armor security policies](https://cloud.google.com/armor/docs/security-policy-overview)." + }, + "securityPolicy": { + "$ref": "GoogleCloudSecuritycenterV2SecurityPolicy", + "description": "Information about the [Google Cloud Armor security policy](https://cloud.google.com/armor/docs/security-policy-overview) relevant to the finding." + }, + "threatVector": { + "description": "Distinguish between volumetric & protocol DDoS attack and application layer attacks. For example, \u201cL3_4\u201d for Layer 3 and Layer 4 DDoS attacks, or \u201cL_7\u201d for Layer 7 DDoS attacks.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudSecuritycenterV2CloudDlpDataProfile": { "description": "The [data profile](https://cloud.google.com/dlp/docs/data-profiles) associated with the finding.", "id": "GoogleCloudSecuritycenterV2CloudDlpDataProfile", @@ -4942,6 +5309,10 @@ "description": "Immutable. The additional taxonomy group within findings from a given source. Example: \"XSS_FLASH_INJECTION\"", "type": "string" }, + "cloudArmor": { + "$ref": "GoogleCloudSecuritycenterV2CloudArmor", + "description": "Fields related to Cloud Armor findings." + }, "cloudDlpDataProfile": { "$ref": "GoogleCloudSecuritycenterV2CloudDlpDataProfile", "description": "Cloud DLP data profile that is associated with the finding." @@ -5118,6 +5489,10 @@ "description": "Steps to address the finding.", "type": "string" }, + "notebook": { + "$ref": "GoogleCloudSecuritycenterV2Notebook", + "description": "Notebook associated with the finding." + }, "orgPolicies": { "description": "Contains information about the org policies associated with the finding.", "items": { @@ -5201,6 +5576,21 @@ }, "type": "object" }, + "GoogleCloudSecuritycenterV2Folder": { + "description": "Message that contains the resource name and display name of a folder resource.", + "id": "GoogleCloudSecuritycenterV2Folder", + "properties": { + "resourceFolder": { + "description": "Full resource name of this folder. See: https://cloud.google.com/apis/design/resource_names#full_resource_name", + "type": "string" + }, + "resourceFolderDisplayName": { + "description": "The user defined display name for this folder.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudSecuritycenterV2Geolocation": { "description": "Represents a geographical location for a given access.", "id": "GoogleCloudSecuritycenterV2Geolocation", @@ -5488,6 +5878,7 @@ "PROCESS_DISCOVERY", "COMMAND_AND_SCRIPTING_INTERPRETER", "UNIX_SHELL", + "PYTHON", "PERMISSION_GROUPS_DISCOVERY", "CLOUD_GROUPS", "APPLICATION_LAYER_PROTOCOL", @@ -5549,6 +5940,7 @@ "T1057", "T1059", "T1059.004", + "T1059.006", "T1069", "T1069.003", "T1071", @@ -5655,6 +6047,7 @@ "PROCESS_DISCOVERY", "COMMAND_AND_SCRIPTING_INTERPRETER", "UNIX_SHELL", + "PYTHON", "PERMISSION_GROUPS_DISCOVERY", "CLOUD_GROUPS", "APPLICATION_LAYER_PROTOCOL", @@ -5716,6 +6109,7 @@ "T1057", "T1059", "T1059.004", + "T1059.006", "T1069", "T1069.003", "T1071", @@ -5855,6 +6249,30 @@ }, "type": "object" }, + "GoogleCloudSecuritycenterV2Notebook": { + "description": "Represents a Jupyter notebook IPYNB file, such as a [Colab Enterprise notebook](https://cloud.google.com/colab/docs/introduction) file, that is associated with a finding.", + "id": "GoogleCloudSecuritycenterV2Notebook", + "properties": { + "lastAuthor": { + "description": "The user ID of the latest author to modify the notebook.", + "type": "string" + }, + "name": { + "description": "The name of the notebook.", + "type": "string" + }, + "notebookUpdateTime": { + "description": "The most recent time the notebook was updated.", + "format": "google-datetime", + "type": "string" + }, + "service": { + "description": "The source notebook service, for example, \"Colab Enterprise\".", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudSecuritycenterV2NotificationMessage": { "description": "Cloud SCC's Notification", "id": "GoogleCloudSecuritycenterV2NotificationMessage", @@ -6088,18 +6506,85 @@ }, "type": "object" }, + "GoogleCloudSecuritycenterV2Requests": { + "description": "Information about the requests relevant to the finding.", + "id": "GoogleCloudSecuritycenterV2Requests", + "properties": { + "longTermAllowed": { + "description": "Allowed RPS (requests per second) over the long term.", + "format": "int32", + "type": "integer" + }, + "longTermDenied": { + "description": "Denied RPS (requests per second) over the long term.", + "format": "int32", + "type": "integer" + }, + "ratio": { + "description": "For 'Increasing deny ratio', the ratio is the denied traffic divided by the allowed traffic. For 'Allowed traffic spike', the ratio is the allowed traffic in the short term divided by allowed traffic in the long term.", + "format": "double", + "type": "number" + }, + "shortTermAllowed": { + "description": "Allowed RPS (requests per second) in the short term.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "GoogleCloudSecuritycenterV2Resource": { "description": "Information related to the Google Cloud resource.", "id": "GoogleCloudSecuritycenterV2Resource", "properties": { + "awsMetadata": { + "$ref": "GoogleCloudSecuritycenterV2AwsMetadata", + "description": "The AWS metadata associated with the finding." + }, + "cloudProvider": { + "description": "Indicates which cloud provider the finding is from.", + "enum": [ + "CLOUD_PROVIDER_UNSPECIFIED", + "GOOGLE_CLOUD_PLATFORM", + "AMAZON_WEB_SERVICES", + "MICROSOFT_AZURE" + ], + "enumDescriptions": [ + "The cloud provider is unspecified.", + "The cloud provider is Google Cloud Platform.", + "The cloud provider is Amazon Web Services.", + "The cloud provider is Microsoft Azure." + ], + "type": "string" + }, "displayName": { "description": "The human readable name of the resource.", "type": "string" }, + "gcpMetadata": { + "$ref": "GcpMetadata", + "description": "The GCP metadata associated with the finding." + }, + "location": { + "description": "The region or location of the service (if applicable).", + "type": "string" + }, "name": { "description": "The full resource name of the resource. See: https://cloud.google.com/apis/design/resource_names#full_resource_name", "type": "string" }, + "resourcePath": { + "$ref": "GoogleCloudSecuritycenterV2ResourcePath", + "description": "Provides the path to the resource within the resource hierarchy." + }, + "resourcePathString": { + "description": "A string representation of the resource path. For GCP, it has the format of: organizations/{organization_id}/folders/{folder_id}/folders/{folder_id}/projects/{project_id} where there can be any number of folders. For AWS, it has the format of: org/{organization_id}/ou/{organizational_unit_id}/ou/{organizational_unit_id}/account/{account_id} where there can be any number of organizational units. For Azure, it has the format of: mg/{management_group_id}/mg/{management_group_id}/subscription/{subscription_id}/rg/{resource_group_name} where there can be any number of management groups.", + "type": "string" + }, + "service": { + "description": "The service or resource provider associated with the resource.", + "type": "string" + }, "type": { "description": "The full resource type of the resource.", "type": "string" @@ -6107,10 +6592,83 @@ }, "type": "object" }, + "GoogleCloudSecuritycenterV2ResourcePath": { + "description": "Represents the path of resources leading up to the resource this finding is about.", + "id": "GoogleCloudSecuritycenterV2ResourcePath", + "properties": { + "nodes": { + "description": "The list of nodes that make the up resource path, ordered from lowest level to highest level.", + "items": { + "$ref": "GoogleCloudSecuritycenterV2ResourcePathNode" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2ResourcePathNode": { + "description": "A node within the resource path. Each node represents a resource within the resource hierarchy.", + "id": "GoogleCloudSecuritycenterV2ResourcePathNode", + "properties": { + "displayName": { + "description": "The display name of the resource this node represents.", + "type": "string" + }, + "id": { + "description": "The ID of the resource this node represents.", + "type": "string" + }, + "nodeType": { + "description": "The type of resource this node represents.", + "enum": [ + "RESOURCE_PATH_NODE_TYPE_UNSPECIFIED", + "GCP_ORGANIZATION", + "GCP_FOLDER", + "GCP_PROJECT", + "AWS_ORGANIZATION", + "AWS_ORGANIZATIONAL_UNIT", + "AWS_ACCOUNT", + "AZURE_MANAGEMENT_GROUP", + "AZURE_SUBSCRIPTION", + "AZURE_RESOURCE_GROUP" + ], + "enumDescriptions": [ + "Node type is unspecified.", + "The node represents a GCP organization.", + "The node represents a GCP folder.", + "The node represents a GCP project.", + "The node represents an AWS organization.", + "The node represents an AWS organizational unit.", + "The node represents an AWS account.", + "The node represents an Azure management group.", + "The node represents an Azure subscription.", + "The node represents an Azure resource group." + ], + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudSecuritycenterV2ResourceValueConfig": { "description": "A resource value config (RVC) is a mapping configuration of user's resources to resource values. Used in Attack path simulations.", "id": "GoogleCloudSecuritycenterV2ResourceValueConfig", "properties": { + "cloudProvider": { + "description": "Cloud provider this configuration applies to", + "enum": [ + "CLOUD_PROVIDER_UNSPECIFIED", + "GOOGLE_CLOUD_PLATFORM", + "AMAZON_WEB_SERVICES", + "MICROSOFT_AZURE" + ], + "enumDescriptions": [ + "The cloud provider is unspecified.", + "The cloud provider is Google Cloud Platform.", + "The cloud provider is Amazon Web Services.", + "The cloud provider is Microsoft Azure." + ], + "type": "string" + }, "createTime": { "description": "Output only. Timestamp this resource value config was created.", "format": "google-datetime", @@ -6232,7 +6790,7 @@ "id": "GoogleCloudSecuritycenterV2SecurityMarks", "properties": { "canonicalName": { - "description": "The canonical name of the marks. The following list shows some examples: + `organizations/{organization_id}/assets/{asset_id}/securityMarks\" + `organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/securityMarks\" + `organizations/{organization_id}/sources/{source_id}/locations/{location}/findings/{finding_id}/securityMarks\" + `folders/{folder_id}/assets/{asset_id}/securityMarks\" + `folders/{folder_id}/sources/{source_id}/findings/{finding_id}/securityMarks\" + `folders/{folder_id}/sources/{source_id}/locations/{location}/findings/{finding_id}/securityMarks\" + `projects/{project_number}/assets/{asset_id}/securityMarks\" + `projects/{project_number}/sources/{source_id}/findings/{finding_id}/securityMarks\" + `projects/{project_number}/sources/{source_id}/locations/{location}/findings/{finding_id}/securityMarks\"", + "description": "The canonical name of the marks. The following list shows some examples: + `organizations/{organization_id}/assets/{asset_id}/securityMarks` + `organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/securityMarks` + `organizations/{organization_id}/sources/{source_id}/locations/{location}/findings/{finding_id}/securityMarks` + `folders/{folder_id}/assets/{asset_id}/securityMarks` + `folders/{folder_id}/sources/{source_id}/findings/{finding_id}/securityMarks` + `folders/{folder_id}/sources/{source_id}/locations/{location}/findings/{finding_id}/securityMarks` + `projects/{project_number}/assets/{asset_id}/securityMarks` + `projects/{project_number}/sources/{source_id}/findings/{finding_id}/securityMarks` + `projects/{project_number}/sources/{source_id}/locations/{location}/findings/{finding_id}/securityMarks`", "type": "string" }, "marks": { @@ -6249,6 +6807,25 @@ }, "type": "object" }, + "GoogleCloudSecuritycenterV2SecurityPolicy": { + "description": "Information about the [Google Cloud Armor security policy](https://cloud.google.com/armor/docs/security-policy-overview) relevant to the finding.", + "id": "GoogleCloudSecuritycenterV2SecurityPolicy", + "properties": { + "name": { + "description": "The name of the Google Cloud Armor security policy, for example, \"my-security-policy\".", + "type": "string" + }, + "preview": { + "description": "Whether or not the associated rule or policy is in preview mode.", + "type": "boolean" + }, + "type": { + "description": "The type of Google Cloud Armor security policy for example, \u2018backend security policy\u2019, \u2018edge security policy\u2019, \u2018network edge security policy\u2019, or \u2018always-on DDoS protection\u2019.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudSecuritycenterV2SecurityPosture": { "description": "Represents a posture that is deployed on Google Cloud by the Security Command Center Posture Management service. A posture contains one or more policy sets. A policy set is a group of policies that enforce a set of security rules on Google Cloud.", "id": "GoogleCloudSecuritycenterV2SecurityPosture", @@ -6722,6 +7299,7 @@ "PROCESS_DISCOVERY", "COMMAND_AND_SCRIPTING_INTERPRETER", "UNIX_SHELL", + "PYTHON", "PERMISSION_GROUPS_DISCOVERY", "CLOUD_GROUPS", "APPLICATION_LAYER_PROTOCOL", @@ -6783,6 +7361,7 @@ "T1057", "T1059", "T1059.004", + "T1059.006", "T1069", "T1069.003", "T1071", @@ -6889,6 +7468,7 @@ "PROCESS_DISCOVERY", "COMMAND_AND_SCRIPTING_INTERPRETER", "UNIX_SHELL", + "PYTHON", "PERMISSION_GROUPS_DISCOVERY", "CLOUD_GROUPS", "APPLICATION_LAYER_PROTOCOL", @@ -6950,6 +7530,7 @@ "T1057", "T1059", "T1059.004", + "T1059.006", "T1069", "T1069.003", "T1071", @@ -7041,6 +7622,30 @@ }, "type": "object" }, + "Notebook": { + "description": "Represents a Jupyter notebook IPYNB file, such as a [Colab Enterprise notebook](https://cloud.google.com/colab/docs/introduction) file, that is associated with a finding.", + "id": "Notebook", + "properties": { + "lastAuthor": { + "description": "The user ID of the latest author to modify the notebook.", + "type": "string" + }, + "name": { + "description": "The name of the notebook.", + "type": "string" + }, + "notebookUpdateTime": { + "description": "The most recent time the notebook was updated.", + "format": "google-datetime", + "type": "string" + }, + "service": { + "description": "The source notebook service, for example, \"Colab Enterprise\".", + "type": "string" + } + }, + "type": "object" + }, "Object": { "description": "Kubernetes object related to the finding, uniquely identified by GKNN. Used if the object Kind is not one of Pod, Node, NodePool, Binding, or AccessReview.", "id": "Object", @@ -7295,6 +7900,90 @@ }, "type": "object" }, + "Requests": { + "description": "Information about the requests relevant to the finding.", + "id": "Requests", + "properties": { + "longTermAllowed": { + "description": "Allowed RPS (requests per second) over the long term.", + "format": "int32", + "type": "integer" + }, + "longTermDenied": { + "description": "Denied RPS (requests per second) over the long term.", + "format": "int32", + "type": "integer" + }, + "ratio": { + "description": "For 'Increasing deny ratio', the ratio is the denied traffic divided by the allowed traffic. For 'Allowed traffic spike', the ratio is the allowed traffic in the short term divided by allowed traffic in the long term.", + "format": "double", + "type": "number" + }, + "shortTermAllowed": { + "description": "Allowed RPS (requests per second) in the short term.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "ResourcePath": { + "description": "Represents the path of resources leading up to the resource this finding is about.", + "id": "ResourcePath", + "properties": { + "nodes": { + "description": "The list of nodes that make the up resource path, ordered from lowest level to highest level.", + "items": { + "$ref": "ResourcePathNode" + }, + "type": "array" + } + }, + "type": "object" + }, + "ResourcePathNode": { + "description": "A node within the resource path. Each node represents a resource within the resource hierarchy.", + "id": "ResourcePathNode", + "properties": { + "displayName": { + "description": "The display name of the resource this node represents.", + "type": "string" + }, + "id": { + "description": "The ID of the resource this node represents.", + "type": "string" + }, + "nodeType": { + "description": "The type of resource this node represents.", + "enum": [ + "RESOURCE_PATH_NODE_TYPE_UNSPECIFIED", + "GCP_ORGANIZATION", + "GCP_FOLDER", + "GCP_PROJECT", + "AWS_ORGANIZATION", + "AWS_ORGANIZATIONAL_UNIT", + "AWS_ACCOUNT", + "AZURE_MANAGEMENT_GROUP", + "AZURE_SUBSCRIPTION", + "AZURE_RESOURCE_GROUP" + ], + "enumDescriptions": [ + "Node type is unspecified.", + "The node represents a GCP organization.", + "The node represents a GCP folder.", + "The node represents a GCP project.", + "The node represents an AWS organization.", + "The node represents an AWS organizational unit.", + "The node represents an AWS account.", + "The node represents an Azure management group.", + "The node represents an Azure subscription.", + "The node represents an Azure resource group." + ], + "type": "string" + } + }, + "type": "object" + }, "Role": { "description": "Kubernetes Role or ClusterRole.", "id": "Role", @@ -7437,6 +8126,25 @@ }, "type": "object" }, + "SecurityPolicy": { + "description": "Information about the [Google Cloud Armor security policy](https://cloud.google.com/armor/docs/security-policy-overview) relevant to the finding.", + "id": "SecurityPolicy", + "properties": { + "name": { + "description": "The name of the Google Cloud Armor security policy, for example, \"my-security-policy\".", + "type": "string" + }, + "preview": { + "description": "Whether or not the associated rule or policy is in preview mode.", + "type": "boolean" + }, + "type": { + "description": "The type of Google Cloud Armor security policy for example, \u2018backend security policy\u2019, \u2018edge security policy\u2019, \u2018network edge security policy\u2019, or \u2018always-on DDoS protection\u2019.", + "type": "string" + } + }, + "type": "object" + }, "SecurityPosture": { "description": "Represents a posture that is deployed on Google Cloud by the Security Command Center Posture Management service. A posture contains one or more policy sets. A policy set is a group of policies that enforce a set of security rules on Google Cloud.", "id": "SecurityPosture", @@ -7658,6 +8366,57 @@ }, "type": "object" }, + "VulnerabilityCountBySeverity": { + "description": "Vulnerability count by severity.", + "id": "VulnerabilityCountBySeverity", + "properties": { + "severityToFindingCount": { + "additionalProperties": { + "format": "int64", + "type": "string" + }, + "description": "Key is the Severity enum.", + "type": "object" + } + }, + "type": "object" + }, + "VulnerabilitySnapshot": { + "description": "Result containing the properties and count of a VulnerabilitySnapshot request.", + "id": "VulnerabilitySnapshot", + "properties": { + "cloudProvider": { + "description": "The cloud provider for the vulnerability snapshot.", + "enum": [ + "CLOUD_PROVIDER_UNSPECIFIED", + "GOOGLE_CLOUD_PLATFORM", + "AMAZON_WEB_SERVICES", + "MICROSOFT_AZURE" + ], + "enumDescriptions": [ + "The cloud provider is unspecified.", + "The cloud provider is Google Cloud Platform.", + "The cloud provider is Amazon Web Services.", + "The cloud provider is Microsoft Azure." + ], + "type": "string" + }, + "findingCount": { + "$ref": "VulnerabilityCountBySeverity", + "description": "The vulnerability count by severity." + }, + "name": { + "description": "Identifier. The vulnerability snapshot name. Format: //locations//vulnerabilitySnapshots/", + "type": "string" + }, + "snapshotTime": { + "description": "The time that the snapshot was taken.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, "WebSecurityScannerSettings": { "description": "Resource capturing the settings for the Web Security Scanner service.", "id": "WebSecurityScannerSettings", diff --git a/etc/api/serviceconsumermanagement/v1/serviceconsumermanagement-api.json b/etc/api/serviceconsumermanagement/v1/serviceconsumermanagement-api.json index 5e09855a7a..6442e5c4a5 100644 --- a/etc/api/serviceconsumermanagement/v1/serviceconsumermanagement-api.json +++ b/etc/api/serviceconsumermanagement/v1/serviceconsumermanagement-api.json @@ -542,7 +542,7 @@ } } }, - "revision": "20240303", + "revision": "20240414", "rootUrl": "https://serviceconsumermanagement.googleapis.com/", "schemas": { "AddTenantProjectRequest": { @@ -1826,10 +1826,10 @@ }, "longRunning": { "$ref": "LongRunning", - "description": "Describes settings to use for long-running operations when generating API methods for RPCs. Complements RPCs that use the annotations in google/longrunning/operations.proto. Example of a YAML configuration:: publishing: method_settings: - selector: google.cloud.speech.v2.Speech.BatchRecognize long_running: initial_poll_delay: seconds: 60 # 1 minute poll_delay_multiplier: 1.5 max_poll_delay: seconds: 360 # 6 minutes total_poll_timeout: seconds: 54000 # 90 minutes" + "description": "Describes settings to use for long-running operations when generating API methods for RPCs. Complements RPCs that use the annotations in google/longrunning/operations.proto. Example of a YAML configuration:: publishing: method_settings: - selector: google.cloud.speech.v2.Speech.BatchRecognize long_running: initial_poll_delay: 60s # 1 minute poll_delay_multiplier: 1.5 max_poll_delay: 360s # 6 minutes total_poll_timeout: 54000s # 90 minutes" }, "selector": { - "description": "The fully qualified name of the method, for which the options below apply. This is used to find the method to apply the options.", + "description": "The fully qualified name of the method, for which the options below apply. This is used to find the method to apply the options. Example: publishing: method_settings: - selector: google.storage.control.v2.StorageControl.CreateFolder # method settings for CreateFolder...", "type": "string" } }, diff --git a/etc/api/serviceconsumermanagement/v1beta1/serviceconsumermanagement-api.json b/etc/api/serviceconsumermanagement/v1beta1/serviceconsumermanagement-api.json index 8fc256f3fc..a337fdf0ba 100644 --- a/etc/api/serviceconsumermanagement/v1beta1/serviceconsumermanagement-api.json +++ b/etc/api/serviceconsumermanagement/v1beta1/serviceconsumermanagement-api.json @@ -315,12 +315,12 @@ ], "parameters": { "force": { - "description": "Whether to force the creation of the quota override. Setting the force parameter to 'true' ignores all quota safety checks that would fail the request. QuotaSafetyCheck lists all such validations.", + "description": "Whether to force the creation of the quota override. Setting the force parameter to 'true' ignores all quota safety checks that would fail the request. QuotaSafetyCheck lists all such validations. If force is set to true, it is recommended to include a case id in \"X-Goog-Request-Reason\" header when sending the request.", "location": "query", "type": "boolean" }, "forceOnly": { - "description": "The list of quota safety checks to ignore before the override mutation. Unlike 'force' field that ignores all the quota safety checks, the 'force_only' field ignores only the specified checks; other checks are still enforced. The 'force' and 'force_only' fields cannot both be set.", + "description": "The list of quota safety checks to ignore before the override mutation. Unlike 'force' field that ignores all the quota safety checks, the 'force_only' field ignores only the specified checks; other checks are still enforced. The 'force' and 'force_only' fields cannot both be set. If force_only is specified, it is recommended to include a case id in \"X-Goog-Request-Reason\" header when sending the request.", "enum": [ "QUOTA_SAFETY_CHECK_UNSPECIFIED", "LIMIT_DECREASE_BELOW_USAGE", @@ -364,12 +364,12 @@ ], "parameters": { "force": { - "description": "Whether to force the deletion of the quota override. Setting the force parameter to 'true' ignores all quota safety checks that would fail the request. QuotaSafetyCheck lists all such validations.", + "description": "Whether to force the deletion of the quota override. Setting the force parameter to 'true' ignores all quota safety checks that would fail the request. QuotaSafetyCheck lists all such validations. If force is set to true, it is recommended to include a case id in \"X-Goog-Request-Reason\" header when sending the request.", "location": "query", "type": "boolean" }, "forceOnly": { - "description": "The list of quota safety checks to ignore before the override mutation. Unlike 'force' field that ignores all the quota safety checks, the 'force_only' field ignores only the specified checks; other checks are still enforced. The 'force' and 'force_only' fields cannot both be set.", + "description": "The list of quota safety checks to ignore before the override mutation. Unlike 'force' field that ignores all the quota safety checks, the 'force_only' field ignores only the specified checks; other checks are still enforced. The 'force' and 'force_only' fields cannot both be set. If force_only is specified, it is recommended to include a case id in \"X-Goog-Request-Reason\" header when sending the request.", "enum": [ "QUOTA_SAFETY_CHECK_UNSPECIFIED", "LIMIT_DECREASE_BELOW_USAGE", @@ -446,12 +446,12 @@ ], "parameters": { "force": { - "description": "Whether to force the update of the quota override. Setting the force parameter to 'true' ignores all quota safety checks that would fail the request. QuotaSafetyCheck lists all such validations.", + "description": "Whether to force the update of the quota override. Setting the force parameter to 'true' ignores all quota safety checks that would fail the request. QuotaSafetyCheck lists all such validations. If force is set to true, it is recommended to include a case id in \"X-Goog-Request-Reason\" header when sending the request.", "location": "query", "type": "boolean" }, "forceOnly": { - "description": "The list of quota safety checks to ignore before the override mutation. Unlike 'force' field that ignores all the quota safety checks, the 'force_only' field ignores only the specified checks; other checks are still enforced. The 'force' and 'force_only' fields cannot both be set.", + "description": "The list of quota safety checks to ignore before the override mutation. Unlike 'force' field that ignores all the quota safety checks, the 'force_only' field ignores only the specified checks; other checks are still enforced. The 'force' and 'force_only' fields cannot both be set. If force_only is specified, it is recommended to include a case id in \"X-Goog-Request-Reason\" header when sending the request.", "enum": [ "QUOTA_SAFETY_CHECK_UNSPECIFIED", "LIMIT_DECREASE_BELOW_USAGE", @@ -500,7 +500,7 @@ } } }, - "revision": "20240303", + "revision": "20240414", "rootUrl": "https://serviceconsumermanagement.googleapis.com/", "schemas": { "Api": { @@ -1660,10 +1660,10 @@ }, "longRunning": { "$ref": "LongRunning", - "description": "Describes settings to use for long-running operations when generating API methods for RPCs. Complements RPCs that use the annotations in google/longrunning/operations.proto. Example of a YAML configuration:: publishing: method_settings: - selector: google.cloud.speech.v2.Speech.BatchRecognize long_running: initial_poll_delay: seconds: 60 # 1 minute poll_delay_multiplier: 1.5 max_poll_delay: seconds: 360 # 6 minutes total_poll_timeout: seconds: 54000 # 90 minutes" + "description": "Describes settings to use for long-running operations when generating API methods for RPCs. Complements RPCs that use the annotations in google/longrunning/operations.proto. Example of a YAML configuration:: publishing: method_settings: - selector: google.cloud.speech.v2.Speech.BatchRecognize long_running: initial_poll_delay: 60s # 1 minute poll_delay_multiplier: 1.5 max_poll_delay: 360s # 6 minutes total_poll_timeout: 54000s # 90 minutes" }, "selector": { - "description": "The fully qualified name of the method, for which the options below apply. This is used to find the method to apply the options.", + "description": "The fully qualified name of the method, for which the options below apply. This is used to find the method to apply the options. Example: publishing: method_settings: - selector: google.storage.control.v2.StorageControl.CreateFolder # method settings for CreateFolder...", "type": "string" } }, @@ -2696,11 +2696,11 @@ "id": "V1Beta1ImportProducerOverridesRequest", "properties": { "force": { - "description": "Whether to force the creation of the quota overrides. Setting the force parameter to 'true' ignores all quota safety checks that would fail the request. QuotaSafetyCheck lists all such validations.", + "description": "Whether to force the creation of the quota overrides. Setting the force parameter to 'true' ignores all quota safety checks that would fail the request. QuotaSafetyCheck lists all such validations. If force is set to true, it is recommended to include a case id in \"X-Goog-Request-Reason\" header when sending the request.", "type": "boolean" }, "forceOnly": { - "description": "The list of quota safety checks to ignore before the override mutation. Unlike 'force' field that ignores all the quota safety checks, the 'force_only' field ignores only the specified checks; other checks are still enforced. The 'force' and 'force_only' fields cannot both be set.", + "description": "The list of quota safety checks to ignore before the override mutation. Unlike 'force' field that ignores all the quota safety checks, the 'force_only' field ignores only the specified checks; other checks are still enforced. The 'force' and 'force_only' fields cannot both be set. If force_only is specified, it is recommended to include a case id in \"X-Goog-Request-Reason\" header when sending the request.", "items": { "enum": [ "QUOTA_SAFETY_CHECK_UNSPECIFIED", @@ -2872,6 +2872,10 @@ "producerQuotaPolicy": { "$ref": "V1Beta1ProducerQuotaPolicy", "description": "Producer policy inherited from the closet ancestor of the current consumer." + }, + "rolloutInfo": { + "$ref": "V1Beta1RolloutInfo", + "description": "Rollout information of this quota bucket. This field is present only if the effective limit will change due to the ongoing rollout of the service config." } }, "type": "object" @@ -2917,6 +2921,17 @@ "properties": {}, "type": "object" }, + "V1Beta1RolloutInfo": { + "description": "[Output only] Rollout information of a quota.", + "id": "V1Beta1RolloutInfo", + "properties": { + "defaultLimitOngoingRollout": { + "description": "Whether there is an ongoing rollout for the default limit or not.", + "type": "boolean" + } + }, + "type": "object" + }, "V1Beta1ServiceIdentity": { "description": "A service identity in the Identity and Access Management API.", "id": "V1Beta1ServiceIdentity", diff --git a/etc/api/servicecontrol/v1/servicecontrol-api.json b/etc/api/servicecontrol/v1/servicecontrol-api.json index 26dfc9937b..1d6166eed0 100644 --- a/etc/api/servicecontrol/v1/servicecontrol-api.json +++ b/etc/api/servicecontrol/v1/servicecontrol-api.json @@ -197,7 +197,7 @@ } } }, - "revision": "20240223", + "revision": "20240412", "rootUrl": "https://servicecontrol.googleapis.com/", "schemas": { "AllocateInfo": { @@ -483,6 +483,24 @@ "description": "The required IAM permission.", "type": "string" }, + "permissionType": { + "description": "The type of the permission that was checked. For data access audit logs this corresponds with the permission type that must be enabled in the project/folder/organization IAM policy in order for the log to be written.", + "enum": [ + "PERMISSION_TYPE_UNSPECIFIED", + "ADMIN_READ", + "ADMIN_WRITE", + "DATA_READ", + "DATA_WRITE" + ], + "enumDescriptions": [ + "Default. Should not be used.", + "Permissions that gate reading resource configuration or metadata.", + "Permissions that gate modification of resource configuration or metadata.", + "Permissions that gate reading user-provided data.", + "Permissions that gate writing user-provided data." + ], + "type": "string" + }, "resource": { "description": "The resource being accessed, as a REST-style or cloud resource string. For example: bigquery.googleapis.com/projects/PROJECTID/datasets/DATASETID or projects/PROJECTID/datasets/DATASETID", "type": "string" diff --git a/etc/api/servicecontrol/v2/servicecontrol-api.json b/etc/api/servicecontrol/v2/servicecontrol-api.json index 8d61eb3526..f1acbffbf1 100644 --- a/etc/api/servicecontrol/v2/servicecontrol-api.json +++ b/etc/api/servicecontrol/v2/servicecontrol-api.json @@ -169,7 +169,7 @@ } } }, - "revision": "20240223", + "revision": "20240412", "rootUrl": "https://servicecontrol.googleapis.com/", "schemas": { "Api": { @@ -424,6 +424,24 @@ "description": "The required IAM permission.", "type": "string" }, + "permissionType": { + "description": "The type of the permission that was checked. For data access audit logs this corresponds with the permission type that must be enabled in the project/folder/organization IAM policy in order for the log to be written.", + "enum": [ + "PERMISSION_TYPE_UNSPECIFIED", + "ADMIN_READ", + "ADMIN_WRITE", + "DATA_READ", + "DATA_WRITE" + ], + "enumDescriptions": [ + "Default. Should not be used.", + "Permissions that gate reading resource configuration or metadata.", + "Permissions that gate modification of resource configuration or metadata.", + "Permissions that gate reading user-provided data.", + "Permissions that gate writing user-provided data." + ], + "type": "string" + }, "resource": { "description": "The resource being accessed, as a REST-style or cloud resource string. For example: bigquery.googleapis.com/projects/PROJECTID/datasets/DATASETID or projects/PROJECTID/datasets/DATASETID", "type": "string" @@ -594,7 +612,16 @@ "ReportResponse": { "description": "Response message for the Report method.", "id": "ReportResponse", - "properties": {}, + "properties": { + "extensions": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "description": "The extension field to store serialized OTel responses. e.g. ExportLogsServiceResponse, ExportMetricsServiceResponse.", + "type": "object" + } + }, "type": "object" }, "Request": { diff --git a/etc/api/servicedirectory/v1/servicedirectory-api.json b/etc/api/servicedirectory/v1/servicedirectory-api.json index df67d4ca74..7d9c4ad8f2 100644 --- a/etc/api/servicedirectory/v1/servicedirectory-api.json +++ b/etc/api/servicedirectory/v1/servicedirectory-api.json @@ -883,7 +883,7 @@ } } }, - "revision": "20240226", + "revision": "20240305", "rootUrl": "https://servicedirectory.googleapis.com/", "schemas": { "Binding": { diff --git a/etc/api/servicedirectory/v1beta1/servicedirectory-api.json b/etc/api/servicedirectory/v1beta1/servicedirectory-api.json index 8b36e733a4..4da238afcf 100644 --- a/etc/api/servicedirectory/v1beta1/servicedirectory-api.json +++ b/etc/api/servicedirectory/v1beta1/servicedirectory-api.json @@ -971,7 +971,7 @@ } } }, - "revision": "20240226", + "revision": "20240305", "rootUrl": "https://servicedirectory.googleapis.com/", "schemas": { "Binding": { diff --git a/etc/api/servicemanagement/v1/servicemanagement-api.json b/etc/api/servicemanagement/v1/servicemanagement-api.json index 832ed5c280..6e0b99d322 100644 --- a/etc/api/servicemanagement/v1/servicemanagement-api.json +++ b/etc/api/servicemanagement/v1/servicemanagement-api.json @@ -830,7 +830,7 @@ } } }, - "revision": "20240223", + "revision": "20240412", "rootUrl": "https://servicemanagement.googleapis.com/", "schemas": { "Advice": { @@ -2425,10 +2425,10 @@ }, "longRunning": { "$ref": "LongRunning", - "description": "Describes settings to use for long-running operations when generating API methods for RPCs. Complements RPCs that use the annotations in google/longrunning/operations.proto. Example of a YAML configuration:: publishing: method_settings: - selector: google.cloud.speech.v2.Speech.BatchRecognize long_running: initial_poll_delay: seconds: 60 # 1 minute poll_delay_multiplier: 1.5 max_poll_delay: seconds: 360 # 6 minutes total_poll_timeout: seconds: 54000 # 90 minutes" + "description": "Describes settings to use for long-running operations when generating API methods for RPCs. Complements RPCs that use the annotations in google/longrunning/operations.proto. Example of a YAML configuration:: publishing: method_settings: - selector: google.cloud.speech.v2.Speech.BatchRecognize long_running: initial_poll_delay: 60s # 1 minute poll_delay_multiplier: 1.5 max_poll_delay: 360s # 6 minutes total_poll_timeout: 54000s # 90 minutes" }, "selector": { - "description": "The fully qualified name of the method, for which the options below apply. This is used to find the method to apply the options.", + "description": "The fully qualified name of the method, for which the options below apply. This is used to find the method to apply the options. Example: publishing: method_settings: - selector: google.storage.control.v2.StorageControl.CreateFolder # method settings for CreateFolder...", "type": "string" } }, diff --git a/etc/api/servicenetworking/v1/servicenetworking-api.json b/etc/api/servicenetworking/v1/servicenetworking-api.json index f659406805..07ecab756e 100644 --- a/etc/api/servicenetworking/v1/servicenetworking-api.json +++ b/etc/api/servicenetworking/v1/servicenetworking-api.json @@ -1029,7 +1029,7 @@ } } }, - "revision": "20240303", + "revision": "20240417", "rootUrl": "https://servicenetworking.googleapis.com/", "schemas": { "AddDnsRecordSetMetadata": { @@ -2790,10 +2790,10 @@ }, "longRunning": { "$ref": "LongRunning", - "description": "Describes settings to use for long-running operations when generating API methods for RPCs. Complements RPCs that use the annotations in google/longrunning/operations.proto. Example of a YAML configuration:: publishing: method_settings: - selector: google.cloud.speech.v2.Speech.BatchRecognize long_running: initial_poll_delay: seconds: 60 # 1 minute poll_delay_multiplier: 1.5 max_poll_delay: seconds: 360 # 6 minutes total_poll_timeout: seconds: 54000 # 90 minutes" + "description": "Describes settings to use for long-running operations when generating API methods for RPCs. Complements RPCs that use the annotations in google/longrunning/operations.proto. Example of a YAML configuration:: publishing: method_settings: - selector: google.cloud.speech.v2.Speech.BatchRecognize long_running: initial_poll_delay: 60s # 1 minute poll_delay_multiplier: 1.5 max_poll_delay: 360s # 6 minutes total_poll_timeout: 54000s # 90 minutes" }, "selector": { - "description": "The fully qualified name of the method, for which the options below apply. This is used to find the method to apply the options.", + "description": "The fully qualified name of the method, for which the options below apply. This is used to find the method to apply the options. Example: publishing: method_settings: - selector: google.storage.control.v2.StorageControl.CreateFolder # method settings for CreateFolder...", "type": "string" } }, diff --git a/etc/api/servicenetworking/v1beta/servicenetworking-api.json b/etc/api/servicenetworking/v1beta/servicenetworking-api.json index 1546a28fdb..0a45563978 100644 --- a/etc/api/servicenetworking/v1beta/servicenetworking-api.json +++ b/etc/api/servicenetworking/v1beta/servicenetworking-api.json @@ -307,7 +307,7 @@ } } }, - "revision": "20240303", + "revision": "20240417", "rootUrl": "https://servicenetworking.googleapis.com/", "schemas": { "AddDnsRecordSetMetadata": { @@ -1814,10 +1814,10 @@ }, "longRunning": { "$ref": "LongRunning", - "description": "Describes settings to use for long-running operations when generating API methods for RPCs. Complements RPCs that use the annotations in google/longrunning/operations.proto. Example of a YAML configuration:: publishing: method_settings: - selector: google.cloud.speech.v2.Speech.BatchRecognize long_running: initial_poll_delay: seconds: 60 # 1 minute poll_delay_multiplier: 1.5 max_poll_delay: seconds: 360 # 6 minutes total_poll_timeout: seconds: 54000 # 90 minutes" + "description": "Describes settings to use for long-running operations when generating API methods for RPCs. Complements RPCs that use the annotations in google/longrunning/operations.proto. Example of a YAML configuration:: publishing: method_settings: - selector: google.cloud.speech.v2.Speech.BatchRecognize long_running: initial_poll_delay: 60s # 1 minute poll_delay_multiplier: 1.5 max_poll_delay: 360s # 6 minutes total_poll_timeout: 54000s # 90 minutes" }, "selector": { - "description": "The fully qualified name of the method, for which the options below apply. This is used to find the method to apply the options.", + "description": "The fully qualified name of the method, for which the options below apply. This is used to find the method to apply the options. Example: publishing: method_settings: - selector: google.storage.control.v2.StorageControl.CreateFolder # method settings for CreateFolder...", "type": "string" } }, diff --git a/etc/api/serviceusage/v1/serviceusage-api.json b/etc/api/serviceusage/v1/serviceusage-api.json index 75dc8b1041..e0f2b71602 100644 --- a/etc/api/serviceusage/v1/serviceusage-api.json +++ b/etc/api/serviceusage/v1/serviceusage-api.json @@ -426,7 +426,7 @@ } } }, - "revision": "20240303", + "revision": "20240414", "rootUrl": "https://serviceusage.googleapis.com/", "schemas": { "AddEnableRulesMetadata": { @@ -2362,10 +2362,10 @@ }, "longRunning": { "$ref": "LongRunning", - "description": "Describes settings to use for long-running operations when generating API methods for RPCs. Complements RPCs that use the annotations in google/longrunning/operations.proto. Example of a YAML configuration:: publishing: method_settings: - selector: google.cloud.speech.v2.Speech.BatchRecognize long_running: initial_poll_delay: seconds: 60 # 1 minute poll_delay_multiplier: 1.5 max_poll_delay: seconds: 360 # 6 minutes total_poll_timeout: seconds: 54000 # 90 minutes" + "description": "Describes settings to use for long-running operations when generating API methods for RPCs. Complements RPCs that use the annotations in google/longrunning/operations.proto. Example of a YAML configuration:: publishing: method_settings: - selector: google.cloud.speech.v2.Speech.BatchRecognize long_running: initial_poll_delay: 60s # 1 minute poll_delay_multiplier: 1.5 max_poll_delay: 360s # 6 minutes total_poll_timeout: 54000s # 90 minutes" }, "selector": { - "description": "The fully qualified name of the method, for which the options below apply. This is used to find the method to apply the options.", + "description": "The fully qualified name of the method, for which the options below apply. This is used to find the method to apply the options. Example: publishing: method_settings: - selector: google.storage.control.v2.StorageControl.CreateFolder # method settings for CreateFolder...", "type": "string" } }, diff --git a/etc/api/serviceusage/v1beta1/serviceusage-api.json b/etc/api/serviceusage/v1beta1/serviceusage-api.json index 4d284a41b2..1a86c994c0 100644 --- a/etc/api/serviceusage/v1beta1/serviceusage-api.json +++ b/etc/api/serviceusage/v1beta1/serviceusage-api.json @@ -581,12 +581,12 @@ ], "parameters": { "force": { - "description": "Whether to force the creation of the quota override. Setting the force parameter to 'true' ignores all quota safety checks that would fail the request. QuotaSafetyCheck lists all such validations.", + "description": "Whether to force the creation of the quota override. Setting the force parameter to 'true' ignores all quota safety checks that would fail the request. QuotaSafetyCheck lists all such validations. If force is set to true, it is recommended to include a case id in \"X-Goog-Request-Reason\" header when sending the request.", "location": "query", "type": "boolean" }, "forceOnly": { - "description": "The list of quota safety checks to ignore before the override mutation. Unlike 'force' field that ignores all the quota safety checks, the 'force_only' field ignores only the specified checks; other checks are still enforced. The 'force' and 'force_only' fields cannot both be set.", + "description": "The list of quota safety checks to ignore before the override mutation. Unlike 'force' field that ignores all the quota safety checks, the 'force_only' field ignores only the specified checks; other checks are still enforced. The 'force' and 'force_only' fields cannot both be set. If force_only is specified, it is recommended to include a case id in \"X-Goog-Request-Reason\" header when sending the request.", "enum": [ "QUOTA_SAFETY_CHECK_UNSPECIFIED", "LIMIT_DECREASE_BELOW_USAGE", @@ -631,12 +631,12 @@ ], "parameters": { "force": { - "description": "Whether to force the deletion of the quota override. Setting the force parameter to 'true' ignores all quota safety checks that would fail the request. QuotaSafetyCheck lists all such validations.", + "description": "Whether to force the deletion of the quota override. Setting the force parameter to 'true' ignores all quota safety checks that would fail the request. QuotaSafetyCheck lists all such validations. If force is set to true, it is recommended to include a case id in \"X-Goog-Request-Reason\" header when sending the request.", "location": "query", "type": "boolean" }, "forceOnly": { - "description": "The list of quota safety checks to ignore before the override mutation. Unlike 'force' field that ignores all the quota safety checks, the 'force_only' field ignores only the specified checks; other checks are still enforced. The 'force' and 'force_only' fields cannot both be set.", + "description": "The list of quota safety checks to ignore before the override mutation. Unlike 'force' field that ignores all the quota safety checks, the 'force_only' field ignores only the specified checks; other checks are still enforced. The 'force' and 'force_only' fields cannot both be set. If force_only is specified, it is recommended to include a case id in \"X-Goog-Request-Reason\" header when sending the request.", "enum": [ "QUOTA_SAFETY_CHECK_UNSPECIFIED", "LIMIT_DECREASE_BELOW_USAGE", @@ -715,12 +715,12 @@ ], "parameters": { "force": { - "description": "Whether to force the update of the quota override. Setting the force parameter to 'true' ignores all quota safety checks that would fail the request. QuotaSafetyCheck lists all such validations.", + "description": "Whether to force the update of the quota override. Setting the force parameter to 'true' ignores all quota safety checks that would fail the request. QuotaSafetyCheck lists all such validations. If force is set to true, it is recommended to include a case id in \"X-Goog-Request-Reason\" header when sending the request.", "location": "query", "type": "boolean" }, "forceOnly": { - "description": "The list of quota safety checks to ignore before the override mutation. Unlike 'force' field that ignores all the quota safety checks, the 'force_only' field ignores only the specified checks; other checks are still enforced. The 'force' and 'force_only' fields cannot both be set.", + "description": "The list of quota safety checks to ignore before the override mutation. Unlike 'force' field that ignores all the quota safety checks, the 'force_only' field ignores only the specified checks; other checks are still enforced. The 'force' and 'force_only' fields cannot both be set. If force_only is specified, it is recommended to include a case id in \"X-Goog-Request-Reason\" header when sending the request.", "enum": [ "QUOTA_SAFETY_CHECK_UNSPECIFIED", "LIMIT_DECREASE_BELOW_USAGE", @@ -775,12 +775,12 @@ ], "parameters": { "force": { - "description": "Whether to force the creation of the quota override. Setting the force parameter to 'true' ignores all quota safety checks that would fail the request. QuotaSafetyCheck lists all such validations.", + "description": "Whether to force the creation of the quota override. Setting the force parameter to 'true' ignores all quota safety checks that would fail the request. QuotaSafetyCheck lists all such validations. If force is set to true, it is recommended to include a case id in \"X-Goog-Request-Reason\" header when sending the request.", "location": "query", "type": "boolean" }, "forceOnly": { - "description": "The list of quota safety checks to ignore before the override mutation. Unlike 'force' field that ignores all the quota safety checks, the 'force_only' field ignores only the specified checks; other checks are still enforced. The 'force' and 'force_only' fields cannot both be set.", + "description": "The list of quota safety checks to ignore before the override mutation. Unlike 'force' field that ignores all the quota safety checks, the 'force_only' field ignores only the specified checks; other checks are still enforced. The 'force' and 'force_only' fields cannot both be set. If force_only is specified, it is recommended to include a case id in \"X-Goog-Request-Reason\" header when sending the request.", "enum": [ "QUOTA_SAFETY_CHECK_UNSPECIFIED", "LIMIT_DECREASE_BELOW_USAGE", @@ -825,12 +825,12 @@ ], "parameters": { "force": { - "description": "Whether to force the deletion of the quota override. Setting the force parameter to 'true' ignores all quota safety checks that would fail the request. QuotaSafetyCheck lists all such validations.", + "description": "Whether to force the deletion of the quota override. Setting the force parameter to 'true' ignores all quota safety checks that would fail the request. QuotaSafetyCheck lists all such validations. If force is set to true, it is recommended to include a case id in \"X-Goog-Request-Reason\" header when sending the request.", "location": "query", "type": "boolean" }, "forceOnly": { - "description": "The list of quota safety checks to ignore before the override mutation. Unlike 'force' field that ignores all the quota safety checks, the 'force_only' field ignores only the specified checks; other checks are still enforced. The 'force' and 'force_only' fields cannot both be set.", + "description": "The list of quota safety checks to ignore before the override mutation. Unlike 'force' field that ignores all the quota safety checks, the 'force_only' field ignores only the specified checks; other checks are still enforced. The 'force' and 'force_only' fields cannot both be set. If force_only is specified, it is recommended to include a case id in \"X-Goog-Request-Reason\" header when sending the request.", "enum": [ "QUOTA_SAFETY_CHECK_UNSPECIFIED", "LIMIT_DECREASE_BELOW_USAGE", @@ -909,12 +909,12 @@ ], "parameters": { "force": { - "description": "Whether to force the update of the quota override. Setting the force parameter to 'true' ignores all quota safety checks that would fail the request. QuotaSafetyCheck lists all such validations.", + "description": "Whether to force the update of the quota override. Setting the force parameter to 'true' ignores all quota safety checks that would fail the request. QuotaSafetyCheck lists all such validations. If force is set to true, it is recommended to include a case id in \"X-Goog-Request-Reason\" header when sending the request.", "location": "query", "type": "boolean" }, "forceOnly": { - "description": "The list of quota safety checks to ignore before the override mutation. Unlike 'force' field that ignores all the quota safety checks, the 'force_only' field ignores only the specified checks; other checks are still enforced. The 'force' and 'force_only' fields cannot both be set.", + "description": "The list of quota safety checks to ignore before the override mutation. Unlike 'force' field that ignores all the quota safety checks, the 'force_only' field ignores only the specified checks; other checks are still enforced. The 'force' and 'force_only' fields cannot both be set. If force_only is specified, it is recommended to include a case id in \"X-Goog-Request-Reason\" header when sending the request.", "enum": [ "QUOTA_SAFETY_CHECK_UNSPECIFIED", "LIMIT_DECREASE_BELOW_USAGE", @@ -964,7 +964,7 @@ } } }, - "revision": "20240303", + "revision": "20240414", "rootUrl": "https://serviceusage.googleapis.com/", "schemas": { "AddEnableRulesMetadata": { @@ -2609,11 +2609,11 @@ "id": "ImportAdminOverridesRequest", "properties": { "force": { - "description": "Whether to force the creation of the quota overrides. Setting the force parameter to 'true' ignores all quota safety checks that would fail the request. QuotaSafetyCheck lists all such validations.", + "description": "Whether to force the creation of the quota overrides. Setting the force parameter to 'true' ignores all quota safety checks that would fail the request. QuotaSafetyCheck lists all such validations. If force is set to true, it is recommended to include a case id in \"X-Goog-Request-Reason\" header when sending the request.", "type": "boolean" }, "forceOnly": { - "description": "The list of quota safety checks to ignore before the override mutation. Unlike 'force' field that ignores all the quota safety checks, the 'force_only' field ignores only the specified checks; other checks are still enforced. The 'force' and 'force_only' fields cannot both be set.", + "description": "The list of quota safety checks to ignore before the override mutation. Unlike 'force' field that ignores all the quota safety checks, the 'force_only' field ignores only the specified checks; other checks are still enforced. The 'force' and 'force_only' fields cannot both be set. If force_only is specified, it is recommended to include a case id in \"X-Goog-Request-Reason\" header when sending the request.", "items": { "enum": [ "QUOTA_SAFETY_CHECK_UNSPECIFIED", @@ -2681,11 +2681,11 @@ "id": "ImportConsumerOverridesRequest", "properties": { "force": { - "description": "Whether to force the creation of the quota overrides. Setting the force parameter to 'true' ignores all quota safety checks that would fail the request. QuotaSafetyCheck lists all such validations.", + "description": "Whether to force the creation of the quota overrides. Setting the force parameter to 'true' ignores all quota safety checks that would fail the request. QuotaSafetyCheck lists all such validations. If force is set to true, it is recommended to include a case id in \"X-Goog-Request-Reason\" header when sending the request.", "type": "boolean" }, "forceOnly": { - "description": "The list of quota safety checks to ignore before the override mutation. Unlike 'force' field that ignores all the quota safety checks, the 'force_only' field ignores only the specified checks; other checks are still enforced. The 'force' and 'force_only' fields cannot both be set.", + "description": "The list of quota safety checks to ignore before the override mutation. Unlike 'force' field that ignores all the quota safety checks, the 'force_only' field ignores only the specified checks; other checks are still enforced. The 'force' and 'force_only' fields cannot both be set. If force_only is specified, it is recommended to include a case id in \"X-Goog-Request-Reason\" header when sending the request.", "items": { "enum": [ "QUOTA_SAFETY_CHECK_UNSPECIFIED", @@ -3057,10 +3057,10 @@ }, "longRunning": { "$ref": "LongRunning", - "description": "Describes settings to use for long-running operations when generating API methods for RPCs. Complements RPCs that use the annotations in google/longrunning/operations.proto. Example of a YAML configuration:: publishing: method_settings: - selector: google.cloud.speech.v2.Speech.BatchRecognize long_running: initial_poll_delay: seconds: 60 # 1 minute poll_delay_multiplier: 1.5 max_poll_delay: seconds: 360 # 6 minutes total_poll_timeout: seconds: 54000 # 90 minutes" + "description": "Describes settings to use for long-running operations when generating API methods for RPCs. Complements RPCs that use the annotations in google/longrunning/operations.proto. Example of a YAML configuration:: publishing: method_settings: - selector: google.cloud.speech.v2.Speech.BatchRecognize long_running: initial_poll_delay: 60s # 1 minute poll_delay_multiplier: 1.5 max_poll_delay: 360s # 6 minutes total_poll_timeout: 54000s # 90 minutes" }, "selector": { - "description": "The fully qualified name of the method, for which the options below apply. This is used to find the method to apply the options.", + "description": "The fully qualified name of the method, for which the options below apply. This is used to find the method to apply the options. Example: publishing: method_settings: - selector: google.storage.control.v2.StorageControl.CreateFolder # method settings for CreateFolder...", "type": "string" } }, diff --git a/etc/api/sheets/v4/sheets-api.json b/etc/api/sheets/v4/sheets-api.json index 855eb2fd11..bec01dbf38 100644 --- a/etc/api/sheets/v4/sheets-api.json +++ b/etc/api/sheets/v4/sheets-api.json @@ -870,7 +870,7 @@ } } }, - "revision": "20240229", + "revision": "20240416", "rootUrl": "https://sheets.googleapis.com/", "schemas": { "AddBandingRequest": { @@ -3178,7 +3178,8 @@ "MISSING_COLUMN_ALIAS", "OBJECT_NOT_FOUND", "OBJECT_IN_ERROR_STATE", - "OBJECT_SPEC_INVALID" + "OBJECT_SPEC_INVALID", + "DATA_EXECUTION_CANCELLED" ], "enumDescriptions": [ "Default value, do not use.", @@ -3199,7 +3200,8 @@ "The data execution returns columns with missing aliases.", "The data source object does not exist.", "The data source object is currently in error state. To force refresh, set force in RefreshDataSourceRequest.", - "The data source object specification is invalid." + "The data source object specification is invalid.", + "The data execution has been cancelled." ], "type": "string" }, @@ -3218,6 +3220,7 @@ "DATA_EXECUTION_STATE_UNSPECIFIED", "NOT_STARTED", "RUNNING", + "CANCELLING", "SUCCEEDED", "FAILED" ], @@ -3225,6 +3228,7 @@ "Default value, do not use.", "The data execution has not started.", "The data execution has started and is running.", + "The data execution is currently being cancelled.", "The data execution has completed successfully.", "The data execution has completed with errors." ], @@ -5733,7 +5737,8 @@ "STDEVP", "VAR", "VARP", - "CUSTOM" + "CUSTOM", + "NONE" ], "enumDescriptions": [ "The default, do not use.", @@ -5750,7 +5755,8 @@ "Corresponds to the `STDEVP` function.", "Corresponds to the `VAR` function.", "Corresponds to the `VARP` function.", - "Indicates the formula should be used as-is. Only valid if PivotValue.formula was set." + "Indicates the formula should be used as-is. Only valid if PivotValue.formula was set.", + "Indicates that the value is already summarized, and the summarization function is not explicitly specified. Used for Looker data source pivot tables where the value is already summarized." ], "type": "string" } @@ -6830,6 +6836,10 @@ "$ref": "CellFormat", "description": "The default format of all cells in the spreadsheet. CellData.effectiveFormat will not be set if the cell's format is equal to this default format. This field is read-only." }, + "importFunctionsExternalUrlAccessAllowed": { + "description": "Whether to allow external url access for image and import functions. Read only when true. When false, you can set to true.", + "type": "boolean" + }, "iterativeCalculationSettings": { "$ref": "IterativeCalculationSettings", "description": "Determines whether and how circular references are resolved with iterative calculation. Absence of this field means that circular references result in calculation errors." diff --git a/etc/api/slides/v1/slides-api.json b/etc/api/slides/v1/slides-api.json index 67eae89a6d..6f99952438 100644 --- a/etc/api/slides/v1/slides-api.json +++ b/etc/api/slides/v1/slides-api.json @@ -313,7 +313,7 @@ } } }, - "revision": "20240227", + "revision": "20240415", "rootUrl": "https://slides.googleapis.com/", "schemas": { "AffineTransform": { @@ -2130,6 +2130,10 @@ "$ref": "Size", "description": "The size of the page element." }, + "speakerSpotlight": { + "$ref": "SpeakerSpotlight", + "description": "A Speaker Spotlight." + }, "table": { "$ref": "Table", "description": "A table page element." @@ -3506,6 +3510,32 @@ }, "type": "object" }, + "SpeakerSpotlight": { + "description": "A PageElement kind representing a Speaker Spotlight.", + "id": "SpeakerSpotlight", + "properties": { + "speakerSpotlightProperties": { + "$ref": "SpeakerSpotlightProperties", + "description": "The properties of the Speaker Spotlight." + } + }, + "type": "object" + }, + "SpeakerSpotlightProperties": { + "description": "The properties of the SpeakerSpotlight.", + "id": "SpeakerSpotlightProperties", + "properties": { + "outline": { + "$ref": "Outline", + "description": "The outline of the Speaker Spotlight. If not set, it has no outline." + }, + "shadow": { + "$ref": "Shadow", + "description": "The shadow of the Speaker Spotlight. If not set, it has no shadow." + } + }, + "type": "object" + }, "StretchedPictureFill": { "description": "The stretched picture fill. The page or page element is filled entirely with the specified picture. The picture is stretched to fit its container.", "id": "StretchedPictureFill", diff --git a/etc/api/smartdevicemanagement/v1/smartdevicemanagement-api.json b/etc/api/smartdevicemanagement/v1/smartdevicemanagement-api.json index c2bcd3ce4b..8b6bacec51 100644 --- a/etc/api/smartdevicemanagement/v1/smartdevicemanagement-api.json +++ b/etc/api/smartdevicemanagement/v1/smartdevicemanagement-api.json @@ -312,7 +312,7 @@ } } }, - "revision": "20240218", + "revision": "20240324", "rootUrl": "https://smartdevicemanagement.googleapis.com/", "schemas": { "GoogleHomeEnterpriseSdmV1Device": { diff --git a/etc/api/sourcerepo/v1/sourcerepo-api.json b/etc/api/sourcerepo/v1/sourcerepo-api.json index 40a882a5e0..5bb1b668ff 100644 --- a/etc/api/sourcerepo/v1/sourcerepo-api.json +++ b/etc/api/sourcerepo/v1/sourcerepo-api.json @@ -450,7 +450,7 @@ } } }, - "revision": "20240304", + "revision": "20240415", "rootUrl": "https://sourcerepo.googleapis.com/", "schemas": { "AuditConfig": { diff --git a/etc/api/spanner/v1/spanner-api.json b/etc/api/spanner/v1/spanner-api.json index 82d712b806..a7c25bf689 100644 --- a/etc/api/spanner/v1/spanner-api.json +++ b/etc/api/spanner/v1/spanner-api.json @@ -747,6 +747,35 @@ "https://www.googleapis.com/auth/spanner.admin" ] }, + "move": { + "description": "Moves the instance to the target instance config. The returned long-running operation can be used to track the progress of moving the instance. `MoveInstance` returns `FAILED_PRECONDITION` if the instance meets any of the following criteria: * Has an ongoing move to a different instance config * Has backups * Has an ongoing update * Is under free trial * Contains any CMEK-enabled databases While the operation is pending: * All other attempts to modify the instance, including changes to its compute capacity, are rejected. * The following database and backup admin operations are rejected: * DatabaseAdmin.CreateDatabase, * DatabaseAdmin.UpdateDatabaseDdl (Disabled if default_leader is specified in the request.) * DatabaseAdmin.RestoreDatabase * DatabaseAdmin.CreateBackup * DatabaseAdmin.CopyBackup * Both the source and target instance configs are subject to hourly compute and storage charges. * The instance may experience higher read-write latencies and a higher transaction abort rate. However, moving an instance does not cause any downtime. The returned long-running operation will have a name of the format `/operations/` and can be used to track the move instance operation. The metadata field type is MoveInstanceMetadata. The response field type is Instance, if successful. Cancelling the operation sets its metadata's cancel_time. Cancellation is not immediate since it involves moving any data previously moved to target instance config back to the original instance config. The same operation can be used to track the progress of the cancellation. Upon successful completion of the cancellation, the operation terminates with CANCELLED status. Upon completion(if not cancelled) of the returned operation: * Instance would be successfully moved to the target instance config. * You are billed for compute and storage in target instance config. Authorization requires `spanner.instances.update` permission on the resource instance. For more details, please see [documentation](https://cloud.google.com/spanner/docs/move-instance).", + "flatPath": "v1/projects/{projectsId}/instances/{instancesId}:move", + "httpMethod": "POST", + "id": "spanner.projects.instances.move", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The instance to move. Values are of the form `projects//instances/`.", + "location": "path", + "pattern": "^projects/[^/]+/instances/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:move", + "request": { + "$ref": "MoveInstanceRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.admin" + ] + }, "patch": { "description": "Updates an instance, and begins allocating or releasing resources as requested. The returned long-running operation can be used to track the progress of updating the instance. If the named instance does not exist, returns `NOT_FOUND`. Immediately upon completion of this request: * For resource types for which a decrease in the instance's allocation has been requested, billing is based on the newly-requested level. Until completion of the returned operation: * Cancelling the operation sets its metadata's cancel_time, and begins restoring resources to their pre-request values. The operation is guaranteed to succeed at undoing all resource changes, after which point it terminates with a `CANCELLED` status. * All other attempts to modify the instance are rejected. * Reading the instance via the API continues to give the pre-request resource levels. Upon completion of the returned operation: * Billing begins for all successfully-allocated resources (some types may have lower than the requested levels). * All newly-reserved resources are available for serving the instance's tables. * The instance's new resource levels are readable via the API. The returned long-running operation will have a name of the format `/operations/` and can be used to track the instance modification. The metadata field type is UpdateInstanceMetadata. The response field type is Instance, if successful. Authorization requires `spanner.instances.update` permission on the resource name.", "flatPath": "v1/projects/{projectsId}/instances/{instancesId}", @@ -2411,7 +2440,219 @@ } } }, + "instancePartitionOperations": { + "methods": { + "list": { + "description": "Lists instance partition long-running operations in the given instance. An instance partition operation has a name of the form `projects//instances//instancePartitions//operations/`. The long-running operation metadata field type `metadata.type_url` describes the type of the metadata. Operations returned include those that have completed/failed/canceled within the last 7 days, and pending operations. Operations returned are ordered by `operation.metadata.value.start_time` in descending order starting from the most recently started operation. Authorization requires `spanner.instancePartitionOperations.list` permission on the resource parent.", + "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/instancePartitionOperations", + "httpMethod": "GET", + "id": "spanner.projects.instances.instancePartitionOperations.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. An expression that filters the list of returned operations. A filter expression consists of a field name, a comparison operator, and a value for filtering. The value must be a string, a number, or a boolean. The comparison operator must be one of: `<`, `>`, `<=`, `>=`, `!=`, `=`, or `:`. Colon `:` is the contains operator. Filter rules are not case sensitive. The following fields in the Operation are eligible for filtering: * `name` - The name of the long-running operation * `done` - False if the operation is in progress, else true. * `metadata.@type` - the type of metadata. For example, the type string for CreateInstancePartitionMetadata is `type.googleapis.com/google.spanner.admin.instance.v1.CreateInstancePartitionMetadata`. * `metadata.` - any field in metadata.value. `metadata.@type` must be specified first, if filtering on metadata fields. * `error` - Error associated with the long-running operation. * `response.@type` - the type of response. * `response.` - any field in response.value. You can combine multiple expressions by enclosing each expression in parentheses. By default, expressions are combined with AND logic. However, you can specify AND, OR, and NOT logic explicitly. Here are a few examples: * `done:true` - The operation is complete. * `(metadata.@type=` \\ `type.googleapis.com/google.spanner.admin.instance.v1.CreateInstancePartitionMetadata) AND` \\ `(metadata.instance_partition.name:custom-instance-partition) AND` \\ `(metadata.start_time < \\\"2021-03-28T14:50:00Z\\\") AND` \\ `(error:*)` - Return operations where: * The operation's metadata type is CreateInstancePartitionMetadata. * The instance partition name contains \"custom-instance-partition\". * The operation started before 2021-03-28T14:50:00Z. * The operation resulted in an error.", + "location": "query", + "type": "string" + }, + "instancePartitionDeadline": { + "description": "Optional. Deadline used while retrieving metadata for instance partition operations. Instance partitions whose operation metadata cannot be retrieved within this deadline will be added to unreachable in ListInstancePartitionOperationsResponse.", + "format": "google-datetime", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. Number of operations to be returned in the response. If 0 or less, defaults to the server's maximum allowed page size.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. If non-empty, `page_token` should contain a next_page_token from a previous ListInstancePartitionOperationsResponse to the same `parent` and with the same `filter`.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent instance of the instance partition operations. Values are of the form `projects//instances/`.", + "location": "path", + "pattern": "^projects/[^/]+/instances/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/instancePartitionOperations", + "response": { + "$ref": "ListInstancePartitionOperationsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.admin" + ] + } + } + }, "instancePartitions": { + "methods": { + "create": { + "description": "Creates an instance partition and begins preparing it to be used. The returned long-running operation can be used to track the progress of preparing the new instance partition. The instance partition name is assigned by the caller. If the named instance partition already exists, `CreateInstancePartition` returns `ALREADY_EXISTS`. Immediately upon completion of this request: * The instance partition is readable via the API, with all requested attributes but no allocated resources. Its state is `CREATING`. Until completion of the returned operation: * Cancelling the operation renders the instance partition immediately unreadable via the API. * The instance partition can be deleted. * All other attempts to modify the instance partition are rejected. Upon completion of the returned operation: * Billing for all successfully-allocated resources begins (some types may have lower than the requested levels). * Databases can start using this instance partition. * The instance partition's allocated resource levels are readable via the API. * The instance partition's state becomes `READY`. The returned long-running operation will have a name of the format `/operations/` and can be used to track creation of the instance partition. The metadata field type is CreateInstancePartitionMetadata. The response field type is InstancePartition, if successful.", + "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/instancePartitions", + "httpMethod": "POST", + "id": "spanner.projects.instances.instancePartitions.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The name of the instance in which to create the instance partition. Values are of the form `projects//instances/`.", + "location": "path", + "pattern": "^projects/[^/]+/instances/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/instancePartitions", + "request": { + "$ref": "CreateInstancePartitionRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.admin" + ] + }, + "delete": { + "description": "Deletes an existing instance partition. Requires that the instance partition is not used by any database or backup and is not the default instance partition of an instance. Authorization requires `spanner.instancePartitions.delete` permission on the resource name.", + "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/instancePartitions/{instancePartitionsId}", + "httpMethod": "DELETE", + "id": "spanner.projects.instances.instancePartitions.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "etag": { + "description": "Optional. If not empty, the API only deletes the instance partition when the etag provided matches the current status of the requested instance partition. Otherwise, deletes the instance partition without checking the current status of the requested instance partition.", + "location": "query", + "type": "string" + }, + "name": { + "description": "Required. The name of the instance partition to be deleted. Values are of the form `projects/{project}/instances/{instance}/instancePartitions/{instance_partition}`", + "location": "path", + "pattern": "^projects/[^/]+/instances/[^/]+/instancePartitions/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.admin" + ] + }, + "get": { + "description": "Gets information about a particular instance partition.", + "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/instancePartitions/{instancePartitionsId}", + "httpMethod": "GET", + "id": "spanner.projects.instances.instancePartitions.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the requested instance partition. Values are of the form `projects/{project}/instances/{instance}/instancePartitions/{instance_partition}`.", + "location": "path", + "pattern": "^projects/[^/]+/instances/[^/]+/instancePartitions/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "InstancePartition" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.admin" + ] + }, + "list": { + "description": "Lists all instance partitions for the given instance.", + "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/instancePartitions", + "httpMethod": "GET", + "id": "spanner.projects.instances.instancePartitions.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "instancePartitionDeadline": { + "description": "Optional. Deadline used while retrieving metadata for instance partitions. Instance partitions whose metadata cannot be retrieved within this deadline will be added to unreachable in ListInstancePartitionsResponse.", + "format": "google-datetime", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Number of instance partitions to be returned in the response. If 0 or less, defaults to the server's maximum allowed page size.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "If non-empty, `page_token` should contain a next_page_token from a previous ListInstancePartitionsResponse.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The instance whose instance partitions should be listed. Values are of the form `projects//instances/`.", + "location": "path", + "pattern": "^projects/[^/]+/instances/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/instancePartitions", + "response": { + "$ref": "ListInstancePartitionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.admin" + ] + }, + "patch": { + "description": "Updates an instance partition, and begins allocating or releasing resources as requested. The returned long-running operation can be used to track the progress of updating the instance partition. If the named instance partition does not exist, returns `NOT_FOUND`. Immediately upon completion of this request: * For resource types for which a decrease in the instance partition's allocation has been requested, billing is based on the newly-requested level. Until completion of the returned operation: * Cancelling the operation sets its metadata's cancel_time, and begins restoring resources to their pre-request values. The operation is guaranteed to succeed at undoing all resource changes, after which point it terminates with a `CANCELLED` status. * All other attempts to modify the instance partition are rejected. * Reading the instance partition via the API continues to give the pre-request resource levels. Upon completion of the returned operation: * Billing begins for all successfully-allocated resources (some types may have lower than the requested levels). * All newly-reserved resources are available for serving the instance partition's tables. * The instance partition's new resource levels are readable via the API. The returned long-running operation will have a name of the format `/operations/` and can be used to track the instance partition modification. The metadata field type is UpdateInstancePartitionMetadata. The response field type is InstancePartition, if successful. Authorization requires `spanner.instancePartitions.update` permission on the resource name.", + "flatPath": "v1/projects/{projectsId}/instances/{instancesId}/instancePartitions/{instancePartitionsId}", + "httpMethod": "PATCH", + "id": "spanner.projects.instances.instancePartitions.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A unique identifier for the instance partition. Values are of the form `projects//instances//instancePartitions/a-z*[a-z0-9]`. The final segment of the name must be between 2 and 64 characters in length. An instance partition's name cannot be changed after the instance partition is created.", + "location": "path", + "pattern": "^projects/[^/]+/instances/[^/]+/instancePartitions/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "UpdateInstancePartitionRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/spanner.admin" + ] + } + }, "resources": { "operations": { "methods": { @@ -2729,7 +2970,7 @@ } } }, - "revision": "20240228", + "revision": "20240418", "rootUrl": "https://spanner.googleapis.com/", "schemas": { "AutoscalingConfig": { @@ -2944,6 +3185,10 @@ "description": "The request for BatchWrite.", "id": "BatchWriteRequest", "properties": { + "excludeTxnFromChangeStreams": { + "description": "Optional. When `exclude_txn_from_change_streams` is set to `true`: * Modifications from all transactions in this batch write operation will not be recorded in change streams with DDL option `allow_txn_exclusion=true` that are tracking columns modified by these transactions. * Modifications from all transactions in this batch write operation will be recorded in change streams with DDL option `allow_txn_exclusion=false or not set` that are tracking columns modified by these transactions. When `exclude_txn_from_change_streams` is set to `false` or not set, Modifications from all transactions in this batch write operation will be recorded in all change streams that are tracking columns modified by these transactions.", + "type": "boolean" + }, "mutationGroups": { "description": "Required. The groups of mutations to be applied.", "items": { @@ -3044,7 +3289,7 @@ "id": "CommitRequest", "properties": { "maxCommitDelay": { - "description": "Optional. The amount of latency this request is willing to incur in order to improve throughput. If this field is not set, Spanner assumes requests are relatively latency sensitive and automatically determines an appropriate delay time. You can specify a batching delay value between 0 and 500 ms.", + "description": "Optional. The amount of latency this request is configured to incur in order to improve throughput. If this field is not set, Spanner assumes requests are relatively latency sensitive and automatically determines an appropriate delay time. You can specify a commit delay value between 0 and 500 ms.", "format": "google-duration", "type": "string" }, @@ -3371,6 +3616,47 @@ }, "type": "object" }, + "CreateInstancePartitionMetadata": { + "description": "Metadata type for the operation returned by CreateInstancePartition.", + "id": "CreateInstancePartitionMetadata", + "properties": { + "cancelTime": { + "description": "The time at which this operation was cancelled. If set, this operation is in the process of undoing itself (which is guaranteed to succeed) and cannot be cancelled again.", + "format": "google-datetime", + "type": "string" + }, + "endTime": { + "description": "The time at which this operation failed or was completed successfully.", + "format": "google-datetime", + "type": "string" + }, + "instancePartition": { + "$ref": "InstancePartition", + "description": "The instance partition being created." + }, + "startTime": { + "description": "The time at which the CreateInstancePartition request was received.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "CreateInstancePartitionRequest": { + "description": "The request for CreateInstancePartition.", + "id": "CreateInstancePartitionRequest", + "properties": { + "instancePartition": { + "$ref": "InstancePartition", + "description": "Required. The instance partition to create. The instance_partition.name may be omitted, but if specified must be `/instancePartitions/`." + }, + "instancePartitionId": { + "description": "Required. The ID of the instance partition to create. Valid identifiers are of the form `a-z*[a-z0-9]` and must be between 2 and 64 characters in length.", + "type": "string" + } + }, + "type": "object" + }, "CreateInstanceRequest": { "description": "The request for CreateInstance.", "id": "CreateInstanceRequest", @@ -4196,6 +4482,82 @@ }, "type": "object" }, + "InstancePartition": { + "description": "An isolated set of Cloud Spanner resources that databases can define placements on.", + "id": "InstancePartition", + "properties": { + "config": { + "description": "Required. The name of the instance partition's configuration. Values are of the form `projects//instanceConfigs/`. See also InstanceConfig and ListInstanceConfigs.", + "type": "string" + }, + "createTime": { + "description": "Output only. The time at which the instance partition was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "displayName": { + "description": "Required. The descriptive name for this instance partition as it appears in UIs. Must be unique per project and between 4 and 30 characters in length.", + "type": "string" + }, + "etag": { + "description": "Used for optimistic concurrency control as a way to help prevent simultaneous updates of a instance partition from overwriting each other. It is strongly suggested that systems make use of the etag in the read-modify-write cycle to perform instance partition updates in order to avoid race conditions: An etag is returned in the response which contains instance partitions, and systems are expected to put that etag in the request to update instance partitions to ensure that their change will be applied to the same version of the instance partition. If no etag is provided in the call to update instance partition, then the existing instance partition is overwritten blindly.", + "type": "string" + }, + "name": { + "description": "Required. A unique identifier for the instance partition. Values are of the form `projects//instances//instancePartitions/a-z*[a-z0-9]`. The final segment of the name must be between 2 and 64 characters in length. An instance partition's name cannot be changed after the instance partition is created.", + "type": "string" + }, + "nodeCount": { + "description": "The number of nodes allocated to this instance partition. Users can set the node_count field to specify the target number of nodes allocated to the instance partition. This may be zero in API responses for instance partitions that are not yet in state `READY`.", + "format": "int32", + "type": "integer" + }, + "processingUnits": { + "description": "The number of processing units allocated to this instance partition. Users can set the processing_units field to specify the target number of processing units allocated to the instance partition. This may be zero in API responses for instance partitions that are not yet in state `READY`.", + "format": "int32", + "type": "integer" + }, + "referencingBackups": { + "description": "Output only. The names of the backups that reference this instance partition. Referencing backups should share the parent instance. The existence of any referencing backup prevents the instance partition from being deleted.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "referencingDatabases": { + "description": "Output only. The names of the databases that reference this instance partition. Referencing databases should share the parent instance. The existence of any referencing database prevents the instance partition from being deleted.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "state": { + "description": "Output only. The current instance partition state.", + "enum": [ + "STATE_UNSPECIFIED", + "CREATING", + "READY" + ], + "enumDescriptions": [ + "Not specified.", + "The instance partition is still being created. Resources may not be available yet, and operations such as creating placements using this instance partition may not work.", + "The instance partition is fully created and ready to do work such as creating placements and using in databases." + ], + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. The time at which the instance partition was most recently updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "KeyRange": { "description": "KeyRange represents a range of rows in a table or index. A range has a start key and an end key. These keys can be open or closed, indicating if the range includes rows with that key. Keys are represented by lists, where the ith value in the list corresponds to the ith component of the table or index primary key. Individual values are encoded as described here. For example, consider the following table definition: CREATE TABLE UserEvents ( UserName STRING(MAX), EventDate STRING(10) ) PRIMARY KEY(UserName, EventDate); The following keys name rows in this table: \"Bob\", \"2014-09-23\" Since the `UserEvents` table's `PRIMARY KEY` clause names two columns, each `UserEvents` key has two elements; the first is the `UserName`, and the second is the `EventDate`. Key ranges with multiple components are interpreted lexicographically by component using the table or index key's declared sort order. For example, the following range returns all events for user `\"Bob\"` that occurred in the year 2015: \"start_closed\": [\"Bob\", \"2015-01-01\"] \"end_closed\": [\"Bob\", \"2015-12-31\"] Start and end keys can omit trailing key components. This affects the inclusion and exclusion of rows that exactly match the provided key components: if the key is closed, then rows that exactly match the provided components are included; if the key is open, then rows that exactly match are not included. For example, the following range includes all events for `\"Bob\"` that occurred during and after the year 2000: \"start_closed\": [\"Bob\", \"2000-01-01\"] \"end_closed\": [\"Bob\"] The next example retrieves all events for `\"Bob\"`: \"start_closed\": [\"Bob\"] \"end_closed\": [\"Bob\"] To retrieve events before the year 2000: \"start_closed\": [\"Bob\"] \"end_open\": [\"Bob\", \"2000-01-01\"] The following range includes all rows in the table: \"start_closed\": [] \"end_closed\": [] This range returns all users whose `UserName` begins with any character from A to C: \"start_closed\": [\"A\"] \"end_open\": [\"D\"] This range returns all users whose `UserName` begins with B: \"start_closed\": [\"B\"] \"end_open\": [\"C\"] Key ranges honor column sort order. For example, suppose a table is defined as follows: CREATE TABLE DescendingSortedTable { Key INT64, ... ) PRIMARY KEY(Key DESC); The following range retrieves all rows with key values between 1 and 100 inclusive: \"start_closed\": [\"100\"] \"end_closed\": [\"1\"] Note that 100 is passed as the start, and 1 is passed as the end, because `Key` is a descending column in the schema.", "id": "KeyRange", @@ -4455,6 +4817,56 @@ }, "type": "object" }, + "ListInstancePartitionOperationsResponse": { + "description": "The response for ListInstancePartitionOperations.", + "id": "ListInstancePartitionOperationsResponse", + "properties": { + "nextPageToken": { + "description": "`next_page_token` can be sent in a subsequent ListInstancePartitionOperations call to fetch more of the matching metadata.", + "type": "string" + }, + "operations": { + "description": "The list of matching instance partition long-running operations. Each operation's name will be prefixed by the instance partition's name. The operation's metadata field type `metadata.type_url` describes the type of the metadata.", + "items": { + "$ref": "Operation" + }, + "type": "array" + }, + "unreachableInstancePartitions": { + "description": "The list of unreachable instance partitions. It includes the names of instance partitions whose operation metadata could not be retrieved within instance_partition_deadline.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "ListInstancePartitionsResponse": { + "description": "The response for ListInstancePartitions.", + "id": "ListInstancePartitionsResponse", + "properties": { + "instancePartitions": { + "description": "The list of requested instancePartitions.", + "items": { + "$ref": "InstancePartition" + }, + "type": "array" + }, + "nextPageToken": { + "description": "`next_page_token` can be sent in a subsequent ListInstancePartitions call to fetch more of the matching instance partitions.", + "type": "string" + }, + "unreachable": { + "description": "The list of unreachable instance partitions. It includes the names of instance partitions whose metadata could not be retrieved within instance_partition_deadline.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "ListInstancesResponse": { "description": "The response for ListInstances.", "id": "ListInstancesResponse", @@ -4657,6 +5069,17 @@ }, "type": "object" }, + "MoveInstanceRequest": { + "description": "The request for MoveInstance.", + "id": "MoveInstanceRequest", + "properties": { + "targetConfig": { + "description": "Required. The target instance config for the instance to move. Values are of the form `projects//instanceConfigs/`.", + "type": "string" + } + }, + "type": "object" + }, "Mutation": { "description": "A modification to one or more Cloud Spanner rows. Mutations can be applied to a Cloud Spanner database by sending them in a Commit call.", "id": "Mutation", @@ -5555,6 +5978,10 @@ "description": "The labels for the session. * 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])?)?`. * No more than 64 labels can be associated with a given session. See https://goo.gl/xmQnxf for more information on and examples of labels.", "type": "object" }, + "multiplexed": { + "description": "Optional. If true, specifies a multiplexed session. A multiplexed session may be used for multiple, concurrent read-only operations but can not be used for read-write transactions, partitioned reads, or partitioned queries. Multiplexed sessions can be created via CreateSession but not via BatchCreateSessions. Multiplexed sessions may not be deleted nor listed.", + "type": "boolean" + }, "name": { "description": "Output only. The name of the session. This is always system-assigned.", "readOnly": true, @@ -5709,6 +6136,10 @@ "description": "Transactions: Each session can have at most one active transaction at a time (note that standalone reads and queries use a transaction internally and do count towards the one transaction limit). After the active transaction is completed, the session can immediately be re-used for the next transaction. It is not necessary to create a new session for each transaction. Transaction modes: Cloud Spanner supports three transaction modes: 1. Locking read-write. This type of transaction is the only way to write data into Cloud Spanner. These transactions rely on pessimistic locking and, if necessary, two-phase commit. Locking read-write transactions may abort, requiring the application to retry. 2. Snapshot read-only. Snapshot read-only transactions provide guaranteed consistency across several reads, but do not allow writes. Snapshot read-only transactions can be configured to read at timestamps in the past, or configured to perform a strong read (where Spanner will select a timestamp such that the read is guaranteed to see the effects of all transactions that have committed before the start of the read). Snapshot read-only transactions do not need to be committed. Queries on change streams must be performed with the snapshot read-only transaction mode, specifying a strong read. Please see TransactionOptions.ReadOnly.strong for more details. 3. Partitioned DML. This type of transaction is used to execute a single Partitioned DML statement. Partitioned DML partitions the key space and runs the DML statement over each partition in parallel using separate, internal transactions that commit independently. Partitioned DML transactions do not need to be committed. For transactions that only read, snapshot read-only transactions provide simpler semantics and are almost always faster. In particular, read-only transactions do not take locks, so they do not conflict with read-write transactions. As a consequence of not taking locks, they also do not abort, so retry loops are not needed. Transactions may only read-write data in a single database. They may, however, read-write data in different tables within that database. Locking read-write transactions: Locking transactions may be used to atomically read-modify-write data anywhere in a database. This type of transaction is externally consistent. Clients should attempt to minimize the amount of time a transaction is active. Faster transactions commit with higher probability and cause less contention. Cloud Spanner attempts to keep read locks active as long as the transaction continues to do reads, and the transaction has not been terminated by Commit or Rollback. Long periods of inactivity at the client may cause Cloud Spanner to release a transaction's locks and abort it. Conceptually, a read-write transaction consists of zero or more reads or SQL statements followed by Commit. At any time before Commit, the client can send a Rollback request to abort the transaction. Semantics: Cloud Spanner can commit the transaction if all read locks it acquired are still valid at commit time, and it is able to acquire write locks for all writes. Cloud Spanner can abort the transaction for any reason. If a commit attempt returns `ABORTED`, Cloud Spanner guarantees that the transaction has not modified any user data in Cloud Spanner. Unless the transaction commits, Cloud Spanner makes no guarantees about how long the transaction's locks were held for. It is an error to use Cloud Spanner locks for any sort of mutual exclusion other than between Cloud Spanner transactions themselves. Retrying aborted transactions: When a transaction aborts, the application can choose to retry the whole transaction again. To maximize the chances of successfully committing the retry, the client should execute the retry in the same session as the original attempt. The original session's lock priority increases with each consecutive abort, meaning that each attempt has a slightly better chance of success than the previous. Under some circumstances (for example, many transactions attempting to modify the same row(s)), a transaction can abort many times in a short period before successfully committing. Thus, it is not a good idea to cap the number of retries a transaction can attempt; instead, it is better to limit the total amount of time spent retrying. Idle transactions: A transaction is considered idle if it has no outstanding reads or SQL queries and has not started a read or SQL query within the last 10 seconds. Idle transactions can be aborted by Cloud Spanner so that they don't hold on to locks indefinitely. If an idle transaction is aborted, the commit will fail with error `ABORTED`. If this behavior is undesirable, periodically executing a simple SQL query in the transaction (for example, `SELECT 1`) prevents the transaction from becoming idle. Snapshot read-only transactions: Snapshot read-only transactions provides a simpler method than locking read-write transactions for doing several consistent reads. However, this type of transaction does not support writes. Snapshot transactions do not take locks. Instead, they work by choosing a Cloud Spanner timestamp, then executing all reads at that timestamp. Since they do not acquire locks, they do not block concurrent read-write transactions. Unlike locking read-write transactions, snapshot read-only transactions never abort. They can fail if the chosen read timestamp is garbage collected; however, the default garbage collection policy is generous enough that most applications do not need to worry about this in practice. Snapshot read-only transactions do not need to call Commit or Rollback (and in fact are not permitted to do so). To execute a snapshot transaction, the client specifies a timestamp bound, which tells Cloud Spanner how to choose a read timestamp. The types of timestamp bound are: - Strong (the default). - Bounded staleness. - Exact staleness. If the Cloud Spanner database to be read is geographically distributed, stale read-only transactions can execute more quickly than strong or read-write transactions, because they are able to execute far from the leader replica. Each type of timestamp bound is discussed in detail below. Strong: Strong reads are guaranteed to see the effects of all transactions that have committed before the start of the read. Furthermore, all rows yielded by a single read are consistent with each other -- if any part of the read observes a transaction, all parts of the read see the transaction. Strong reads are not repeatable: two consecutive strong read-only transactions might return inconsistent results if there are concurrent writes. If consistency across reads is required, the reads should be executed within a transaction or at an exact read timestamp. Queries on change streams (see below for more details) must also specify the strong read timestamp bound. See TransactionOptions.ReadOnly.strong. Exact staleness: These timestamp bounds execute reads at a user-specified timestamp. Reads at a timestamp are guaranteed to see a consistent prefix of the global transaction history: they observe modifications done by all transactions with a commit timestamp less than or equal to the read timestamp, and observe none of the modifications done by transactions with a larger commit timestamp. They will block until all conflicting transactions that may be assigned commit timestamps <= the read timestamp have finished. The timestamp can either be expressed as an absolute Cloud Spanner commit timestamp or a staleness relative to the current time. These modes do not require a \"negotiation phase\" to pick a timestamp. As a result, they execute slightly faster than the equivalent boundedly stale concurrency modes. On the other hand, boundedly stale reads usually return fresher results. See TransactionOptions.ReadOnly.read_timestamp and TransactionOptions.ReadOnly.exact_staleness. Bounded staleness: Bounded staleness modes allow Cloud Spanner to pick the read timestamp, subject to a user-provided staleness bound. Cloud Spanner chooses the newest timestamp within the staleness bound that allows execution of the reads at the closest available replica without blocking. All rows yielded are consistent with each other -- if any part of the read observes a transaction, all parts of the read see the transaction. Boundedly stale reads are not repeatable: two stale reads, even if they use the same staleness bound, can execute at different timestamps and thus return inconsistent results. Boundedly stale reads execute in two phases: the first phase negotiates a timestamp among all replicas needed to serve the read. In the second phase, reads are executed at the negotiated timestamp. As a result of the two phase execution, bounded staleness reads are usually a little slower than comparable exact staleness reads. However, they are typically able to return fresher results, and are more likely to execute at the closest replica. Because the timestamp negotiation requires up-front knowledge of which rows will be read, it can only be used with single-use read-only transactions. See TransactionOptions.ReadOnly.max_staleness and TransactionOptions.ReadOnly.min_read_timestamp. Old read timestamps and garbage collection: Cloud Spanner continuously garbage collects deleted and overwritten data in the background to reclaim storage space. This process is known as \"version GC\". By default, version GC reclaims versions after they are one hour old. Because of this, Cloud Spanner cannot perform reads at read timestamps more than one hour in the past. This restriction also applies to in-progress reads and/or SQL queries whose timestamp become too old while executing. Reads and SQL queries with too-old read timestamps fail with the error `FAILED_PRECONDITION`. You can configure and extend the `VERSION_RETENTION_PERIOD` of a database up to a period as long as one week, which allows Cloud Spanner to perform reads up to one week in the past. Querying change Streams: A Change Stream is a schema object that can be configured to watch data changes on the entire database, a set of tables, or a set of columns in a database. When a change stream is created, Spanner automatically defines a corresponding SQL Table-Valued Function (TVF) that can be used to query the change records in the associated change stream using the ExecuteStreamingSql API. The name of the TVF for a change stream is generated from the name of the change stream: READ_. All queries on change stream TVFs must be executed using the ExecuteStreamingSql API with a single-use read-only transaction with a strong read-only timestamp_bound. The change stream TVF allows users to specify the start_timestamp and end_timestamp for the time range of interest. All change records within the retention period is accessible using the strong read-only timestamp_bound. All other TransactionOptions are invalid for change stream queries. In addition, if TransactionOptions.read_only.return_read_timestamp is set to true, a special value of 2^63 - 2 will be returned in the Transaction message that describes the transaction, instead of a valid read timestamp. This special value should be discarded and not used for any subsequent queries. Please see https://cloud.google.com/spanner/docs/change-streams for more details on how to query the change stream TVFs. Partitioned DML transactions: Partitioned DML transactions are used to execute DML statements with a different execution strategy that provides different, and often better, scalability properties for large, table-wide operations than DML in a ReadWrite transaction. Smaller scoped statements, such as an OLTP workload, should prefer using ReadWrite transactions. Partitioned DML partitions the keyspace and runs the DML statement on each partition in separate, internal transactions. These transactions commit automatically when complete, and run independently from one another. To reduce lock contention, this execution strategy only acquires read locks on rows that match the WHERE clause of the statement. Additionally, the smaller per-partition transactions hold locks for less time. That said, Partitioned DML is not a drop-in replacement for standard DML used in ReadWrite transactions. - The DML statement must be fully-partitionable. Specifically, the statement must be expressible as the union of many statements which each access only a single row of the table. - The statement is not applied atomically to all rows of the table. Rather, the statement is applied atomically to partitions of the table, in independent transactions. Secondary index rows are updated atomically with the base table rows. - Partitioned DML does not guarantee exactly-once execution semantics against a partition. The statement will be applied at least once to each partition. It is strongly recommended that the DML statement should be idempotent to avoid unexpected results. For instance, it is potentially dangerous to run a statement such as `UPDATE table SET column = column + 1` as it could be run multiple times against some rows. - The partitions are committed automatically - there is no support for Commit or Rollback. If the call returns an error, or if the client issuing the ExecuteSql call dies, it is possible that some rows had the statement executed on them successfully. It is also possible that statement was never executed against other rows. - Partitioned DML transactions may only contain the execution of a single DML statement via ExecuteSql or ExecuteStreamingSql. - If any error is encountered during the execution of the partitioned DML operation (for instance, a UNIQUE INDEX violation, division by zero, or a value that cannot be stored due to schema constraints), then the operation is stopped at that point and an error is returned. It is possible that at this point, some partitions have been committed (or even committed multiple times), and other partitions have not been run at all. Given the above, Partitioned DML is good fit for large, database-wide, operations that are idempotent, such as deleting old rows from a very large table.", "id": "TransactionOptions", "properties": { + "excludeTxnFromChangeStreams": { + "description": "When `exclude_txn_from_change_streams` is set to `true`: * Modifications from this transaction will not be recorded in change streams with DDL option `allow_txn_exclusion=true` that are tracking columns modified by these transactions. * Modifications from this transaction will be recorded in change streams with DDL option `allow_txn_exclusion=false or not set` that are tracking columns modified by these transactions. When `exclude_txn_from_change_streams` is set to `false` or not set, Modifications from this transaction will be recorded in all change streams that are tracking columns modified by these transactions. `exclude_txn_from_change_streams` may only be specified for read-write or partitioned-dml transactions, otherwise the API will return an `INVALID_ARGUMENT` error.", + "type": "boolean" + }, "partitionedDml": { "$ref": "PartitionedDml", "description": "Partitioned DML transaction. Authorization to begin a Partitioned DML transaction requires `spanner.databases.beginPartitionedDmlTransaction` permission on the `session` resource." @@ -5999,6 +6430,48 @@ }, "type": "object" }, + "UpdateInstancePartitionMetadata": { + "description": "Metadata type for the operation returned by UpdateInstancePartition.", + "id": "UpdateInstancePartitionMetadata", + "properties": { + "cancelTime": { + "description": "The time at which this operation was cancelled. If set, this operation is in the process of undoing itself (which is guaranteed to succeed) and cannot be cancelled again.", + "format": "google-datetime", + "type": "string" + }, + "endTime": { + "description": "The time at which this operation failed or was completed successfully.", + "format": "google-datetime", + "type": "string" + }, + "instancePartition": { + "$ref": "InstancePartition", + "description": "The desired end state of the update." + }, + "startTime": { + "description": "The time at which UpdateInstancePartition request was received.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "UpdateInstancePartitionRequest": { + "description": "The request for UpdateInstancePartition.", + "id": "UpdateInstancePartitionRequest", + "properties": { + "fieldMask": { + "description": "Required. A mask specifying which fields in InstancePartition should be updated. The field mask must always be specified; this prevents any future fields in InstancePartition from being erased accidentally by clients that do not know about them.", + "format": "google-fieldmask", + "type": "string" + }, + "instancePartition": { + "$ref": "InstancePartition", + "description": "Required. The instance partition to update, which must always include the instance partition name. Otherwise, only fields mentioned in field_mask need be included." + } + }, + "type": "object" + }, "UpdateInstanceRequest": { "description": "The request for UpdateInstance.", "id": "UpdateInstanceRequest", diff --git a/etc/api/speech/v1/speech-api.json b/etc/api/speech/v1/speech-api.json index 44749ab68a..2375f88c31 100644 --- a/etc/api/speech/v1/speech-api.json +++ b/etc/api/speech/v1/speech-api.json @@ -524,7 +524,7 @@ } } }, - "revision": "20240222", + "revision": "20240405", "rootUrl": "https://speech.googleapis.com/", "schemas": { "ABNFGrammar": { diff --git a/etc/api/speech/v1p1beta1/speech-api.json b/etc/api/speech/v1p1beta1/speech-api.json index 1ad93462aa..c8e4914825 100644 --- a/etc/api/speech/v1p1beta1/speech-api.json +++ b/etc/api/speech/v1p1beta1/speech-api.json @@ -524,7 +524,7 @@ } } }, - "revision": "20240222", + "revision": "20240405", "rootUrl": "https://speech.googleapis.com/", "schemas": { "ABNFGrammar": { diff --git a/etc/api/sqladmin/v1/sqladmin-api.json b/etc/api/sqladmin/v1/sqladmin-api.json index 2c21011e93..4b766f26e6 100644 --- a/etc/api/sqladmin/v1/sqladmin-api.json +++ b/etc/api/sqladmin/v1/sqladmin-api.json @@ -608,6 +608,41 @@ }, "instances": { "methods": { + "acquireSsrsLease": { + "description": "Acquire a lease for the setup of SQL Server Reporting Services (SSRS).", + "flatPath": "v1/projects/{project}/instances/{instance}/acquireSsrsLease", + "httpMethod": "POST", + "id": "sql.instances.acquireSsrsLease", + "parameterOrder": [ + "project", + "instance" + ], + "parameters": { + "instance": { + "description": "Required. Cloud SQL instance ID. This doesn't include the project ID. It's composed of lowercase letters, numbers, and hyphens, and it must start with a letter. The total length must be 98 characters or less (Example: instance-id).", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Required. Project ID of the project that contains the instance (Example: project-id).", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1/projects/{project}/instances/{instance}/acquireSsrsLease", + "request": { + "$ref": "InstancesAcquireSsrsLeaseRequest" + }, + "response": { + "$ref": "SqlInstancesAcquireSsrsLeaseResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, "addServerCa": { "description": "Adds a new trusted Certificate Authority (CA) version for the specified instance. Required to prepare for a certificate rotation. If a CA version was previously added but never used in a certificate rotation, this operation replaces that version. There cannot be more than one CA version waiting to be rotated in.", "flatPath": "v1/projects/{project}/instances/{instance}/addServerCa", @@ -1120,6 +1155,38 @@ "https://www.googleapis.com/auth/sqlservice.admin" ] }, + "releaseSsrsLease": { + "description": "Release a lease for the setup of SQL Server Reporting Services (SSRS).", + "flatPath": "v1/projects/{project}/instances/{instance}/releaseSsrsLease", + "httpMethod": "POST", + "id": "sql.instances.releaseSsrsLease", + "parameterOrder": [ + "project", + "instance" + ], + "parameters": { + "instance": { + "description": "Required. The Cloud SQL instance ID. This doesn't include the project ID. The instance ID contains lowercase letters, numbers, and hyphens, and it must start with a letter. This ID can have a maximum length of 98 characters.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Required. The project ID that contains the instance.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1/projects/{project}/instances/{instance}/releaseSsrsLease", + "response": { + "$ref": "SqlInstancesReleaseSsrsLeaseResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, "resetSslConfig": { "description": "Deletes all client certificates and generates a new server SSL certificate for the instance.", "flatPath": "v1/projects/{project}/instances/{instance}/resetSslConfig", @@ -2200,7 +2267,7 @@ } } }, - "revision": "20240219", + "revision": "20240412", "rootUrl": "https://sqladmin.googleapis.com/", "schemas": { "AclEntry": { @@ -2227,6 +2294,30 @@ }, "type": "object" }, + "AcquireSsrsLeaseContext": { + "description": "Acquire SSRS lease context.", + "id": "AcquireSsrsLeaseContext", + "properties": { + "duration": { + "description": "Lease duration needed for SSRS setup.", + "format": "google-duration", + "type": "string" + }, + "reportDatabase": { + "description": "The report database to be used for SSRS setup.", + "type": "string" + }, + "serviceLogin": { + "description": "The username to be used as the service login to connect to the report database for SSRS setup.", + "type": "string" + }, + "setupLogin": { + "description": "The username to be used as the setup login to connect to the database server for SSRS setup.", + "type": "string" + } + }, + "type": "object" + }, "AdvancedMachineFeatures": { "description": "Specifies options for controlling advanced machine features.", "id": "AdvancedMachineFeatures", @@ -2312,6 +2403,25 @@ "description": "The number of days of transaction logs we retain for point in time restore, from 1-7.", "format": "int32", "type": "integer" + }, + "transactionalLogStorageState": { + "description": "Output only. This value contains the storage location of transactional logs for the database for point-in-time recovery.", + "enum": [ + "TRANSACTIONAL_LOG_STORAGE_STATE_UNSPECIFIED", + "DISK", + "SWITCHING_TO_CLOUD_STORAGE", + "SWITCHED_TO_CLOUD_STORAGE", + "CLOUD_STORAGE" + ], + "enumDescriptions": [ + "Unspecified.", + "The transaction logs for the instance are stored on a data disk.", + "The transaction logs for the instance are switching from being stored on a data disk to being stored in Cloud Storage.", + "The transaction logs for the instance are now stored in Cloud Storage. Previously, they were stored on a data disk.", + "The transaction logs for the instance are stored in Cloud Storage." + ], + "readOnly": true, + "type": "string" } }, "type": "object" @@ -2650,6 +2760,10 @@ "MYSQL_8_0_34", "MYSQL_8_0_35", "MYSQL_8_0_36", + "MYSQL_8_0_37", + "MYSQL_8_0_38", + "MYSQL_8_0_39", + "MYSQL_8_0_40", "SQLSERVER_2019_STANDARD", "SQLSERVER_2019_ENTERPRISE", "SQLSERVER_2019_EXPRESS", @@ -2696,6 +2810,10 @@ false, false, false, + false, + false, + false, + false, false ], "enumDescriptions": [ @@ -2728,6 +2846,10 @@ "The database major version is MySQL 8.0 and the minor version is 34.", "The database major version is MySQL 8.0 and the minor version is 35.", "The database major version is MySQL 8.0 and the minor version is 36.", + "The database major version is MySQL 8.0 and the minor version is 37.", + "The database major version is MySQL 8.0 and the minor version is 38.", + "The database major version is MySQL 8.0 and the minor version is 39.", + "The database major version is MySQL 8.0 and the minor version is 40.", "The database version is SQL Server 2019 Standard.", "The database version is SQL Server 2019 Enterprise.", "The database version is SQL Server 2019 Express.", @@ -2924,6 +3046,10 @@ "MYSQL_8_0_34", "MYSQL_8_0_35", "MYSQL_8_0_36", + "MYSQL_8_0_37", + "MYSQL_8_0_38", + "MYSQL_8_0_39", + "MYSQL_8_0_40", "SQLSERVER_2019_STANDARD", "SQLSERVER_2019_ENTERPRISE", "SQLSERVER_2019_EXPRESS", @@ -2970,6 +3096,10 @@ false, false, false, + false, + false, + false, + false, false ], "enumDescriptions": [ @@ -3002,6 +3132,10 @@ "The database major version is MySQL 8.0 and the minor version is 34.", "The database major version is MySQL 8.0 and the minor version is 35.", "The database major version is MySQL 8.0 and the minor version is 36.", + "The database major version is MySQL 8.0 and the minor version is 37.", + "The database major version is MySQL 8.0 and the minor version is 38.", + "The database major version is MySQL 8.0 and the minor version is 39.", + "The database major version is MySQL 8.0 and the minor version is 40.", "The database version is SQL Server 2019 Standard.", "The database version is SQL Server 2019 Enterprise.", "The database version is SQL Server 2019 Express.", @@ -3048,6 +3182,10 @@ "description": "The Compute Engine zone that the instance is currently serving from. This value could be different from the zone that was specified when the instance was created if the instance has failed over to its secondary zone. WARNING: Changing this might restart the instance.", "type": "string" }, + "geminiConfig": { + "$ref": "GeminiInstanceConfig", + "description": "Gemini configuration." + }, "instanceType": { "description": "The instance type.", "enum": [ @@ -3136,6 +3274,10 @@ }, "type": "array" }, + "replicationCluster": { + "$ref": "ReplicationCluster", + "description": "Optional. The pair of a primary instance and disaster recovery (DR) replica. A DR replica is a cross-region replica that you designate for failover in the event that the primary instance has regional failure." + }, "rootPassword": { "description": "Initial root password. Use only on creation. You must set root passwords before you can connect to PostgreSQL instances.", "type": "string" @@ -3618,6 +3760,10 @@ "MYSQL_8_0_34", "MYSQL_8_0_35", "MYSQL_8_0_36", + "MYSQL_8_0_37", + "MYSQL_8_0_38", + "MYSQL_8_0_39", + "MYSQL_8_0_40", "SQLSERVER_2019_STANDARD", "SQLSERVER_2019_ENTERPRISE", "SQLSERVER_2019_EXPRESS", @@ -3664,6 +3810,10 @@ false, false, false, + false, + false, + false, + false, false ], "enumDescriptions": [ @@ -3696,6 +3846,10 @@ "The database major version is MySQL 8.0 and the minor version is 34.", "The database major version is MySQL 8.0 and the minor version is 35.", "The database major version is MySQL 8.0 and the minor version is 36.", + "The database major version is MySQL 8.0 and the minor version is 37.", + "The database major version is MySQL 8.0 and the minor version is 38.", + "The database major version is MySQL 8.0 and the minor version is 39.", + "The database major version is MySQL 8.0 and the minor version is 40.", "The database version is SQL Server 2019 Standard.", "The database version is SQL Server 2019 Enterprise.", "The database version is SQL Server 2019 Express.", @@ -3780,6 +3934,43 @@ }, "type": "object" }, + "GeminiInstanceConfig": { + "description": "Gemini configuration.", + "id": "GeminiInstanceConfig", + "properties": { + "activeQueryEnabled": { + "description": "Output only. Whether active query is enabled.", + "readOnly": true, + "type": "boolean" + }, + "entitled": { + "description": "Output only. Whether gemini is enabled.", + "readOnly": true, + "type": "boolean" + }, + "flagRecommenderEnabled": { + "description": "Output only. Whether flag recommender is enabled.", + "readOnly": true, + "type": "boolean" + }, + "googleVacuumMgmtEnabled": { + "description": "Output only. Whether vacuum management is enabled.", + "readOnly": true, + "type": "boolean" + }, + "indexAdvisorEnabled": { + "description": "Output only. Whether index advisor is enabled.", + "readOnly": true, + "type": "boolean" + }, + "oomSessionCancelEnabled": { + "description": "Output only. Whether oom session cancel is enabled.", + "readOnly": true, + "type": "boolean" + } + }, + "type": "object" + }, "GenerateEphemeralCertRequest": { "description": "Ephemeral certificate creation request.", "id": "GenerateEphemeralCertRequest", @@ -3941,6 +4132,21 @@ "description": "This is always `sql#importContext`.", "type": "string" }, + "sqlImportOptions": { + "description": "Optional. Options for importing data from SQL statements.", + "properties": { + "parallel": { + "description": "Optional. Whether or not the import should be parallel.", + "type": "boolean" + }, + "threads": { + "description": "Optional. The number of threads to use for parallel import.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "uri": { "description": "Path to the import file in Cloud Storage, in the form `gs://bucketName/fileName`. Compressed gzip files (.gz) are supported when `fileType` is `SQL`. The instance must have write permissions to the bucket and read access to the file.", "type": "string" @@ -3996,6 +4202,17 @@ }, "type": "object" }, + "InstancesAcquireSsrsLeaseRequest": { + "description": "Request to acquire a lease for SSRS.", + "id": "InstancesAcquireSsrsLeaseRequest", + "properties": { + "acquireSsrsLeaseContext": { + "$ref": "AcquireSsrsLeaseContext", + "description": "Contains details about the acquire SSRS lease operation." + } + }, + "type": "object" + }, "InstancesCloneRequest": { "description": "Database instance clone request.", "id": "InstancesCloneRequest", @@ -4188,11 +4405,11 @@ "description": "PSC settings for this instance." }, "requireSsl": { - "description": "Use `ssl_mode` instead for MySQL and PostgreSQL. SQL Server uses this flag. Whether SSL/TLS connections over IP are enforced. If set to false, then allow both non-SSL/non-TLS and SSL/TLS connections. For SSL/TLS connections, the client certificate won't be verified. If set to true, then only allow connections encrypted with SSL/TLS and with valid client certificates. If you want to enforce SSL/TLS without enforcing the requirement for valid client certificates, then use the `ssl_mode` flag instead of the `require_ssl` flag.", + "description": "Use `ssl_mode` instead. Whether SSL/TLS connections over IP are enforced. If set to false, then allow both non-SSL/non-TLS and SSL/TLS connections. For SSL/TLS connections, the client certificate won't be verified. If set to true, then only allow connections encrypted with SSL/TLS and with valid client certificates. If you want to enforce SSL/TLS without enforcing the requirement for valid client certificates, then use the `ssl_mode` flag instead of the `require_ssl` flag.", "type": "boolean" }, "sslMode": { - "description": "Specify how SSL/TLS is enforced in database connections. MySQL and PostgreSQL use the `ssl_mode` flag. If you must use the `require_ssl` flag for backward compatibility, then only the following value pairs are valid: * `ssl_mode=ALLOW_UNENCRYPTED_AND_ENCRYPTED` and `require_ssl=false` * `ssl_mode=ENCRYPTED_ONLY` and `require_ssl=false` * `ssl_mode=TRUSTED_CLIENT_CERTIFICATE_REQUIRED` and `require_ssl=true` The value of `ssl_mode` gets priority over the value of `require_ssl`. For example, for the pair `ssl_mode=ENCRYPTED_ONLY` and `require_ssl=false`, the `ssl_mode=ENCRYPTED_ONLY` means only accept SSL connections, while the `require_ssl=false` means accept both non-SSL and SSL connections. MySQL and PostgreSQL databases respect `ssl_mode` in this case and accept only SSL connections. SQL Server uses the `require_ssl` flag. You can set the value for this flag to `true` or `false`.", + "description": "Specify how SSL/TLS is enforced in database connections. If you must use the `require_ssl` flag for backward compatibility, then only the following value pairs are valid: For PostgreSQL and MySQL: * `ssl_mode=ALLOW_UNENCRYPTED_AND_ENCRYPTED` and `require_ssl=false` * `ssl_mode=ENCRYPTED_ONLY` and `require_ssl=false` * `ssl_mode=TRUSTED_CLIENT_CERTIFICATE_REQUIRED` and `require_ssl=true` For SQL Server: * `ssl_mode=ALLOW_UNENCRYPTED_AND_ENCRYPTED` and `require_ssl=false` * `ssl_mode=ENCRYPTED_ONLY` and `require_ssl=true` The value of `ssl_mode` gets priority over the value of `require_ssl`. For example, for the pair `ssl_mode=ENCRYPTED_ONLY` and `require_ssl=false`, the `ssl_mode=ENCRYPTED_ONLY` means only accept SSL connections, while the `require_ssl=false` means accept both non-SSL and SSL connections. MySQL and PostgreSQL databases respect `ssl_mode` in this case and accept only SSL connections.", "enum": [ "SSL_MODE_UNSPECIFIED", "ALLOW_UNENCRYPTED_AND_ENCRYPTED", @@ -4419,6 +4636,10 @@ "description": "An Operation resource. For successful operations that return an Operation resource, only the fields relevant to the operation are populated in the resource.", "id": "Operation", "properties": { + "acquireSsrsLeaseContext": { + "$ref": "AcquireSsrsLeaseContext", + "description": "The context for acquire SSRS lease operation, if applicable." + }, "apiWarning": { "$ref": "ApiWarning", "description": "An Admin API warning message." @@ -4498,7 +4719,10 @@ "LOG_CLEANUP", "AUTO_RESTART", "REENCRYPT", - "SWITCHOVER" + "SWITCHOVER", + "ACQUIRE_SSRS_LEASE", + "RELEASE_SSRS_LEASE", + "RECONFIGURE_OLD_PRIMARY" ], "enumDeprecated": [ false, @@ -4539,6 +4763,9 @@ false, false, false, + false, + false, + false, false ], "enumDescriptions": [ @@ -4580,7 +4807,10 @@ "Recovers logs from an instance's old data disk.", "Performs auto-restart of an HA-enabled Cloud SQL database for auto recovery.", "Re-encrypts CMEK instances with latest key version.", - "Switches over to replica instance from primary." + "Switches over to replica instance from primary.", + "Acquire a lease for the setup of SQL Server Reporting Services (SSRS).", + "Release a lease for the setup of SQL Server Reporting Services (SSRS).", + "Reconfigures old primary after a promote replica operation. Effect of a promote operation to the old primary is executed in this operation, asynchronously from the promote replica operation executed to the replica." ], "type": "string" }, @@ -4846,6 +5076,22 @@ }, "type": "object" }, + "ReplicationCluster": { + "description": "Primary-DR replica pair", + "id": "ReplicationCluster", + "properties": { + "drReplica": { + "description": "Output only. read-only field that indicates if the replica is a dr_replica; not set for a primary.", + "readOnly": true, + "type": "boolean" + }, + "failoverDrReplicaName": { + "description": "Optional. If the instance is a primary instance, then this field identifies the disaster recovery (DR) replica. A DR replica is an optional configuration for Enterprise Plus edition instances. If the instance is a read replica, then the field is not set. Users can set this field to set a designated DR replica for a primary. Removing this field removes the DR replica.", + "type": "string" + } + }, + "type": "object" + }, "Reschedule": { "id": "Reschedule", "properties": { @@ -5062,6 +5308,10 @@ ], "type": "string" }, + "enableGoogleMlIntegration": { + "description": "Optional. When this parameter is set to true, Cloud SQL instances can connect to Vertex AI to pass requests for real-time predictions and insights to the AI. The default value is false. This applies only to Cloud SQL for PostgreSQL instances.", + "type": "boolean" + }, "insightsConfig": { "$ref": "InsightsConfig", "description": "Insights configuration, for now relevant only for Postgres." @@ -5279,6 +5529,17 @@ }, "type": "object" }, + "SqlInstancesAcquireSsrsLeaseResponse": { + "description": "Response for the acquire SSRS lease request.", + "id": "SqlInstancesAcquireSsrsLeaseResponse", + "properties": { + "operationId": { + "description": "The unique identifier for this operation.", + "type": "string" + } + }, + "type": "object" + }, "SqlInstancesGetDiskShrinkConfigResponse": { "description": "Instance get disk shrink config response.", "id": "SqlInstancesGetDiskShrinkConfigResponse", @@ -5315,6 +5576,17 @@ }, "type": "object" }, + "SqlInstancesReleaseSsrsLeaseResponse": { + "description": "Response for the release SSRS lease request.", + "id": "SqlInstancesReleaseSsrsLeaseResponse", + "properties": { + "operationId": { + "description": "The unique identifier for this operation.", + "type": "string" + } + }, + "type": "object" + }, "SqlInstancesRescheduleMaintenanceRequestBody": { "description": "Reschedule options for maintenance windows.", "id": "SqlInstancesRescheduleMaintenanceRequestBody", @@ -5336,6 +5608,20 @@ "description": "Instance start external sync request.", "id": "SqlInstancesStartExternalSyncRequest", "properties": { + "migrationType": { + "description": "Optional. MigrationType decides if the migration is a physical file based migration or logical migration.", + "enum": [ + "MIGRATION_TYPE_UNSPECIFIED", + "LOGICAL", + "PHYSICAL" + ], + "enumDescriptions": [ + "Default value is logical migration", + "Logical Migrations", + "Physical file based Migrations" + ], + "type": "string" + }, "mysqlSyncConfig": { "$ref": "MySqlSyncConfig", "description": "MySQL-specific settings for start external sync." @@ -5381,6 +5667,20 @@ "description": "Instance verify external sync settings request.", "id": "SqlInstancesVerifyExternalSyncSettingsRequest", "properties": { + "migrationType": { + "description": "Optional. MigrationType decides if the migration is a physical file based migration or logical migration", + "enum": [ + "MIGRATION_TYPE_UNSPECIFIED", + "LOGICAL", + "PHYSICAL" + ], + "enumDescriptions": [ + "Default value is logical migration", + "Logical Migrations", + "Physical file based Migrations" + ], + "type": "string" + }, "mysqlSyncConfig": { "$ref": "MySqlSyncConfig", "description": "Optional. MySQL-specific settings for start external sync." @@ -5399,6 +5699,22 @@ ], "type": "string" }, + "syncParallelLevel": { + "description": "Optional. Parallel level for initial data sync. Currently only applicable for PostgreSQL.", + "enum": [ + "EXTERNAL_SYNC_PARALLEL_LEVEL_UNSPECIFIED", + "MIN", + "OPTIMAL", + "MAX" + ], + "enumDescriptions": [ + "Unknown sync parallel level. Will be defaulted to OPTIMAL.", + "Minimal parallel level.", + "Optimal parallel level.", + "Maximum parallel level." + ], + "type": "string" + }, "verifyConnectionOnly": { "description": "Flag to enable verifying connection only", "type": "boolean" diff --git a/etc/api/sqladmin/v1beta4/sqladmin-api.json b/etc/api/sqladmin/v1beta4/sqladmin-api.json index d577d54851..a800e8053a 100644 --- a/etc/api/sqladmin/v1beta4/sqladmin-api.json +++ b/etc/api/sqladmin/v1beta4/sqladmin-api.json @@ -608,6 +608,41 @@ }, "instances": { "methods": { + "acquireSsrsLease": { + "description": "Acquire a lease for the setup of SQL Server Reporting Services (SSRS).", + "flatPath": "sql/v1beta4/projects/{project}/instances/{instance}/acquireSsrsLease", + "httpMethod": "POST", + "id": "sql.instances.acquireSsrsLease", + "parameterOrder": [ + "project", + "instance" + ], + "parameters": { + "instance": { + "description": "Required. Cloud SQL instance ID. This doesn't include the project ID. It's composed of lowercase letters, numbers, and hyphens, and it must start with a letter. The total length must be 98 characters or less (Example: instance-id).", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Required. ID of the project that contains the instance (Example: project-id).", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "sql/v1beta4/projects/{project}/instances/{instance}/acquireSsrsLease", + "request": { + "$ref": "InstancesAcquireSsrsLeaseRequest" + }, + "response": { + "$ref": "SqlInstancesAcquireSsrsLeaseResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, "addServerCa": { "description": "Add a new trusted Certificate Authority (CA) version for the specified instance. Required to prepare for a certificate rotation. If a CA version was previously added but never used in a certificate rotation, this operation replaces that version. There cannot be more than one CA version waiting to be rotated in.", "flatPath": "sql/v1beta4/projects/{project}/instances/{instance}/addServerCa", @@ -1120,6 +1155,38 @@ "https://www.googleapis.com/auth/sqlservice.admin" ] }, + "releaseSsrsLease": { + "description": "Release a lease for the setup of SQL Server Reporting Services (SSRS).", + "flatPath": "sql/v1beta4/projects/{project}/instances/{instance}/releaseSsrsLease", + "httpMethod": "POST", + "id": "sql.instances.releaseSsrsLease", + "parameterOrder": [ + "project", + "instance" + ], + "parameters": { + "instance": { + "description": "Required. The Cloud SQL instance ID. This doesn't include the project ID. It's composed of lowercase letters, numbers, and hyphens, and it must start with a letter. The total length must be 98 characters or less (Example: instance-id).", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Required. The ID of the project that contains the instance (Example: project-id).", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "sql/v1beta4/projects/{project}/instances/{instance}/releaseSsrsLease", + "response": { + "$ref": "SqlInstancesReleaseSsrsLeaseResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sqlservice.admin" + ] + }, "resetSslConfig": { "description": "Deletes all client certificates and generates a new server SSL certificate for the instance.", "flatPath": "sql/v1beta4/projects/{project}/instances/{instance}/resetSslConfig", @@ -2200,7 +2267,7 @@ } } }, - "revision": "20240219", + "revision": "20240412", "rootUrl": "https://sqladmin.googleapis.com/", "schemas": { "AclEntry": { @@ -2227,6 +2294,30 @@ }, "type": "object" }, + "AcquireSsrsLeaseContext": { + "description": "Acquire SSRS lease context.", + "id": "AcquireSsrsLeaseContext", + "properties": { + "duration": { + "description": "Lease duration needed for the SSRS setup.", + "format": "google-duration", + "type": "string" + }, + "reportDatabase": { + "description": "The report database to be used for the SSRS setup.", + "type": "string" + }, + "serviceLogin": { + "description": "The username to be used as the service login to connect to the report database for SSRS setup.", + "type": "string" + }, + "setupLogin": { + "description": "The username to be used as the setup login to connect to the database server for SSRS setup.", + "type": "string" + } + }, + "type": "object" + }, "AdvancedMachineFeatures": { "description": "Specifies options for controlling advanced machine features.", "id": "AdvancedMachineFeatures", @@ -2312,6 +2403,25 @@ "description": "The number of days of transaction logs we retain for point in time restore, from 1-7.", "format": "int32", "type": "integer" + }, + "transactionalLogStorageState": { + "description": "Output only. This value contains the storage location of transactional logs for the database for point-in-time recovery.", + "enum": [ + "TRANSACTIONAL_LOG_STORAGE_STATE_UNSPECIFIED", + "DISK", + "SWITCHING_TO_CLOUD_STORAGE", + "SWITCHED_TO_CLOUD_STORAGE", + "CLOUD_STORAGE" + ], + "enumDescriptions": [ + "Unspecified.", + "The transaction logs for the instance are stored on a data disk.", + "The transaction logs for the instance are switching from being stored on a data disk to being stored in Cloud Storage.", + "The transaction logs for the instance are now stored in Cloud Storage. Previously, they were stored on a data disk.", + "The transaction logs for the instance are stored in Cloud Storage." + ], + "readOnly": true, + "type": "string" } }, "type": "object" @@ -2650,6 +2760,10 @@ "MYSQL_8_0_34", "MYSQL_8_0_35", "MYSQL_8_0_36", + "MYSQL_8_0_37", + "MYSQL_8_0_38", + "MYSQL_8_0_39", + "MYSQL_8_0_40", "SQLSERVER_2019_STANDARD", "SQLSERVER_2019_ENTERPRISE", "SQLSERVER_2019_EXPRESS", @@ -2696,6 +2810,10 @@ false, false, false, + false, + false, + false, + false, false ], "enumDescriptions": [ @@ -2728,6 +2846,10 @@ "The database major version is MySQL 8.0 and the minor version is 34.", "The database major version is MySQL 8.0 and the minor version is 35.", "The database major version is MySQL 8.0 and the minor version is 36.", + "The database major version is MySQL 8.0 and the minor version is 37.", + "The database major version is MySQL 8.0 and the minor version is 38.", + "The database major version is MySQL 8.0 and the minor version is 39.", + "The database major version is MySQL 8.0 and the minor version is 40.", "The database version is SQL Server 2019 Standard.", "The database version is SQL Server 2019 Enterprise.", "The database version is SQL Server 2019 Express.", @@ -2924,6 +3046,10 @@ "MYSQL_8_0_34", "MYSQL_8_0_35", "MYSQL_8_0_36", + "MYSQL_8_0_37", + "MYSQL_8_0_38", + "MYSQL_8_0_39", + "MYSQL_8_0_40", "SQLSERVER_2019_STANDARD", "SQLSERVER_2019_ENTERPRISE", "SQLSERVER_2019_EXPRESS", @@ -2970,6 +3096,10 @@ false, false, false, + false, + false, + false, + false, false ], "enumDescriptions": [ @@ -3002,6 +3132,10 @@ "The database major version is MySQL 8.0 and the minor version is 34.", "The database major version is MySQL 8.0 and the minor version is 35.", "The database major version is MySQL 8.0 and the minor version is 36.", + "The database major version is MySQL 8.0 and the minor version is 37.", + "The database major version is MySQL 8.0 and the minor version is 38.", + "The database major version is MySQL 8.0 and the minor version is 39.", + "The database major version is MySQL 8.0 and the minor version is 40.", "The database version is SQL Server 2019 Standard.", "The database version is SQL Server 2019 Enterprise.", "The database version is SQL Server 2019 Express.", @@ -3048,6 +3182,10 @@ "description": "The Compute Engine zone that the instance is currently serving from. This value could be different from the zone that was specified when the instance was created if the instance has failed over to its secondary zone. WARNING: Changing this might restart the instance.", "type": "string" }, + "geminiConfig": { + "$ref": "GeminiInstanceConfig", + "description": "Gemini instance configuration." + }, "instanceType": { "description": "The instance type.", "enum": [ @@ -3136,6 +3274,10 @@ }, "type": "array" }, + "replicationCluster": { + "$ref": "ReplicationCluster", + "description": "The pair of a primary instance and disaster recovery (DR) replica. A DR replica is a cross-region replica that you designate for failover in the event that the primary instance has regional failure." + }, "rootPassword": { "description": "Initial root password. Use only on creation. You must set root passwords before you can connect to PostgreSQL instances.", "type": "string" @@ -3619,6 +3761,10 @@ "MYSQL_8_0_34", "MYSQL_8_0_35", "MYSQL_8_0_36", + "MYSQL_8_0_37", + "MYSQL_8_0_38", + "MYSQL_8_0_39", + "MYSQL_8_0_40", "SQLSERVER_2019_STANDARD", "SQLSERVER_2019_ENTERPRISE", "SQLSERVER_2019_EXPRESS", @@ -3665,6 +3811,10 @@ false, false, false, + false, + false, + false, + false, false ], "enumDescriptions": [ @@ -3697,6 +3847,10 @@ "The database major version is MySQL 8.0 and the minor version is 34.", "The database major version is MySQL 8.0 and the minor version is 35.", "The database major version is MySQL 8.0 and the minor version is 36.", + "The database major version is MySQL 8.0 and the minor version is 37.", + "The database major version is MySQL 8.0 and the minor version is 38.", + "The database major version is MySQL 8.0 and the minor version is 39.", + "The database major version is MySQL 8.0 and the minor version is 40.", "The database version is SQL Server 2019 Standard.", "The database version is SQL Server 2019 Enterprise.", "The database version is SQL Server 2019 Express.", @@ -3781,6 +3935,43 @@ }, "type": "object" }, + "GeminiInstanceConfig": { + "description": "Gemini configuration.", + "id": "GeminiInstanceConfig", + "properties": { + "activeQueryEnabled": { + "description": "Output only. Whether active query is enabled.", + "readOnly": true, + "type": "boolean" + }, + "entitled": { + "description": "Output only. Whether Gemini is enabled.", + "readOnly": true, + "type": "boolean" + }, + "flagRecommenderEnabled": { + "description": "Output only. Whether flag recommender is enabled.", + "readOnly": true, + "type": "boolean" + }, + "googleVacuumMgmtEnabled": { + "description": "Output only. Whether vacuum management is enabled.", + "readOnly": true, + "type": "boolean" + }, + "indexAdvisorEnabled": { + "description": "Output only. Whether index advisor is enabled.", + "readOnly": true, + "type": "boolean" + }, + "oomSessionCancelEnabled": { + "description": "Output only. Whether oom session cancel is enabled.", + "readOnly": true, + "type": "boolean" + } + }, + "type": "object" + }, "GenerateEphemeralCertRequest": { "description": "Ephemeral certificate creation request.", "id": "GenerateEphemeralCertRequest", @@ -3942,6 +4133,21 @@ "description": "This is always `sql#importContext`.", "type": "string" }, + "sqlImportOptions": { + "description": "Optional. Options for importing data from SQL statements.", + "properties": { + "parallel": { + "description": "Optional. Whether or not the import should be parallel.", + "type": "boolean" + }, + "threads": { + "description": "Optional. The number of threads to use for parallel import.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "uri": { "description": "Path to the import file in Cloud Storage, in the form `gs://bucketName/fileName`. Compressed gzip files (.gz) are supported when `fileType` is `SQL`. The instance must have write permissions to the bucket and read access to the file.", "type": "string" @@ -3997,6 +4203,17 @@ }, "type": "object" }, + "InstancesAcquireSsrsLeaseRequest": { + "description": "Request to acquire an SSRS lease for an instance.", + "id": "InstancesAcquireSsrsLeaseRequest", + "properties": { + "acquireSsrsLeaseContext": { + "$ref": "AcquireSsrsLeaseContext", + "description": "Contains details about the acquire SSRS lease operation." + } + }, + "type": "object" + }, "InstancesCloneRequest": { "description": "Database instance clone request.", "id": "InstancesCloneRequest", @@ -4189,11 +4406,11 @@ "description": "PSC settings for this instance." }, "requireSsl": { - "description": "Use `ssl_mode` instead for MySQL and PostgreSQL. SQL Server uses this flag. Whether SSL/TLS connections over IP are enforced. If set to false, then allow both non-SSL/non-TLS and SSL/TLS connections. For SSL/TLS connections, the client certificate won't be verified. If set to true, then only allow connections encrypted with SSL/TLS and with valid client certificates. If you want to enforce SSL/TLS without enforcing the requirement for valid client certificates, then use the `ssl_mode` flag instead of the legacy `require_ssl` flag.", + "description": "Use `ssl_mode` instead. Whether SSL/TLS connections over IP are enforced. If set to false, then allow both non-SSL/non-TLS and SSL/TLS connections. For SSL/TLS connections, the client certificate won't be verified. If set to true, then only allow connections encrypted with SSL/TLS and with valid client certificates. If you want to enforce SSL/TLS without enforcing the requirement for valid client certificates, then use the `ssl_mode` flag instead of the legacy `require_ssl` flag.", "type": "boolean" }, "sslMode": { - "description": "Specify how SSL/TLS is enforced in database connections. MySQL and PostgreSQL use the `ssl_mode` flag. If you must use the `require_ssl` flag for backward compatibility, then only the following value pairs are valid: * `ssl_mode=ALLOW_UNENCRYPTED_AND_ENCRYPTED` and `require_ssl=false` * `ssl_mode=ENCRYPTED_ONLY` and `require_ssl=false` * `ssl_mode=TRUSTED_CLIENT_CERTIFICATE_REQUIRED` and `require_ssl=true` The value of `ssl_mode` gets priority over the value of `require_ssl`. For example, for the pair `ssl_mode=ENCRYPTED_ONLY` and `require_ssl=false`, the `ssl_mode=ENCRYPTED_ONLY` means only accept SSL connections, while the `require_ssl=false` means accept both non-SSL and SSL connections. MySQL and PostgreSQL databases respect `ssl_mode` in this case and accept only SSL connections. SQL Server uses the `require_ssl` flag. You can set the value for this flag to `true` or `false`.", + "description": "Specify how SSL/TLS is enforced in database connections. If you must use the `require_ssl` flag for backward compatibility, then only the following value pairs are valid: For PostgreSQL and MySQL: * `ssl_mode=ALLOW_UNENCRYPTED_AND_ENCRYPTED` and `require_ssl=false` * `ssl_mode=ENCRYPTED_ONLY` and `require_ssl=false` * `ssl_mode=TRUSTED_CLIENT_CERTIFICATE_REQUIRED` and `require_ssl=true` For SQL Server: * `ssl_mode=ALLOW_UNENCRYPTED_AND_ENCRYPTED` and `require_ssl=false` * `ssl_mode=ENCRYPTED_ONLY` and `require_ssl=true` The value of `ssl_mode` gets priority over the value of `require_ssl`. For example, for the pair `ssl_mode=ENCRYPTED_ONLY` and `require_ssl=false`, the `ssl_mode=ENCRYPTED_ONLY` means only accept SSL connections, while the `require_ssl=false` means accept both non-SSL and SSL connections. MySQL and PostgreSQL databases respect `ssl_mode` in this case and accept only SSL connections.", "enum": [ "SSL_MODE_UNSPECIFIED", "ALLOW_UNENCRYPTED_AND_ENCRYPTED", @@ -4204,7 +4421,7 @@ "The SSL mode is unknown.", "Allow non-SSL/non-TLS and SSL/TLS connections. For SSL/TLS connections, the client certificate won't be verified. When this value is used, the legacy `require_ssl` flag must be false or cleared to avoid the conflict between values of two flags.", "Only allow connections encrypted with SSL/TLS. When this value is used, the legacy `require_ssl` flag must be false or cleared to avoid the conflict between values of two flags.", - "Only allow connections encrypted with SSL/TLS and with valid client certificates. When this value is used, the legacy `require_ssl` flag must be true or cleared to avoid the conflict between values of two flags. PostgreSQL clients or users that connect using IAM database authentication must use either the [Cloud SQL Auth Proxy](https://cloud.google.com/sql/docs/postgres/connect-auth-proxy) or [Cloud SQL Connectors](https://cloud.google.com/sql/docs/postgres/connect-connectors) to enforce client identity verification." + "Only allow connections encrypted with SSL/TLS and with valid client certificates. When this value is used, the legacy `require_ssl` flag must be true or cleared to avoid the conflict between values of two flags. PostgreSQL clients or users that connect using IAM database authentication must use either the [Cloud SQL Auth Proxy](https://cloud.google.com/sql/docs/postgres/connect-auth-proxy) or [Cloud SQL Connectors](https://cloud.google.com/sql/docs/postgres/connect-connectors) to enforce client identity verification. This value is not applicable to SQL Server." ], "type": "string" } @@ -4420,6 +4637,10 @@ "description": "An Operation resource. For successful operations that return an Operation resource, only the fields relevant to the operation are populated in the resource.", "id": "Operation", "properties": { + "acquireSsrsLeaseContext": { + "$ref": "AcquireSsrsLeaseContext", + "description": "The context for acquire SSRS lease operation, if applicable." + }, "apiWarning": { "$ref": "ApiWarning", "description": "An Admin API warning message." @@ -4499,7 +4720,10 @@ "LOG_CLEANUP", "AUTO_RESTART", "REENCRYPT", - "SWITCHOVER" + "SWITCHOVER", + "ACQUIRE_SSRS_LEASE", + "RELEASE_SSRS_LEASE", + "RECONFIGURE_OLD_PRIMARY" ], "enumDeprecated": [ false, @@ -4540,6 +4764,9 @@ false, false, false, + false, + false, + false, false ], "enumDescriptions": [ @@ -4581,7 +4808,10 @@ "Recovers logs from an instance's old data disk.", "Performs auto-restart of an HA-enabled Cloud SQL database for auto recovery.", "Re-encrypts CMEK instances with latest key version.", - "Switches over to replica instance from primary." + "Switches over to replica instance from primary.", + "Acquire a lease for the setup of SQL Server Reporting Services (SSRS).", + "Release a lease for the setup of SQL Server Reporting Services (SSRS).", + "Reconfigures old primary after a promote replica operation. Effect of a promote operation to the old primary is executed in this operation, asynchronously from the promote replica operation executed to the replica." ], "type": "string" }, @@ -4847,6 +5077,22 @@ }, "type": "object" }, + "ReplicationCluster": { + "description": "Primary-DR replica pair", + "id": "ReplicationCluster", + "properties": { + "drReplica": { + "description": "Output only. read-only field that indicates if the replica is a dr_replica; not set for a primary.", + "readOnly": true, + "type": "boolean" + }, + "failoverDrReplicaName": { + "description": "Optional. If the instance is a primary instance, then this field identifies the disaster recovery (DR) replica. A DR replica is an optional configuration for Enterprise Plus edition instances. If the instance is a read replica, then the field is not set. Users can set this field to set a designated DR replica for a primary. Removing this field removes the DR replica.", + "type": "string" + } + }, + "type": "object" + }, "Reschedule": { "id": "Reschedule", "properties": { @@ -5063,6 +5309,10 @@ ], "type": "string" }, + "enableGoogleMlIntegration": { + "description": "Optional. When this parameter is set to true, Cloud SQL instances can connect to Vertex AI to pass requests for real-time predictions and insights to the AI. The default value is false. This applies only to Cloud SQL for PostgreSQL instances.", + "type": "boolean" + }, "insightsConfig": { "$ref": "InsightsConfig", "description": "Insights configuration, for now relevant only for Postgres." @@ -5280,6 +5530,17 @@ }, "type": "object" }, + "SqlInstancesAcquireSsrsLeaseResponse": { + "description": "Acquire SSRS lease response.", + "id": "SqlInstancesAcquireSsrsLeaseResponse", + "properties": { + "operationId": { + "description": "The unique identifier for this operation.", + "type": "string" + } + }, + "type": "object" + }, "SqlInstancesGetDiskShrinkConfigResponse": { "description": "Instance get disk shrink config response.", "id": "SqlInstancesGetDiskShrinkConfigResponse", @@ -5316,6 +5577,17 @@ }, "type": "object" }, + "SqlInstancesReleaseSsrsLeaseResponse": { + "description": "The response for the release of the SSRS lease.", + "id": "SqlInstancesReleaseSsrsLeaseResponse", + "properties": { + "operationId": { + "description": "The operation ID.", + "type": "string" + } + }, + "type": "object" + }, "SqlInstancesRescheduleMaintenanceRequestBody": { "description": "Reschedule options for maintenance windows.", "id": "SqlInstancesRescheduleMaintenanceRequestBody", @@ -5336,6 +5608,20 @@ "SqlInstancesStartExternalSyncRequest": { "id": "SqlInstancesStartExternalSyncRequest", "properties": { + "migrationType": { + "description": "Optional. MigrationType decides if the migration is a physical file based migration or logical migration.", + "enum": [ + "MIGRATION_TYPE_UNSPECIFIED", + "LOGICAL", + "PHYSICAL" + ], + "enumDescriptions": [ + "If no migration type is specified it will be defaulted to LOGICAL.", + "Logical Migrations", + "Physical file based Migrations" + ], + "type": "string" + }, "mysqlSyncConfig": { "$ref": "MySqlSyncConfig", "description": "MySQL-specific settings for start external sync." @@ -5380,6 +5666,20 @@ "SqlInstancesVerifyExternalSyncSettingsRequest": { "id": "SqlInstancesVerifyExternalSyncSettingsRequest", "properties": { + "migrationType": { + "description": "Optional. MigrationType field decides if the migration is a physical file based migration or logical migration", + "enum": [ + "MIGRATION_TYPE_UNSPECIFIED", + "LOGICAL", + "PHYSICAL" + ], + "enumDescriptions": [ + "If no migration type is specified it will be defaulted to LOGICAL.", + "Logical Migrations", + "Physical file based Migrations" + ], + "type": "string" + }, "mysqlSyncConfig": { "$ref": "MySqlSyncConfig", "description": "Optional. MySQL-specific settings for start external sync." @@ -5398,6 +5698,22 @@ ], "type": "string" }, + "syncParallelLevel": { + "description": "Optional. Parallel level for initial data sync. Currently only applicable for PostgreSQL.", + "enum": [ + "EXTERNAL_SYNC_PARALLEL_LEVEL_UNSPECIFIED", + "MIN", + "OPTIMAL", + "MAX" + ], + "enumDescriptions": [ + "Unknown sync parallel level. Will be defaulted to OPTIMAL.", + "Minimal parallel level.", + "Optimal parallel level.", + "Maximum parallel level." + ], + "type": "string" + }, "verifyConnectionOnly": { "description": "Flag to enable verifying connection only", "type": "boolean" diff --git a/etc/api/storage/v1/storage-api.json b/etc/api/storage/v1/storage-api.json index 0a8757faf7..9e73863e1d 100644 --- a/etc/api/storage/v1/storage-api.json +++ b/etc/api/storage/v1/storage-api.json @@ -33,7 +33,7 @@ "location": "me-central2" } ], - "etag": "\"38353632383736323634343838333436313237\"", + "etag": "\"3130383430373235353832353836303037363837\"", "icons": { "x16": "https://www.google.com/images/icons/product/cloud_storage-16.png", "x32": "https://www.google.com/images/icons/product/cloud_storage-32.png" @@ -1632,6 +1632,11 @@ "managedFolder" ], "parameters": { + "allowNonEmpty": { + "description": "Allows the deletion of a managed folder even if it is not empty. A managed folder is empty if there are no objects or managed folders that it applies to. Callers must have storage.managedFolders.setIamPolicy permission.", + "location": "query", + "type": "boolean" + }, "bucket": { "description": "Name of the bucket containing the managed folder.", "location": "path", @@ -3141,7 +3146,8 @@ "id": "storage.objects.restore", "parameterOrder": [ "bucket", - "object" + "object", + "generation" ], "parameters": { "bucket": { @@ -3212,9 +3218,6 @@ } }, "path": "b/{bucket}/o/{object}/restore", - "request": { - "$ref": "Object" - }, "response": { "$ref": "Object" }, @@ -4040,7 +4043,7 @@ } } }, - "revision": "20240229", + "revision": "20240415", "rootUrl": "https://storage.googleapis.com/", "schemas": { "AnywhereCache": { diff --git a/etc/api/storagetransfer/v1/storagetransfer-api.json b/etc/api/storagetransfer/v1/storagetransfer-api.json index ade214a73b..03943e9421 100644 --- a/etc/api/storagetransfer/v1/storagetransfer-api.json +++ b/etc/api/storagetransfer/v1/storagetransfer-api.json @@ -632,11 +632,11 @@ } } }, - "revision": "20240224", + "revision": "20240412", "rootUrl": "https://storagetransfer.googleapis.com/", "schemas": { "AgentPool": { - "description": "Represents an On-Premises Agent pool.", + "description": "Represents an agent pool.", "id": "AgentPool", "properties": { "bandwidthLimit": { @@ -661,7 +661,7 @@ ], "enumDescriptions": [ "Default value. This value is unused.", - "This is an initialization state. During this stage, the resources such as Pub/Sub topics are allocated for the AgentPool.", + "This is an initialization state. During this stage, resources are allocated for the AgentPool.", "Determines that the AgentPool is created for use. At this state, Agents can join the AgentPool and participate in the transfer jobs in that pool.", "Determines that the AgentPool deletion has been initiated, and all the resources are scheduled to be cleaned up and freed." ], @@ -726,11 +726,11 @@ "type": "string" }, "cloudfrontDomain": { - "description": "Optional. Cloudfront domain name pointing to this bucket (as origin), to use when fetching. Format: `https://{id}.cloudfront.net` or any valid custom domain `https://...`", + "description": "Optional. The CloudFront distribution domain name pointing to this bucket, to use when fetching. See [Transfer from S3 via CloudFront](https://cloud.google.com/storage-transfer/docs/s3-cloudfront) for more information. Format: `https://{id}.cloudfront.net` or any valid custom domain. Must begin with `https://`.", "type": "string" }, "credentialsSecret": { - "description": "Optional. The Resource name of a secret in Secret Manager. AWS credentials must be stored in Secret Manager in JSON format: { \"access_key_id\": \"ACCESS_KEY_ID\", \"secret_access_key\": \"SECRET_ACCESS_KEY\" } GoogleServiceAccount must be granted `roles/secretmanager.secretAccessor` for the resource. See [Configure access to a source: Amazon S3] (https://cloud.google.com/storage-transfer/docs/source-amazon-s3#secret_manager) for more information. If `credentials_secret` is specified, do not specify role_arn or aws_access_key. This feature is in [preview](https://cloud.google.com/terms/service-terms#1). Format: `projects/{project_number}/secrets/{secret_name}`", + "description": "Optional. The Resource name of a secret in Secret Manager. AWS credentials must be stored in Secret Manager in JSON format: { \"access_key_id\": \"ACCESS_KEY_ID\", \"secret_access_key\": \"SECRET_ACCESS_KEY\" } GoogleServiceAccount must be granted `roles/secretmanager.secretAccessor` for the resource. See [Configure access to a source: Amazon S3] (https://cloud.google.com/storage-transfer/docs/source-amazon-s3#secret_manager) for more information. If `credentials_secret` is specified, do not specify role_arn or aws_access_key. Format: `projects/{project_number}/secrets/{secret_name}`", "type": "string" }, "path": { @@ -757,7 +757,7 @@ "type": "string" }, "credentialsSecret": { - "description": "Optional. The Resource name of a secret in Secret Manager. The Azure SAS token must be stored in Secret Manager in JSON format: { \"sas_token\" : \"SAS_TOKEN\" } GoogleServiceAccount must be granted `roles/secretmanager.secretAccessor` for the resource. See [Configure access to a source: Microsoft Azure Blob Storage] (https://cloud.google.com/storage-transfer/docs/source-microsoft-azure#secret_manager) for more information. If `credentials_secret` is specified, do not specify azure_credentials. This feature is in [preview](https://cloud.google.com/terms/service-terms#1). Format: `projects/{project_number}/secrets/{secret_name}`", + "description": "Optional. The Resource name of a secret in Secret Manager. The Azure SAS token must be stored in Secret Manager in JSON format: { \"sas_token\" : \"SAS_TOKEN\" } GoogleServiceAccount must be granted `roles/secretmanager.secretAccessor` for the resource. See [Configure access to a source: Microsoft Azure Blob Storage] (https://cloud.google.com/storage-transfer/docs/source-microsoft-azure#secret_manager) for more information. If `credentials_secret` is specified, do not specify azure_credentials. Format: `projects/{project_number}/secrets/{secret_name}`", "type": "string" }, "path": { @@ -937,7 +937,7 @@ "type": "string" }, "managedFolderTransferEnabled": { - "description": "Transfer managed folders is in public preview. This option is only applicable to the Cloud Storage source bucket. If set to true: - The source managed folder will be transferred to the destination bucket - The destination managed folder will always be overwritten, other OVERWRITE options will not be supported", + "description": "Preview. Enables the transfer of managed folders between Cloud Storage buckets. Set this option on the gcs_data_source. If set to true: - Managed folders in the source bucket are transferred to the destination bucket. - Managed folders in the destination bucket are overwritten. Other OVERWRITE options are not supported. See [Transfer Cloud Storage managed folders](/storage-transfer/docs/managed-folders).", "type": "boolean" }, "path": { @@ -1196,7 +1196,7 @@ "type": "string" }, "timeCreated": { - "description": "Specifies how each object's `timeCreated` metadata is preserved for transfers. If unspecified, the default behavior is the same as TIME_CREATED_SKIP.", + "description": "Specifies how each object's `timeCreated` metadata is preserved for transfers. If unspecified, the default behavior is the same as TIME_CREATED_SKIP. This behavior is supported for transfers to GCS buckets from GCS, S3, Azure, S3 Compatible, and Azure sources.", "enum": [ "TIME_CREATED_UNSPECIFIED", "TIME_CREATED_SKIP", @@ -1363,6 +1363,29 @@ }, "type": "object" }, + "ReplicationSpec": { + "description": "Specifies the configuration for running a replication job.", + "id": "ReplicationSpec", + "properties": { + "gcsDataSink": { + "$ref": "GcsData", + "description": "Specifies cloud Storage data sink." + }, + "gcsDataSource": { + "$ref": "GcsData", + "description": "Specifies cloud Storage data source." + }, + "objectConditions": { + "$ref": "ObjectConditions", + "description": "Specifies the object conditions to only include objects that satisfy these conditions in the set of data source objects. Object conditions based on objects' \"last modification time\" do not exclude objects in a data sink." + }, + "transferOptions": { + "$ref": "TransferOptions", + "description": "Specifies the actions to be performed on the object during replication. Delete options are not supported for replication and when specified, the request fails with an INVALID_ARGUMENT error." + } + }, + "type": "object" + }, "ResumeTransferOperationRequest": { "description": "Request passed to ResumeTransferOperation.", "id": "ResumeTransferOperationRequest", @@ -1681,12 +1704,16 @@ }, "notificationConfig": { "$ref": "NotificationConfig", - "description": "Notification configuration. This is not supported for transfers involving PosixFilesystem." + "description": "Notification configuration." }, "projectId": { "description": "The ID of the Google Cloud project that owns the job.", "type": "string" }, + "replicationSpec": { + "$ref": "ReplicationSpec", + "description": "Replication specification." + }, "schedule": { "$ref": "Schedule", "description": "Specifies schedule for the transfer job. This is an optional field. When the field is not set, the job never executes a transfer, unless you invoke RunTransferJob or update the job to have a non-empty schedule." diff --git a/etc/api/streetviewpublish/v1/streetviewpublish-api.json b/etc/api/streetviewpublish/v1/streetviewpublish-api.json index 2ecd94b89a..2ffa9ce061 100644 --- a/etc/api/streetviewpublish/v1/streetviewpublish-api.json +++ b/etc/api/streetviewpublish/v1/streetviewpublish-api.json @@ -534,7 +534,7 @@ } } }, - "revision": "20240303", + "revision": "20240418", "rootUrl": "https://streetviewpublish.googleapis.com/", "schemas": { "BatchDeletePhotosRequest": { diff --git a/etc/api/sts/v1/sts-api.json b/etc/api/sts/v1/sts-api.json index 43e4cad9c2..987d3ca357 100644 --- a/etc/api/sts/v1/sts-api.json +++ b/etc/api/sts/v1/sts-api.json @@ -98,36 +98,6 @@ "resources": { "v1": { "methods": { - "introspect": { - "description": "Gets information about a Google OAuth 2.0 access token issued by the Google Cloud [Security Token Service API](https://cloud.google.com/iam/docs/reference/sts/rest).", - "flatPath": "v1/introspect", - "httpMethod": "POST", - "id": "sts.introspect", - "parameterOrder": [], - "parameters": {}, - "path": "v1/introspect", - "request": { - "$ref": "GoogleIdentityStsV1IntrospectTokenRequest" - }, - "response": { - "$ref": "GoogleIdentityStsV1IntrospectTokenResponse" - } - }, - "oauthtoken": { - "description": "Exchanges a credential that represents the resource owner's authorization for a Google-generated [OAuth 2.0 access token] (https://www.rfc-editor.org/rfc/rfc6749#section-5) or [refreshes an accesstoken] (https://www.rfc-editor.org/rfc/rfc6749#section-6) following [the OAuth 2.0 authorization framework] (https://tools.ietf.org/html/rfc8693) The credential can be one of the following: - An authorization code issued by the workforce identity federation authorization endpoint - A [refresh token](https://www.rfc-editor.org/rfc/rfc6749#section-10.4) issued by this endpoint This endpoint is only meant to be called by the Google Cloud CLI. Also note that this API only accepts the authorization code issued for workforce pools.", - "flatPath": "v1/oauthtoken", - "httpMethod": "POST", - "id": "sts.oauthtoken", - "parameterOrder": [], - "parameters": {}, - "path": "v1/oauthtoken", - "request": { - "$ref": "GoogleIdentityStsV1ExchangeOauthTokenRequest" - }, - "response": { - "$ref": "GoogleIdentityStsV1ExchangeOauthTokenResponse" - } - }, "token": { "description": "Exchanges a credential for a Google OAuth 2.0 access token. The token asserts an external identity within an identity pool, or it applies a Credential Access Boundary to a Google access token. Note that workforce pools do not support Credential Access Boundaries. When you call this method, do not send the `Authorization` HTTP header in the request. This method does not require the `Authorization` header, and using the header can cause the request to fail.", "flatPath": "v1/token", @@ -146,7 +116,7 @@ } } }, - "revision": "20240222", + "revision": "20240410", "rootUrl": "https://sts.googleapis.com/", "schemas": { "GoogleIamV1Binding": { @@ -207,73 +177,6 @@ }, "type": "object" }, - "GoogleIdentityStsV1ExchangeOauthTokenRequest": { - "description": "Request message for ExchangeOauthToken", - "id": "GoogleIdentityStsV1ExchangeOauthTokenRequest", - "properties": { - "clientId": { - "description": "Optional. The client identifier for the OAuth 2.0 client that requested the provided token. It is REQUIRED when the [client] (https://www.rfc-editor.org/rfc/rfc6749#section-1.1) is not authenticating with the authorization server, i.e. when authentication method is [client authentication] (https://www.rfc-editor.org/rfc/rfc6749#section-3.2.1).", - "type": "string" - }, - "code": { - "description": "Optional. The authorization code that was previously from workforce identity federation's `authorize` endpoint. Required if the flow is authorization code flow, i.e. if grant_type is 'authorization_code'", - "type": "string" - }, - "codeVerifier": { - "description": "Optional. The code verifier for the PKCE request, Google Cloud CLI originally generates it before the authorization request. PKCE is used to protect authorization code from interception attacks. See https://www.rfc-editor.org/rfc/rfc7636#section-1.1 and https://www.rfc-editor.org/rfc/rfc7636#section-3. It is required when the flow is authorization code flow, i.e. if grant_type is 'authorization_code'", - "type": "string" - }, - "grantType": { - "description": "Required. The grant types are as follows: - 'authorization_code' : an authorization code flow, i.e. exchange of authorization code for the Oauth access token - 'refresh_token' : a refresh token flow, i.e. obtain a new access token by providing the refresh token. See https://www.rfc-editor.org/rfc/rfc6749#section-6", - "type": "string" - }, - "redirectUri": { - "description": "Optional. redirect_url is required when the flow is authorization code flow i.e. if grant_type is `authorization_code` See https://www.rfc-editor.org/rfc/rfc6749#section-4.1.3", - "type": "string" - }, - "refreshToken": { - "description": "Optional. The Refresh token is the credential that is used to obtain a new access token when the current access token becomes invalid or expires. Required when using refresh token flow, i.e. if `grant_type` is 'refresh_token' See https://www.rfc-editor.org/rfc/rfc6749#section-1.5 and https://www.rfc-editor.org/rfc/rfc6749#section-6", - "type": "string" - }, - "scope": { - "description": "Optional. An optional list of scopes that are requested for the token to be returned. See https://www.rfc-editor.org/rfc/rfc6749#section-3.3 Must be a list of space-delimited, case-sensitive strings. Note: Currently, the scopes in the request are not supported", - "type": "string" - } - }, - "type": "object" - }, - "GoogleIdentityStsV1ExchangeOauthTokenResponse": { - "description": "Response message for ExchangeOauthToken. see https://www.rfc-editor.org/rfc/rfc6749#section-5.1", - "id": "GoogleIdentityStsV1ExchangeOauthTokenResponse", - "properties": { - "access_token": { - "description": "An OAuth 2.0 security token, issued by Google, in response to the Oauth token exchange request for the authorization code and refresh token flows. The returned [access token](https://www.rfc-editor.org/rfc/rfc6749#section-4.1.4). Tokens can vary in size, depending, in part, on the size of mapped claims, up to a maximum of 12288 bytes (12 KB). Google reserves the right to change the token size and the maximum length at any time.", - "type": "string" - }, - "expires_in": { - "description": "The amount of time, in seconds, between the time when the access token was issued and the time when the access token will expires.", - "format": "int32", - "type": "integer" - }, - "id_token": { - "description": "Google issued ID token in response to the OAuth token exchange request for ID token flow.", - "type": "string" - }, - "refresh_token": { - "description": "A refresh token, issued by Google, in response to the OAuth token exchange request for refresh token flow", - "type": "string" - }, - "scope": { - "description": "A list of scopes associated with the returned token.", - "type": "string" - }, - "token_type": { - "description": "The type of token. Field reserved for RFC compliance. See https://www.rfc-editor.org/rfc/rfc6749#section-5.1", - "type": "string" - } - }, - "type": "object" - }, "GoogleIdentityStsV1ExchangeTokenRequest": { "description": "Request message for ExchangeToken.", "id": "GoogleIdentityStsV1ExchangeTokenRequest", @@ -299,7 +202,7 @@ "type": "string" }, "subjectToken": { - "description": "Required. The input token. This token is either an external credential issued by a workload identity pool provider, or a short-lived access token issued by Google. If the token is an OIDC JWT, it must use the JWT format defined in [RFC 7523](https://tools.ietf.org/html/rfc7523), and the `subject_token_type` must be either `urn:ietf:params:oauth:token-type:jwt` or `urn:ietf:params:oauth:token-type:id_token`. The following headers are required: - `kid`: The identifier of the signing key securing the JWT. - `alg`: The cryptographic algorithm securing the JWT. Must be `RS256` or `ES256`. The following payload fields are required. For more information, see [RFC 7523, Section 3](https://tools.ietf.org/html/rfc7523#section-3): - `iss`: The issuer of the token. The issuer must provide a discovery document at the URL `/.well-known/openid-configuration`, where `` is the value of this field. The document must be formatted according to section 4.2 of the [OIDC 1.0 Discovery specification](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderConfigurationResponse). - `iat`: The issue time, in seconds, since the Unix epoch. Must be in the past. - `exp`: The expiration time, in seconds, since the Unix epoch. Must be less than 48 hours after `iat`. Shorter expiration times are more secure. If possible, we recommend setting an expiration time less than 6 hours. - `sub`: The identity asserted in the JWT. - `aud`: For workload identity pools, this must be a value specified in the allowed audiences for the workload identity pool provider, or one of the audiences allowed by default if no audiences were specified. See https://cloud.google.com/iam/docs/reference/rest/v1/projects.locations.workloadIdentityPools.providers#oidc. For workforce pools, this must match the client ID specified in the provider configuration. See https://cloud.google.com/iam/docs/reference/rest/v1/locations.workforcePools.providers#oidc. Example header: ``` { \"alg\": \"RS256\", \"kid\": \"us-east-11\" } ``` Example payload: ``` { \"iss\": \"https://accounts.google.com\", \"iat\": 1517963104, \"exp\": 1517966704, \"aud\": \"//iam.googleapis.com/projects/1234567890123/locations/global/workloadIdentityPools/my-pool/providers/my-provider\", \"sub\": \"113475438248934895348\", \"my_claims\": { \"additional_claim\": \"value\" } } ``` If `subject_token` is for AWS, it must be a serialized `GetCallerIdentity` token. This token contains the same information as a request to the AWS [`GetCallerIdentity()`](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetCallerIdentity) method, as well as the AWS [signature](https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html) for the request information. Use Signature Version 4. Format the request as URL-encoded JSON, and set the `subject_token_type` parameter to `urn:ietf:params:aws:token-type:aws4_request`. The following parameters are required: - `url`: The URL of the AWS STS endpoint for `GetCallerIdentity()`, such as `https://sts.amazonaws.com?Action=GetCallerIdentity&Version=2011-06-15`. Regional endpoints are also supported. - `method`: The HTTP request method: `POST`. - `headers`: The HTTP request headers, which must include: - `Authorization`: The request signature. - `x-amz-date`: The time you will send the request, formatted as an [ISO8601 Basic](https://docs.aws.amazon.com/general/latest/gr/sigv4_elements.html#sigv4_elements_date) string. This value is typically set to the current time and is used to help prevent replay attacks. - `host`: The hostname of the `url` field; for example, `sts.amazonaws.com`. - `x-goog-cloud-target-resource`: The full, canonical resource name of the workload identity pool provider, with or without an `https:` prefix. To help ensure data integrity, we recommend including this header in the `SignedHeaders` field of the signed request. For example: //iam.googleapis.com/projects//locations/global/workloadIdentityPools//providers/ https://iam.googleapis.com/projects//locations/global/workloadIdentityPools//providers/ If you are using temporary security credentials provided by AWS, you must also include the header `x-amz-security-token`, with the value set to the session token. The following example shows a `GetCallerIdentity` token: ``` { \"headers\": [ {\"key\": \"x-amz-date\", \"value\": \"20200815T015049Z\"}, {\"key\": \"Authorization\", \"value\": \"AWS4-HMAC-SHA256+Credential=$credential,+SignedHeaders=host;x-amz-date;x-goog-cloud-target-resource,+Signature=$signature\"}, {\"key\": \"x-goog-cloud-target-resource\", \"value\": \"//iam.googleapis.com/projects//locations/global/workloadIdentityPools//providers/\"}, {\"key\": \"host\", \"value\": \"sts.amazonaws.com\"} . ], \"method\": \"POST\", \"url\": \"https://sts.amazonaws.com?Action=GetCallerIdentity&Version=2011-06-15\" } ``` If the token is a SAML 2.0 assertion, it must use the format defined in [the SAML 2.0 spec](https://www.oasis-open.org/committees/download.php/56776/sstc-saml-core-errata-2.0-wd-07.pdf), and the `subject_token_type` must be `urn:ietf:params:oauth:token-type:saml2`. See [Verification of external credentials](https://cloud.google.com/iam/docs/using-workload-identity-federation#verification_of_external_credentials) for details on how SAML 2.0 assertions are validated during token exchanges. You can also use a Google-issued OAuth 2.0 access token with this field to obtain an access token with new security attributes applied, such as a Credential Access Boundary. In this case, set `subject_token_type` to `urn:ietf:params:oauth:token-type:access_token`. If an access token already contains security attributes, you cannot apply additional security attributes.", + "description": "Required. The input token. This token is either an external credential issued by a workload identity pool provider, or a short-lived access token issued by Google. If the token is an OIDC JWT, it must use the JWT format defined in [RFC 7523](https://tools.ietf.org/html/rfc7523), and the `subject_token_type` must be either `urn:ietf:params:oauth:token-type:jwt` or `urn:ietf:params:oauth:token-type:id_token`. The following headers are required: - `kid`: The identifier of the signing key securing the JWT. - `alg`: The cryptographic algorithm securing the JWT. Must be `RS256` or `ES256`. The following payload fields are required. For more information, see [RFC 7523, Section 3](https://tools.ietf.org/html/rfc7523#section-3): - `iss`: The issuer of the token. The issuer must provide a discovery document at the URL `/.well-known/openid-configuration`, where `` is the value of this field. The document must be formatted according to section 4.2 of the [OIDC 1.0 Discovery specification](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderConfigurationResponse). - `iat`: The issue time, in seconds, since the Unix epoch. Must be in the past. - `exp`: The expiration time, in seconds, since the Unix epoch. Must be less than 48 hours after `iat`. Shorter expiration times are more secure. If possible, we recommend setting an expiration time less than 6 hours. - `sub`: The identity asserted in the JWT. - `aud`: For workload identity pools, this must be a value specified in the allowed audiences for the workload identity pool provider, or one of the audiences allowed by default if no audiences were specified. See https://cloud.google.com/iam/docs/reference/rest/v1/projects.locations.workloadIdentityPools.providers#oidc. For workforce pools, this must match the client ID specified in the provider configuration. See https://cloud.google.com/iam/docs/reference/rest/v1/locations.workforcePools.providers#oidc. Example header: ``` { \"alg\": \"RS256\", \"kid\": \"us-east-11\" } ``` Example payload: ``` { \"iss\": \"https://accounts.google.com\", \"iat\": 1517963104, \"exp\": 1517966704, \"aud\": \"//iam.googleapis.com/projects/1234567890123/locations/global/workloadIdentityPools/my-pool/providers/my-provider\", \"sub\": \"113475438248934895348\", \"my_claims\": { \"additional_claim\": \"value\" } } ``` If `subject_token` is for AWS, it must be a serialized `GetCallerIdentity` token. This token contains the same information as a request to the AWS [`GetCallerIdentity()`](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetCallerIdentity) method, as well as the AWS [signature](https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html) for the request information. Use Signature Version 4. Format the request as URL-encoded JSON, and set the `subject_token_type` parameter to `urn:ietf:params:aws:token-type:aws4_request`. The following parameters are required: - `url`: The URL of the AWS STS endpoint for `GetCallerIdentity()`, such as `https://sts.amazonaws.com?Action=GetCallerIdentity&Version=2011-06-15`. Regional endpoints are also supported. - `method`: The HTTP request method: `POST`. - `headers`: The HTTP request headers, which must include: - `Authorization`: The request signature. - `x-amz-date`: The time you will send the request, formatted as an [ISO8601 Basic](https://docs.aws.amazon.com/general/latest/gr/sigv4_elements.html#sigv4_elements_date) string. This value is typically set to the current time and is used to help prevent replay attacks. - `host`: The hostname of the `url` field; for example, `sts.amazonaws.com`. - `x-goog-cloud-target-resource`: The full, canonical resource name of the workload identity pool provider, with or without an `https:` prefix. To help ensure data integrity, we recommend including this header in the `SignedHeaders` field of the signed request. For example: //iam.googleapis.com/projects//locations/global/workloadIdentityPools//providers/ https://iam.googleapis.com/projects//locations/global/workloadIdentityPools//providers/ If you are using temporary security credentials provided by AWS, you must also include the header `x-amz-security-token`, with the value set to the session token. The following example shows a `GetCallerIdentity` token: ``` { \"headers\": [ {\"key\": \"x-amz-date\", \"value\": \"20200815T015049Z\"}, {\"key\": \"Authorization\", \"value\": \"AWS4-HMAC-SHA256+Credential=$credential,+SignedHeaders=host;x-amz-date;x-goog-cloud-target-resource,+Signature=$signature\"}, {\"key\": \"x-goog-cloud-target-resource\", \"value\": \"//iam.googleapis.com/projects//locations/global/workloadIdentityPools//providers/\"}, {\"key\": \"host\", \"value\": \"sts.amazonaws.com\"} . ], \"method\": \"POST\", \"url\": \"https://sts.amazonaws.com?Action=GetCallerIdentity&Version=2011-06-15\" } ``` If the token is a SAML 2.0 assertion, it must use the format defined in [the SAML 2.0 spec](https://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-tech-overview-2.0-cd-02.pdf), and the `subject_token_type` must be `urn:ietf:params:oauth:token-type:saml2`. See [Verification of external credentials](https://cloud.google.com/iam/docs/using-workload-identity-federation#verification_of_external_credentials) for details on how SAML 2.0 assertions are validated during token exchanges. You can also use a Google-issued OAuth 2.0 access token with this field to obtain an access token with new security attributes applied, such as a Credential Access Boundary. In this case, set `subject_token_type` to `urn:ietf:params:oauth:token-type:access_token`. If an access token already contains security attributes, you cannot apply additional security attributes.", "type": "string" }, "subjectTokenType": { @@ -333,62 +236,6 @@ }, "type": "object" }, - "GoogleIdentityStsV1IntrospectTokenRequest": { - "description": "Request message for IntrospectToken.", - "id": "GoogleIdentityStsV1IntrospectTokenRequest", - "properties": { - "token": { - "description": "Required. The OAuth 2.0 security token issued by the Security Token Service API.", - "type": "string" - }, - "tokenTypeHint": { - "description": "Optional. The type of the given token. Supported values are `urn:ietf:params:oauth:token-type:access_token` and `access_token`.", - "type": "string" - } - }, - "type": "object" - }, - "GoogleIdentityStsV1IntrospectTokenResponse": { - "description": "Response message for IntrospectToken.", - "id": "GoogleIdentityStsV1IntrospectTokenResponse", - "properties": { - "active": { - "description": "A boolean value that indicates whether the provided access token is currently active.", - "type": "boolean" - }, - "client_id": { - "description": "The client identifier for the OAuth 2.0 client that requested the provided token.", - "type": "string" - }, - "exp": { - "description": "The expiration timestamp, measured in the number of seconds since January 1 1970 UTC, indicating when this token will expire.", - "format": "int64", - "type": "string" - }, - "iat": { - "description": "The issued timestamp, measured in the number of seconds since January 1 1970 UTC, indicating when this token was originally issued.", - "format": "int64", - "type": "string" - }, - "iss": { - "description": "The issuer of the provided token.", - "type": "string" - }, - "scope": { - "description": "A list of scopes associated with the provided token.", - "type": "string" - }, - "sub": { - "description": "The unique user ID associated with the provided token. For Google Accounts, this value is based on the Google Account's user ID. For federated identities, this value is based on the identity pool ID and the value of the mapped `google.subject` attribute.", - "type": "string" - }, - "username": { - "description": "The human-readable identifier for the token principal subject. For example, if the provided token is associated with a workload identity pool, this field contains a value in the following format: `principal://iam.googleapis.com/projects//locations/global/workloadIdentityPools//subject/`. If the provided token is associated with a workforce pool, this field contains a value in the following format: `principal://iam.googleapis.com/locations/global/workforcePools//subject/`.", - "type": "string" - } - }, - "type": "object" - }, "GoogleIdentityStsV1Options": { "description": "An `Options` object configures features that the Security Token Service supports, but that are not supported by standard OAuth 2.0 token exchange endpoints, as defined in https://tools.ietf.org/html/rfc8693.", "id": "GoogleIdentityStsV1Options", diff --git a/etc/api/sts/v1beta/sts-api.json b/etc/api/sts/v1beta/sts-api.json index 111aae5868..2004c784f7 100644 --- a/etc/api/sts/v1beta/sts-api.json +++ b/etc/api/sts/v1beta/sts-api.json @@ -116,7 +116,7 @@ } } }, - "revision": "20240222", + "revision": "20240410", "rootUrl": "https://sts.googleapis.com/", "schemas": { "GoogleIamV1Binding": { diff --git a/etc/api/tagmanager/v1/tagmanager-api.json b/etc/api/tagmanager/v1/tagmanager-api.json index af4747f5a4..c251110d6c 100644 --- a/etc/api/tagmanager/v1/tagmanager-api.json +++ b/etc/api/tagmanager/v1/tagmanager-api.json @@ -1932,7 +1932,7 @@ } } }, - "revision": "20240228", + "revision": "20240419", "rootUrl": "https://tagmanager.googleapis.com/", "schemas": { "Account": { diff --git a/etc/api/tagmanager/v2/tagmanager-api.json b/etc/api/tagmanager/v2/tagmanager-api.json index 4ec1cde169..1d6128bf39 100644 --- a/etc/api/tagmanager/v2/tagmanager-api.json +++ b/etc/api/tagmanager/v2/tagmanager-api.json @@ -3890,7 +3890,7 @@ } } }, - "revision": "20240228", + "revision": "20240419", "rootUrl": "https://tagmanager.googleapis.com/", "schemas": { "Account": { diff --git a/etc/api/tasks/v1/tasks-api.json b/etc/api/tasks/v1/tasks-api.json index 28ac9de5c7..6c16df47af 100644 --- a/etc/api/tasks/v1/tasks-api.json +++ b/etc/api/tasks/v1/tasks-api.json @@ -157,7 +157,7 @@ ] }, "insert": { - "description": "Creates a new task list and adds it to the authenticated user's task lists.", + "description": "Creates a new task list and adds it to the authenticated user's task lists. A user can have up to 2000 lists at a time.", "flatPath": "tasks/v1/users/@me/lists", "httpMethod": "POST", "id": "tasks.tasklists.insert", @@ -175,7 +175,7 @@ ] }, "list": { - "description": "Returns all the authenticated user's task lists.", + "description": "Returns all the authenticated user's task lists. A user can have up to 2000 lists at a time.", "flatPath": "tasks/v1/users/@me/lists", "httpMethod": "GET", "id": "tasks.tasklists.list", @@ -342,7 +342,7 @@ ] }, "insert": { - "description": "Creates a new task on the specified task list.", + "description": "Creates a new task on the specified task list. A user can have up to 20,000 uncompleted tasks per list and up to 100,000 tasks in total at a time.", "flatPath": "tasks/v1/lists/{tasklist}/tasks", "httpMethod": "POST", "id": "tasks.tasks.insert", @@ -379,7 +379,7 @@ ] }, "list": { - "description": "Returns all tasks in the specified task list.", + "description": "Returns all tasks in the specified task list. A user can have up to 20,000 uncompleted tasks per list and up to 100,000 tasks in total at a time.", "flatPath": "tasks/v1/lists/{tasklist}/tasks", "httpMethod": "GET", "id": "tasks.tasks.list", @@ -455,7 +455,7 @@ ] }, "move": { - "description": "Moves the specified task to another position in the task list. This can include putting it as a child task under a new parent and/or move it to a different position among its sibling tasks.", + "description": "Moves the specified task to another position in the task list. This can include putting it as a child task under a new parent and/or move it to a different position among its sibling tasks. A user can have up to 2,000 subtasks per task.", "flatPath": "tasks/v1/lists/{tasklist}/tasks/{task}/move", "httpMethod": "POST", "id": "tasks.tasks.move", @@ -566,7 +566,7 @@ } } }, - "revision": "20240303", + "revision": "20240416", "rootUrl": "https://tasks.googleapis.com/", "schemas": { "Task": { @@ -622,7 +622,7 @@ "type": "array" }, "notes": { - "description": "Notes describing the task. Optional.", + "description": "Notes describing the task. Optional. Maximum length allowed: 8192 characters.", "type": "string" }, "parent": { @@ -642,12 +642,16 @@ "type": "string" }, "title": { - "description": "Title of the task.", + "description": "Title of the task. Maximum length allowed: 1024 characters.", "type": "string" }, "updated": { "description": "Last modification time of the task (as a RFC 3339 timestamp).", "type": "string" + }, + "webViewLink": { + "description": "An absolute link to the task in the Google Tasks Web UI. This field is read-only.", + "type": "string" } }, "type": "object" @@ -672,7 +676,7 @@ "type": "string" }, "title": { - "description": "Title of the task list.", + "description": "Title of the task list. Maximum length allowed: 1024 characters.", "type": "string" }, "updated": { diff --git a/etc/api/testing/v1/testing-api.json b/etc/api/testing/v1/testing-api.json index f8a1415e5b..776d91c353 100644 --- a/etc/api/testing/v1/testing-api.json +++ b/etc/api/testing/v1/testing-api.json @@ -16,7 +16,8 @@ "batchPath": "batch", "description": "Allows developers to run automated tests for their mobile applications on Google infrastructure.", "discoveryVersion": "v1", - "documentationLink": "https://developers.google.com/cloud-test-lab/", + "documentationLink": "https://firebase.google.com/docs/test-lab/", + "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" @@ -448,7 +449,7 @@ } } }, - "revision": "20240227", + "revision": "20240416", "rootUrl": "https://testing.googleapis.com/", "schemas": { "Account": { @@ -1227,7 +1228,7 @@ "type": "array" }, "ttl": { - "description": "Optional. The amount of time that a device will be initially allocated for. This can eventually be extended with the UpdateDeviceSession RPC. Default: 30 minutes.", + "description": "Optional. The amount of time that a device will be initially allocated for. This can eventually be extended with the UpdateDeviceSession RPC. Default: 15 minutes.", "format": "google-duration", "type": "string" } diff --git a/etc/api/texttospeech/v1/texttospeech-api.json b/etc/api/texttospeech/v1/texttospeech-api.json index f8397cc248..749c7f5994 100644 --- a/etc/api/texttospeech/v1/texttospeech-api.json +++ b/etc/api/texttospeech/v1/texttospeech-api.json @@ -318,7 +318,7 @@ } } }, - "revision": "20240228", + "revision": "20240327", "rootUrl": "https://texttospeech.googleapis.com/", "schemas": { "AudioConfig": { diff --git a/etc/api/texttospeech/v1beta1/texttospeech-api.json b/etc/api/texttospeech/v1beta1/texttospeech-api.json index 2633c58cfc..a0d8dc0a17 100644 --- a/etc/api/texttospeech/v1beta1/texttospeech-api.json +++ b/etc/api/texttospeech/v1beta1/texttospeech-api.json @@ -261,7 +261,7 @@ } } }, - "revision": "20240228", + "revision": "20240327", "rootUrl": "https://texttospeech.googleapis.com/", "schemas": { "AudioConfig": { diff --git a/etc/api/toolresults/v1beta3/toolresults-api.json b/etc/api/toolresults/v1beta3/toolresults-api.json index e4c273dd99..890ff7c9d5 100644 --- a/etc/api/toolresults/v1beta3/toolresults-api.json +++ b/etc/api/toolresults/v1beta3/toolresults-api.json @@ -1463,7 +1463,7 @@ } } }, - "revision": "20240304", + "revision": "20240418", "rootUrl": "https://toolresults.googleapis.com/", "schemas": { "ANR": { @@ -2643,7 +2643,8 @@ "GREY_MAX_O", "GREY_MAX_P", "GREY_MAX_Q", - "GREY_MAX_R" + "GREY_MAX_R", + "GREY_MAX_S" ], "enumDescriptions": [ "", @@ -2653,6 +2654,7 @@ "", "", "", + "", "" ], "type": "string" diff --git a/etc/api/tpu/v1/tpu-api.json b/etc/api/tpu/v1/tpu-api.json index 1c5f792273..19dd529181 100644 --- a/etc/api/tpu/v1/tpu-api.json +++ b/etc/api/tpu/v1/tpu-api.json @@ -659,7 +659,7 @@ } } }, - "revision": "20240222", + "revision": "20240411", "rootUrl": "https://tpu.googleapis.com/", "schemas": { "AcceleratorType": { diff --git a/etc/api/tpu/v1alpha1/tpu-api.json b/etc/api/tpu/v1alpha1/tpu-api.json index 0da108e62f..1b21c37d65 100644 --- a/etc/api/tpu/v1alpha1/tpu-api.json +++ b/etc/api/tpu/v1alpha1/tpu-api.json @@ -669,7 +669,7 @@ } } }, - "revision": "20240222", + "revision": "20240411", "rootUrl": "https://tpu.googleapis.com/", "schemas": { "AcceleratorType": { diff --git a/etc/api/tpu/v2alpha1/tpu-api.json b/etc/api/tpu/v2alpha1/tpu-api.json index fb2749befb..0ca3983683 100644 --- a/etc/api/tpu/v2alpha1/tpu-api.json +++ b/etc/api/tpu/v2alpha1/tpu-api.json @@ -965,7 +965,7 @@ } } }, - "revision": "20240222", + "revision": "20240411", "rootUrl": "https://tpu.googleapis.com/", "schemas": { "AcceleratorConfig": { @@ -1983,6 +1983,29 @@ }, "standard": { "$ref": "Standard" + }, + "state": { + "description": "Output only. The state of the Reservation.", + "enum": [ + "STATE_UNSPECIFIED", + "APPROVED", + "PROVISIONING", + "ACTIVE", + "DEPROVISIONING", + "EXPIRED", + "FAILED" + ], + "enumDescriptions": [ + "The Reservation state is unspecified.", + "The Reservation has been approved.", + "The Reservation is being provisioned.", + "The Reservation is active.", + "The Reservation is being deprovisioned.", + "The Reservation is past its end date.", + "The Reservation encountered a failure during mutation." + ], + "readOnly": true, + "type": "string" } }, "type": "object" diff --git a/etc/api/trafficdirector/v2/trafficdirector-api.json b/etc/api/trafficdirector/v2/trafficdirector-api.json index fa50903397..d99a659429 100644 --- a/etc/api/trafficdirector/v2/trafficdirector-api.json +++ b/etc/api/trafficdirector/v2/trafficdirector-api.json @@ -128,7 +128,7 @@ } } }, - "revision": "20240214", + "revision": "20240322", "rootUrl": "https://trafficdirector.googleapis.com/", "schemas": { "Address": { diff --git a/etc/api/transcoder/v1/transcoder-api.json b/etc/api/transcoder/v1/transcoder-api.json index d11578a1fe..fbf6df1646 100644 --- a/etc/api/transcoder/v1/transcoder-api.json +++ b/etc/api/transcoder/v1/transcoder-api.json @@ -385,7 +385,7 @@ } } }, - "revision": "20240221", + "revision": "20240410", "rootUrl": "https://transcoder.googleapis.com/", "schemas": { "AdBreak": { diff --git a/etc/api/translate/v3/translate-api.json b/etc/api/translate/v3/translate-api.json index 0a78a72142..f9a116e591 100644 --- a/etc/api/translate/v3/translate-api.json +++ b/etc/api/translate/v3/translate-api.json @@ -1706,7 +1706,7 @@ } } }, - "revision": "20240131", + "revision": "20240301", "rootUrl": "https://translation.googleapis.com/", "schemas": { "AdaptiveMtDataset": { diff --git a/etc/api/translate/v3beta1/translate-api.json b/etc/api/translate/v3beta1/translate-api.json index ad27d030af..8114898928 100644 --- a/etc/api/translate/v3beta1/translate-api.json +++ b/etc/api/translate/v3beta1/translate-api.json @@ -744,7 +744,7 @@ } } }, - "revision": "20240131", + "revision": "20240301", "rootUrl": "https://translation.googleapis.com/", "schemas": { "BatchDocumentInputConfig": { diff --git a/etc/api/vault/v1/vault-api.json b/etc/api/vault/v1/vault-api.json index 887c1c3b5b..82fae71244 100644 --- a/etc/api/vault/v1/vault-api.json +++ b/etc/api/vault/v1/vault-api.json @@ -1102,7 +1102,10 @@ }, "response": { "$ref": "Empty" - } + }, + "scopes": [ + "https://www.googleapis.com/auth/ediscovery" + ] }, "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`.", @@ -1124,7 +1127,10 @@ "path": "v1/{+name}", "response": { "$ref": "Empty" - } + }, + "scopes": [ + "https://www.googleapis.com/auth/ediscovery" + ] }, "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.", @@ -1188,12 +1194,16 @@ "path": "v1/{+name}", "response": { "$ref": "ListOperationsResponse" - } + }, + "scopes": [ + "https://www.googleapis.com/auth/ediscovery", + "https://www.googleapis.com/auth/ediscovery.readonly" + ] } } } }, - "revision": "20240220", + "revision": "20240415", "rootUrl": "https://vault.googleapis.com/", "schemas": { "AccountCount": { diff --git a/etc/api/verifiedaccess/v1/verifiedaccess-api.json b/etc/api/verifiedaccess/v1/verifiedaccess-api.json index 70411bf0af..071d31730c 100644 --- a/etc/api/verifiedaccess/v1/verifiedaccess-api.json +++ b/etc/api/verifiedaccess/v1/verifiedaccess-api.json @@ -146,7 +146,7 @@ } } }, - "revision": "20240227", + "revision": "20240409", "rootUrl": "https://verifiedaccess.googleapis.com/", "schemas": { "Challenge": { diff --git a/etc/api/versionhistory/v1/versionhistory-api.json b/etc/api/versionhistory/v1/versionhistory-api.json index a3c490391d..9f9a58b542 100644 --- a/etc/api/versionhistory/v1/versionhistory-api.json +++ b/etc/api/versionhistory/v1/versionhistory-api.json @@ -271,7 +271,7 @@ } } }, - "revision": "20240303", + "revision": "20240417", "rootUrl": "https://versionhistory.googleapis.com/", "schemas": { "Channel": { @@ -294,13 +294,13 @@ ], "enumDescriptions": [ "", + "The Stable channel.", + "The Beta channel.", + "The Dev channel.", + "The Canary channel.", + "The Canary channel for Chrome, with DCHECK/ASAN enabled.", "", - "", - "", - "", - "", - "", - "", + "The Extended Stable channel for Chrome.", "The Long-term support channel for ChromeOS.", "The Long-term support candidate channel for ChromeOS." ], @@ -427,24 +427,26 @@ "LACROS_ARM32", "CHROMEOS", "LACROS_ARM64", - "FUCHSIA" + "FUCHSIA", + "WIN_ARM64" ], "enumDescriptions": [ "", + "Chrome Desktop for Windows (32-bit).", + "Chrome Desktop for Windows (x86_64).", + "Chrome Desktop for macOS (x86_64).", + "Chrome Desktop for Linux.", + "Chrome for Android.", + "WebView for Android.", + "Chrome for iOS.", "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" + "Chrome for macOS (ARM64).", + "ChromeOS Lacros (x86_64).", + "ChromeOS Lacros (ARM).", + "ChromeOS.", + "ChromeOS Lacros (ARM64).", + "Chrome for Fuchsia.", + "Chrome Desktop for Windows (ARM64)." ], "type": "string" } diff --git a/etc/api/videointelligence/v1/videointelligence-api.json b/etc/api/videointelligence/v1/videointelligence-api.json index 6d3eabdfe2..f4217ec7fd 100644 --- a/etc/api/videointelligence/v1/videointelligence-api.json +++ b/etc/api/videointelligence/v1/videointelligence-api.json @@ -350,7 +350,7 @@ } } }, - "revision": "20240118", + "revision": "20240327", "rootUrl": "https://videointelligence.googleapis.com/", "schemas": { "GoogleCloudVideointelligenceV1_AnnotateVideoProgress": { diff --git a/etc/api/videointelligence/v1beta2/videointelligence-api.json b/etc/api/videointelligence/v1beta2/videointelligence-api.json index 7629bacc73..8fad951cb3 100644 --- a/etc/api/videointelligence/v1beta2/videointelligence-api.json +++ b/etc/api/videointelligence/v1beta2/videointelligence-api.json @@ -128,7 +128,7 @@ } } }, - "revision": "20240118", + "revision": "20240327", "rootUrl": "https://videointelligence.googleapis.com/", "schemas": { "GoogleCloudVideointelligenceV1_AnnotateVideoProgress": { diff --git a/etc/api/videointelligence/v1p1beta1/videointelligence-api.json b/etc/api/videointelligence/v1p1beta1/videointelligence-api.json index f01e9aee6b..0520373f41 100644 --- a/etc/api/videointelligence/v1p1beta1/videointelligence-api.json +++ b/etc/api/videointelligence/v1p1beta1/videointelligence-api.json @@ -128,7 +128,7 @@ } } }, - "revision": "20240118", + "revision": "20240327", "rootUrl": "https://videointelligence.googleapis.com/", "schemas": { "GoogleCloudVideointelligenceV1_AnnotateVideoProgress": { diff --git a/etc/api/videointelligence/v1p2beta1/videointelligence-api.json b/etc/api/videointelligence/v1p2beta1/videointelligence-api.json index 53a8bfbea2..363eb97948 100644 --- a/etc/api/videointelligence/v1p2beta1/videointelligence-api.json +++ b/etc/api/videointelligence/v1p2beta1/videointelligence-api.json @@ -128,7 +128,7 @@ } } }, - "revision": "20240118", + "revision": "20240327", "rootUrl": "https://videointelligence.googleapis.com/", "schemas": { "GoogleCloudVideointelligenceV1_AnnotateVideoProgress": { diff --git a/etc/api/videointelligence/v1p3beta1/videointelligence-api.json b/etc/api/videointelligence/v1p3beta1/videointelligence-api.json index ccccb0cf89..11991a55b7 100644 --- a/etc/api/videointelligence/v1p3beta1/videointelligence-api.json +++ b/etc/api/videointelligence/v1p3beta1/videointelligence-api.json @@ -128,7 +128,7 @@ } } }, - "revision": "20240118", + "revision": "20240327", "rootUrl": "https://videointelligence.googleapis.com/", "schemas": { "GoogleCloudVideointelligenceV1_AnnotateVideoProgress": { diff --git a/etc/api/vision/v1/vision-api.json b/etc/api/vision/v1/vision-api.json index b94c8bba56..064adbce52 100644 --- a/etc/api/vision/v1/vision-api.json +++ b/etc/api/vision/v1/vision-api.json @@ -1282,7 +1282,7 @@ } } }, - "revision": "20240223", + "revision": "20240412", "rootUrl": "https://vision.googleapis.com/", "schemas": { "AddProductToProductSetRequest": { diff --git a/etc/api/vision/v1p1beta1/vision-api.json b/etc/api/vision/v1p1beta1/vision-api.json index b94fe66031..76637c8348 100644 --- a/etc/api/vision/v1p1beta1/vision-api.json +++ b/etc/api/vision/v1p1beta1/vision-api.json @@ -449,7 +449,7 @@ } } }, - "revision": "20240223", + "revision": "20240412", "rootUrl": "https://vision.googleapis.com/", "schemas": { "AnnotateFileResponse": { diff --git a/etc/api/vision/v1p2beta1/vision-api.json b/etc/api/vision/v1p2beta1/vision-api.json index 6526015115..a5b02af9f2 100644 --- a/etc/api/vision/v1p2beta1/vision-api.json +++ b/etc/api/vision/v1p2beta1/vision-api.json @@ -449,7 +449,7 @@ } } }, - "revision": "20240223", + "revision": "20240412", "rootUrl": "https://vision.googleapis.com/", "schemas": { "AnnotateFileResponse": { diff --git a/etc/api/vmmigration/v1/vmmigration-api.json b/etc/api/vmmigration/v1/vmmigration-api.json index 9473c2a234..3c39990c2a 100644 --- a/etc/api/vmmigration/v1/vmmigration-api.json +++ b/etc/api/vmmigration/v1/vmmigration-api.json @@ -2220,7 +2220,7 @@ } } }, - "revision": "20240222", + "revision": "20240411", "rootUrl": "https://vmmigration.googleapis.com/", "schemas": { "AccessKeyCredentials": { @@ -3712,7 +3712,7 @@ }, "encryption": { "$ref": "Encryption", - "description": "Optional. Immutable. The encryption to apply to the image." + "description": "Immutable. The encryption to apply to the image." }, "familyName": { "description": "Optional. The name of the image family to which the new image belongs.", diff --git a/etc/api/vmmigration/v1alpha1/vmmigration-api.json b/etc/api/vmmigration/v1alpha1/vmmigration-api.json index 1d8afcbbbf..8b8d063907 100644 --- a/etc/api/vmmigration/v1alpha1/vmmigration-api.json +++ b/etc/api/vmmigration/v1alpha1/vmmigration-api.json @@ -2220,7 +2220,7 @@ } } }, - "revision": "20240222", + "revision": "20240411", "rootUrl": "https://vmmigration.googleapis.com/", "schemas": { "AccessKeyCredentials": { @@ -3747,7 +3747,7 @@ }, "encryption": { "$ref": "Encryption", - "description": "Optional. Immutable. The encryption to apply to the image." + "description": "Immutable. The encryption to apply to the image." }, "familyName": { "description": "Optional. The name of the image family to which the new image belongs.", diff --git a/etc/api/walletobjects/v1/walletobjects-api.json b/etc/api/walletobjects/v1/walletobjects-api.json index 89803fa970..e9c09ab75b 100644 --- a/etc/api/walletobjects/v1/walletobjects-api.json +++ b/etc/api/walletobjects/v1/walletobjects-api.json @@ -2681,7 +2681,7 @@ } } }, - "revision": "20240304", + "revision": "20240419", "rootUrl": "https://walletobjects.googleapis.com/", "schemas": { "ActivationOptions": { @@ -3153,11 +3153,11 @@ "properties": { "updateRequestUrl": { "deprecated": true, - "description": "URL for the merchant endpoint that would be called to request updates. The URL should be hosted on HTTPS and robots.txt should allow the URL path to be accessible by UserAgent:Google-Valuables. Deprecated.", + "description": "URL for the merchant endpoint that would be called to request updates. The URL should be hosted on HTTPS and robots.txt should allow the URL path to be accessible by UserAgent:Googlebot. Deprecated.", "type": "string" }, "url": { - "description": "The HTTPS url configured by the merchant. The URL should be hosted on HTTPS and robots.txt should allow the URL path to be accessible by UserAgent:Google-Valuables.", + "description": "The HTTPS url configured by the merchant. The URL should be hosted on HTTPS and robots.txt should allow the URL path to be accessible by UserAgent:Googlebot.", "type": "string" } }, diff --git a/etc/api/webfonts/v1/webfonts-api.json b/etc/api/webfonts/v1/webfonts-api.json index 040bf0d66b..be50aa4b01 100644 --- a/etc/api/webfonts/v1/webfonts-api.json +++ b/etc/api/webfonts/v1/webfonts-api.json @@ -161,7 +161,7 @@ } } }, - "revision": "20240227", + "revision": "20240410", "rootUrl": "https://webfonts.googleapis.com/", "schemas": { "Axis": { diff --git a/etc/api/webrisk/v1/webrisk-api.json b/etc/api/webrisk/v1/webrisk-api.json index 9bc276d816..3a9198cb9a 100644 --- a/etc/api/webrisk/v1/webrisk-api.json +++ b/etc/api/webrisk/v1/webrisk-api.json @@ -420,7 +420,7 @@ } } }, - "revision": "20240303", + "revision": "20240414", "rootUrl": "https://webrisk.googleapis.com/", "schemas": { "GoogleCloudWebriskV1ComputeThreatListDiffResponse": { diff --git a/etc/api/websecurityscanner/v1/websecurityscanner-api.json b/etc/api/websecurityscanner/v1/websecurityscanner-api.json index 400287ffbd..913f253ef5 100644 --- a/etc/api/websecurityscanner/v1/websecurityscanner-api.json +++ b/etc/api/websecurityscanner/v1/websecurityscanner-api.json @@ -526,7 +526,7 @@ } } }, - "revision": "20240302", + "revision": "20240414", "rootUrl": "https://websecurityscanner.googleapis.com/", "schemas": { "Authentication": { diff --git a/etc/api/websecurityscanner/v1alpha/websecurityscanner-api.json b/etc/api/websecurityscanner/v1alpha/websecurityscanner-api.json index 9ce31c568e..dcbe6ce324 100644 --- a/etc/api/websecurityscanner/v1alpha/websecurityscanner-api.json +++ b/etc/api/websecurityscanner/v1alpha/websecurityscanner-api.json @@ -526,7 +526,7 @@ } } }, - "revision": "20240302", + "revision": "20240414", "rootUrl": "https://websecurityscanner.googleapis.com/", "schemas": { "Authentication": { diff --git a/etc/api/websecurityscanner/v1beta/websecurityscanner-api.json b/etc/api/websecurityscanner/v1beta/websecurityscanner-api.json index 9c347f8a07..5da1a218d0 100644 --- a/etc/api/websecurityscanner/v1beta/websecurityscanner-api.json +++ b/etc/api/websecurityscanner/v1beta/websecurityscanner-api.json @@ -526,7 +526,7 @@ } } }, - "revision": "20240302", + "revision": "20240414", "rootUrl": "https://websecurityscanner.googleapis.com/", "schemas": { "Authentication": { diff --git a/etc/api/workflowexecutions/v1/workflowexecutions-api.json b/etc/api/workflowexecutions/v1/workflowexecutions-api.json index f8580de6f3..d24ed62aad 100644 --- a/etc/api/workflowexecutions/v1/workflowexecutions-api.json +++ b/etc/api/workflowexecutions/v1/workflowexecutions-api.json @@ -457,7 +457,7 @@ } } }, - "revision": "20240220", + "revision": "20240319", "rootUrl": "https://workflowexecutions.googleapis.com/", "schemas": { "Callback": { diff --git a/etc/api/workflowexecutions/v1beta/workflowexecutions-api.json b/etc/api/workflowexecutions/v1beta/workflowexecutions-api.json index 7ec8f5229f..7ee2851328 100644 --- a/etc/api/workflowexecutions/v1beta/workflowexecutions-api.json +++ b/etc/api/workflowexecutions/v1beta/workflowexecutions-api.json @@ -269,7 +269,7 @@ } } }, - "revision": "20240220", + "revision": "20240319", "rootUrl": "https://workflowexecutions.googleapis.com/", "schemas": { "CancelExecutionRequest": { diff --git a/etc/api/workflows/v1/workflows-api.json b/etc/api/workflows/v1/workflows-api.json index bde150f2c8..400ee97975 100644 --- a/etc/api/workflows/v1/workflows-api.json +++ b/etc/api/workflows/v1/workflows-api.json @@ -485,7 +485,7 @@ } } }, - "revision": "20240207", + "revision": "20240410", "rootUrl": "https://workflows.googleapis.com/", "schemas": { "Empty": { diff --git a/etc/api/workflows/v1beta/workflows-api.json b/etc/api/workflows/v1beta/workflows-api.json index f625eec960..0638faa41d 100644 --- a/etc/api/workflows/v1beta/workflows-api.json +++ b/etc/api/workflows/v1beta/workflows-api.json @@ -444,7 +444,7 @@ } } }, - "revision": "20240207", + "revision": "20240410", "rootUrl": "https://workflows.googleapis.com/", "schemas": { "Empty": { diff --git a/etc/api/youtube/v3/youtube-api.json b/etc/api/youtube/v3/youtube-api.json index 1fdd0111d9..ca994f18ac 100644 --- a/etc/api/youtube/v3/youtube-api.json +++ b/etc/api/youtube/v3/youtube-api.json @@ -4037,7 +4037,7 @@ } } }, - "revision": "20240303", + "revision": "20240417", "rootUrl": "https://youtube.googleapis.com/", "schemas": { "AbuseReport": { @@ -5356,6 +5356,7 @@ "type": "string" }, "moderateComments": { + "deprecated": true, "description": "Whether user-submitted comments left on the channel page need to be approved by the channel owner to be publicly visible.", "type": "boolean" }, @@ -7678,11 +7679,13 @@ "type": "string" }, "repeatIntervalSecs": { + "deprecated": true, "description": "Interval frequency in seconds that api uses to insert cuepoints automatically.", "format": "int32", "type": "integer" }, "scheduleStrategy": { + "deprecated": true, "description": "The strategy to use when scheduling cuepoints.", "enum": [ "scheduleStrategyUnspecified", @@ -8282,6 +8285,7 @@ "type": "boolean" }, "startWithSlate": { + "deprecated": true, "description": "This setting indicates whether the broadcast should automatically begin with an in-stream slate when you update the broadcast's status to live. After updating the status, you then need to send a liveCuepoints.insert request that sets the cuepoint's eventState to end to remove the in-stream slate and make your broadcast stream visible to viewers.", "type": "boolean" }, @@ -8744,6 +8748,10 @@ "LiveChatMessageListResponse": { "id": "LiveChatMessageListResponse", "properties": { + "activePollItem": { + "$ref": "LiveChatMessage", + "description": "Set when there is an active poll." + }, "etag": { "description": "Etag of this resource.", "type": "string" diff --git a/etc/api/youtubeanalytics/v2/youtubeanalytics-api.json b/etc/api/youtubeanalytics/v2/youtubeanalytics-api.json index 764961d55d..2cb4c20f72 100644 --- a/etc/api/youtubeanalytics/v2/youtubeanalytics-api.json +++ b/etc/api/youtubeanalytics/v2/youtubeanalytics-api.json @@ -421,7 +421,7 @@ } } }, - "revision": "20240304", + "revision": "20240417", "rootUrl": "https://youtubeanalytics.googleapis.com/", "schemas": { "EmptyResponse": { diff --git a/etc/api/youtubereporting/v1/youtubereporting-api.json b/etc/api/youtubereporting/v1/youtubereporting-api.json index 43aa7ee76c..f2d79c8ffe 100644 --- a/etc/api/youtubereporting/v1/youtubereporting-api.json +++ b/etc/api/youtubereporting/v1/youtubereporting-api.json @@ -411,7 +411,7 @@ } } }, - "revision": "20240304", + "revision": "20240417", "rootUrl": "https://youtubereporting.googleapis.com/", "schemas": { "Empty": {