From c2c2b593d0755c1e69c5a669c2b1cbb490fb48c6 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 3 May 2023 16:36:12 -0700 Subject: [PATCH] feat(all): auto-regenerate discovery clients (#1963) --- alertcenter/v1beta1/alertcenter-api.json | 84 +- alertcenter/v1beta1/alertcenter-gen.go | 129 +- compute/v0.beta/compute-api.json | 272 ++- compute/v0.beta/compute-gen.go | 854 ++++++- compute/v1/compute-api.json | 511 +++- compute/v1/compute-gen.go | 2134 ++++++++++++++--- .../v1/contactcenterinsights-api.json | 158 +- .../v1/contactcenterinsights-gen.go | 240 ++ container/v1beta1/container-api.json | 17 +- container/v1beta1/container-gen.go | 34 + dfareporting/v4/dfareporting-api.json | 63 +- dfareporting/v4/dfareporting-gen.go | 92 + drive/v2/drive-api.json | 8 +- drive/v2/drive-gen.go | 11 +- drive/v3/drive-api.json | 8 +- drive/v3/drive-gen.go | 9 +- firebaseappcheck/v1/firebaseappcheck-api.json | 6 +- firebaseappcheck/v1/firebaseappcheck-gen.go | 4 + .../v1beta/firebaseappcheck-api.json | 63 +- .../v1beta/firebaseappcheck-gen.go | 247 ++ .../v1/firebaseappdistribution-api.json | 12 +- .../v1/firebaseappdistribution-gen.go | 32 - firestore/v1/firestore-api.json | 4 +- firestore/v1/firestore-gen.go | 2 +- gmail/v1/gmail-api.json | 4 +- gmail/v1/gmail-gen.go | 6 +- identitytoolkit/v1/identitytoolkit-api.json | 17 +- identitytoolkit/v1/identitytoolkit-gen.go | 32 + .../v1/paymentsresellersubscription-api.json | 4 +- .../v1/paymentsresellersubscription-gen.go | 2 +- .../v1alpha1/playdeveloperreporting-api.json | 32 +- .../v1alpha1/playdeveloperreporting-gen.go | 168 +- .../v1beta1/playdeveloperreporting-api.json | 32 +- .../v1beta1/playdeveloperreporting-gen.go | 168 +- retail/v2/retail-api.json | 154 +- retail/v2/retail-gen.go | 413 +++- retail/v2alpha/retail-api.json | 217 +- retail/v2alpha/retail-gen.go | 543 ++++- retail/v2beta/retail-api.json | 154 +- retail/v2beta/retail-gen.go | 413 +++- .../v1/serviceconsumermanagement-api.json | 8 +- .../v1/serviceconsumermanagement-gen.go | 1 + .../serviceconsumermanagement-api.json | 8 +- .../v1beta1/serviceconsumermanagement-gen.go | 1 + serviceusage/v1/serviceusage-api.json | 8 +- serviceusage/v1/serviceusage-gen.go | 1 + serviceusage/v1beta1/serviceusage-api.json | 8 +- serviceusage/v1beta1/serviceusage-gen.go | 1 + 48 files changed, 6432 insertions(+), 957 deletions(-) diff --git a/alertcenter/v1beta1/alertcenter-api.json b/alertcenter/v1beta1/alertcenter-api.json index 69d0d32bf40..d3ceff61751 100644 --- a/alertcenter/v1beta1/alertcenter-api.json +++ b/alertcenter/v1beta1/alertcenter-api.json @@ -423,9 +423,42 @@ } } }, - "revision": "20230417", + "revision": "20230424", "rootUrl": "https://alertcenter.googleapis.com/", "schemas": { + "AbuseDetected": { + "description": "A generic alert for abusive user activity occurring with a customer.", + "id": "AbuseDetected", + "properties": { + "additionalDetails": { + "$ref": "EntityList", + "description": "List of abusive users/entities to be displayed in a table in the alert." + }, + "product": { + "description": "Product that the abuse is originating from.", + "type": "string" + }, + "subAlertId": { + "description": "Unique identifier of each sub alert that is onboarded.", + "type": "string" + }, + "variationType": { + "description": "Variation of AbuseDetected alerts. The variation_type determines the texts displayed the alert details. This differs from sub_alert_id because each sub alert can have multiple variation_types, representing different stages of the alert.", + "enum": [ + "ABUSE_DETECTED_VARIATION_TYPE_UNSPECIFIED", + "DRIVE_ABUSIVE_CONTENT", + "LIMITED_DISABLE" + ], + "enumDescriptions": [ + "AbuseDetected alert variation type unspecified. No alert should be unspecified.", + "Variation displayed for Drive abusive content alerts.", + "Variation displayed for Limited Disable alerts, when a Google service is disabled for a user, totally or partially, due to the user's abusive behavior." + ], + "type": "string" + } + }, + "type": "object" + }, "AccountSuspensionDetails": { "description": "Details about why an account is receiving an account suspension warning.", "id": "AccountSuspensionDetails", @@ -464,7 +497,7 @@ "type": "object" }, "AccountSuspensionWarning": { - "description": "LINT.IfChange A warning that the customer's account is about to be suspended.", + "description": "A warning that the customer's account is about to be suspended.", "id": "AccountSuspensionWarning", "properties": { "appealWindow": { @@ -1111,6 +1144,53 @@ "properties": {}, "type": "object" }, + "Entity": { + "description": "Individual entity affected by, or related to, an alert.", + "id": "Entity", + "properties": { + "link": { + "description": "Link to a Security Investigation Tool search based on this entity, if available.", + "type": "string" + }, + "name": { + "description": "Human-readable name of this entity, such as an email address, file ID, or device name.", + "type": "string" + }, + "values": { + "description": "Extra values beyond name. The order of values should align with headers in EntityList.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "EntityList": { + "description": "EntityList stores entities in a format that can be translated to a table in the Alert Center UI.", + "id": "EntityList", + "properties": { + "entities": { + "description": "List of entities affected by the alert.", + "items": { + "$ref": "Entity" + }, + "type": "array" + }, + "headers": { + "description": "Headers of the values in entities. If no value is defined in Entity, this field should be empty.", + "items": { + "type": "string" + }, + "type": "array" + }, + "name": { + "description": "Name of the key detail used to display this entity list.", + "type": "string" + } + }, + "type": "object" + }, "GmailMessageInfo": { "description": "Details of a message in phishing spike alert.", "id": "GmailMessageInfo", diff --git a/alertcenter/v1beta1/alertcenter-gen.go b/alertcenter/v1beta1/alertcenter-gen.go index b26f761970a..db46c72d886 100644 --- a/alertcenter/v1beta1/alertcenter-gen.go +++ b/alertcenter/v1beta1/alertcenter-gen.go @@ -170,6 +170,58 @@ type V1beta1Service struct { s *Service } +// AbuseDetected: A generic alert for abusive user activity occurring +// with a customer. +type AbuseDetected struct { + // AdditionalDetails: List of abusive users/entities to be displayed in + // a table in the alert. + AdditionalDetails *EntityList `json:"additionalDetails,omitempty"` + + // Product: Product that the abuse is originating from. + Product string `json:"product,omitempty"` + + // SubAlertId: Unique identifier of each sub alert that is onboarded. + SubAlertId string `json:"subAlertId,omitempty"` + + // VariationType: Variation of AbuseDetected alerts. The variation_type + // determines the texts displayed the alert details. This differs from + // sub_alert_id because each sub alert can have multiple + // variation_types, representing different stages of the alert. + // + // Possible values: + // "ABUSE_DETECTED_VARIATION_TYPE_UNSPECIFIED" - AbuseDetected alert + // variation type unspecified. No alert should be unspecified. + // "DRIVE_ABUSIVE_CONTENT" - Variation displayed for Drive abusive + // content alerts. + // "LIMITED_DISABLE" - Variation displayed for Limited Disable alerts, + // when a Google service is disabled for a user, totally or partially, + // due to the user's abusive behavior. + VariationType string `json:"variationType,omitempty"` + + // ForceSendFields is a list of field names (e.g. "AdditionalDetails") + // to unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "AdditionalDetails") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *AbuseDetected) MarshalJSON() ([]byte, error) { + type NoMethod AbuseDetected + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // AccountSuspensionDetails: Details about why an account is receiving // an account suspension warning. type AccountSuspensionDetails struct { @@ -222,8 +274,8 @@ func (s *AccountSuspensionDetails) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } -// AccountSuspensionWarning: LINT.IfChange A warning that the customer's -// account is about to be suspended. +// AccountSuspensionWarning: A warning that the customer's account is +// about to be suspended. type AccountSuspensionWarning struct { // AppealWindow: The amount of time remaining to appeal an imminent // suspension. After this window has elapsed, the account will be @@ -1261,6 +1313,79 @@ type Empty struct { googleapi.ServerResponse `json:"-"` } +// Entity: Individual entity affected by, or related to, an alert. +type Entity struct { + // Link: Link to a Security Investigation Tool search based on this + // entity, if available. + Link string `json:"link,omitempty"` + + // Name: Human-readable name of this entity, such as an email address, + // file ID, or device name. + Name string `json:"name,omitempty"` + + // Values: Extra values beyond name. The order of values should align + // with headers in EntityList. + Values []string `json:"values,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Link") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Link") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *Entity) MarshalJSON() ([]byte, error) { + type NoMethod Entity + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// EntityList: EntityList stores entities in a format that can be +// translated to a table in the Alert Center UI. +type EntityList struct { + // Entities: List of entities affected by the alert. + Entities []*Entity `json:"entities,omitempty"` + + // Headers: Headers of the values in entities. If no value is defined in + // Entity, this field should be empty. + Headers []string `json:"headers,omitempty"` + + // Name: Name of the key detail used to display this entity list. + Name string `json:"name,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Entities") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Entities") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *EntityList) MarshalJSON() ([]byte, error) { + type NoMethod EntityList + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // GmailMessageInfo: Details of a message in phishing spike alert. type GmailMessageInfo struct { // AttachmentsSha256Hash: The `SHA256` hash of email's attachment and diff --git a/compute/v0.beta/compute-api.json b/compute/v0.beta/compute-api.json index 97b617bcfe9..11f0889e576 100644 --- a/compute/v0.beta/compute-api.json +++ b/compute/v0.beta/compute-api.json @@ -8710,6 +8710,7 @@ ] }, "setAutoHealingPolicies": { + "deprecated": true, "description": "Motifies the autohealing policy for the instances in this managed instance group. [Deprecated] This method is deprecated. Use instanceGroupManagers.patch instead.", "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setAutoHealingPolicies", "httpMethod": "POST", @@ -11772,6 +11773,11 @@ "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", @@ -23191,6 +23197,7 @@ ] }, "setAutoHealingPolicies": { + "deprecated": true, "description": "Modifies the autohealing policy for the instances in this managed instance group. [Deprecated] This method is deprecated. Use regionInstanceGroupManagers.patch instead.", "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setAutoHealingPolicies", "httpMethod": "POST", @@ -25486,6 +25493,56 @@ }, "regionSecurityPolicies": { "methods": { + "addRule": { + "description": "Inserts a rule into a security policy.", + "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/addRule", + "httpMethod": "POST", + "id": "compute.regionSecurityPolicies.addRule", + "parameterOrder": [ + "project", + "region", + "securityPolicy" + ], + "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 scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "securityPolicy": { + "description": "Name of the security 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" + }, + "validateOnly": { + "description": "If true, the request will not be committed.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/addRule", + "request": { + "$ref": "SecurityPolicyRule" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "delete": { "description": "Deletes the specified policy.", "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}", @@ -25576,6 +25633,55 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, + "getRule": { + "description": "Gets a rule at the specified priority.", + "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/getRule", + "httpMethod": "GET", + "id": "compute.regionSecurityPolicies.getRule", + "parameterOrder": [ + "project", + "region", + "securityPolicy" + ], + "parameters": { + "priority": { + "description": "The priority of the rule to get from the security 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" + }, + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "securityPolicy": { + "description": "Name of the security 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" + } + }, + "path": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/getRule", + "response": { + "$ref": "SecurityPolicyRule" + }, + "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 policy in the specified project using the data included in the request.", "flatPath": "projects/{project}/regions/{region}/securityPolicies", @@ -25735,6 +25841,110 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] + }, + "patchRule": { + "description": "Patches a rule at the specified priority. To clear fields in the rule, leave the fields empty and specify them in the updateMask.", + "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/patchRule", + "httpMethod": "POST", + "id": "compute.regionSecurityPolicies.patchRule", + "parameterOrder": [ + "project", + "region", + "securityPolicy" + ], + "parameters": { + "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" + }, + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "securityPolicy": { + "description": "Name of the security 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" + }, + "validateOnly": { + "description": "If true, the request will not be committed.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/patchRule", + "request": { + "$ref": "SecurityPolicyRule" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "removeRule": { + "description": "Deletes a rule at the specified priority.", + "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/removeRule", + "httpMethod": "POST", + "id": "compute.regionSecurityPolicies.removeRule", + "parameterOrder": [ + "project", + "region", + "securityPolicy" + ], + "parameters": { + "priority": { + "description": "The priority of the rule to remove from the security 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" + }, + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "securityPolicy": { + "description": "Name of the security 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" + } + }, + "path": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/removeRule", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] } } }, @@ -36741,7 +36951,7 @@ } } }, - "revision": "20230403", + "revision": "20230418", "rootUrl": "https://compute.googleapis.com/", "schemas": { "AWSV4Signature": { @@ -40888,6 +41098,7 @@ "GENERAL_PURPOSE_N2", "GENERAL_PURPOSE_N2D", "GENERAL_PURPOSE_T2D", + "GRAPHICS_OPTIMIZED", "MEMORY_OPTIMIZED", "MEMORY_OPTIMIZED_M3", "TYPE_UNSPECIFIED" @@ -40904,6 +41115,7 @@ "", "", "", + "", "" ], "type": "string" @@ -43181,6 +43393,10 @@ "ipAddress": { "description": "IP address of the interface in the external VPN gateway. Only IPv4 is supported. This IP address can be either from your on-premise gateway or another Cloud provider's VPN gateway, it cannot be an IP address from Google Compute Engine.", "type": "string" + }, + "ipv6Address": { + "description": "IPv6 address of the interface in the external VPN gateway. This IPv6 address can be either from your on-premise gateway or another Cloud provider's VPN gateway, it cannot be an IP address from Google Compute Engine. Must specify an IPv6 address (not IPV4-mapped) using any format described in RFC 4291 (e.g. 2001:db8:0:0:2d9:51:0:0). The output format is RFC 5952 format (e.g. 2001:db8::2d9:51:0:0).", + "type": "string" } }, "type": "object" @@ -45108,7 +45324,7 @@ "type": "object" }, "HealthCheck": { - "description": "Represents a Health Check resource. Google Compute Engine has two Health Check resources: * [Global](/compute/docs/reference/rest/beta/healthChecks) * [Regional](/compute/docs/reference/rest/beta/regionHealthChecks) Internal HTTP(S) load balancers must use regional health checks (`compute.v1.regionHealthChecks`). Traffic Director must use global health checks (`compute.v1.HealthChecks`). Internal TCP/UDP load balancers can use either regional or global health checks (`compute.v1.regionHealthChecks` or `compute.v1.HealthChecks`). External HTTP(S), TCP proxy, and SSL proxy load balancers as well as managed instance group auto-healing must use global health checks (`compute.v1.HealthChecks`). Backend service-based network load balancers must use regional health checks (`compute.v1.regionHealthChecks`). Target pool-based network load balancers must use legacy HTTP health checks (`compute.v1.httpHealthChecks`). For more information, see Health checks overview.", + "description": "Represents a Health Check resource. Google Compute Engine has two Health Check resources: * [Global](/compute/docs/reference/rest/beta/healthChecks) * [Regional](/compute/docs/reference/rest/beta/regionHealthChecks) Internal HTTP(S) load balancers must use regional health checks (`compute.v1.regionHealthChecks`). Traffic Director must use global health checks (`compute.v1.healthChecks`). Internal TCP/UDP load balancers can use either regional or global health checks (`compute.v1.regionHealthChecks` or `compute.v1.healthChecks`). External HTTP(S), TCP proxy, and SSL proxy load balancers as well as managed instance group auto-healing must use global health checks (`compute.v1.healthChecks`). Backend service-based network load balancers must use regional health checks (`compute.v1.regionHealthChecks`). Target pool-based network load balancers must use legacy HTTP health checks (`compute.v1.httpHealthChecks`). For more information, see Health checks overview.", "id": "HealthCheck", "properties": { "checkIntervalSec": { @@ -60019,6 +60235,7 @@ "COMMITTED_NVIDIA_A100_80GB_GPUS", "COMMITTED_NVIDIA_A100_GPUS", "COMMITTED_NVIDIA_K80_GPUS", + "COMMITTED_NVIDIA_L4_GPUS", "COMMITTED_NVIDIA_P100_GPUS", "COMMITTED_NVIDIA_P4_GPUS", "COMMITTED_NVIDIA_T4_GPUS", @@ -60176,6 +60393,7 @@ "", "", "", + "", "Guest CPUs", "", "", @@ -63744,6 +63962,18 @@ "$ref": "RouterBgpPeerBfd", "description": "BFD configuration for the BGP peering." }, + "customLearnedIpRanges": { + "description": "A list of user-defined custom learned route IP address ranges for a BGP session.", + "items": { + "$ref": "RouterBgpPeerCustomLearnedIpRange" + }, + "type": "array" + }, + "customLearnedRoutePriority": { + "description": "The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route ranges for the session. You can choose a value from `0` to `65335`. If you don't provide a value, Google Cloud assigns a priority of `100` to the ranges.", + "format": "int32", + "type": "integer" + }, "enable": { "description": "The status of the BGP peer connection. If set to FALSE, any active session with the peer is terminated and all associated routing information is removed. If set to TRUE, the peer connection can be established with routing information. The default is TRUE.", "enum": [ @@ -63858,6 +64088,16 @@ }, "type": "object" }, + "RouterBgpPeerCustomLearnedIpRange": { + "id": "RouterBgpPeerCustomLearnedIpRange", + "properties": { + "range": { + "description": "The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a subnet mask, it is interpreted as, for IPv4, a `/32` singular IP address range, and, for IPv6, `/128`.", + "type": "string" + } + }, + "type": "object" + }, "RouterInterface": { "id": "RouterInterface", "properties": { @@ -66366,6 +66606,10 @@ "$ref": "Uint128", "description": "[Output Only] An 128-bit global unique ID of the PSC service attachment." }, + "reconcileConnections": { + "description": "This flag determines whether a consumer accept/reject list change can reconcile the statuses of existing ACCEPTED or REJECTED PSC endpoints. - If false, connection policy update will only affect existing PENDING PSC endpoints. Existing ACCEPTED/REJECTED endpoints will remain untouched regardless how the connection policy is modified . - If true, update will affect both PENDING and ACCEPTED/REJECTED PSC endpoints. For example, an ACCEPTED PSC endpoint will be moved to REJECTED if its project is added to the reject list. For newly created service attachment, this boolean defaults to true.", + "type": "boolean" + }, "region": { "description": "[Output Only] URL of the region where the service attachment resides. This field applies only to the region resource. 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" @@ -69958,7 +70202,7 @@ "id": "TargetHttpsProxiesSetCertificateMapRequest", "properties": { "certificateMap": { - "description": "URL of the Certificate Map to associate with this TargetHttpsProxy.", + "description": "URL of the Certificate Map to associate with this TargetHttpsProxy. Accepted format is //certificatemanager.googleapis.com/projects/{project }/locations/{location}/certificateMaps/{resourceName}.", "type": "string" } }, @@ -70014,7 +70258,7 @@ "type": "string" }, "certificateMap": { - "description": "URL of a certificate map that identifies a certificate map associated with the given target proxy. This field can only be set for global target proxies. If set, sslCertificates will be ignored.", + "description": "URL of a certificate map that identifies a certificate map associated with the given target proxy. This field can only be set for global target proxies. If set, sslCertificates will be ignored. Accepted format is //certificatemanager.googleapis.com/projects/{project }/locations/{location}/certificateMaps/{resourceName}.", "type": "string" }, "creationTimestamp": { @@ -71278,7 +71522,7 @@ "id": "TargetSslProxiesSetCertificateMapRequest", "properties": { "certificateMap": { - "description": "URL of the Certificate Map to associate with this TargetSslProxy.", + "description": "URL of the Certificate Map to associate with this TargetSslProxy. Accepted format is //certificatemanager.googleapis.com/projects/{project }/locations/{location}/certificateMaps/{resourceName}.", "type": "string" } }, @@ -71320,7 +71564,7 @@ "id": "TargetSslProxy", "properties": { "certificateMap": { - "description": "URL of a certificate map that identifies a certificate map associated with the given target proxy. This field can only be set for global target proxies. If set, sslCertificates will be ignored.", + "description": "URL of a certificate map that identifies a certificate map associated with the given target proxy. This field can only be set for global target proxies. If set, sslCertificates will be ignored. Accepted format is //certificatemanager.googleapis.com/projects/{project }/locations/{location}/certificateMaps/{resourceName}.", "type": "string" }, "creationTimestamp": { @@ -73511,6 +73755,18 @@ "description": "An optional description of this resource. Provide this property when you create the resource.", "type": "string" }, + "gatewayIpVersion": { + "description": "The IP family of the gateway IPs for the HA-VPN gateway interfaces. If not specified, IPV4 will be used.", + "enum": [ + "IPV4", + "IPV6" + ], + "enumDescriptions": [ + "Every HA-VPN gateway interface is configured with an IPv4 address.", + "Every HA-VPN gateway interface is configured with an IPv6 address." + ], + "type": "string" + }, "id": { "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", "format": "uint64", @@ -73934,6 +74190,10 @@ "ipAddress": { "description": "[Output Only] IP address for this VPN interface associated with the VPN gateway. The IP address could be either a regional external IP address or a regional internal IP address. The two IP addresses for a VPN gateway must be all regional external or regional internal IP addresses. There cannot be a mix of regional external IP addresses and regional internal IP addresses. For HA VPN over Cloud Interconnect, the IP addresses for both interfaces could either be regional internal IP addresses or regional external IP addresses. For regular (non HA VPN over Cloud Interconnect) HA VPN tunnels, the IP address must be a regional external IP address.", "type": "string" + }, + "ipv6Address": { + "description": "[Output Only] IPv6 address for this VPN interface associated with the VPN gateway. The IPv6 address must be a regional external IPv6 address. The format is RFC 5952 format (e.g. 2001:db8::2d9:51:0:0).", + "type": "string" } }, "type": "object" diff --git a/compute/v0.beta/compute-gen.go b/compute/v0.beta/compute-gen.go index 563696b7ebe..9b8f92436d1 100644 --- a/compute/v0.beta/compute-gen.go +++ b/compute/v0.beta/compute-gen.go @@ -7980,6 +7980,7 @@ type Commitment struct { // "GENERAL_PURPOSE_N2" // "GENERAL_PURPOSE_N2D" // "GENERAL_PURPOSE_T2D" + // "GRAPHICS_OPTIMIZED" // "MEMORY_OPTIMIZED" // "MEMORY_OPTIMIZED_M3" // "TYPE_UNSPECIFIED" @@ -11757,6 +11758,15 @@ type ExternalVpnGatewayInterface struct { // be an IP address from Google Compute Engine. IpAddress string `json:"ipAddress,omitempty"` + // Ipv6Address: IPv6 address of the interface in the external VPN + // gateway. This IPv6 address can be either from your on-premise gateway + // or another Cloud provider's VPN gateway, it cannot be an IP address + // from Google Compute Engine. Must specify an IPv6 address (not + // IPV4-mapped) using any format described in RFC 4291 (e.g. + // 2001:db8:0:0:2d9:51:0:0). The output format is RFC 5952 format (e.g. + // 2001:db8::2d9:51:0:0). + Ipv6Address string `json:"ipv6Address,omitempty"` + // ForceSendFields is a list of field names (e.g. "Id") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any @@ -14879,12 +14889,12 @@ func (s *HTTPSHealthCheck) MarshalJSON() ([]byte, error) { // (/compute/docs/reference/rest/beta/regionHealthChecks) Internal // HTTP(S) load balancers must use regional health checks // (`compute.v1.regionHealthChecks`). Traffic Director must use global -// health checks (`compute.v1.HealthChecks`). Internal TCP/UDP load +// health checks (`compute.v1.healthChecks`). Internal TCP/UDP load // balancers can use either regional or global health checks -// (`compute.v1.regionHealthChecks` or `compute.v1.HealthChecks`). +// (`compute.v1.regionHealthChecks` or `compute.v1.healthChecks`). // External HTTP(S), TCP proxy, and SSL proxy load balancers as well as // managed instance group auto-healing must use global health checks -// (`compute.v1.HealthChecks`). Backend service-based network load +// (`compute.v1.healthChecks`). Backend service-based network load // balancers must use regional health checks // (`compute.v1.regionHealthChecks`). Target pool-based network load // balancers must use legacy HTTP health checks @@ -38515,6 +38525,7 @@ type Quota struct { // "COMMITTED_NVIDIA_A100_80GB_GPUS" // "COMMITTED_NVIDIA_A100_GPUS" // "COMMITTED_NVIDIA_K80_GPUS" + // "COMMITTED_NVIDIA_L4_GPUS" // "COMMITTED_NVIDIA_P100_GPUS" // "COMMITTED_NVIDIA_P4_GPUS" // "COMMITTED_NVIDIA_T4_GPUS" @@ -44193,6 +44204,17 @@ type RouterBgpPeer struct { // Bfd: BFD configuration for the BGP peering. Bfd *RouterBgpPeerBfd `json:"bfd,omitempty"` + // CustomLearnedIpRanges: A list of user-defined custom learned route IP + // address ranges for a BGP session. + CustomLearnedIpRanges []*RouterBgpPeerCustomLearnedIpRange `json:"customLearnedIpRanges,omitempty"` + + // CustomLearnedRoutePriority: The user-defined custom learned route + // priority for a BGP session. This value is applied to all custom + // learned route ranges for the session. You can choose a value from `0` + // to `65335`. If you don't provide a value, Google Cloud assigns a + // priority of `100` to the ranges. + CustomLearnedRoutePriority int64 `json:"customLearnedRoutePriority,omitempty"` + // Enable: The status of the BGP peer connection. If set to FALSE, any // active session with the peer is terminated and all associated routing // information is removed. If set to TRUE, the peer connection can be @@ -44353,6 +44375,36 @@ func (s *RouterBgpPeerBfd) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +type RouterBgpPeerCustomLearnedIpRange struct { + // Range: The custom learned route IP address range. Must be a valid + // CIDR-formatted prefix. If an IP address is provided without a subnet + // mask, it is interpreted as, for IPv4, a `/32` singular IP address + // range, and, for IPv6, `/128`. + Range string `json:"range,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Range") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Range") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *RouterBgpPeerCustomLearnedIpRange) MarshalJSON() ([]byte, error) { + type NoMethod RouterBgpPeerCustomLearnedIpRange + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + type RouterInterface struct { // IpRange: IP address and range of the interface. The IP range must be // in the RFC3927 link-local IP address space. The value must be a @@ -48079,6 +48131,18 @@ type ServiceAttachment struct { // the PSC service attachment. PscServiceAttachmentId *Uint128 `json:"pscServiceAttachmentId,omitempty"` + // ReconcileConnections: This flag determines whether a consumer + // accept/reject list change can reconcile the statuses of existing + // ACCEPTED or REJECTED PSC endpoints. - If false, connection policy + // update will only affect existing PENDING PSC endpoints. Existing + // ACCEPTED/REJECTED endpoints will remain untouched regardless how the + // connection policy is modified . - If true, update will affect both + // PENDING and ACCEPTED/REJECTED PSC endpoints. For example, an ACCEPTED + // PSC endpoint will be moved to REJECTED if its project is added to the + // reject list. For newly created service attachment, this boolean + // defaults to true. + ReconcileConnections bool `json:"reconcileConnections,omitempty"` + // Region: [Output Only] URL of the region where the service attachment // resides. This field applies only to the region resource. You must // specify this field as part of the HTTP request URL. It is not @@ -53750,7 +53814,9 @@ func (s *TargetHttpsProxiesScopedListWarningData) MarshalJSON() ([]byte, error) type TargetHttpsProxiesSetCertificateMapRequest struct { // CertificateMap: URL of the Certificate Map to associate with this - // TargetHttpsProxy. + // TargetHttpsProxy. Accepted format is + // //certificatemanager.googleapis.com/projects/{project + // }/locations/{location}/certificateMaps/{resourceName}. CertificateMap string `json:"certificateMap,omitempty"` // ForceSendFields is a list of field names (e.g. "CertificateMap") to @@ -53873,7 +53939,9 @@ type TargetHttpsProxy struct { // CertificateMap: URL of a certificate map that identifies a // certificate map associated with the given target proxy. This field // can only be set for global target proxies. If set, sslCertificates - // will be ignored. + // will be ignored. Accepted format is + // //certificatemanager.googleapis.com/projects/{project + // }/locations/{location}/certificateMaps/{resourceName}. CertificateMap string `json:"certificateMap,omitempty"` // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text @@ -55956,7 +56024,9 @@ func (s *TargetSslProxiesSetBackendServiceRequest) MarshalJSON() ([]byte, error) type TargetSslProxiesSetCertificateMapRequest struct { // CertificateMap: URL of the Certificate Map to associate with this - // TargetSslProxy. + // TargetSslProxy. Accepted format is + // //certificatemanager.googleapis.com/projects/{project + // }/locations/{location}/certificateMaps/{resourceName}. CertificateMap string `json:"certificateMap,omitempty"` // ForceSendFields is a list of field names (e.g. "CertificateMap") to @@ -56054,7 +56124,9 @@ type TargetSslProxy struct { // CertificateMap: URL of a certificate map that identifies a // certificate map associated with the given target proxy. This field // can only be set for global target proxies. If set, sslCertificates - // will be ignored. + // will be ignored. Accepted format is + // //certificatemanager.googleapis.com/projects/{project + // }/locations/{location}/certificateMaps/{resourceName}. CertificateMap string `json:"certificateMap,omitempty"` // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text @@ -59569,6 +59641,16 @@ type VpnGateway struct { // property when you create the resource. Description string `json:"description,omitempty"` + // GatewayIpVersion: The IP family of the gateway IPs for the HA-VPN + // gateway interfaces. If not specified, IPV4 will be used. + // + // Possible values: + // "IPV4" - Every HA-VPN gateway interface is configured with an IPv4 + // address. + // "IPV6" - Every HA-VPN gateway interface is configured with an IPv6 + // address. + GatewayIpVersion string `json:"gatewayIpVersion,omitempty"` + // Id: [Output Only] The unique identifier for the resource. This // identifier is defined by the server. Id uint64 `json:"id,omitempty,string"` @@ -60224,6 +60306,12 @@ type VpnGatewayVpnGatewayInterface struct { // address must be a regional external IP address. IpAddress string `json:"ipAddress,omitempty"` + // Ipv6Address: [Output Only] IPv6 address for this VPN interface + // associated with the VPN gateway. The IPv6 address must be a regional + // external IPv6 address. The format is RFC 5952 format (e.g. + // 2001:db8::2d9:51:0:0). + Ipv6Address string `json:"ipv6Address,omitempty"` + // ForceSendFields is a list of field names (e.g. "Id") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any @@ -99432,6 +99520,7 @@ func (c *InstanceGroupManagersSetAutoHealingPoliciesCall) Do(opts ...googleapi.C } return ret, nil // { + // "deprecated": true, // "description": "Motifies the autohealing policy for the instances in this managed instance group. [Deprecated] This method is deprecated. Use instanceGroupManagers.patch instead.", // "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setAutoHealingPolicies", // "httpMethod": "POST", @@ -111419,6 +111508,22 @@ func (r *InstancesService) SimulateMaintenanceEvent(project string, zone string, return c } +// RequestId sets the optional parameter "requestId": 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). +func (c *InstancesSimulateMaintenanceEventCall) RequestId(requestId string) *InstancesSimulateMaintenanceEventCall { + c.urlParams_.Set("requestId", requestId) + return c +} + // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. @@ -111531,6 +111636,11 @@ func (c *InstancesSimulateMaintenanceEventCall) Do(opts ...googleapi.CallOption) // "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", @@ -159491,6 +159601,7 @@ func (c *RegionInstanceGroupManagersSetAutoHealingPoliciesCall) Do(opts ...googl } return ret, nil // { + // "deprecated": true, // "description": "Modifies the autohealing policy for the instances in this managed instance group. [Deprecated] This method is deprecated. Use regionInstanceGroupManagers.patch instead.", // "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setAutoHealingPolicies", // "httpMethod": "POST", @@ -168434,6 +168545,185 @@ func (c *RegionOperationsWaitCall) Do(opts ...googleapi.CallOption) (*Operation, } +// method id "compute.regionSecurityPolicies.addRule": + +type RegionSecurityPoliciesAddRuleCall struct { + s *Service + project string + region string + securityPolicy string + securitypolicyrule *SecurityPolicyRule + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// AddRule: Inserts a rule into a security policy. +// +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +// - securityPolicy: Name of the security policy to update. +func (r *RegionSecurityPoliciesService) AddRule(project string, region string, securityPolicy string, securitypolicyrule *SecurityPolicyRule) *RegionSecurityPoliciesAddRuleCall { + c := &RegionSecurityPoliciesAddRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.securityPolicy = securityPolicy + c.securitypolicyrule = securitypolicyrule + return c +} + +// ValidateOnly sets the optional parameter "validateOnly": If true, the +// request will not be committed. +func (c *RegionSecurityPoliciesAddRuleCall) ValidateOnly(validateOnly bool) *RegionSecurityPoliciesAddRuleCall { + c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *RegionSecurityPoliciesAddRuleCall) Fields(s ...googleapi.Field) *RegionSecurityPoliciesAddRuleCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *RegionSecurityPoliciesAddRuleCall) Context(ctx context.Context) *RegionSecurityPoliciesAddRuleCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *RegionSecurityPoliciesAddRuleCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *RegionSecurityPoliciesAddRuleCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyrule) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/addRule") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + "securityPolicy": c.securityPolicy, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.regionSecurityPolicies.addRule" call. +// Exactly one of *Operation or error will be non-nil. Any non-2xx +// status code is an error. Response headers are in either +// *Operation.ServerResponse.Header or (if a response was returned at +// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified +// to check whether the returned error was because +// http.StatusNotModified was returned. +func (c *RegionSecurityPoliciesAddRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Inserts a rule into a security policy.", + // "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/addRule", + // "httpMethod": "POST", + // "id": "compute.regionSecurityPolicies.addRule", + // "parameterOrder": [ + // "project", + // "region", + // "securityPolicy" + // ], + // "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 scoping this request.", + // "location": "path", + // "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + // "required": true, + // "type": "string" + // }, + // "securityPolicy": { + // "description": "Name of the security 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" + // }, + // "validateOnly": { + // "description": "If true, the request will not be committed.", + // "location": "query", + // "type": "boolean" + // } + // }, + // "path": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/addRule", + // "request": { + // "$ref": "SecurityPolicyRule" + // }, + // "response": { + // "$ref": "Operation" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/compute" + // ] + // } + +} + // method id "compute.regionSecurityPolicies.delete": type RegionSecurityPoliciesDeleteCall struct { @@ -168785,6 +169075,192 @@ func (c *RegionSecurityPoliciesGetCall) Do(opts ...googleapi.CallOption) (*Secur } +// method id "compute.regionSecurityPolicies.getRule": + +type RegionSecurityPoliciesGetRuleCall struct { + s *Service + project string + region string + securityPolicy string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// GetRule: Gets a rule at the specified priority. +// +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +// - securityPolicy: Name of the security policy to which the queried +// rule belongs. +func (r *RegionSecurityPoliciesService) GetRule(project string, region string, securityPolicy string) *RegionSecurityPoliciesGetRuleCall { + c := &RegionSecurityPoliciesGetRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.securityPolicy = securityPolicy + return c +} + +// Priority sets the optional parameter "priority": The priority of the +// rule to get from the security policy. +func (c *RegionSecurityPoliciesGetRuleCall) Priority(priority int64) *RegionSecurityPoliciesGetRuleCall { + c.urlParams_.Set("priority", fmt.Sprint(priority)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *RegionSecurityPoliciesGetRuleCall) Fields(s ...googleapi.Field) *RegionSecurityPoliciesGetRuleCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *RegionSecurityPoliciesGetRuleCall) IfNoneMatch(entityTag string) *RegionSecurityPoliciesGetRuleCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *RegionSecurityPoliciesGetRuleCall) Context(ctx context.Context) *RegionSecurityPoliciesGetRuleCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *RegionSecurityPoliciesGetRuleCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *RegionSecurityPoliciesGetRuleCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/getRule") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + "securityPolicy": c.securityPolicy, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.regionSecurityPolicies.getRule" call. +// Exactly one of *SecurityPolicyRule or error will be non-nil. Any +// non-2xx status code is an error. Response headers are in either +// *SecurityPolicyRule.ServerResponse.Header or (if a response was +// returned at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *RegionSecurityPoliciesGetRuleCall) Do(opts ...googleapi.CallOption) (*SecurityPolicyRule, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &SecurityPolicyRule{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Gets a rule at the specified priority.", + // "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/getRule", + // "httpMethod": "GET", + // "id": "compute.regionSecurityPolicies.getRule", + // "parameterOrder": [ + // "project", + // "region", + // "securityPolicy" + // ], + // "parameters": { + // "priority": { + // "description": "The priority of the rule to get from the security 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" + // }, + // "region": { + // "description": "Name of the region scoping this request.", + // "location": "path", + // "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + // "required": true, + // "type": "string" + // }, + // "securityPolicy": { + // "description": "Name of the security 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" + // } + // }, + // "path": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/getRule", + // "response": { + // "$ref": "SecurityPolicyRule" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/compute", + // "https://www.googleapis.com/auth/compute.readonly" + // ] + // } + +} + // method id "compute.regionSecurityPolicies.insert": type RegionSecurityPoliciesInsertCall struct { @@ -169458,6 +169934,370 @@ func (c *RegionSecurityPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Ope } +// method id "compute.regionSecurityPolicies.patchRule": + +type RegionSecurityPoliciesPatchRuleCall struct { + s *Service + project string + region string + securityPolicy string + securitypolicyrule *SecurityPolicyRule + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// PatchRule: Patches a rule at the specified priority. To clear fields +// in the rule, leave the fields empty and specify them in the +// updateMask. +// +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +// - securityPolicy: Name of the security policy to update. +func (r *RegionSecurityPoliciesService) PatchRule(project string, region string, securityPolicy string, securitypolicyrule *SecurityPolicyRule) *RegionSecurityPoliciesPatchRuleCall { + c := &RegionSecurityPoliciesPatchRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.securityPolicy = securityPolicy + c.securitypolicyrule = securitypolicyrule + return c +} + +// Priority sets the optional parameter "priority": The priority of the +// rule to patch. +func (c *RegionSecurityPoliciesPatchRuleCall) Priority(priority int64) *RegionSecurityPoliciesPatchRuleCall { + c.urlParams_.Set("priority", fmt.Sprint(priority)) + return c +} + +// ValidateOnly sets the optional parameter "validateOnly": If true, the +// request will not be committed. +func (c *RegionSecurityPoliciesPatchRuleCall) ValidateOnly(validateOnly bool) *RegionSecurityPoliciesPatchRuleCall { + c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *RegionSecurityPoliciesPatchRuleCall) Fields(s ...googleapi.Field) *RegionSecurityPoliciesPatchRuleCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *RegionSecurityPoliciesPatchRuleCall) Context(ctx context.Context) *RegionSecurityPoliciesPatchRuleCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *RegionSecurityPoliciesPatchRuleCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *RegionSecurityPoliciesPatchRuleCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyrule) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/patchRule") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + "securityPolicy": c.securityPolicy, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.regionSecurityPolicies.patchRule" call. +// Exactly one of *Operation or error will be non-nil. Any non-2xx +// status code is an error. Response headers are in either +// *Operation.ServerResponse.Header or (if a response was returned at +// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified +// to check whether the returned error was because +// http.StatusNotModified was returned. +func (c *RegionSecurityPoliciesPatchRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Patches a rule at the specified priority. To clear fields in the rule, leave the fields empty and specify them in the updateMask.", + // "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/patchRule", + // "httpMethod": "POST", + // "id": "compute.regionSecurityPolicies.patchRule", + // "parameterOrder": [ + // "project", + // "region", + // "securityPolicy" + // ], + // "parameters": { + // "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" + // }, + // "region": { + // "description": "Name of the region scoping this request.", + // "location": "path", + // "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + // "required": true, + // "type": "string" + // }, + // "securityPolicy": { + // "description": "Name of the security 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" + // }, + // "validateOnly": { + // "description": "If true, the request will not be committed.", + // "location": "query", + // "type": "boolean" + // } + // }, + // "path": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/patchRule", + // "request": { + // "$ref": "SecurityPolicyRule" + // }, + // "response": { + // "$ref": "Operation" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/compute" + // ] + // } + +} + +// method id "compute.regionSecurityPolicies.removeRule": + +type RegionSecurityPoliciesRemoveRuleCall struct { + s *Service + project string + region string + securityPolicy string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// RemoveRule: Deletes a rule at the specified priority. +// +// - project: Project ID for this request. +// - region: Name of the region scoping this request. +// - securityPolicy: Name of the security policy to update. +func (r *RegionSecurityPoliciesService) RemoveRule(project string, region string, securityPolicy string) *RegionSecurityPoliciesRemoveRuleCall { + c := &RegionSecurityPoliciesRemoveRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.securityPolicy = securityPolicy + return c +} + +// Priority sets the optional parameter "priority": The priority of the +// rule to remove from the security policy. +func (c *RegionSecurityPoliciesRemoveRuleCall) Priority(priority int64) *RegionSecurityPoliciesRemoveRuleCall { + c.urlParams_.Set("priority", fmt.Sprint(priority)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *RegionSecurityPoliciesRemoveRuleCall) Fields(s ...googleapi.Field) *RegionSecurityPoliciesRemoveRuleCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *RegionSecurityPoliciesRemoveRuleCall) Context(ctx context.Context) *RegionSecurityPoliciesRemoveRuleCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *RegionSecurityPoliciesRemoveRuleCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *RegionSecurityPoliciesRemoveRuleCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/removeRule") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + "securityPolicy": c.securityPolicy, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.regionSecurityPolicies.removeRule" call. +// Exactly one of *Operation or error will be non-nil. Any non-2xx +// status code is an error. Response headers are in either +// *Operation.ServerResponse.Header or (if a response was returned at +// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified +// to check whether the returned error was because +// http.StatusNotModified was returned. +func (c *RegionSecurityPoliciesRemoveRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Deletes a rule at the specified priority.", + // "flatPath": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/removeRule", + // "httpMethod": "POST", + // "id": "compute.regionSecurityPolicies.removeRule", + // "parameterOrder": [ + // "project", + // "region", + // "securityPolicy" + // ], + // "parameters": { + // "priority": { + // "description": "The priority of the rule to remove from the security 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" + // }, + // "region": { + // "description": "Name of the region scoping this request.", + // "location": "path", + // "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + // "required": true, + // "type": "string" + // }, + // "securityPolicy": { + // "description": "Name of the security 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" + // } + // }, + // "path": "projects/{project}/regions/{region}/securityPolicies/{securityPolicy}/removeRule", + // "response": { + // "$ref": "Operation" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/compute" + // ] + // } + +} + // method id "compute.regionSslCertificates.delete": type RegionSslCertificatesDeleteCall struct { diff --git a/compute/v1/compute-api.json b/compute/v1/compute-api.json index 43b0fa5e5fd..408f9253b96 100644 --- a/compute/v1/compute-api.json +++ b/compute/v1/compute-api.json @@ -550,6 +550,56 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, + "move": { + "description": "Moves the specified address resource.", + "flatPath": "projects/{project}/regions/{region}/addresses/{address}/move", + "httpMethod": "POST", + "id": "compute.addresses.move", + "parameterOrder": [ + "project", + "region", + "address" + ], + "parameters": { + "address": { + "description": "Name of the address resource to move.", + "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": "Source project ID which the Address is moved from.", + "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" + } + }, + "path": "projects/{project}/regions/{region}/addresses/{address}/move", + "request": { + "$ref": "RegionAddressesMoveRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "setLabels": { "description": "Sets the labels on an Address. To learn more about labels, read the Labeling Resources documentation.", "flatPath": "projects/{project}/regions/{region}/addresses/{resource}/setLabels", @@ -4497,6 +4547,48 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, + "move": { + "description": "Moves the specified address resource from one project to another project.", + "flatPath": "projects/{project}/global/addresses/{address}/move", + "httpMethod": "POST", + "id": "compute.globalAddresses.move", + "parameterOrder": [ + "project", + "address" + ], + "parameters": { + "address": { + "description": "Name of the address resource to move.", + "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": "Source project ID which the Address is moved from.", + "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/addresses/{address}/move", + "request": { + "$ref": "GlobalAddressesMoveRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "setLabels": { "description": "Sets the labels on a GlobalAddress. To learn more about labels, read the Labeling Resources documentation.", "flatPath": "projects/{project}/global/addresses/{resource}/setLabels", @@ -10647,6 +10739,11 @@ "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", @@ -21237,6 +21334,205 @@ } } }, + "regionInstanceTemplates": { + "methods": { + "delete": { + "description": "Deletes the specified instance template. Deleting an instance template is permanent and cannot be undone.", + "flatPath": "projects/{project}/regions/{region}/instanceTemplates/{instanceTemplate}", + "httpMethod": "DELETE", + "id": "compute.regionInstanceTemplates.delete", + "parameterOrder": [ + "project", + "region", + "instanceTemplate" + ], + "parameters": { + "instanceTemplate": { + "description": "The name of the instance template to delete.", + "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" + }, + "region": { + "description": "The 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" + } + }, + "path": "projects/{project}/regions/{region}/instanceTemplates/{instanceTemplate}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "description": "Returns the specified instance template.", + "flatPath": "projects/{project}/regions/{region}/instanceTemplates/{instanceTemplate}", + "httpMethod": "GET", + "id": "compute.regionInstanceTemplates.get", + "parameterOrder": [ + "project", + "region", + "instanceTemplate" + ], + "parameters": { + "instanceTemplate": { + "description": "The name of the instance template.", + "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" + }, + "region": { + "description": "The name of the region for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/instanceTemplates/{instanceTemplate}", + "response": { + "$ref": "InstanceTemplate" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "description": "Creates an instance template in the specified project and region using the global instance template whose URL is included in the request.", + "flatPath": "projects/{project}/regions/{region}/instanceTemplates", + "httpMethod": "POST", + "id": "compute.regionInstanceTemplates.insert", + "parameterOrder": [ + "project", + "region" + ], + "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": "The 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" + } + }, + "path": "projects/{project}/regions/{region}/instanceTemplates", + "request": { + "$ref": "InstanceTemplate" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "description": "Retrieves a list of instance templates that are contained within the specified project and region.", + "flatPath": "projects/{project}/regions/{region}/instanceTemplates", + "httpMethod": "GET", + "id": "compute.regionInstanceTemplates.list", + "parameterOrder": [ + "project", + "region" + ], + "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. 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 `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. 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`.", + "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": "The name of the regions 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.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/regions/{region}/instanceTemplates", + "response": { + "$ref": "InstanceTemplateList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + } + } + }, "regionInstances": { "methods": { "bulkInsert": { @@ -32979,7 +33275,7 @@ } } }, - "revision": "20230403", + "revision": "20230418", "rootUrl": "https://compute.googleapis.com/", "schemas": { "AcceleratorConfig": { @@ -33525,6 +33821,18 @@ "description": "[Output Only] Type of the resource. Always compute#address for addresses.", "type": "string" }, + "labelFingerprint": { + "description": "A fingerprint for the labels being applied to this Address, 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 an Address.", + "format": "byte", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels for this resource. These can only be added or modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.", + "type": "object" + }, "name": { "annotations": { "required": [ @@ -36998,6 +37306,7 @@ "GENERAL_PURPOSE_N2", "GENERAL_PURPOSE_N2D", "GENERAL_PURPOSE_T2D", + "GRAPHICS_OPTIMIZED", "MEMORY_OPTIMIZED", "MEMORY_OPTIMIZED_M3", "TYPE_UNSPECIFIED" @@ -37014,6 +37323,7 @@ "", "", "", + "", "" ], "type": "string" @@ -37664,6 +37974,17 @@ ], "type": "string" }, + "asyncPrimaryDisk": { + "$ref": "DiskAsyncReplication", + "description": "Disk asynchronously replicated into this disk." + }, + "asyncSecondaryDisks": { + "additionalProperties": { + "$ref": "DiskAsyncReplicationList" + }, + "description": "[Output Only] A list of disks this disk is asynchronously replicated to.", + "type": "object" + }, "creationTimestamp": { "description": "[Output Only] Creation timestamp in RFC3339 text format.", "type": "string" @@ -37778,6 +38099,10 @@ }, "type": "array" }, + "resourceStatus": { + "$ref": "DiskResourceStatus", + "description": "[Output Only] Status information for the disk resource." + }, "satisfiesPzs": { "description": "[Output Only] Reserved for future use.", "type": "boolean" @@ -37791,6 +38116,14 @@ "format": "int64", "type": "string" }, + "sourceConsistencyGroupPolicy": { + "description": "[Output Only] URL of the DiskConsistencyGroupPolicy for a secondary disk that was created using a consistency group.", + "type": "string" + }, + "sourceConsistencyGroupPolicyId": { + "description": "[Output Only] ID of the DiskConsistencyGroupPolicy for a secondary disk that was created using a consistency group.", + "type": "string" + }, "sourceDisk": { "description": "The source disk used to create this disk. 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 /disks/disk - https://www.googleapis.com/compute/v1/projects/project/regions/region /disks/disk - projects/project/zones/zone/disks/disk - projects/project/regions/region/disks/disk - zones/zone/disks/disk - regions/region/disks/disk ", "type": "string" @@ -37990,6 +38323,37 @@ }, "type": "object" }, + "DiskAsyncReplication": { + "id": "DiskAsyncReplication", + "properties": { + "consistencyGroupPolicy": { + "description": "[Output Only] URL of the DiskConsistencyGroupPolicy if replication was started on the disk as a member of a group.", + "type": "string" + }, + "consistencyGroupPolicyId": { + "description": "[Output Only] ID of the DiskConsistencyGroupPolicy if replication was started on the disk as a member of a group.", + "type": "string" + }, + "disk": { + "description": "The other disk asynchronously replicated to or from the current disk. 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 /disks/disk - projects/project/zones/zone/disks/disk - zones/zone/disks/disk ", + "type": "string" + }, + "diskId": { + "description": "[Output Only] The unique ID of the other disk asynchronously replicated to or from the current disk. This value identifies the exact disk that was used to create this replication. For example, if you started replicating the persistent disk from a disk that was later deleted and recreated under the same name, the disk ID would identify the exact version of the disk that was used.", + "type": "string" + } + }, + "type": "object" + }, + "DiskAsyncReplicationList": { + "id": "DiskAsyncReplicationList", + "properties": { + "asyncReplicationDisk": { + "$ref": "DiskAsyncReplication" + } + }, + "type": "object" + }, "DiskInstantiationConfig": { "description": "A specification of the desired way to instantiate a disk in the instance template when its created from a source instance.", "id": "DiskInstantiationConfig", @@ -38179,6 +38543,47 @@ }, "type": "object" }, + "DiskResourceStatus": { + "id": "DiskResourceStatus", + "properties": { + "asyncPrimaryDisk": { + "$ref": "DiskResourceStatusAsyncReplicationStatus" + }, + "asyncSecondaryDisks": { + "additionalProperties": { + "$ref": "DiskResourceStatusAsyncReplicationStatus" + }, + "description": "Key: disk, value: AsyncReplicationStatus message", + "type": "object" + } + }, + "type": "object" + }, + "DiskResourceStatusAsyncReplicationStatus": { + "id": "DiskResourceStatusAsyncReplicationStatus", + "properties": { + "state": { + "enum": [ + "ACTIVE", + "CREATED", + "STARTING", + "STATE_UNSPECIFIED", + "STOPPED", + "STOPPING" + ], + "enumDescriptions": [ + "Replication is active.", + "Secondary disk is created and is waiting for replication to start.", + "Replication is starting.", + "", + "Replication is stopped.", + "Replication is stopping." + ], + "type": "string" + } + }, + "type": "object" + }, "DiskType": { "description": "Represents a Disk Type resource. Google Compute Engine has two Disk Type resources: * [Regional](/compute/docs/reference/rest/v1/regionDiskTypes) * [Zonal](/compute/docs/reference/rest/v1/diskTypes) You can choose from a variety of disk types based on your needs. For more information, read Storage options. The diskTypes resource represents disk types for a zonal persistent disk. For more information, read Zonal persistent disks. The regionDiskTypes resource represents disk types for a regional persistent disk. For more information, read Regional persistent disks.", "id": "DiskType", @@ -40639,6 +41044,20 @@ }, "type": "object" }, + "GlobalAddressesMoveRequest": { + "id": "GlobalAddressesMoveRequest", + "properties": { + "description": { + "description": "An optional destination address description if intended to be different from the source.", + "type": "string" + }, + "destinationAddress": { + "description": "The URL of the destination address to move to. This can be a full or partial URL. For example, the following are all valid URLs to a address: - https://www.googleapis.com/compute/v1/projects/project /global/addresses/address - projects/project/global/addresses/address Note that destination project must be different from the source project. So /global/addresses/address is not valid partial url.", + "type": "string" + } + }, + "type": "object" + }, "GlobalNetworkEndpointGroupsAttachEndpointsRequest": { "id": "GlobalNetworkEndpointGroupsAttachEndpointsRequest", "properties": { @@ -40986,7 +41405,7 @@ "type": "object" }, "HealthCheck": { - "description": "Represents a Health Check resource. Google Compute Engine has two Health Check resources: * [Global](/compute/docs/reference/rest/v1/healthChecks) * [Regional](/compute/docs/reference/rest/v1/regionHealthChecks) Internal HTTP(S) load balancers must use regional health checks (`compute.v1.regionHealthChecks`). Traffic Director must use global health checks (`compute.v1.HealthChecks`). Internal TCP/UDP load balancers can use either regional or global health checks (`compute.v1.regionHealthChecks` or `compute.v1.HealthChecks`). External HTTP(S), TCP proxy, and SSL proxy load balancers as well as managed instance group auto-healing must use global health checks (`compute.v1.HealthChecks`). Backend service-based network load balancers must use regional health checks (`compute.v1.regionHealthChecks`). Target pool-based network load balancers must use legacy HTTP health checks (`compute.v1.httpHealthChecks`). For more information, see Health checks overview.", + "description": "Represents a Health Check resource. Google Compute Engine has two Health Check resources: * [Global](/compute/docs/reference/rest/v1/healthChecks) * [Regional](/compute/docs/reference/rest/v1/regionHealthChecks) Internal HTTP(S) load balancers must use regional health checks (`compute.v1.regionHealthChecks`). Traffic Director must use global health checks (`compute.v1.healthChecks`). Internal TCP/UDP load balancers can use either regional or global health checks (`compute.v1.regionHealthChecks` or `compute.v1.healthChecks`). External HTTP(S), TCP proxy, and SSL proxy load balancers as well as managed instance group auto-healing must use global health checks (`compute.v1.healthChecks`). Backend service-based network load balancers must use regional health checks (`compute.v1.regionHealthChecks`). Target pool-based network load balancers must use legacy HTTP health checks (`compute.v1.httpHealthChecks`). For more information, see Health checks overview.", "id": "HealthCheck", "properties": { "checkIntervalSec": { @@ -46299,6 +46718,18 @@ "description": "[Output Only] Type of the resource. Always compute#interconnect for interconnects.", "type": "string" }, + "labelFingerprint": { + "description": "A fingerprint for the labels being applied to this Interconnect, 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 an Interconnect.", + "format": "byte", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels for this resource. These can only be added or modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.", + "type": "object" + }, "linkType": { "description": "Type of link requested, which can take one of the following values: - LINK_TYPE_ETHERNET_10G_LR: A 10G Ethernet with LR optics - LINK_TYPE_ETHERNET_100G_LR: A 100G Ethernet with LR optics. Note that this field indicates the speed of each of the links in the bundle, not the speed of the entire bundle.", "enum": [ @@ -46520,6 +46951,18 @@ "description": "[Output Only] Type of the resource. Always compute#interconnectAttachment for interconnect attachments.", "type": "string" }, + "labelFingerprint": { + "description": "A fingerprint for the labels being applied to this InterconnectAttachment, 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 an InterconnectAttachment.", + "format": "byte", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels for this resource. These can only be added or modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.", + "type": "object" + }, "mtu": { "description": "Maximum Transmission Unit (MTU), in bytes, of packets passing through this interconnect attachment. Only 1440 and 1500 are allowed. If not specified, the value will default to 1440.", "format": "int32", @@ -55411,6 +55854,7 @@ "COMMITTED_NVIDIA_A100_80GB_GPUS", "COMMITTED_NVIDIA_A100_GPUS", "COMMITTED_NVIDIA_K80_GPUS", + "COMMITTED_NVIDIA_L4_GPUS", "COMMITTED_NVIDIA_P100_GPUS", "COMMITTED_NVIDIA_P4_GPUS", "COMMITTED_NVIDIA_T4_GPUS", @@ -55567,6 +56011,7 @@ "", "", "", + "", "Guest CPUs", "", "", @@ -55817,6 +56262,20 @@ }, "type": "object" }, + "RegionAddressesMoveRequest": { + "id": "RegionAddressesMoveRequest", + "properties": { + "description": { + "description": "An optional destination address description if intended to be different from the source.", + "type": "string" + }, + "destinationAddress": { + "description": "The URL of the destination address to move to. This can be a full or partial URL. For example, the following are all valid URLs to a address: - https://www.googleapis.com/compute/v1/projects/project/regions/region /addresses/address - projects/project/regions/region/addresses/address Note that destination project must be different from the source project. So /regions/region/addresses/address is not valid partial url.", + "type": "string" + } + }, + "type": "object" + }, "RegionAutoscalerList": { "description": "Contains a list of autoscalers.", "id": "RegionAutoscalerList", @@ -60624,6 +61083,18 @@ "description": "[Output only] Type of the resource. Always compute#securityPolicyfor security policies", "type": "string" }, + "labelFingerprint": { + "description": "A fingerprint for the labels being applied to this security policy, 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. To see the latest fingerprint, make get() request to the security policy.", + "format": "byte", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels for this resource. These can only be added or modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.", + "type": "object" + }, "name": { "description": "Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", @@ -61415,6 +61886,10 @@ "$ref": "Uint128", "description": "[Output Only] An 128-bit global unique ID of the PSC service attachment." }, + "reconcileConnections": { + "description": "This flag determines whether a consumer accept/reject list change can reconcile the statuses of existing ACCEPTED or REJECTED PSC endpoints. - If false, connection policy update will only affect existing PENDING PSC endpoints. Existing ACCEPTED/REJECTED endpoints will remain untouched regardless how the connection policy is modified . - If true, update will affect both PENDING and ACCEPTED/REJECTED PSC endpoints. For example, an ACCEPTED PSC endpoint will be moved to REJECTED if its project is added to the reject list. For newly created service attachment, this boolean defaults to true.", + "type": "boolean" + }, "region": { "description": "[Output Only] URL of the region where the service attachment resides. This field applies only to the region resource. 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" @@ -64765,7 +65240,7 @@ "id": "TargetHttpsProxiesSetCertificateMapRequest", "properties": { "certificateMap": { - "description": "URL of the Certificate Map to associate with this TargetHttpsProxy.", + "description": "URL of the Certificate Map to associate with this TargetHttpsProxy. Accepted format is //certificatemanager.googleapis.com/projects/{project }/locations/{location}/certificateMaps/{resourceName}.", "type": "string" } }, @@ -64813,7 +65288,7 @@ "type": "string" }, "certificateMap": { - "description": "URL of a certificate map that identifies a certificate map associated with the given target proxy. This field can only be set for global target proxies. If set, sslCertificates will be ignored.", + "description": "URL of a certificate map that identifies a certificate map associated with the given target proxy. This field can only be set for global target proxies. If set, sslCertificates will be ignored. Accepted format is //certificatemanager.googleapis.com/projects/{project }/locations/{location}/certificateMaps/{resourceName}.", "type": "string" }, "creationTimestamp": { @@ -66070,7 +66545,7 @@ "id": "TargetSslProxiesSetCertificateMapRequest", "properties": { "certificateMap": { - "description": "URL of the Certificate Map to associate with this TargetSslProxy.", + "description": "URL of the Certificate Map to associate with this TargetSslProxy. Accepted format is //certificatemanager.googleapis.com/projects/{project }/locations/{location}/certificateMaps/{resourceName}.", "type": "string" } }, @@ -66112,7 +66587,7 @@ "id": "TargetSslProxy", "properties": { "certificateMap": { - "description": "URL of a certificate map that identifies a certificate map associated with the given target proxy. This field can only be set for global target proxies. If set, sslCertificates will be ignored.", + "description": "URL of a certificate map that identifies a certificate map associated with the given target proxy. This field can only be set for global target proxies. If set, sslCertificates will be ignored. Accepted format is //certificatemanager.googleapis.com/projects/{project }/locations/{location}/certificateMaps/{resourceName}.", "type": "string" }, "creationTimestamp": { @@ -66756,6 +67231,18 @@ "description": "[Output Only] Type of resource. Always compute#targetVpnGateway for target VPN gateways.", "type": "string" }, + "labelFingerprint": { + "description": "A fingerprint for the labels being applied to this TargetVpnGateway, 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 TargetVpnGateway.", + "format": "byte", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels for this resource. These can only be added or modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.", + "type": "object" + }, "name": { "annotations": { "required": [ @@ -68852,6 +69339,18 @@ "description": "[Output Only] Type of resource. Always compute#vpnTunnel for VPN tunnels.", "type": "string" }, + "labelFingerprint": { + "description": "A fingerprint for the labels being applied to this VpnTunnel, 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 VpnTunnel.", + "format": "byte", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels for this resource. These can only be added or modified by the setLabels method. Each label key/value pair must comply with RFC1035. Label values may be empty.", + "type": "object" + }, "localTrafficSelector": { "description": "Local traffic selector to use when establishing the VPN tunnel with the peer VPN gateway. The value should be a CIDR formatted string, for example: 192.168.0.0/16. The ranges must be disjoint. Only IPv4 is supported.", "items": { diff --git a/compute/v1/compute-gen.go b/compute/v1/compute-gen.go index a7f1169032c..125af4f68dc 100644 --- a/compute/v1/compute-gen.go +++ b/compute/v1/compute-gen.go @@ -199,6 +199,7 @@ func New(client *http.Client) (*Service, error) { s.RegionHealthChecks = NewRegionHealthChecksService(s) s.RegionInstanceGroupManagers = NewRegionInstanceGroupManagersService(s) s.RegionInstanceGroups = NewRegionInstanceGroupsService(s) + s.RegionInstanceTemplates = NewRegionInstanceTemplatesService(s) s.RegionInstances = NewRegionInstancesService(s) s.RegionNetworkEndpointGroups = NewRegionNetworkEndpointGroupsService(s) s.RegionNetworkFirewallPolicies = NewRegionNetworkFirewallPoliciesService(s) @@ -351,6 +352,8 @@ type Service struct { RegionInstanceGroups *RegionInstanceGroupsService + RegionInstanceTemplates *RegionInstanceTemplatesService + RegionInstances *RegionInstancesService RegionNetworkEndpointGroups *RegionNetworkEndpointGroupsService @@ -917,6 +920,15 @@ type RegionInstanceGroupsService struct { s *Service } +func NewRegionInstanceTemplatesService(s *Service) *RegionInstanceTemplatesService { + rs := &RegionInstanceTemplatesService{s: s} + return rs +} + +type RegionInstanceTemplatesService struct { + s *Service +} + func NewRegionInstancesService(s *Service) *RegionInstancesService { rs := &RegionInstancesService{s: s} return rs @@ -2058,6 +2070,21 @@ type Address struct { // addresses. Kind string `json:"kind,omitempty"` + // LabelFingerprint: A fingerprint for the labels being applied to this + // Address, 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 an Address. + LabelFingerprint string `json:"labelFingerprint,omitempty"` + + // Labels: Labels for this resource. These can only be added or modified + // by the setLabels method. Each label key/value pair must comply with + // RFC1035. Label values may be empty. + Labels map[string]string `json:"labels,omitempty"` + // Name: 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 @@ -7726,6 +7753,7 @@ type Commitment struct { // "GENERAL_PURPOSE_N2" // "GENERAL_PURPOSE_N2D" // "GENERAL_PURPOSE_T2D" + // "GRAPHICS_OPTIMIZED" // "MEMORY_OPTIMIZED" // "MEMORY_OPTIMIZED_M3" // "TYPE_UNSPECIFIED" @@ -8773,6 +8801,13 @@ type Disk struct { // "X86_64" - Machines with architecture X86_64 Architecture string `json:"architecture,omitempty"` + // AsyncPrimaryDisk: Disk asynchronously replicated into this disk. + AsyncPrimaryDisk *DiskAsyncReplication `json:"asyncPrimaryDisk,omitempty"` + + // AsyncSecondaryDisks: [Output Only] A list of disks this disk is + // asynchronously replicated to. + AsyncSecondaryDisks map[string]DiskAsyncReplicationList `json:"asyncSecondaryDisks,omitempty"` + // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text // format. CreationTimestamp string `json:"creationTimestamp,omitempty"` @@ -8891,6 +8926,10 @@ type Disk struct { // automatic snapshot creations. ResourcePolicies []string `json:"resourcePolicies,omitempty"` + // ResourceStatus: [Output Only] Status information for the disk + // resource. + ResourceStatus *DiskResourceStatus `json:"resourceStatus,omitempty"` + // SatisfiesPzs: [Output Only] Reserved for future use. SatisfiesPzs bool `json:"satisfiesPzs,omitempty"` @@ -8906,6 +8945,16 @@ type Disk struct { // source. Acceptable values are 1 to 65536, inclusive. SizeGb int64 `json:"sizeGb,omitempty,string"` + // SourceConsistencyGroupPolicy: [Output Only] URL of the + // DiskConsistencyGroupPolicy for a secondary disk that was created + // using a consistency group. + SourceConsistencyGroupPolicy string `json:"sourceConsistencyGroupPolicy,omitempty"` + + // SourceConsistencyGroupPolicyId: [Output Only] ID of the + // DiskConsistencyGroupPolicy for a secondary disk that was created + // using a consistency group. + SourceConsistencyGroupPolicyId string `json:"sourceConsistencyGroupPolicyId,omitempty"` + // SourceDisk: The source disk used to create this disk. You can provide // this as a partial or full URL to the resource. For example, the // following are valid values: - @@ -9230,6 +9279,86 @@ func (s *DiskAggregatedListWarningData) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +type DiskAsyncReplication struct { + // ConsistencyGroupPolicy: [Output Only] URL of the + // DiskConsistencyGroupPolicy if replication was started on the disk as + // a member of a group. + ConsistencyGroupPolicy string `json:"consistencyGroupPolicy,omitempty"` + + // ConsistencyGroupPolicyId: [Output Only] ID of the + // DiskConsistencyGroupPolicy if replication was started on the disk as + // a member of a group. + ConsistencyGroupPolicyId string `json:"consistencyGroupPolicyId,omitempty"` + + // Disk: The other disk asynchronously replicated to or from the current + // disk. 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 + // /disks/disk - projects/project/zones/zone/disks/disk - + // zones/zone/disks/disk + Disk string `json:"disk,omitempty"` + + // DiskId: [Output Only] The unique ID of the other disk asynchronously + // replicated to or from the current disk. This value identifies the + // exact disk that was used to create this replication. For example, if + // you started replicating the persistent disk from a disk that was + // later deleted and recreated under the same name, the disk ID would + // identify the exact version of the disk that was used. + DiskId string `json:"diskId,omitempty"` + + // ForceSendFields is a list of field names (e.g. + // "ConsistencyGroupPolicy") to unconditionally include in API requests. + // By default, fields with empty or default values are omitted from API + // requests. However, any non-pointer, non-interface field appearing in + // ForceSendFields will be sent to the server regardless of whether the + // field is empty or not. This may be used to include empty fields in + // Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "ConsistencyGroupPolicy") + // to include in API requests with the JSON null value. By default, + // fields with empty values are omitted from API requests. However, any + // field with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *DiskAsyncReplication) MarshalJSON() ([]byte, error) { + type NoMethod DiskAsyncReplication + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type DiskAsyncReplicationList struct { + AsyncReplicationDisk *DiskAsyncReplication `json:"asyncReplicationDisk,omitempty"` + + // ForceSendFields is a list of field names (e.g. + // "AsyncReplicationDisk") to unconditionally include in API requests. + // By default, fields with empty or default values are omitted from API + // requests. However, any non-pointer, non-interface field appearing in + // ForceSendFields will be sent to the server regardless of whether the + // field is empty or not. This may be used to include empty fields in + // Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "AsyncReplicationDisk") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *DiskAsyncReplicationList) MarshalJSON() ([]byte, error) { + type NoMethod DiskAsyncReplicationList + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // DiskInstantiationConfig: A specification of the desired way to // instantiate a disk in the instance template when its created from a // source instance. @@ -9571,6 +9700,70 @@ func (s *DiskParams) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +type DiskResourceStatus struct { + AsyncPrimaryDisk *DiskResourceStatusAsyncReplicationStatus `json:"asyncPrimaryDisk,omitempty"` + + // AsyncSecondaryDisks: Key: disk, value: AsyncReplicationStatus message + AsyncSecondaryDisks map[string]DiskResourceStatusAsyncReplicationStatus `json:"asyncSecondaryDisks,omitempty"` + + // ForceSendFields is a list of field names (e.g. "AsyncPrimaryDisk") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "AsyncPrimaryDisk") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *DiskResourceStatus) MarshalJSON() ([]byte, error) { + type NoMethod DiskResourceStatus + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +type DiskResourceStatusAsyncReplicationStatus struct { + // Possible values: + // "ACTIVE" - Replication is active. + // "CREATED" - Secondary disk is created and is waiting for + // replication to start. + // "STARTING" - Replication is starting. + // "STATE_UNSPECIFIED" + // "STOPPED" - Replication is stopped. + // "STOPPING" - Replication is stopping. + State string `json:"state,omitempty"` + + // ForceSendFields is a list of field names (e.g. "State") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "State") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *DiskResourceStatusAsyncReplicationStatus) MarshalJSON() ([]byte, error) { + type NoMethod DiskResourceStatusAsyncReplicationStatus + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // DiskType: Represents a Disk Type resource. Google Compute Engine has // two Disk Type resources: * Regional // (/compute/docs/reference/rest/v1/regionDiskTypes) * Zonal @@ -13555,6 +13748,43 @@ func (s *GRPCHealthCheck) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +type GlobalAddressesMoveRequest struct { + // Description: An optional destination address description if intended + // to be different from the source. + Description string `json:"description,omitempty"` + + // DestinationAddress: The URL of the destination address to move to. + // This can be a full or partial URL. For example, the following are all + // valid URLs to a address: - + // https://www.googleapis.com/compute/v1/projects/project + // /global/addresses/address - projects/project/global/addresses/address + // Note that destination project must be different from the source + // project. So /global/addresses/address is not valid partial url. + DestinationAddress string `json:"destinationAddress,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Description") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Description") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GlobalAddressesMoveRequest) MarshalJSON() ([]byte, error) { + type NoMethod GlobalAddressesMoveRequest + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + type GlobalNetworkEndpointGroupsAttachEndpointsRequest struct { // NetworkEndpoints: The list of network endpoints to be attached. NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"` @@ -14171,12 +14401,12 @@ func (s *HTTPSHealthCheck) MarshalJSON() ([]byte, error) { // (/compute/docs/reference/rest/v1/regionHealthChecks) Internal HTTP(S) // load balancers must use regional health checks // (`compute.v1.regionHealthChecks`). Traffic Director must use global -// health checks (`compute.v1.HealthChecks`). Internal TCP/UDP load +// health checks (`compute.v1.healthChecks`). Internal TCP/UDP load // balancers can use either regional or global health checks -// (`compute.v1.regionHealthChecks` or `compute.v1.HealthChecks`). +// (`compute.v1.regionHealthChecks` or `compute.v1.healthChecks`). // External HTTP(S), TCP proxy, and SSL proxy load balancers as well as // managed instance group auto-healing must use global health checks -// (`compute.v1.HealthChecks`). Backend service-based network load +// (`compute.v1.healthChecks`). Backend service-based network load // balancers must use regional health checks // (`compute.v1.regionHealthChecks`). Target pool-based network load // balancers must use legacy HTTP health checks @@ -22718,6 +22948,21 @@ type Interconnect struct { // for interconnects. Kind string `json:"kind,omitempty"` + // LabelFingerprint: A fingerprint for the labels being applied to this + // Interconnect, 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 an Interconnect. + LabelFingerprint string `json:"labelFingerprint,omitempty"` + + // Labels: Labels for this resource. These can only be added or modified + // by the setLabels method. Each label key/value pair must comply with + // RFC1035. Label values may be empty. + Labels map[string]string `json:"labels,omitempty"` + // LinkType: Type of link requested, which can take one of the following // values: - LINK_TYPE_ETHERNET_10G_LR: A 10G Ethernet with LR optics - // LINK_TYPE_ETHERNET_100G_LR: A 100G Ethernet with LR optics. Note that @@ -22992,6 +23237,21 @@ type InterconnectAttachment struct { // compute#interconnectAttachment for interconnect attachments. Kind string `json:"kind,omitempty"` + // LabelFingerprint: A fingerprint for the labels being applied to this + // InterconnectAttachment, 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 an InterconnectAttachment. + LabelFingerprint string `json:"labelFingerprint,omitempty"` + + // Labels: Labels for this resource. These can only be added or modified + // by the setLabels method. Each label key/value pair must comply with + // RFC1035. Label values may be empty. + Labels map[string]string `json:"labels,omitempty"` + // Mtu: Maximum Transmission Unit (MTU), in bytes, of packets passing // through this interconnect attachment. Only 1440 and 1500 are allowed. // If not specified, the value will default to 1440. @@ -36883,6 +37143,7 @@ type Quota struct { // "COMMITTED_NVIDIA_A100_80GB_GPUS" // "COMMITTED_NVIDIA_A100_GPUS" // "COMMITTED_NVIDIA_K80_GPUS" + // "COMMITTED_NVIDIA_L4_GPUS" // "COMMITTED_NVIDIA_P100_GPUS" // "COMMITTED_NVIDIA_P4_GPUS" // "COMMITTED_NVIDIA_T4_GPUS" @@ -37221,6 +37482,44 @@ func (s *Region) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +type RegionAddressesMoveRequest struct { + // Description: An optional destination address description if intended + // to be different from the source. + Description string `json:"description,omitempty"` + + // DestinationAddress: The URL of the destination address to move to. + // This can be a full or partial URL. For example, the following are all + // valid URLs to a address: - + // https://www.googleapis.com/compute/v1/projects/project/regions/region + // /addresses/address - + // projects/project/regions/region/addresses/address Note that + // destination project must be different from the source project. So + // /regions/region/addresses/address is not valid partial url. + DestinationAddress string `json:"destinationAddress,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Description") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Description") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *RegionAddressesMoveRequest) MarshalJSON() ([]byte, error) { + type NoMethod RegionAddressesMoveRequest + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // RegionAutoscalerList: Contains a list of autoscalers. type RegionAutoscalerList struct { // Id: [Output Only] Unique identifier for the resource; defined by the @@ -44542,6 +44841,20 @@ type SecurityPolicy struct { // compute#securityPolicyfor security policies Kind string `json:"kind,omitempty"` + // LabelFingerprint: A fingerprint for the labels being applied to this + // security policy, 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. To see the latest fingerprint, make + // get() request to the security policy. + LabelFingerprint string `json:"labelFingerprint,omitempty"` + + // Labels: Labels for this resource. These can only be added or modified + // by the setLabels method. Each label key/value pair must comply with + // RFC1035. Label values may be empty. + Labels map[string]string `json:"labels,omitempty"` + // Name: 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 @@ -45891,6 +46204,18 @@ type ServiceAttachment struct { // the PSC service attachment. PscServiceAttachmentId *Uint128 `json:"pscServiceAttachmentId,omitempty"` + // ReconcileConnections: This flag determines whether a consumer + // accept/reject list change can reconcile the statuses of existing + // ACCEPTED or REJECTED PSC endpoints. - If false, connection policy + // update will only affect existing PENDING PSC endpoints. Existing + // ACCEPTED/REJECTED endpoints will remain untouched regardless how the + // connection policy is modified . - If true, update will affect both + // PENDING and ACCEPTED/REJECTED PSC endpoints. For example, an ACCEPTED + // PSC endpoint will be moved to REJECTED if its project is added to the + // reject list. For newly created service attachment, this boolean + // defaults to true. + ReconcileConnections bool `json:"reconcileConnections,omitempty"` + // Region: [Output Only] URL of the region where the service attachment // resides. This field applies only to the region resource. You must // specify this field as part of the HTTP request URL. It is not @@ -51160,7 +51485,9 @@ func (s *TargetHttpsProxiesScopedListWarningData) MarshalJSON() ([]byte, error) type TargetHttpsProxiesSetCertificateMapRequest struct { // CertificateMap: URL of the Certificate Map to associate with this - // TargetHttpsProxy. + // TargetHttpsProxy. Accepted format is + // //certificatemanager.googleapis.com/projects/{project + // }/locations/{location}/certificateMaps/{resourceName}. CertificateMap string `json:"certificateMap,omitempty"` // ForceSendFields is a list of field names (e.g. "CertificateMap") to @@ -51277,7 +51604,9 @@ type TargetHttpsProxy struct { // CertificateMap: URL of a certificate map that identifies a // certificate map associated with the given target proxy. This field // can only be set for global target proxies. If set, sslCertificates - // will be ignored. + // will be ignored. Accepted format is + // //certificatemanager.googleapis.com/projects/{project + // }/locations/{location}/certificateMaps/{resourceName}. CertificateMap string `json:"certificateMap,omitempty"` // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text @@ -53345,7 +53674,9 @@ func (s *TargetSslProxiesSetBackendServiceRequest) MarshalJSON() ([]byte, error) type TargetSslProxiesSetCertificateMapRequest struct { // CertificateMap: URL of the Certificate Map to associate with this - // TargetSslProxy. + // TargetSslProxy. Accepted format is + // //certificatemanager.googleapis.com/projects/{project + // }/locations/{location}/certificateMaps/{resourceName}. CertificateMap string `json:"certificateMap,omitempty"` // ForceSendFields is a list of field names (e.g. "CertificateMap") to @@ -53443,7 +53774,9 @@ type TargetSslProxy struct { // CertificateMap: URL of a certificate map that identifies a // certificate map associated with the given target proxy. This field // can only be set for global target proxies. If set, sslCertificates - // will be ignored. + // will be ignored. Accepted format is + // //certificatemanager.googleapis.com/projects/{project + // }/locations/{location}/certificateMaps/{resourceName}. CertificateMap string `json:"certificateMap,omitempty"` // CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text @@ -54438,6 +54771,21 @@ type TargetVpnGateway struct { // for target VPN gateways. Kind string `json:"kind,omitempty"` + // LabelFingerprint: A fingerprint for the labels being applied to this + // TargetVpnGateway, 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 TargetVpnGateway. + LabelFingerprint string `json:"labelFingerprint,omitempty"` + + // Labels: Labels for this resource. These can only be added or modified + // by the setLabels method. Each label key/value pair must comply with + // RFC1035. Label values may be empty. + Labels map[string]string `json:"labels,omitempty"` + // Name: 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 @@ -57805,6 +58153,21 @@ type VpnTunnel struct { // VPN tunnels. Kind string `json:"kind,omitempty"` + // LabelFingerprint: A fingerprint for the labels being applied to this + // VpnTunnel, 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 VpnTunnel. + LabelFingerprint string `json:"labelFingerprint,omitempty"` + + // Labels: Labels for this resource. These can only be added or modified + // by the setLabels method. Each label key/value pair must comply with + // RFC1035. Label values may be empty. + Labels map[string]string `json:"labels,omitempty"` + // LocalTrafficSelector: Local traffic selector to use when establishing // the VPN tunnel with the peer VPN gateway. The value should be a CIDR // formatted string, for example: 192.168.0.0/16. The ranges must be @@ -61076,31 +61439,30 @@ func (c *AddressesListCall) Pages(ctx context.Context, f func(*AddressList) erro } } -// method id "compute.addresses.setLabels": +// method id "compute.addresses.move": -type AddressesSetLabelsCall struct { - s *Service - project string - region string - resource string - regionsetlabelsrequest *RegionSetLabelsRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type AddressesMoveCall struct { + s *Service + project string + region string + address string + regionaddressesmoverequest *RegionAddressesMoveRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// SetLabels: Sets the labels on an Address. To learn more about labels, -// read the Labeling Resources documentation. +// Move: Moves the specified address resource. // -// - project: Project ID for this request. -// - region: The region for this request. -// - resource: Name or id of the resource for this request. -func (r *AddressesService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *AddressesSetLabelsCall { - c := &AddressesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - address: Name of the address resource to move. +// - project: Source project ID which the Address is moved from. +// - region: Name of the region for this request. +func (r *AddressesService) Move(project string, region string, address string, regionaddressesmoverequest *RegionAddressesMoveRequest) *AddressesMoveCall { + c := &AddressesMoveCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project c.region = region - c.resource = resource - c.regionsetlabelsrequest = regionsetlabelsrequest + c.address = address + c.regionaddressesmoverequest = regionaddressesmoverequest return c } @@ -61115,7 +61477,7 @@ func (r *AddressesService) SetLabels(project string, region string, resource str // 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). -func (c *AddressesSetLabelsCall) RequestId(requestId string) *AddressesSetLabelsCall { +func (c *AddressesMoveCall) RequestId(requestId string) *AddressesMoveCall { c.urlParams_.Set("requestId", requestId) return c } @@ -61123,7 +61485,7 @@ func (c *AddressesSetLabelsCall) RequestId(requestId string) *AddressesSetLabels // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. -func (c *AddressesSetLabelsCall) Fields(s ...googleapi.Field) *AddressesSetLabelsCall { +func (c *AddressesMoveCall) Fields(s ...googleapi.Field) *AddressesMoveCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -61131,21 +61493,21 @@ func (c *AddressesSetLabelsCall) Fields(s ...googleapi.Field) *AddressesSetLabel // Context sets the context to be used in this call's Do method. Any // pending HTTP request will be aborted if the provided context is // canceled. -func (c *AddressesSetLabelsCall) Context(ctx context.Context) *AddressesSetLabelsCall { +func (c *AddressesMoveCall) Context(ctx context.Context) *AddressesMoveCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. -func (c *AddressesSetLabelsCall) Header() http.Header { +func (c *AddressesMoveCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *AddressesSetLabelsCall) doRequest(alt string) (*http.Response, error) { +func (c *AddressesMoveCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) for k, v := range c.header_ { @@ -61153,14 +61515,14 @@ func (c *AddressesSetLabelsCall) doRequest(alt string) (*http.Response, error) { } reqHeaders.Set("User-Agent", c.s.userAgent()) var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest) + body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionaddressesmoverequest) if err != nil { return nil, err } reqHeaders.Set("Content-Type", "application/json") c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/addresses/{resource}/setLabels") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/addresses/{address}/move") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -61168,21 +61530,210 @@ func (c *AddressesSetLabelsCall) doRequest(alt string) (*http.Response, error) { } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "region": c.region, - "resource": c.resource, + "project": c.project, + "region": c.region, + "address": c.address, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.addresses.setLabels" call. +// Do executes the "compute.addresses.move" call. // Exactly one of *Operation or error will be non-nil. Any non-2xx // status code is an error. Response headers are in either // *Operation.ServerResponse.Header or (if a response was returned at // all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified // to check whether the returned error was because // http.StatusNotModified was returned. -func (c *AddressesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *AddressesMoveCall) Do(opts ...googleapi.CallOption) (*Operation, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Moves the specified address resource.", + // "flatPath": "projects/{project}/regions/{region}/addresses/{address}/move", + // "httpMethod": "POST", + // "id": "compute.addresses.move", + // "parameterOrder": [ + // "project", + // "region", + // "address" + // ], + // "parameters": { + // "address": { + // "description": "Name of the address resource to move.", + // "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": "Source project ID which the Address is moved from.", + // "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" + // } + // }, + // "path": "projects/{project}/regions/{region}/addresses/{address}/move", + // "request": { + // "$ref": "RegionAddressesMoveRequest" + // }, + // "response": { + // "$ref": "Operation" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/compute" + // ] + // } + +} + +// method id "compute.addresses.setLabels": + +type AddressesSetLabelsCall struct { + s *Service + project string + region string + resource string + regionsetlabelsrequest *RegionSetLabelsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// SetLabels: Sets the labels on an Address. To learn more about labels, +// read the Labeling Resources documentation. +// +// - project: Project ID for this request. +// - region: The region for this request. +// - resource: Name or id of the resource for this request. +func (r *AddressesService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *AddressesSetLabelsCall { + c := &AddressesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.resource = resource + c.regionsetlabelsrequest = regionsetlabelsrequest + return c +} + +// RequestId sets the optional parameter "requestId": 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). +func (c *AddressesSetLabelsCall) RequestId(requestId string) *AddressesSetLabelsCall { + c.urlParams_.Set("requestId", requestId) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *AddressesSetLabelsCall) Fields(s ...googleapi.Field) *AddressesSetLabelsCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *AddressesSetLabelsCall) Context(ctx context.Context) *AddressesSetLabelsCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *AddressesSetLabelsCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *AddressesSetLabelsCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/addresses/{resource}/setLabels") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + "resource": c.resource, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.addresses.setLabels" call. +// Exactly one of *Operation or error will be non-nil. Any non-2xx +// status code is an error. Response headers are in either +// *Operation.ServerResponse.Header or (if a response was returned at +// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified +// to check whether the returned error was because +// http.StatusNotModified was returned. +func (c *AddressesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -78320,35 +78871,51 @@ func (c *GlobalAddressesListCall) Pages(ctx context.Context, f func(*AddressList } } -// method id "compute.globalAddresses.setLabels": +// method id "compute.globalAddresses.move": -type GlobalAddressesSetLabelsCall struct { - s *Service - project string - resource string - globalsetlabelsrequest *GlobalSetLabelsRequest - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type GlobalAddressesMoveCall struct { + s *Service + project string + address string + globaladdressesmoverequest *GlobalAddressesMoveRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// SetLabels: Sets the labels on a GlobalAddress. To learn more about -// labels, read the Labeling Resources documentation. +// Move: Moves the specified address resource from one project to +// another project. // -// - project: Project ID for this request. -// - resource: Name or id of the resource for this request. -func (r *GlobalAddressesService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *GlobalAddressesSetLabelsCall { - c := &GlobalAddressesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - address: Name of the address resource to move. +// - project: Source project ID which the Address is moved from. +func (r *GlobalAddressesService) Move(project string, address string, globaladdressesmoverequest *GlobalAddressesMoveRequest) *GlobalAddressesMoveCall { + c := &GlobalAddressesMoveCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.resource = resource - c.globalsetlabelsrequest = globalsetlabelsrequest + c.address = address + c.globaladdressesmoverequest = globaladdressesmoverequest + return c +} + +// RequestId sets the optional parameter "requestId": 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). +func (c *GlobalAddressesMoveCall) RequestId(requestId string) *GlobalAddressesMoveCall { + c.urlParams_.Set("requestId", requestId) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. -func (c *GlobalAddressesSetLabelsCall) Fields(s ...googleapi.Field) *GlobalAddressesSetLabelsCall { +func (c *GlobalAddressesMoveCall) Fields(s ...googleapi.Field) *GlobalAddressesMoveCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -78356,21 +78923,21 @@ func (c *GlobalAddressesSetLabelsCall) Fields(s ...googleapi.Field) *GlobalAddre // Context sets the context to be used in this call's Do method. Any // pending HTTP request will be aborted if the provided context is // canceled. -func (c *GlobalAddressesSetLabelsCall) Context(ctx context.Context) *GlobalAddressesSetLabelsCall { +func (c *GlobalAddressesMoveCall) Context(ctx context.Context) *GlobalAddressesMoveCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. -func (c *GlobalAddressesSetLabelsCall) Header() http.Header { +func (c *GlobalAddressesMoveCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *GlobalAddressesSetLabelsCall) doRequest(alt string) (*http.Response, error) { +func (c *GlobalAddressesMoveCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) for k, v := range c.header_ { @@ -78378,14 +78945,14 @@ func (c *GlobalAddressesSetLabelsCall) doRequest(alt string) (*http.Response, er } reqHeaders.Set("User-Agent", c.s.userAgent()) var body io.Reader = nil - body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest) + body, err := googleapi.WithoutDataWrapper.JSONReader(c.globaladdressesmoverequest) if err != nil { return nil, err } reqHeaders.Set("Content-Type", "application/json") c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/addresses/{resource}/setLabels") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/addresses/{address}/move") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -78393,20 +78960,20 @@ func (c *GlobalAddressesSetLabelsCall) doRequest(alt string) (*http.Response, er } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "resource": c.resource, + "project": c.project, + "address": c.address, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.globalAddresses.setLabels" call. +// Do executes the "compute.globalAddresses.move" call. // Exactly one of *Operation or error will be non-nil. Any non-2xx // status code is an error. Response headers are in either // *Operation.ServerResponse.Header or (if a response was returned at // all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified // to check whether the returned error was because // http.StatusNotModified was returned. -func (c *GlobalAddressesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *GlobalAddressesMoveCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -78437,33 +79004,38 @@ func (c *GlobalAddressesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operat } return ret, nil // { - // "description": "Sets the labels on a GlobalAddress. To learn more about labels, read the Labeling Resources documentation.", - // "flatPath": "projects/{project}/global/addresses/{resource}/setLabels", + // "description": "Moves the specified address resource from one project to another project.", + // "flatPath": "projects/{project}/global/addresses/{address}/move", // "httpMethod": "POST", - // "id": "compute.globalAddresses.setLabels", + // "id": "compute.globalAddresses.move", // "parameterOrder": [ // "project", - // "resource" + // "address" // ], // "parameters": { - // "project": { - // "description": "Project ID for this request.", + // "address": { + // "description": "Name of the address resource to move.", // "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])?))", + // "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", // "required": true, // "type": "string" // }, - // "resource": { - // "description": "Name or id of the resource for this request.", + // "project": { + // "description": "Source project ID which the Address is moved from.", // "location": "path", - // "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + // "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/addresses/{resource}/setLabels", + // "path": "projects/{project}/global/addresses/{address}/move", // "request": { - // "$ref": "GlobalSetLabelsRequest" + // "$ref": "GlobalAddressesMoveRequest" // }, // "response": { // "$ref": "Operation" @@ -78476,48 +79048,35 @@ func (c *GlobalAddressesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operat } -// method id "compute.globalForwardingRules.delete": +// method id "compute.globalAddresses.setLabels": -type GlobalForwardingRulesDeleteCall struct { - s *Service - project string - forwardingRule string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header +type GlobalAddressesSetLabelsCall struct { + s *Service + project string + resource string + globalsetlabelsrequest *GlobalSetLabelsRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header } -// Delete: Deletes the specified GlobalForwardingRule resource. +// SetLabels: Sets the labels on a GlobalAddress. To learn more about +// labels, read the Labeling Resources documentation. // -// - forwardingRule: Name of the ForwardingRule resource to delete. // - project: Project ID for this request. -func (r *GlobalForwardingRulesService) Delete(project string, forwardingRule string) *GlobalForwardingRulesDeleteCall { - c := &GlobalForwardingRulesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} +// - resource: Name or id of the resource for this request. +func (r *GlobalAddressesService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *GlobalAddressesSetLabelsCall { + c := &GlobalAddressesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.project = project - c.forwardingRule = forwardingRule - return c -} - -// RequestId sets the optional parameter "requestId": 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). -func (c *GlobalForwardingRulesDeleteCall) RequestId(requestId string) *GlobalForwardingRulesDeleteCall { - c.urlParams_.Set("requestId", requestId) + c.resource = resource + c.globalsetlabelsrequest = globalsetlabelsrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. -func (c *GlobalForwardingRulesDeleteCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesDeleteCall { +func (c *GlobalAddressesSetLabelsCall) Fields(s ...googleapi.Field) *GlobalAddressesSetLabelsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -78525,21 +79084,21 @@ func (c *GlobalForwardingRulesDeleteCall) Fields(s ...googleapi.Field) *GlobalFo // Context sets the context to be used in this call's Do method. Any // pending HTTP request will be aborted if the provided context is // canceled. -func (c *GlobalForwardingRulesDeleteCall) Context(ctx context.Context) *GlobalForwardingRulesDeleteCall { +func (c *GlobalAddressesSetLabelsCall) Context(ctx context.Context) *GlobalAddressesSetLabelsCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. -func (c *GlobalForwardingRulesDeleteCall) Header() http.Header { +func (c *GlobalAddressesSetLabelsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *GlobalForwardingRulesDeleteCall) doRequest(alt string) (*http.Response, error) { +func (c *GlobalAddressesSetLabelsCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) for k, v := range c.header_ { @@ -78547,30 +79106,199 @@ func (c *GlobalForwardingRulesDeleteCall) doRequest(alt string) (*http.Response, } reqHeaders.Set("User-Agent", c.s.userAgent()) var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/forwardingRules/{forwardingRule}") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/addresses/{resource}/setLabels") urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("DELETE", urls, body) + req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "forwardingRule": c.forwardingRule, + "project": c.project, + "resource": c.resource, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.globalForwardingRules.delete" call. +// Do executes the "compute.globalAddresses.setLabels" call. // Exactly one of *Operation or error will be non-nil. Any non-2xx // status code is an error. Response headers are in either // *Operation.ServerResponse.Header or (if a response was returned at // all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified // to check whether the returned error was because // http.StatusNotModified was returned. -func (c *GlobalForwardingRulesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *GlobalAddressesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Sets the labels on a GlobalAddress. To learn more about labels, read the Labeling Resources documentation.", + // "flatPath": "projects/{project}/global/addresses/{resource}/setLabels", + // "httpMethod": "POST", + // "id": "compute.globalAddresses.setLabels", + // "parameterOrder": [ + // "project", + // "resource" + // ], + // "parameters": { + // "project": { + // "description": "Project ID for this request.", + // "location": "path", + // "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + // "required": true, + // "type": "string" + // }, + // "resource": { + // "description": "Name or id of the resource for this request.", + // "location": "path", + // "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + // "required": true, + // "type": "string" + // } + // }, + // "path": "projects/{project}/global/addresses/{resource}/setLabels", + // "request": { + // "$ref": "GlobalSetLabelsRequest" + // }, + // "response": { + // "$ref": "Operation" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/compute" + // ] + // } + +} + +// method id "compute.globalForwardingRules.delete": + +type GlobalForwardingRulesDeleteCall struct { + s *Service + project string + forwardingRule string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Delete: Deletes the specified GlobalForwardingRule resource. +// +// - forwardingRule: Name of the ForwardingRule resource to delete. +// - project: Project ID for this request. +func (r *GlobalForwardingRulesService) Delete(project string, forwardingRule string) *GlobalForwardingRulesDeleteCall { + c := &GlobalForwardingRulesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.forwardingRule = forwardingRule + return c +} + +// RequestId sets the optional parameter "requestId": 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). +func (c *GlobalForwardingRulesDeleteCall) RequestId(requestId string) *GlobalForwardingRulesDeleteCall { + c.urlParams_.Set("requestId", requestId) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *GlobalForwardingRulesDeleteCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesDeleteCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *GlobalForwardingRulesDeleteCall) Context(ctx context.Context) *GlobalForwardingRulesDeleteCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *GlobalForwardingRulesDeleteCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *GlobalForwardingRulesDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/forwardingRules/{forwardingRule}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("DELETE", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "forwardingRule": c.forwardingRule, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.globalForwardingRules.delete" call. +// Exactly one of *Operation or error will be non-nil. Any non-2xx +// status code is an error. Response headers are in either +// *Operation.ServerResponse.Header or (if a response was returned at +// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified +// to check whether the returned error was because +// http.StatusNotModified was returned. +func (c *GlobalForwardingRulesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -104259,164 +104987,6 @@ func (r *InstancesService) SimulateMaintenanceEvent(project string, zone string, return c } -// Fields allows partial responses to be retrieved. See -// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse -// for more information. -func (c *InstancesSimulateMaintenanceEventCall) Fields(s ...googleapi.Field) *InstancesSimulateMaintenanceEventCall { - c.urlParams_.Set("fields", googleapi.CombineFields(s)) - return c -} - -// Context sets the context to be used in this call's Do method. Any -// pending HTTP request will be aborted if the provided context is -// canceled. -func (c *InstancesSimulateMaintenanceEventCall) Context(ctx context.Context) *InstancesSimulateMaintenanceEventCall { - c.ctx_ = ctx - return c -} - -// Header returns an http.Header that can be modified by the caller to -// add HTTP headers to the request. -func (c *InstancesSimulateMaintenanceEventCall) Header() http.Header { - if c.header_ == nil { - c.header_ = make(http.Header) - } - return c.header_ -} - -func (c *InstancesSimulateMaintenanceEventCall) doRequest(alt string) (*http.Response, error) { - reqHeaders := make(http.Header) - reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) - for k, v := range c.header_ { - reqHeaders[k] = v - } - reqHeaders.Set("User-Agent", c.s.userAgent()) - var body io.Reader = nil - c.urlParams_.Set("alt", alt) - c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/simulateMaintenanceEvent") - urls += "?" + c.urlParams_.Encode() - req, err := http.NewRequest("POST", urls, body) - if err != nil { - return nil, err - } - req.Header = reqHeaders - googleapi.Expand(req.URL, map[string]string{ - "project": c.project, - "zone": c.zone, - "instance": c.instance, - }) - return gensupport.SendRequest(c.ctx_, c.s.client, req) -} - -// Do executes the "compute.instances.simulateMaintenanceEvent" call. -// Exactly one of *Operation or error will be non-nil. Any non-2xx -// status code is an error. Response headers are in either -// *Operation.ServerResponse.Header or (if a response was returned at -// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified -// to check whether the returned error was because -// http.StatusNotModified was returned. -func (c *InstancesSimulateMaintenanceEventCall) Do(opts ...googleapi.CallOption) (*Operation, error) { - gensupport.SetOptions(c.urlParams_, opts...) - res, err := c.doRequest("json") - if res != nil && res.StatusCode == http.StatusNotModified { - if res.Body != nil { - res.Body.Close() - } - return nil, gensupport.WrapError(&googleapi.Error{ - Code: res.StatusCode, - Header: res.Header, - }) - } - if err != nil { - return nil, err - } - defer googleapi.CloseBody(res) - if err := googleapi.CheckResponse(res); err != nil { - return nil, gensupport.WrapError(err) - } - ret := &Operation{ - ServerResponse: googleapi.ServerResponse{ - Header: res.Header, - HTTPStatusCode: res.StatusCode, - }, - } - target := &ret - if err := gensupport.DecodeResponse(target, res); err != nil { - return nil, err - } - return ret, nil - // { - // "description": "Simulates a host maintenance event on a VM. For more information, see Simulate a host maintenance event.", - // "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/simulateMaintenanceEvent", - // "httpMethod": "POST", - // "id": "compute.instances.simulateMaintenanceEvent", - // "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" - // }, - // "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}/simulateMaintenanceEvent", - // "response": { - // "$ref": "Operation" - // }, - // "scopes": [ - // "https://www.googleapis.com/auth/cloud-platform", - // "https://www.googleapis.com/auth/compute" - // ] - // } - -} - -// method id "compute.instances.start": - -type InstancesStartCall struct { - s *Service - project string - zone string - instance string - urlParams_ gensupport.URLParams - ctx_ context.Context - header_ http.Header -} - -// Start: Starts an instance that was stopped using the instances().stop -// method. For more information, see Restart an instance. -// -// - instance: Name of the instance resource to start. -// - project: Project ID for this request. -// - zone: The name of the zone for this request. -func (r *InstancesService) Start(project string, zone string, instance string) *InstancesStartCall { - c := &InstancesStartCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.project = project - c.zone = zone - c.instance = instance - return c -} - // RequestId sets the optional parameter "requestId": 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 @@ -104428,7 +104998,7 @@ func (r *InstancesService) Start(project string, zone string, instance string) * // 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). -func (c *InstancesStartCall) RequestId(requestId string) *InstancesStartCall { +func (c *InstancesSimulateMaintenanceEventCall) RequestId(requestId string) *InstancesSimulateMaintenanceEventCall { c.urlParams_.Set("requestId", requestId) return c } @@ -104436,7 +105006,7 @@ func (c *InstancesStartCall) RequestId(requestId string) *InstancesStartCall { // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. -func (c *InstancesStartCall) Fields(s ...googleapi.Field) *InstancesStartCall { +func (c *InstancesSimulateMaintenanceEventCall) Fields(s ...googleapi.Field) *InstancesSimulateMaintenanceEventCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -104444,21 +105014,21 @@ func (c *InstancesStartCall) Fields(s ...googleapi.Field) *InstancesStartCall { // Context sets the context to be used in this call's Do method. Any // pending HTTP request will be aborted if the provided context is // canceled. -func (c *InstancesStartCall) Context(ctx context.Context) *InstancesStartCall { +func (c *InstancesSimulateMaintenanceEventCall) Context(ctx context.Context) *InstancesSimulateMaintenanceEventCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. -func (c *InstancesStartCall) Header() http.Header { +func (c *InstancesSimulateMaintenanceEventCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *InstancesStartCall) doRequest(alt string) (*http.Response, error) { +func (c *InstancesSimulateMaintenanceEventCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) for k, v := range c.header_ { @@ -104468,7 +105038,7 @@ func (c *InstancesStartCall) doRequest(alt string) (*http.Response, error) { var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/start") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/simulateMaintenanceEvent") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -104483,14 +105053,193 @@ func (c *InstancesStartCall) doRequest(alt string) (*http.Response, error) { return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "compute.instances.start" call. +// Do executes the "compute.instances.simulateMaintenanceEvent" call. // Exactly one of *Operation or error will be non-nil. Any non-2xx // status code is an error. Response headers are in either // *Operation.ServerResponse.Header or (if a response was returned at // all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified // to check whether the returned error was because // http.StatusNotModified was returned. -func (c *InstancesStartCall) Do(opts ...googleapi.CallOption) (*Operation, error) { +func (c *InstancesSimulateMaintenanceEventCall) Do(opts ...googleapi.CallOption) (*Operation, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Simulates a host maintenance event on a VM. For more information, see Simulate a host maintenance event.", + // "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/simulateMaintenanceEvent", + // "httpMethod": "POST", + // "id": "compute.instances.simulateMaintenanceEvent", + // "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}/simulateMaintenanceEvent", + // "response": { + // "$ref": "Operation" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/compute" + // ] + // } + +} + +// method id "compute.instances.start": + +type InstancesStartCall struct { + s *Service + project string + zone string + instance string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Start: Starts an instance that was stopped using the instances().stop +// method. For more information, see Restart an instance. +// +// - instance: Name of the instance resource to start. +// - project: Project ID for this request. +// - zone: The name of the zone for this request. +func (r *InstancesService) Start(project string, zone string, instance string) *InstancesStartCall { + c := &InstancesStartCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.zone = zone + c.instance = instance + return c +} + +// RequestId sets the optional parameter "requestId": 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). +func (c *InstancesStartCall) RequestId(requestId string) *InstancesStartCall { + c.urlParams_.Set("requestId", requestId) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *InstancesStartCall) Fields(s ...googleapi.Field) *InstancesStartCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *InstancesStartCall) Context(ctx context.Context) *InstancesStartCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *InstancesStartCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *InstancesStartCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/start") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "zone": c.zone, + "instance": c.instance, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.instances.start" call. +// Exactly one of *Operation or error will be non-nil. Any non-2xx +// status code is an error. Response headers are in either +// *Operation.ServerResponse.Header or (if a response was returned at +// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified +// to check whether the returned error was because +// http.StatusNotModified was returned. +func (c *InstancesStartCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -148519,6 +149268,827 @@ func (c *RegionInstanceGroupsSetNamedPortsCall) Do(opts ...googleapi.CallOption) } +// method id "compute.regionInstanceTemplates.delete": + +type RegionInstanceTemplatesDeleteCall struct { + s *Service + project string + region string + instanceTemplate string + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Delete: Deletes the specified instance template. Deleting an instance +// template is permanent and cannot be undone. +// +// - instanceTemplate: The name of the instance template to delete. +// - project: Project ID for this request. +// - region: The name of the region for this request. +func (r *RegionInstanceTemplatesService) Delete(project string, region string, instanceTemplate string) *RegionInstanceTemplatesDeleteCall { + c := &RegionInstanceTemplatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.instanceTemplate = instanceTemplate + return c +} + +// RequestId sets the optional parameter "requestId": 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). +func (c *RegionInstanceTemplatesDeleteCall) RequestId(requestId string) *RegionInstanceTemplatesDeleteCall { + c.urlParams_.Set("requestId", requestId) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *RegionInstanceTemplatesDeleteCall) Fields(s ...googleapi.Field) *RegionInstanceTemplatesDeleteCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *RegionInstanceTemplatesDeleteCall) Context(ctx context.Context) *RegionInstanceTemplatesDeleteCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *RegionInstanceTemplatesDeleteCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *RegionInstanceTemplatesDeleteCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceTemplates/{instanceTemplate}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("DELETE", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + "instanceTemplate": c.instanceTemplate, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.regionInstanceTemplates.delete" call. +// Exactly one of *Operation or error will be non-nil. Any non-2xx +// status code is an error. Response headers are in either +// *Operation.ServerResponse.Header or (if a response was returned at +// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified +// to check whether the returned error was because +// http.StatusNotModified was returned. +func (c *RegionInstanceTemplatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Deletes the specified instance template. Deleting an instance template is permanent and cannot be undone.", + // "flatPath": "projects/{project}/regions/{region}/instanceTemplates/{instanceTemplate}", + // "httpMethod": "DELETE", + // "id": "compute.regionInstanceTemplates.delete", + // "parameterOrder": [ + // "project", + // "region", + // "instanceTemplate" + // ], + // "parameters": { + // "instanceTemplate": { + // "description": "The name of the instance template to delete.", + // "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" + // }, + // "region": { + // "description": "The 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" + // } + // }, + // "path": "projects/{project}/regions/{region}/instanceTemplates/{instanceTemplate}", + // "response": { + // "$ref": "Operation" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/compute" + // ] + // } + +} + +// method id "compute.regionInstanceTemplates.get": + +type RegionInstanceTemplatesGetCall struct { + s *Service + project string + region string + instanceTemplate string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// Get: Returns the specified instance template. +// +// - instanceTemplate: The name of the instance template. +// - project: Project ID for this request. +// - region: The name of the region for this request. +func (r *RegionInstanceTemplatesService) Get(project string, region string, instanceTemplate string) *RegionInstanceTemplatesGetCall { + c := &RegionInstanceTemplatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.instanceTemplate = instanceTemplate + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *RegionInstanceTemplatesGetCall) Fields(s ...googleapi.Field) *RegionInstanceTemplatesGetCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *RegionInstanceTemplatesGetCall) IfNoneMatch(entityTag string) *RegionInstanceTemplatesGetCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *RegionInstanceTemplatesGetCall) Context(ctx context.Context) *RegionInstanceTemplatesGetCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *RegionInstanceTemplatesGetCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *RegionInstanceTemplatesGetCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceTemplates/{instanceTemplate}") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + "instanceTemplate": c.instanceTemplate, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.regionInstanceTemplates.get" call. +// Exactly one of *InstanceTemplate or error will be non-nil. Any +// non-2xx status code is an error. Response headers are in either +// *InstanceTemplate.ServerResponse.Header or (if a response was +// returned at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *RegionInstanceTemplatesGetCall) Do(opts ...googleapi.CallOption) (*InstanceTemplate, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &InstanceTemplate{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Returns the specified instance template.", + // "flatPath": "projects/{project}/regions/{region}/instanceTemplates/{instanceTemplate}", + // "httpMethod": "GET", + // "id": "compute.regionInstanceTemplates.get", + // "parameterOrder": [ + // "project", + // "region", + // "instanceTemplate" + // ], + // "parameters": { + // "instanceTemplate": { + // "description": "The name of the instance template.", + // "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" + // }, + // "region": { + // "description": "The name of the region for this request.", + // "location": "path", + // "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + // "required": true, + // "type": "string" + // } + // }, + // "path": "projects/{project}/regions/{region}/instanceTemplates/{instanceTemplate}", + // "response": { + // "$ref": "InstanceTemplate" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/compute", + // "https://www.googleapis.com/auth/compute.readonly" + // ] + // } + +} + +// method id "compute.regionInstanceTemplates.insert": + +type RegionInstanceTemplatesInsertCall struct { + s *Service + project string + region string + instancetemplate *InstanceTemplate + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// Insert: Creates an instance template in the specified project and +// region using the global instance template whose URL is included in +// the request. +// +// - project: Project ID for this request. +// - region: The name of the region for this request. +func (r *RegionInstanceTemplatesService) Insert(project string, region string, instancetemplate *InstanceTemplate) *RegionInstanceTemplatesInsertCall { + c := &RegionInstanceTemplatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + c.instancetemplate = instancetemplate + return c +} + +// RequestId sets the optional parameter "requestId": 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). +func (c *RegionInstanceTemplatesInsertCall) RequestId(requestId string) *RegionInstanceTemplatesInsertCall { + c.urlParams_.Set("requestId", requestId) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *RegionInstanceTemplatesInsertCall) Fields(s ...googleapi.Field) *RegionInstanceTemplatesInsertCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *RegionInstanceTemplatesInsertCall) Context(ctx context.Context) *RegionInstanceTemplatesInsertCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *RegionInstanceTemplatesInsertCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *RegionInstanceTemplatesInsertCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancetemplate) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceTemplates") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.regionInstanceTemplates.insert" call. +// Exactly one of *Operation or error will be non-nil. Any non-2xx +// status code is an error. Response headers are in either +// *Operation.ServerResponse.Header or (if a response was returned at +// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified +// to check whether the returned error was because +// http.StatusNotModified was returned. +func (c *RegionInstanceTemplatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &Operation{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Creates an instance template in the specified project and region using the global instance template whose URL is included in the request.", + // "flatPath": "projects/{project}/regions/{region}/instanceTemplates", + // "httpMethod": "POST", + // "id": "compute.regionInstanceTemplates.insert", + // "parameterOrder": [ + // "project", + // "region" + // ], + // "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": "The 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" + // } + // }, + // "path": "projects/{project}/regions/{region}/instanceTemplates", + // "request": { + // "$ref": "InstanceTemplate" + // }, + // "response": { + // "$ref": "Operation" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/compute" + // ] + // } + +} + +// method id "compute.regionInstanceTemplates.list": + +type RegionInstanceTemplatesListCall struct { + s *Service + project string + region string + urlParams_ gensupport.URLParams + ifNoneMatch_ string + ctx_ context.Context + header_ http.Header +} + +// List: Retrieves a list of instance templates that are contained +// within the specified project and region. +// +// - project: Project ID for this request. +// - region: The name of the regions for this request. +func (r *RegionInstanceTemplatesService) List(project string, region string) *RegionInstanceTemplatesListCall { + c := &RegionInstanceTemplatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.project = project + c.region = region + return c +} + +// Filter sets the optional parameter "filter": 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. 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 `:` operator can be used with string +// fields to match substrings. For non-string fields it is equivalent to +// the `=` operator. The `:*` comparison can be used to test whether a +// key has been defined. 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`. +func (c *RegionInstanceTemplatesListCall) Filter(filter string) *RegionInstanceTemplatesListCall { + c.urlParams_.Set("filter", filter) + return c +} + +// MaxResults sets the optional parameter "maxResults": 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`) +func (c *RegionInstanceTemplatesListCall) MaxResults(maxResults int64) *RegionInstanceTemplatesListCall { + c.urlParams_.Set("maxResults", fmt.Sprint(maxResults)) + return c +} + +// OrderBy sets the optional parameter "orderBy": 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. +func (c *RegionInstanceTemplatesListCall) OrderBy(orderBy string) *RegionInstanceTemplatesListCall { + c.urlParams_.Set("orderBy", orderBy) + return c +} + +// PageToken sets the optional parameter "pageToken": Specifies a page +// token to use. Set `pageToken` to the `nextPageToken` returned by a +// previous list request to get the next page of results. +func (c *RegionInstanceTemplatesListCall) PageToken(pageToken string) *RegionInstanceTemplatesListCall { + c.urlParams_.Set("pageToken", pageToken) + return c +} + +// ReturnPartialSuccess sets the optional parameter +// "returnPartialSuccess": Opt-in for partial success behavior which +// provides partial results in case of failure. The default value is +// false. +func (c *RegionInstanceTemplatesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionInstanceTemplatesListCall { + c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess)) + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *RegionInstanceTemplatesListCall) Fields(s ...googleapi.Field) *RegionInstanceTemplatesListCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// IfNoneMatch sets the optional parameter which makes the operation +// fail if the object's ETag matches the given value. This is useful for +// getting updates only after the object has changed since the last +// request. Use googleapi.IsNotModified to check whether the response +// error from Do is the result of In-None-Match. +func (c *RegionInstanceTemplatesListCall) IfNoneMatch(entityTag string) *RegionInstanceTemplatesListCall { + c.ifNoneMatch_ = entityTag + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *RegionInstanceTemplatesListCall) Context(ctx context.Context) *RegionInstanceTemplatesListCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *RegionInstanceTemplatesListCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *RegionInstanceTemplatesListCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + if c.ifNoneMatch_ != "" { + reqHeaders.Set("If-None-Match", c.ifNoneMatch_) + } + var body io.Reader = nil + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceTemplates") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("GET", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.project, + "region": c.region, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "compute.regionInstanceTemplates.list" call. +// Exactly one of *InstanceTemplateList or error will be non-nil. Any +// non-2xx status code is an error. Response headers are in either +// *InstanceTemplateList.ServerResponse.Header or (if a response was +// returned at all) in error.(*googleapi.Error).Header. Use +// googleapi.IsNotModified to check whether the returned error was +// because http.StatusNotModified was returned. +func (c *RegionInstanceTemplatesListCall) Do(opts ...googleapi.CallOption) (*InstanceTemplateList, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &InstanceTemplateList{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Retrieves a list of instance templates that are contained within the specified project and region.", + // "flatPath": "projects/{project}/regions/{region}/instanceTemplates", + // "httpMethod": "GET", + // "id": "compute.regionInstanceTemplates.list", + // "parameterOrder": [ + // "project", + // "region" + // ], + // "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. 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 `=`, `!=`, `\u003e`, `\u003c`, `\u003c=`, `\u003e=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:` operator can be used with string fields to match substrings. For non-string fields it is equivalent to the `=` operator. The `:*` comparison can be used to test whether a key has been defined. 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`.", + // "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": "The name of the regions 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.", + // "location": "query", + // "type": "boolean" + // } + // }, + // "path": "projects/{project}/regions/{region}/instanceTemplates", + // "response": { + // "$ref": "InstanceTemplateList" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/compute", + // "https://www.googleapis.com/auth/compute.readonly" + // ] + // } + +} + +// Pages invokes f for each page of results. +// A non-nil error returned from f will halt the iteration. +// The provided context supersedes any context provided to the Context method. +func (c *RegionInstanceTemplatesListCall) Pages(ctx context.Context, f func(*InstanceTemplateList) error) error { + c.ctx_ = ctx + defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point + for { + x, err := c.Do() + if err != nil { + return err + } + if err := f(x); err != nil { + return err + } + if x.NextPageToken == "" { + return nil + } + c.PageToken(x.NextPageToken) + } +} + // method id "compute.regionInstances.bulkInsert": type RegionInstancesBulkInsertCall struct { diff --git a/contactcenterinsights/v1/contactcenterinsights-api.json b/contactcenterinsights/v1/contactcenterinsights-api.json index 8cc1cb93962..675fd1bfc20 100644 --- a/contactcenterinsights/v1/contactcenterinsights-api.json +++ b/contactcenterinsights/v1/contactcenterinsights-api.json @@ -1384,7 +1384,7 @@ } } }, - "revision": "20230409", + "revision": "20230424", "rootUrl": "https://contactcenterinsights.googleapis.com/", "schemas": { "GoogleCloudContactcenterinsightsV1Analysis": { @@ -1543,6 +1543,37 @@ "runSilenceAnnotator": { "description": "Whether to run the silence annotator.", "type": "boolean" + }, + "runSummarizationAnnotator": { + "description": "Whether to run the summarization annotator.", + "type": "boolean" + }, + "summarizationConfig": { + "$ref": "GoogleCloudContactcenterinsightsV1AnnotatorSelectorSummarizationConfig", + "description": "Configuration for the summarization annotator." + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1AnnotatorSelectorSummarizationConfig": { + "description": "Configuration for summarization.", + "id": "GoogleCloudContactcenterinsightsV1AnnotatorSelectorSummarizationConfig", + "properties": { + "conversationProfile": { + "description": "Resource name of the Dialogflow conversation profile. Format: projects/{project}/locations/{location}/conversationProfiles/{conversation_profile}", + "type": "string" + }, + "summarizationModel": { + "description": "Default summarization model to be used.", + "enum": [ + "SUMMARIZATION_MODEL_UNSPECIFIED", + "BASELINE_MODEL" + ], + "enumDescriptions": [ + "Unspecified summarization model.", + "The Insights baseline model." + ], + "type": "string" } }, "type": "object" @@ -1903,6 +1934,11 @@ "description": "Output only. The conversation's latest analysis, if one exists.", "readOnly": true }, + "latestSummary": { + "$ref": "GoogleCloudContactcenterinsightsV1ConversationSummarizationSuggestionData", + "description": "Output only. Latest summary of the conversation.", + "readOnly": true + }, "medium": { "description": "Immutable. The conversation medium, if unspecified will default to PHONE_CALL.", "enum": [ @@ -2052,6 +2088,44 @@ }, "type": "object" }, + "GoogleCloudContactcenterinsightsV1ConversationSummarizationSuggestionData": { + "description": "Conversation summarization suggestion data.", + "id": "GoogleCloudContactcenterinsightsV1ConversationSummarizationSuggestionData", + "properties": { + "answerRecord": { + "description": "The name of the answer record. Format: projects/{project}/locations/{location}/answerRecords/{answer_record}", + "type": "string" + }, + "confidence": { + "description": "The confidence score of the summarization.", + "format": "float", + "type": "number" + }, + "conversationModel": { + "description": "The name of the model that generates this summary. Format: projects/{project}/locations/{location}/conversationModels/{conversation_model}", + "type": "string" + }, + "metadata": { + "additionalProperties": { + "type": "string" + }, + "description": "A map that contains metadata about the summarization and the document from which it originates.", + "type": "object" + }, + "text": { + "description": "The summarization content that is concatenated into one string.", + "type": "string" + }, + "textSections": { + "additionalProperties": { + "type": "string" + }, + "description": "The summarization content that is divided into sections. The key is the section's name and the value is the section's content. There is no specific format for the key or value.", + "type": "object" + } + }, + "type": "object" + }, "GoogleCloudContactcenterinsightsV1ConversationTranscript": { "description": "A message representing the transcript of a conversation.", "id": "GoogleCloudContactcenterinsightsV1ConversationTranscript", @@ -3268,6 +3342,10 @@ "$ref": "GoogleCloudContactcenterinsightsV1ArticleSuggestionData", "description": "Agent Assist Article Suggestion data." }, + "conversationSummarizationSuggestion": { + "$ref": "GoogleCloudContactcenterinsightsV1ConversationSummarizationSuggestionData", + "description": "Conversation summarization suggestion data." + }, "createTime": { "description": "The time at which this annotation was created.", "format": "google-datetime", @@ -3729,6 +3807,37 @@ "runSilenceAnnotator": { "description": "Whether to run the silence annotator.", "type": "boolean" + }, + "runSummarizationAnnotator": { + "description": "Whether to run the summarization annotator.", + "type": "boolean" + }, + "summarizationConfig": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1AnnotatorSelectorSummarizationConfig", + "description": "Configuration for the summarization annotator." + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1AnnotatorSelectorSummarizationConfig": { + "description": "Configuration for summarization.", + "id": "GoogleCloudContactcenterinsightsV1alpha1AnnotatorSelectorSummarizationConfig", + "properties": { + "conversationProfile": { + "description": "Resource name of the Dialogflow conversation profile. Format: projects/{project}/locations/{location}/conversationProfiles/{conversation_profile}", + "type": "string" + }, + "summarizationModel": { + "description": "Default summarization model to be used.", + "enum": [ + "SUMMARIZATION_MODEL_UNSPECIFIED", + "BASELINE_MODEL" + ], + "enumDescriptions": [ + "Unspecified summarization model.", + "The Insights baseline model." + ], + "type": "string" } }, "type": "object" @@ -3985,6 +4094,11 @@ "description": "Output only. The conversation's latest analysis, if one exists.", "readOnly": true }, + "latestSummary": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1ConversationSummarizationSuggestionData", + "description": "Output only. Latest summary of the conversation.", + "readOnly": true + }, "medium": { "description": "Immutable. The conversation medium, if unspecified will default to PHONE_CALL.", "enum": [ @@ -4134,6 +4248,44 @@ }, "type": "object" }, + "GoogleCloudContactcenterinsightsV1alpha1ConversationSummarizationSuggestionData": { + "description": "Conversation summarization suggestion data.", + "id": "GoogleCloudContactcenterinsightsV1alpha1ConversationSummarizationSuggestionData", + "properties": { + "answerRecord": { + "description": "The name of the answer record. Format: projects/{project}/locations/{location}/answerRecords/{answer_record}", + "type": "string" + }, + "confidence": { + "description": "The confidence score of the summarization.", + "format": "float", + "type": "number" + }, + "conversationModel": { + "description": "The name of the model that generates this summary. Format: projects/{project}/locations/{location}/conversationModels/{conversation_model}", + "type": "string" + }, + "metadata": { + "additionalProperties": { + "type": "string" + }, + "description": "A map that contains metadata about the summarization and the document from which it originates.", + "type": "object" + }, + "text": { + "description": "The summarization content that is concatenated into one string.", + "type": "string" + }, + "textSections": { + "additionalProperties": { + "type": "string" + }, + "description": "The summarization content that is divided into sections. The key is the section's name and the value is the section's content. There is no specific format for the key or value.", + "type": "object" + } + }, + "type": "object" + }, "GoogleCloudContactcenterinsightsV1alpha1ConversationTranscript": { "description": "A message representing the transcript of a conversation.", "id": "GoogleCloudContactcenterinsightsV1alpha1ConversationTranscript", @@ -5061,6 +5213,10 @@ "$ref": "GoogleCloudContactcenterinsightsV1alpha1ArticleSuggestionData", "description": "Agent Assist Article Suggestion data." }, + "conversationSummarizationSuggestion": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1ConversationSummarizationSuggestionData", + "description": "Conversation summarization suggestion data." + }, "createTime": { "description": "The time at which this annotation was created.", "format": "google-datetime", diff --git a/contactcenterinsights/v1/contactcenterinsights-gen.go b/contactcenterinsights/v1/contactcenterinsights-gen.go index dd85c0c5bfd..9623f8cbc12 100644 --- a/contactcenterinsights/v1/contactcenterinsights-gen.go +++ b/contactcenterinsights/v1/contactcenterinsights-gen.go @@ -464,6 +464,13 @@ type GoogleCloudContactcenterinsightsV1AnnotatorSelector struct { // RunSilenceAnnotator: Whether to run the silence annotator. RunSilenceAnnotator bool `json:"runSilenceAnnotator,omitempty"` + // RunSummarizationAnnotator: Whether to run the summarization + // annotator. + RunSummarizationAnnotator bool `json:"runSummarizationAnnotator,omitempty"` + + // SummarizationConfig: Configuration for the summarization annotator. + SummarizationConfig *GoogleCloudContactcenterinsightsV1AnnotatorSelectorSummarizationConfig `json:"summarizationConfig,omitempty"` + // ForceSendFields is a list of field names (e.g. "IssueModels") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any @@ -487,6 +494,47 @@ func (s *GoogleCloudContactcenterinsightsV1AnnotatorSelector) MarshalJSON() ([]b return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// GoogleCloudContactcenterinsightsV1AnnotatorSelectorSummarizationConfig +// : Configuration for summarization. +type GoogleCloudContactcenterinsightsV1AnnotatorSelectorSummarizationConfig struct { + // ConversationProfile: Resource name of the Dialogflow conversation + // profile. Format: + // projects/{project}/locations/{location}/conversationProfiles/{conversa + // tion_profile} + ConversationProfile string `json:"conversationProfile,omitempty"` + + // SummarizationModel: Default summarization model to be used. + // + // Possible values: + // "SUMMARIZATION_MODEL_UNSPECIFIED" - Unspecified summarization + // model. + // "BASELINE_MODEL" - The Insights baseline model. + SummarizationModel string `json:"summarizationModel,omitempty"` + + // ForceSendFields is a list of field names (e.g. "ConversationProfile") + // to unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "ConversationProfile") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudContactcenterinsightsV1AnnotatorSelectorSummarizationConfig) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudContactcenterinsightsV1AnnotatorSelectorSummarizationConfig + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // GoogleCloudContactcenterinsightsV1AnswerFeedback: The feedback that // the customer has about a certain answer in the conversation. type GoogleCloudContactcenterinsightsV1AnswerFeedback struct { @@ -1015,6 +1063,9 @@ type GoogleCloudContactcenterinsightsV1Conversation struct { // one exists. LatestAnalysis *GoogleCloudContactcenterinsightsV1Analysis `json:"latestAnalysis,omitempty"` + // LatestSummary: Output only. Latest summary of the conversation. + LatestSummary *GoogleCloudContactcenterinsightsV1ConversationSummarizationSuggestionData `json:"latestSummary,omitempty"` + // Medium: Immutable. The conversation medium, if unspecified will // default to PHONE_CALL. // @@ -1237,6 +1288,71 @@ func (s *GoogleCloudContactcenterinsightsV1ConversationParticipant) MarshalJSON( return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// GoogleCloudContactcenterinsightsV1ConversationSummarizationSuggestionD +// ata: Conversation summarization suggestion data. +type GoogleCloudContactcenterinsightsV1ConversationSummarizationSuggestionData struct { + // AnswerRecord: The name of the answer record. Format: + // projects/{project}/locations/{location}/answerRecords/{answer_record} + AnswerRecord string `json:"answerRecord,omitempty"` + + // Confidence: The confidence score of the summarization. + Confidence float64 `json:"confidence,omitempty"` + + // ConversationModel: The name of the model that generates this summary. + // Format: + // projects/{project}/locations/{location}/conversationModels/{conversati + // on_model} + ConversationModel string `json:"conversationModel,omitempty"` + + // Metadata: A map that contains metadata about the summarization and + // the document from which it originates. + Metadata map[string]string `json:"metadata,omitempty"` + + // Text: The summarization content that is concatenated into one string. + Text string `json:"text,omitempty"` + + // TextSections: The summarization content that is divided into + // sections. The key is the section's name and the value is the + // section's content. There is no specific format for the key or value. + TextSections map[string]string `json:"textSections,omitempty"` + + // ForceSendFields is a list of field names (e.g. "AnswerRecord") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "AnswerRecord") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudContactcenterinsightsV1ConversationSummarizationSuggestionData) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudContactcenterinsightsV1ConversationSummarizationSuggestionData + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +func (s *GoogleCloudContactcenterinsightsV1ConversationSummarizationSuggestionData) UnmarshalJSON(data []byte) error { + type NoMethod GoogleCloudContactcenterinsightsV1ConversationSummarizationSuggestionData + var s1 struct { + Confidence gensupport.JSONFloat64 `json:"confidence"` + *NoMethod + } + s1.NoMethod = (*NoMethod)(s) + if err := json.Unmarshal(data, &s1); err != nil { + return err + } + s.Confidence = float64(s1.Confidence) + return nil +} + // GoogleCloudContactcenterinsightsV1ConversationTranscript: A message // representing the transcript of a conversation. type GoogleCloudContactcenterinsightsV1ConversationTranscript struct { @@ -3361,6 +3477,10 @@ type GoogleCloudContactcenterinsightsV1RuntimeAnnotation struct { // ArticleSuggestion: Agent Assist Article Suggestion data. ArticleSuggestion *GoogleCloudContactcenterinsightsV1ArticleSuggestionData `json:"articleSuggestion,omitempty"` + // ConversationSummarizationSuggestion: Conversation summarization + // suggestion data. + ConversationSummarizationSuggestion *GoogleCloudContactcenterinsightsV1ConversationSummarizationSuggestionData `json:"conversationSummarizationSuggestion,omitempty"` + // CreateTime: The time at which this annotation was created. CreateTime string `json:"createTime,omitempty"` @@ -4116,6 +4236,13 @@ type GoogleCloudContactcenterinsightsV1alpha1AnnotatorSelector struct { // RunSilenceAnnotator: Whether to run the silence annotator. RunSilenceAnnotator bool `json:"runSilenceAnnotator,omitempty"` + // RunSummarizationAnnotator: Whether to run the summarization + // annotator. + RunSummarizationAnnotator bool `json:"runSummarizationAnnotator,omitempty"` + + // SummarizationConfig: Configuration for the summarization annotator. + SummarizationConfig *GoogleCloudContactcenterinsightsV1alpha1AnnotatorSelectorSummarizationConfig `json:"summarizationConfig,omitempty"` + // ForceSendFields is a list of field names (e.g. "IssueModels") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any @@ -4139,6 +4266,47 @@ func (s *GoogleCloudContactcenterinsightsV1alpha1AnnotatorSelector) MarshalJSON( return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// GoogleCloudContactcenterinsightsV1alpha1AnnotatorSelectorSummarization +// Config: Configuration for summarization. +type GoogleCloudContactcenterinsightsV1alpha1AnnotatorSelectorSummarizationConfig struct { + // ConversationProfile: Resource name of the Dialogflow conversation + // profile. Format: + // projects/{project}/locations/{location}/conversationProfiles/{conversa + // tion_profile} + ConversationProfile string `json:"conversationProfile,omitempty"` + + // SummarizationModel: Default summarization model to be used. + // + // Possible values: + // "SUMMARIZATION_MODEL_UNSPECIFIED" - Unspecified summarization + // model. + // "BASELINE_MODEL" - The Insights baseline model. + SummarizationModel string `json:"summarizationModel,omitempty"` + + // ForceSendFields is a list of field names (e.g. "ConversationProfile") + // to unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "ConversationProfile") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudContactcenterinsightsV1alpha1AnnotatorSelectorSummarizationConfig) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudContactcenterinsightsV1alpha1AnnotatorSelectorSummarizationConfig + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // GoogleCloudContactcenterinsightsV1alpha1AnswerFeedback: The feedback // that the customer has about a certain answer in the conversation. type GoogleCloudContactcenterinsightsV1alpha1AnswerFeedback struct { @@ -4495,6 +4663,9 @@ type GoogleCloudContactcenterinsightsV1alpha1Conversation struct { // one exists. LatestAnalysis *GoogleCloudContactcenterinsightsV1alpha1Analysis `json:"latestAnalysis,omitempty"` + // LatestSummary: Output only. Latest summary of the conversation. + LatestSummary *GoogleCloudContactcenterinsightsV1alpha1ConversationSummarizationSuggestionData `json:"latestSummary,omitempty"` + // Medium: Immutable. The conversation medium, if unspecified will // default to PHONE_CALL. // @@ -4713,6 +4884,71 @@ func (s *GoogleCloudContactcenterinsightsV1alpha1ConversationParticipant) Marsha return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// GoogleCloudContactcenterinsightsV1alpha1ConversationSummarizationSugge +// stionData: Conversation summarization suggestion data. +type GoogleCloudContactcenterinsightsV1alpha1ConversationSummarizationSuggestionData struct { + // AnswerRecord: The name of the answer record. Format: + // projects/{project}/locations/{location}/answerRecords/{answer_record} + AnswerRecord string `json:"answerRecord,omitempty"` + + // Confidence: The confidence score of the summarization. + Confidence float64 `json:"confidence,omitempty"` + + // ConversationModel: The name of the model that generates this summary. + // Format: + // projects/{project}/locations/{location}/conversationModels/{conversati + // on_model} + ConversationModel string `json:"conversationModel,omitempty"` + + // Metadata: A map that contains metadata about the summarization and + // the document from which it originates. + Metadata map[string]string `json:"metadata,omitempty"` + + // Text: The summarization content that is concatenated into one string. + Text string `json:"text,omitempty"` + + // TextSections: The summarization content that is divided into + // sections. The key is the section's name and the value is the + // section's content. There is no specific format for the key or value. + TextSections map[string]string `json:"textSections,omitempty"` + + // ForceSendFields is a list of field names (e.g. "AnswerRecord") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "AnswerRecord") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudContactcenterinsightsV1alpha1ConversationSummarizationSuggestionData) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudContactcenterinsightsV1alpha1ConversationSummarizationSuggestionData + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +func (s *GoogleCloudContactcenterinsightsV1alpha1ConversationSummarizationSuggestionData) UnmarshalJSON(data []byte) error { + type NoMethod GoogleCloudContactcenterinsightsV1alpha1ConversationSummarizationSuggestionData + var s1 struct { + Confidence gensupport.JSONFloat64 `json:"confidence"` + *NoMethod + } + s1.NoMethod = (*NoMethod)(s) + if err := json.Unmarshal(data, &s1); err != nil { + return err + } + s.Confidence = float64(s1.Confidence) + return nil +} + // GoogleCloudContactcenterinsightsV1alpha1ConversationTranscript: A // message representing the transcript of a conversation. type GoogleCloudContactcenterinsightsV1alpha1ConversationTranscript struct { @@ -6337,6 +6573,10 @@ type GoogleCloudContactcenterinsightsV1alpha1RuntimeAnnotation struct { // ArticleSuggestion: Agent Assist Article Suggestion data. ArticleSuggestion *GoogleCloudContactcenterinsightsV1alpha1ArticleSuggestionData `json:"articleSuggestion,omitempty"` + // ConversationSummarizationSuggestion: Conversation summarization + // suggestion data. + ConversationSummarizationSuggestion *GoogleCloudContactcenterinsightsV1alpha1ConversationSummarizationSuggestionData `json:"conversationSummarizationSuggestion,omitempty"` + // CreateTime: The time at which this annotation was created. CreateTime string `json:"createTime,omitempty"` diff --git a/container/v1beta1/container-api.json b/container/v1beta1/container-api.json index 8a8f9c0b925..7b78a9e2638 100644 --- a/container/v1beta1/container-api.json +++ b/container/v1beta1/container-api.json @@ -2512,7 +2512,7 @@ } } }, - "revision": "20230404", + "revision": "20230406", "rootUrl": "https://container.googleapis.com/", "schemas": { "AcceleratorConfig": { @@ -2582,6 +2582,10 @@ "$ref": "GcpFilestoreCsiDriverConfig", "description": "Configuration for the GCP Filestore CSI driver." }, + "gcsFuseCsiDriverConfig": { + "$ref": "GcsFuseCsiDriverConfig", + "description": "Configuration for the Cloud Storage Fuse CSI driver." + }, "gkeBackupAgentConfig": { "$ref": "GkeBackupAgentConfig", "description": "Configuration for the Backup for GKE agent addon." @@ -3963,6 +3967,17 @@ }, "type": "object" }, + "GcsFuseCsiDriverConfig": { + "description": "Configuration for the Cloud Storage Fuse CSI driver.", + "id": "GcsFuseCsiDriverConfig", + "properties": { + "enabled": { + "description": "Whether the Cloud Storage Fuse CSI driver is enabled for this cluster.", + "type": "boolean" + } + }, + "type": "object" + }, "GetJSONWebKeysResponse": { "description": "GetJSONWebKeysResponse is a valid JSON Web Key Set as specififed in rfc 7517", "id": "GetJSONWebKeysResponse", diff --git a/container/v1beta1/container-gen.go b/container/v1beta1/container-gen.go index 24ae9b83caa..11d0993bdb4 100644 --- a/container/v1beta1/container-gen.go +++ b/container/v1beta1/container-gen.go @@ -383,6 +383,10 @@ type AddonsConfig struct { // driver. GcpFilestoreCsiDriverConfig *GcpFilestoreCsiDriverConfig `json:"gcpFilestoreCsiDriverConfig,omitempty"` + // GcsFuseCsiDriverConfig: Configuration for the Cloud Storage Fuse CSI + // driver. + GcsFuseCsiDriverConfig *GcsFuseCsiDriverConfig `json:"gcsFuseCsiDriverConfig,omitempty"` + // GkeBackupAgentConfig: Configuration for the Backup for GKE agent // addon. GkeBackupAgentConfig *GkeBackupAgentConfig `json:"gkeBackupAgentConfig,omitempty"` @@ -2638,6 +2642,36 @@ func (s *GcpFilestoreCsiDriverConfig) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// GcsFuseCsiDriverConfig: Configuration for the Cloud Storage Fuse CSI +// driver. +type GcsFuseCsiDriverConfig struct { + // Enabled: Whether the Cloud Storage Fuse CSI driver is enabled for + // this cluster. + Enabled bool `json:"enabled,omitempty"` + + // ForceSendFields is a list of field names (e.g. "Enabled") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "Enabled") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GcsFuseCsiDriverConfig) MarshalJSON() ([]byte, error) { + type NoMethod GcsFuseCsiDriverConfig + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // GetJSONWebKeysResponse: GetJSONWebKeysResponse is a valid JSON Web // Key Set as specififed in rfc 7517 type GetJSONWebKeysResponse struct { diff --git a/dfareporting/v4/dfareporting-api.json b/dfareporting/v4/dfareporting-api.json index 3ca483af357..d94afc91019 100644 --- a/dfareporting/v4/dfareporting-api.json +++ b/dfareporting/v4/dfareporting-api.json @@ -10032,7 +10032,7 @@ } } }, - "revision": "20230323", + "revision": "20230425", "rootUrl": "https://dfareporting.googleapis.com/", "schemas": { "Account": { @@ -12142,6 +12142,13 @@ "description": "Whether this particular request may come from a user under the age of 16 (may differ by country), under compliance with the European Union's General Data Protection Regulation (GDPR).", "type": "boolean" }, + "userIdentifiers": { + "description": "The user identifiers to enhance the conversion. The maximum number of user identifiers for each conversion is 5.", + "items": { + "$ref": "UserIdentifier" + }, + "type": "array" + }, "value": { "description": "The value of the conversion.", "format": "double", @@ -17233,6 +17240,41 @@ }, "type": "object" }, + "OfflineUserAddressInfo": { + "description": "Identify a user by name and address.", + "id": "OfflineUserAddressInfo", + "properties": { + "city": { + "description": "City of the address.", + "type": "string" + }, + "countryCode": { + "description": "2-letter country code in ISO-3166-1 alpha-2 of the user's address.", + "type": "string" + }, + "hashedFirstName": { + "description": "First name of the user, which is hashed as SHA-256 after normalized (Lowercase all characters; Remove any extra spaces before, after, and in between).", + "type": "string" + }, + "hashedLastName": { + "description": "Last name of the user, which is hashed as SHA-256 after normalized (lower case only and no punctuation).", + "type": "string" + }, + "hashedStreetAddress": { + "description": "The street address of the user hashed using SHA-256 hash function after normalization (lower case only).", + "type": "string" + }, + "postalCode": { + "description": "Postal code of the user's address.", + "type": "string" + }, + "state": { + "description": "State code of the address.", + "type": "string" + } + }, + "type": "object" + }, "OffsetPosition": { "description": "Offset Position.", "id": "OffsetPosition", @@ -21113,6 +21155,25 @@ }, "type": "object" }, + "UserIdentifier": { + "description": "User identifying information. Exactly one type of identifier must be specified.", + "id": "UserIdentifier", + "properties": { + "addressInfo": { + "$ref": "OfflineUserAddressInfo", + "description": "Address information." + }, + "hashedEmail": { + "description": "Hashed email address using SHA-256 hash function after normalization.", + "type": "string" + }, + "hashedPhoneNumber": { + "description": "Hashed phone number using SHA-256 hash function after normalization (E164 standard).", + "type": "string" + } + }, + "type": "object" + }, "UserProfile": { "description": "A UserProfile resource lets you list all DFA user profiles that are associated with a Google user account. The profile_id needs to be specified in other API requests. ", "id": "UserProfile", diff --git a/dfareporting/v4/dfareporting-gen.go b/dfareporting/v4/dfareporting-gen.go index 11f16f3e99f..8d4e82644df 100644 --- a/dfareporting/v4/dfareporting-gen.go +++ b/dfareporting/v4/dfareporting-gen.go @@ -3891,6 +3891,10 @@ type Conversion struct { // with the European Union's General Data Protection Regulation (GDPR). TreatmentForUnderage bool `json:"treatmentForUnderage,omitempty"` + // UserIdentifiers: The user identifiers to enhance the conversion. The + // maximum number of user identifiers for each conversion is 5. + UserIdentifiers []*UserIdentifier `json:"userIdentifiers,omitempty"` + // Value: The value of the conversion. Value float64 `json:"value,omitempty"` @@ -9987,6 +9991,57 @@ func (s *ObjectFilter) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// OfflineUserAddressInfo: Identify a user by name and address. +type OfflineUserAddressInfo struct { + // City: City of the address. + City string `json:"city,omitempty"` + + // CountryCode: 2-letter country code in ISO-3166-1 alpha-2 of the + // user's address. + CountryCode string `json:"countryCode,omitempty"` + + // HashedFirstName: First name of the user, which is hashed as SHA-256 + // after normalized (Lowercase all characters; Remove any extra spaces + // before, after, and in between). + HashedFirstName string `json:"hashedFirstName,omitempty"` + + // HashedLastName: Last name of the user, which is hashed as SHA-256 + // after normalized (lower case only and no punctuation). + HashedLastName string `json:"hashedLastName,omitempty"` + + // HashedStreetAddress: The street address of the user hashed using + // SHA-256 hash function after normalization (lower case only). + HashedStreetAddress string `json:"hashedStreetAddress,omitempty"` + + // PostalCode: Postal code of the user's address. + PostalCode string `json:"postalCode,omitempty"` + + // State: State code of the address. + State string `json:"state,omitempty"` + + // ForceSendFields is a list of field names (e.g. "City") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "City") to include in API + // requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *OfflineUserAddressInfo) MarshalJSON() ([]byte, error) { + type NoMethod OfflineUserAddressInfo + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // OffsetPosition: Offset Position. type OffsetPosition struct { // Left: Offset distance from left side of an asset or a window. @@ -14834,6 +14889,43 @@ func (s *UserDefinedVariableConfiguration) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// UserIdentifier: User identifying information. Exactly one type of +// identifier must be specified. +type UserIdentifier struct { + // AddressInfo: Address information. + AddressInfo *OfflineUserAddressInfo `json:"addressInfo,omitempty"` + + // HashedEmail: Hashed email address using SHA-256 hash function after + // normalization. + HashedEmail string `json:"hashedEmail,omitempty"` + + // HashedPhoneNumber: Hashed phone number using SHA-256 hash function + // after normalization (E164 standard). + HashedPhoneNumber string `json:"hashedPhoneNumber,omitempty"` + + // ForceSendFields is a list of field names (e.g. "AddressInfo") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "AddressInfo") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *UserIdentifier) MarshalJSON() ([]byte, error) { + type NoMethod UserIdentifier + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // UserProfile: A UserProfile resource lets you list all DFA user // profiles that are associated with a Google user account. The // profile_id needs to be specified in other API requests. diff --git a/drive/v2/drive-api.json b/drive/v2/drive-api.json index 1d9e12f340e..87680b9176b 100644 --- a/drive/v2/drive-api.json +++ b/drive/v2/drive-api.json @@ -38,7 +38,7 @@ "description": "Manages files in Drive including uploading, downloading, searching, detecting changes, and updating sharing permissions.", "discoveryVersion": "v1", "documentationLink": "https://developers.google.com/drive/", - "etag": "\"VYc8DWo_6wRTElVugbtvWfkARsc/LYVlaRfUrd22kdDK7YfGWrMedUY\"", + "etag": "\"VYc8DWo_6wRTElVugbtvWfkARsc/vUgtTacNQXAlvuhI2YoKrF8mHHA\"", "icons": { "x16": "https://ssl.gstatic.com/docs/doclist/images/drive_icon_16.png", "x32": "https://ssl.gstatic.com/docs/doclist/images/drive_icon_32.png" @@ -1290,7 +1290,7 @@ ] }, "emptyTrash": { - "description": "Permanently deletes all of the user's trashed files.", + "description": "Permanently deletes all trashed files of a user or shared drive.", "httpMethod": "DELETE", "id": "drive.files.emptyTrash", "parameters": { @@ -2231,7 +2231,7 @@ "supportsMediaUpload": true }, "watch": { - "description": "Subscribes to changes to a file. While you can establish a channel for changes to a file on a shared drive, a change to a shared drive file won't create a notification.", + "description": "Subscribe to changes on a file.", "httpMethod": "POST", "id": "drive.files.watch", "parameterOrder": [ @@ -3673,7 +3673,7 @@ } } }, - "revision": "20230413", + "revision": "20230423", "rootUrl": "https://www.googleapis.com/", "schemas": { "About": { diff --git a/drive/v2/drive-gen.go b/drive/v2/drive-gen.go index bca8095c520..fcf19dc99fb 100644 --- a/drive/v2/drive-gen.go +++ b/drive/v2/drive-gen.go @@ -9300,7 +9300,8 @@ type FilesEmptyTrashCall struct { header_ http.Header } -// EmptyTrash: Permanently deletes all of the user's trashed files. +// EmptyTrash: Permanently deletes all trashed files of a user or shared +// drive. func (r *FilesService) EmptyTrash() *FilesEmptyTrashCall { c := &FilesEmptyTrashCall{s: r.s, urlParams_: make(gensupport.URLParams)} return c @@ -9380,7 +9381,7 @@ func (c *FilesEmptyTrashCall) Do(opts ...googleapi.CallOption) error { } return nil // { - // "description": "Permanently deletes all of the user's trashed files.", + // "description": "Permanently deletes all trashed files of a user or shared drive.", // "httpMethod": "DELETE", // "id": "drive.files.emptyTrash", // "parameters": { @@ -12681,9 +12682,7 @@ type FilesWatchCall struct { header_ http.Header } -// Watch: Subscribes to changes to a file. While you can establish a -// channel for changes to a file on a shared drive, a change to a shared -// drive file won't create a notification. +// Watch: Subscribe to changes on a file. // // - fileId: The ID for the file in question. func (r *FilesService) Watch(fileId string, channel *Channel) *FilesWatchCall { @@ -12868,7 +12867,7 @@ func (c *FilesWatchCall) Do(opts ...googleapi.CallOption) (*Channel, error) { } return ret, nil // { - // "description": "Subscribes to changes to a file. While you can establish a channel for changes to a file on a shared drive, a change to a shared drive file won't create a notification.", + // "description": "Subscribe to changes on a file.", // "httpMethod": "POST", // "id": "drive.files.watch", // "parameterOrder": [ diff --git a/drive/v3/drive-api.json b/drive/v3/drive-api.json index a58f7461b3d..56511da5f55 100644 --- a/drive/v3/drive-api.json +++ b/drive/v3/drive-api.json @@ -35,7 +35,7 @@ "description": "Manages files in Drive including uploading, downloading, searching, detecting changes, and updating sharing permissions.", "discoveryVersion": "v1", "documentationLink": "https://developers.google.com/drive/", - "etag": "\"VYc8DWo_6wRTElVugbtvWfkARsc/LNE_sW6QDmVvlTRH3pwh_AYe3ik\"", + "etag": "\"VYc8DWo_6wRTElVugbtvWfkARsc/OgtZCpoen_8IW8oaECY1TAD8ttU\"", "icons": { "x16": "https://ssl.gstatic.com/docs/doclist/images/drive_icon_16.png", "x32": "https://ssl.gstatic.com/docs/doclist/images/drive_icon_32.png" @@ -997,7 +997,7 @@ ] }, "emptyTrash": { - "description": "Permanently deletes all of the user's trashed files.", + "description": "Permanently deletes all trashed files of a user or shared drive.", "httpMethod": "DELETE", "id": "drive.files.emptyTrash", "parameters": { @@ -1429,7 +1429,7 @@ "supportsMediaUpload": true }, "watch": { - "description": "Subscribes to changes to a file.", + "description": "Subscribe to changes on a file.", "httpMethod": "POST", "id": "drive.files.watch", "parameterOrder": [ @@ -2317,7 +2317,7 @@ } } }, - "revision": "20230413", + "revision": "20230423", "rootUrl": "https://www.googleapis.com/", "schemas": { "About": { diff --git a/drive/v3/drive-gen.go b/drive/v3/drive-gen.go index b5b87fe11a8..b538a712f20 100644 --- a/drive/v3/drive-gen.go +++ b/drive/v3/drive-gen.go @@ -7117,7 +7117,8 @@ type FilesEmptyTrashCall struct { header_ http.Header } -// EmptyTrash: Permanently deletes all of the user's trashed files. +// EmptyTrash: Permanently deletes all trashed files of a user or shared +// drive. func (r *FilesService) EmptyTrash() *FilesEmptyTrashCall { c := &FilesEmptyTrashCall{s: r.s, urlParams_: make(gensupport.URLParams)} return c @@ -7197,7 +7198,7 @@ func (c *FilesEmptyTrashCall) Do(opts ...googleapi.CallOption) error { } return nil // { - // "description": "Permanently deletes all of the user's trashed files.", + // "description": "Permanently deletes all trashed files of a user or shared drive.", // "httpMethod": "DELETE", // "id": "drive.files.emptyTrash", // "parameters": { @@ -8881,7 +8882,7 @@ type FilesWatchCall struct { header_ http.Header } -// Watch: Subscribes to changes to a file. +// Watch: Subscribe to changes on a file. // // - fileId: The ID of the file. func (r *FilesService) Watch(fileId string, channel *Channel) *FilesWatchCall { @@ -9039,7 +9040,7 @@ func (c *FilesWatchCall) Do(opts ...googleapi.CallOption) (*Channel, error) { } return ret, nil // { - // "description": "Subscribes to changes to a file.", + // "description": "Subscribe to changes on a file.", // "httpMethod": "POST", // "id": "drive.files.watch", // "parameterOrder": [ diff --git a/firebaseappcheck/v1/firebaseappcheck-api.json b/firebaseappcheck/v1/firebaseappcheck-api.json index 466ec5bfcd6..385e13a7023 100644 --- a/firebaseappcheck/v1/firebaseappcheck-api.json +++ b/firebaseappcheck/v1/firebaseappcheck-api.json @@ -375,6 +375,7 @@ ] }, "exchangeSafetyNetToken": { + "deprecated": true, "description": "Validates a [SafetyNet token](https://developer.android.com/training/safetynet/attestation#request-attestation-step). If valid, returns an AppCheckToken.", "flatPath": "v1/projects/{projectsId}/apps/{appsId}:exchangeSafetyNetToken", "httpMethod": "POST", @@ -1108,6 +1109,7 @@ "safetyNetConfig": { "methods": { "batchGet": { + "deprecated": true, "description": "Atomically gets the SafetyNetConfigs for the specified list of apps.", "flatPath": "v1/projects/{projectsId}/apps/-/safetyNetConfig:batchGet", "httpMethod": "GET", @@ -1140,6 +1142,7 @@ ] }, "get": { + "deprecated": true, "description": "Gets the SafetyNetConfig for the specified app.", "flatPath": "v1/projects/{projectsId}/apps/{appsId}/safetyNetConfig", "httpMethod": "GET", @@ -1166,6 +1169,7 @@ ] }, "patch": { + "deprecated": true, "description": "Updates the SafetyNetConfig for the specified app. While this configuration is incomplete or invalid, the app will be unable to exchange SafetyNet tokens for App Check tokens.", "flatPath": "v1/projects/{projectsId}/apps/{appsId}/safetyNetConfig", "httpMethod": "PATCH", @@ -1338,7 +1342,7 @@ } } }, - "revision": "20220425", + "revision": "20230425", "rootUrl": "https://firebaseappcheck.googleapis.com/", "schemas": { "GoogleFirebaseAppcheckV1AppAttestConfig": { diff --git a/firebaseappcheck/v1/firebaseappcheck-gen.go b/firebaseappcheck/v1/firebaseappcheck-gen.go index e51a0bda957..21aa1344072 100644 --- a/firebaseappcheck/v1/firebaseappcheck-gen.go +++ b/firebaseappcheck/v1/firebaseappcheck-gen.go @@ -3153,6 +3153,7 @@ func (c *ProjectsAppsExchangeSafetyNetTokenCall) Do(opts ...googleapi.CallOption } return ret, nil // { + // "deprecated": true, // "description": "Validates a [SafetyNet token](https://developer.android.com/training/safetynet/attestation#request-attestation-step). If valid, returns an AppCheckToken.", // "flatPath": "v1/projects/{projectsId}/apps/{appsId}:exchangeSafetyNetToken", // "httpMethod": "POST", @@ -6861,6 +6862,7 @@ func (c *ProjectsAppsSafetyNetConfigBatchGetCall) Do(opts ...googleapi.CallOptio } return ret, nil // { + // "deprecated": true, // "description": "Atomically gets the SafetyNetConfigs for the specified list of apps.", // "flatPath": "v1/projects/{projectsId}/apps/-/safetyNetConfig:batchGet", // "httpMethod": "GET", @@ -7017,6 +7019,7 @@ func (c *ProjectsAppsSafetyNetConfigGetCall) Do(opts ...googleapi.CallOption) (* } return ret, nil // { + // "deprecated": true, // "description": "Gets the SafetyNetConfig for the specified app.", // "flatPath": "v1/projects/{projectsId}/apps/{appsId}/safetyNetConfig", // "httpMethod": "GET", @@ -7170,6 +7173,7 @@ func (c *ProjectsAppsSafetyNetConfigPatchCall) Do(opts ...googleapi.CallOption) } return ret, nil // { + // "deprecated": true, // "description": "Updates the SafetyNetConfig for the specified app. While this configuration is incomplete or invalid, the app will be unable to exchange SafetyNet tokens for App Check tokens.", // "flatPath": "v1/projects/{projectsId}/apps/{appsId}/safetyNetConfig", // "httpMethod": "PATCH", diff --git a/firebaseappcheck/v1beta/firebaseappcheck-api.json b/firebaseappcheck/v1beta/firebaseappcheck-api.json index dfd794d10db..1b09f4c7bde 100644 --- a/firebaseappcheck/v1beta/firebaseappcheck-api.json +++ b/firebaseappcheck/v1beta/firebaseappcheck-api.json @@ -139,6 +139,37 @@ } }, "projects": { + "methods": { + "verifyAppCheckToken": { + "description": "Verifies the given App Check token and returns token usage signals that callers may act upon. This method currently only supports App Check tokens exchanged from the following attestation providers: * Play Integrity API * App Attest * DeviceCheck (`DCDevice` tokens) * reCAPTCHA Enterprise * reCAPTCHA v3 * Custom providers App Check tokens exchanged from debug secrets are also supported. Calling this method on an otherwise valid App Check token with an unsupported provider will cause an HTTP 400 error to be returned. Returns whether this token was already consumed before this call. If this is the first time this method has seen the given App Check token, the field `already_consumed` will contain the value `false`. The given token will then be marked as `already_consumed` for all future invocations of this method for that token. Note that if the given App Check token is invalid, an HTTP 403 error is returned instead of a response object, regardless whether the token was already consumed. Currently, when evaluating whether an App Check token was already consumed, only calls to this exact method are counted. Use of the App Check token elsewhere will not mark the token as being already consumed.", + "flatPath": "v1beta/projects/{projectsId}:verifyAppCheckToken", + "httpMethod": "POST", + "id": "firebaseappcheck.projects.verifyAppCheckToken", + "parameterOrder": [ + "project" + ], + "parameters": { + "project": { + "description": "Required. The relative resource name of the project for which the token was minted, in the format: ``` projects/{project_number} ``` 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.", + "location": "path", + "pattern": "^projects/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+project}:verifyAppCheckToken", + "request": { + "$ref": "GoogleFirebaseAppcheckV1betaVerifyAppCheckTokenRequest" + }, + "response": { + "$ref": "GoogleFirebaseAppcheckV1betaVerifyAppCheckTokenResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/firebase" + ] + } + }, "resources": { "apps": { "methods": { @@ -346,6 +377,7 @@ ] }, "exchangeRecaptchaToken": { + "deprecated": true, "description": "Validates a [reCAPTCHA v3 response token](https://developers.google.com/recaptcha/docs/v3). If valid, returns an AppCheckToken.", "flatPath": "v1beta/projects/{projectsId}/apps/{appsId}:exchangeRecaptchaToken", "httpMethod": "POST", @@ -404,6 +436,7 @@ ] }, "exchangeSafetyNetToken": { + "deprecated": true, "description": "Validates a [SafetyNet token](https://developer.android.com/training/safetynet/attestation#request-attestation-step). If valid, returns an AppCheckToken.", "flatPath": "v1beta/projects/{projectsId}/apps/{appsId}:exchangeSafetyNetToken", "httpMethod": "POST", @@ -943,6 +976,7 @@ "recaptchaConfig": { "methods": { "batchGet": { + "deprecated": true, "description": "Atomically gets the RecaptchaConfigs for the specified list of apps. For security reasons, the `site_secret` field is never populated in the response.", "flatPath": "v1beta/projects/{projectsId}/apps/-/recaptchaConfig:batchGet", "httpMethod": "GET", @@ -975,6 +1009,7 @@ ] }, "get": { + "deprecated": true, "description": "Gets the RecaptchaConfig for the specified app. For security reasons, the `site_secret` field is never populated in the response.", "flatPath": "v1beta/projects/{projectsId}/apps/{appsId}/recaptchaConfig", "httpMethod": "GET", @@ -1001,6 +1036,7 @@ ] }, "patch": { + "deprecated": true, "description": "Updates the RecaptchaConfig for the specified app. While this configuration is incomplete or invalid, the app will be unable to exchange reCAPTCHA tokens for App Check tokens. For security reasons, the `site_secret` field is never populated in the response.", "flatPath": "v1beta/projects/{projectsId}/apps/{appsId}/recaptchaConfig", "httpMethod": "PATCH", @@ -1234,6 +1270,7 @@ "safetyNetConfig": { "methods": { "batchGet": { + "deprecated": true, "description": "Atomically gets the SafetyNetConfigs for the specified list of apps.", "flatPath": "v1beta/projects/{projectsId}/apps/-/safetyNetConfig:batchGet", "httpMethod": "GET", @@ -1266,6 +1303,7 @@ ] }, "get": { + "deprecated": true, "description": "Gets the SafetyNetConfig for the specified app.", "flatPath": "v1beta/projects/{projectsId}/apps/{appsId}/safetyNetConfig", "httpMethod": "GET", @@ -1292,6 +1330,7 @@ ] }, "patch": { + "deprecated": true, "description": "Updates the SafetyNetConfig for the specified app. While this configuration is incomplete or invalid, the app will be unable to exchange SafetyNet tokens for App Check tokens.", "flatPath": "v1beta/projects/{projectsId}/apps/{appsId}/safetyNetConfig", "httpMethod": "PATCH", @@ -1464,7 +1503,7 @@ } } }, - "revision": "20230327", + "revision": "20230425", "rootUrl": "https://firebaseappcheck.googleapis.com/", "schemas": { "GoogleFirebaseAppcheckV1betaAppAttestConfig": { @@ -2119,6 +2158,28 @@ }, "type": "object" }, + "GoogleFirebaseAppcheckV1betaVerifyAppCheckTokenRequest": { + "description": "Request message for the VerifyAppCheckToken method.", + "id": "GoogleFirebaseAppcheckV1betaVerifyAppCheckTokenRequest", + "properties": { + "appCheckToken": { + "description": "Required. The App Check token to verify.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleFirebaseAppcheckV1betaVerifyAppCheckTokenResponse": { + "description": "Response message for the VerifyAppCheckToken method.", + "id": "GoogleFirebaseAppcheckV1betaVerifyAppCheckTokenResponse", + "properties": { + "alreadyConsumed": { + "description": "Whether this token was already consumed. If this is the first time this method has seen the given App Check token, this field will contain the value `false`. The given token will then be marked as `already_consumed` for all future invocations of this method for that token. Note that if the given App Check token is invalid, an HTTP 403 error is returned instead of a response containing this field, regardless whether the token was already consumed.", + "type": "boolean" + } + }, + "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/firebaseappcheck/v1beta/firebaseappcheck-gen.go b/firebaseappcheck/v1beta/firebaseappcheck-gen.go index 873968c5dcf..64eff598797 100644 --- a/firebaseappcheck/v1beta/firebaseappcheck-gen.go +++ b/firebaseappcheck/v1beta/firebaseappcheck-gen.go @@ -1840,6 +1840,76 @@ func (s *GoogleFirebaseAppcheckV1betaUpdateServiceRequest) MarshalJSON() ([]byte return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// GoogleFirebaseAppcheckV1betaVerifyAppCheckTokenRequest: Request +// message for the VerifyAppCheckToken method. +type GoogleFirebaseAppcheckV1betaVerifyAppCheckTokenRequest struct { + // AppCheckToken: Required. The App Check token to verify. + AppCheckToken string `json:"appCheckToken,omitempty"` + + // ForceSendFields is a list of field names (e.g. "AppCheckToken") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "AppCheckToken") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleFirebaseAppcheckV1betaVerifyAppCheckTokenRequest) MarshalJSON() ([]byte, error) { + type NoMethod GoogleFirebaseAppcheckV1betaVerifyAppCheckTokenRequest + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleFirebaseAppcheckV1betaVerifyAppCheckTokenResponse: Response +// message for the VerifyAppCheckToken method. +type GoogleFirebaseAppcheckV1betaVerifyAppCheckTokenResponse struct { + // AlreadyConsumed: Whether this token was already consumed. If this is + // the first time this method has seen the given App Check token, this + // field will contain the value `false`. The given token will then be + // marked as `already_consumed` for all future invocations of this + // method for that token. Note that if the given App Check token is + // invalid, an HTTP 403 error is returned instead of a response + // containing this field, regardless whether the token was already + // consumed. + AlreadyConsumed bool `json:"alreadyConsumed,omitempty"` + + // ServerResponse contains the HTTP response code and headers from the + // server. + googleapi.ServerResponse `json:"-"` + + // ForceSendFields is a list of field names (e.g. "AlreadyConsumed") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "AlreadyConsumed") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *GoogleFirebaseAppcheckV1betaVerifyAppCheckTokenResponse) MarshalJSON() ([]byte, error) { + type NoMethod GoogleFirebaseAppcheckV1betaVerifyAppCheckTokenResponse + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // GoogleProtobufEmpty: 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 @@ -2004,6 +2074,175 @@ func (c *JwksGetCall) Do(opts ...googleapi.CallOption) (*GoogleFirebaseAppcheckV } +// method id "firebaseappcheck.projects.verifyAppCheckToken": + +type ProjectsVerifyAppCheckTokenCall struct { + s *Service + projectid string + googlefirebaseappcheckv1betaverifyappchecktokenrequest *GoogleFirebaseAppcheckV1betaVerifyAppCheckTokenRequest + urlParams_ gensupport.URLParams + ctx_ context.Context + header_ http.Header +} + +// VerifyAppCheckToken: Verifies the given App Check token and returns +// token usage signals that callers may act upon. This method currently +// only supports App Check tokens exchanged from the following +// attestation providers: * Play Integrity API * App Attest * +// DeviceCheck (`DCDevice` tokens) * reCAPTCHA Enterprise * reCAPTCHA v3 +// * Custom providers App Check tokens exchanged from debug secrets are +// also supported. Calling this method on an otherwise valid App Check +// token with an unsupported provider will cause an HTTP 400 error to be +// returned. Returns whether this token was already consumed before this +// call. If this is the first time this method has seen the given App +// Check token, the field `already_consumed` will contain the value +// `false`. The given token will then be marked as `already_consumed` +// for all future invocations of this method for that token. Note that +// if the given App Check token is invalid, an HTTP 403 error is +// returned instead of a response object, regardless whether the token +// was already consumed. Currently, when evaluating whether an App Check +// token was already consumed, only calls to this exact method are +// counted. Use of the App Check token elsewhere will not mark the token +// as being already consumed. +// +// - project: The relative resource name of the project for which the +// token was minted, in the format: ``` projects/{project_number} ``` +// 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. +func (r *ProjectsService) VerifyAppCheckToken(projectid string, googlefirebaseappcheckv1betaverifyappchecktokenrequest *GoogleFirebaseAppcheckV1betaVerifyAppCheckTokenRequest) *ProjectsVerifyAppCheckTokenCall { + c := &ProjectsVerifyAppCheckTokenCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.projectid = projectid + c.googlefirebaseappcheckv1betaverifyappchecktokenrequest = googlefirebaseappcheckv1betaverifyappchecktokenrequest + return c +} + +// Fields allows partial responses to be retrieved. See +// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *ProjectsVerifyAppCheckTokenCall) Fields(s ...googleapi.Field) *ProjectsVerifyAppCheckTokenCall { + c.urlParams_.Set("fields", googleapi.CombineFields(s)) + return c +} + +// Context sets the context to be used in this call's Do method. Any +// pending HTTP request will be aborted if the provided context is +// canceled. +func (c *ProjectsVerifyAppCheckTokenCall) Context(ctx context.Context) *ProjectsVerifyAppCheckTokenCall { + c.ctx_ = ctx + return c +} + +// Header returns an http.Header that can be modified by the caller to +// add HTTP headers to the request. +func (c *ProjectsVerifyAppCheckTokenCall) Header() http.Header { + if c.header_ == nil { + c.header_ = make(http.Header) + } + return c.header_ +} + +func (c *ProjectsVerifyAppCheckTokenCall) doRequest(alt string) (*http.Response, error) { + reqHeaders := make(http.Header) + reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) + for k, v := range c.header_ { + reqHeaders[k] = v + } + reqHeaders.Set("User-Agent", c.s.userAgent()) + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlefirebaseappcheckv1betaverifyappchecktokenrequest) + if err != nil { + return nil, err + } + reqHeaders.Set("Content-Type", "application/json") + c.urlParams_.Set("alt", alt) + c.urlParams_.Set("prettyPrint", "false") + urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta/{+project}:verifyAppCheckToken") + urls += "?" + c.urlParams_.Encode() + req, err := http.NewRequest("POST", urls, body) + if err != nil { + return nil, err + } + req.Header = reqHeaders + googleapi.Expand(req.URL, map[string]string{ + "project": c.projectid, + }) + return gensupport.SendRequest(c.ctx_, c.s.client, req) +} + +// Do executes the "firebaseappcheck.projects.verifyAppCheckToken" call. +// Exactly one of +// *GoogleFirebaseAppcheckV1betaVerifyAppCheckTokenResponse or error +// will be non-nil. Any non-2xx status code is an error. Response +// headers are in either +// *GoogleFirebaseAppcheckV1betaVerifyAppCheckTokenResponse.ServerRespons +// e.Header or (if a response was returned at all) in +// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check +// whether the returned error was because http.StatusNotModified was +// returned. +func (c *ProjectsVerifyAppCheckTokenCall) Do(opts ...googleapi.CallOption) (*GoogleFirebaseAppcheckV1betaVerifyAppCheckTokenResponse, error) { + gensupport.SetOptions(c.urlParams_, opts...) + res, err := c.doRequest("json") + if res != nil && res.StatusCode == http.StatusNotModified { + if res.Body != nil { + res.Body.Close() + } + return nil, gensupport.WrapError(&googleapi.Error{ + Code: res.StatusCode, + Header: res.Header, + }) + } + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, gensupport.WrapError(err) + } + ret := &GoogleFirebaseAppcheckV1betaVerifyAppCheckTokenResponse{ + ServerResponse: googleapi.ServerResponse{ + Header: res.Header, + HTTPStatusCode: res.StatusCode, + }, + } + target := &ret + if err := gensupport.DecodeResponse(target, res); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Verifies the given App Check token and returns token usage signals that callers may act upon. This method currently only supports App Check tokens exchanged from the following attestation providers: * Play Integrity API * App Attest * DeviceCheck (`DCDevice` tokens) * reCAPTCHA Enterprise * reCAPTCHA v3 * Custom providers App Check tokens exchanged from debug secrets are also supported. Calling this method on an otherwise valid App Check token with an unsupported provider will cause an HTTP 400 error to be returned. Returns whether this token was already consumed before this call. If this is the first time this method has seen the given App Check token, the field `already_consumed` will contain the value `false`. The given token will then be marked as `already_consumed` for all future invocations of this method for that token. Note that if the given App Check token is invalid, an HTTP 403 error is returned instead of a response object, regardless whether the token was already consumed. Currently, when evaluating whether an App Check token was already consumed, only calls to this exact method are counted. Use of the App Check token elsewhere will not mark the token as being already consumed.", + // "flatPath": "v1beta/projects/{projectsId}:verifyAppCheckToken", + // "httpMethod": "POST", + // "id": "firebaseappcheck.projects.verifyAppCheckToken", + // "parameterOrder": [ + // "project" + // ], + // "parameters": { + // "project": { + // "description": "Required. The relative resource name of the project for which the token was minted, in the format: ``` projects/{project_number} ``` 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.", + // "location": "path", + // "pattern": "^projects/[^/]+$", + // "required": true, + // "type": "string" + // } + // }, + // "path": "v1beta/{+project}:verifyAppCheckToken", + // "request": { + // "$ref": "GoogleFirebaseAppcheckV1betaVerifyAppCheckTokenRequest" + // }, + // "response": { + // "$ref": "GoogleFirebaseAppcheckV1betaVerifyAppCheckTokenResponse" + // }, + // "scopes": [ + // "https://www.googleapis.com/auth/cloud-platform", + // "https://www.googleapis.com/auth/firebase" + // ] + // } + +} + // method id "firebaseappcheck.projects.apps.exchangeAppAttestAssertion": type ProjectsAppsExchangeAppAttestAssertionCall struct { @@ -3189,6 +3428,7 @@ func (c *ProjectsAppsExchangeRecaptchaTokenCall) Do(opts ...googleapi.CallOption } return ret, nil // { + // "deprecated": true, // "description": "Validates a [reCAPTCHA v3 response token](https://developers.google.com/recaptcha/docs/v3). If valid, returns an AppCheckToken.", // "flatPath": "v1beta/projects/{projectsId}/apps/{appsId}:exchangeRecaptchaToken", // "httpMethod": "POST", @@ -3491,6 +3731,7 @@ func (c *ProjectsAppsExchangeSafetyNetTokenCall) Do(opts ...googleapi.CallOption } return ret, nil // { + // "deprecated": true, // "description": "Validates a [SafetyNet token](https://developer.android.com/training/safetynet/attestation#request-attestation-step). If valid, returns an AppCheckToken.", // "flatPath": "v1beta/projects/{projectsId}/apps/{appsId}:exchangeSafetyNetToken", // "httpMethod": "POST", @@ -6231,6 +6472,7 @@ func (c *ProjectsAppsRecaptchaConfigBatchGetCall) Do(opts ...googleapi.CallOptio } return ret, nil // { + // "deprecated": true, // "description": "Atomically gets the RecaptchaConfigs for the specified list of apps. For security reasons, the `site_secret` field is never populated in the response.", // "flatPath": "v1beta/projects/{projectsId}/apps/-/recaptchaConfig:batchGet", // "httpMethod": "GET", @@ -6389,6 +6631,7 @@ func (c *ProjectsAppsRecaptchaConfigGetCall) Do(opts ...googleapi.CallOption) (* } return ret, nil // { + // "deprecated": true, // "description": "Gets the RecaptchaConfig for the specified app. For security reasons, the `site_secret` field is never populated in the response.", // "flatPath": "v1beta/projects/{projectsId}/apps/{appsId}/recaptchaConfig", // "httpMethod": "GET", @@ -6544,6 +6787,7 @@ func (c *ProjectsAppsRecaptchaConfigPatchCall) Do(opts ...googleapi.CallOption) } return ret, nil // { + // "deprecated": true, // "description": "Updates the RecaptchaConfig for the specified app. While this configuration is incomplete or invalid, the app will be unable to exchange reCAPTCHA tokens for App Check tokens. For security reasons, the `site_secret` field is never populated in the response.", // "flatPath": "v1beta/projects/{projectsId}/apps/{appsId}/recaptchaConfig", // "httpMethod": "PATCH", @@ -7689,6 +7933,7 @@ func (c *ProjectsAppsSafetyNetConfigBatchGetCall) Do(opts ...googleapi.CallOptio } return ret, nil // { + // "deprecated": true, // "description": "Atomically gets the SafetyNetConfigs for the specified list of apps.", // "flatPath": "v1beta/projects/{projectsId}/apps/-/safetyNetConfig:batchGet", // "httpMethod": "GET", @@ -7846,6 +8091,7 @@ func (c *ProjectsAppsSafetyNetConfigGetCall) Do(opts ...googleapi.CallOption) (* } return ret, nil // { + // "deprecated": true, // "description": "Gets the SafetyNetConfig for the specified app.", // "flatPath": "v1beta/projects/{projectsId}/apps/{appsId}/safetyNetConfig", // "httpMethod": "GET", @@ -8000,6 +8246,7 @@ func (c *ProjectsAppsSafetyNetConfigPatchCall) Do(opts ...googleapi.CallOption) } return ret, nil // { + // "deprecated": true, // "description": "Updates the SafetyNetConfig for the specified app. While this configuration is incomplete or invalid, the app will be unable to exchange SafetyNet tokens for App Check tokens.", // "flatPath": "v1beta/projects/{projectsId}/apps/{appsId}/safetyNetConfig", // "httpMethod": "PATCH", diff --git a/firebaseappdistribution/v1/firebaseappdistribution-api.json b/firebaseappdistribution/v1/firebaseappdistribution-api.json index 5154e8c8aa8..5988aeb95c3 100644 --- a/firebaseappdistribution/v1/firebaseappdistribution-api.json +++ b/firebaseappdistribution/v1/firebaseappdistribution-api.json @@ -406,16 +406,6 @@ "parent" ], "parameters": { - "filter": { - "description": "The expression to filter feedback reports listed in the response. To learn more about filtering, refer to [Google's AIP-160 standard](http://aip.dev/160). Supported fields: - `tester` - `createTime` supports `\u003c`, `\u003c=`, `\u003e` and `\u003e=`, and expects an RFC-3339 formatted string Example: - `createTime \u003c= \"2023-03-10T00:00:00+04:00\"` - `tester = \"projects/-/testers/*@example.com\"`", - "location": "query", - "type": "string" - }, - "orderBy": { - "description": "The fields used to order releases. Supported fields: - `createTime` - `tester` To specify descending order for a field, append a \"desc\" suffix, for example, `createTime desc`. If this parameter is not set, releases are ordered by `createTime` in descending order.", - "location": "query", - "type": "string" - }, "pageSize": { "description": "The maximum number of feedback reports to return. The service may return fewer than this value. The valid range is [1-100]; If unspecified (0), at most 25 feedback reports are returned. Values above 100 are coerced to 100.", "format": "int32", @@ -951,7 +941,7 @@ } } }, - "revision": "20230420", + "revision": "20230426", "rootUrl": "https://firebaseappdistribution.googleapis.com/", "schemas": { "GdataBlobstore2Info": { diff --git a/firebaseappdistribution/v1/firebaseappdistribution-gen.go b/firebaseappdistribution/v1/firebaseappdistribution-gen.go index 020c281bc37..40980283705 100644 --- a/firebaseappdistribution/v1/firebaseappdistribution-gen.go +++ b/firebaseappdistribution/v1/firebaseappdistribution-gen.go @@ -3410,28 +3410,6 @@ func (r *ProjectsAppsReleasesFeedbackReportsService) List(parent string) *Projec return c } -// Filter sets the optional parameter "filter": The expression to filter -// feedback reports listed in the response. To learn more about -// filtering, refer to Google's AIP-160 standard (http://aip.dev/160). -// Supported fields: - `tester` - `createTime` supports `<`, `<=`, `>` -// and `>=`, and expects an RFC-3339 formatted string Example: - -// `createTime <= "2023-03-10T00:00:00+04:00" - `tester = -// "projects/-/testers/*@example.com" -func (c *ProjectsAppsReleasesFeedbackReportsListCall) Filter(filter string) *ProjectsAppsReleasesFeedbackReportsListCall { - c.urlParams_.Set("filter", filter) - return c -} - -// OrderBy sets the optional parameter "orderBy": The fields used to -// order releases. Supported fields: - `createTime` - `tester` To -// specify descending order for a field, append a "desc" suffix, for -// example, `createTime desc`. If this parameter is not set, releases -// are ordered by `createTime` in descending order. -func (c *ProjectsAppsReleasesFeedbackReportsListCall) OrderBy(orderBy string) *ProjectsAppsReleasesFeedbackReportsListCall { - c.urlParams_.Set("orderBy", orderBy) - return c -} - // PageSize sets the optional parameter "pageSize": The maximum number // of feedback reports to return. The service may return fewer than this // value. The valid range is [1-100]; If unspecified (0), at most 25 @@ -3560,16 +3538,6 @@ func (c *ProjectsAppsReleasesFeedbackReportsListCall) Do(opts ...googleapi.CallO // "parent" // ], // "parameters": { - // "filter": { - // "description": "The expression to filter feedback reports listed in the response. To learn more about filtering, refer to [Google's AIP-160 standard](http://aip.dev/160). Supported fields: - `tester` - `createTime` supports `\u003c`, `\u003c=`, `\u003e` and `\u003e=`, and expects an RFC-3339 formatted string Example: - `createTime \u003c= \"2023-03-10T00:00:00+04:00\"` - `tester = \"projects/-/testers/*@example.com\"`", - // "location": "query", - // "type": "string" - // }, - // "orderBy": { - // "description": "The fields used to order releases. Supported fields: - `createTime` - `tester` To specify descending order for a field, append a \"desc\" suffix, for example, `createTime desc`. If this parameter is not set, releases are ordered by `createTime` in descending order.", - // "location": "query", - // "type": "string" - // }, // "pageSize": { // "description": "The maximum number of feedback reports to return. The service may return fewer than this value. The valid range is [1-100]; If unspecified (0), at most 25 feedback reports are returned. Values above 100 are coerced to 100.", // "format": "int32", diff --git a/firestore/v1/firestore-api.json b/firestore/v1/firestore-api.json index 1e264fdeb82..21545736ea6 100644 --- a/firestore/v1/firestore-api.json +++ b/firestore/v1/firestore-api.json @@ -1423,7 +1423,7 @@ } } }, - "revision": "20230415", + "revision": "20230421", "rootUrl": "https://firestore.googleapis.com/", "schemas": { "Aggregation": { @@ -2898,7 +2898,7 @@ "type": "object" }, "Location": { - "description": "A resource that represents Google Cloud Platform location.", + "description": "A resource that represents a Google Cloud location.", "id": "Location", "properties": { "displayName": { diff --git a/firestore/v1/firestore-gen.go b/firestore/v1/firestore-gen.go index f49911881c1..e509a7bfa09 100644 --- a/firestore/v1/firestore-gen.go +++ b/firestore/v1/firestore-gen.go @@ -2768,7 +2768,7 @@ func (s *ListenResponse) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } -// Location: A resource that represents Google Cloud Platform location. +// Location: A resource that represents a Google Cloud location. type Location struct { // DisplayName: The friendly name for this location, typically a nearby // city name. For example, "Tokyo". diff --git a/gmail/v1/gmail-api.json b/gmail/v1/gmail-api.json index bbfb27fc8d8..0fc736804af 100644 --- a/gmail/v1/gmail-api.json +++ b/gmail/v1/gmail-api.json @@ -945,7 +945,7 @@ ] }, "import": { - "description": "Imports a message into only this user's mailbox, with standard email delivery scanning and classification similar to receiving via SMTP. This method doesn't perform SPF checks, so it might not work for some spam messages, such as those attempting to perform domain spoofing. This method does not send a message. Note: This function doesn't trigger forwarding rules or filters set up by the user.", + "description": "Imports a message into only this user's mailbox, with standard email delivery scanning and classification similar to receiving via SMTP. This method doesn't perform SPF checks, so it might not work for some spam messages, such as those attempting to perform domain spoofing. This method does not send a message.", "flatPath": "gmail/v1/users/{userId}/messages/import", "httpMethod": "POST", "id": "gmail.users.messages.import", @@ -3077,7 +3077,7 @@ } } }, - "revision": "20230403", + "revision": "20230424", "rootUrl": "https://gmail.googleapis.com/", "schemas": { "AutoForwarding": { diff --git a/gmail/v1/gmail-gen.go b/gmail/v1/gmail-gen.go index 199ac81cec0..5bff02bc338 100644 --- a/gmail/v1/gmail-gen.go +++ b/gmail/v1/gmail-gen.go @@ -5980,9 +5980,7 @@ type UsersMessagesImportCall struct { // standard email delivery scanning and classification similar to // receiving via SMTP. This method doesn't perform SPF checks, so it // might not work for some spam messages, such as those attempting to -// perform domain spoofing. This method does not send a message. Note: -// This function doesn't trigger forwarding rules or filters set up by -// the user. +// perform domain spoofing. This method does not send a message. // // - userId: The user's email address. The special value `me` can be // used to indicate the authenticated user. @@ -6192,7 +6190,7 @@ func (c *UsersMessagesImportCall) Do(opts ...googleapi.CallOption) (*Message, er } return ret, nil // { - // "description": "Imports a message into only this user's mailbox, with standard email delivery scanning and classification similar to receiving via SMTP. This method doesn't perform SPF checks, so it might not work for some spam messages, such as those attempting to perform domain spoofing. This method does not send a message. Note: This function doesn't trigger forwarding rules or filters set up by the user.", + // "description": "Imports a message into only this user's mailbox, with standard email delivery scanning and classification similar to receiving via SMTP. This method doesn't perform SPF checks, so it might not work for some spam messages, such as those attempting to perform domain spoofing. This method does not send a message.", // "flatPath": "gmail/v1/users/{userId}/messages/import", // "httpMethod": "POST", // "id": "gmail.users.messages.import", diff --git a/identitytoolkit/v1/identitytoolkit-api.json b/identitytoolkit/v1/identitytoolkit-api.json index 834051c8646..9a29a8f6bcd 100644 --- a/identitytoolkit/v1/identitytoolkit-api.json +++ b/identitytoolkit/v1/identitytoolkit-api.json @@ -1237,7 +1237,7 @@ } } }, - "revision": "20230410", + "revision": "20230421", "rootUrl": "https://identitytoolkit.googleapis.com/", "schemas": { "GoogleCloudIdentitytoolkitV1Argon2Parameters": { @@ -1567,6 +1567,17 @@ }, "type": "object" }, + "GoogleCloudIdentitytoolkitV1EmailInfo": { + "description": "Information about email MFA.", + "id": "GoogleCloudIdentitytoolkitV1EmailInfo", + "properties": { + "emailAddress": { + "description": "Email address that a MFA verification should be sent to.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudIdentitytoolkitV1EmailTemplate": { "description": "Email template", "id": "GoogleCloudIdentitytoolkitV1EmailTemplate", @@ -2105,6 +2116,10 @@ "description": "Display name for this mfa option e.g. \"corp cell phone\".", "type": "string" }, + "emailInfo": { + "$ref": "GoogleCloudIdentitytoolkitV1EmailInfo", + "description": "Contains information specific to email MFA." + }, "enrolledAt": { "description": "Timestamp when the account enrolled this second factor.", "format": "google-datetime", diff --git a/identitytoolkit/v1/identitytoolkit-gen.go b/identitytoolkit/v1/identitytoolkit-gen.go index ca490dbcbf5..3579badf9bb 100644 --- a/identitytoolkit/v1/identitytoolkit-gen.go +++ b/identitytoolkit/v1/identitytoolkit-gen.go @@ -782,6 +782,35 @@ func (s *GoogleCloudIdentitytoolkitV1DownloadAccountResponse) MarshalJSON() ([]b return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// GoogleCloudIdentitytoolkitV1EmailInfo: Information about email MFA. +type GoogleCloudIdentitytoolkitV1EmailInfo struct { + // EmailAddress: Email address that a MFA verification should be sent + // to. + EmailAddress string `json:"emailAddress,omitempty"` + + // ForceSendFields is a list of field names (e.g. "EmailAddress") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "EmailAddress") to include + // in API requests with the JSON null value. By default, fields with + // empty values are omitted from API requests. However, any field with + // an empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudIdentitytoolkitV1EmailInfo) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudIdentitytoolkitV1EmailInfo + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // GoogleCloudIdentitytoolkitV1EmailTemplate: Email template type GoogleCloudIdentitytoolkitV1EmailTemplate struct { // Body: Email body @@ -1554,6 +1583,9 @@ type GoogleCloudIdentitytoolkitV1MfaEnrollment struct { // DisplayName: Display name for this mfa option e.g. "corp cell phone". DisplayName string `json:"displayName,omitempty"` + // EmailInfo: Contains information specific to email MFA. + EmailInfo *GoogleCloudIdentitytoolkitV1EmailInfo `json:"emailInfo,omitempty"` + // EnrolledAt: Timestamp when the account enrolled this second factor. EnrolledAt string `json:"enrolledAt,omitempty"` diff --git a/paymentsresellersubscription/v1/paymentsresellersubscription-api.json b/paymentsresellersubscription/v1/paymentsresellersubscription-api.json index 3dde7a771f4..63a96737d67 100644 --- a/paymentsresellersubscription/v1/paymentsresellersubscription-api.json +++ b/paymentsresellersubscription/v1/paymentsresellersubscription-api.json @@ -396,7 +396,7 @@ } } }, - "revision": "20230406", + "revision": "20230425", "rootUrl": "https://paymentsresellersubscription.googleapis.com/", "schemas": { "GoogleCloudPaymentsResellerSubscriptionV1Amount": { @@ -962,7 +962,7 @@ "type": "string" }, "products": { - "description": "Required. Deprecated: consider using `line_items` as the input. Required. Resource name that identifies the purchased products. The format will be 'partners/{partner_id}/products/{product_id}'.", + "description": "Optional. Deprecated: consider using `line_items` as the input. Required. Resource name that identifies the purchased products. The format will be 'partners/{partner_id}/products/{product_id}'.", "items": { "type": "string" }, diff --git a/paymentsresellersubscription/v1/paymentsresellersubscription-gen.go b/paymentsresellersubscription/v1/paymentsresellersubscription-gen.go index 8081485da54..e9794d69cd8 100644 --- a/paymentsresellersubscription/v1/paymentsresellersubscription-gen.go +++ b/paymentsresellersubscription/v1/paymentsresellersubscription-gen.go @@ -1086,7 +1086,7 @@ type GoogleCloudPaymentsResellerSubscriptionV1Subscription struct { // "PROCESSING_STATE_RECURRING" - The subscription is recurring. ProcessingState string `json:"processingState,omitempty"` - // Products: Required. Deprecated: consider using `line_items` as the + // Products: Optional. Deprecated: consider using `line_items` as the // input. Required. Resource name that identifies the purchased // products. The format will be // 'partners/{partner_id}/products/{product_id}'. diff --git a/playdeveloperreporting/v1alpha1/playdeveloperreporting-api.json b/playdeveloperreporting/v1alpha1/playdeveloperreporting-api.json index 71d8472308b..3da3b123bae 100644 --- a/playdeveloperreporting/v1alpha1/playdeveloperreporting-api.json +++ b/playdeveloperreporting/v1alpha1/playdeveloperreporting-api.json @@ -880,7 +880,7 @@ } } }, - "revision": "20230419", + "revision": "20230425", "rootUrl": "https://playdeveloperreporting.googleapis.com/", "schemas": { "GooglePlayDeveloperReportingV1alpha1Anomaly": { @@ -914,7 +914,7 @@ "type": "object" }, "GooglePlayDeveloperReportingV1alpha1AnrRateMetricSet": { - "description": "Singleton resource representing the set of ANR (Application not responding) metrics. This metric set contains ANRs data combined with usage data to produce a normalized metric independent of user counts. **Supported aggregation periods:** * DAILY: metrics are aggregated in calendar date intervals. Due to historical constraints, the only supported timezone is `America/Los_Angeles`. **Supported metrics:** * `anrRate` (`google.type.Decimal`): Percentage of distinct users in the aggregation period that experienced at least one ANR. * `anrRate7dUserWeighted` (`google.type.Decimal`): Rolling average value of `anrRate` in the last 7 days. The daily values are weighted by the count of distinct users for the day. * `anrRate28dUserWeighted` (`google.type.Decimal`): Rolling average value of `anrRate` in the last 28 days. The daily values are weighted by the count of distinct users for the day. * `userPerceivedAnrRate` (`google.type.Decimal`): Percentage of distinct users in the aggregation period that experienced at least one user-perceived ANR. User-perceived ANRs are currently those of 'Input dispatching' type. * `userPerceivedAnrRate7dUserWeighted` (`google.type.Decimal`): Rolling average value of `userPerceivedAnrRate` in the last 7 days. The daily values are weighted by the count of distinct users for the day. * `userPerceivedAnrRate28dUserWeighted` (`google.type.Decimal`): Rolling average value of `userPerceivedAnrRate` in the last 28 days. The daily values are weighted by the count of distinct users for the day. * `distinctUsers` (`google.type.Decimal`): Count of distinct users in the aggregation period that were used as normalization value for the `anrRate` and `userPerceivedAnrRate` metrics. A user is counted in this metric if they used the app in the foreground during the aggregation period. Care must be taken not to aggregate this count further, as it may result in users being counted multiple times. The value is rounded to the nearest multiple of 10, 100, 1,000 or 1,000,000, depending on the magnitude of the value. **Supported dimensions:** * `apiLevel` (string): the API level of Android that was running on the user's device. * `versionCode` (int64): version of the app that was running on the user's device. * `deviceModel` (string): unique identifier of the user's device model. * `deviceType` (string): the type (also known as form factor) of the user's device. * `countryCode` (string): the country or region of the user's device based on their IP address, represented as a 2-letter ISO-3166 code (e.g. US for the United States). * `deviceRamBucket` (int64): RAM of the device, in MB, in buckets (3GB, 4GB, etc.). * `deviceSocMake` (string): Make of the device's primary system-on-chip, e.g., Samsung. [Reference](https://developer.android.com/reference/android/os/Build#SOC_MANUFACTURER) * `deviceSocModel` (string): Model of the device's primary system-on-chip, e.g., \"Exynos 2100\". [Reference](https://developer.android.com/reference/android/os/Build#SOC_MODEL) * `deviceCpuMake` (string): Make of the device's CPU, e.g., Qualcomm. * `deviceCpuModel` (string): Model of the device's CPU, e.g., \"Kryo 240\". * `deviceGpuMake` (string): Make of the device's GPU, e.g., ARM. * `deviceGpuModel` (string): Model of the device's GPU, e.g., Mali. * `deviceGpuVersion` (string): Version of the device's GPU, e.g., T750. * `deviceVulkanVersion` (string): Vulkan version of the device, e.g., \"4198400\". * `deviceGlEsVersion` (string): OpenGL ES version of the device, e.g., \"196610\". * `deviceScreenSize` (string): Screen size of the device, e.g., NORMAL, LARGE. * `deviceScreenDpi` (string): Screen density of the device, e.g., mdpi, hdpi. **Required permissions**: to access this resource, the calling user needs the _View app information (read-only)_ permission for the app. **Related metric sets:** * vitals.errors contains unnormalized version (absolute counts) of crashes. * vitals.errors contains normalized metrics about crashes, another stability metric.", + "description": "Singleton resource representing the set of ANR (Application not responding) metrics. This metric set contains ANRs data combined with usage data to produce a normalized metric independent of user counts. **Supported aggregation periods:** * DAILY: metrics are aggregated in calendar date intervals. Due to historical constraints, the only supported timezone is `America/Los_Angeles`. * HOURLY: metrics are aggregated in hourly intervals. The default and only supported timezone is `UTC`. **Supported metrics:** * `anrRate` (`google.type.Decimal`): Percentage of distinct users in the aggregation period that experienced at least one ANR. * `anrRate7dUserWeighted` (`google.type.Decimal`): Rolling average value of `anrRate` in the last 7 days. The daily values are weighted by the count of distinct users for the day. Not supported in HOURLY granularity. * `anrRate28dUserWeighted` (`google.type.Decimal`): Rolling average value of `anrRate` in the last 28 days. The daily values are weighted by the count of distinct users for the day. Not supported in HOURLY granularity. * `userPerceivedAnrRate` (`google.type.Decimal`): Percentage of distinct users in the aggregation period that experienced at least one user-perceived ANR. User-perceived ANRs are currently those of 'Input dispatching' type. * `userPerceivedAnrRate7dUserWeighted` (`google.type.Decimal`): Rolling average value of `userPerceivedAnrRate` in the last 7 days. The daily values are weighted by the count of distinct users for the day. Not supported in HOURLY granularity. * `userPerceivedAnrRate28dUserWeighted` (`google.type.Decimal`): Rolling average value of `userPerceivedAnrRate` in the last 28 days. The daily values are weighted by the count of distinct users for the day. * `distinctUsers` (`google.type.Decimal`): Count of distinct users in the aggregation period that were used as normalization value for the `anrRate` and `userPerceivedAnrRate` metrics. A user is counted in this metric if they used the app in the foreground during the aggregation period. Care must be taken not to aggregate this count further, as it may result in users being counted multiple times. The value is rounded to the nearest multiple of 10, 100, 1,000 or 1,000,000, depending on the magnitude of the value. **Supported dimensions:** * `apiLevel` (string): the API level of Android that was running on the user's device. * `versionCode` (int64): version of the app that was running on the user's device. * `deviceModel` (string): unique identifier of the user's device model. * `deviceType` (string): the type (also known as form factor) of the user's device. * `countryCode` (string): the country or region of the user's device based on their IP address, represented as a 2-letter ISO-3166 code (e.g. US for the United States). * `deviceRamBucket` (int64): RAM of the device, in MB, in buckets (3GB, 4GB, etc.). * `deviceSocMake` (string): Make of the device's primary system-on-chip, e.g., Samsung. [Reference](https://developer.android.com/reference/android/os/Build#SOC_MANUFACTURER) * `deviceSocModel` (string): Model of the device's primary system-on-chip, e.g., \"Exynos 2100\". [Reference](https://developer.android.com/reference/android/os/Build#SOC_MODEL) * `deviceCpuMake` (string): Make of the device's CPU, e.g., Qualcomm. * `deviceCpuModel` (string): Model of the device's CPU, e.g., \"Kryo 240\". * `deviceGpuMake` (string): Make of the device's GPU, e.g., ARM. * `deviceGpuModel` (string): Model of the device's GPU, e.g., Mali. * `deviceGpuVersion` (string): Version of the device's GPU, e.g., T750. * `deviceVulkanVersion` (string): Vulkan version of the device, e.g., \"4198400\". * `deviceGlEsVersion` (string): OpenGL ES version of the device, e.g., \"196610\". * `deviceScreenSize` (string): Screen size of the device, e.g., NORMAL, LARGE. * `deviceScreenDpi` (string): Screen density of the device, e.g., mdpi, hdpi. **Required permissions**: to access this resource, the calling user needs the _View app information (read-only)_ permission for the app. **Related metric sets:** * vitals.errors contains unnormalized version (absolute counts) of crashes. * vitals.errors contains normalized metrics about crashes, another stability metric.", "id": "GooglePlayDeveloperReportingV1alpha1AnrRateMetricSet", "properties": { "freshnessInfo": { @@ -929,7 +929,7 @@ "type": "object" }, "GooglePlayDeveloperReportingV1alpha1CrashRateMetricSet": { - "description": "Singleton resource representing the set of crashrate metrics. This metric set contains crashes data combined with usage data to produce a normalized metric independent of user counts. **Supported aggregation periods:** * DAILY: metrics are aggregated in calendar date intervals. Due to historical constraints, the only supported timezone is `America/Los_Angeles`. **Supported metrics:** * `crashRate` (`google.type.Decimal`): Percentage of distinct users in the aggregation period that experienced at least one crash. * `crashRate7dUserWeighted` (`google.type.Decimal`): Rolling average value of `crashRate` in the last 7 days. The daily values are weighted by the count of distinct users for the day. * `crashRate28dUserWeighted` (`google.type.Decimal`): Rolling average value of `crashRate` in the last 28 days. The daily values are weighted by the count of distinct users for the day. * `userPerceivedCrashRate` (`google.type.Decimal`): Percentage of distinct users in the aggregation period that experienced at least one crash while they were actively using your app (a user-perceived crash). An app is considered to be in active use if it is displaying any activity or executing any foreground service. * `userPerceivedCrashRate7dUserWeighted` (`google.type.Decimal`): Rolling average value of `userPerceivedCrashRate` in the last 7 days. The daily values are weighted by the count of distinct users for the day. * `userPerceivedCrashRate28dUserWeighted` (`google.type.Decimal`): Rolling average value of `userPerceivedCrashRate` in the last 28 days. The daily values are weighted by the count of distinct users for the day. * `distinctUsers` (`google.type.Decimal`): Count of distinct users in the aggregation period that were used as normalization value for the `crashRate` and `userPerceivedCrashRate` metrics. A user is counted in this metric if they used the app actively during the aggregation period. An app is considered to be in active use if it is displaying any activity or executing any foreground service. Care must be taken not to aggregate this count further, as it may result in users being counted multiple times. The value is rounded to the nearest multiple of 10, 100, 1,000 or 1,000,000, depending on the magnitude of the value. **Supported dimensions:** * `apiLevel` (string): the API level of Android that was running on the user's device. * `versionCode` (int64): version of the app that was running on the user's device. * `deviceModel` (string): unique identifier of the user's device model. * `deviceType` (string): the type (also known as form factor) of the user's device. * `countryCode` (string): the country or region of the user's device based on their IP address, represented as a 2-letter ISO-3166 code (e.g. US for the United States). * `deviceRamBucket` (int64): RAM of the device, in MB, in buckets (3GB, 4GB, etc.). * `deviceSocMake` (string): Make of the device's primary system-on-chip, e.g., Samsung. [Reference](https://developer.android.com/reference/android/os/Build#SOC_MANUFACTURER) * `deviceSocModel` (string): Model of the device's primary system-on-chip, e.g., \"Exynos 2100\". [Reference](https://developer.android.com/reference/android/os/Build#SOC_MODEL) * `deviceCpuMake` (string): Make of the device's CPU, e.g., Qualcomm. * `deviceCpuModel` (string): Model of the device's CPU, e.g., \"Kryo 240\". * `deviceGpuMake` (string): Make of the device's GPU, e.g., ARM. * `deviceGpuModel` (string): Model of the device's GPU, e.g., Mali. * `deviceGpuVersion` (string): Version of the device's GPU, e.g., T750. * `deviceVulkanVersion` (string): Vulkan version of the device, e.g., \"4198400\". * `deviceGlEsVersion` (string): OpenGL ES version of the device, e.g., \"196610\". * `deviceScreenSize` (string): Screen size of the device, e.g., NORMAL, LARGE. * `deviceScreenDpi` (string): Screen density of the device, e.g., mdpi, hdpi. **Required permissions**: to access this resource, the calling user needs the _View app information (read-only)_ permission for the app. **Related metric sets:** * vitals.errors contains unnormalized version (absolute counts) of crashes. * vitals.errors contains normalized metrics about ANRs, another stability metric.", + "description": "Singleton resource representing the set of crashrate metrics. This metric set contains crashes data combined with usage data to produce a normalized metric independent of user counts. **Supported aggregation periods:** * DAILY: metrics are aggregated in calendar date intervals. Due to historical constraints, the only supported timezone is `America/Los_Angeles`. * HOURLY: metrics are aggregated in hourly intervals. The default and only supported timezone is `UTC`. **Supported metrics:** * `crashRate` (`google.type.Decimal`): Percentage of distinct users in the aggregation period that experienced at least one crash. * `crashRate7dUserWeighted` (`google.type.Decimal`): Rolling average value of `crashRate` in the last 7 days. The daily values are weighted by the count of distinct users for the day. Not supported in HOURLY granularity. * `crashRate28dUserWeighted` (`google.type.Decimal`): Rolling average value of `crashRate` in the last 28 days. The daily values are weighted by the count of distinct users for the day. Not supported in HOURLY granularity. * `userPerceivedCrashRate` (`google.type.Decimal`): Percentage of distinct users in the aggregation period that experienced at least one crash while they were actively using your app (a user-perceived crash). An app is considered to be in active use if it is displaying any activity or executing any foreground service. * `userPerceivedCrashRate7dUserWeighted` (`google.type.Decimal`): Rolling average value of `userPerceivedCrashRate` in the last 7 days. The daily values are weighted by the count of distinct users for the day. Not supported in HOURLY granularity. * `userPerceivedCrashRate28dUserWeighted` (`google.type.Decimal`): Rolling average value of `userPerceivedCrashRate` in the last 28 days. The daily values are weighted by the count of distinct users for the day. Not supported in HOURLY granularity. * `distinctUsers` (`google.type.Decimal`): Count of distinct users in the aggregation period that were used as normalization value for the `crashRate` and `userPerceivedCrashRate` metrics. A user is counted in this metric if they used the app actively during the aggregation period. An app is considered to be in active use if it is displaying any activity or executing any foreground service. Care must be taken not to aggregate this count further, as it may result in users being counted multiple times. The value is rounded to the nearest multiple of 10, 100, 1,000 or 1,000,000, depending on the magnitude of the value. **Supported dimensions:** * `apiLevel` (string): the API level of Android that was running on the user's device. * `versionCode` (int64): version of the app that was running on the user's device. * `deviceModel` (string): unique identifier of the user's device model. * `deviceType` (string): the type (also known as form factor) of the user's device. * `countryCode` (string): the country or region of the user's device based on their IP address, represented as a 2-letter ISO-3166 code (e.g. US for the United States). * `deviceRamBucket` (int64): RAM of the device, in MB, in buckets (3GB, 4GB, etc.). * `deviceSocMake` (string): Make of the device's primary system-on-chip, e.g., Samsung. [Reference](https://developer.android.com/reference/android/os/Build#SOC_MANUFACTURER) * `deviceSocModel` (string): Model of the device's primary system-on-chip, e.g., \"Exynos 2100\". [Reference](https://developer.android.com/reference/android/os/Build#SOC_MODEL) * `deviceCpuMake` (string): Make of the device's CPU, e.g., Qualcomm. * `deviceCpuModel` (string): Model of the device's CPU, e.g., \"Kryo 240\". * `deviceGpuMake` (string): Make of the device's GPU, e.g., ARM. * `deviceGpuModel` (string): Model of the device's GPU, e.g., Mali. * `deviceGpuVersion` (string): Version of the device's GPU, e.g., T750. * `deviceVulkanVersion` (string): Vulkan version of the device, e.g., \"4198400\". * `deviceGlEsVersion` (string): OpenGL ES version of the device, e.g., \"196610\". * `deviceScreenSize` (string): Screen size of the device, e.g., NORMAL, LARGE. * `deviceScreenDpi` (string): Screen density of the device, e.g., mdpi, hdpi. **Required permissions**: to access this resource, the calling user needs the _View app information (read-only)_ permission for the app. **Related metric sets:** * vitals.errors contains unnormalized version (absolute counts) of crashes. * vitals.errors contains normalized metrics about ANRs, another stability metric.", "id": "GooglePlayDeveloperReportingV1alpha1CrashRateMetricSet", "properties": { "freshnessInfo": { @@ -1101,12 +1101,14 @@ "enum": [ "AGGREGATION_PERIOD_UNSPECIFIED", "HOURLY", - "DAILY" + "DAILY", + "FULL_RANGE" ], "enumDescriptions": [ "Unspecified granularity.", "Data is aggregated in hourly intervals.", - "Data is aggregated in daily intervals." + "Data is aggregated in daily intervals.", + "Data is aggregated over the full timeline range. Effectively this produces a single value rather than a timeline." ], "type": "string" }, @@ -1163,12 +1165,14 @@ "enum": [ "AGGREGATION_PERIOD_UNSPECIFIED", "HOURLY", - "DAILY" + "DAILY", + "FULL_RANGE" ], "enumDescriptions": [ "Unspecified granularity.", "Data is aggregated in hourly intervals.", - "Data is aggregated in daily intervals." + "Data is aggregated in daily intervals.", + "Data is aggregated over the full timeline range. Effectively this produces a single value rather than a timeline." ], "type": "string" }, @@ -1209,7 +1213,7 @@ "type": "string" }, "metrics": { - "description": "Metrics to aggregate. **Supported metrics:** * `anrRate` (`google.type.Decimal`): Percentage of distinct users in the aggregation period that experienced at least one ANR. * `anrRate7dUserWeighted` (`google.type.Decimal`): Rolling average value of `anrRate` in the last 7 days. The daily values are weighted by the count of distinct users for the day. * `anrRate28dUserWeighted` (`google.type.Decimal`): Rolling average value of `anrRate` in the last 28 days. The daily values are weighted by the count of distinct users for the day. * `userPerceivedAnrRate` (`google.type.Decimal`): Percentage of distinct users in the aggregation period that experienced at least one user-perceived ANR. User-perceived ANRs are currently those of 'Input dispatching' type. * `userPerceivedAnrRate7dUserWeighted` (`google.type.Decimal`): Rolling average value of `userPerceivedAnrRate` in the last 7 days. The daily values are weighted by the count of distinct users for the day. * `userPerceivedAnrRate28dUserWeighted` (`google.type.Decimal`): Rolling average value of `userPerceivedAnrRate` in the last 28 days. The daily values are weighted by the count of distinct users for the day. * `distinctUsers` (`google.type.Decimal`): Count of distinct users in the aggregation period that were used as normalization value for the `anrRate` and `userPerceivedAnrRate` metrics. A user is counted in this metric if they used the app in the foreground during the aggregation period. Care must be taken not to aggregate this count further, as it may result in users being counted multiple times. The value is rounded to the nearest multiple of 10, 100, 1,000 or 1,000,000, depending on the magnitude of the value.", + "description": "Metrics to aggregate. **Supported metrics:** * `anrRate` (`google.type.Decimal`): Percentage of distinct users in the aggregation period that experienced at least one ANR. * `anrRate7dUserWeighted` (`google.type.Decimal`): Rolling average value of `anrRate` in the last 7 days. The daily values are weighted by the count of distinct users for the day. Not supported in HOURLY granularity. * `anrRate28dUserWeighted` (`google.type.Decimal`): Rolling average value of `anrRate` in the last 28 days. The daily values are weighted by the count of distinct users for the day. Not supported in HOURLY granularity. * `userPerceivedAnrRate` (`google.type.Decimal`): Percentage of distinct users in the aggregation period that experienced at least one user-perceived ANR. User-perceived ANRs are currently those of 'Input dispatching' type. * `userPerceivedAnrRate7dUserWeighted` (`google.type.Decimal`): Rolling average value of `userPerceivedAnrRate` in the last 7 days. The daily values are weighted by the count of distinct users for the day. Not supported in HOURLY granularity. * `userPerceivedAnrRate28dUserWeighted` (`google.type.Decimal`): Rolling average value of `userPerceivedAnrRate` in the last 28 days. The daily values are weighted by the count of distinct users for the day. Not . supported in HOURLY granularity. * `distinctUsers` (`google.type.Decimal`): Count of distinct users in the aggregation period that were used as normalization value for the `anrRate` and `userPerceivedAnrRate` metrics. A user is counted in this metric if they used the app in the foreground during the aggregation period. Care must be taken not to aggregate this count further, as it may result in users being counted multiple times. The value is rounded to the nearest multiple of 10, 100, 1,000 or 1,000,000, depending on the magnitude of the value.", "items": { "type": "string" }, @@ -1226,7 +1230,7 @@ }, "timelineSpec": { "$ref": "GooglePlayDeveloperReportingV1alpha1TimelineSpec", - "description": "Specification of the timeline aggregation parameters. **Supported aggregation periods:** * DAILY: metrics are aggregated in calendar date intervals. Due to historical constraints, the default and only supported timezone is `America/Los_Angeles`." + "description": "Specification of the timeline aggregation parameters. **Supported aggregation periods:** * DAILY: metrics are aggregated in calendar date intervals. Due to historical constraints, the default and only supported timezone is `America/Los_Angeles`. * HOURLY: metrics are aggregated in hourly intervals. The default and only supported timezone is `UTC`." }, "userCohort": { "description": "User view to select. The output data will correspond to the selected view. **Supported values:** * `OS_PUBLIC` To select data from all publicly released Android versions. This is the default. Supports all the above dimensions. * `APP_TESTERS` To select data from users who have opted in to be testers. Supports all the above dimensions. * `OS_BETA` To select data from beta android versions only, excluding data from released android versions. Only the following dimensions are supported: * `versionCode` (int64): version of the app that was running on the user's device. * `osBuild` (string): OS build of the user's device, e.g., \"T1B2.220916.004\".", @@ -1281,7 +1285,7 @@ "type": "string" }, "metrics": { - "description": "Metrics to aggregate. **Supported metrics:** * `crashRate` (`google.type.Decimal`): Percentage of distinct users in the aggregation period that experienced at least one crash. * `crashRate7dUserWeighted` (`google.type.Decimal`): Rolling average value of `crashRate` in the last 7 days. The daily values are weighted by the count of distinct users for the day. * `crashRate28dUserWeighted` (`google.type.Decimal`): Rolling average value of `crashRate` in the last 28 days. The daily values are weighted by the count of distinct users for the day. * `userPerceivedCrashRate` (`google.type.Decimal`): Percentage of distinct users in the aggregation period that experienced at least one crash while they were actively using your app (a user-perceived crash). An app is considered to be in active use if it is displaying any activity or executing any foreground service. * `userPerceivedCrashRate7dUserWeighted` (`google.type.Decimal`): Rolling average value of `userPerceivedCrashRate` in the last 7 days. The daily values are weighted by the count of distinct users for the day. * `userPerceivedCrashRate28dUserWeighted` (`google.type.Decimal`): Rolling average value of `userPerceivedCrashRate` in the last 28 days. The daily values are weighted by the count of distinct users for the day. * `distinctUsers` (`google.type.Decimal`): Count of distinct users in the aggregation period that were used as normalization value for the `crashRate` and `userPerceivedCrashRate` metrics. A user is counted in this metric if they used the app actively during the aggregation period. An app is considered to be in active use if it is displaying any activity or executing any foreground service. Care must be taken not to aggregate this count further, as it may result in users being counted multiple times. The value is rounded to the nearest multiple of 10, 100, 1,000 or 1,000,000, depending on the magnitude of the value.", + "description": "Metrics to aggregate. **Supported metrics:** * `crashRate` (`google.type.Decimal`): Percentage of distinct users in the aggregation period that experienced at least one crash. * `crashRate7dUserWeighted` (`google.type.Decimal`): Rolling average value of `crashRate` in the last 7 days. The daily values are weighted by the count of distinct users for the day. * `crashRate28dUserWeighted` (`google.type.Decimal`): Rolling average value of `crashRate` in the last 28 days. The daily values are weighted by the count of distinct users for the day. Not supported in HOURLY granularity. * `userPerceivedCrashRate` (`google.type.Decimal`): Percentage of distinct users in the aggregation period that experienced at least one crash while they were actively using your app (a user-perceived crash). An app is considered to be in active use if it is displaying any activity or executing any foreground service. * `userPerceivedCrashRate7dUserWeighted` (`google.type.Decimal`): Rolling average value of `userPerceivedCrashRate` in the last 7 days. The daily values are weighted by the count of distinct users for the day. Not supported in HOURLY granularity. * `userPerceivedCrashRate28dUserWeighted` (`google.type.Decimal`): Rolling average value of `userPerceivedCrashRate` in the last 28 days. The daily values are weighted by the count of distinct users for the day. Not supported in HOURLY granularity. * `distinctUsers` (`google.type.Decimal`): Count of distinct users in the aggregation period that were used as normalization value for the `crashRate` and `userPerceivedCrashRate` metrics. A user is counted in this metric if they used the app actively during the aggregation period. An app is considered to be in active use if it is displaying any activity or executing any foreground service. Care must be taken not to aggregate this count further, as it may result in users being counted multiple times. The value is rounded to the nearest multiple of 10, 100, 1,000 or 1,000,000, depending on the magnitude of the value.", "items": { "type": "string" }, @@ -1298,7 +1302,7 @@ }, "timelineSpec": { "$ref": "GooglePlayDeveloperReportingV1alpha1TimelineSpec", - "description": "Specification of the timeline aggregation parameters. **Supported aggregation periods:** * DAILY: metrics are aggregated in calendar date intervals. Due to historical constraints, the default and only supported timezone is `America/Los_Angeles`." + "description": "Specification of the timeline aggregation parameters. **Supported aggregation periods:** * DAILY: metrics are aggregated in calendar date intervals. Due to historical constraints, the default and only supported timezone is `America/Los_Angeles`. * HOURLY: metrics are aggregated in hourly intervals. The default and only supported timezone is `UTC`." }, "userCohort": { "description": "User view to select. The output data will correspond to the selected view. **Supported values:** * `OS_PUBLIC` To select data from all publicly released Android versions. This is the default. Supports all the above dimensions. * `APP_TESTERS` To select data from users who have opted in to be testers. Supports all the above dimensions. * `OS_BETA` To select data from beta android versions only, excluding data from released android versions. Only the following dimensions are supported: * `versionCode` (int64): version of the app that was running on the user's device. * `osBuild` (string): OS build of the user's device, e.g., \"T1B2.220916.004\".", @@ -1771,12 +1775,14 @@ "enum": [ "AGGREGATION_PERIOD_UNSPECIFIED", "HOURLY", - "DAILY" + "DAILY", + "FULL_RANGE" ], "enumDescriptions": [ "Unspecified granularity.", "Data is aggregated in hourly intervals.", - "Data is aggregated in daily intervals." + "Data is aggregated in daily intervals.", + "Data is aggregated over the full timeline range. Effectively this produces a single value rather than a timeline." ], "type": "string" }, diff --git a/playdeveloperreporting/v1alpha1/playdeveloperreporting-gen.go b/playdeveloperreporting/v1alpha1/playdeveloperreporting-gen.go index 4ad931bee32..0e156a978d1 100644 --- a/playdeveloperreporting/v1alpha1/playdeveloperreporting-gen.go +++ b/playdeveloperreporting/v1alpha1/playdeveloperreporting-gen.go @@ -340,22 +340,26 @@ func (s *GooglePlayDeveloperReportingV1alpha1Anomaly) MarshalJSON() ([]byte, err // to produce a normalized metric independent of user counts. // **Supported aggregation periods:** * DAILY: metrics are aggregated in // calendar date intervals. Due to historical constraints, the only -// supported timezone is `America/Los_Angeles`. **Supported metrics:** * -// `anrRate` (`google.type.Decimal`): Percentage of distinct users in -// the aggregation period that experienced at least one ANR. * +// supported timezone is `America/Los_Angeles`. * HOURLY: metrics are +// aggregated in hourly intervals. The default and only supported +// timezone is `UTC`. **Supported metrics:** * `anrRate` +// (`google.type.Decimal`): Percentage of distinct users in the +// aggregation period that experienced at least one ANR. * // `anrRate7dUserWeighted` (`google.type.Decimal`): Rolling average // value of `anrRate` in the last 7 days. The daily values are weighted -// by the count of distinct users for the day. * -// `anrRate28dUserWeighted` (`google.type.Decimal`): Rolling average -// value of `anrRate` in the last 28 days. The daily values are weighted -// by the count of distinct users for the day. * `userPerceivedAnrRate` +// by the count of distinct users for the day. Not supported in HOURLY +// granularity. * `anrRate28dUserWeighted` (`google.type.Decimal`): +// Rolling average value of `anrRate` in the last 28 days. The daily +// values are weighted by the count of distinct users for the day. Not +// supported in HOURLY granularity. * `userPerceivedAnrRate` // (`google.type.Decimal`): Percentage of distinct users in the // aggregation period that experienced at least one user-perceived ANR. // User-perceived ANRs are currently those of 'Input dispatching' type. // * `userPerceivedAnrRate7dUserWeighted` (`google.type.Decimal`): // Rolling average value of `userPerceivedAnrRate` in the last 7 days. // The daily values are weighted by the count of distinct users for the -// day. * `userPerceivedAnrRate28dUserWeighted` (`google.type.Decimal`): +// day. Not supported in HOURLY granularity. * +// `userPerceivedAnrRate28dUserWeighted` (`google.type.Decimal`): // Rolling average value of `userPerceivedAnrRate` in the last 28 days. // The daily values are weighted by the count of distinct users for the // day. * `distinctUsers` (`google.type.Decimal`): Count of distinct @@ -436,41 +440,45 @@ func (s *GooglePlayDeveloperReportingV1alpha1AnrRateMetricSet) MarshalJSON() ([] // normalized metric independent of user counts. **Supported aggregation // periods:** * DAILY: metrics are aggregated in calendar date // intervals. Due to historical constraints, the only supported timezone -// is `America/Los_Angeles`. **Supported metrics:** * `crashRate` -// (`google.type.Decimal`): Percentage of distinct users in the -// aggregation period that experienced at least one crash. * -// `crashRate7dUserWeighted` (`google.type.Decimal`): Rolling average -// value of `crashRate` in the last 7 days. The daily values are -// weighted by the count of distinct users for the day. * +// is `America/Los_Angeles`. * HOURLY: metrics are aggregated in hourly +// intervals. The default and only supported timezone is `UTC`. +// **Supported metrics:** * `crashRate` (`google.type.Decimal`): +// Percentage of distinct users in the aggregation period that +// experienced at least one crash. * `crashRate7dUserWeighted` +// (`google.type.Decimal`): Rolling average value of `crashRate` in the +// last 7 days. The daily values are weighted by the count of distinct +// users for the day. Not supported in HOURLY granularity. * // `crashRate28dUserWeighted` (`google.type.Decimal`): Rolling average // value of `crashRate` in the last 28 days. The daily values are -// weighted by the count of distinct users for the day. * -// `userPerceivedCrashRate` (`google.type.Decimal`): Percentage of -// distinct users in the aggregation period that experienced at least -// one crash while they were actively using your app (a user-perceived -// crash). An app is considered to be in active use if it is displaying -// any activity or executing any foreground service. * +// weighted by the count of distinct users for the day. Not supported in +// HOURLY granularity. * `userPerceivedCrashRate` +// (`google.type.Decimal`): Percentage of distinct users in the +// aggregation period that experienced at least one crash while they +// were actively using your app (a user-perceived crash). An app is +// considered to be in active use if it is displaying any activity or +// executing any foreground service. * // `userPerceivedCrashRate7dUserWeighted` (`google.type.Decimal`): // Rolling average value of `userPerceivedCrashRate` in the last 7 days. // The daily values are weighted by the count of distinct users for the -// day. * `userPerceivedCrashRate28dUserWeighted` -// (`google.type.Decimal`): Rolling average value of -// `userPerceivedCrashRate` in the last 28 days. The daily values are -// weighted by the count of distinct users for the day. * -// `distinctUsers` (`google.type.Decimal`): Count of distinct users in -// the aggregation period that were used as normalization value for the -// `crashRate` and `userPerceivedCrashRate` metrics. A user is counted -// in this metric if they used the app actively during the aggregation -// period. An app is considered to be in active use if it is displaying -// any activity or executing any foreground service. Care must be taken -// not to aggregate this count further, as it may result in users being -// counted multiple times. The value is rounded to the nearest multiple -// of 10, 100, 1,000 or 1,000,000, depending on the magnitude of the -// value. **Supported dimensions:** * `apiLevel` (string): the API level -// of Android that was running on the user's device. * `versionCode` -// (int64): version of the app that was running on the user's device. * -// `deviceModel` (string): unique identifier of the user's device model. -// * `deviceType` (string): the type (also known as form factor) of the +// day. Not supported in HOURLY granularity. * +// `userPerceivedCrashRate28dUserWeighted` (`google.type.Decimal`): +// Rolling average value of `userPerceivedCrashRate` in the last 28 +// days. The daily values are weighted by the count of distinct users +// for the day. Not supported in HOURLY granularity. * `distinctUsers` +// (`google.type.Decimal`): Count of distinct users in the aggregation +// period that were used as normalization value for the `crashRate` and +// `userPerceivedCrashRate` metrics. A user is counted in this metric if +// they used the app actively during the aggregation period. An app is +// considered to be in active use if it is displaying any activity or +// executing any foreground service. Care must be taken not to aggregate +// this count further, as it may result in users being counted multiple +// times. The value is rounded to the nearest multiple of 10, 100, 1,000 +// or 1,000,000, depending on the magnitude of the value. **Supported +// dimensions:** * `apiLevel` (string): the API level of Android that +// was running on the user's device. * `versionCode` (int64): version of +// the app that was running on the user's device. * `deviceModel` +// (string): unique identifier of the user's device model. * +// `deviceType` (string): the type (also known as form factor) of the // user's device. * `countryCode` (string): the country or region of the // user's device based on their IP address, represented as a 2-letter // ISO-3166 code (e.g. US for the United States). * `deviceRamBucket` @@ -939,6 +947,8 @@ type GooglePlayDeveloperReportingV1alpha1FreshnessInfoFreshness struct { // "AGGREGATION_PERIOD_UNSPECIFIED" - Unspecified granularity. // "HOURLY" - Data is aggregated in hourly intervals. // "DAILY" - Data is aggregated in daily intervals. + // "FULL_RANGE" - Data is aggregated over the full timeline range. + // Effectively this produces a single value rather than a timeline. AggregationPeriod string `json:"aggregationPeriod,omitempty"` // LatestEndTime: Latest end time for which data is available, for the @@ -1056,6 +1066,8 @@ type GooglePlayDeveloperReportingV1alpha1MetricsRow struct { // "AGGREGATION_PERIOD_UNSPECIFIED" - Unspecified granularity. // "HOURLY" - Data is aggregated in hourly intervals. // "DAILY" - Data is aggregated in daily intervals. + // "FULL_RANGE" - Data is aggregated over the full timeline range. + // Effectively this produces a single value rather than a timeline. AggregationPeriod string `json:"aggregationPeriod,omitempty"` // Dimensions: Dimension columns in the row. @@ -1133,27 +1145,30 @@ type GooglePlayDeveloperReportingV1alpha1QueryAnrRateMetricSetRequest struct { // aggregation period that experienced at least one ANR. * // `anrRate7dUserWeighted` (`google.type.Decimal`): Rolling average // value of `anrRate` in the last 7 days. The daily values are weighted - // by the count of distinct users for the day. * - // `anrRate28dUserWeighted` (`google.type.Decimal`): Rolling average - // value of `anrRate` in the last 28 days. The daily values are weighted - // by the count of distinct users for the day. * `userPerceivedAnrRate` + // by the count of distinct users for the day. Not supported in HOURLY + // granularity. * `anrRate28dUserWeighted` (`google.type.Decimal`): + // Rolling average value of `anrRate` in the last 28 days. The daily + // values are weighted by the count of distinct users for the day. Not + // supported in HOURLY granularity. * `userPerceivedAnrRate` // (`google.type.Decimal`): Percentage of distinct users in the // aggregation period that experienced at least one user-perceived ANR. // User-perceived ANRs are currently those of 'Input dispatching' type. // * `userPerceivedAnrRate7dUserWeighted` (`google.type.Decimal`): // Rolling average value of `userPerceivedAnrRate` in the last 7 days. // The daily values are weighted by the count of distinct users for the - // day. * `userPerceivedAnrRate28dUserWeighted` (`google.type.Decimal`): + // day. Not supported in HOURLY granularity. * + // `userPerceivedAnrRate28dUserWeighted` (`google.type.Decimal`): // Rolling average value of `userPerceivedAnrRate` in the last 28 days. // The daily values are weighted by the count of distinct users for the - // day. * `distinctUsers` (`google.type.Decimal`): Count of distinct - // users in the aggregation period that were used as normalization value - // for the `anrRate` and `userPerceivedAnrRate` metrics. A user is - // counted in this metric if they used the app in the foreground during - // the aggregation period. Care must be taken not to aggregate this - // count further, as it may result in users being counted multiple - // times. The value is rounded to the nearest multiple of 10, 100, 1,000 - // or 1,000,000, depending on the magnitude of the value. + // day. Not . supported in HOURLY granularity. * `distinctUsers` + // (`google.type.Decimal`): Count of distinct users in the aggregation + // period that were used as normalization value for the `anrRate` and + // `userPerceivedAnrRate` metrics. A user is counted in this metric if + // they used the app in the foreground during the aggregation period. + // Care must be taken not to aggregate this count further, as it may + // result in users being counted multiple times. The value is rounded to + // the nearest multiple of 10, 100, 1,000 or 1,000,000, depending on the + // magnitude of the value. Metrics []string `json:"metrics,omitempty"` // PageSize: Maximum size of the returned data. If unspecified, at most @@ -1170,7 +1185,9 @@ type GooglePlayDeveloperReportingV1alpha1QueryAnrRateMetricSetRequest struct { // TimelineSpec: Specification of the timeline aggregation parameters. // **Supported aggregation periods:** * DAILY: metrics are aggregated in // calendar date intervals. Due to historical constraints, the default - // and only supported timezone is `America/Los_Angeles`. + // and only supported timezone is `America/Los_Angeles`. * HOURLY: + // metrics are aggregated in hourly intervals. The default and only + // supported timezone is `UTC`. TimelineSpec *GooglePlayDeveloperReportingV1alpha1TimelineSpec `json:"timelineSpec,omitempty"` // UserCohort: User view to select. The output data will correspond to @@ -1298,29 +1315,30 @@ type GooglePlayDeveloperReportingV1alpha1QueryCrashRateMetricSetRequest struct { // weighted by the count of distinct users for the day. * // `crashRate28dUserWeighted` (`google.type.Decimal`): Rolling average // value of `crashRate` in the last 28 days. The daily values are - // weighted by the count of distinct users for the day. * - // `userPerceivedCrashRate` (`google.type.Decimal`): Percentage of - // distinct users in the aggregation period that experienced at least - // one crash while they were actively using your app (a user-perceived - // crash). An app is considered to be in active use if it is displaying - // any activity or executing any foreground service. * + // weighted by the count of distinct users for the day. Not supported in + // HOURLY granularity. * `userPerceivedCrashRate` + // (`google.type.Decimal`): Percentage of distinct users in the + // aggregation period that experienced at least one crash while they + // were actively using your app (a user-perceived crash). An app is + // considered to be in active use if it is displaying any activity or + // executing any foreground service. * // `userPerceivedCrashRate7dUserWeighted` (`google.type.Decimal`): // Rolling average value of `userPerceivedCrashRate` in the last 7 days. // The daily values are weighted by the count of distinct users for the - // day. * `userPerceivedCrashRate28dUserWeighted` - // (`google.type.Decimal`): Rolling average value of - // `userPerceivedCrashRate` in the last 28 days. The daily values are - // weighted by the count of distinct users for the day. * - // `distinctUsers` (`google.type.Decimal`): Count of distinct users in - // the aggregation period that were used as normalization value for the - // `crashRate` and `userPerceivedCrashRate` metrics. A user is counted - // in this metric if they used the app actively during the aggregation - // period. An app is considered to be in active use if it is displaying - // any activity or executing any foreground service. Care must be taken - // not to aggregate this count further, as it may result in users being - // counted multiple times. The value is rounded to the nearest multiple - // of 10, 100, 1,000 or 1,000,000, depending on the magnitude of the - // value. + // day. Not supported in HOURLY granularity. * + // `userPerceivedCrashRate28dUserWeighted` (`google.type.Decimal`): + // Rolling average value of `userPerceivedCrashRate` in the last 28 + // days. The daily values are weighted by the count of distinct users + // for the day. Not supported in HOURLY granularity. * `distinctUsers` + // (`google.type.Decimal`): Count of distinct users in the aggregation + // period that were used as normalization value for the `crashRate` and + // `userPerceivedCrashRate` metrics. A user is counted in this metric if + // they used the app actively during the aggregation period. An app is + // considered to be in active use if it is displaying any activity or + // executing any foreground service. Care must be taken not to aggregate + // this count further, as it may result in users being counted multiple + // times. The value is rounded to the nearest multiple of 10, 100, 1,000 + // or 1,000,000, depending on the magnitude of the value. Metrics []string `json:"metrics,omitempty"` // PageSize: Maximum size of the returned data. If unspecified, at most @@ -1337,7 +1355,9 @@ type GooglePlayDeveloperReportingV1alpha1QueryCrashRateMetricSetRequest struct { // TimelineSpec: Specification of the timeline aggregation parameters. // **Supported aggregation periods:** * DAILY: metrics are aggregated in // calendar date intervals. Due to historical constraints, the default - // and only supported timezone is `America/Los_Angeles`. + // and only supported timezone is `America/Los_Angeles`. * HOURLY: + // metrics are aggregated in hourly intervals. The default and only + // supported timezone is `UTC`. TimelineSpec *GooglePlayDeveloperReportingV1alpha1TimelineSpec `json:"timelineSpec,omitempty"` // UserCohort: User view to select. The output data will correspond to @@ -2537,6 +2557,8 @@ type GooglePlayDeveloperReportingV1alpha1TimelineSpec struct { // "AGGREGATION_PERIOD_UNSPECIFIED" - Unspecified granularity. // "HOURLY" - Data is aggregated in hourly intervals. // "DAILY" - Data is aggregated in daily intervals. + // "FULL_RANGE" - Data is aggregated over the full timeline range. + // Effectively this produces a single value rather than a timeline. AggregationPeriod string `json:"aggregationPeriod,omitempty"` // EndTime: Ending datapoint of the timeline (exclusive). See start_time diff --git a/playdeveloperreporting/v1beta1/playdeveloperreporting-api.json b/playdeveloperreporting/v1beta1/playdeveloperreporting-api.json index f852ac94c5d..640c012128c 100644 --- a/playdeveloperreporting/v1beta1/playdeveloperreporting-api.json +++ b/playdeveloperreporting/v1beta1/playdeveloperreporting-api.json @@ -880,7 +880,7 @@ } } }, - "revision": "20230419", + "revision": "20230425", "rootUrl": "https://playdeveloperreporting.googleapis.com/", "schemas": { "GooglePlayDeveloperReportingV1beta1Anomaly": { @@ -914,7 +914,7 @@ "type": "object" }, "GooglePlayDeveloperReportingV1beta1AnrRateMetricSet": { - "description": "Singleton resource representing the set of ANR (Application not responding) metrics. This metric set contains ANRs data combined with usage data to produce a normalized metric independent of user counts. **Supported aggregation periods:** * DAILY: metrics are aggregated in calendar date intervals. Due to historical constraints, the only supported timezone is `America/Los_Angeles`. **Supported metrics:** * `anrRate` (`google.type.Decimal`): Percentage of distinct users in the aggregation period that experienced at least one ANR. * `anrRate7dUserWeighted` (`google.type.Decimal`): Rolling average value of `anrRate` in the last 7 days. The daily values are weighted by the count of distinct users for the day. * `anrRate28dUserWeighted` (`google.type.Decimal`): Rolling average value of `anrRate` in the last 28 days. The daily values are weighted by the count of distinct users for the day. * `userPerceivedAnrRate` (`google.type.Decimal`): Percentage of distinct users in the aggregation period that experienced at least one user-perceived ANR. User-perceived ANRs are currently those of 'Input dispatching' type. * `userPerceivedAnrRate7dUserWeighted` (`google.type.Decimal`): Rolling average value of `userPerceivedAnrRate` in the last 7 days. The daily values are weighted by the count of distinct users for the day. * `userPerceivedAnrRate28dUserWeighted` (`google.type.Decimal`): Rolling average value of `userPerceivedAnrRate` in the last 28 days. The daily values are weighted by the count of distinct users for the day. * `distinctUsers` (`google.type.Decimal`): Count of distinct users in the aggregation period that were used as normalization value for the `anrRate` and `userPerceivedAnrRate` metrics. A user is counted in this metric if they used the app in the foreground during the aggregation period. Care must be taken not to aggregate this count further, as it may result in users being counted multiple times. The value is rounded to the nearest multiple of 10, 100, 1,000 or 1,000,000, depending on the magnitude of the value. **Supported dimensions:** * `apiLevel` (string): the API level of Android that was running on the user's device. * `versionCode` (int64): version of the app that was running on the user's device. * `deviceModel` (string): unique identifier of the user's device model. * `deviceType` (string): the type (also known as form factor) of the user's device. * `countryCode` (string): the country or region of the user's device based on their IP address, represented as a 2-letter ISO-3166 code (e.g. US for the United States). * `deviceRamBucket` (int64): RAM of the device, in MB, in buckets (3GB, 4GB, etc.). * `deviceSocMake` (string): Make of the device's primary system-on-chip, e.g., Samsung. [Reference](https://developer.android.com/reference/android/os/Build#SOC_MANUFACTURER) * `deviceSocModel` (string): Model of the device's primary system-on-chip, e.g., \"Exynos 2100\". [Reference](https://developer.android.com/reference/android/os/Build#SOC_MODEL) * `deviceCpuMake` (string): Make of the device's CPU, e.g., Qualcomm. * `deviceCpuModel` (string): Model of the device's CPU, e.g., \"Kryo 240\". * `deviceGpuMake` (string): Make of the device's GPU, e.g., ARM. * `deviceGpuModel` (string): Model of the device's GPU, e.g., Mali. * `deviceGpuVersion` (string): Version of the device's GPU, e.g., T750. * `deviceVulkanVersion` (string): Vulkan version of the device, e.g., \"4198400\". * `deviceGlEsVersion` (string): OpenGL ES version of the device, e.g., \"196610\". * `deviceScreenSize` (string): Screen size of the device, e.g., NORMAL, LARGE. * `deviceScreenDpi` (string): Screen density of the device, e.g., mdpi, hdpi. **Required permissions**: to access this resource, the calling user needs the _View app information (read-only)_ permission for the app. **Related metric sets:** * vitals.errors contains unnormalized version (absolute counts) of crashes. * vitals.errors contains normalized metrics about crashes, another stability metric.", + "description": "Singleton resource representing the set of ANR (Application not responding) metrics. This metric set contains ANRs data combined with usage data to produce a normalized metric independent of user counts. **Supported aggregation periods:** * DAILY: metrics are aggregated in calendar date intervals. Due to historical constraints, the only supported timezone is `America/Los_Angeles`. * HOURLY: metrics are aggregated in hourly intervals. The default and only supported timezone is `UTC`. **Supported metrics:** * `anrRate` (`google.type.Decimal`): Percentage of distinct users in the aggregation period that experienced at least one ANR. * `anrRate7dUserWeighted` (`google.type.Decimal`): Rolling average value of `anrRate` in the last 7 days. The daily values are weighted by the count of distinct users for the day. Not supported in HOURLY granularity. * `anrRate28dUserWeighted` (`google.type.Decimal`): Rolling average value of `anrRate` in the last 28 days. The daily values are weighted by the count of distinct users for the day. Not supported in HOURLY granularity. * `userPerceivedAnrRate` (`google.type.Decimal`): Percentage of distinct users in the aggregation period that experienced at least one user-perceived ANR. User-perceived ANRs are currently those of 'Input dispatching' type. * `userPerceivedAnrRate7dUserWeighted` (`google.type.Decimal`): Rolling average value of `userPerceivedAnrRate` in the last 7 days. The daily values are weighted by the count of distinct users for the day. Not supported in HOURLY granularity. * `userPerceivedAnrRate28dUserWeighted` (`google.type.Decimal`): Rolling average value of `userPerceivedAnrRate` in the last 28 days. The daily values are weighted by the count of distinct users for the day. * `distinctUsers` (`google.type.Decimal`): Count of distinct users in the aggregation period that were used as normalization value for the `anrRate` and `userPerceivedAnrRate` metrics. A user is counted in this metric if they used the app in the foreground during the aggregation period. Care must be taken not to aggregate this count further, as it may result in users being counted multiple times. The value is rounded to the nearest multiple of 10, 100, 1,000 or 1,000,000, depending on the magnitude of the value. **Supported dimensions:** * `apiLevel` (string): the API level of Android that was running on the user's device. * `versionCode` (int64): version of the app that was running on the user's device. * `deviceModel` (string): unique identifier of the user's device model. * `deviceType` (string): the type (also known as form factor) of the user's device. * `countryCode` (string): the country or region of the user's device based on their IP address, represented as a 2-letter ISO-3166 code (e.g. US for the United States). * `deviceRamBucket` (int64): RAM of the device, in MB, in buckets (3GB, 4GB, etc.). * `deviceSocMake` (string): Make of the device's primary system-on-chip, e.g., Samsung. [Reference](https://developer.android.com/reference/android/os/Build#SOC_MANUFACTURER) * `deviceSocModel` (string): Model of the device's primary system-on-chip, e.g., \"Exynos 2100\". [Reference](https://developer.android.com/reference/android/os/Build#SOC_MODEL) * `deviceCpuMake` (string): Make of the device's CPU, e.g., Qualcomm. * `deviceCpuModel` (string): Model of the device's CPU, e.g., \"Kryo 240\". * `deviceGpuMake` (string): Make of the device's GPU, e.g., ARM. * `deviceGpuModel` (string): Model of the device's GPU, e.g., Mali. * `deviceGpuVersion` (string): Version of the device's GPU, e.g., T750. * `deviceVulkanVersion` (string): Vulkan version of the device, e.g., \"4198400\". * `deviceGlEsVersion` (string): OpenGL ES version of the device, e.g., \"196610\". * `deviceScreenSize` (string): Screen size of the device, e.g., NORMAL, LARGE. * `deviceScreenDpi` (string): Screen density of the device, e.g., mdpi, hdpi. **Required permissions**: to access this resource, the calling user needs the _View app information (read-only)_ permission for the app. **Related metric sets:** * vitals.errors contains unnormalized version (absolute counts) of crashes. * vitals.errors contains normalized metrics about crashes, another stability metric.", "id": "GooglePlayDeveloperReportingV1beta1AnrRateMetricSet", "properties": { "freshnessInfo": { @@ -929,7 +929,7 @@ "type": "object" }, "GooglePlayDeveloperReportingV1beta1CrashRateMetricSet": { - "description": "Singleton resource representing the set of crashrate metrics. This metric set contains crashes data combined with usage data to produce a normalized metric independent of user counts. **Supported aggregation periods:** * DAILY: metrics are aggregated in calendar date intervals. Due to historical constraints, the only supported timezone is `America/Los_Angeles`. **Supported metrics:** * `crashRate` (`google.type.Decimal`): Percentage of distinct users in the aggregation period that experienced at least one crash. * `crashRate7dUserWeighted` (`google.type.Decimal`): Rolling average value of `crashRate` in the last 7 days. The daily values are weighted by the count of distinct users for the day. * `crashRate28dUserWeighted` (`google.type.Decimal`): Rolling average value of `crashRate` in the last 28 days. The daily values are weighted by the count of distinct users for the day. * `userPerceivedCrashRate` (`google.type.Decimal`): Percentage of distinct users in the aggregation period that experienced at least one crash while they were actively using your app (a user-perceived crash). An app is considered to be in active use if it is displaying any activity or executing any foreground service. * `userPerceivedCrashRate7dUserWeighted` (`google.type.Decimal`): Rolling average value of `userPerceivedCrashRate` in the last 7 days. The daily values are weighted by the count of distinct users for the day. * `userPerceivedCrashRate28dUserWeighted` (`google.type.Decimal`): Rolling average value of `userPerceivedCrashRate` in the last 28 days. The daily values are weighted by the count of distinct users for the day. * `distinctUsers` (`google.type.Decimal`): Count of distinct users in the aggregation period that were used as normalization value for the `crashRate` and `userPerceivedCrashRate` metrics. A user is counted in this metric if they used the app actively during the aggregation period. An app is considered to be in active use if it is displaying any activity or executing any foreground service. Care must be taken not to aggregate this count further, as it may result in users being counted multiple times. The value is rounded to the nearest multiple of 10, 100, 1,000 or 1,000,000, depending on the magnitude of the value. **Supported dimensions:** * `apiLevel` (string): the API level of Android that was running on the user's device. * `versionCode` (int64): version of the app that was running on the user's device. * `deviceModel` (string): unique identifier of the user's device model. * `deviceType` (string): the type (also known as form factor) of the user's device. * `countryCode` (string): the country or region of the user's device based on their IP address, represented as a 2-letter ISO-3166 code (e.g. US for the United States). * `deviceRamBucket` (int64): RAM of the device, in MB, in buckets (3GB, 4GB, etc.). * `deviceSocMake` (string): Make of the device's primary system-on-chip, e.g., Samsung. [Reference](https://developer.android.com/reference/android/os/Build#SOC_MANUFACTURER) * `deviceSocModel` (string): Model of the device's primary system-on-chip, e.g., \"Exynos 2100\". [Reference](https://developer.android.com/reference/android/os/Build#SOC_MODEL) * `deviceCpuMake` (string): Make of the device's CPU, e.g., Qualcomm. * `deviceCpuModel` (string): Model of the device's CPU, e.g., \"Kryo 240\". * `deviceGpuMake` (string): Make of the device's GPU, e.g., ARM. * `deviceGpuModel` (string): Model of the device's GPU, e.g., Mali. * `deviceGpuVersion` (string): Version of the device's GPU, e.g., T750. * `deviceVulkanVersion` (string): Vulkan version of the device, e.g., \"4198400\". * `deviceGlEsVersion` (string): OpenGL ES version of the device, e.g., \"196610\". * `deviceScreenSize` (string): Screen size of the device, e.g., NORMAL, LARGE. * `deviceScreenDpi` (string): Screen density of the device, e.g., mdpi, hdpi. **Required permissions**: to access this resource, the calling user needs the _View app information (read-only)_ permission for the app. **Related metric sets:** * vitals.errors contains unnormalized version (absolute counts) of crashes. * vitals.errors contains normalized metrics about ANRs, another stability metric.", + "description": "Singleton resource representing the set of crashrate metrics. This metric set contains crashes data combined with usage data to produce a normalized metric independent of user counts. **Supported aggregation periods:** * DAILY: metrics are aggregated in calendar date intervals. Due to historical constraints, the only supported timezone is `America/Los_Angeles`. * HOURLY: metrics are aggregated in hourly intervals. The default and only supported timezone is `UTC`. **Supported metrics:** * `crashRate` (`google.type.Decimal`): Percentage of distinct users in the aggregation period that experienced at least one crash. * `crashRate7dUserWeighted` (`google.type.Decimal`): Rolling average value of `crashRate` in the last 7 days. The daily values are weighted by the count of distinct users for the day. Not supported in HOURLY granularity. * `crashRate28dUserWeighted` (`google.type.Decimal`): Rolling average value of `crashRate` in the last 28 days. The daily values are weighted by the count of distinct users for the day. Not supported in HOURLY granularity. * `userPerceivedCrashRate` (`google.type.Decimal`): Percentage of distinct users in the aggregation period that experienced at least one crash while they were actively using your app (a user-perceived crash). An app is considered to be in active use if it is displaying any activity or executing any foreground service. * `userPerceivedCrashRate7dUserWeighted` (`google.type.Decimal`): Rolling average value of `userPerceivedCrashRate` in the last 7 days. The daily values are weighted by the count of distinct users for the day. Not supported in HOURLY granularity. * `userPerceivedCrashRate28dUserWeighted` (`google.type.Decimal`): Rolling average value of `userPerceivedCrashRate` in the last 28 days. The daily values are weighted by the count of distinct users for the day. Not supported in HOURLY granularity. * `distinctUsers` (`google.type.Decimal`): Count of distinct users in the aggregation period that were used as normalization value for the `crashRate` and `userPerceivedCrashRate` metrics. A user is counted in this metric if they used the app actively during the aggregation period. An app is considered to be in active use if it is displaying any activity or executing any foreground service. Care must be taken not to aggregate this count further, as it may result in users being counted multiple times. The value is rounded to the nearest multiple of 10, 100, 1,000 or 1,000,000, depending on the magnitude of the value. **Supported dimensions:** * `apiLevel` (string): the API level of Android that was running on the user's device. * `versionCode` (int64): version of the app that was running on the user's device. * `deviceModel` (string): unique identifier of the user's device model. * `deviceType` (string): the type (also known as form factor) of the user's device. * `countryCode` (string): the country or region of the user's device based on their IP address, represented as a 2-letter ISO-3166 code (e.g. US for the United States). * `deviceRamBucket` (int64): RAM of the device, in MB, in buckets (3GB, 4GB, etc.). * `deviceSocMake` (string): Make of the device's primary system-on-chip, e.g., Samsung. [Reference](https://developer.android.com/reference/android/os/Build#SOC_MANUFACTURER) * `deviceSocModel` (string): Model of the device's primary system-on-chip, e.g., \"Exynos 2100\". [Reference](https://developer.android.com/reference/android/os/Build#SOC_MODEL) * `deviceCpuMake` (string): Make of the device's CPU, e.g., Qualcomm. * `deviceCpuModel` (string): Model of the device's CPU, e.g., \"Kryo 240\". * `deviceGpuMake` (string): Make of the device's GPU, e.g., ARM. * `deviceGpuModel` (string): Model of the device's GPU, e.g., Mali. * `deviceGpuVersion` (string): Version of the device's GPU, e.g., T750. * `deviceVulkanVersion` (string): Vulkan version of the device, e.g., \"4198400\". * `deviceGlEsVersion` (string): OpenGL ES version of the device, e.g., \"196610\". * `deviceScreenSize` (string): Screen size of the device, e.g., NORMAL, LARGE. * `deviceScreenDpi` (string): Screen density of the device, e.g., mdpi, hdpi. **Required permissions**: to access this resource, the calling user needs the _View app information (read-only)_ permission for the app. **Related metric sets:** * vitals.errors contains unnormalized version (absolute counts) of crashes. * vitals.errors contains normalized metrics about ANRs, another stability metric.", "id": "GooglePlayDeveloperReportingV1beta1CrashRateMetricSet", "properties": { "freshnessInfo": { @@ -1101,12 +1101,14 @@ "enum": [ "AGGREGATION_PERIOD_UNSPECIFIED", "HOURLY", - "DAILY" + "DAILY", + "FULL_RANGE" ], "enumDescriptions": [ "Unspecified granularity.", "Data is aggregated in hourly intervals.", - "Data is aggregated in daily intervals." + "Data is aggregated in daily intervals.", + "Data is aggregated over the full timeline range. Effectively this produces a single value rather than a timeline." ], "type": "string" }, @@ -1163,12 +1165,14 @@ "enum": [ "AGGREGATION_PERIOD_UNSPECIFIED", "HOURLY", - "DAILY" + "DAILY", + "FULL_RANGE" ], "enumDescriptions": [ "Unspecified granularity.", "Data is aggregated in hourly intervals.", - "Data is aggregated in daily intervals." + "Data is aggregated in daily intervals.", + "Data is aggregated over the full timeline range. Effectively this produces a single value rather than a timeline." ], "type": "string" }, @@ -1209,7 +1213,7 @@ "type": "string" }, "metrics": { - "description": "Metrics to aggregate. **Supported metrics:** * `anrRate` (`google.type.Decimal`): Percentage of distinct users in the aggregation period that experienced at least one ANR. * `anrRate7dUserWeighted` (`google.type.Decimal`): Rolling average value of `anrRate` in the last 7 days. The daily values are weighted by the count of distinct users for the day. * `anrRate28dUserWeighted` (`google.type.Decimal`): Rolling average value of `anrRate` in the last 28 days. The daily values are weighted by the count of distinct users for the day. * `userPerceivedAnrRate` (`google.type.Decimal`): Percentage of distinct users in the aggregation period that experienced at least one user-perceived ANR. User-perceived ANRs are currently those of 'Input dispatching' type. * `userPerceivedAnrRate7dUserWeighted` (`google.type.Decimal`): Rolling average value of `userPerceivedAnrRate` in the last 7 days. The daily values are weighted by the count of distinct users for the day. * `userPerceivedAnrRate28dUserWeighted` (`google.type.Decimal`): Rolling average value of `userPerceivedAnrRate` in the last 28 days. The daily values are weighted by the count of distinct users for the day. * `distinctUsers` (`google.type.Decimal`): Count of distinct users in the aggregation period that were used as normalization value for the `anrRate` and `userPerceivedAnrRate` metrics. A user is counted in this metric if they used the app in the foreground during the aggregation period. Care must be taken not to aggregate this count further, as it may result in users being counted multiple times. The value is rounded to the nearest multiple of 10, 100, 1,000 or 1,000,000, depending on the magnitude of the value.", + "description": "Metrics to aggregate. **Supported metrics:** * `anrRate` (`google.type.Decimal`): Percentage of distinct users in the aggregation period that experienced at least one ANR. * `anrRate7dUserWeighted` (`google.type.Decimal`): Rolling average value of `anrRate` in the last 7 days. The daily values are weighted by the count of distinct users for the day. Not supported in HOURLY granularity. * `anrRate28dUserWeighted` (`google.type.Decimal`): Rolling average value of `anrRate` in the last 28 days. The daily values are weighted by the count of distinct users for the day. Not supported in HOURLY granularity. * `userPerceivedAnrRate` (`google.type.Decimal`): Percentage of distinct users in the aggregation period that experienced at least one user-perceived ANR. User-perceived ANRs are currently those of 'Input dispatching' type. * `userPerceivedAnrRate7dUserWeighted` (`google.type.Decimal`): Rolling average value of `userPerceivedAnrRate` in the last 7 days. The daily values are weighted by the count of distinct users for the day. Not supported in HOURLY granularity. * `userPerceivedAnrRate28dUserWeighted` (`google.type.Decimal`): Rolling average value of `userPerceivedAnrRate` in the last 28 days. The daily values are weighted by the count of distinct users for the day. Not . supported in HOURLY granularity. * `distinctUsers` (`google.type.Decimal`): Count of distinct users in the aggregation period that were used as normalization value for the `anrRate` and `userPerceivedAnrRate` metrics. A user is counted in this metric if they used the app in the foreground during the aggregation period. Care must be taken not to aggregate this count further, as it may result in users being counted multiple times. The value is rounded to the nearest multiple of 10, 100, 1,000 or 1,000,000, depending on the magnitude of the value.", "items": { "type": "string" }, @@ -1226,7 +1230,7 @@ }, "timelineSpec": { "$ref": "GooglePlayDeveloperReportingV1beta1TimelineSpec", - "description": "Specification of the timeline aggregation parameters. **Supported aggregation periods:** * DAILY: metrics are aggregated in calendar date intervals. Due to historical constraints, the default and only supported timezone is `America/Los_Angeles`." + "description": "Specification of the timeline aggregation parameters. **Supported aggregation periods:** * DAILY: metrics are aggregated in calendar date intervals. Due to historical constraints, the default and only supported timezone is `America/Los_Angeles`. * HOURLY: metrics are aggregated in hourly intervals. The default and only supported timezone is `UTC`." }, "userCohort": { "description": "User view to select. The output data will correspond to the selected view. **Supported values:** * `OS_PUBLIC` To select data from all publicly released Android versions. This is the default. Supports all the above dimensions. * `APP_TESTERS` To select data from users who have opted in to be testers. Supports all the above dimensions. * `OS_BETA` To select data from beta android versions only, excluding data from released android versions. Only the following dimensions are supported: * `versionCode` (int64): version of the app that was running on the user's device. * `osBuild` (string): OS build of the user's device, e.g., \"T1B2.220916.004\".", @@ -1281,7 +1285,7 @@ "type": "string" }, "metrics": { - "description": "Metrics to aggregate. **Supported metrics:** * `crashRate` (`google.type.Decimal`): Percentage of distinct users in the aggregation period that experienced at least one crash. * `crashRate7dUserWeighted` (`google.type.Decimal`): Rolling average value of `crashRate` in the last 7 days. The daily values are weighted by the count of distinct users for the day. * `crashRate28dUserWeighted` (`google.type.Decimal`): Rolling average value of `crashRate` in the last 28 days. The daily values are weighted by the count of distinct users for the day. * `userPerceivedCrashRate` (`google.type.Decimal`): Percentage of distinct users in the aggregation period that experienced at least one crash while they were actively using your app (a user-perceived crash). An app is considered to be in active use if it is displaying any activity or executing any foreground service. * `userPerceivedCrashRate7dUserWeighted` (`google.type.Decimal`): Rolling average value of `userPerceivedCrashRate` in the last 7 days. The daily values are weighted by the count of distinct users for the day. * `userPerceivedCrashRate28dUserWeighted` (`google.type.Decimal`): Rolling average value of `userPerceivedCrashRate` in the last 28 days. The daily values are weighted by the count of distinct users for the day. * `distinctUsers` (`google.type.Decimal`): Count of distinct users in the aggregation period that were used as normalization value for the `crashRate` and `userPerceivedCrashRate` metrics. A user is counted in this metric if they used the app actively during the aggregation period. An app is considered to be in active use if it is displaying any activity or executing any foreground service. Care must be taken not to aggregate this count further, as it may result in users being counted multiple times. The value is rounded to the nearest multiple of 10, 100, 1,000 or 1,000,000, depending on the magnitude of the value.", + "description": "Metrics to aggregate. **Supported metrics:** * `crashRate` (`google.type.Decimal`): Percentage of distinct users in the aggregation period that experienced at least one crash. * `crashRate7dUserWeighted` (`google.type.Decimal`): Rolling average value of `crashRate` in the last 7 days. The daily values are weighted by the count of distinct users for the day. * `crashRate28dUserWeighted` (`google.type.Decimal`): Rolling average value of `crashRate` in the last 28 days. The daily values are weighted by the count of distinct users for the day. Not supported in HOURLY granularity. * `userPerceivedCrashRate` (`google.type.Decimal`): Percentage of distinct users in the aggregation period that experienced at least one crash while they were actively using your app (a user-perceived crash). An app is considered to be in active use if it is displaying any activity or executing any foreground service. * `userPerceivedCrashRate7dUserWeighted` (`google.type.Decimal`): Rolling average value of `userPerceivedCrashRate` in the last 7 days. The daily values are weighted by the count of distinct users for the day. Not supported in HOURLY granularity. * `userPerceivedCrashRate28dUserWeighted` (`google.type.Decimal`): Rolling average value of `userPerceivedCrashRate` in the last 28 days. The daily values are weighted by the count of distinct users for the day. Not supported in HOURLY granularity. * `distinctUsers` (`google.type.Decimal`): Count of distinct users in the aggregation period that were used as normalization value for the `crashRate` and `userPerceivedCrashRate` metrics. A user is counted in this metric if they used the app actively during the aggregation period. An app is considered to be in active use if it is displaying any activity or executing any foreground service. Care must be taken not to aggregate this count further, as it may result in users being counted multiple times. The value is rounded to the nearest multiple of 10, 100, 1,000 or 1,000,000, depending on the magnitude of the value.", "items": { "type": "string" }, @@ -1298,7 +1302,7 @@ }, "timelineSpec": { "$ref": "GooglePlayDeveloperReportingV1beta1TimelineSpec", - "description": "Specification of the timeline aggregation parameters. **Supported aggregation periods:** * DAILY: metrics are aggregated in calendar date intervals. Due to historical constraints, the default and only supported timezone is `America/Los_Angeles`." + "description": "Specification of the timeline aggregation parameters. **Supported aggregation periods:** * DAILY: metrics are aggregated in calendar date intervals. Due to historical constraints, the default and only supported timezone is `America/Los_Angeles`. * HOURLY: metrics are aggregated in hourly intervals. The default and only supported timezone is `UTC`." }, "userCohort": { "description": "User view to select. The output data will correspond to the selected view. **Supported values:** * `OS_PUBLIC` To select data from all publicly released Android versions. This is the default. Supports all the above dimensions. * `APP_TESTERS` To select data from users who have opted in to be testers. Supports all the above dimensions. * `OS_BETA` To select data from beta android versions only, excluding data from released android versions. Only the following dimensions are supported: * `versionCode` (int64): version of the app that was running on the user's device. * `osBuild` (string): OS build of the user's device, e.g., \"T1B2.220916.004\".", @@ -1771,12 +1775,14 @@ "enum": [ "AGGREGATION_PERIOD_UNSPECIFIED", "HOURLY", - "DAILY" + "DAILY", + "FULL_RANGE" ], "enumDescriptions": [ "Unspecified granularity.", "Data is aggregated in hourly intervals.", - "Data is aggregated in daily intervals." + "Data is aggregated in daily intervals.", + "Data is aggregated over the full timeline range. Effectively this produces a single value rather than a timeline." ], "type": "string" }, diff --git a/playdeveloperreporting/v1beta1/playdeveloperreporting-gen.go b/playdeveloperreporting/v1beta1/playdeveloperreporting-gen.go index dccbc2acb49..13a94206172 100644 --- a/playdeveloperreporting/v1beta1/playdeveloperreporting-gen.go +++ b/playdeveloperreporting/v1beta1/playdeveloperreporting-gen.go @@ -340,22 +340,26 @@ func (s *GooglePlayDeveloperReportingV1beta1Anomaly) MarshalJSON() ([]byte, erro // to produce a normalized metric independent of user counts. // **Supported aggregation periods:** * DAILY: metrics are aggregated in // calendar date intervals. Due to historical constraints, the only -// supported timezone is `America/Los_Angeles`. **Supported metrics:** * -// `anrRate` (`google.type.Decimal`): Percentage of distinct users in -// the aggregation period that experienced at least one ANR. * +// supported timezone is `America/Los_Angeles`. * HOURLY: metrics are +// aggregated in hourly intervals. The default and only supported +// timezone is `UTC`. **Supported metrics:** * `anrRate` +// (`google.type.Decimal`): Percentage of distinct users in the +// aggregation period that experienced at least one ANR. * // `anrRate7dUserWeighted` (`google.type.Decimal`): Rolling average // value of `anrRate` in the last 7 days. The daily values are weighted -// by the count of distinct users for the day. * -// `anrRate28dUserWeighted` (`google.type.Decimal`): Rolling average -// value of `anrRate` in the last 28 days. The daily values are weighted -// by the count of distinct users for the day. * `userPerceivedAnrRate` +// by the count of distinct users for the day. Not supported in HOURLY +// granularity. * `anrRate28dUserWeighted` (`google.type.Decimal`): +// Rolling average value of `anrRate` in the last 28 days. The daily +// values are weighted by the count of distinct users for the day. Not +// supported in HOURLY granularity. * `userPerceivedAnrRate` // (`google.type.Decimal`): Percentage of distinct users in the // aggregation period that experienced at least one user-perceived ANR. // User-perceived ANRs are currently those of 'Input dispatching' type. // * `userPerceivedAnrRate7dUserWeighted` (`google.type.Decimal`): // Rolling average value of `userPerceivedAnrRate` in the last 7 days. // The daily values are weighted by the count of distinct users for the -// day. * `userPerceivedAnrRate28dUserWeighted` (`google.type.Decimal`): +// day. Not supported in HOURLY granularity. * +// `userPerceivedAnrRate28dUserWeighted` (`google.type.Decimal`): // Rolling average value of `userPerceivedAnrRate` in the last 28 days. // The daily values are weighted by the count of distinct users for the // day. * `distinctUsers` (`google.type.Decimal`): Count of distinct @@ -436,41 +440,45 @@ func (s *GooglePlayDeveloperReportingV1beta1AnrRateMetricSet) MarshalJSON() ([]b // normalized metric independent of user counts. **Supported aggregation // periods:** * DAILY: metrics are aggregated in calendar date // intervals. Due to historical constraints, the only supported timezone -// is `America/Los_Angeles`. **Supported metrics:** * `crashRate` -// (`google.type.Decimal`): Percentage of distinct users in the -// aggregation period that experienced at least one crash. * -// `crashRate7dUserWeighted` (`google.type.Decimal`): Rolling average -// value of `crashRate` in the last 7 days. The daily values are -// weighted by the count of distinct users for the day. * +// is `America/Los_Angeles`. * HOURLY: metrics are aggregated in hourly +// intervals. The default and only supported timezone is `UTC`. +// **Supported metrics:** * `crashRate` (`google.type.Decimal`): +// Percentage of distinct users in the aggregation period that +// experienced at least one crash. * `crashRate7dUserWeighted` +// (`google.type.Decimal`): Rolling average value of `crashRate` in the +// last 7 days. The daily values are weighted by the count of distinct +// users for the day. Not supported in HOURLY granularity. * // `crashRate28dUserWeighted` (`google.type.Decimal`): Rolling average // value of `crashRate` in the last 28 days. The daily values are -// weighted by the count of distinct users for the day. * -// `userPerceivedCrashRate` (`google.type.Decimal`): Percentage of -// distinct users in the aggregation period that experienced at least -// one crash while they were actively using your app (a user-perceived -// crash). An app is considered to be in active use if it is displaying -// any activity or executing any foreground service. * +// weighted by the count of distinct users for the day. Not supported in +// HOURLY granularity. * `userPerceivedCrashRate` +// (`google.type.Decimal`): Percentage of distinct users in the +// aggregation period that experienced at least one crash while they +// were actively using your app (a user-perceived crash). An app is +// considered to be in active use if it is displaying any activity or +// executing any foreground service. * // `userPerceivedCrashRate7dUserWeighted` (`google.type.Decimal`): // Rolling average value of `userPerceivedCrashRate` in the last 7 days. // The daily values are weighted by the count of distinct users for the -// day. * `userPerceivedCrashRate28dUserWeighted` -// (`google.type.Decimal`): Rolling average value of -// `userPerceivedCrashRate` in the last 28 days. The daily values are -// weighted by the count of distinct users for the day. * -// `distinctUsers` (`google.type.Decimal`): Count of distinct users in -// the aggregation period that were used as normalization value for the -// `crashRate` and `userPerceivedCrashRate` metrics. A user is counted -// in this metric if they used the app actively during the aggregation -// period. An app is considered to be in active use if it is displaying -// any activity or executing any foreground service. Care must be taken -// not to aggregate this count further, as it may result in users being -// counted multiple times. The value is rounded to the nearest multiple -// of 10, 100, 1,000 or 1,000,000, depending on the magnitude of the -// value. **Supported dimensions:** * `apiLevel` (string): the API level -// of Android that was running on the user's device. * `versionCode` -// (int64): version of the app that was running on the user's device. * -// `deviceModel` (string): unique identifier of the user's device model. -// * `deviceType` (string): the type (also known as form factor) of the +// day. Not supported in HOURLY granularity. * +// `userPerceivedCrashRate28dUserWeighted` (`google.type.Decimal`): +// Rolling average value of `userPerceivedCrashRate` in the last 28 +// days. The daily values are weighted by the count of distinct users +// for the day. Not supported in HOURLY granularity. * `distinctUsers` +// (`google.type.Decimal`): Count of distinct users in the aggregation +// period that were used as normalization value for the `crashRate` and +// `userPerceivedCrashRate` metrics. A user is counted in this metric if +// they used the app actively during the aggregation period. An app is +// considered to be in active use if it is displaying any activity or +// executing any foreground service. Care must be taken not to aggregate +// this count further, as it may result in users being counted multiple +// times. The value is rounded to the nearest multiple of 10, 100, 1,000 +// or 1,000,000, depending on the magnitude of the value. **Supported +// dimensions:** * `apiLevel` (string): the API level of Android that +// was running on the user's device. * `versionCode` (int64): version of +// the app that was running on the user's device. * `deviceModel` +// (string): unique identifier of the user's device model. * +// `deviceType` (string): the type (also known as form factor) of the // user's device. * `countryCode` (string): the country or region of the // user's device based on their IP address, represented as a 2-letter // ISO-3166 code (e.g. US for the United States). * `deviceRamBucket` @@ -939,6 +947,8 @@ type GooglePlayDeveloperReportingV1beta1FreshnessInfoFreshness struct { // "AGGREGATION_PERIOD_UNSPECIFIED" - Unspecified granularity. // "HOURLY" - Data is aggregated in hourly intervals. // "DAILY" - Data is aggregated in daily intervals. + // "FULL_RANGE" - Data is aggregated over the full timeline range. + // Effectively this produces a single value rather than a timeline. AggregationPeriod string `json:"aggregationPeriod,omitempty"` // LatestEndTime: Latest end time for which data is available, for the @@ -1056,6 +1066,8 @@ type GooglePlayDeveloperReportingV1beta1MetricsRow struct { // "AGGREGATION_PERIOD_UNSPECIFIED" - Unspecified granularity. // "HOURLY" - Data is aggregated in hourly intervals. // "DAILY" - Data is aggregated in daily intervals. + // "FULL_RANGE" - Data is aggregated over the full timeline range. + // Effectively this produces a single value rather than a timeline. AggregationPeriod string `json:"aggregationPeriod,omitempty"` // Dimensions: Dimension columns in the row. @@ -1133,27 +1145,30 @@ type GooglePlayDeveloperReportingV1beta1QueryAnrRateMetricSetRequest struct { // aggregation period that experienced at least one ANR. * // `anrRate7dUserWeighted` (`google.type.Decimal`): Rolling average // value of `anrRate` in the last 7 days. The daily values are weighted - // by the count of distinct users for the day. * - // `anrRate28dUserWeighted` (`google.type.Decimal`): Rolling average - // value of `anrRate` in the last 28 days. The daily values are weighted - // by the count of distinct users for the day. * `userPerceivedAnrRate` + // by the count of distinct users for the day. Not supported in HOURLY + // granularity. * `anrRate28dUserWeighted` (`google.type.Decimal`): + // Rolling average value of `anrRate` in the last 28 days. The daily + // values are weighted by the count of distinct users for the day. Not + // supported in HOURLY granularity. * `userPerceivedAnrRate` // (`google.type.Decimal`): Percentage of distinct users in the // aggregation period that experienced at least one user-perceived ANR. // User-perceived ANRs are currently those of 'Input dispatching' type. // * `userPerceivedAnrRate7dUserWeighted` (`google.type.Decimal`): // Rolling average value of `userPerceivedAnrRate` in the last 7 days. // The daily values are weighted by the count of distinct users for the - // day. * `userPerceivedAnrRate28dUserWeighted` (`google.type.Decimal`): + // day. Not supported in HOURLY granularity. * + // `userPerceivedAnrRate28dUserWeighted` (`google.type.Decimal`): // Rolling average value of `userPerceivedAnrRate` in the last 28 days. // The daily values are weighted by the count of distinct users for the - // day. * `distinctUsers` (`google.type.Decimal`): Count of distinct - // users in the aggregation period that were used as normalization value - // for the `anrRate` and `userPerceivedAnrRate` metrics. A user is - // counted in this metric if they used the app in the foreground during - // the aggregation period. Care must be taken not to aggregate this - // count further, as it may result in users being counted multiple - // times. The value is rounded to the nearest multiple of 10, 100, 1,000 - // or 1,000,000, depending on the magnitude of the value. + // day. Not . supported in HOURLY granularity. * `distinctUsers` + // (`google.type.Decimal`): Count of distinct users in the aggregation + // period that were used as normalization value for the `anrRate` and + // `userPerceivedAnrRate` metrics. A user is counted in this metric if + // they used the app in the foreground during the aggregation period. + // Care must be taken not to aggregate this count further, as it may + // result in users being counted multiple times. The value is rounded to + // the nearest multiple of 10, 100, 1,000 or 1,000,000, depending on the + // magnitude of the value. Metrics []string `json:"metrics,omitempty"` // PageSize: Maximum size of the returned data. If unspecified, at most @@ -1170,7 +1185,9 @@ type GooglePlayDeveloperReportingV1beta1QueryAnrRateMetricSetRequest struct { // TimelineSpec: Specification of the timeline aggregation parameters. // **Supported aggregation periods:** * DAILY: metrics are aggregated in // calendar date intervals. Due to historical constraints, the default - // and only supported timezone is `America/Los_Angeles`. + // and only supported timezone is `America/Los_Angeles`. * HOURLY: + // metrics are aggregated in hourly intervals. The default and only + // supported timezone is `UTC`. TimelineSpec *GooglePlayDeveloperReportingV1beta1TimelineSpec `json:"timelineSpec,omitempty"` // UserCohort: User view to select. The output data will correspond to @@ -1298,29 +1315,30 @@ type GooglePlayDeveloperReportingV1beta1QueryCrashRateMetricSetRequest struct { // weighted by the count of distinct users for the day. * // `crashRate28dUserWeighted` (`google.type.Decimal`): Rolling average // value of `crashRate` in the last 28 days. The daily values are - // weighted by the count of distinct users for the day. * - // `userPerceivedCrashRate` (`google.type.Decimal`): Percentage of - // distinct users in the aggregation period that experienced at least - // one crash while they were actively using your app (a user-perceived - // crash). An app is considered to be in active use if it is displaying - // any activity or executing any foreground service. * + // weighted by the count of distinct users for the day. Not supported in + // HOURLY granularity. * `userPerceivedCrashRate` + // (`google.type.Decimal`): Percentage of distinct users in the + // aggregation period that experienced at least one crash while they + // were actively using your app (a user-perceived crash). An app is + // considered to be in active use if it is displaying any activity or + // executing any foreground service. * // `userPerceivedCrashRate7dUserWeighted` (`google.type.Decimal`): // Rolling average value of `userPerceivedCrashRate` in the last 7 days. // The daily values are weighted by the count of distinct users for the - // day. * `userPerceivedCrashRate28dUserWeighted` - // (`google.type.Decimal`): Rolling average value of - // `userPerceivedCrashRate` in the last 28 days. The daily values are - // weighted by the count of distinct users for the day. * - // `distinctUsers` (`google.type.Decimal`): Count of distinct users in - // the aggregation period that were used as normalization value for the - // `crashRate` and `userPerceivedCrashRate` metrics. A user is counted - // in this metric if they used the app actively during the aggregation - // period. An app is considered to be in active use if it is displaying - // any activity or executing any foreground service. Care must be taken - // not to aggregate this count further, as it may result in users being - // counted multiple times. The value is rounded to the nearest multiple - // of 10, 100, 1,000 or 1,000,000, depending on the magnitude of the - // value. + // day. Not supported in HOURLY granularity. * + // `userPerceivedCrashRate28dUserWeighted` (`google.type.Decimal`): + // Rolling average value of `userPerceivedCrashRate` in the last 28 + // days. The daily values are weighted by the count of distinct users + // for the day. Not supported in HOURLY granularity. * `distinctUsers` + // (`google.type.Decimal`): Count of distinct users in the aggregation + // period that were used as normalization value for the `crashRate` and + // `userPerceivedCrashRate` metrics. A user is counted in this metric if + // they used the app actively during the aggregation period. An app is + // considered to be in active use if it is displaying any activity or + // executing any foreground service. Care must be taken not to aggregate + // this count further, as it may result in users being counted multiple + // times. The value is rounded to the nearest multiple of 10, 100, 1,000 + // or 1,000,000, depending on the magnitude of the value. Metrics []string `json:"metrics,omitempty"` // PageSize: Maximum size of the returned data. If unspecified, at most @@ -1337,7 +1355,9 @@ type GooglePlayDeveloperReportingV1beta1QueryCrashRateMetricSetRequest struct { // TimelineSpec: Specification of the timeline aggregation parameters. // **Supported aggregation periods:** * DAILY: metrics are aggregated in // calendar date intervals. Due to historical constraints, the default - // and only supported timezone is `America/Los_Angeles`. + // and only supported timezone is `America/Los_Angeles`. * HOURLY: + // metrics are aggregated in hourly intervals. The default and only + // supported timezone is `UTC`. TimelineSpec *GooglePlayDeveloperReportingV1beta1TimelineSpec `json:"timelineSpec,omitempty"` // UserCohort: User view to select. The output data will correspond to @@ -2538,6 +2558,8 @@ type GooglePlayDeveloperReportingV1beta1TimelineSpec struct { // "AGGREGATION_PERIOD_UNSPECIFIED" - Unspecified granularity. // "HOURLY" - Data is aggregated in hourly intervals. // "DAILY" - Data is aggregated in daily intervals. + // "FULL_RANGE" - Data is aggregated over the full timeline range. + // Effectively this produces a single value rather than a timeline. AggregationPeriod string `json:"aggregationPeriod,omitempty"` // EndTime: Ending datapoint of the timeline (exclusive). See start_time diff --git a/retail/v2/retail-api.json b/retail/v2/retail-api.json index 7adf839f9c0..629d940c3c5 100644 --- a/retail/v2/retail-api.json +++ b/retail/v2/retail-api.json @@ -138,7 +138,7 @@ "type": "string" }, "entity": { - "description": "The entity for customers that may run multiple different entities, domains, sites or regions, for example, `Google US`, `Google Ads`, `Waymo`, `google.com`, `youtube.com`, etc. If this is set, it should be exactly matched with UserEvent.entity to get per-entity autocomplete results.", + "description": "The entity for customers who run multiple entities, domains, sites, or regions, for example, `Google US`, `Google Ads`, `Waymo`, `google.com`, `youtube.com`, etc. If this is set, it must be an exact match with UserEvent.entity to get per-entity autocomplete results.", "location": "query", "type": "string" }, @@ -538,7 +538,7 @@ "products": { "methods": { "addFulfillmentPlaces": { - "description": "It is recommended to use the ProductService.AddLocalInventories method instead of ProductService.AddFulfillmentPlaces. ProductService.AddLocalInventories achieves the same results but provides more fine-grained control over ingesting local inventory data. Incrementally adds place IDs to Product.fulfillment_info.place_ids. This process is asynchronous and does not require the Product to exist before updating fulfillment information. If the request is valid, the update will be enqueued and processed downstream. As a consequence, when a response is returned, the added place IDs are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. The returned Operations will be obsolete after 1 day, and GetOperation API will return NOT_FOUND afterwards. If conflicting updates are issued, the Operations associated with the stale updates will not be marked as done until being obsolete.", + "description": "We recommend that you use the ProductService.AddLocalInventories method instead of the ProductService.AddFulfillmentPlaces method. ProductService.AddLocalInventories achieves the same results but provides more fine-grained control over ingesting local inventory data. Incrementally adds place IDs to Product.fulfillment_info.place_ids. This process is asynchronous and does not require the Product to exist before updating fulfillment information. If the request is valid, the update will be enqueued and processed downstream. As a consequence, when a response is returned, the added place IDs are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. The returned Operations will be obsolete after 1 day, and GetOperation API will return NOT_FOUND afterwards. If conflicting updates are issued, the Operations associated with the stale updates will not be marked as done until being obsolete.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:addFulfillmentPlaces", "httpMethod": "POST", "id": "retail.projects.locations.catalogs.branches.products.addFulfillmentPlaces", @@ -791,7 +791,7 @@ ] }, "removeFulfillmentPlaces": { - "description": "It is recommended to use the ProductService.RemoveLocalInventories method instead of ProductService.RemoveFulfillmentPlaces. ProductService.RemoveLocalInventories achieves the same results but provides more fine-grained control over ingesting local inventory data. Incrementally removes place IDs from a Product.fulfillment_info.place_ids. This process is asynchronous and does not require the Product to exist before updating fulfillment information. If the request is valid, the update will be enqueued and processed downstream. As a consequence, when a response is returned, the removed place IDs are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. The returned Operations will be obsolete after 1 day, and GetOperation API will return NOT_FOUND afterwards. If conflicting updates are issued, the Operations associated with the stale updates will not be marked as done until being obsolete.", + "description": "We recommend that you use the ProductService.RemoveLocalInventories method instead of the ProductService.RemoveFulfillmentPlaces method. ProductService.RemoveLocalInventories achieves the same results but provides more fine-grained control over ingesting local inventory data. Incrementally removes place IDs from a Product.fulfillment_info.place_ids. This process is asynchronous and does not require the Product to exist before updating fulfillment information. If the request is valid, the update will be enqueued and processed downstream. As a consequence, when a response is returned, the removed place IDs are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. The returned Operations will be obsolete after 1 day, and GetOperation API will return NOT_FOUND afterwards. If conflicting updates are issued, the Operations associated with the stale updates will not be marked as done until being obsolete.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:removeFulfillmentPlaces", "httpMethod": "POST", "id": "retail.projects.locations.catalogs.branches.products.removeFulfillmentPlaces", @@ -1423,7 +1423,7 @@ ], "parameters": { "placement": { - "description": "Required. The resource name of the Retail Search serving config, such as `projects/*/locations/global/catalogs/default_catalog/servingConfigs/default_serving_config` or the name of the legacy placement resource, such as `projects/*/locations/global/catalogs/default_catalog/placements/default_search`. This field is used to identify the serving config name and the set of models that will be used to make the search.", + "description": "Required. The resource name of the Retail Search serving config, such as `projects/*/locations/global/catalogs/default_catalog/servingConfigs/default_serving_config` or the name of the legacy placement resource, such as `projects/*/locations/global/catalogs/default_catalog/placements/default_search`. This field is used to identify the serving config name and the set of models that are used to make the search.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/placements/[^/]+$", "required": true, @@ -1692,7 +1692,7 @@ ], "parameters": { "placement": { - "description": "Required. The resource name of the Retail Search serving config, such as `projects/*/locations/global/catalogs/default_catalog/servingConfigs/default_serving_config` or the name of the legacy placement resource, such as `projects/*/locations/global/catalogs/default_catalog/placements/default_search`. This field is used to identify the serving config name and the set of models that will be used to make the search.", + "description": "Required. The resource name of the Retail Search serving config, such as `projects/*/locations/global/catalogs/default_catalog/servingConfigs/default_serving_config` or the name of the legacy placement resource, such as `projects/*/locations/global/catalogs/default_catalog/placements/default_search`. This field is used to identify the serving config name and the set of models that are used to make the search.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/servingConfigs/[^/]+$", "required": true, @@ -2031,7 +2031,7 @@ } } }, - "revision": "20230413", + "revision": "20230420", "rootUrl": "https://retail.googleapis.com/", "schemas": { "GoogleApiHttpBody": { @@ -2527,7 +2527,7 @@ "type": "array" }, "recentSearchResults": { - "description": "Matched recent searches of this user. The maximum number of recent searches is 10. This field is a restricted feature. Contact Retail Search support team if you are interested in enabling it. This feature is only available when CompleteQueryRequest.visitor_id field is set and UserEvent is imported. The recent searches satisfy the follow rules: * They are ordered from latest to oldest. * They are matched with CompleteQueryRequest.query case insensitively. * They are transformed to lower case. * They are UTF-8 safe. Recent searches are deduplicated. More recent searches will be reserved when duplication happens.", + "description": "Matched recent searches of this user. The maximum number of recent searches is 10. This field is a restricted feature. If you want to enable it, contact Retail Search support. This feature is only available when CompleteQueryRequest.visitor_id field is set and UserEvent is imported. The recent searches satisfy the follow rules: * They are ordered from latest to oldest. * They are matched with CompleteQueryRequest.query case insensitively. * They are transformed to lower case. * They are UTF-8 safe. Recent searches are deduplicated. More recent searches will be reserved when duplication happens.", "items": { "$ref": "GoogleCloudRetailV2CompleteQueryResponseRecentSearchResult" }, @@ -2594,7 +2594,7 @@ "type": "string" }, "lastSuggestionsImportOperation": { - "description": "Output only. Name of the LRO corresponding to the latest suggestion terms list import. Can use GetOperation API to retrieve the latest state of the Long Running Operation.", + "description": "Output only. Name of the LRO corresponding to the latest suggestion terms list import. Can use GetOperation API method to retrieve the latest state of the Long Running Operation.", "readOnly": true, "type": "string" }, @@ -2811,7 +2811,7 @@ "type": "object" }, "GoogleCloudRetailV2ExperimentInfo": { - "description": "Metadata for active A/B testing Experiments.", + "description": "Metadata for active A/B testing Experiment.", "id": "GoogleCloudRetailV2ExperimentInfo", "properties": { "experiment": { @@ -3005,7 +3005,7 @@ "description": "Required. The desired input location of the data." }, "notificationPubsubTopic": { - "description": "Full Pub/Sub topic name for receiving notification. If this field is set, when the import is finished, a notification is sent to specified Pub/Sub topic. The message data is JSON string of a Operation. Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`. It has to be within the same project as ImportProductsRequest.parent. Make sure that `service-@gcp-sa-retail.iam.gserviceaccount.com` has the `pubsub.topics.publish` IAM permission on the topic.", + "description": "Full Pub/Sub topic name for receiving notification. If this field is set, when the import is finished, a notification is sent to specified Pub/Sub topic. The message data is JSON string of a Operation. Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`. It has to be within the same project as ImportProductsRequest.parent. Make sure that both `cloud-retail-customer-data-access@system.gserviceaccount.com` and `service-@gcp-sa-retail.iam.gserviceaccount.com` have the `pubsub.topics.publish` IAM permission on the topic. Only supported when ImportProductsRequest.reconciliation_mode is set to `FULL`.", "type": "string" }, "reconciliationMode": { @@ -3284,6 +3284,10 @@ "readOnly": true, "type": "string" }, + "modelFeaturesConfig": { + "$ref": "GoogleCloudRetailV2ModelModelFeaturesConfig", + "description": "Optional. Additional model features config." + }, "name": { "description": "Required. The fully qualified resource name of the model. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}` catalog_id has char limit of 50. recommendation_model_id has char limit of 40.", "type": "string" @@ -3365,6 +3369,38 @@ }, "type": "object" }, + "GoogleCloudRetailV2ModelFrequentlyBoughtTogetherFeaturesConfig": { + "description": "More configs of the frequently-bought-together model type.", + "id": "GoogleCloudRetailV2ModelFrequentlyBoughtTogetherFeaturesConfig", + "properties": { + "contextProductsType": { + "description": "Optional. Specifies the context of the model when used in predict requests. Only settable for the `frequently-bought-together` type. Will default to MULTI_CONTEXT if not specified.", + "enum": [ + "CONTEXT_PRODUCTS_TYPE_UNSPECIFIED", + "SINGLE_CONTEXT_PRODUCT", + "MULTIPLE_CONTEXT_PRODUCTS" + ], + "enumDescriptions": [ + "Unspecified default value, should never be explicitly set. Defaults to MULTIPLE_CONTEXT_PRODUCTS.", + "Use only a single product as context for the recommendation. Typically used on pages like add-to-cart or product details.", + "Use one or multiple products as context for the recommendation. Typically used on shopping cart pages." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2ModelModelFeaturesConfig": { + "description": "Additional model features config.", + "id": "GoogleCloudRetailV2ModelModelFeaturesConfig", + "properties": { + "frequentlyBoughtTogetherConfig": { + "$ref": "GoogleCloudRetailV2ModelFrequentlyBoughtTogetherFeaturesConfig", + "description": "Additional configs for frequently-bought-together models." + } + }, + "type": "object" + }, "GoogleCloudRetailV2ModelServingConfigList": { "description": "Represents an ordered combination of valid serving configs, which can be used for `PAGE_OPTIMIZATION` recommendations.", "id": "GoogleCloudRetailV2ModelServingConfigList", @@ -4161,7 +4197,7 @@ "id": "GoogleCloudRetailV2RuleFilterAction", "properties": { "filter": { - "description": "A filter to apply on the matching condition results. Supported features: * filter must be set. * Filter syntax is identical to SearchRequest.filter. See more details at the Retail Search [user guide](/retail/search/docs/filter-and-order#filter). * To filter products with product ID \"product_1\" or \"product_2\", and color \"Red\" or \"Blue\": *(id: ANY(\"product_1\", \"product_2\")) * *AND * *(colorFamilies: ANY(\"Red\", \"Blue\")) *", + "description": "A filter to apply on the matching condition results. Supported features: * filter must be set. * Filter syntax is identical to SearchRequest.filter. For more information, see [Filter](/retail/docs/filter-and-order#filter). * To filter products with product ID \"product_1\" or \"product_2\", and color \"Red\" or \"Blue\": *(id: ANY(\"product_1\", \"product_2\")) * *AND * *(colorFamilies: ANY(\"Red\", \"Blue\")) *", "type": "string" } }, @@ -4262,14 +4298,14 @@ "properties": { "boostSpec": { "$ref": "GoogleCloudRetailV2SearchRequestBoostSpec", - "description": "Boost specification to boost certain products. See more details at this [user guide](https://cloud.google.com/retail/docs/boosting). Notice that if both ServingConfig.boost_control_ids and SearchRequest.boost_spec are set, the boost conditions from both places are evaluated. If a search request matches multiple boost conditions, the final boost score is equal to the sum of the boost scores from all matched boost conditions." + "description": "Boost specification to boost certain products. For more information, see [Boost results](https://cloud.google.com/retail/docs/boosting). Notice that if both ServingConfig.boost_control_ids and SearchRequest.boost_spec are set, the boost conditions from both places are evaluated. If a search request matches multiple boost conditions, the final boost score is equal to the sum of the boost scores from all matched boost conditions." }, "branch": { "description": "The branch resource name, such as `projects/*/locations/global/catalogs/default_catalog/branches/0`. Use \"default_branch\" as the branch ID or leave this field empty, to search products under the default branch.", "type": "string" }, "canonicalFilter": { - "description": "The default filter that is applied when a user performs a search without checking any filters on the search page. The filter applied to every search request when quality improvement such as query expansion is needed. For example, if a query does not have enough results, an expanded query with SearchRequest.canonical_filter will be returned as a supplement of the original query. This field is strongly recommended to achieve high search quality. See SearchRequest.filter for more details about filter syntax.", + "description": "The default filter that is applied when a user performs a search without checking any filters on the search page. The filter applied to every search request when quality improvement such as query expansion is needed. For example, if a query does not have enough results, an expanded query with SearchRequest.canonical_filter is returned as a supplement of the original query. This field is strongly recommended to achieve high search quality. For more information about filter syntax, see SearchRequest.filter.", "type": "string" }, "dynamicFacetSpec": { @@ -4288,14 +4324,14 @@ "type": "array" }, "filter": { - "description": "The filter syntax consists of an expression language for constructing a predicate from one or more fields of the products being filtered. Filter expression is case-sensitive. See more details at this [user guide](https://cloud.google.com/retail/docs/filter-and-order#filter). If this field is unrecognizable, an INVALID_ARGUMENT is returned.", + "description": "The filter syntax consists of an expression language for constructing a predicate from one or more fields of the products being filtered. Filter expression is case-sensitive. For more information, see [Filter](https://cloud.google.com/retail/docs/filter-and-order#filter). If this field is unrecognizable, an INVALID_ARGUMENT is returned.", "type": "string" }, "labels": { "additionalProperties": { "type": "string" }, - "description": "The labels applied to a resource must meet the following requirements: * Each resource can have multiple labels, up to a maximum of 64. * Each label must be a key-value pair. * Keys have a minimum length of 1 character and a maximum length of 63 characters and cannot be empty. Values can be empty and have a maximum length of 63 characters. * Keys and values can contain only lowercase letters, numeric characters, underscores, and dashes. All characters must use UTF-8 encoding, and international characters are allowed. * The key portion of a label must be unique. However, you can use the same key with multiple resources. * Keys must start with a lowercase letter or international character. See [Google Cloud Document](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements) for more details.", + "description": "The labels applied to a resource must meet the following requirements: * Each resource can have multiple labels, up to a maximum of 64. * Each label must be a key-value pair. * Keys have a minimum length of 1 character and a maximum length of 63 characters and cannot be empty. Values can be empty and have a maximum length of 63 characters. * Keys and values can contain only lowercase letters, numeric characters, underscores, and dashes. All characters must use UTF-8 encoding, and international characters are allowed. * The key portion of a label must be unique. However, you can use the same key with multiple resources. * Keys must start with a lowercase letter or international character. For more information, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements) in the Resource Manager documentation.", "type": "object" }, "offset": { @@ -4304,7 +4340,7 @@ "type": "integer" }, "orderBy": { - "description": "The order in which products are returned. Products can be ordered by a field in an Product object. Leave it unset if ordered by relevance. OrderBy expression is case-sensitive. See more details at this [user guide](https://cloud.google.com/retail/docs/filter-and-order#order). If this field is unrecognizable, an INVALID_ARGUMENT is returned.", + "description": "The order in which products are returned. Products can be ordered by a field in an Product object. Leave it unset if ordered by relevance. OrderBy expression is case-sensitive. For more information, see [Order](https://cloud.google.com/retail/docs/filter-and-order#order). If this field is unrecognizable, an INVALID_ARGUMENT is returned.", "type": "string" }, "pageCategories": { @@ -4333,7 +4369,7 @@ }, "queryExpansionSpec": { "$ref": "GoogleCloudRetailV2SearchRequestQueryExpansionSpec", - "description": "The query expansion specification that specifies the conditions under which query expansion will occur. See more details at this [user guide](https://cloud.google.com/retail/docs/result-size#query_expansion)." + "description": "The query expansion specification that specifies the conditions under which query expansion occurs. For more information, see [Query expansion](https://cloud.google.com/retail/docs/result-size#query_expansion)." }, "searchMode": { "description": "The search mode of the search request. If not specified, a single search request triggers both product search and faceted search.", @@ -4431,7 +4467,7 @@ "id": "GoogleCloudRetailV2SearchRequestFacetSpec", "properties": { "enableDynamicPosition": { - "description": "Enables dynamic position for this facet. If set to true, the position of this facet among all facets in the response is determined by Google Retail Search. It will be ordered together with dynamic facets if dynamic facets is enabled. If set to false, the position of this facet in the response will be the same as in the request, and it will be ranked before the facets with dynamic position enable and all dynamic facets. For example, you may always want to have rating facet returned in the response, but it's not necessarily to always display the rating facet at the top. In that case, you can set enable_dynamic_position to true so that the position of rating facet in response will be determined by Google Retail Search. Another example, assuming you have the following facets in the request: * \"rating\", enable_dynamic_position = true * \"price\", enable_dynamic_position = false * \"brands\", enable_dynamic_position = false And also you have a dynamic facets enable, which will generate a facet 'gender'. Then the final order of the facets in the response can be (\"price\", \"brands\", \"rating\", \"gender\") or (\"price\", \"brands\", \"gender\", \"rating\") depends on how Google Retail Search orders \"gender\" and \"rating\" facets. However, notice that \"price\" and \"brands\" will always be ranked at 1st and 2nd position since their enable_dynamic_position are false.", + "description": "Enables dynamic position for this facet. If set to true, the position of this facet among all facets in the response is determined by Google Retail Search. It is ordered together with dynamic facets if dynamic facets is enabled. If set to false, the position of this facet in the response is the same as in the request, and it is ranked before the facets with dynamic position enable and all dynamic facets. For example, you may always want to have rating facet returned in the response, but it's not necessarily to always display the rating facet at the top. In that case, you can set enable_dynamic_position to true so that the position of rating facet in response is determined by Google Retail Search. Another example, assuming you have the following facets in the request: * \"rating\", enable_dynamic_position = true * \"price\", enable_dynamic_position = false * \"brands\", enable_dynamic_position = false And also you have a dynamic facets enable, which generates a facet \"gender\". Then, the final order of the facets in the response can be (\"price\", \"brands\", \"rating\", \"gender\") or (\"price\", \"brands\", \"gender\", \"rating\") depends on how Google Retail Search orders \"gender\" and \"rating\" facets. However, notice that \"price\" and \"brands\" are always ranked at first and second position because their enable_dynamic_position values are false.", "type": "boolean" }, "excludedFilterKeys": { @@ -4462,14 +4498,14 @@ "type": "boolean" }, "contains": { - "description": "Only get facet values that contains the given strings. For example, suppose \"categories\" has three values \"Women \u003e Shoe\", \"Women \u003e Dress\" and \"Men \u003e Shoe\". If set \"contains\" to \"Shoe\", the \"categories\" facet will give only \"Women \u003e Shoe\" and \"Men \u003e Shoe\". Only supported on textual fields. Maximum is 10.", + "description": "Only get facet values that contains the given strings. For example, suppose \"categories\" has three values \"Women \u003e Shoe\", \"Women \u003e Dress\" and \"Men \u003e Shoe\". If set \"contains\" to \"Shoe\", the \"categories\" facet gives only \"Women \u003e Shoe\" and \"Men \u003e Shoe\". Only supported on textual fields. Maximum is 10.", "items": { "type": "string" }, "type": "array" }, "intervals": { - "description": "Set only if values should be bucketized into intervals. Must be set for facets with numerical values. Must not be set for facet with text values. Maximum number of intervals is 40. For all numerical facet keys that appear in the list of products from the catalog, the percentiles 0, 10, 30, 50, 70, 90 and 100 are computed from their distribution weekly. If the model assigns a high score to a numerical facet key and its intervals are not specified in the search request, these percentiles will become the bounds for its intervals and will be returned in the response. If the facet key intervals are specified in the request, then the specified intervals will be returned instead.", + "description": "Set only if values should be bucketized into intervals. Must be set for facets with numerical values. Must not be set for facet with text values. Maximum number of intervals is 40. For all numerical facet keys that appear in the list of products from the catalog, the percentiles 0, 10, 30, 50, 70, 90, and 100 are computed from their distribution weekly. If the model assigns a high score to a numerical facet key and its intervals are not specified in the search request, these percentiles become the bounds for its intervals and are returned in the response. If the facet key intervals are specified in the request, then the specified intervals are returned instead.", "items": { "$ref": "GoogleCloudRetailV2Interval" }, @@ -4484,14 +4520,14 @@ "type": "string" }, "prefixes": { - "description": "Only get facet values that start with the given string prefix. For example, suppose \"categories\" has three values \"Women \u003e Shoe\", \"Women \u003e Dress\" and \"Men \u003e Shoe\". If set \"prefixes\" to \"Women\", the \"categories\" facet will give only \"Women \u003e Shoe\" and \"Women \u003e Dress\". Only supported on textual fields. Maximum is 10.", + "description": "Only get facet values that start with the given string prefix. For example, suppose \"categories\" has three values \"Women \u003e Shoe\", \"Women \u003e Dress\" and \"Men \u003e Shoe\". If set \"prefixes\" to \"Women\", the \"categories\" facet gives only \"Women \u003e Shoe\" and \"Women \u003e Dress\". Only supported on textual fields. Maximum is 10.", "items": { "type": "string" }, "type": "array" }, "query": { - "description": "The query that is used to compute facet for the given facet key. When provided, it will override the default behavior of facet computation. The query syntax is the same as a filter expression. See SearchRequest.filter for detail syntax and limitations. Notice that there is no limitation on FacetKey.key when query is specified. In the response, SearchResponse.Facet.values.value will be always \"1\" and SearchResponse.Facet.values.count will be the number of results that match the query. For example, you can set a customized facet for \"shipToStore\", where FacetKey.key is \"customizedShipToStore\", and FacetKey.query is \"availability: ANY(\\\"IN_STOCK\\\") AND shipToStore: ANY(\\\"123\\\")\". Then the facet will count the products that are both in stock and ship to store \"123\".", + "description": "The query that is used to compute facet for the given facet key. When provided, it overrides the default behavior of facet computation. The query syntax is the same as a filter expression. See SearchRequest.filter for detail syntax and limitations. Notice that there is no limitation on FacetKey.key when query is specified. In the response, SearchResponse.Facet.values.value is always \"1\" and SearchResponse.Facet.values.count is the number of results that match the query. For example, you can set a customized facet for \"shipToStore\", where FacetKey.key is \"customizedShipToStore\", and FacetKey.query is \"availability: ANY(\\\"IN_STOCK\\\") AND shipToStore: ANY(\\\"123\\\")\". Then the facet counts the products that are both in stock and ship to store \"123\".", "type": "string" }, "restrictedValues": { @@ -4988,7 +5024,7 @@ "description": "The main auto-completion details related to the event. This field should be set for `search` event when autocomplete function is enabled and the user clicks a suggestion for search." }, "entity": { - "description": "The entity for customers that may run multiple different entities, domains, sites or regions, for example, `Google US`, `Google Ads`, `Waymo`, `google.com`, `youtube.com`, etc. It is recommended to set this field to get better per-entity search, completion and prediction results.", + "description": "The entity for customers that may run multiple different entities, domains, sites or regions, for example, `Google US`, `Google Ads`, `Waymo`, `google.com`, `youtube.com`, etc. We recommend that you set this field to get better per-entity search, completion, and prediction results.", "type": "string" }, "eventTime": { @@ -5524,6 +5560,10 @@ "readOnly": true, "type": "string" }, + "modelFeaturesConfig": { + "$ref": "GoogleCloudRetailV2alphaModelModelFeaturesConfig", + "description": "Optional. Additional model features config." + }, "name": { "description": "Required. The fully qualified resource name of the model. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}` catalog_id has char limit of 50. recommendation_model_id has char limit of 40.", "type": "string" @@ -5609,6 +5649,38 @@ }, "type": "object" }, + "GoogleCloudRetailV2alphaModelFrequentlyBoughtTogetherFeaturesConfig": { + "description": "More configs of the frequently-bought-together model type.", + "id": "GoogleCloudRetailV2alphaModelFrequentlyBoughtTogetherFeaturesConfig", + "properties": { + "contextProductsType": { + "description": "Optional. Specifies the context of the model when used in predict requests. Only settable for the `frequently-bought-together` type. Will default to MULTI_CONTEXT if not specified.", + "enum": [ + "CONTEXT_PRODUCTS_TYPE_UNSPECIFIED", + "SINGLE_CONTEXT_PRODUCT", + "MULTIPLE_CONTEXT_PRODUCTS" + ], + "enumDescriptions": [ + "Unspecified default value, should never be explicitly set. Defaults to MULTIPLE_CONTEXT_PRODUCTS.", + "Use only a single product as context for the recommendation. Typically used on pages like add-to-cart or product details.", + "Use one or multiple products as context for the recommendation. Typically used on shopping cart pages." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaModelModelFeaturesConfig": { + "description": "Additional model features config.", + "id": "GoogleCloudRetailV2alphaModelModelFeaturesConfig", + "properties": { + "frequentlyBoughtTogetherConfig": { + "$ref": "GoogleCloudRetailV2alphaModelFrequentlyBoughtTogetherFeaturesConfig", + "description": "Additional configs for frequently-bought-together models." + } + }, + "type": "object" + }, "GoogleCloudRetailV2alphaModelPageOptimizationConfig": { "description": "The PageOptimizationConfig for model training. This determines how many panels to optimize for, and which serving configs to consider for each panel. The purpose of this model is to optimize which ServingConfig to show on which panels in way that optimizes the visitors shopping journey.", "id": "GoogleCloudRetailV2alphaModelPageOptimizationConfig", @@ -6260,6 +6332,10 @@ "readOnly": true, "type": "string" }, + "modelFeaturesConfig": { + "$ref": "GoogleCloudRetailV2betaModelModelFeaturesConfig", + "description": "Optional. Additional model features config." + }, "name": { "description": "Required. The fully qualified resource name of the model. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}` catalog_id has char limit of 50. recommendation_model_id has char limit of 40.", "type": "string" @@ -6341,6 +6417,38 @@ }, "type": "object" }, + "GoogleCloudRetailV2betaModelFrequentlyBoughtTogetherFeaturesConfig": { + "description": "More configs of the frequently-bought-together model type.", + "id": "GoogleCloudRetailV2betaModelFrequentlyBoughtTogetherFeaturesConfig", + "properties": { + "contextProductsType": { + "description": "Optional. Specifies the context of the model when used in predict requests. Only settable for the `frequently-bought-together` type. Will default to MULTI_CONTEXT if not specified.", + "enum": [ + "CONTEXT_PRODUCTS_TYPE_UNSPECIFIED", + "SINGLE_CONTEXT_PRODUCT", + "MULTIPLE_CONTEXT_PRODUCTS" + ], + "enumDescriptions": [ + "Unspecified default value, should never be explicitly set. Defaults to MULTIPLE_CONTEXT_PRODUCTS.", + "Use only a single product as context for the recommendation. Typically used on pages like add-to-cart or product details.", + "Use one or multiple products as context for the recommendation. Typically used on shopping cart pages." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2betaModelModelFeaturesConfig": { + "description": "Additional model features config.", + "id": "GoogleCloudRetailV2betaModelModelFeaturesConfig", + "properties": { + "frequentlyBoughtTogetherConfig": { + "$ref": "GoogleCloudRetailV2betaModelFrequentlyBoughtTogetherFeaturesConfig", + "description": "Additional configs for frequently-bought-together models." + } + }, + "type": "object" + }, "GoogleCloudRetailV2betaModelServingConfigList": { "description": "Represents an ordered combination of valid serving configs, which can be used for `PAGE_OPTIMIZATION` recommendations.", "id": "GoogleCloudRetailV2betaModelServingConfigList", diff --git a/retail/v2/retail-gen.go b/retail/v2/retail-gen.go index 5543227b651..aafaff6d6ec 100644 --- a/retail/v2/retail-gen.go +++ b/retail/v2/retail-gen.go @@ -1226,15 +1226,14 @@ type GoogleCloudRetailV2CompleteQueryResponse struct { // RecentSearchResults: Matched recent searches of this user. The // maximum number of recent searches is 10. This field is a restricted - // feature. Contact Retail Search support team if you are interested in - // enabling it. This feature is only available when - // CompleteQueryRequest.visitor_id field is set and UserEvent is - // imported. The recent searches satisfy the follow rules: * They are - // ordered from latest to oldest. * They are matched with - // CompleteQueryRequest.query case insensitively. * They are transformed - // to lower case. * They are UTF-8 safe. Recent searches are - // deduplicated. More recent searches will be reserved when duplication - // happens. + // feature. If you want to enable it, contact Retail Search support. + // This feature is only available when CompleteQueryRequest.visitor_id + // field is set and UserEvent is imported. The recent searches satisfy + // the follow rules: * They are ordered from latest to oldest. * They + // are matched with CompleteQueryRequest.query case insensitively. * + // They are transformed to lower case. * They are UTF-8 safe. Recent + // searches are deduplicated. More recent searches will be reserved when + // duplication happens. RecentSearchResults []*GoogleCloudRetailV2CompleteQueryResponseRecentSearchResult `json:"recentSearchResults,omitempty"` // ServerResponse contains the HTTP response code and headers from the @@ -1359,8 +1358,8 @@ type GoogleCloudRetailV2CompletionConfig struct { // LastSuggestionsImportOperation: Output only. Name of the LRO // corresponding to the latest suggestion terms list import. Can use - // GetOperation API to retrieve the latest state of the Long Running - // Operation. + // GetOperation API method to retrieve the latest state of the Long + // Running Operation. LastSuggestionsImportOperation string `json:"lastSuggestionsImportOperation,omitempty"` // MatchingOrder: Specifies the matching order for autocomplete @@ -1778,7 +1777,7 @@ func (s *GoogleCloudRetailV2CustomAttribute) MarshalJSON() ([]byte, error) { } // GoogleCloudRetailV2ExperimentInfo: Metadata for active A/B testing -// Experiments. +// Experiment. type GoogleCloudRetailV2ExperimentInfo struct { // Experiment: The fully qualified resource name of the experiment that // provides the serving config under test, should an active experiment @@ -2200,9 +2199,11 @@ type GoogleCloudRetailV2ImportProductsRequest struct { // notification is sent to specified Pub/Sub topic. The message data is // JSON string of a Operation. Format of the Pub/Sub topic is // `projects/{project}/topics/{topic}`. It has to be within the same - // project as ImportProductsRequest.parent. Make sure that - // `service-@gcp-sa-retail.iam.gserviceaccount.com` has the - // `pubsub.topics.publish` IAM permission on the topic. + // project as ImportProductsRequest.parent. Make sure that both + // `cloud-retail-customer-data-access@system.gserviceaccount.com` and + // `service-@gcp-sa-retail.iam.gserviceaccount.com` have the + // `pubsub.topics.publish` IAM permission on the topic. Only supported + // when ImportProductsRequest.reconciliation_mode is set to `FULL`. NotificationPubsubTopic string `json:"notificationPubsubTopic,omitempty"` // ReconciliationMode: The mode of reconciliation between existing @@ -2707,6 +2708,9 @@ type GoogleCloudRetailV2Model struct { // tune finished. LastTuneTime string `json:"lastTuneTime,omitempty"` + // ModelFeaturesConfig: Optional. Additional model features config. + ModelFeaturesConfig *GoogleCloudRetailV2ModelModelFeaturesConfig `json:"modelFeaturesConfig,omitempty"` + // Name: Required. The fully qualified resource name of the model. // Format: // `projects/{project_number}/locations/{location_id}/catalogs/{catalog_i @@ -2828,6 +2832,82 @@ func (s *GoogleCloudRetailV2Model) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// GoogleCloudRetailV2ModelFrequentlyBoughtTogetherFeaturesConfig: More +// configs of the frequently-bought-together model type. +type GoogleCloudRetailV2ModelFrequentlyBoughtTogetherFeaturesConfig struct { + // ContextProductsType: Optional. Specifies the context of the model + // when used in predict requests. Only settable for the + // `frequently-bought-together` type. Will default to MULTI_CONTEXT if + // not specified. + // + // Possible values: + // "CONTEXT_PRODUCTS_TYPE_UNSPECIFIED" - Unspecified default value, + // should never be explicitly set. Defaults to + // MULTIPLE_CONTEXT_PRODUCTS. + // "SINGLE_CONTEXT_PRODUCT" - Use only a single product as context for + // the recommendation. Typically used on pages like add-to-cart or + // product details. + // "MULTIPLE_CONTEXT_PRODUCTS" - Use one or multiple products as + // context for the recommendation. Typically used on shopping cart + // pages. + ContextProductsType string `json:"contextProductsType,omitempty"` + + // ForceSendFields is a list of field names (e.g. "ContextProductsType") + // to unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "ContextProductsType") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudRetailV2ModelFrequentlyBoughtTogetherFeaturesConfig) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudRetailV2ModelFrequentlyBoughtTogetherFeaturesConfig + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleCloudRetailV2ModelModelFeaturesConfig: Additional model +// features config. +type GoogleCloudRetailV2ModelModelFeaturesConfig struct { + // FrequentlyBoughtTogetherConfig: Additional configs for + // frequently-bought-together models. + FrequentlyBoughtTogetherConfig *GoogleCloudRetailV2ModelFrequentlyBoughtTogetherFeaturesConfig `json:"frequentlyBoughtTogetherConfig,omitempty"` + + // ForceSendFields is a list of field names (e.g. + // "FrequentlyBoughtTogetherConfig") to unconditionally include in API + // requests. By default, fields with empty or default values are omitted + // from API requests. However, any non-pointer, non-interface field + // appearing in ForceSendFields will be sent to the server regardless of + // whether the field is empty or not. This may be used to include empty + // fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. + // "FrequentlyBoughtTogetherConfig") to include in API requests with the + // JSON null value. By default, fields with empty values are omitted + // from API requests. However, any field with an empty value appearing + // in NullFields will be sent to the server as null. It is an error if a + // field in this list has a non-empty value. This may be used to include + // null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudRetailV2ModelModelFeaturesConfig) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudRetailV2ModelModelFeaturesConfig + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // GoogleCloudRetailV2ModelServingConfigList: Represents an ordered // combination of valid serving configs, which can be used for // `PAGE_OPTIMIZATION` recommendations. @@ -4444,11 +4524,11 @@ func (s *GoogleCloudRetailV2RuleDoNotAssociateAction) MarshalJSON() ([]byte, err type GoogleCloudRetailV2RuleFilterAction struct { // Filter: A filter to apply on the matching condition results. // Supported features: * filter must be set. * Filter syntax is - // identical to SearchRequest.filter. See more details at the Retail - // Search user guide (/retail/search/docs/filter-and-order#filter). * To - // filter products with product ID "product_1" or "product_2", and color - // "Red" or "Blue": *(id: ANY("product_1", "product_2")) * *AND * - // *(colorFamilies: ANY("Red", "Blue")) * + // identical to SearchRequest.filter. For more information, see Filter + // (/retail/docs/filter-and-order#filter). * To filter products with + // product ID "product_1" or "product_2", and color "Red" or "Blue": + // *(id: ANY("product_1", "product_2")) * *AND * *(colorFamilies: + // ANY("Red", "Blue")) * Filter string `json:"filter,omitempty"` // ForceSendFields is a list of field names (e.g. "Filter") to @@ -4648,8 +4728,8 @@ func (s *GoogleCloudRetailV2RuleTwowaySynonymsAction) MarshalJSON() ([]byte, err // GoogleCloudRetailV2SearchRequest: Request message for // SearchService.Search method. type GoogleCloudRetailV2SearchRequest struct { - // BoostSpec: Boost specification to boost certain products. See more - // details at this user guide + // BoostSpec: Boost specification to boost certain products. For more + // information, see Boost results // (https://cloud.google.com/retail/docs/boosting). Notice that if both // ServingConfig.boost_control_ids and SearchRequest.boost_spec are set, // the boost conditions from both places are evaluated. If a search @@ -4669,10 +4749,10 @@ type GoogleCloudRetailV2SearchRequest struct { // The filter applied to every search request when quality improvement // such as query expansion is needed. For example, if a query does not // have enough results, an expanded query with - // SearchRequest.canonical_filter will be returned as a supplement of - // the original query. This field is strongly recommended to achieve - // high search quality. See SearchRequest.filter for more details about - // filter syntax. + // SearchRequest.canonical_filter is returned as a supplement of the + // original query. This field is strongly recommended to achieve high + // search quality. For more information about filter syntax, see + // SearchRequest.filter. CanonicalFilter string `json:"canonicalFilter,omitempty"` // DynamicFacetSpec: Deprecated. Refer to @@ -4696,8 +4776,8 @@ type GoogleCloudRetailV2SearchRequest struct { // Filter: The filter syntax consists of an expression language for // constructing a predicate from one or more fields of the products - // being filtered. Filter expression is case-sensitive. See more details - // at this user guide + // being filtered. Filter expression is case-sensitive. For more + // information, see Filter // (https://cloud.google.com/retail/docs/filter-and-order#filter). If // this field is unrecognizable, an INVALID_ARGUMENT is returned. Filter string `json:"filter,omitempty"` @@ -4712,9 +4792,10 @@ type GoogleCloudRetailV2SearchRequest struct { // UTF-8 encoding, and international characters are allowed. * The key // portion of a label must be unique. However, you can use the same key // with multiple resources. * Keys must start with a lowercase letter or - // international character. See Google Cloud Document + // international character. For more information, see Requirements for + // labels // (https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements) - // for more details. + // in the Resource Manager documentation. Labels map[string]string `json:"labels,omitempty"` // Offset: A 0-indexed integer that specifies the current offset (that @@ -4726,8 +4807,8 @@ type GoogleCloudRetailV2SearchRequest struct { // OrderBy: The order in which products are returned. Products can be // ordered by a field in an Product object. Leave it unset if ordered by - // relevance. OrderBy expression is case-sensitive. See more details at - // this user guide + // relevance. OrderBy expression is case-sensitive. For more + // information, see Order // (https://cloud.google.com/retail/docs/filter-and-order#order). If // this field is unrecognizable, an INVALID_ARGUMENT is returned. OrderBy string `json:"orderBy,omitempty"` @@ -4769,8 +4850,8 @@ type GoogleCloudRetailV2SearchRequest struct { Query string `json:"query,omitempty"` // QueryExpansionSpec: The query expansion specification that specifies - // the conditions under which query expansion will occur. See more - // details at this user guide + // the conditions under which query expansion occurs. For more + // information, see Query expansion // (https://cloud.google.com/retail/docs/result-size#query_expansion). QueryExpansionSpec *GoogleCloudRetailV2SearchRequestQueryExpansionSpec `json:"queryExpansionSpec,omitempty"` @@ -5009,25 +5090,25 @@ func (s *GoogleCloudRetailV2SearchRequestDynamicFacetSpec) MarshalJSON() ([]byte type GoogleCloudRetailV2SearchRequestFacetSpec struct { // EnableDynamicPosition: Enables dynamic position for this facet. If // set to true, the position of this facet among all facets in the - // response is determined by Google Retail Search. It will be ordered + // response is determined by Google Retail Search. It is ordered // together with dynamic facets if dynamic facets is enabled. If set to - // false, the position of this facet in the response will be the same as - // in the request, and it will be ranked before the facets with dynamic - // position enable and all dynamic facets. For example, you may always - // want to have rating facet returned in the response, but it's not - // necessarily to always display the rating facet at the top. In that - // case, you can set enable_dynamic_position to true so that the - // position of rating facet in response will be determined by Google - // Retail Search. Another example, assuming you have the following - // facets in the request: * "rating", enable_dynamic_position = true * - // "price", enable_dynamic_position = false * "brands", - // enable_dynamic_position = false And also you have a dynamic facets - // enable, which will generate a facet 'gender'. Then the final order of - // the facets in the response can be ("price", "brands", "rating", - // "gender") or ("price", "brands", "gender", "rating") depends on how - // Google Retail Search orders "gender" and "rating" facets. However, - // notice that "price" and "brands" will always be ranked at 1st and 2nd - // position since their enable_dynamic_position are false. + // false, the position of this facet in the response is the same as in + // the request, and it is ranked before the facets with dynamic position + // enable and all dynamic facets. For example, you may always want to + // have rating facet returned in the response, but it's not necessarily + // to always display the rating facet at the top. In that case, you can + // set enable_dynamic_position to true so that the position of rating + // facet in response is determined by Google Retail Search. Another + // example, assuming you have the following facets in the request: * + // "rating", enable_dynamic_position = true * "price", + // enable_dynamic_position = false * "brands", enable_dynamic_position = + // false And also you have a dynamic facets enable, which generates a + // facet "gender". Then, the final order of the facets in the response + // can be ("price", "brands", "rating", "gender") or ("price", "brands", + // "gender", "rating") depends on how Google Retail Search orders + // "gender" and "rating" facets. However, notice that "price" and + // "brands" are always ranked at first and second position because their + // enable_dynamic_position values are false. EnableDynamicPosition bool `json:"enableDynamicPosition,omitempty"` // ExcludedFilterKeys: List of keys to exclude when faceting. By @@ -5095,21 +5176,21 @@ type GoogleCloudRetailV2SearchRequestFacetSpecFacetKey struct { // Contains: Only get facet values that contains the given strings. For // example, suppose "categories" has three values "Women > Shoe", "Women // > Dress" and "Men > Shoe". If set "contains" to "Shoe", the - // "categories" facet will give only "Women > Shoe" and "Men > Shoe". - // Only supported on textual fields. Maximum is 10. + // "categories" facet gives only "Women > Shoe" and "Men > Shoe". Only + // supported on textual fields. Maximum is 10. Contains []string `json:"contains,omitempty"` // Intervals: Set only if values should be bucketized into intervals. // Must be set for facets with numerical values. Must not be set for // facet with text values. Maximum number of intervals is 40. For all // numerical facet keys that appear in the list of products from the - // catalog, the percentiles 0, 10, 30, 50, 70, 90 and 100 are computed + // catalog, the percentiles 0, 10, 30, 50, 70, 90, and 100 are computed // from their distribution weekly. If the model assigns a high score to // a numerical facet key and its intervals are not specified in the - // search request, these percentiles will become the bounds for its - // intervals and will be returned in the response. If the facet key - // intervals are specified in the request, then the specified intervals - // will be returned instead. + // search request, these percentiles become the bounds for its intervals + // and are returned in the response. If the facet key intervals are + // specified in the request, then the specified intervals are returned + // instead. Intervals []*GoogleCloudRetailV2Interval `json:"intervals,omitempty"` // Key: Required. Supported textual and numerical facet keys in Product @@ -5141,22 +5222,22 @@ type GoogleCloudRetailV2SearchRequestFacetSpecFacetKey struct { // Prefixes: Only get facet values that start with the given string // prefix. For example, suppose "categories" has three values "Women > // Shoe", "Women > Dress" and "Men > Shoe". If set "prefixes" to - // "Women", the "categories" facet will give only "Women > Shoe" and - // "Women > Dress". Only supported on textual fields. Maximum is 10. + // "Women", the "categories" facet gives only "Women > Shoe" and "Women + // > Dress". Only supported on textual fields. Maximum is 10. Prefixes []string `json:"prefixes,omitempty"` // Query: The query that is used to compute facet for the given facet - // key. When provided, it will override the default behavior of facet + // key. When provided, it overrides the default behavior of facet // computation. The query syntax is the same as a filter expression. See // SearchRequest.filter for detail syntax and limitations. Notice that // there is no limitation on FacetKey.key when query is specified. In - // the response, SearchResponse.Facet.values.value will be always "1" - // and SearchResponse.Facet.values.count will be the number of results - // that match the query. For example, you can set a customized facet for + // the response, SearchResponse.Facet.values.value is always "1" and + // SearchResponse.Facet.values.count is the number of results that match + // the query. For example, you can set a customized facet for // "shipToStore", where FacetKey.key is "customizedShipToStore", and // FacetKey.query is "availability: ANY(\"IN_STOCK\") AND shipToStore: - // ANY(\"123\")". Then the facet will count the products that are both - // in stock and ship to store "123". + // ANY(\"123\")". Then the facet counts the products that are both in + // stock and ship to store "123". Query string `json:"query,omitempty"` // RestrictedValues: Only get facet for the given restricted values. For @@ -6015,9 +6096,9 @@ type GoogleCloudRetailV2UserEvent struct { // Entity: The entity for customers that may run multiple different // entities, domains, sites or regions, for example, `Google US`, - // `Google Ads`, `Waymo`, `google.com`, `youtube.com`, etc. It is - // recommended to set this field to get better per-entity search, - // completion and prediction results. + // `Google Ads`, `Waymo`, `google.com`, `youtube.com`, etc. We recommend + // that you set this field to get better per-entity search, completion, + // and prediction results. Entity string `json:"entity,omitempty"` // EventTime: Only required for UserEventService.ImportUserEvents @@ -6999,6 +7080,9 @@ type GoogleCloudRetailV2alphaModel struct { // tune finished. LastTuneTime string `json:"lastTuneTime,omitempty"` + // ModelFeaturesConfig: Optional. Additional model features config. + ModelFeaturesConfig *GoogleCloudRetailV2alphaModelModelFeaturesConfig `json:"modelFeaturesConfig,omitempty"` + // Name: Required. The fully qualified resource name of the model. // Format: // `projects/{project_number}/locations/{location_id}/catalogs/{catalog_i @@ -7119,6 +7203,82 @@ func (s *GoogleCloudRetailV2alphaModel) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// GoogleCloudRetailV2alphaModelFrequentlyBoughtTogetherFeaturesConfig: +// More configs of the frequently-bought-together model type. +type GoogleCloudRetailV2alphaModelFrequentlyBoughtTogetherFeaturesConfig struct { + // ContextProductsType: Optional. Specifies the context of the model + // when used in predict requests. Only settable for the + // `frequently-bought-together` type. Will default to MULTI_CONTEXT if + // not specified. + // + // Possible values: + // "CONTEXT_PRODUCTS_TYPE_UNSPECIFIED" - Unspecified default value, + // should never be explicitly set. Defaults to + // MULTIPLE_CONTEXT_PRODUCTS. + // "SINGLE_CONTEXT_PRODUCT" - Use only a single product as context for + // the recommendation. Typically used on pages like add-to-cart or + // product details. + // "MULTIPLE_CONTEXT_PRODUCTS" - Use one or multiple products as + // context for the recommendation. Typically used on shopping cart + // pages. + ContextProductsType string `json:"contextProductsType,omitempty"` + + // ForceSendFields is a list of field names (e.g. "ContextProductsType") + // to unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "ContextProductsType") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudRetailV2alphaModelFrequentlyBoughtTogetherFeaturesConfig) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudRetailV2alphaModelFrequentlyBoughtTogetherFeaturesConfig + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleCloudRetailV2alphaModelModelFeaturesConfig: Additional model +// features config. +type GoogleCloudRetailV2alphaModelModelFeaturesConfig struct { + // FrequentlyBoughtTogetherConfig: Additional configs for + // frequently-bought-together models. + FrequentlyBoughtTogetherConfig *GoogleCloudRetailV2alphaModelFrequentlyBoughtTogetherFeaturesConfig `json:"frequentlyBoughtTogetherConfig,omitempty"` + + // ForceSendFields is a list of field names (e.g. + // "FrequentlyBoughtTogetherConfig") to unconditionally include in API + // requests. By default, fields with empty or default values are omitted + // from API requests. However, any non-pointer, non-interface field + // appearing in ForceSendFields will be sent to the server regardless of + // whether the field is empty or not. This may be used to include empty + // fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. + // "FrequentlyBoughtTogetherConfig") to include in API requests with the + // JSON null value. By default, fields with empty values are omitted + // from API requests. However, any field with an empty value appearing + // in NullFields will be sent to the server as null. It is an error if a + // field in this list has a non-empty value. This may be used to include + // null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudRetailV2alphaModelModelFeaturesConfig) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudRetailV2alphaModelModelFeaturesConfig + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // GoogleCloudRetailV2alphaModelPageOptimizationConfig: The // PageOptimizationConfig for model training. This determines how many // panels to optimize for, and which serving configs to consider for @@ -8325,6 +8485,9 @@ type GoogleCloudRetailV2betaModel struct { // tune finished. LastTuneTime string `json:"lastTuneTime,omitempty"` + // ModelFeaturesConfig: Optional. Additional model features config. + ModelFeaturesConfig *GoogleCloudRetailV2betaModelModelFeaturesConfig `json:"modelFeaturesConfig,omitempty"` + // Name: Required. The fully qualified resource name of the model. // Format: // `projects/{project_number}/locations/{location_id}/catalogs/{catalog_i @@ -8442,6 +8605,82 @@ func (s *GoogleCloudRetailV2betaModel) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// GoogleCloudRetailV2betaModelFrequentlyBoughtTogetherFeaturesConfig: +// More configs of the frequently-bought-together model type. +type GoogleCloudRetailV2betaModelFrequentlyBoughtTogetherFeaturesConfig struct { + // ContextProductsType: Optional. Specifies the context of the model + // when used in predict requests. Only settable for the + // `frequently-bought-together` type. Will default to MULTI_CONTEXT if + // not specified. + // + // Possible values: + // "CONTEXT_PRODUCTS_TYPE_UNSPECIFIED" - Unspecified default value, + // should never be explicitly set. Defaults to + // MULTIPLE_CONTEXT_PRODUCTS. + // "SINGLE_CONTEXT_PRODUCT" - Use only a single product as context for + // the recommendation. Typically used on pages like add-to-cart or + // product details. + // "MULTIPLE_CONTEXT_PRODUCTS" - Use one or multiple products as + // context for the recommendation. Typically used on shopping cart + // pages. + ContextProductsType string `json:"contextProductsType,omitempty"` + + // ForceSendFields is a list of field names (e.g. "ContextProductsType") + // to unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "ContextProductsType") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudRetailV2betaModelFrequentlyBoughtTogetherFeaturesConfig) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudRetailV2betaModelFrequentlyBoughtTogetherFeaturesConfig + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleCloudRetailV2betaModelModelFeaturesConfig: Additional model +// features config. +type GoogleCloudRetailV2betaModelModelFeaturesConfig struct { + // FrequentlyBoughtTogetherConfig: Additional configs for + // frequently-bought-together models. + FrequentlyBoughtTogetherConfig *GoogleCloudRetailV2betaModelFrequentlyBoughtTogetherFeaturesConfig `json:"frequentlyBoughtTogetherConfig,omitempty"` + + // ForceSendFields is a list of field names (e.g. + // "FrequentlyBoughtTogetherConfig") to unconditionally include in API + // requests. By default, fields with empty or default values are omitted + // from API requests. However, any non-pointer, non-interface field + // appearing in ForceSendFields will be sent to the server regardless of + // whether the field is empty or not. This may be used to include empty + // fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. + // "FrequentlyBoughtTogetherConfig") to include in API requests with the + // JSON null value. By default, fields with empty values are omitted + // from API requests. However, any field with an empty value appearing + // in NullFields will be sent to the server as null. It is an error if a + // field in this list has a non-empty value. This may be used to include + // null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudRetailV2betaModelModelFeaturesConfig) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudRetailV2betaModelModelFeaturesConfig + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // GoogleCloudRetailV2betaModelServingConfigList: Represents an ordered // combination of valid serving configs, which can be used for // `PAGE_OPTIMIZATION` recommendations. @@ -8950,10 +9189,10 @@ func (c *ProjectsLocationsCatalogsCompleteQueryCall) DeviceType(deviceType strin } // Entity sets the optional parameter "entity": The entity for customers -// that may run multiple different entities, domains, sites or regions, -// for example, `Google US`, `Google Ads`, `Waymo`, `google.com`, -// `youtube.com`, etc. If this is set, it should be exactly matched with -// UserEvent.entity to get per-entity autocomplete results. +// who run multiple entities, domains, sites, or regions, for example, +// `Google US`, `Google Ads`, `Waymo`, `google.com`, `youtube.com`, etc. +// If this is set, it must be an exact match with UserEvent.entity to +// get per-entity autocomplete results. func (c *ProjectsLocationsCatalogsCompleteQueryCall) Entity(entity string) *ProjectsLocationsCatalogsCompleteQueryCall { c.urlParams_.Set("entity", entity) return c @@ -9131,7 +9370,7 @@ func (c *ProjectsLocationsCatalogsCompleteQueryCall) Do(opts ...googleapi.CallOp // "type": "string" // }, // "entity": { - // "description": "The entity for customers that may run multiple different entities, domains, sites or regions, for example, `Google US`, `Google Ads`, `Waymo`, `google.com`, `youtube.com`, etc. If this is set, it should be exactly matched with UserEvent.entity to get per-entity autocomplete results.", + // "description": "The entity for customers who run multiple entities, domains, sites, or regions, for example, `Google US`, `Google Ads`, `Waymo`, `google.com`, `youtube.com`, etc. If this is set, it must be an exact match with UserEvent.entity to get per-entity autocomplete results.", // "location": "query", // "type": "string" // }, @@ -11068,9 +11307,9 @@ type ProjectsLocationsCatalogsBranchesProductsAddFulfillmentPlacesCall struct { header_ http.Header } -// AddFulfillmentPlaces: It is recommended to use the -// ProductService.AddLocalInventories method instead of -// ProductService.AddFulfillmentPlaces. +// AddFulfillmentPlaces: We recommend that you use the +// ProductService.AddLocalInventories method instead of the +// ProductService.AddFulfillmentPlaces method. // ProductService.AddLocalInventories achieves the same results but // provides more fine-grained control over ingesting local inventory // data. Incrementally adds place IDs to @@ -11188,7 +11427,7 @@ func (c *ProjectsLocationsCatalogsBranchesProductsAddFulfillmentPlacesCall) Do(o } return ret, nil // { - // "description": "It is recommended to use the ProductService.AddLocalInventories method instead of ProductService.AddFulfillmentPlaces. ProductService.AddLocalInventories achieves the same results but provides more fine-grained control over ingesting local inventory data. Incrementally adds place IDs to Product.fulfillment_info.place_ids. This process is asynchronous and does not require the Product to exist before updating fulfillment information. If the request is valid, the update will be enqueued and processed downstream. As a consequence, when a response is returned, the added place IDs are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. The returned Operations will be obsolete after 1 day, and GetOperation API will return NOT_FOUND afterwards. If conflicting updates are issued, the Operations associated with the stale updates will not be marked as done until being obsolete.", + // "description": "We recommend that you use the ProductService.AddLocalInventories method instead of the ProductService.AddFulfillmentPlaces method. ProductService.AddLocalInventories achieves the same results but provides more fine-grained control over ingesting local inventory data. Incrementally adds place IDs to Product.fulfillment_info.place_ids. This process is asynchronous and does not require the Product to exist before updating fulfillment information. If the request is valid, the update will be enqueued and processed downstream. As a consequence, when a response is returned, the added place IDs are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. The returned Operations will be obsolete after 1 day, and GetOperation API will return NOT_FOUND afterwards. If conflicting updates are issued, the Operations associated with the stale updates will not be marked as done until being obsolete.", // "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:addFulfillmentPlaces", // "httpMethod": "POST", // "id": "retail.projects.locations.catalogs.branches.products.addFulfillmentPlaces", @@ -12412,9 +12651,9 @@ type ProjectsLocationsCatalogsBranchesProductsRemoveFulfillmentPlacesCall struct header_ http.Header } -// RemoveFulfillmentPlaces: It is recommended to use the -// ProductService.RemoveLocalInventories method instead of -// ProductService.RemoveFulfillmentPlaces. +// RemoveFulfillmentPlaces: We recommend that you use the +// ProductService.RemoveLocalInventories method instead of the +// ProductService.RemoveFulfillmentPlaces method. // ProductService.RemoveLocalInventories achieves the same results but // provides more fine-grained control over ingesting local inventory // data. Incrementally removes place IDs from a @@ -12532,7 +12771,7 @@ func (c *ProjectsLocationsCatalogsBranchesProductsRemoveFulfillmentPlacesCall) D } return ret, nil // { - // "description": "It is recommended to use the ProductService.RemoveLocalInventories method instead of ProductService.RemoveFulfillmentPlaces. ProductService.RemoveLocalInventories achieves the same results but provides more fine-grained control over ingesting local inventory data. Incrementally removes place IDs from a Product.fulfillment_info.place_ids. This process is asynchronous and does not require the Product to exist before updating fulfillment information. If the request is valid, the update will be enqueued and processed downstream. As a consequence, when a response is returned, the removed place IDs are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. The returned Operations will be obsolete after 1 day, and GetOperation API will return NOT_FOUND afterwards. If conflicting updates are issued, the Operations associated with the stale updates will not be marked as done until being obsolete.", + // "description": "We recommend that you use the ProductService.RemoveLocalInventories method instead of the ProductService.RemoveFulfillmentPlaces method. ProductService.RemoveLocalInventories achieves the same results but provides more fine-grained control over ingesting local inventory data. Incrementally removes place IDs from a Product.fulfillment_info.place_ids. This process is asynchronous and does not require the Product to exist before updating fulfillment information. If the request is valid, the update will be enqueued and processed downstream. As a consequence, when a response is returned, the removed place IDs are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. The returned Operations will be obsolete after 1 day, and GetOperation API will return NOT_FOUND afterwards. If conflicting updates are issued, the Operations associated with the stale updates will not be marked as done until being obsolete.", // "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:removeFulfillmentPlaces", // "httpMethod": "POST", // "id": "retail.projects.locations.catalogs.branches.products.removeFulfillmentPlaces", @@ -15609,7 +15848,7 @@ type ProjectsLocationsCatalogsPlacementsSearchCall struct { // resource, such as // `projects/*/locations/global/catalogs/default_catalog/placements/def // ault_search`. This field is used to identify the serving config -// name and the set of models that will be used to make the search. +// name and the set of models that are used to make the search. func (r *ProjectsLocationsCatalogsPlacementsService) Search(placement string, googlecloudretailv2searchrequest *GoogleCloudRetailV2SearchRequest) *ProjectsLocationsCatalogsPlacementsSearchCall { c := &ProjectsLocationsCatalogsPlacementsSearchCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.placement = placement @@ -15718,7 +15957,7 @@ func (c *ProjectsLocationsCatalogsPlacementsSearchCall) Do(opts ...googleapi.Cal // ], // "parameters": { // "placement": { - // "description": "Required. The resource name of the Retail Search serving config, such as `projects/*/locations/global/catalogs/default_catalog/servingConfigs/default_serving_config` or the name of the legacy placement resource, such as `projects/*/locations/global/catalogs/default_catalog/placements/default_search`. This field is used to identify the serving config name and the set of models that will be used to make the search.", + // "description": "Required. The resource name of the Retail Search serving config, such as `projects/*/locations/global/catalogs/default_catalog/servingConfigs/default_serving_config` or the name of the legacy placement resource, such as `projects/*/locations/global/catalogs/default_catalog/placements/default_search`. This field is used to identify the serving config name and the set of models that are used to make the search.", // "location": "path", // "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/placements/[^/]+$", // "required": true, @@ -17032,7 +17271,7 @@ type ProjectsLocationsCatalogsServingConfigsSearchCall struct { // resource, such as // `projects/*/locations/global/catalogs/default_catalog/placements/def // ault_search`. This field is used to identify the serving config -// name and the set of models that will be used to make the search. +// name and the set of models that are used to make the search. func (r *ProjectsLocationsCatalogsServingConfigsService) Search(placement string, googlecloudretailv2searchrequest *GoogleCloudRetailV2SearchRequest) *ProjectsLocationsCatalogsServingConfigsSearchCall { c := &ProjectsLocationsCatalogsServingConfigsSearchCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.placement = placement @@ -17141,7 +17380,7 @@ func (c *ProjectsLocationsCatalogsServingConfigsSearchCall) Do(opts ...googleapi // ], // "parameters": { // "placement": { - // "description": "Required. The resource name of the Retail Search serving config, such as `projects/*/locations/global/catalogs/default_catalog/servingConfigs/default_serving_config` or the name of the legacy placement resource, such as `projects/*/locations/global/catalogs/default_catalog/placements/default_search`. This field is used to identify the serving config name and the set of models that will be used to make the search.", + // "description": "Required. The resource name of the Retail Search serving config, such as `projects/*/locations/global/catalogs/default_catalog/servingConfigs/default_serving_config` or the name of the legacy placement resource, such as `projects/*/locations/global/catalogs/default_catalog/placements/default_search`. This field is used to identify the serving config name and the set of models that are used to make the search.", // "location": "path", // "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/servingConfigs/[^/]+$", // "required": true, diff --git a/retail/v2alpha/retail-api.json b/retail/v2alpha/retail-api.json index f9898637e87..e59366ef6b6 100644 --- a/retail/v2alpha/retail-api.json +++ b/retail/v2alpha/retail-api.json @@ -143,7 +143,7 @@ "type": "boolean" }, "entity": { - "description": "The entity for customers that may run multiple different entities, domains, sites or regions, for example, `Google US`, `Google Ads`, `Waymo`, `google.com`, `youtube.com`, etc. If this is set, it should be exactly matched with UserEvent.entity to get per-entity autocomplete results.", + "description": "The entity for customers who run multiple entities, domains, sites, or regions, for example, `Google US`, `Google Ads`, `Waymo`, `google.com`, `youtube.com`, etc. If this is set, it must be an exact match with UserEvent.entity to get per-entity autocomplete results.", "location": "query", "type": "string" }, @@ -604,7 +604,7 @@ "products": { "methods": { "addFulfillmentPlaces": { - "description": "It is recommended to use the ProductService.AddLocalInventories method instead of ProductService.AddFulfillmentPlaces. ProductService.AddLocalInventories achieves the same results but provides more fine-grained control over ingesting local inventory data. Incrementally adds place IDs to Product.fulfillment_info.place_ids. This process is asynchronous and does not require the Product to exist before updating fulfillment information. If the request is valid, the update will be enqueued and processed downstream. As a consequence, when a response is returned, the added place IDs are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. The returned Operations will be obsolete after 1 day, and GetOperation API will return NOT_FOUND afterwards. If conflicting updates are issued, the Operations associated with the stale updates will not be marked as done until being obsolete.", + "description": "We recommend that you use the ProductService.AddLocalInventories method instead of the ProductService.AddFulfillmentPlaces method. ProductService.AddLocalInventories achieves the same results but provides more fine-grained control over ingesting local inventory data. Incrementally adds place IDs to Product.fulfillment_info.place_ids. This process is asynchronous and does not require the Product to exist before updating fulfillment information. If the request is valid, the update will be enqueued and processed downstream. As a consequence, when a response is returned, the added place IDs are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. The returned Operations will be obsolete after 1 day, and GetOperation API will return NOT_FOUND afterwards. If conflicting updates are issued, the Operations associated with the stale updates will not be marked as done until being obsolete.", "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:addFulfillmentPlaces", "httpMethod": "POST", "id": "retail.projects.locations.catalogs.branches.products.addFulfillmentPlaces", @@ -895,7 +895,7 @@ ] }, "removeFulfillmentPlaces": { - "description": "It is recommended to use the ProductService.RemoveLocalInventories method instead of ProductService.RemoveFulfillmentPlaces. ProductService.RemoveLocalInventories achieves the same results but provides more fine-grained control over ingesting local inventory data. Incrementally removes place IDs from a Product.fulfillment_info.place_ids. This process is asynchronous and does not require the Product to exist before updating fulfillment information. If the request is valid, the update will be enqueued and processed downstream. As a consequence, when a response is returned, the removed place IDs are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. The returned Operations will be obsolete after 1 day, and GetOperation API will return NOT_FOUND afterwards. If conflicting updates are issued, the Operations associated with the stale updates will not be marked as done until being obsolete.", + "description": "We recommend that you use the ProductService.RemoveLocalInventories method instead of the ProductService.RemoveFulfillmentPlaces method. ProductService.RemoveLocalInventories achieves the same results but provides more fine-grained control over ingesting local inventory data. Incrementally removes place IDs from a Product.fulfillment_info.place_ids. This process is asynchronous and does not require the Product to exist before updating fulfillment information. If the request is valid, the update will be enqueued and processed downstream. As a consequence, when a response is returned, the removed place IDs are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. The returned Operations will be obsolete after 1 day, and GetOperation API will return NOT_FOUND afterwards. If conflicting updates are issued, the Operations associated with the stale updates will not be marked as done until being obsolete.", "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:removeFulfillmentPlaces", "httpMethod": "POST", "id": "retail.projects.locations.catalogs.branches.products.removeFulfillmentPlaces", @@ -1178,29 +1178,24 @@ }, "merchantCenterAccountLinks": { "methods": { - "createMerchantCenterAccountLink": { - "description": "Creates a MerchantCenterAccountLink. MerchantCenterAccountLink cannot be set to a different oneof field, if so an INVALID_ARGUMENT is returned.", - "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/merchantCenterAccountLinks/{merchantCenterAccountLinksId}", + "create": { + "description": "Creates a MerchantCenterAccountLink.", + "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/merchantCenterAccountLinks", "httpMethod": "POST", - "id": "retail.projects.locations.catalogs.merchantCenterAccountLinks.createMerchantCenterAccountLink", + "id": "retail.projects.locations.catalogs.merchantCenterAccountLinks.create", "parameterOrder": [ - "name" + "parent" ], "parameters": { - "name": { - "description": "Output only. Immutable. Full resource name of the Merchant Center Account Link, such as `projects/*/locations/global/catalogs/default_catalog/merchantCenterAccountLinks/merchant_center_account_link`.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/merchantCenterAccountLinks/[^/]+$", - "required": true, - "type": "string" - }, "parent": { "description": "Required. The branch resource where this MerchantCenterAccountLink will be created. Format: projects/{PROJECT_NUMBER}/locations/global/catalogs/{CATALOG_ID}}", - "location": "query", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", + "required": true, "type": "string" } }, - "path": "v2alpha/{+name}", + "path": "v2alpha/{+parent}/merchantCenterAccountLinks", "request": { "$ref": "GoogleCloudRetailV2alphaMerchantCenterAccountLink" }, @@ -1614,7 +1609,7 @@ ], "parameters": { "placement": { - "description": "Required. The resource name of the Retail Search serving config, such as `projects/*/locations/global/catalogs/default_catalog/servingConfigs/default_serving_config` or the name of the legacy placement resource, such as `projects/*/locations/global/catalogs/default_catalog/placements/default_search`. This field is used to identify the serving config name and the set of models that will be used to make the search.", + "description": "Required. The resource name of the Retail Search serving config, such as `projects/*/locations/global/catalogs/default_catalog/servingConfigs/default_serving_config` or the name of the legacy placement resource, such as `projects/*/locations/global/catalogs/default_catalog/placements/default_search`. This field is used to identify the serving config name and the set of models that are used to make the search.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/placements/[^/]+$", "required": true, @@ -1883,7 +1878,7 @@ ], "parameters": { "placement": { - "description": "Required. The resource name of the Retail Search serving config, such as `projects/*/locations/global/catalogs/default_catalog/servingConfigs/default_serving_config` or the name of the legacy placement resource, such as `projects/*/locations/global/catalogs/default_catalog/placements/default_search`. This field is used to identify the serving config name and the set of models that will be used to make the search.", + "description": "Required. The resource name of the Retail Search serving config, such as `projects/*/locations/global/catalogs/default_catalog/servingConfigs/default_serving_config` or the name of the legacy placement resource, such as `projects/*/locations/global/catalogs/default_catalog/placements/default_search`. This field is used to identify the serving config name and the set of models that are used to make the search.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/servingConfigs/[^/]+$", "required": true, @@ -2222,7 +2217,7 @@ } } }, - "revision": "20230413", + "revision": "20230420", "rootUrl": "https://retail.googleapis.com/", "schemas": { "GoogleApiHttpBody": { @@ -2559,6 +2554,10 @@ "readOnly": true, "type": "string" }, + "modelFeaturesConfig": { + "$ref": "GoogleCloudRetailV2ModelModelFeaturesConfig", + "description": "Optional. Additional model features config." + }, "name": { "description": "Required. The fully qualified resource name of the model. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}` catalog_id has char limit of 50. recommendation_model_id has char limit of 40.", "type": "string" @@ -2640,6 +2639,38 @@ }, "type": "object" }, + "GoogleCloudRetailV2ModelFrequentlyBoughtTogetherFeaturesConfig": { + "description": "More configs of the frequently-bought-together model type.", + "id": "GoogleCloudRetailV2ModelFrequentlyBoughtTogetherFeaturesConfig", + "properties": { + "contextProductsType": { + "description": "Optional. Specifies the context of the model when used in predict requests. Only settable for the `frequently-bought-together` type. Will default to MULTI_CONTEXT if not specified.", + "enum": [ + "CONTEXT_PRODUCTS_TYPE_UNSPECIFIED", + "SINGLE_CONTEXT_PRODUCT", + "MULTIPLE_CONTEXT_PRODUCTS" + ], + "enumDescriptions": [ + "Unspecified default value, should never be explicitly set. Defaults to MULTIPLE_CONTEXT_PRODUCTS.", + "Use only a single product as context for the recommendation. Typically used on pages like add-to-cart or product details.", + "Use one or multiple products as context for the recommendation. Typically used on shopping cart pages." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2ModelModelFeaturesConfig": { + "description": "Additional model features config.", + "id": "GoogleCloudRetailV2ModelModelFeaturesConfig", + "properties": { + "frequentlyBoughtTogetherConfig": { + "$ref": "GoogleCloudRetailV2ModelFrequentlyBoughtTogetherFeaturesConfig", + "description": "Additional configs for frequently-bought-together models." + } + }, + "type": "object" + }, "GoogleCloudRetailV2ModelServingConfigList": { "description": "Represents an ordered combination of valid serving configs, which can be used for `PAGE_OPTIMIZATION` recommendations.", "id": "GoogleCloudRetailV2ModelServingConfigList", @@ -3051,6 +3082,20 @@ ], "type": "string" }, + "facetIntervals": { + "description": "Set manually for numerical attributes only. If the facet SearchResponse.FacetSpec.intervals are not set by the customer for a numerical attribute, then a weekly pipeline will calculate some intervals using some percentiles on the distribution of all its product numerical attribute values. The latter computed intervals might not be ideal for the use case of that attribute. For this reason, the customer can set them manually. As another option, for any numerical attribute that is passed as a facet key in the request along with some given intervals, then these given intervals will be the facet intervals returned in the response.", + "items": { + "$ref": "GoogleCloudRetailV2alphaInterval" + }, + "type": "array" + }, + "ignoredFacetValues": { + "description": "Each instance represents a list of attribute values to ignore as facet values for a specific time range.", + "items": { + "$ref": "GoogleCloudRetailV2alphaCatalogAttributeIgnoredFacetValues" + }, + "type": "array" + }, "inUse": { "description": "Output only. Indicates whether this attribute has been used by any products. `True` if at least one Product is using this attribute in Product.attributes. Otherwise, this field is `False`. CatalogAttribute can be pre-loaded by using CatalogService.AddCatalogAttribute, CatalogService.ImportCatalogAttributes, or CatalogService.UpdateAttributesConfig APIs. This field is `False` for pre-loaded CatalogAttributes. Only pre-loaded catalog attributes that are neither in use by products nor predefined can be deleted. Catalog attributes that are either in use by products or are predefined attributes cannot be deleted; however, their configuration properties will reset to default values upon removal request. After catalog changes, it takes about 10 minutes for this field to update.", "readOnly": true, @@ -3134,6 +3179,30 @@ }, "type": "object" }, + "GoogleCloudRetailV2alphaCatalogAttributeIgnoredFacetValues": { + "description": "Facet values to ignore on facets during the specified time range for the given SearchResponse.Facet.key attribute.", + "id": "GoogleCloudRetailV2alphaCatalogAttributeIgnoredFacetValues", + "properties": { + "endTime": { + "description": "If start time is empty and end time is not empty, then ignore these facet values before end time.", + "format": "google-datetime", + "type": "string" + }, + "startTime": { + "description": "Time range for the current list of facet values to ignore. If multiple time ranges are specified for an facet value for the current attribute, consider all of them. If both are empty, ignore always. If start time and end time are set, then start time must be before end time. If start time is not empty and end time is empty, then will ignore these facet values after the start time.", + "format": "google-datetime", + "type": "string" + }, + "values": { + "description": "List of facet values to ignore for the following time range. The facet values are the same as the attribute values.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudRetailV2alphaColorInfo": { "description": "The color information of a Product.", "id": "GoogleCloudRetailV2alphaColorInfo", @@ -3178,7 +3247,7 @@ "type": "array" }, "recentSearchResults": { - "description": "Matched recent searches of this user. The maximum number of recent searches is 10. This field is a restricted feature. Contact Retail Search support team if you are interested in enabling it. This feature is only available when CompleteQueryRequest.visitor_id field is set and UserEvent is imported. The recent searches satisfy the follow rules: * They are ordered from latest to oldest. * They are matched with CompleteQueryRequest.query case insensitively. * They are transformed to lower case. * They are UTF-8 safe. Recent searches are deduplicated. More recent searches will be reserved when duplication happens.", + "description": "Matched recent searches of this user. The maximum number of recent searches is 10. This field is a restricted feature. If you want to enable it, contact Retail Search support. This feature is only available when CompleteQueryRequest.visitor_id field is set and UserEvent is imported. The recent searches satisfy the follow rules: * They are ordered from latest to oldest. * They are matched with CompleteQueryRequest.query case insensitively. * They are transformed to lower case. * They are UTF-8 safe. Recent searches are deduplicated. More recent searches will be reserved when duplication happens.", "items": { "$ref": "GoogleCloudRetailV2alphaCompleteQueryResponseRecentSearchResult" }, @@ -3271,7 +3340,7 @@ "type": "string" }, "lastSuggestionsImportOperation": { - "description": "Output only. Name of the LRO corresponding to the latest suggestion terms list import. Can use GetOperation API to retrieve the latest state of the Long Running Operation.", + "description": "Output only. Name of the LRO corresponding to the latest suggestion terms list import. Can use GetOperation API method to retrieve the latest state of the Long Running Operation.", "readOnly": true, "type": "string" }, @@ -3509,7 +3578,7 @@ "type": "object" }, "GoogleCloudRetailV2alphaExperimentInfo": { - "description": "Metadata for active A/B testing Experiments.", + "description": "Metadata for active A/B testing Experiment.", "id": "GoogleCloudRetailV2alphaExperimentInfo", "properties": { "experiment": { @@ -3790,7 +3859,7 @@ "description": "Required. The desired input location of the data." }, "notificationPubsubTopic": { - "description": "Full Pub/Sub topic name for receiving notification. If this field is set, when the import is finished, a notification is sent to specified Pub/Sub topic. The message data is JSON string of a Operation. Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`. It has to be within the same project as ImportProductsRequest.parent. Make sure that `service-@gcp-sa-retail.iam.gserviceaccount.com` has the `pubsub.topics.publish` IAM permission on the topic.", + "description": "Full Pub/Sub topic name for receiving notification. If this field is set, when the import is finished, a notification is sent to specified Pub/Sub topic. The message data is JSON string of a Operation. Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`. It has to be within the same project as ImportProductsRequest.parent. Make sure that both `cloud-retail-customer-data-access@system.gserviceaccount.com` and `service-@gcp-sa-retail.iam.gserviceaccount.com` have the `pubsub.topics.publish` IAM permission on the topic. Only supported when ImportProductsRequest.reconciliation_mode is set to `FULL`.", "type": "string" }, "reconciliationMode": { @@ -4239,6 +4308,10 @@ "readOnly": true, "type": "string" }, + "modelFeaturesConfig": { + "$ref": "GoogleCloudRetailV2alphaModelModelFeaturesConfig", + "description": "Optional. Additional model features config." + }, "name": { "description": "Required. The fully qualified resource name of the model. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}` catalog_id has char limit of 50. recommendation_model_id has char limit of 40.", "type": "string" @@ -4324,6 +4397,38 @@ }, "type": "object" }, + "GoogleCloudRetailV2alphaModelFrequentlyBoughtTogetherFeaturesConfig": { + "description": "More configs of the frequently-bought-together model type.", + "id": "GoogleCloudRetailV2alphaModelFrequentlyBoughtTogetherFeaturesConfig", + "properties": { + "contextProductsType": { + "description": "Optional. Specifies the context of the model when used in predict requests. Only settable for the `frequently-bought-together` type. Will default to MULTI_CONTEXT if not specified.", + "enum": [ + "CONTEXT_PRODUCTS_TYPE_UNSPECIFIED", + "SINGLE_CONTEXT_PRODUCT", + "MULTIPLE_CONTEXT_PRODUCTS" + ], + "enumDescriptions": [ + "Unspecified default value, should never be explicitly set. Defaults to MULTIPLE_CONTEXT_PRODUCTS.", + "Use only a single product as context for the recommendation. Typically used on pages like add-to-cart or product details.", + "Use one or multiple products as context for the recommendation. Typically used on shopping cart pages." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaModelModelFeaturesConfig": { + "description": "Additional model features config.", + "id": "GoogleCloudRetailV2alphaModelModelFeaturesConfig", + "properties": { + "frequentlyBoughtTogetherConfig": { + "$ref": "GoogleCloudRetailV2alphaModelFrequentlyBoughtTogetherFeaturesConfig", + "description": "Additional configs for frequently-bought-together models." + } + }, + "type": "object" + }, "GoogleCloudRetailV2alphaModelPageOptimizationConfig": { "description": "The PageOptimizationConfig for model training. This determines how many panels to optimize for, and which serving configs to consider for each panel. The purpose of this model is to optimize which ServingConfig to show on which panels in way that optimizes the visitors shopping journey.", "id": "GoogleCloudRetailV2alphaModelPageOptimizationConfig", @@ -5271,7 +5376,7 @@ "id": "GoogleCloudRetailV2alphaRuleFilterAction", "properties": { "filter": { - "description": "A filter to apply on the matching condition results. Supported features: * filter must be set. * Filter syntax is identical to SearchRequest.filter. See more details at the Retail Search [user guide](/retail/search/docs/filter-and-order#filter). * To filter products with product ID \"product_1\" or \"product_2\", and color \"Red\" or \"Blue\": *(id: ANY(\"product_1\", \"product_2\")) * *AND * *(colorFamilies: ANY(\"Red\", \"Blue\")) *", + "description": "A filter to apply on the matching condition results. Supported features: * filter must be set. * Filter syntax is identical to SearchRequest.filter. For more information, see [Filter](/retail/docs/filter-and-order#filter). * To filter products with product ID \"product_1\" or \"product_2\", and color \"Red\" or \"Blue\": *(id: ANY(\"product_1\", \"product_2\")) * *AND * *(colorFamilies: ANY(\"Red\", \"Blue\")) *", "type": "string" } }, @@ -5372,14 +5477,14 @@ "properties": { "boostSpec": { "$ref": "GoogleCloudRetailV2alphaSearchRequestBoostSpec", - "description": "Boost specification to boost certain products. See more details at this [user guide](https://cloud.google.com/retail/docs/boosting). Notice that if both ServingConfig.boost_control_ids and SearchRequest.boost_spec are set, the boost conditions from both places are evaluated. If a search request matches multiple boost conditions, the final boost score is equal to the sum of the boost scores from all matched boost conditions." + "description": "Boost specification to boost certain products. For more information, see [Boost results](https://cloud.google.com/retail/docs/boosting). Notice that if both ServingConfig.boost_control_ids and SearchRequest.boost_spec are set, the boost conditions from both places are evaluated. If a search request matches multiple boost conditions, the final boost score is equal to the sum of the boost scores from all matched boost conditions." }, "branch": { "description": "The branch resource name, such as `projects/*/locations/global/catalogs/default_catalog/branches/0`. Use \"default_branch\" as the branch ID or leave this field empty, to search products under the default branch.", "type": "string" }, "canonicalFilter": { - "description": "The default filter that is applied when a user performs a search without checking any filters on the search page. The filter applied to every search request when quality improvement such as query expansion is needed. For example, if a query does not have enough results, an expanded query with SearchRequest.canonical_filter will be returned as a supplement of the original query. This field is strongly recommended to achieve high search quality. See SearchRequest.filter for more details about filter syntax.", + "description": "The default filter that is applied when a user performs a search without checking any filters on the search page. The filter applied to every search request when quality improvement such as query expansion is needed. For example, if a query does not have enough results, an expanded query with SearchRequest.canonical_filter is returned as a supplement of the original query. This field is strongly recommended to achieve high search quality. For more information about filter syntax, see SearchRequest.filter.", "type": "string" }, "dynamicFacetSpec": { @@ -5398,14 +5503,14 @@ "type": "array" }, "filter": { - "description": "The filter syntax consists of an expression language for constructing a predicate from one or more fields of the products being filtered. Filter expression is case-sensitive. See more details at this [user guide](https://cloud.google.com/retail/docs/filter-and-order#filter). If this field is unrecognizable, an INVALID_ARGUMENT is returned.", + "description": "The filter syntax consists of an expression language for constructing a predicate from one or more fields of the products being filtered. Filter expression is case-sensitive. For more information, see [Filter](https://cloud.google.com/retail/docs/filter-and-order#filter). If this field is unrecognizable, an INVALID_ARGUMENT is returned.", "type": "string" }, "labels": { "additionalProperties": { "type": "string" }, - "description": "The labels applied to a resource must meet the following requirements: * Each resource can have multiple labels, up to a maximum of 64. * Each label must be a key-value pair. * Keys have a minimum length of 1 character and a maximum length of 63 characters and cannot be empty. Values can be empty and have a maximum length of 63 characters. * Keys and values can contain only lowercase letters, numeric characters, underscores, and dashes. All characters must use UTF-8 encoding, and international characters are allowed. * The key portion of a label must be unique. However, you can use the same key with multiple resources. * Keys must start with a lowercase letter or international character. See [Google Cloud Document](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements) for more details.", + "description": "The labels applied to a resource must meet the following requirements: * Each resource can have multiple labels, up to a maximum of 64. * Each label must be a key-value pair. * Keys have a minimum length of 1 character and a maximum length of 63 characters and cannot be empty. Values can be empty and have a maximum length of 63 characters. * Keys and values can contain only lowercase letters, numeric characters, underscores, and dashes. All characters must use UTF-8 encoding, and international characters are allowed. * The key portion of a label must be unique. However, you can use the same key with multiple resources. * Keys must start with a lowercase letter or international character. For more information, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements) in the Resource Manager documentation.", "type": "object" }, "offset": { @@ -5414,7 +5519,7 @@ "type": "integer" }, "orderBy": { - "description": "The order in which products are returned. Products can be ordered by a field in an Product object. Leave it unset if ordered by relevance. OrderBy expression is case-sensitive. See more details at this [user guide](https://cloud.google.com/retail/docs/filter-and-order#order). If this field is unrecognizable, an INVALID_ARGUMENT is returned.", + "description": "The order in which products are returned. Products can be ordered by a field in an Product object. Leave it unset if ordered by relevance. OrderBy expression is case-sensitive. For more information, see [Order](https://cloud.google.com/retail/docs/filter-and-order#order). If this field is unrecognizable, an INVALID_ARGUMENT is returned.", "type": "string" }, "pageCategories": { @@ -5443,10 +5548,10 @@ }, "queryExpansionSpec": { "$ref": "GoogleCloudRetailV2alphaSearchRequestQueryExpansionSpec", - "description": "The query expansion specification that specifies the conditions under which query expansion will occur. See more details at this [user guide](https://cloud.google.com/retail/docs/result-size#query_expansion)." + "description": "The query expansion specification that specifies the conditions under which query expansion occurs. For more information, see [Query expansion](https://cloud.google.com/retail/docs/result-size#query_expansion)." }, "relevanceThreshold": { - "description": "The relevance threshold of the search results. Defaults to RelevanceThreshold.HIGH, which means only the most relevant results are shown, and the least number of results are returned. See more details at this [user guide](https://cloud.google.com/retail/docs/result-size#relevance_thresholding).", + "description": "The relevance threshold of the search results. Defaults to RelevanceThreshold.HIGH, which means only the most relevant results are shown, and the least number of results are returned. For more information, see [Adjust result size](https://cloud.google.com/retail/docs/result-size#relevance_thresholding).", "enum": [ "RELEVANCE_THRESHOLD_UNSPECIFIED", "HIGH", @@ -5559,7 +5664,7 @@ "id": "GoogleCloudRetailV2alphaSearchRequestFacetSpec", "properties": { "enableDynamicPosition": { - "description": "Enables dynamic position for this facet. If set to true, the position of this facet among all facets in the response is determined by Google Retail Search. It will be ordered together with dynamic facets if dynamic facets is enabled. If set to false, the position of this facet in the response will be the same as in the request, and it will be ranked before the facets with dynamic position enable and all dynamic facets. For example, you may always want to have rating facet returned in the response, but it's not necessarily to always display the rating facet at the top. In that case, you can set enable_dynamic_position to true so that the position of rating facet in response will be determined by Google Retail Search. Another example, assuming you have the following facets in the request: * \"rating\", enable_dynamic_position = true * \"price\", enable_dynamic_position = false * \"brands\", enable_dynamic_position = false And also you have a dynamic facets enable, which will generate a facet 'gender'. Then the final order of the facets in the response can be (\"price\", \"brands\", \"rating\", \"gender\") or (\"price\", \"brands\", \"gender\", \"rating\") depends on how Google Retail Search orders \"gender\" and \"rating\" facets. However, notice that \"price\" and \"brands\" will always be ranked at 1st and 2nd position since their enable_dynamic_position are false.", + "description": "Enables dynamic position for this facet. If set to true, the position of this facet among all facets in the response is determined by Google Retail Search. It is ordered together with dynamic facets if dynamic facets is enabled. If set to false, the position of this facet in the response is the same as in the request, and it is ranked before the facets with dynamic position enable and all dynamic facets. For example, you may always want to have rating facet returned in the response, but it's not necessarily to always display the rating facet at the top. In that case, you can set enable_dynamic_position to true so that the position of rating facet in response is determined by Google Retail Search. Another example, assuming you have the following facets in the request: * \"rating\", enable_dynamic_position = true * \"price\", enable_dynamic_position = false * \"brands\", enable_dynamic_position = false And also you have a dynamic facets enable, which generates a facet \"gender\". Then, the final order of the facets in the response can be (\"price\", \"brands\", \"rating\", \"gender\") or (\"price\", \"brands\", \"gender\", \"rating\") depends on how Google Retail Search orders \"gender\" and \"rating\" facets. However, notice that \"price\" and \"brands\" are always ranked at first and second position because their enable_dynamic_position values are false.", "type": "boolean" }, "excludedFilterKeys": { @@ -5590,14 +5695,14 @@ "type": "boolean" }, "contains": { - "description": "Only get facet values that contains the given strings. For example, suppose \"categories\" has three values \"Women \u003e Shoe\", \"Women \u003e Dress\" and \"Men \u003e Shoe\". If set \"contains\" to \"Shoe\", the \"categories\" facet will give only \"Women \u003e Shoe\" and \"Men \u003e Shoe\". Only supported on textual fields. Maximum is 10.", + "description": "Only get facet values that contains the given strings. For example, suppose \"categories\" has three values \"Women \u003e Shoe\", \"Women \u003e Dress\" and \"Men \u003e Shoe\". If set \"contains\" to \"Shoe\", the \"categories\" facet gives only \"Women \u003e Shoe\" and \"Men \u003e Shoe\". Only supported on textual fields. Maximum is 10.", "items": { "type": "string" }, "type": "array" }, "intervals": { - "description": "Set only if values should be bucketized into intervals. Must be set for facets with numerical values. Must not be set for facet with text values. Maximum number of intervals is 40. For all numerical facet keys that appear in the list of products from the catalog, the percentiles 0, 10, 30, 50, 70, 90 and 100 are computed from their distribution weekly. If the model assigns a high score to a numerical facet key and its intervals are not specified in the search request, these percentiles will become the bounds for its intervals and will be returned in the response. If the facet key intervals are specified in the request, then the specified intervals will be returned instead.", + "description": "Set only if values should be bucketized into intervals. Must be set for facets with numerical values. Must not be set for facet with text values. Maximum number of intervals is 40. For all numerical facet keys that appear in the list of products from the catalog, the percentiles 0, 10, 30, 50, 70, 90, and 100 are computed from their distribution weekly. If the model assigns a high score to a numerical facet key and its intervals are not specified in the search request, these percentiles become the bounds for its intervals and are returned in the response. If the facet key intervals are specified in the request, then the specified intervals are returned instead.", "items": { "$ref": "GoogleCloudRetailV2alphaInterval" }, @@ -5612,14 +5717,14 @@ "type": "string" }, "prefixes": { - "description": "Only get facet values that start with the given string prefix. For example, suppose \"categories\" has three values \"Women \u003e Shoe\", \"Women \u003e Dress\" and \"Men \u003e Shoe\". If set \"prefixes\" to \"Women\", the \"categories\" facet will give only \"Women \u003e Shoe\" and \"Women \u003e Dress\". Only supported on textual fields. Maximum is 10.", + "description": "Only get facet values that start with the given string prefix. For example, suppose \"categories\" has three values \"Women \u003e Shoe\", \"Women \u003e Dress\" and \"Men \u003e Shoe\". If set \"prefixes\" to \"Women\", the \"categories\" facet gives only \"Women \u003e Shoe\" and \"Women \u003e Dress\". Only supported on textual fields. Maximum is 10.", "items": { "type": "string" }, "type": "array" }, "query": { - "description": "The query that is used to compute facet for the given facet key. When provided, it will override the default behavior of facet computation. The query syntax is the same as a filter expression. See SearchRequest.filter for detail syntax and limitations. Notice that there is no limitation on FacetKey.key when query is specified. In the response, SearchResponse.Facet.values.value will be always \"1\" and SearchResponse.Facet.values.count will be the number of results that match the query. For example, you can set a customized facet for \"shipToStore\", where FacetKey.key is \"customizedShipToStore\", and FacetKey.query is \"availability: ANY(\\\"IN_STOCK\\\") AND shipToStore: ANY(\\\"123\\\")\". Then the facet will count the products that are both in stock and ship to store \"123\".", + "description": "The query that is used to compute facet for the given facet key. When provided, it overrides the default behavior of facet computation. The query syntax is the same as a filter expression. See SearchRequest.filter for detail syntax and limitations. Notice that there is no limitation on FacetKey.key when query is specified. In the response, SearchResponse.Facet.values.value is always \"1\" and SearchResponse.Facet.values.count is the number of results that match the query. For example, you can set a customized facet for \"shipToStore\", where FacetKey.key is \"customizedShipToStore\", and FacetKey.query is \"availability: ANY(\\\"IN_STOCK\\\") AND shipToStore: ANY(\\\"123\\\")\". Then the facet counts the products that are both in stock and ship to store \"123\".", "type": "string" }, "restrictedValues": { @@ -6133,7 +6238,7 @@ "description": "The main auto-completion details related to the event. This field should be set for `search` event when autocomplete function is enabled and the user clicks a suggestion for search." }, "entity": { - "description": "The entity for customers that may run multiple different entities, domains, sites or regions, for example, `Google US`, `Google Ads`, `Waymo`, `google.com`, `youtube.com`, etc. It is recommended to set this field to get better per-entity search, completion and prediction results.", + "description": "The entity for customers that may run multiple different entities, domains, sites or regions, for example, `Google US`, `Google Ads`, `Waymo`, `google.com`, `youtube.com`, etc. We recommend that you set this field to get better per-entity search, completion, and prediction results.", "type": "string" }, "eventTime": { @@ -6665,6 +6770,10 @@ "readOnly": true, "type": "string" }, + "modelFeaturesConfig": { + "$ref": "GoogleCloudRetailV2betaModelModelFeaturesConfig", + "description": "Optional. Additional model features config." + }, "name": { "description": "Required. The fully qualified resource name of the model. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}` catalog_id has char limit of 50. recommendation_model_id has char limit of 40.", "type": "string" @@ -6746,6 +6855,38 @@ }, "type": "object" }, + "GoogleCloudRetailV2betaModelFrequentlyBoughtTogetherFeaturesConfig": { + "description": "More configs of the frequently-bought-together model type.", + "id": "GoogleCloudRetailV2betaModelFrequentlyBoughtTogetherFeaturesConfig", + "properties": { + "contextProductsType": { + "description": "Optional. Specifies the context of the model when used in predict requests. Only settable for the `frequently-bought-together` type. Will default to MULTI_CONTEXT if not specified.", + "enum": [ + "CONTEXT_PRODUCTS_TYPE_UNSPECIFIED", + "SINGLE_CONTEXT_PRODUCT", + "MULTIPLE_CONTEXT_PRODUCTS" + ], + "enumDescriptions": [ + "Unspecified default value, should never be explicitly set. Defaults to MULTIPLE_CONTEXT_PRODUCTS.", + "Use only a single product as context for the recommendation. Typically used on pages like add-to-cart or product details.", + "Use one or multiple products as context for the recommendation. Typically used on shopping cart pages." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2betaModelModelFeaturesConfig": { + "description": "Additional model features config.", + "id": "GoogleCloudRetailV2betaModelModelFeaturesConfig", + "properties": { + "frequentlyBoughtTogetherConfig": { + "$ref": "GoogleCloudRetailV2betaModelFrequentlyBoughtTogetherFeaturesConfig", + "description": "Additional configs for frequently-bought-together models." + } + }, + "type": "object" + }, "GoogleCloudRetailV2betaModelServingConfigList": { "description": "Represents an ordered combination of valid serving configs, which can be used for `PAGE_OPTIMIZATION` recommendations.", "id": "GoogleCloudRetailV2betaModelServingConfigList", diff --git a/retail/v2alpha/retail-gen.go b/retail/v2alpha/retail-gen.go index fa5c5c41acd..b4181b97b62 100644 --- a/retail/v2alpha/retail-gen.go +++ b/retail/v2alpha/retail-gen.go @@ -954,6 +954,9 @@ type GoogleCloudRetailV2Model struct { // tune finished. LastTuneTime string `json:"lastTuneTime,omitempty"` + // ModelFeaturesConfig: Optional. Additional model features config. + ModelFeaturesConfig *GoogleCloudRetailV2ModelModelFeaturesConfig `json:"modelFeaturesConfig,omitempty"` + // Name: Required. The fully qualified resource name of the model. // Format: // `projects/{project_number}/locations/{location_id}/catalogs/{catalog_i @@ -1071,6 +1074,82 @@ func (s *GoogleCloudRetailV2Model) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// GoogleCloudRetailV2ModelFrequentlyBoughtTogetherFeaturesConfig: More +// configs of the frequently-bought-together model type. +type GoogleCloudRetailV2ModelFrequentlyBoughtTogetherFeaturesConfig struct { + // ContextProductsType: Optional. Specifies the context of the model + // when used in predict requests. Only settable for the + // `frequently-bought-together` type. Will default to MULTI_CONTEXT if + // not specified. + // + // Possible values: + // "CONTEXT_PRODUCTS_TYPE_UNSPECIFIED" - Unspecified default value, + // should never be explicitly set. Defaults to + // MULTIPLE_CONTEXT_PRODUCTS. + // "SINGLE_CONTEXT_PRODUCT" - Use only a single product as context for + // the recommendation. Typically used on pages like add-to-cart or + // product details. + // "MULTIPLE_CONTEXT_PRODUCTS" - Use one or multiple products as + // context for the recommendation. Typically used on shopping cart + // pages. + ContextProductsType string `json:"contextProductsType,omitempty"` + + // ForceSendFields is a list of field names (e.g. "ContextProductsType") + // to unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "ContextProductsType") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudRetailV2ModelFrequentlyBoughtTogetherFeaturesConfig) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudRetailV2ModelFrequentlyBoughtTogetherFeaturesConfig + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleCloudRetailV2ModelModelFeaturesConfig: Additional model +// features config. +type GoogleCloudRetailV2ModelModelFeaturesConfig struct { + // FrequentlyBoughtTogetherConfig: Additional configs for + // frequently-bought-together models. + FrequentlyBoughtTogetherConfig *GoogleCloudRetailV2ModelFrequentlyBoughtTogetherFeaturesConfig `json:"frequentlyBoughtTogetherConfig,omitempty"` + + // ForceSendFields is a list of field names (e.g. + // "FrequentlyBoughtTogetherConfig") to unconditionally include in API + // requests. By default, fields with empty or default values are omitted + // from API requests. However, any non-pointer, non-interface field + // appearing in ForceSendFields will be sent to the server regardless of + // whether the field is empty or not. This may be used to include empty + // fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. + // "FrequentlyBoughtTogetherConfig") to include in API requests with the + // JSON null value. By default, fields with empty values are omitted + // from API requests. However, any field with an empty value appearing + // in NullFields will be sent to the server as null. It is an error if a + // field in this list has a non-empty value. This may be used to include + // null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudRetailV2ModelModelFeaturesConfig) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudRetailV2ModelModelFeaturesConfig + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // GoogleCloudRetailV2ModelServingConfigList: Represents an ordered // combination of valid serving configs, which can be used for // `PAGE_OPTIMIZATION` recommendations. @@ -1853,6 +1932,22 @@ type GoogleCloudRetailV2alphaCatalogAttribute struct { // an attribute. ExactSearchableOption string `json:"exactSearchableOption,omitempty"` + // FacetIntervals: Set manually for numerical attributes only. If the + // facet SearchResponse.FacetSpec.intervals are not set by the customer + // for a numerical attribute, then a weekly pipeline will calculate some + // intervals using some percentiles on the distribution of all its + // product numerical attribute values. The latter computed intervals + // might not be ideal for the use case of that attribute. For this + // reason, the customer can set them manually. As another option, for + // any numerical attribute that is passed as a facet key in the request + // along with some given intervals, then these given intervals will be + // the facet intervals returned in the response. + FacetIntervals []*GoogleCloudRetailV2alphaInterval `json:"facetIntervals,omitempty"` + + // IgnoredFacetValues: Each instance represents a list of attribute + // values to ignore as facet values for a specific time range. + IgnoredFacetValues []*GoogleCloudRetailV2alphaCatalogAttributeIgnoredFacetValues `json:"ignoredFacetValues,omitempty"` + // InUse: Output only. Indicates whether this attribute has been used by // any products. `True` if at least one Product is using this attribute // in Product.attributes. Otherwise, this field is `False`. @@ -1970,6 +2065,49 @@ func (s *GoogleCloudRetailV2alphaCatalogAttribute) MarshalJSON() ([]byte, error) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// GoogleCloudRetailV2alphaCatalogAttributeIgnoredFacetValues: Facet +// values to ignore on facets during the specified time range for the +// given SearchResponse.Facet.key attribute. +type GoogleCloudRetailV2alphaCatalogAttributeIgnoredFacetValues struct { + // EndTime: If start time is empty and end time is not empty, then + // ignore these facet values before end time. + EndTime string `json:"endTime,omitempty"` + + // StartTime: Time range for the current list of facet values to ignore. + // If multiple time ranges are specified for an facet value for the + // current attribute, consider all of them. If both are empty, ignore + // always. If start time and end time are set, then start time must be + // before end time. If start time is not empty and end time is empty, + // then will ignore these facet values after the start time. + StartTime string `json:"startTime,omitempty"` + + // Values: List of facet values to ignore for the following time range. + // The facet values are the same as the attribute values. + Values []string `json:"values,omitempty"` + + // ForceSendFields is a list of field names (e.g. "EndTime") to + // unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "EndTime") to include in + // API requests with the JSON null value. By default, fields with empty + // values are omitted from API requests. However, any field with an + // empty value appearing in NullFields will be sent to the server as + // null. It is an error if a field in this list has a non-empty value. + // This may be used to include null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudRetailV2alphaCatalogAttributeIgnoredFacetValues) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudRetailV2alphaCatalogAttributeIgnoredFacetValues + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // GoogleCloudRetailV2alphaColorInfo: The color information of a // Product. type GoogleCloudRetailV2alphaColorInfo struct { @@ -2039,15 +2177,14 @@ type GoogleCloudRetailV2alphaCompleteQueryResponse struct { // RecentSearchResults: Matched recent searches of this user. The // maximum number of recent searches is 10. This field is a restricted - // feature. Contact Retail Search support team if you are interested in - // enabling it. This feature is only available when - // CompleteQueryRequest.visitor_id field is set and UserEvent is - // imported. The recent searches satisfy the follow rules: * They are - // ordered from latest to oldest. * They are matched with - // CompleteQueryRequest.query case insensitively. * They are transformed - // to lower case. * They are UTF-8 safe. Recent searches are - // deduplicated. More recent searches will be reserved when duplication - // happens. + // feature. If you want to enable it, contact Retail Search support. + // This feature is only available when CompleteQueryRequest.visitor_id + // field is set and UserEvent is imported. The recent searches satisfy + // the follow rules: * They are ordered from latest to oldest. * They + // are matched with CompleteQueryRequest.query case insensitively. * + // They are transformed to lower case. * They are UTF-8 safe. Recent + // searches are deduplicated. More recent searches will be reserved when + // duplication happens. RecentSearchResults []*GoogleCloudRetailV2alphaCompleteQueryResponseRecentSearchResult `json:"recentSearchResults,omitempty"` // ServerResponse contains the HTTP response code and headers from the @@ -2214,8 +2351,8 @@ type GoogleCloudRetailV2alphaCompletionConfig struct { // LastSuggestionsImportOperation: Output only. Name of the LRO // corresponding to the latest suggestion terms list import. Can use - // GetOperation API to retrieve the latest state of the Long Running - // Operation. + // GetOperation API method to retrieve the latest state of the Long + // Running Operation. LastSuggestionsImportOperation string `json:"lastSuggestionsImportOperation,omitempty"` // MatchingOrder: Specifies the matching order for autocomplete @@ -2672,7 +2809,7 @@ func (s *GoogleCloudRetailV2alphaCustomAttribute) MarshalJSON() ([]byte, error) } // GoogleCloudRetailV2alphaExperimentInfo: Metadata for active A/B -// testing Experiments. +// testing Experiment. type GoogleCloudRetailV2alphaExperimentInfo struct { // Experiment: The fully qualified resource name of the experiment that // provides the serving config under test, should an active experiment @@ -3272,9 +3409,11 @@ type GoogleCloudRetailV2alphaImportProductsRequest struct { // notification is sent to specified Pub/Sub topic. The message data is // JSON string of a Operation. Format of the Pub/Sub topic is // `projects/{project}/topics/{topic}`. It has to be within the same - // project as ImportProductsRequest.parent. Make sure that - // `service-@gcp-sa-retail.iam.gserviceaccount.com` has the - // `pubsub.topics.publish` IAM permission on the topic. + // project as ImportProductsRequest.parent. Make sure that both + // `cloud-retail-customer-data-access@system.gserviceaccount.com` and + // `service-@gcp-sa-retail.iam.gserviceaccount.com` have the + // `pubsub.topics.publish` IAM permission on the topic. Only supported + // when ImportProductsRequest.reconciliation_mode is set to `FULL`. NotificationPubsubTopic string `json:"notificationPubsubTopic,omitempty"` // ReconciliationMode: The mode of reconciliation between existing @@ -4083,6 +4222,9 @@ type GoogleCloudRetailV2alphaModel struct { // tune finished. LastTuneTime string `json:"lastTuneTime,omitempty"` + // ModelFeaturesConfig: Optional. Additional model features config. + ModelFeaturesConfig *GoogleCloudRetailV2alphaModelModelFeaturesConfig `json:"modelFeaturesConfig,omitempty"` + // Name: Required. The fully qualified resource name of the model. // Format: // `projects/{project_number}/locations/{location_id}/catalogs/{catalog_i @@ -4207,6 +4349,82 @@ func (s *GoogleCloudRetailV2alphaModel) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// GoogleCloudRetailV2alphaModelFrequentlyBoughtTogetherFeaturesConfig: +// More configs of the frequently-bought-together model type. +type GoogleCloudRetailV2alphaModelFrequentlyBoughtTogetherFeaturesConfig struct { + // ContextProductsType: Optional. Specifies the context of the model + // when used in predict requests. Only settable for the + // `frequently-bought-together` type. Will default to MULTI_CONTEXT if + // not specified. + // + // Possible values: + // "CONTEXT_PRODUCTS_TYPE_UNSPECIFIED" - Unspecified default value, + // should never be explicitly set. Defaults to + // MULTIPLE_CONTEXT_PRODUCTS. + // "SINGLE_CONTEXT_PRODUCT" - Use only a single product as context for + // the recommendation. Typically used on pages like add-to-cart or + // product details. + // "MULTIPLE_CONTEXT_PRODUCTS" - Use one or multiple products as + // context for the recommendation. Typically used on shopping cart + // pages. + ContextProductsType string `json:"contextProductsType,omitempty"` + + // ForceSendFields is a list of field names (e.g. "ContextProductsType") + // to unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "ContextProductsType") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudRetailV2alphaModelFrequentlyBoughtTogetherFeaturesConfig) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudRetailV2alphaModelFrequentlyBoughtTogetherFeaturesConfig + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleCloudRetailV2alphaModelModelFeaturesConfig: Additional model +// features config. +type GoogleCloudRetailV2alphaModelModelFeaturesConfig struct { + // FrequentlyBoughtTogetherConfig: Additional configs for + // frequently-bought-together models. + FrequentlyBoughtTogetherConfig *GoogleCloudRetailV2alphaModelFrequentlyBoughtTogetherFeaturesConfig `json:"frequentlyBoughtTogetherConfig,omitempty"` + + // ForceSendFields is a list of field names (e.g. + // "FrequentlyBoughtTogetherConfig") to unconditionally include in API + // requests. By default, fields with empty or default values are omitted + // from API requests. However, any non-pointer, non-interface field + // appearing in ForceSendFields will be sent to the server regardless of + // whether the field is empty or not. This may be used to include empty + // fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. + // "FrequentlyBoughtTogetherConfig") to include in API requests with the + // JSON null value. By default, fields with empty values are omitted + // from API requests. However, any field with an empty value appearing + // in NullFields will be sent to the server as null. It is an error if a + // field in this list has a non-empty value. This may be used to include + // null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudRetailV2alphaModelModelFeaturesConfig) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudRetailV2alphaModelModelFeaturesConfig + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // GoogleCloudRetailV2alphaModelPageOptimizationConfig: The // PageOptimizationConfig for model training. This determines how many // panels to optimize for, and which serving configs to consider for @@ -6165,11 +6383,11 @@ func (s *GoogleCloudRetailV2alphaRuleDoNotAssociateAction) MarshalJSON() ([]byte type GoogleCloudRetailV2alphaRuleFilterAction struct { // Filter: A filter to apply on the matching condition results. // Supported features: * filter must be set. * Filter syntax is - // identical to SearchRequest.filter. See more details at the Retail - // Search user guide (/retail/search/docs/filter-and-order#filter). * To - // filter products with product ID "product_1" or "product_2", and color - // "Red" or "Blue": *(id: ANY("product_1", "product_2")) * *AND * - // *(colorFamilies: ANY("Red", "Blue")) * + // identical to SearchRequest.filter. For more information, see Filter + // (/retail/docs/filter-and-order#filter). * To filter products with + // product ID "product_1" or "product_2", and color "Red" or "Blue": + // *(id: ANY("product_1", "product_2")) * *AND * *(colorFamilies: + // ANY("Red", "Blue")) * Filter string `json:"filter,omitempty"` // ForceSendFields is a list of field names (e.g. "Filter") to @@ -6369,8 +6587,8 @@ func (s *GoogleCloudRetailV2alphaRuleTwowaySynonymsAction) MarshalJSON() ([]byte // GoogleCloudRetailV2alphaSearchRequest: Request message for // SearchService.Search method. type GoogleCloudRetailV2alphaSearchRequest struct { - // BoostSpec: Boost specification to boost certain products. See more - // details at this user guide + // BoostSpec: Boost specification to boost certain products. For more + // information, see Boost results // (https://cloud.google.com/retail/docs/boosting). Notice that if both // ServingConfig.boost_control_ids and SearchRequest.boost_spec are set, // the boost conditions from both places are evaluated. If a search @@ -6390,10 +6608,10 @@ type GoogleCloudRetailV2alphaSearchRequest struct { // The filter applied to every search request when quality improvement // such as query expansion is needed. For example, if a query does not // have enough results, an expanded query with - // SearchRequest.canonical_filter will be returned as a supplement of - // the original query. This field is strongly recommended to achieve - // high search quality. See SearchRequest.filter for more details about - // filter syntax. + // SearchRequest.canonical_filter is returned as a supplement of the + // original query. This field is strongly recommended to achieve high + // search quality. For more information about filter syntax, see + // SearchRequest.filter. CanonicalFilter string `json:"canonicalFilter,omitempty"` // DynamicFacetSpec: Deprecated. Refer to @@ -6417,8 +6635,8 @@ type GoogleCloudRetailV2alphaSearchRequest struct { // Filter: The filter syntax consists of an expression language for // constructing a predicate from one or more fields of the products - // being filtered. Filter expression is case-sensitive. See more details - // at this user guide + // being filtered. Filter expression is case-sensitive. For more + // information, see Filter // (https://cloud.google.com/retail/docs/filter-and-order#filter). If // this field is unrecognizable, an INVALID_ARGUMENT is returned. Filter string `json:"filter,omitempty"` @@ -6433,9 +6651,10 @@ type GoogleCloudRetailV2alphaSearchRequest struct { // UTF-8 encoding, and international characters are allowed. * The key // portion of a label must be unique. However, you can use the same key // with multiple resources. * Keys must start with a lowercase letter or - // international character. See Google Cloud Document + // international character. For more information, see Requirements for + // labels // (https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements) - // for more details. + // in the Resource Manager documentation. Labels map[string]string `json:"labels,omitempty"` // Offset: A 0-indexed integer that specifies the current offset (that @@ -6447,8 +6666,8 @@ type GoogleCloudRetailV2alphaSearchRequest struct { // OrderBy: The order in which products are returned. Products can be // ordered by a field in an Product object. Leave it unset if ordered by - // relevance. OrderBy expression is case-sensitive. See more details at - // this user guide + // relevance. OrderBy expression is case-sensitive. For more + // information, see Order // (https://cloud.google.com/retail/docs/filter-and-order#order). If // this field is unrecognizable, an INVALID_ARGUMENT is returned. OrderBy string `json:"orderBy,omitempty"` @@ -6490,15 +6709,15 @@ type GoogleCloudRetailV2alphaSearchRequest struct { Query string `json:"query,omitempty"` // QueryExpansionSpec: The query expansion specification that specifies - // the conditions under which query expansion will occur. See more - // details at this user guide + // the conditions under which query expansion occurs. For more + // information, see Query expansion // (https://cloud.google.com/retail/docs/result-size#query_expansion). QueryExpansionSpec *GoogleCloudRetailV2alphaSearchRequestQueryExpansionSpec `json:"queryExpansionSpec,omitempty"` // RelevanceThreshold: The relevance threshold of the search results. // Defaults to RelevanceThreshold.HIGH, which means only the most // relevant results are shown, and the least number of results are - // returned. See more details at this user guide + // returned. For more information, see Adjust result size // (https://cloud.google.com/retail/docs/result-size#relevance_thresholding). // // Possible values: @@ -6745,25 +6964,25 @@ func (s *GoogleCloudRetailV2alphaSearchRequestDynamicFacetSpec) MarshalJSON() ([ type GoogleCloudRetailV2alphaSearchRequestFacetSpec struct { // EnableDynamicPosition: Enables dynamic position for this facet. If // set to true, the position of this facet among all facets in the - // response is determined by Google Retail Search. It will be ordered + // response is determined by Google Retail Search. It is ordered // together with dynamic facets if dynamic facets is enabled. If set to - // false, the position of this facet in the response will be the same as - // in the request, and it will be ranked before the facets with dynamic - // position enable and all dynamic facets. For example, you may always - // want to have rating facet returned in the response, but it's not - // necessarily to always display the rating facet at the top. In that - // case, you can set enable_dynamic_position to true so that the - // position of rating facet in response will be determined by Google - // Retail Search. Another example, assuming you have the following - // facets in the request: * "rating", enable_dynamic_position = true * - // "price", enable_dynamic_position = false * "brands", - // enable_dynamic_position = false And also you have a dynamic facets - // enable, which will generate a facet 'gender'. Then the final order of - // the facets in the response can be ("price", "brands", "rating", - // "gender") or ("price", "brands", "gender", "rating") depends on how - // Google Retail Search orders "gender" and "rating" facets. However, - // notice that "price" and "brands" will always be ranked at 1st and 2nd - // position since their enable_dynamic_position are false. + // false, the position of this facet in the response is the same as in + // the request, and it is ranked before the facets with dynamic position + // enable and all dynamic facets. For example, you may always want to + // have rating facet returned in the response, but it's not necessarily + // to always display the rating facet at the top. In that case, you can + // set enable_dynamic_position to true so that the position of rating + // facet in response is determined by Google Retail Search. Another + // example, assuming you have the following facets in the request: * + // "rating", enable_dynamic_position = true * "price", + // enable_dynamic_position = false * "brands", enable_dynamic_position = + // false And also you have a dynamic facets enable, which generates a + // facet "gender". Then, the final order of the facets in the response + // can be ("price", "brands", "rating", "gender") or ("price", "brands", + // "gender", "rating") depends on how Google Retail Search orders + // "gender" and "rating" facets. However, notice that "price" and + // "brands" are always ranked at first and second position because their + // enable_dynamic_position values are false. EnableDynamicPosition bool `json:"enableDynamicPosition,omitempty"` // ExcludedFilterKeys: List of keys to exclude when faceting. By @@ -6831,21 +7050,21 @@ type GoogleCloudRetailV2alphaSearchRequestFacetSpecFacetKey struct { // Contains: Only get facet values that contains the given strings. For // example, suppose "categories" has three values "Women > Shoe", "Women // > Dress" and "Men > Shoe". If set "contains" to "Shoe", the - // "categories" facet will give only "Women > Shoe" and "Men > Shoe". - // Only supported on textual fields. Maximum is 10. + // "categories" facet gives only "Women > Shoe" and "Men > Shoe". Only + // supported on textual fields. Maximum is 10. Contains []string `json:"contains,omitempty"` // Intervals: Set only if values should be bucketized into intervals. // Must be set for facets with numerical values. Must not be set for // facet with text values. Maximum number of intervals is 40. For all // numerical facet keys that appear in the list of products from the - // catalog, the percentiles 0, 10, 30, 50, 70, 90 and 100 are computed + // catalog, the percentiles 0, 10, 30, 50, 70, 90, and 100 are computed // from their distribution weekly. If the model assigns a high score to // a numerical facet key and its intervals are not specified in the - // search request, these percentiles will become the bounds for its - // intervals and will be returned in the response. If the facet key - // intervals are specified in the request, then the specified intervals - // will be returned instead. + // search request, these percentiles become the bounds for its intervals + // and are returned in the response. If the facet key intervals are + // specified in the request, then the specified intervals are returned + // instead. Intervals []*GoogleCloudRetailV2alphaInterval `json:"intervals,omitempty"` // Key: Required. Supported textual and numerical facet keys in Product @@ -6877,22 +7096,22 @@ type GoogleCloudRetailV2alphaSearchRequestFacetSpecFacetKey struct { // Prefixes: Only get facet values that start with the given string // prefix. For example, suppose "categories" has three values "Women > // Shoe", "Women > Dress" and "Men > Shoe". If set "prefixes" to - // "Women", the "categories" facet will give only "Women > Shoe" and - // "Women > Dress". Only supported on textual fields. Maximum is 10. + // "Women", the "categories" facet gives only "Women > Shoe" and "Women + // > Dress". Only supported on textual fields. Maximum is 10. Prefixes []string `json:"prefixes,omitempty"` // Query: The query that is used to compute facet for the given facet - // key. When provided, it will override the default behavior of facet + // key. When provided, it overrides the default behavior of facet // computation. The query syntax is the same as a filter expression. See // SearchRequest.filter for detail syntax and limitations. Notice that // there is no limitation on FacetKey.key when query is specified. In - // the response, SearchResponse.Facet.values.value will be always "1" - // and SearchResponse.Facet.values.count will be the number of results - // that match the query. For example, you can set a customized facet for + // the response, SearchResponse.Facet.values.value is always "1" and + // SearchResponse.Facet.values.count is the number of results that match + // the query. For example, you can set a customized facet for // "shipToStore", where FacetKey.key is "customizedShipToStore", and // FacetKey.query is "availability: ANY(\"IN_STOCK\") AND shipToStore: - // ANY(\"123\")". Then the facet will count the products that are both - // in stock and ship to store "123". + // ANY(\"123\")". Then the facet counts the products that are both in + // stock and ship to store "123". Query string `json:"query,omitempty"` // RestrictedValues: Only get facet for the given restricted values. For @@ -7788,9 +8007,9 @@ type GoogleCloudRetailV2alphaUserEvent struct { // Entity: The entity for customers that may run multiple different // entities, domains, sites or regions, for example, `Google US`, - // `Google Ads`, `Waymo`, `google.com`, `youtube.com`, etc. It is - // recommended to set this field to get better per-entity search, - // completion and prediction results. + // `Google Ads`, `Waymo`, `google.com`, `youtube.com`, etc. We recommend + // that you set this field to get better per-entity search, completion, + // and prediction results. Entity string `json:"entity,omitempty"` // EventTime: Only required for UserEventService.ImportUserEvents @@ -8768,6 +8987,9 @@ type GoogleCloudRetailV2betaModel struct { // tune finished. LastTuneTime string `json:"lastTuneTime,omitempty"` + // ModelFeaturesConfig: Optional. Additional model features config. + ModelFeaturesConfig *GoogleCloudRetailV2betaModelModelFeaturesConfig `json:"modelFeaturesConfig,omitempty"` + // Name: Required. The fully qualified resource name of the model. // Format: // `projects/{project_number}/locations/{location_id}/catalogs/{catalog_i @@ -8885,6 +9107,82 @@ func (s *GoogleCloudRetailV2betaModel) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// GoogleCloudRetailV2betaModelFrequentlyBoughtTogetherFeaturesConfig: +// More configs of the frequently-bought-together model type. +type GoogleCloudRetailV2betaModelFrequentlyBoughtTogetherFeaturesConfig struct { + // ContextProductsType: Optional. Specifies the context of the model + // when used in predict requests. Only settable for the + // `frequently-bought-together` type. Will default to MULTI_CONTEXT if + // not specified. + // + // Possible values: + // "CONTEXT_PRODUCTS_TYPE_UNSPECIFIED" - Unspecified default value, + // should never be explicitly set. Defaults to + // MULTIPLE_CONTEXT_PRODUCTS. + // "SINGLE_CONTEXT_PRODUCT" - Use only a single product as context for + // the recommendation. Typically used on pages like add-to-cart or + // product details. + // "MULTIPLE_CONTEXT_PRODUCTS" - Use one or multiple products as + // context for the recommendation. Typically used on shopping cart + // pages. + ContextProductsType string `json:"contextProductsType,omitempty"` + + // ForceSendFields is a list of field names (e.g. "ContextProductsType") + // to unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "ContextProductsType") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudRetailV2betaModelFrequentlyBoughtTogetherFeaturesConfig) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudRetailV2betaModelFrequentlyBoughtTogetherFeaturesConfig + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleCloudRetailV2betaModelModelFeaturesConfig: Additional model +// features config. +type GoogleCloudRetailV2betaModelModelFeaturesConfig struct { + // FrequentlyBoughtTogetherConfig: Additional configs for + // frequently-bought-together models. + FrequentlyBoughtTogetherConfig *GoogleCloudRetailV2betaModelFrequentlyBoughtTogetherFeaturesConfig `json:"frequentlyBoughtTogetherConfig,omitempty"` + + // ForceSendFields is a list of field names (e.g. + // "FrequentlyBoughtTogetherConfig") to unconditionally include in API + // requests. By default, fields with empty or default values are omitted + // from API requests. However, any non-pointer, non-interface field + // appearing in ForceSendFields will be sent to the server regardless of + // whether the field is empty or not. This may be used to include empty + // fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. + // "FrequentlyBoughtTogetherConfig") to include in API requests with the + // JSON null value. By default, fields with empty values are omitted + // from API requests. However, any field with an empty value appearing + // in NullFields will be sent to the server as null. It is an error if a + // field in this list has a non-empty value. This may be used to include + // null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudRetailV2betaModelModelFeaturesConfig) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudRetailV2betaModelModelFeaturesConfig + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // GoogleCloudRetailV2betaModelServingConfigList: Represents an ordered // combination of valid serving configs, which can be used for // `PAGE_OPTIMIZATION` recommendations. @@ -9402,10 +9700,10 @@ func (c *ProjectsLocationsCatalogsCompleteQueryCall) EnableAttributeSuggestions( } // Entity sets the optional parameter "entity": The entity for customers -// that may run multiple different entities, domains, sites or regions, -// for example, `Google US`, `Google Ads`, `Waymo`, `google.com`, -// `youtube.com`, etc. If this is set, it should be exactly matched with -// UserEvent.entity to get per-entity autocomplete results. +// who run multiple entities, domains, sites, or regions, for example, +// `Google US`, `Google Ads`, `Waymo`, `google.com`, `youtube.com`, etc. +// If this is set, it must be an exact match with UserEvent.entity to +// get per-entity autocomplete results. func (c *ProjectsLocationsCatalogsCompleteQueryCall) Entity(entity string) *ProjectsLocationsCatalogsCompleteQueryCall { c.urlParams_.Set("entity", entity) return c @@ -9588,7 +9886,7 @@ func (c *ProjectsLocationsCatalogsCompleteQueryCall) Do(opts ...googleapi.CallOp // "type": "boolean" // }, // "entity": { - // "description": "The entity for customers that may run multiple different entities, domains, sites or regions, for example, `Google US`, `Google Ads`, `Waymo`, `google.com`, `youtube.com`, etc. If this is set, it should be exactly matched with UserEvent.entity to get per-entity autocomplete results.", + // "description": "The entity for customers who run multiple entities, domains, sites, or regions, for example, `Google US`, `Google Ads`, `Waymo`, `google.com`, `youtube.com`, etc. If this is set, it must be an exact match with UserEvent.entity to get per-entity autocomplete results.", // "location": "query", // "type": "string" // }, @@ -11830,9 +12128,9 @@ type ProjectsLocationsCatalogsBranchesProductsAddFulfillmentPlacesCall struct { header_ http.Header } -// AddFulfillmentPlaces: It is recommended to use the -// ProductService.AddLocalInventories method instead of -// ProductService.AddFulfillmentPlaces. +// AddFulfillmentPlaces: We recommend that you use the +// ProductService.AddLocalInventories method instead of the +// ProductService.AddFulfillmentPlaces method. // ProductService.AddLocalInventories achieves the same results but // provides more fine-grained control over ingesting local inventory // data. Incrementally adds place IDs to @@ -11950,7 +12248,7 @@ func (c *ProjectsLocationsCatalogsBranchesProductsAddFulfillmentPlacesCall) Do(o } return ret, nil // { - // "description": "It is recommended to use the ProductService.AddLocalInventories method instead of ProductService.AddFulfillmentPlaces. ProductService.AddLocalInventories achieves the same results but provides more fine-grained control over ingesting local inventory data. Incrementally adds place IDs to Product.fulfillment_info.place_ids. This process is asynchronous and does not require the Product to exist before updating fulfillment information. If the request is valid, the update will be enqueued and processed downstream. As a consequence, when a response is returned, the added place IDs are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. The returned Operations will be obsolete after 1 day, and GetOperation API will return NOT_FOUND afterwards. If conflicting updates are issued, the Operations associated with the stale updates will not be marked as done until being obsolete.", + // "description": "We recommend that you use the ProductService.AddLocalInventories method instead of the ProductService.AddFulfillmentPlaces method. ProductService.AddLocalInventories achieves the same results but provides more fine-grained control over ingesting local inventory data. Incrementally adds place IDs to Product.fulfillment_info.place_ids. This process is asynchronous and does not require the Product to exist before updating fulfillment information. If the request is valid, the update will be enqueued and processed downstream. As a consequence, when a response is returned, the added place IDs are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. The returned Operations will be obsolete after 1 day, and GetOperation API will return NOT_FOUND afterwards. If conflicting updates are issued, the Operations associated with the stale updates will not be marked as done until being obsolete.", // "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:addFulfillmentPlaces", // "httpMethod": "POST", // "id": "retail.projects.locations.catalogs.branches.products.addFulfillmentPlaces", @@ -13358,9 +13656,9 @@ type ProjectsLocationsCatalogsBranchesProductsRemoveFulfillmentPlacesCall struct header_ http.Header } -// RemoveFulfillmentPlaces: It is recommended to use the -// ProductService.RemoveLocalInventories method instead of -// ProductService.RemoveFulfillmentPlaces. +// RemoveFulfillmentPlaces: We recommend that you use the +// ProductService.RemoveLocalInventories method instead of the +// ProductService.RemoveFulfillmentPlaces method. // ProductService.RemoveLocalInventories achieves the same results but // provides more fine-grained control over ingesting local inventory // data. Incrementally removes place IDs from a @@ -13478,7 +13776,7 @@ func (c *ProjectsLocationsCatalogsBranchesProductsRemoveFulfillmentPlacesCall) D } return ret, nil // { - // "description": "It is recommended to use the ProductService.RemoveLocalInventories method instead of ProductService.RemoveFulfillmentPlaces. ProductService.RemoveLocalInventories achieves the same results but provides more fine-grained control over ingesting local inventory data. Incrementally removes place IDs from a Product.fulfillment_info.place_ids. This process is asynchronous and does not require the Product to exist before updating fulfillment information. If the request is valid, the update will be enqueued and processed downstream. As a consequence, when a response is returned, the removed place IDs are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. The returned Operations will be obsolete after 1 day, and GetOperation API will return NOT_FOUND afterwards. If conflicting updates are issued, the Operations associated with the stale updates will not be marked as done until being obsolete.", + // "description": "We recommend that you use the ProductService.RemoveLocalInventories method instead of the ProductService.RemoveFulfillmentPlaces method. ProductService.RemoveLocalInventories achieves the same results but provides more fine-grained control over ingesting local inventory data. Incrementally removes place IDs from a Product.fulfillment_info.place_ids. This process is asynchronous and does not require the Product to exist before updating fulfillment information. If the request is valid, the update will be enqueued and processed downstream. As a consequence, when a response is returned, the removed place IDs are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. The returned Operations will be obsolete after 1 day, and GetOperation API will return NOT_FOUND afterwards. If conflicting updates are issued, the Operations associated with the stale updates will not be marked as done until being obsolete.", // "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:removeFulfillmentPlaces", // "httpMethod": "POST", // "id": "retail.projects.locations.catalogs.branches.products.removeFulfillmentPlaces", @@ -14796,45 +15094,33 @@ func (c *ProjectsLocationsCatalogsControlsPatchCall) Do(opts ...googleapi.CallOp } -// method id "retail.projects.locations.catalogs.merchantCenterAccountLinks.createMerchantCenterAccountLink": +// method id "retail.projects.locations.catalogs.merchantCenterAccountLinks.create": -type ProjectsLocationsCatalogsMerchantCenterAccountLinksCreateMerchantCenterAccountLinkCall struct { +type ProjectsLocationsCatalogsMerchantCenterAccountLinksCreateCall struct { s *Service - name string + parent string googlecloudretailv2alphamerchantcenteraccountlink *GoogleCloudRetailV2alphaMerchantCenterAccountLink urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } -// CreateMerchantCenterAccountLink: Creates a MerchantCenterAccountLink. -// MerchantCenterAccountLink cannot be set to a different oneof field, -// if so an INVALID_ARGUMENT is returned. +// Create: Creates a MerchantCenterAccountLink. // -// - name: Output only. Immutable. Full resource name of the Merchant -// Center Account Link, such as -// `projects/*/locations/global/catalogs/default_catalog/merchantCenter -// AccountLinks/merchant_center_account_link`. -func (r *ProjectsLocationsCatalogsMerchantCenterAccountLinksService) CreateMerchantCenterAccountLink(name string, googlecloudretailv2alphamerchantcenteraccountlink *GoogleCloudRetailV2alphaMerchantCenterAccountLink) *ProjectsLocationsCatalogsMerchantCenterAccountLinksCreateMerchantCenterAccountLinkCall { - c := &ProjectsLocationsCatalogsMerchantCenterAccountLinksCreateMerchantCenterAccountLinkCall{s: r.s, urlParams_: make(gensupport.URLParams)} - c.name = name +// - parent: The branch resource where this MerchantCenterAccountLink +// will be created. Format: +// projects/{PROJECT_NUMBER}/locations/global/catalogs/{CATALOG_ID}}. +func (r *ProjectsLocationsCatalogsMerchantCenterAccountLinksService) Create(parent string, googlecloudretailv2alphamerchantcenteraccountlink *GoogleCloudRetailV2alphaMerchantCenterAccountLink) *ProjectsLocationsCatalogsMerchantCenterAccountLinksCreateCall { + c := &ProjectsLocationsCatalogsMerchantCenterAccountLinksCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)} + c.parent = parent c.googlecloudretailv2alphamerchantcenteraccountlink = googlecloudretailv2alphamerchantcenteraccountlink return c } -// Parent sets the optional parameter "parent": Required. The branch -// resource where this MerchantCenterAccountLink will be created. -// Format: -// projects/{PROJECT_NUMBER}/locations/global/catalogs/{CATALOG_ID}} -func (c *ProjectsLocationsCatalogsMerchantCenterAccountLinksCreateMerchantCenterAccountLinkCall) Parent(parent string) *ProjectsLocationsCatalogsMerchantCenterAccountLinksCreateMerchantCenterAccountLinkCall { - c.urlParams_.Set("parent", parent) - return c -} - // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. -func (c *ProjectsLocationsCatalogsMerchantCenterAccountLinksCreateMerchantCenterAccountLinkCall) Fields(s ...googleapi.Field) *ProjectsLocationsCatalogsMerchantCenterAccountLinksCreateMerchantCenterAccountLinkCall { +func (c *ProjectsLocationsCatalogsMerchantCenterAccountLinksCreateCall) Fields(s ...googleapi.Field) *ProjectsLocationsCatalogsMerchantCenterAccountLinksCreateCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } @@ -14842,21 +15128,21 @@ func (c *ProjectsLocationsCatalogsMerchantCenterAccountLinksCreateMerchantCenter // Context sets the context to be used in this call's Do method. Any // pending HTTP request will be aborted if the provided context is // canceled. -func (c *ProjectsLocationsCatalogsMerchantCenterAccountLinksCreateMerchantCenterAccountLinkCall) Context(ctx context.Context) *ProjectsLocationsCatalogsMerchantCenterAccountLinksCreateMerchantCenterAccountLinkCall { +func (c *ProjectsLocationsCatalogsMerchantCenterAccountLinksCreateCall) Context(ctx context.Context) *ProjectsLocationsCatalogsMerchantCenterAccountLinksCreateCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. -func (c *ProjectsLocationsCatalogsMerchantCenterAccountLinksCreateMerchantCenterAccountLinkCall) Header() http.Header { +func (c *ProjectsLocationsCatalogsMerchantCenterAccountLinksCreateCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } -func (c *ProjectsLocationsCatalogsMerchantCenterAccountLinksCreateMerchantCenterAccountLinkCall) doRequest(alt string) (*http.Response, error) { +func (c *ProjectsLocationsCatalogsMerchantCenterAccountLinksCreateCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) for k, v := range c.header_ { @@ -14871,7 +15157,7 @@ func (c *ProjectsLocationsCatalogsMerchantCenterAccountLinksCreateMerchantCenter reqHeaders.Set("Content-Type", "application/json") c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") - urls := googleapi.ResolveRelative(c.s.BasePath, "v2alpha/{+name}") + urls := googleapi.ResolveRelative(c.s.BasePath, "v2alpha/{+parent}/merchantCenterAccountLinks") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { @@ -14879,19 +15165,19 @@ func (c *ProjectsLocationsCatalogsMerchantCenterAccountLinksCreateMerchantCenter } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ - "name": c.name, + "parent": c.parent, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } -// Do executes the "retail.projects.locations.catalogs.merchantCenterAccountLinks.createMerchantCenterAccountLink" call. +// Do executes the "retail.projects.locations.catalogs.merchantCenterAccountLinks.create" call. // Exactly one of *GoogleLongrunningOperation or error will be non-nil. // Any non-2xx status code is an error. Response headers are in either // *GoogleLongrunningOperation.ServerResponse.Header or (if a response // was returned at all) in error.(*googleapi.Error).Header. Use // googleapi.IsNotModified to check whether the returned error was // because http.StatusNotModified was returned. -func (c *ProjectsLocationsCatalogsMerchantCenterAccountLinksCreateMerchantCenterAccountLinkCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, error) { +func (c *ProjectsLocationsCatalogsMerchantCenterAccountLinksCreateCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { @@ -14922,28 +15208,23 @@ func (c *ProjectsLocationsCatalogsMerchantCenterAccountLinksCreateMerchantCenter } return ret, nil // { - // "description": "Creates a MerchantCenterAccountLink. MerchantCenterAccountLink cannot be set to a different oneof field, if so an INVALID_ARGUMENT is returned.", - // "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/merchantCenterAccountLinks/{merchantCenterAccountLinksId}", + // "description": "Creates a MerchantCenterAccountLink.", + // "flatPath": "v2alpha/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/merchantCenterAccountLinks", // "httpMethod": "POST", - // "id": "retail.projects.locations.catalogs.merchantCenterAccountLinks.createMerchantCenterAccountLink", + // "id": "retail.projects.locations.catalogs.merchantCenterAccountLinks.create", // "parameterOrder": [ - // "name" + // "parent" // ], // "parameters": { - // "name": { - // "description": "Output only. Immutable. Full resource name of the Merchant Center Account Link, such as `projects/*/locations/global/catalogs/default_catalog/merchantCenterAccountLinks/merchant_center_account_link`.", - // "location": "path", - // "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/merchantCenterAccountLinks/[^/]+$", - // "required": true, - // "type": "string" - // }, // "parent": { // "description": "Required. The branch resource where this MerchantCenterAccountLink will be created. Format: projects/{PROJECT_NUMBER}/locations/global/catalogs/{CATALOG_ID}}", - // "location": "query", + // "location": "path", + // "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", + // "required": true, // "type": "string" // } // }, - // "path": "v2alpha/{+name}", + // "path": "v2alpha/{+parent}/merchantCenterAccountLinks", // "request": { // "$ref": "GoogleCloudRetailV2alphaMerchantCenterAccountLink" // }, @@ -17006,7 +17287,7 @@ type ProjectsLocationsCatalogsPlacementsSearchCall struct { // resource, such as // `projects/*/locations/global/catalogs/default_catalog/placements/def // ault_search`. This field is used to identify the serving config -// name and the set of models that will be used to make the search. +// name and the set of models that are used to make the search. func (r *ProjectsLocationsCatalogsPlacementsService) Search(placement string, googlecloudretailv2alphasearchrequest *GoogleCloudRetailV2alphaSearchRequest) *ProjectsLocationsCatalogsPlacementsSearchCall { c := &ProjectsLocationsCatalogsPlacementsSearchCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.placement = placement @@ -17115,7 +17396,7 @@ func (c *ProjectsLocationsCatalogsPlacementsSearchCall) Do(opts ...googleapi.Cal // ], // "parameters": { // "placement": { - // "description": "Required. The resource name of the Retail Search serving config, such as `projects/*/locations/global/catalogs/default_catalog/servingConfigs/default_serving_config` or the name of the legacy placement resource, such as `projects/*/locations/global/catalogs/default_catalog/placements/default_search`. This field is used to identify the serving config name and the set of models that will be used to make the search.", + // "description": "Required. The resource name of the Retail Search serving config, such as `projects/*/locations/global/catalogs/default_catalog/servingConfigs/default_serving_config` or the name of the legacy placement resource, such as `projects/*/locations/global/catalogs/default_catalog/placements/default_search`. This field is used to identify the serving config name and the set of models that are used to make the search.", // "location": "path", // "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/placements/[^/]+$", // "required": true, @@ -18434,7 +18715,7 @@ type ProjectsLocationsCatalogsServingConfigsSearchCall struct { // resource, such as // `projects/*/locations/global/catalogs/default_catalog/placements/def // ault_search`. This field is used to identify the serving config -// name and the set of models that will be used to make the search. +// name and the set of models that are used to make the search. func (r *ProjectsLocationsCatalogsServingConfigsService) Search(placement string, googlecloudretailv2alphasearchrequest *GoogleCloudRetailV2alphaSearchRequest) *ProjectsLocationsCatalogsServingConfigsSearchCall { c := &ProjectsLocationsCatalogsServingConfigsSearchCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.placement = placement @@ -18543,7 +18824,7 @@ func (c *ProjectsLocationsCatalogsServingConfigsSearchCall) Do(opts ...googleapi // ], // "parameters": { // "placement": { - // "description": "Required. The resource name of the Retail Search serving config, such as `projects/*/locations/global/catalogs/default_catalog/servingConfigs/default_serving_config` or the name of the legacy placement resource, such as `projects/*/locations/global/catalogs/default_catalog/placements/default_search`. This field is used to identify the serving config name and the set of models that will be used to make the search.", + // "description": "Required. The resource name of the Retail Search serving config, such as `projects/*/locations/global/catalogs/default_catalog/servingConfigs/default_serving_config` or the name of the legacy placement resource, such as `projects/*/locations/global/catalogs/default_catalog/placements/default_search`. This field is used to identify the serving config name and the set of models that are used to make the search.", // "location": "path", // "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/servingConfigs/[^/]+$", // "required": true, diff --git a/retail/v2beta/retail-api.json b/retail/v2beta/retail-api.json index 95b20c7a862..0bb08a2877f 100644 --- a/retail/v2beta/retail-api.json +++ b/retail/v2beta/retail-api.json @@ -138,7 +138,7 @@ "type": "string" }, "entity": { - "description": "The entity for customers that may run multiple different entities, domains, sites or regions, for example, `Google US`, `Google Ads`, `Waymo`, `google.com`, `youtube.com`, etc. If this is set, it should be exactly matched with UserEvent.entity to get per-entity autocomplete results.", + "description": "The entity for customers who run multiple entities, domains, sites, or regions, for example, `Google US`, `Google Ads`, `Waymo`, `google.com`, `youtube.com`, etc. If this is set, it must be an exact match with UserEvent.entity to get per-entity autocomplete results.", "location": "query", "type": "string" }, @@ -566,7 +566,7 @@ "products": { "methods": { "addFulfillmentPlaces": { - "description": "It is recommended to use the ProductService.AddLocalInventories method instead of ProductService.AddFulfillmentPlaces. ProductService.AddLocalInventories achieves the same results but provides more fine-grained control over ingesting local inventory data. Incrementally adds place IDs to Product.fulfillment_info.place_ids. This process is asynchronous and does not require the Product to exist before updating fulfillment information. If the request is valid, the update will be enqueued and processed downstream. As a consequence, when a response is returned, the added place IDs are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. The returned Operations will be obsolete after 1 day, and GetOperation API will return NOT_FOUND afterwards. If conflicting updates are issued, the Operations associated with the stale updates will not be marked as done until being obsolete.", + "description": "We recommend that you use the ProductService.AddLocalInventories method instead of the ProductService.AddFulfillmentPlaces method. ProductService.AddLocalInventories achieves the same results but provides more fine-grained control over ingesting local inventory data. Incrementally adds place IDs to Product.fulfillment_info.place_ids. This process is asynchronous and does not require the Product to exist before updating fulfillment information. If the request is valid, the update will be enqueued and processed downstream. As a consequence, when a response is returned, the added place IDs are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. The returned Operations will be obsolete after 1 day, and GetOperation API will return NOT_FOUND afterwards. If conflicting updates are issued, the Operations associated with the stale updates will not be marked as done until being obsolete.", "flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:addFulfillmentPlaces", "httpMethod": "POST", "id": "retail.projects.locations.catalogs.branches.products.addFulfillmentPlaces", @@ -819,7 +819,7 @@ ] }, "removeFulfillmentPlaces": { - "description": "It is recommended to use the ProductService.RemoveLocalInventories method instead of ProductService.RemoveFulfillmentPlaces. ProductService.RemoveLocalInventories achieves the same results but provides more fine-grained control over ingesting local inventory data. Incrementally removes place IDs from a Product.fulfillment_info.place_ids. This process is asynchronous and does not require the Product to exist before updating fulfillment information. If the request is valid, the update will be enqueued and processed downstream. As a consequence, when a response is returned, the removed place IDs are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. The returned Operations will be obsolete after 1 day, and GetOperation API will return NOT_FOUND afterwards. If conflicting updates are issued, the Operations associated with the stale updates will not be marked as done until being obsolete.", + "description": "We recommend that you use the ProductService.RemoveLocalInventories method instead of the ProductService.RemoveFulfillmentPlaces method. ProductService.RemoveLocalInventories achieves the same results but provides more fine-grained control over ingesting local inventory data. Incrementally removes place IDs from a Product.fulfillment_info.place_ids. This process is asynchronous and does not require the Product to exist before updating fulfillment information. If the request is valid, the update will be enqueued and processed downstream. As a consequence, when a response is returned, the removed place IDs are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. The returned Operations will be obsolete after 1 day, and GetOperation API will return NOT_FOUND afterwards. If conflicting updates are issued, the Operations associated with the stale updates will not be marked as done until being obsolete.", "flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:removeFulfillmentPlaces", "httpMethod": "POST", "id": "retail.projects.locations.catalogs.branches.products.removeFulfillmentPlaces", @@ -1451,7 +1451,7 @@ ], "parameters": { "placement": { - "description": "Required. The resource name of the Retail Search serving config, such as `projects/*/locations/global/catalogs/default_catalog/servingConfigs/default_serving_config` or the name of the legacy placement resource, such as `projects/*/locations/global/catalogs/default_catalog/placements/default_search`. This field is used to identify the serving config name and the set of models that will be used to make the search.", + "description": "Required. The resource name of the Retail Search serving config, such as `projects/*/locations/global/catalogs/default_catalog/servingConfigs/default_serving_config` or the name of the legacy placement resource, such as `projects/*/locations/global/catalogs/default_catalog/placements/default_search`. This field is used to identify the serving config name and the set of models that are used to make the search.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/placements/[^/]+$", "required": true, @@ -1720,7 +1720,7 @@ ], "parameters": { "placement": { - "description": "Required. The resource name of the Retail Search serving config, such as `projects/*/locations/global/catalogs/default_catalog/servingConfigs/default_serving_config` or the name of the legacy placement resource, such as `projects/*/locations/global/catalogs/default_catalog/placements/default_search`. This field is used to identify the serving config name and the set of models that will be used to make the search.", + "description": "Required. The resource name of the Retail Search serving config, such as `projects/*/locations/global/catalogs/default_catalog/servingConfigs/default_serving_config` or the name of the legacy placement resource, such as `projects/*/locations/global/catalogs/default_catalog/placements/default_search`. This field is used to identify the serving config name and the set of models that are used to make the search.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/servingConfigs/[^/]+$", "required": true, @@ -2059,7 +2059,7 @@ } } }, - "revision": "20230413", + "revision": "20230420", "rootUrl": "https://retail.googleapis.com/", "schemas": { "GoogleApiHttpBody": { @@ -2396,6 +2396,10 @@ "readOnly": true, "type": "string" }, + "modelFeaturesConfig": { + "$ref": "GoogleCloudRetailV2ModelModelFeaturesConfig", + "description": "Optional. Additional model features config." + }, "name": { "description": "Required. The fully qualified resource name of the model. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}` catalog_id has char limit of 50. recommendation_model_id has char limit of 40.", "type": "string" @@ -2477,6 +2481,38 @@ }, "type": "object" }, + "GoogleCloudRetailV2ModelFrequentlyBoughtTogetherFeaturesConfig": { + "description": "More configs of the frequently-bought-together model type.", + "id": "GoogleCloudRetailV2ModelFrequentlyBoughtTogetherFeaturesConfig", + "properties": { + "contextProductsType": { + "description": "Optional. Specifies the context of the model when used in predict requests. Only settable for the `frequently-bought-together` type. Will default to MULTI_CONTEXT if not specified.", + "enum": [ + "CONTEXT_PRODUCTS_TYPE_UNSPECIFIED", + "SINGLE_CONTEXT_PRODUCT", + "MULTIPLE_CONTEXT_PRODUCTS" + ], + "enumDescriptions": [ + "Unspecified default value, should never be explicitly set. Defaults to MULTIPLE_CONTEXT_PRODUCTS.", + "Use only a single product as context for the recommendation. Typically used on pages like add-to-cart or product details.", + "Use one or multiple products as context for the recommendation. Typically used on shopping cart pages." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2ModelModelFeaturesConfig": { + "description": "Additional model features config.", + "id": "GoogleCloudRetailV2ModelModelFeaturesConfig", + "properties": { + "frequentlyBoughtTogetherConfig": { + "$ref": "GoogleCloudRetailV2ModelFrequentlyBoughtTogetherFeaturesConfig", + "description": "Additional configs for frequently-bought-together models." + } + }, + "type": "object" + }, "GoogleCloudRetailV2ModelServingConfigList": { "description": "Represents an ordered combination of valid serving configs, which can be used for `PAGE_OPTIMIZATION` recommendations.", "id": "GoogleCloudRetailV2ModelServingConfigList", @@ -2979,6 +3015,10 @@ "readOnly": true, "type": "string" }, + "modelFeaturesConfig": { + "$ref": "GoogleCloudRetailV2alphaModelModelFeaturesConfig", + "description": "Optional. Additional model features config." + }, "name": { "description": "Required. The fully qualified resource name of the model. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}` catalog_id has char limit of 50. recommendation_model_id has char limit of 40.", "type": "string" @@ -3064,6 +3104,38 @@ }, "type": "object" }, + "GoogleCloudRetailV2alphaModelFrequentlyBoughtTogetherFeaturesConfig": { + "description": "More configs of the frequently-bought-together model type.", + "id": "GoogleCloudRetailV2alphaModelFrequentlyBoughtTogetherFeaturesConfig", + "properties": { + "contextProductsType": { + "description": "Optional. Specifies the context of the model when used in predict requests. Only settable for the `frequently-bought-together` type. Will default to MULTI_CONTEXT if not specified.", + "enum": [ + "CONTEXT_PRODUCTS_TYPE_UNSPECIFIED", + "SINGLE_CONTEXT_PRODUCT", + "MULTIPLE_CONTEXT_PRODUCTS" + ], + "enumDescriptions": [ + "Unspecified default value, should never be explicitly set. Defaults to MULTIPLE_CONTEXT_PRODUCTS.", + "Use only a single product as context for the recommendation. Typically used on pages like add-to-cart or product details.", + "Use one or multiple products as context for the recommendation. Typically used on shopping cart pages." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2alphaModelModelFeaturesConfig": { + "description": "Additional model features config.", + "id": "GoogleCloudRetailV2alphaModelModelFeaturesConfig", + "properties": { + "frequentlyBoughtTogetherConfig": { + "$ref": "GoogleCloudRetailV2alphaModelFrequentlyBoughtTogetherFeaturesConfig", + "description": "Additional configs for frequently-bought-together models." + } + }, + "type": "object" + }, "GoogleCloudRetailV2alphaModelPageOptimizationConfig": { "description": "The PageOptimizationConfig for model training. This determines how many panels to optimize for, and which serving configs to consider for each panel. The purpose of this model is to optimize which ServingConfig to show on which panels in way that optimizes the visitors shopping journey.", "id": "GoogleCloudRetailV2alphaModelPageOptimizationConfig", @@ -3748,7 +3820,7 @@ "type": "array" }, "recentSearchResults": { - "description": "Matched recent searches of this user. The maximum number of recent searches is 10. This field is a restricted feature. Contact Retail Search support team if you are interested in enabling it. This feature is only available when CompleteQueryRequest.visitor_id field is set and UserEvent is imported. The recent searches satisfy the follow rules: * They are ordered from latest to oldest. * They are matched with CompleteQueryRequest.query case insensitively. * They are transformed to lower case. * They are UTF-8 safe. Recent searches are deduplicated. More recent searches will be reserved when duplication happens.", + "description": "Matched recent searches of this user. The maximum number of recent searches is 10. This field is a restricted feature. If you want to enable it, contact Retail Search support. This feature is only available when CompleteQueryRequest.visitor_id field is set and UserEvent is imported. The recent searches satisfy the follow rules: * They are ordered from latest to oldest. * They are matched with CompleteQueryRequest.query case insensitively. * They are transformed to lower case. * They are UTF-8 safe. Recent searches are deduplicated. More recent searches will be reserved when duplication happens.", "items": { "$ref": "GoogleCloudRetailV2betaCompleteQueryResponseRecentSearchResult" }, @@ -3815,7 +3887,7 @@ "type": "string" }, "lastSuggestionsImportOperation": { - "description": "Output only. Name of the LRO corresponding to the latest suggestion terms list import. Can use GetOperation API to retrieve the latest state of the Long Running Operation.", + "description": "Output only. Name of the LRO corresponding to the latest suggestion terms list import. Can use GetOperation API method to retrieve the latest state of the Long Running Operation.", "readOnly": true, "type": "string" }, @@ -4053,7 +4125,7 @@ "type": "object" }, "GoogleCloudRetailV2betaExperimentInfo": { - "description": "Metadata for active A/B testing Experiments.", + "description": "Metadata for active A/B testing Experiment.", "id": "GoogleCloudRetailV2betaExperimentInfo", "properties": { "experiment": { @@ -4330,7 +4402,7 @@ "description": "Required. The desired input location of the data." }, "notificationPubsubTopic": { - "description": "Full Pub/Sub topic name for receiving notification. If this field is set, when the import is finished, a notification is sent to specified Pub/Sub topic. The message data is JSON string of a Operation. Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`. It has to be within the same project as ImportProductsRequest.parent. Make sure that `service-@gcp-sa-retail.iam.gserviceaccount.com` has the `pubsub.topics.publish` IAM permission on the topic.", + "description": "Full Pub/Sub topic name for receiving notification. If this field is set, when the import is finished, a notification is sent to specified Pub/Sub topic. The message data is JSON string of a Operation. Format of the Pub/Sub topic is `projects/{project}/topics/{topic}`. It has to be within the same project as ImportProductsRequest.parent. Make sure that both `cloud-retail-customer-data-access@system.gserviceaccount.com` and `service-@gcp-sa-retail.iam.gserviceaccount.com` have the `pubsub.topics.publish` IAM permission on the topic. Only supported when ImportProductsRequest.reconciliation_mode is set to `FULL`.", "type": "string" }, "reconciliationMode": { @@ -4756,6 +4828,10 @@ "readOnly": true, "type": "string" }, + "modelFeaturesConfig": { + "$ref": "GoogleCloudRetailV2betaModelModelFeaturesConfig", + "description": "Optional. Additional model features config." + }, "name": { "description": "Required. The fully qualified resource name of the model. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/models/{model_id}` catalog_id has char limit of 50. recommendation_model_id has char limit of 40.", "type": "string" @@ -4837,6 +4913,38 @@ }, "type": "object" }, + "GoogleCloudRetailV2betaModelFrequentlyBoughtTogetherFeaturesConfig": { + "description": "More configs of the frequently-bought-together model type.", + "id": "GoogleCloudRetailV2betaModelFrequentlyBoughtTogetherFeaturesConfig", + "properties": { + "contextProductsType": { + "description": "Optional. Specifies the context of the model when used in predict requests. Only settable for the `frequently-bought-together` type. Will default to MULTI_CONTEXT if not specified.", + "enum": [ + "CONTEXT_PRODUCTS_TYPE_UNSPECIFIED", + "SINGLE_CONTEXT_PRODUCT", + "MULTIPLE_CONTEXT_PRODUCTS" + ], + "enumDescriptions": [ + "Unspecified default value, should never be explicitly set. Defaults to MULTIPLE_CONTEXT_PRODUCTS.", + "Use only a single product as context for the recommendation. Typically used on pages like add-to-cart or product details.", + "Use one or multiple products as context for the recommendation. Typically used on shopping cart pages." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2betaModelModelFeaturesConfig": { + "description": "Additional model features config.", + "id": "GoogleCloudRetailV2betaModelModelFeaturesConfig", + "properties": { + "frequentlyBoughtTogetherConfig": { + "$ref": "GoogleCloudRetailV2betaModelFrequentlyBoughtTogetherFeaturesConfig", + "description": "Additional configs for frequently-bought-together models." + } + }, + "type": "object" + }, "GoogleCloudRetailV2betaModelServingConfigList": { "description": "Represents an ordered combination of valid serving configs, which can be used for `PAGE_OPTIMIZATION` recommendations.", "id": "GoogleCloudRetailV2betaModelServingConfigList", @@ -5654,7 +5762,7 @@ "id": "GoogleCloudRetailV2betaRuleFilterAction", "properties": { "filter": { - "description": "A filter to apply on the matching condition results. Supported features: * filter must be set. * Filter syntax is identical to SearchRequest.filter. See more details at the Retail Search [user guide](/retail/search/docs/filter-and-order#filter). * To filter products with product ID \"product_1\" or \"product_2\", and color \"Red\" or \"Blue\": *(id: ANY(\"product_1\", \"product_2\")) * *AND * *(colorFamilies: ANY(\"Red\", \"Blue\")) *", + "description": "A filter to apply on the matching condition results. Supported features: * filter must be set. * Filter syntax is identical to SearchRequest.filter. For more information, see [Filter](/retail/docs/filter-and-order#filter). * To filter products with product ID \"product_1\" or \"product_2\", and color \"Red\" or \"Blue\": *(id: ANY(\"product_1\", \"product_2\")) * *AND * *(colorFamilies: ANY(\"Red\", \"Blue\")) *", "type": "string" } }, @@ -5755,14 +5863,14 @@ "properties": { "boostSpec": { "$ref": "GoogleCloudRetailV2betaSearchRequestBoostSpec", - "description": "Boost specification to boost certain products. See more details at this [user guide](https://cloud.google.com/retail/docs/boosting). Notice that if both ServingConfig.boost_control_ids and SearchRequest.boost_spec are set, the boost conditions from both places are evaluated. If a search request matches multiple boost conditions, the final boost score is equal to the sum of the boost scores from all matched boost conditions." + "description": "Boost specification to boost certain products. For more information, see [Boost results](https://cloud.google.com/retail/docs/boosting). Notice that if both ServingConfig.boost_control_ids and SearchRequest.boost_spec are set, the boost conditions from both places are evaluated. If a search request matches multiple boost conditions, the final boost score is equal to the sum of the boost scores from all matched boost conditions." }, "branch": { "description": "The branch resource name, such as `projects/*/locations/global/catalogs/default_catalog/branches/0`. Use \"default_branch\" as the branch ID or leave this field empty, to search products under the default branch.", "type": "string" }, "canonicalFilter": { - "description": "The default filter that is applied when a user performs a search without checking any filters on the search page. The filter applied to every search request when quality improvement such as query expansion is needed. For example, if a query does not have enough results, an expanded query with SearchRequest.canonical_filter will be returned as a supplement of the original query. This field is strongly recommended to achieve high search quality. See SearchRequest.filter for more details about filter syntax.", + "description": "The default filter that is applied when a user performs a search without checking any filters on the search page. The filter applied to every search request when quality improvement such as query expansion is needed. For example, if a query does not have enough results, an expanded query with SearchRequest.canonical_filter is returned as a supplement of the original query. This field is strongly recommended to achieve high search quality. For more information about filter syntax, see SearchRequest.filter.", "type": "string" }, "dynamicFacetSpec": { @@ -5781,14 +5889,14 @@ "type": "array" }, "filter": { - "description": "The filter syntax consists of an expression language for constructing a predicate from one or more fields of the products being filtered. Filter expression is case-sensitive. See more details at this [user guide](https://cloud.google.com/retail/docs/filter-and-order#filter). If this field is unrecognizable, an INVALID_ARGUMENT is returned.", + "description": "The filter syntax consists of an expression language for constructing a predicate from one or more fields of the products being filtered. Filter expression is case-sensitive. For more information, see [Filter](https://cloud.google.com/retail/docs/filter-and-order#filter). If this field is unrecognizable, an INVALID_ARGUMENT is returned.", "type": "string" }, "labels": { "additionalProperties": { "type": "string" }, - "description": "The labels applied to a resource must meet the following requirements: * Each resource can have multiple labels, up to a maximum of 64. * Each label must be a key-value pair. * Keys have a minimum length of 1 character and a maximum length of 63 characters and cannot be empty. Values can be empty and have a maximum length of 63 characters. * Keys and values can contain only lowercase letters, numeric characters, underscores, and dashes. All characters must use UTF-8 encoding, and international characters are allowed. * The key portion of a label must be unique. However, you can use the same key with multiple resources. * Keys must start with a lowercase letter or international character. See [Google Cloud Document](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements) for more details.", + "description": "The labels applied to a resource must meet the following requirements: * Each resource can have multiple labels, up to a maximum of 64. * Each label must be a key-value pair. * Keys have a minimum length of 1 character and a maximum length of 63 characters and cannot be empty. Values can be empty and have a maximum length of 63 characters. * Keys and values can contain only lowercase letters, numeric characters, underscores, and dashes. All characters must use UTF-8 encoding, and international characters are allowed. * The key portion of a label must be unique. However, you can use the same key with multiple resources. * Keys must start with a lowercase letter or international character. For more information, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements) in the Resource Manager documentation.", "type": "object" }, "offset": { @@ -5797,7 +5905,7 @@ "type": "integer" }, "orderBy": { - "description": "The order in which products are returned. Products can be ordered by a field in an Product object. Leave it unset if ordered by relevance. OrderBy expression is case-sensitive. See more details at this [user guide](https://cloud.google.com/retail/docs/filter-and-order#order). If this field is unrecognizable, an INVALID_ARGUMENT is returned.", + "description": "The order in which products are returned. Products can be ordered by a field in an Product object. Leave it unset if ordered by relevance. OrderBy expression is case-sensitive. For more information, see [Order](https://cloud.google.com/retail/docs/filter-and-order#order). If this field is unrecognizable, an INVALID_ARGUMENT is returned.", "type": "string" }, "pageCategories": { @@ -5826,7 +5934,7 @@ }, "queryExpansionSpec": { "$ref": "GoogleCloudRetailV2betaSearchRequestQueryExpansionSpec", - "description": "The query expansion specification that specifies the conditions under which query expansion will occur. See more details at this [user guide](https://cloud.google.com/retail/docs/result-size#query_expansion)." + "description": "The query expansion specification that specifies the conditions under which query expansion occurs. For more information, see [Query expansion](https://cloud.google.com/retail/docs/result-size#query_expansion)." }, "searchMode": { "description": "The search mode of the search request. If not specified, a single search request triggers both product search and faceted search.", @@ -5924,7 +6032,7 @@ "id": "GoogleCloudRetailV2betaSearchRequestFacetSpec", "properties": { "enableDynamicPosition": { - "description": "Enables dynamic position for this facet. If set to true, the position of this facet among all facets in the response is determined by Google Retail Search. It will be ordered together with dynamic facets if dynamic facets is enabled. If set to false, the position of this facet in the response will be the same as in the request, and it will be ranked before the facets with dynamic position enable and all dynamic facets. For example, you may always want to have rating facet returned in the response, but it's not necessarily to always display the rating facet at the top. In that case, you can set enable_dynamic_position to true so that the position of rating facet in response will be determined by Google Retail Search. Another example, assuming you have the following facets in the request: * \"rating\", enable_dynamic_position = true * \"price\", enable_dynamic_position = false * \"brands\", enable_dynamic_position = false And also you have a dynamic facets enable, which will generate a facet 'gender'. Then the final order of the facets in the response can be (\"price\", \"brands\", \"rating\", \"gender\") or (\"price\", \"brands\", \"gender\", \"rating\") depends on how Google Retail Search orders \"gender\" and \"rating\" facets. However, notice that \"price\" and \"brands\" will always be ranked at 1st and 2nd position since their enable_dynamic_position are false.", + "description": "Enables dynamic position for this facet. If set to true, the position of this facet among all facets in the response is determined by Google Retail Search. It is ordered together with dynamic facets if dynamic facets is enabled. If set to false, the position of this facet in the response is the same as in the request, and it is ranked before the facets with dynamic position enable and all dynamic facets. For example, you may always want to have rating facet returned in the response, but it's not necessarily to always display the rating facet at the top. In that case, you can set enable_dynamic_position to true so that the position of rating facet in response is determined by Google Retail Search. Another example, assuming you have the following facets in the request: * \"rating\", enable_dynamic_position = true * \"price\", enable_dynamic_position = false * \"brands\", enable_dynamic_position = false And also you have a dynamic facets enable, which generates a facet \"gender\". Then, the final order of the facets in the response can be (\"price\", \"brands\", \"rating\", \"gender\") or (\"price\", \"brands\", \"gender\", \"rating\") depends on how Google Retail Search orders \"gender\" and \"rating\" facets. However, notice that \"price\" and \"brands\" are always ranked at first and second position because their enable_dynamic_position values are false.", "type": "boolean" }, "excludedFilterKeys": { @@ -5955,14 +6063,14 @@ "type": "boolean" }, "contains": { - "description": "Only get facet values that contains the given strings. For example, suppose \"categories\" has three values \"Women \u003e Shoe\", \"Women \u003e Dress\" and \"Men \u003e Shoe\". If set \"contains\" to \"Shoe\", the \"categories\" facet will give only \"Women \u003e Shoe\" and \"Men \u003e Shoe\". Only supported on textual fields. Maximum is 10.", + "description": "Only get facet values that contains the given strings. For example, suppose \"categories\" has three values \"Women \u003e Shoe\", \"Women \u003e Dress\" and \"Men \u003e Shoe\". If set \"contains\" to \"Shoe\", the \"categories\" facet gives only \"Women \u003e Shoe\" and \"Men \u003e Shoe\". Only supported on textual fields. Maximum is 10.", "items": { "type": "string" }, "type": "array" }, "intervals": { - "description": "Set only if values should be bucketized into intervals. Must be set for facets with numerical values. Must not be set for facet with text values. Maximum number of intervals is 40. For all numerical facet keys that appear in the list of products from the catalog, the percentiles 0, 10, 30, 50, 70, 90 and 100 are computed from their distribution weekly. If the model assigns a high score to a numerical facet key and its intervals are not specified in the search request, these percentiles will become the bounds for its intervals and will be returned in the response. If the facet key intervals are specified in the request, then the specified intervals will be returned instead.", + "description": "Set only if values should be bucketized into intervals. Must be set for facets with numerical values. Must not be set for facet with text values. Maximum number of intervals is 40. For all numerical facet keys that appear in the list of products from the catalog, the percentiles 0, 10, 30, 50, 70, 90, and 100 are computed from their distribution weekly. If the model assigns a high score to a numerical facet key and its intervals are not specified in the search request, these percentiles become the bounds for its intervals and are returned in the response. If the facet key intervals are specified in the request, then the specified intervals are returned instead.", "items": { "$ref": "GoogleCloudRetailV2betaInterval" }, @@ -5977,14 +6085,14 @@ "type": "string" }, "prefixes": { - "description": "Only get facet values that start with the given string prefix. For example, suppose \"categories\" has three values \"Women \u003e Shoe\", \"Women \u003e Dress\" and \"Men \u003e Shoe\". If set \"prefixes\" to \"Women\", the \"categories\" facet will give only \"Women \u003e Shoe\" and \"Women \u003e Dress\". Only supported on textual fields. Maximum is 10.", + "description": "Only get facet values that start with the given string prefix. For example, suppose \"categories\" has three values \"Women \u003e Shoe\", \"Women \u003e Dress\" and \"Men \u003e Shoe\". If set \"prefixes\" to \"Women\", the \"categories\" facet gives only \"Women \u003e Shoe\" and \"Women \u003e Dress\". Only supported on textual fields. Maximum is 10.", "items": { "type": "string" }, "type": "array" }, "query": { - "description": "The query that is used to compute facet for the given facet key. When provided, it will override the default behavior of facet computation. The query syntax is the same as a filter expression. See SearchRequest.filter for detail syntax and limitations. Notice that there is no limitation on FacetKey.key when query is specified. In the response, SearchResponse.Facet.values.value will be always \"1\" and SearchResponse.Facet.values.count will be the number of results that match the query. For example, you can set a customized facet for \"shipToStore\", where FacetKey.key is \"customizedShipToStore\", and FacetKey.query is \"availability: ANY(\\\"IN_STOCK\\\") AND shipToStore: ANY(\\\"123\\\")\". Then the facet will count the products that are both in stock and ship to store \"123\".", + "description": "The query that is used to compute facet for the given facet key. When provided, it overrides the default behavior of facet computation. The query syntax is the same as a filter expression. See SearchRequest.filter for detail syntax and limitations. Notice that there is no limitation on FacetKey.key when query is specified. In the response, SearchResponse.Facet.values.value is always \"1\" and SearchResponse.Facet.values.count is the number of results that match the query. For example, you can set a customized facet for \"shipToStore\", where FacetKey.key is \"customizedShipToStore\", and FacetKey.query is \"availability: ANY(\\\"IN_STOCK\\\") AND shipToStore: ANY(\\\"123\\\")\". Then the facet counts the products that are both in stock and ship to store \"123\".", "type": "string" }, "restrictedValues": { @@ -6481,7 +6589,7 @@ "description": "The main auto-completion details related to the event. This field should be set for `search` event when autocomplete function is enabled and the user clicks a suggestion for search." }, "entity": { - "description": "The entity for customers that may run multiple different entities, domains, sites or regions, for example, `Google US`, `Google Ads`, `Waymo`, `google.com`, `youtube.com`, etc. It is recommended to set this field to get better per-entity search, completion and prediction results.", + "description": "The entity for customers that may run multiple different entities, domains, sites or regions, for example, `Google US`, `Google Ads`, `Waymo`, `google.com`, `youtube.com`, etc. We recommend that you set this field to get better per-entity search, completion, and prediction results.", "type": "string" }, "eventTime": { diff --git a/retail/v2beta/retail-gen.go b/retail/v2beta/retail-gen.go index 97adb6f51e3..cbe62079b18 100644 --- a/retail/v2beta/retail-gen.go +++ b/retail/v2beta/retail-gen.go @@ -918,6 +918,9 @@ type GoogleCloudRetailV2Model struct { // tune finished. LastTuneTime string `json:"lastTuneTime,omitempty"` + // ModelFeaturesConfig: Optional. Additional model features config. + ModelFeaturesConfig *GoogleCloudRetailV2ModelModelFeaturesConfig `json:"modelFeaturesConfig,omitempty"` + // Name: Required. The fully qualified resource name of the model. // Format: // `projects/{project_number}/locations/{location_id}/catalogs/{catalog_i @@ -1035,6 +1038,82 @@ func (s *GoogleCloudRetailV2Model) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// GoogleCloudRetailV2ModelFrequentlyBoughtTogetherFeaturesConfig: More +// configs of the frequently-bought-together model type. +type GoogleCloudRetailV2ModelFrequentlyBoughtTogetherFeaturesConfig struct { + // ContextProductsType: Optional. Specifies the context of the model + // when used in predict requests. Only settable for the + // `frequently-bought-together` type. Will default to MULTI_CONTEXT if + // not specified. + // + // Possible values: + // "CONTEXT_PRODUCTS_TYPE_UNSPECIFIED" - Unspecified default value, + // should never be explicitly set. Defaults to + // MULTIPLE_CONTEXT_PRODUCTS. + // "SINGLE_CONTEXT_PRODUCT" - Use only a single product as context for + // the recommendation. Typically used on pages like add-to-cart or + // product details. + // "MULTIPLE_CONTEXT_PRODUCTS" - Use one or multiple products as + // context for the recommendation. Typically used on shopping cart + // pages. + ContextProductsType string `json:"contextProductsType,omitempty"` + + // ForceSendFields is a list of field names (e.g. "ContextProductsType") + // to unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "ContextProductsType") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudRetailV2ModelFrequentlyBoughtTogetherFeaturesConfig) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudRetailV2ModelFrequentlyBoughtTogetherFeaturesConfig + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleCloudRetailV2ModelModelFeaturesConfig: Additional model +// features config. +type GoogleCloudRetailV2ModelModelFeaturesConfig struct { + // FrequentlyBoughtTogetherConfig: Additional configs for + // frequently-bought-together models. + FrequentlyBoughtTogetherConfig *GoogleCloudRetailV2ModelFrequentlyBoughtTogetherFeaturesConfig `json:"frequentlyBoughtTogetherConfig,omitempty"` + + // ForceSendFields is a list of field names (e.g. + // "FrequentlyBoughtTogetherConfig") to unconditionally include in API + // requests. By default, fields with empty or default values are omitted + // from API requests. However, any non-pointer, non-interface field + // appearing in ForceSendFields will be sent to the server regardless of + // whether the field is empty or not. This may be used to include empty + // fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. + // "FrequentlyBoughtTogetherConfig") to include in API requests with the + // JSON null value. By default, fields with empty values are omitted + // from API requests. However, any field with an empty value appearing + // in NullFields will be sent to the server as null. It is an error if a + // field in this list has a non-empty value. This may be used to include + // null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudRetailV2ModelModelFeaturesConfig) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudRetailV2ModelModelFeaturesConfig + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // GoogleCloudRetailV2ModelServingConfigList: Represents an ordered // combination of valid serving configs, which can be used for // `PAGE_OPTIMIZATION` recommendations. @@ -1918,6 +1997,9 @@ type GoogleCloudRetailV2alphaModel struct { // tune finished. LastTuneTime string `json:"lastTuneTime,omitempty"` + // ModelFeaturesConfig: Optional. Additional model features config. + ModelFeaturesConfig *GoogleCloudRetailV2alphaModelModelFeaturesConfig `json:"modelFeaturesConfig,omitempty"` + // Name: Required. The fully qualified resource name of the model. // Format: // `projects/{project_number}/locations/{location_id}/catalogs/{catalog_i @@ -2038,6 +2120,82 @@ func (s *GoogleCloudRetailV2alphaModel) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// GoogleCloudRetailV2alphaModelFrequentlyBoughtTogetherFeaturesConfig: +// More configs of the frequently-bought-together model type. +type GoogleCloudRetailV2alphaModelFrequentlyBoughtTogetherFeaturesConfig struct { + // ContextProductsType: Optional. Specifies the context of the model + // when used in predict requests. Only settable for the + // `frequently-bought-together` type. Will default to MULTI_CONTEXT if + // not specified. + // + // Possible values: + // "CONTEXT_PRODUCTS_TYPE_UNSPECIFIED" - Unspecified default value, + // should never be explicitly set. Defaults to + // MULTIPLE_CONTEXT_PRODUCTS. + // "SINGLE_CONTEXT_PRODUCT" - Use only a single product as context for + // the recommendation. Typically used on pages like add-to-cart or + // product details. + // "MULTIPLE_CONTEXT_PRODUCTS" - Use one or multiple products as + // context for the recommendation. Typically used on shopping cart + // pages. + ContextProductsType string `json:"contextProductsType,omitempty"` + + // ForceSendFields is a list of field names (e.g. "ContextProductsType") + // to unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "ContextProductsType") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudRetailV2alphaModelFrequentlyBoughtTogetherFeaturesConfig) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudRetailV2alphaModelFrequentlyBoughtTogetherFeaturesConfig + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleCloudRetailV2alphaModelModelFeaturesConfig: Additional model +// features config. +type GoogleCloudRetailV2alphaModelModelFeaturesConfig struct { + // FrequentlyBoughtTogetherConfig: Additional configs for + // frequently-bought-together models. + FrequentlyBoughtTogetherConfig *GoogleCloudRetailV2alphaModelFrequentlyBoughtTogetherFeaturesConfig `json:"frequentlyBoughtTogetherConfig,omitempty"` + + // ForceSendFields is a list of field names (e.g. + // "FrequentlyBoughtTogetherConfig") to unconditionally include in API + // requests. By default, fields with empty or default values are omitted + // from API requests. However, any non-pointer, non-interface field + // appearing in ForceSendFields will be sent to the server regardless of + // whether the field is empty or not. This may be used to include empty + // fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. + // "FrequentlyBoughtTogetherConfig") to include in API requests with the + // JSON null value. By default, fields with empty values are omitted + // from API requests. However, any field with an empty value appearing + // in NullFields will be sent to the server as null. It is an error if a + // field in this list has a non-empty value. This may be used to include + // null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudRetailV2alphaModelModelFeaturesConfig) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudRetailV2alphaModelModelFeaturesConfig + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // GoogleCloudRetailV2alphaModelPageOptimizationConfig: The // PageOptimizationConfig for model training. This determines how many // panels to optimize for, and which serving configs to consider for @@ -3327,15 +3485,14 @@ type GoogleCloudRetailV2betaCompleteQueryResponse struct { // RecentSearchResults: Matched recent searches of this user. The // maximum number of recent searches is 10. This field is a restricted - // feature. Contact Retail Search support team if you are interested in - // enabling it. This feature is only available when - // CompleteQueryRequest.visitor_id field is set and UserEvent is - // imported. The recent searches satisfy the follow rules: * They are - // ordered from latest to oldest. * They are matched with - // CompleteQueryRequest.query case insensitively. * They are transformed - // to lower case. * They are UTF-8 safe. Recent searches are - // deduplicated. More recent searches will be reserved when duplication - // happens. + // feature. If you want to enable it, contact Retail Search support. + // This feature is only available when CompleteQueryRequest.visitor_id + // field is set and UserEvent is imported. The recent searches satisfy + // the follow rules: * They are ordered from latest to oldest. * They + // are matched with CompleteQueryRequest.query case insensitively. * + // They are transformed to lower case. * They are UTF-8 safe. Recent + // searches are deduplicated. More recent searches will be reserved when + // duplication happens. RecentSearchResults []*GoogleCloudRetailV2betaCompleteQueryResponseRecentSearchResult `json:"recentSearchResults,omitempty"` // ServerResponse contains the HTTP response code and headers from the @@ -3460,8 +3617,8 @@ type GoogleCloudRetailV2betaCompletionConfig struct { // LastSuggestionsImportOperation: Output only. Name of the LRO // corresponding to the latest suggestion terms list import. Can use - // GetOperation API to retrieve the latest state of the Long Running - // Operation. + // GetOperation API method to retrieve the latest state of the Long + // Running Operation. LastSuggestionsImportOperation string `json:"lastSuggestionsImportOperation,omitempty"` // MatchingOrder: Specifies the matching order for autocomplete @@ -3918,7 +4075,7 @@ func (s *GoogleCloudRetailV2betaCustomAttribute) MarshalJSON() ([]byte, error) { } // GoogleCloudRetailV2betaExperimentInfo: Metadata for active A/B -// testing Experiments. +// testing Experiment. type GoogleCloudRetailV2betaExperimentInfo struct { // Experiment: The fully qualified resource name of the experiment that // provides the serving config under test, should an active experiment @@ -4514,9 +4671,11 @@ type GoogleCloudRetailV2betaImportProductsRequest struct { // notification is sent to specified Pub/Sub topic. The message data is // JSON string of a Operation. Format of the Pub/Sub topic is // `projects/{project}/topics/{topic}`. It has to be within the same - // project as ImportProductsRequest.parent. Make sure that - // `service-@gcp-sa-retail.iam.gserviceaccount.com` has the - // `pubsub.topics.publish` IAM permission on the topic. + // project as ImportProductsRequest.parent. Make sure that both + // `cloud-retail-customer-data-access@system.gserviceaccount.com` and + // `service-@gcp-sa-retail.iam.gserviceaccount.com` have the + // `pubsub.topics.publish` IAM permission on the topic. Only supported + // when ImportProductsRequest.reconciliation_mode is set to `FULL`. NotificationPubsubTopic string `json:"notificationPubsubTopic,omitempty"` // ReconciliationMode: The mode of reconciliation between existing @@ -5274,6 +5433,9 @@ type GoogleCloudRetailV2betaModel struct { // tune finished. LastTuneTime string `json:"lastTuneTime,omitempty"` + // ModelFeaturesConfig: Optional. Additional model features config. + ModelFeaturesConfig *GoogleCloudRetailV2betaModelModelFeaturesConfig `json:"modelFeaturesConfig,omitempty"` + // Name: Required. The fully qualified resource name of the model. // Format: // `projects/{project_number}/locations/{location_id}/catalogs/{catalog_i @@ -5395,6 +5557,82 @@ func (s *GoogleCloudRetailV2betaModel) MarshalJSON() ([]byte, error) { return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } +// GoogleCloudRetailV2betaModelFrequentlyBoughtTogetherFeaturesConfig: +// More configs of the frequently-bought-together model type. +type GoogleCloudRetailV2betaModelFrequentlyBoughtTogetherFeaturesConfig struct { + // ContextProductsType: Optional. Specifies the context of the model + // when used in predict requests. Only settable for the + // `frequently-bought-together` type. Will default to MULTI_CONTEXT if + // not specified. + // + // Possible values: + // "CONTEXT_PRODUCTS_TYPE_UNSPECIFIED" - Unspecified default value, + // should never be explicitly set. Defaults to + // MULTIPLE_CONTEXT_PRODUCTS. + // "SINGLE_CONTEXT_PRODUCT" - Use only a single product as context for + // the recommendation. Typically used on pages like add-to-cart or + // product details. + // "MULTIPLE_CONTEXT_PRODUCTS" - Use one or multiple products as + // context for the recommendation. Typically used on shopping cart + // pages. + ContextProductsType string `json:"contextProductsType,omitempty"` + + // ForceSendFields is a list of field names (e.g. "ContextProductsType") + // to unconditionally include in API requests. By default, fields with + // empty or default values are omitted from API requests. However, any + // non-pointer, non-interface field appearing in ForceSendFields will be + // sent to the server regardless of whether the field is empty or not. + // This may be used to include empty fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. "ContextProductsType") to + // include in API requests with the JSON null value. By default, fields + // with empty values are omitted from API requests. However, any field + // with an empty value appearing in NullFields will be sent to the + // server as null. It is an error if a field in this list has a + // non-empty value. This may be used to include null fields in Patch + // requests. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudRetailV2betaModelFrequentlyBoughtTogetherFeaturesConfig) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudRetailV2betaModelFrequentlyBoughtTogetherFeaturesConfig + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + +// GoogleCloudRetailV2betaModelModelFeaturesConfig: Additional model +// features config. +type GoogleCloudRetailV2betaModelModelFeaturesConfig struct { + // FrequentlyBoughtTogetherConfig: Additional configs for + // frequently-bought-together models. + FrequentlyBoughtTogetherConfig *GoogleCloudRetailV2betaModelFrequentlyBoughtTogetherFeaturesConfig `json:"frequentlyBoughtTogetherConfig,omitempty"` + + // ForceSendFields is a list of field names (e.g. + // "FrequentlyBoughtTogetherConfig") to unconditionally include in API + // requests. By default, fields with empty or default values are omitted + // from API requests. However, any non-pointer, non-interface field + // appearing in ForceSendFields will be sent to the server regardless of + // whether the field is empty or not. This may be used to include empty + // fields in Patch requests. + ForceSendFields []string `json:"-"` + + // NullFields is a list of field names (e.g. + // "FrequentlyBoughtTogetherConfig") to include in API requests with the + // JSON null value. By default, fields with empty values are omitted + // from API requests. However, any field with an empty value appearing + // in NullFields will be sent to the server as null. It is an error if a + // field in this list has a non-empty value. This may be used to include + // null fields in Patch requests. + NullFields []string `json:"-"` +} + +func (s *GoogleCloudRetailV2betaModelModelFeaturesConfig) MarshalJSON() ([]byte, error) { + type NoMethod GoogleCloudRetailV2betaModelModelFeaturesConfig + raw := NoMethod(*s) + return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) +} + // GoogleCloudRetailV2betaModelServingConfigList: Represents an ordered // combination of valid serving configs, which can be used for // `PAGE_OPTIMIZATION` recommendations. @@ -7045,11 +7283,11 @@ func (s *GoogleCloudRetailV2betaRuleDoNotAssociateAction) MarshalJSON() ([]byte, type GoogleCloudRetailV2betaRuleFilterAction struct { // Filter: A filter to apply on the matching condition results. // Supported features: * filter must be set. * Filter syntax is - // identical to SearchRequest.filter. See more details at the Retail - // Search user guide (/retail/search/docs/filter-and-order#filter). * To - // filter products with product ID "product_1" or "product_2", and color - // "Red" or "Blue": *(id: ANY("product_1", "product_2")) * *AND * - // *(colorFamilies: ANY("Red", "Blue")) * + // identical to SearchRequest.filter. For more information, see Filter + // (/retail/docs/filter-and-order#filter). * To filter products with + // product ID "product_1" or "product_2", and color "Red" or "Blue": + // *(id: ANY("product_1", "product_2")) * *AND * *(colorFamilies: + // ANY("Red", "Blue")) * Filter string `json:"filter,omitempty"` // ForceSendFields is a list of field names (e.g. "Filter") to @@ -7249,8 +7487,8 @@ func (s *GoogleCloudRetailV2betaRuleTwowaySynonymsAction) MarshalJSON() ([]byte, // GoogleCloudRetailV2betaSearchRequest: Request message for // SearchService.Search method. type GoogleCloudRetailV2betaSearchRequest struct { - // BoostSpec: Boost specification to boost certain products. See more - // details at this user guide + // BoostSpec: Boost specification to boost certain products. For more + // information, see Boost results // (https://cloud.google.com/retail/docs/boosting). Notice that if both // ServingConfig.boost_control_ids and SearchRequest.boost_spec are set, // the boost conditions from both places are evaluated. If a search @@ -7270,10 +7508,10 @@ type GoogleCloudRetailV2betaSearchRequest struct { // The filter applied to every search request when quality improvement // such as query expansion is needed. For example, if a query does not // have enough results, an expanded query with - // SearchRequest.canonical_filter will be returned as a supplement of - // the original query. This field is strongly recommended to achieve - // high search quality. See SearchRequest.filter for more details about - // filter syntax. + // SearchRequest.canonical_filter is returned as a supplement of the + // original query. This field is strongly recommended to achieve high + // search quality. For more information about filter syntax, see + // SearchRequest.filter. CanonicalFilter string `json:"canonicalFilter,omitempty"` // DynamicFacetSpec: Deprecated. Refer to @@ -7297,8 +7535,8 @@ type GoogleCloudRetailV2betaSearchRequest struct { // Filter: The filter syntax consists of an expression language for // constructing a predicate from one or more fields of the products - // being filtered. Filter expression is case-sensitive. See more details - // at this user guide + // being filtered. Filter expression is case-sensitive. For more + // information, see Filter // (https://cloud.google.com/retail/docs/filter-and-order#filter). If // this field is unrecognizable, an INVALID_ARGUMENT is returned. Filter string `json:"filter,omitempty"` @@ -7313,9 +7551,10 @@ type GoogleCloudRetailV2betaSearchRequest struct { // UTF-8 encoding, and international characters are allowed. * The key // portion of a label must be unique. However, you can use the same key // with multiple resources. * Keys must start with a lowercase letter or - // international character. See Google Cloud Document + // international character. For more information, see Requirements for + // labels // (https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements) - // for more details. + // in the Resource Manager documentation. Labels map[string]string `json:"labels,omitempty"` // Offset: A 0-indexed integer that specifies the current offset (that @@ -7327,8 +7566,8 @@ type GoogleCloudRetailV2betaSearchRequest struct { // OrderBy: The order in which products are returned. Products can be // ordered by a field in an Product object. Leave it unset if ordered by - // relevance. OrderBy expression is case-sensitive. See more details at - // this user guide + // relevance. OrderBy expression is case-sensitive. For more + // information, see Order // (https://cloud.google.com/retail/docs/filter-and-order#order). If // this field is unrecognizable, an INVALID_ARGUMENT is returned. OrderBy string `json:"orderBy,omitempty"` @@ -7370,8 +7609,8 @@ type GoogleCloudRetailV2betaSearchRequest struct { Query string `json:"query,omitempty"` // QueryExpansionSpec: The query expansion specification that specifies - // the conditions under which query expansion will occur. See more - // details at this user guide + // the conditions under which query expansion occurs. For more + // information, see Query expansion // (https://cloud.google.com/retail/docs/result-size#query_expansion). QueryExpansionSpec *GoogleCloudRetailV2betaSearchRequestQueryExpansionSpec `json:"queryExpansionSpec,omitempty"` @@ -7610,25 +7849,25 @@ func (s *GoogleCloudRetailV2betaSearchRequestDynamicFacetSpec) MarshalJSON() ([] type GoogleCloudRetailV2betaSearchRequestFacetSpec struct { // EnableDynamicPosition: Enables dynamic position for this facet. If // set to true, the position of this facet among all facets in the - // response is determined by Google Retail Search. It will be ordered + // response is determined by Google Retail Search. It is ordered // together with dynamic facets if dynamic facets is enabled. If set to - // false, the position of this facet in the response will be the same as - // in the request, and it will be ranked before the facets with dynamic - // position enable and all dynamic facets. For example, you may always - // want to have rating facet returned in the response, but it's not - // necessarily to always display the rating facet at the top. In that - // case, you can set enable_dynamic_position to true so that the - // position of rating facet in response will be determined by Google - // Retail Search. Another example, assuming you have the following - // facets in the request: * "rating", enable_dynamic_position = true * - // "price", enable_dynamic_position = false * "brands", - // enable_dynamic_position = false And also you have a dynamic facets - // enable, which will generate a facet 'gender'. Then the final order of - // the facets in the response can be ("price", "brands", "rating", - // "gender") or ("price", "brands", "gender", "rating") depends on how - // Google Retail Search orders "gender" and "rating" facets. However, - // notice that "price" and "brands" will always be ranked at 1st and 2nd - // position since their enable_dynamic_position are false. + // false, the position of this facet in the response is the same as in + // the request, and it is ranked before the facets with dynamic position + // enable and all dynamic facets. For example, you may always want to + // have rating facet returned in the response, but it's not necessarily + // to always display the rating facet at the top. In that case, you can + // set enable_dynamic_position to true so that the position of rating + // facet in response is determined by Google Retail Search. Another + // example, assuming you have the following facets in the request: * + // "rating", enable_dynamic_position = true * "price", + // enable_dynamic_position = false * "brands", enable_dynamic_position = + // false And also you have a dynamic facets enable, which generates a + // facet "gender". Then, the final order of the facets in the response + // can be ("price", "brands", "rating", "gender") or ("price", "brands", + // "gender", "rating") depends on how Google Retail Search orders + // "gender" and "rating" facets. However, notice that "price" and + // "brands" are always ranked at first and second position because their + // enable_dynamic_position values are false. EnableDynamicPosition bool `json:"enableDynamicPosition,omitempty"` // ExcludedFilterKeys: List of keys to exclude when faceting. By @@ -7696,21 +7935,21 @@ type GoogleCloudRetailV2betaSearchRequestFacetSpecFacetKey struct { // Contains: Only get facet values that contains the given strings. For // example, suppose "categories" has three values "Women > Shoe", "Women // > Dress" and "Men > Shoe". If set "contains" to "Shoe", the - // "categories" facet will give only "Women > Shoe" and "Men > Shoe". - // Only supported on textual fields. Maximum is 10. + // "categories" facet gives only "Women > Shoe" and "Men > Shoe". Only + // supported on textual fields. Maximum is 10. Contains []string `json:"contains,omitempty"` // Intervals: Set only if values should be bucketized into intervals. // Must be set for facets with numerical values. Must not be set for // facet with text values. Maximum number of intervals is 40. For all // numerical facet keys that appear in the list of products from the - // catalog, the percentiles 0, 10, 30, 50, 70, 90 and 100 are computed + // catalog, the percentiles 0, 10, 30, 50, 70, 90, and 100 are computed // from their distribution weekly. If the model assigns a high score to // a numerical facet key and its intervals are not specified in the - // search request, these percentiles will become the bounds for its - // intervals and will be returned in the response. If the facet key - // intervals are specified in the request, then the specified intervals - // will be returned instead. + // search request, these percentiles become the bounds for its intervals + // and are returned in the response. If the facet key intervals are + // specified in the request, then the specified intervals are returned + // instead. Intervals []*GoogleCloudRetailV2betaInterval `json:"intervals,omitempty"` // Key: Required. Supported textual and numerical facet keys in Product @@ -7742,22 +7981,22 @@ type GoogleCloudRetailV2betaSearchRequestFacetSpecFacetKey struct { // Prefixes: Only get facet values that start with the given string // prefix. For example, suppose "categories" has three values "Women > // Shoe", "Women > Dress" and "Men > Shoe". If set "prefixes" to - // "Women", the "categories" facet will give only "Women > Shoe" and - // "Women > Dress". Only supported on textual fields. Maximum is 10. + // "Women", the "categories" facet gives only "Women > Shoe" and "Women + // > Dress". Only supported on textual fields. Maximum is 10. Prefixes []string `json:"prefixes,omitempty"` // Query: The query that is used to compute facet for the given facet - // key. When provided, it will override the default behavior of facet + // key. When provided, it overrides the default behavior of facet // computation. The query syntax is the same as a filter expression. See // SearchRequest.filter for detail syntax and limitations. Notice that // there is no limitation on FacetKey.key when query is specified. In - // the response, SearchResponse.Facet.values.value will be always "1" - // and SearchResponse.Facet.values.count will be the number of results - // that match the query. For example, you can set a customized facet for + // the response, SearchResponse.Facet.values.value is always "1" and + // SearchResponse.Facet.values.count is the number of results that match + // the query. For example, you can set a customized facet for // "shipToStore", where FacetKey.key is "customizedShipToStore", and // FacetKey.query is "availability: ANY(\"IN_STOCK\") AND shipToStore: - // ANY(\"123\")". Then the facet will count the products that are both - // in stock and ship to store "123". + // ANY(\"123\")". Then the facet counts the products that are both in + // stock and ship to store "123". Query string `json:"query,omitempty"` // RestrictedValues: Only get facet for the given restricted values. For @@ -8616,9 +8855,9 @@ type GoogleCloudRetailV2betaUserEvent struct { // Entity: The entity for customers that may run multiple different // entities, domains, sites or regions, for example, `Google US`, - // `Google Ads`, `Waymo`, `google.com`, `youtube.com`, etc. It is - // recommended to set this field to get better per-entity search, - // completion and prediction results. + // `Google Ads`, `Waymo`, `google.com`, `youtube.com`, etc. We recommend + // that you set this field to get better per-entity search, completion, + // and prediction results. Entity string `json:"entity,omitempty"` // EventTime: Only required for UserEventService.ImportUserEvents @@ -9191,10 +9430,10 @@ func (c *ProjectsLocationsCatalogsCompleteQueryCall) DeviceType(deviceType strin } // Entity sets the optional parameter "entity": The entity for customers -// that may run multiple different entities, domains, sites or regions, -// for example, `Google US`, `Google Ads`, `Waymo`, `google.com`, -// `youtube.com`, etc. If this is set, it should be exactly matched with -// UserEvent.entity to get per-entity autocomplete results. +// who run multiple entities, domains, sites, or regions, for example, +// `Google US`, `Google Ads`, `Waymo`, `google.com`, `youtube.com`, etc. +// If this is set, it must be an exact match with UserEvent.entity to +// get per-entity autocomplete results. func (c *ProjectsLocationsCatalogsCompleteQueryCall) Entity(entity string) *ProjectsLocationsCatalogsCompleteQueryCall { c.urlParams_.Set("entity", entity) return c @@ -9372,7 +9611,7 @@ func (c *ProjectsLocationsCatalogsCompleteQueryCall) Do(opts ...googleapi.CallOp // "type": "string" // }, // "entity": { - // "description": "The entity for customers that may run multiple different entities, domains, sites or regions, for example, `Google US`, `Google Ads`, `Waymo`, `google.com`, `youtube.com`, etc. If this is set, it should be exactly matched with UserEvent.entity to get per-entity autocomplete results.", + // "description": "The entity for customers who run multiple entities, domains, sites, or regions, for example, `Google US`, `Google Ads`, `Waymo`, `google.com`, `youtube.com`, etc. If this is set, it must be an exact match with UserEvent.entity to get per-entity autocomplete results.", // "location": "query", // "type": "string" // }, @@ -11461,9 +11700,9 @@ type ProjectsLocationsCatalogsBranchesProductsAddFulfillmentPlacesCall struct { header_ http.Header } -// AddFulfillmentPlaces: It is recommended to use the -// ProductService.AddLocalInventories method instead of -// ProductService.AddFulfillmentPlaces. +// AddFulfillmentPlaces: We recommend that you use the +// ProductService.AddLocalInventories method instead of the +// ProductService.AddFulfillmentPlaces method. // ProductService.AddLocalInventories achieves the same results but // provides more fine-grained control over ingesting local inventory // data. Incrementally adds place IDs to @@ -11581,7 +11820,7 @@ func (c *ProjectsLocationsCatalogsBranchesProductsAddFulfillmentPlacesCall) Do(o } return ret, nil // { - // "description": "It is recommended to use the ProductService.AddLocalInventories method instead of ProductService.AddFulfillmentPlaces. ProductService.AddLocalInventories achieves the same results but provides more fine-grained control over ingesting local inventory data. Incrementally adds place IDs to Product.fulfillment_info.place_ids. This process is asynchronous and does not require the Product to exist before updating fulfillment information. If the request is valid, the update will be enqueued and processed downstream. As a consequence, when a response is returned, the added place IDs are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. The returned Operations will be obsolete after 1 day, and GetOperation API will return NOT_FOUND afterwards. If conflicting updates are issued, the Operations associated with the stale updates will not be marked as done until being obsolete.", + // "description": "We recommend that you use the ProductService.AddLocalInventories method instead of the ProductService.AddFulfillmentPlaces method. ProductService.AddLocalInventories achieves the same results but provides more fine-grained control over ingesting local inventory data. Incrementally adds place IDs to Product.fulfillment_info.place_ids. This process is asynchronous and does not require the Product to exist before updating fulfillment information. If the request is valid, the update will be enqueued and processed downstream. As a consequence, when a response is returned, the added place IDs are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. The returned Operations will be obsolete after 1 day, and GetOperation API will return NOT_FOUND afterwards. If conflicting updates are issued, the Operations associated with the stale updates will not be marked as done until being obsolete.", // "flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:addFulfillmentPlaces", // "httpMethod": "POST", // "id": "retail.projects.locations.catalogs.branches.products.addFulfillmentPlaces", @@ -12806,9 +13045,9 @@ type ProjectsLocationsCatalogsBranchesProductsRemoveFulfillmentPlacesCall struct header_ http.Header } -// RemoveFulfillmentPlaces: It is recommended to use the -// ProductService.RemoveLocalInventories method instead of -// ProductService.RemoveFulfillmentPlaces. +// RemoveFulfillmentPlaces: We recommend that you use the +// ProductService.RemoveLocalInventories method instead of the +// ProductService.RemoveFulfillmentPlaces method. // ProductService.RemoveLocalInventories achieves the same results but // provides more fine-grained control over ingesting local inventory // data. Incrementally removes place IDs from a @@ -12926,7 +13165,7 @@ func (c *ProjectsLocationsCatalogsBranchesProductsRemoveFulfillmentPlacesCall) D } return ret, nil // { - // "description": "It is recommended to use the ProductService.RemoveLocalInventories method instead of ProductService.RemoveFulfillmentPlaces. ProductService.RemoveLocalInventories achieves the same results but provides more fine-grained control over ingesting local inventory data. Incrementally removes place IDs from a Product.fulfillment_info.place_ids. This process is asynchronous and does not require the Product to exist before updating fulfillment information. If the request is valid, the update will be enqueued and processed downstream. As a consequence, when a response is returned, the removed place IDs are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. The returned Operations will be obsolete after 1 day, and GetOperation API will return NOT_FOUND afterwards. If conflicting updates are issued, the Operations associated with the stale updates will not be marked as done until being obsolete.", + // "description": "We recommend that you use the ProductService.RemoveLocalInventories method instead of the ProductService.RemoveFulfillmentPlaces method. ProductService.RemoveLocalInventories achieves the same results but provides more fine-grained control over ingesting local inventory data. Incrementally removes place IDs from a Product.fulfillment_info.place_ids. This process is asynchronous and does not require the Product to exist before updating fulfillment information. If the request is valid, the update will be enqueued and processed downstream. As a consequence, when a response is returned, the removed place IDs are not immediately manifested in the Product queried by ProductService.GetProduct or ProductService.ListProducts. The returned Operations will be obsolete after 1 day, and GetOperation API will return NOT_FOUND afterwards. If conflicting updates are issued, the Operations associated with the stale updates will not be marked as done until being obsolete.", // "flatPath": "v2beta/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/branches/{branchesId}/products/{productsId}:removeFulfillmentPlaces", // "httpMethod": "POST", // "id": "retail.projects.locations.catalogs.branches.products.removeFulfillmentPlaces", @@ -16005,7 +16244,7 @@ type ProjectsLocationsCatalogsPlacementsSearchCall struct { // resource, such as // `projects/*/locations/global/catalogs/default_catalog/placements/def // ault_search`. This field is used to identify the serving config -// name and the set of models that will be used to make the search. +// name and the set of models that are used to make the search. func (r *ProjectsLocationsCatalogsPlacementsService) Search(placement string, googlecloudretailv2betasearchrequest *GoogleCloudRetailV2betaSearchRequest) *ProjectsLocationsCatalogsPlacementsSearchCall { c := &ProjectsLocationsCatalogsPlacementsSearchCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.placement = placement @@ -16114,7 +16353,7 @@ func (c *ProjectsLocationsCatalogsPlacementsSearchCall) Do(opts ...googleapi.Cal // ], // "parameters": { // "placement": { - // "description": "Required. The resource name of the Retail Search serving config, such as `projects/*/locations/global/catalogs/default_catalog/servingConfigs/default_serving_config` or the name of the legacy placement resource, such as `projects/*/locations/global/catalogs/default_catalog/placements/default_search`. This field is used to identify the serving config name and the set of models that will be used to make the search.", + // "description": "Required. The resource name of the Retail Search serving config, such as `projects/*/locations/global/catalogs/default_catalog/servingConfigs/default_serving_config` or the name of the legacy placement resource, such as `projects/*/locations/global/catalogs/default_catalog/placements/default_search`. This field is used to identify the serving config name and the set of models that are used to make the search.", // "location": "path", // "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/placements/[^/]+$", // "required": true, @@ -17433,7 +17672,7 @@ type ProjectsLocationsCatalogsServingConfigsSearchCall struct { // resource, such as // `projects/*/locations/global/catalogs/default_catalog/placements/def // ault_search`. This field is used to identify the serving config -// name and the set of models that will be used to make the search. +// name and the set of models that are used to make the search. func (r *ProjectsLocationsCatalogsServingConfigsService) Search(placement string, googlecloudretailv2betasearchrequest *GoogleCloudRetailV2betaSearchRequest) *ProjectsLocationsCatalogsServingConfigsSearchCall { c := &ProjectsLocationsCatalogsServingConfigsSearchCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.placement = placement @@ -17542,7 +17781,7 @@ func (c *ProjectsLocationsCatalogsServingConfigsSearchCall) Do(opts ...googleapi // ], // "parameters": { // "placement": { - // "description": "Required. The resource name of the Retail Search serving config, such as `projects/*/locations/global/catalogs/default_catalog/servingConfigs/default_serving_config` or the name of the legacy placement resource, such as `projects/*/locations/global/catalogs/default_catalog/placements/default_search`. This field is used to identify the serving config name and the set of models that will be used to make the search.", + // "description": "Required. The resource name of the Retail Search serving config, such as `projects/*/locations/global/catalogs/default_catalog/servingConfigs/default_serving_config` or the name of the legacy placement resource, such as `projects/*/locations/global/catalogs/default_catalog/placements/default_search`. This field is used to identify the serving config name and the set of models that are used to make the search.", // "location": "path", // "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+/servingConfigs/[^/]+$", // "required": true, diff --git a/serviceconsumermanagement/v1/serviceconsumermanagement-api.json b/serviceconsumermanagement/v1/serviceconsumermanagement-api.json index 6eb36ad5998..bc4f9655577 100644 --- a/serviceconsumermanagement/v1/serviceconsumermanagement-api.json +++ b/serviceconsumermanagement/v1/serviceconsumermanagement-api.json @@ -542,7 +542,7 @@ } } }, - "revision": "20230412", + "revision": "20230425", "rootUrl": "https://serviceconsumermanagement.googleapis.com/", "schemas": { "AddTenantProjectRequest": { @@ -2225,7 +2225,8 @@ "ADS", "PHOTOS", "STREET_VIEW", - "SHOPPING" + "SHOPPING", + "GEO" ], "enumDescriptions": [ "Not useful.", @@ -2233,7 +2234,8 @@ "Ads (Advertising) Org.", "Photos Org.", "Street View Org.", - "Shopping Org." + "Shopping Org.", + "Geo Org." ], "type": "string" }, diff --git a/serviceconsumermanagement/v1/serviceconsumermanagement-gen.go b/serviceconsumermanagement/v1/serviceconsumermanagement-gen.go index 5195abca049..7e35b2c9721 100644 --- a/serviceconsumermanagement/v1/serviceconsumermanagement-gen.go +++ b/serviceconsumermanagement/v1/serviceconsumermanagement-gen.go @@ -3430,6 +3430,7 @@ type Publishing struct { // "PHOTOS" - Photos Org. // "STREET_VIEW" - Street View Org. // "SHOPPING" - Shopping Org. + // "GEO" - Geo Org. Organization string `json:"organization,omitempty"` // ProtoReferenceDocumentationUri: Optional link to proto reference diff --git a/serviceconsumermanagement/v1beta1/serviceconsumermanagement-api.json b/serviceconsumermanagement/v1beta1/serviceconsumermanagement-api.json index db78e306cda..3d04833b015 100644 --- a/serviceconsumermanagement/v1beta1/serviceconsumermanagement-api.json +++ b/serviceconsumermanagement/v1beta1/serviceconsumermanagement-api.json @@ -500,7 +500,7 @@ } } }, - "revision": "20230412", + "revision": "20230425", "rootUrl": "https://serviceconsumermanagement.googleapis.com/", "schemas": { "Api": { @@ -2041,7 +2041,8 @@ "ADS", "PHOTOS", "STREET_VIEW", - "SHOPPING" + "SHOPPING", + "GEO" ], "enumDescriptions": [ "Not useful.", @@ -2049,7 +2050,8 @@ "Ads (Advertising) Org.", "Photos Org.", "Street View Org.", - "Shopping Org." + "Shopping Org.", + "Geo Org." ], "type": "string" }, diff --git a/serviceconsumermanagement/v1beta1/serviceconsumermanagement-gen.go b/serviceconsumermanagement/v1beta1/serviceconsumermanagement-gen.go index ab64639c052..526604b1003 100644 --- a/serviceconsumermanagement/v1beta1/serviceconsumermanagement-gen.go +++ b/serviceconsumermanagement/v1beta1/serviceconsumermanagement-gen.go @@ -3134,6 +3134,7 @@ type Publishing struct { // "PHOTOS" - Photos Org. // "STREET_VIEW" - Street View Org. // "SHOPPING" - Shopping Org. + // "GEO" - Geo Org. Organization string `json:"organization,omitempty"` // ProtoReferenceDocumentationUri: Optional link to proto reference diff --git a/serviceusage/v1/serviceusage-api.json b/serviceusage/v1/serviceusage-api.json index a29611fc0c2..eabbb817e35 100644 --- a/serviceusage/v1/serviceusage-api.json +++ b/serviceusage/v1/serviceusage-api.json @@ -426,7 +426,7 @@ } } }, - "revision": "20230412", + "revision": "20230425", "rootUrl": "https://serviceusage.googleapis.com/", "schemas": { "AdminQuotaPolicy": { @@ -2668,7 +2668,8 @@ "ADS", "PHOTOS", "STREET_VIEW", - "SHOPPING" + "SHOPPING", + "GEO" ], "enumDescriptions": [ "Not useful.", @@ -2676,7 +2677,8 @@ "Ads (Advertising) Org.", "Photos Org.", "Street View Org.", - "Shopping Org." + "Shopping Org.", + "Geo Org." ], "type": "string" }, diff --git a/serviceusage/v1/serviceusage-gen.go b/serviceusage/v1/serviceusage-gen.go index 2e5ea7e2f24..e16144343ce 100644 --- a/serviceusage/v1/serviceusage-gen.go +++ b/serviceusage/v1/serviceusage-gen.go @@ -4244,6 +4244,7 @@ type Publishing struct { // "PHOTOS" - Photos Org. // "STREET_VIEW" - Street View Org. // "SHOPPING" - Shopping Org. + // "GEO" - Geo Org. Organization string `json:"organization,omitempty"` // ProtoReferenceDocumentationUri: Optional link to proto reference diff --git a/serviceusage/v1beta1/serviceusage-api.json b/serviceusage/v1beta1/serviceusage-api.json index d240842ed9b..91a34f6b36d 100644 --- a/serviceusage/v1beta1/serviceusage-api.json +++ b/serviceusage/v1beta1/serviceusage-api.json @@ -964,7 +964,7 @@ } } }, - "revision": "20230417", + "revision": "20230425", "rootUrl": "https://serviceusage.googleapis.com/", "schemas": { "AdminQuotaPolicy": { @@ -3377,7 +3377,8 @@ "ADS", "PHOTOS", "STREET_VIEW", - "SHOPPING" + "SHOPPING", + "GEO" ], "enumDescriptions": [ "Not useful.", @@ -3385,7 +3386,8 @@ "Ads (Advertising) Org.", "Photos Org.", "Street View Org.", - "Shopping Org." + "Shopping Org.", + "Geo Org." ], "type": "string" }, diff --git a/serviceusage/v1beta1/serviceusage-gen.go b/serviceusage/v1beta1/serviceusage-gen.go index bbfc6285711..2d42dac97fb 100644 --- a/serviceusage/v1beta1/serviceusage-gen.go +++ b/serviceusage/v1beta1/serviceusage-gen.go @@ -4574,6 +4574,7 @@ type Publishing struct { // "PHOTOS" - Photos Org. // "STREET_VIEW" - Street View Org. // "SHOPPING" - Shopping Org. + // "GEO" - Geo Org. Organization string `json:"organization,omitempty"` // ProtoReferenceDocumentationUri: Optional link to proto reference